/* ==========================================================================
   Cobertura — modal de CEP (global) + página de resultado (cards de cidade)
   ========================================================================== */

/* ---- Modal ---- */
.cob-modal { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center; padding: 20px; }
.cob-modal[hidden] { display: none; }
.cob-modal__overlay { position: absolute; inset: 0; background: rgba(15,15,20,.55); }
.cob-modal__dialog {
  position: relative; z-index: 1; width: 100%; max-width: 560px;
  background: #fff; border-radius: var(--in-radius-lg, 24px); padding: 40px;
  box-shadow: 0 30px 80px rgba(0,0,0,.3);
}
.cob-modal__x { position: absolute; top: 24px; right: 24px; width: 34px; height: 34px; border: none; background: none; font-size: 1.7rem; line-height: 1; color: #4a4a52; cursor: pointer; }
.cob-modal__x:hover { color: var(--in-red); }
.cob-modal__title { font-size: 1.9rem; font-weight: 700; color: var(--in-ink); margin: 0 0 10px; }
.cob-modal__sub { color: var(--in-muted); margin: 0 0 22px; }
.cob-modal__box { background: #f1f1f3; border-radius: 16px; padding: 22px; display: flex; flex-direction: column; gap: 14px; }
.cob-modal__cep {
  width: 100%; height: 52px; border: 1.5px solid var(--in-line, #e2e2e6); border-radius: 12px;
  padding: 0 20px; font-size: 1.05rem; font-family: inherit; color: var(--in-ink); background: #fff; letter-spacing: .02em;
}
.cob-modal__cep:focus { outline: none; border-color: var(--in-red); box-shadow: 0 0 0 3px var(--in-red-50, #fdeaec); }
.cob-modal__btn { height: 52px; text-transform: uppercase; letter-spacing: .03em; font-weight: 700; }
.cob-modal__error { margin: 2px 0 0; color: var(--in-red); font-size: .88rem; }
body.cob-modal-open { overflow: hidden; }

/* ---- Página de resultado ---- */
.cob-prompt { text-align: center; padding: 20px 0 10px; }
.cob-prompt h2 { font-size: clamp(1.4rem, 3vw, 1.9rem); font-weight: 700; color: var(--in-ink); margin: 0 0 10px; }
.cob-prompt p { color: var(--in-muted); margin: 0 auto 22px; max-width: 460px; }

.cob-result__title { font-size: clamp(1.6rem, 3.4vw, 2.3rem); font-weight: 700; color: var(--in-ink); margin: 0 0 6px; line-height: 1.15; }
.cob-result__title span { color: var(--in-red); }
.cob-result__title--dark { color: var(--in-ink); }
.cob-result__sub { color: var(--in-muted); margin: 0 0 10px; }
.cob-result__cep { color: var(--in-red); font-weight: 700; font-size: 1.4rem; margin: 6px 0 24px; }

.cob-cities { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 22px; }
.cob-city { background: #fff; border: 1px solid var(--in-line, #ececf0); border-radius: var(--in-radius-lg, 18px); padding: 24px 26px; }
.cob-city h3 { font-size: 1.25rem; font-weight: 700; color: var(--in-ink); margin: 0 0 14px; }
.cob-city p { display: flex; align-items: flex-start; gap: 9px; margin: 0; color: var(--in-muted); font-size: .95rem; line-height: 1.45; }
.cob-city p svg { flex: 0 0 auto; color: var(--in-red); margin-top: 1px; }

.cob-result__foot { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 30px; }

@media (max-width: 600px) {
  .cob-modal__dialog { padding: 28px 22px; }
  .cob-modal__title { font-size: 1.6rem; }
}

/* Cobertura — unidade responsável, CTAs e cadastro de interesse (item 10) */
.cob-city__unidade { font-weight: 600; color: #65922D; margin: 2px 0 6px; }
.cob-city__cta { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
.cob-city__cta .in-btn { flex: 1 1 auto; justify-content: center; }
.cob-interesse {
  max-width: 560px;
  margin: 30px auto 0;
  padding: 26px 24px;
  background: #f6f7f4;
  border: 1px solid #e6e8e0;
  border-radius: 16px;
  text-align: center;
}
.cob-interesse__title { margin: 0 0 6px; font-size: 1.25rem; }
.cob-interesse__sub { margin: 0 0 16px; color: #5a5f52; }
.cob-interesse__form { text-align: left; }

/* Caixa de interesse logo abaixo da mensagem (sem cobertura): alinhada à
   esquerda (mesma coluna do texto) e com respiro maior embaixo. */
.cob-interesse--top { margin: 18px 0 56px; text-align: left; }
