/* ==========================================================
   Coverage Nest — shared styles (Call page + Form page)
   ========================================================== */
:root{
  --navy:#1a2b47;
  --navy-dark:#132038;
  --terracotta:#c1553f;
  --terracotta-dark:#a8452f;
  --cream:#f6f1e7;
  --cream-dark:#efe6d3;
  --text-muted:#5b6472;
  --border-soft:#e4e0d5;
}
body{
  font-family:'Inter', sans-serif;
  color:var(--navy);
  background:#fff;
}
h1,h2,h3,.serif{ font-family:'Playfair Display', serif; }
a{ text-decoration:none; }

/* ---------- Header ---------- */
.site-header{ padding:18px 0; border-bottom:1px solid #eee; }
.brand{
  font-family:'Playfair Display', serif;
  font-weight:700;
  font-size:1.3rem;
  color:var(--navy);
  display:flex; align-items:center; gap:10px;
}
.header-phone{ color:var(--terracotta); font-weight:600; text-align:right; }
.header-phone small{ display:block; color:var(--text-muted); font-weight:400; font-size:.75rem; }

/* ---------- Buttons ---------- */
.btn-terracotta{
  background:var(--terracotta);
  color:#fff !important;
  font-weight:600;
  padding:.7rem 1.5rem;
  border:none;
  border-radius:4px;
  white-space:nowrap;
  display:inline-flex; align-items:center; gap:8px;
}
.btn-terracotta:hover{ background:var(--terracotta-dark); color:#fff; }
.btn-outline-navy{
  background:transparent;
  color:var(--navy) !important;
  font-weight:600;
  padding:.7rem 1.5rem;
  border:1.5px solid var(--navy);
  border-radius:4px;
  white-space:nowrap;
  display:inline-flex; align-items:center; gap:8px;
}
.btn-outline-navy:hover{ background:var(--navy); color:#fff !important; }
.cta-pair{ display:flex; gap:14px; flex-wrap:wrap; margin-top:22px; }

/* ---------- Hero (call page) ---------- */
.hero{ background:var(--cream); }
.hero .eyebrow, .why-section .eyebrow, .cta-band .eyebrow, .facts-section .eyebrow{
  color:var(--terracotta); font-weight:700; letter-spacing:.03em; font-size:.8rem;
}
.hero .step-num{ font-family:'Playfair Display', serif; font-size:2rem; font-weight:700; color:var(--navy); }
.hero h1{ font-size:2.7rem; line-height:1.15; font-weight:700; color:var(--navy); }
.hero h1 em{ color:var(--terracotta); font-style:italic; }
.hero p.lead-text{ color:var(--text-muted); font-size:1.02rem; max-width:480px; }
.hero-img-wrap{ position:relative; height:100%; min-height:520px; }
.hero-img-wrap img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.hero-badge{
  position:absolute; bottom:24px; left:24px;
  background:rgba(255,255,255,.92); padding:10px 18px;
  font-size:.85rem; font-weight:600; border-radius:2px;
}
.call-hours{ font-size:.85rem; color:var(--text-muted); margin-top:10px; }

/* ---------- Feature strip ---------- */
.feature-strip{ padding:60px 0; }
.feature-item .icon-line{ border-top:1px solid var(--border-soft); margin-bottom:20px; }
.feature-item svg{ color:var(--terracotta); margin-bottom:14px; }
.feature-item h3{ font-size:1.3rem; font-weight:700; }
.feature-item p{ color:var(--text-muted); font-size:.92rem; }

/* ---------- Before-you-call / detail cards ---------- */
.detail-section{ padding:60px 0; }
.detail-section h2{ font-size:1.9rem; font-weight:700; max-width:400px; }
.detail-section .lede{ color:var(--text-muted); max-width:380px; }
.detail-card{
  background:#fff; border:1px solid var(--border-soft); border-radius:4px;
  padding:24px; height:100%;
}
.detail-card svg{ color:var(--terracotta); margin-bottom:12px; }
.detail-card h3{ font-size:1.1rem; font-weight:700; }
.detail-card p{ color:var(--text-muted); font-size:.9rem; margin:0; }

/* ---------- What to expect / steps ---------- */
.expect-section{ background:var(--cream-dark); padding:70px 0; }
.expect-section h2{ font-size:1.9rem; font-weight:700; max-width:420px; }
.step-row{ border-bottom:1px solid var(--border-soft); padding:18px 0; display:flex; gap:18px; }
.step-row:last-child{ border-bottom:none; }
.step-row .step-no{ font-family:'Playfair Display', serif; font-weight:700; color:var(--terracotta); font-size:1.3rem; width:34px; flex-shrink:0; }
.step-row h3{ font-size:1.05rem; font-weight:700; margin-bottom:4px; }
.step-row p{ color:var(--text-muted); font-size:.9rem; margin:0; }
.navy-card{ background:var(--navy-dark); color:#fff; padding:34px; border-radius:4px; }
.navy-card .eyebrow{ color:#c1553f; font-weight:700; letter-spacing:.04em; font-size:.75rem; }
.navy-card h3{ font-size:1.5rem; font-weight:700; }
.navy-card .call-btn-white{
  background:#fff; color:var(--navy) !important; font-weight:700;
  padding:.75rem 1.2rem; border-radius:4px; display:flex; align-items:center; gap:10px; justify-content:center;
}
.navy-card .schedule-btn-outline{
  background:transparent; color:#fff !important; font-weight:600;
  border:1.5px solid rgba(255,255,255,.5); padding:.75rem 1.2rem; border-radius:4px;
  display:flex; align-items:center; gap:10px; justify-content:center;
}
.navy-card .schedule-btn-outline:hover{ border-color:#fff; background:rgba(255,255,255,.08); }
.navy-card small{ color:#9aa5b8; }
.navy-card .fine{ font-size:.78rem; color:#8f9bb0; margin-top:16px; }

/* ---------- Disclosure box ---------- */
.disclosure-section{ padding:55px 0; background:var(--cream); }
.disclosure-box{
  background:#fff; border-left:4px solid var(--terracotta); padding:26px 30px;
  box-shadow:0 2px 18px rgba(0,0,0,.05);
}
.disclosure-box h3{ font-weight:700; font-size:1.15rem; }
.disclosure-box p{ color:var(--text-muted); font-size:.9rem; }
.info-box{
  background:var(--cream-dark); padding:26px 30px; border-radius:4px; height:100%;
}
.info-box h3{ font-weight:700; font-size:1.05rem; }
.info-box p{ color:var(--text-muted); font-size:.88rem; margin:0; }

/* ---------- Facts section (Medicare basics) ---------- */
.facts-section h2{ font-size:1.9rem; font-weight:700; max-width:420px; }
.fact-p{ color:var(--text-muted); font-size:.9rem; }

/* ---------- Footer ---------- */
footer{ background:var(--navy-dark); color:#c9d0dc; padding-top:55px; }
footer .brand-footer{ font-family:'Playfair Display', serif; font-weight:700; font-size:1.2rem; color:#fff; display:flex; align-items:center; gap:10px; }
footer h6{ color:#8f9bb0; font-size:.75rem; letter-spacing:.06em; font-weight:700; margin-bottom:16px; }
footer ul{ list-style:none; padding:0; }
footer ul li{ margin-bottom:10px; }
footer ul li a{ color:#c9d0dc; font-size:.92rem; }
footer ul li a:hover{ color:#fff; }
footer .legal-text{ border-top:1px solid rgba(255,255,255,.1); margin-top:36px; padding:22px 0; font-size:.8rem; color:#8f9bb0; line-height:1.7; }

/* ================= FORM PAGE ================= */
.form-page-wrap{ background:var(--cream); }
.form-hero-img{
  position:relative; min-height:100%; background-size:cover; background-position:center;
  display:flex; align-items:flex-end;
}
.form-hero-img::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(0deg, rgba(19,32,56,.82) 5%, rgba(19,32,56,.15) 55%, rgba(19,32,56,0) 75%);
}
.form-hero-img .overlay-text{ position:relative; z-index:2; color:#fff; padding:40px; }
.form-hero-img .overlay-eyebrow{ color:#e8c3b7; font-weight:700; letter-spacing:.04em; font-size:.8rem; }
.form-hero-img h1{ color:#fff; font-size:2rem; font-weight:700; }
.form-hero-img p{ color:#dfe3ea; font-size:.92rem; max-width:380px; }

.form-panel{ padding:46px; }
.form-panel .eyebrow{ color:var(--terracotta); font-weight:700; letter-spacing:.03em; font-size:.78rem; }
.form-panel h1{ font-size:1.9rem; font-weight:700; }
.form-panel .lede{ color:var(--text-muted); font-size:.92rem; }
.form-section-label{
  font-size:.78rem; font-weight:700; letter-spacing:.05em; color:var(--navy);
  border-bottom:1px solid var(--border-soft); padding-bottom:8px; margin:26px 0 16px;
}
.form-label{ font-weight:600; font-size:.88rem; color:var(--navy); }
.form-control, .form-select{
  border:1px solid #d8d2c2; border-radius:4px; padding:.65rem .8rem; font-size:.94rem;
}
.form-control:focus, .form-select:focus{
  border-color:var(--terracotta); box-shadow:0 0 0 .2rem rgba(193,85,63,.15);
}
.zip-input{ letter-spacing:.3em; font-weight:600; }

.segmented-group{ display:flex; gap:10px; }
.segmented-group input[type="radio"]{ display:none; }
.segmented-group label{
  flex:1; text-align:center; padding:.6rem .5rem; border:1px solid #d8d2c2; border-radius:4px;
  font-weight:600; font-size:.9rem; color:var(--navy); cursor:pointer; background:#fff;
}
.segmented-group input[type="radio"]:checked + label{
  background:var(--navy); color:#fff; border-color:var(--navy);
}
.segmented-group.is-invalid label{
  border-color:#c1553f;
}

.consent-box{ border:1px solid var(--border-soft); border-radius:4px; padding:16px 18px; margin-bottom:14px; }
.consent-box label{ font-size:.85rem; color:var(--text-muted); }
.consent-box a{ color:var(--terracotta); font-weight:600; }

.submit-btn{
  width:100%; background:var(--terracotta); color:#fff; font-weight:700;
  padding:.9rem; border:none; border-radius:4px; font-size:1rem;
}
.submit-btn:hover{ background:var(--terracotta-dark); }
.prefer-call{ text-align:center; font-size:.88rem; color:var(--text-muted); margin-top:14px; }
.prefer-call a{ color:var(--terracotta); font-weight:700; }

.alert-success-custom{
  background:#e7f3ea; border:1px solid #b6dcc0; color:#1f5c33;
  padding:16px 20px; border-radius:4px; margin-bottom:20px; font-size:.92rem;
}
.alert-error-custom{
  background:#fbeaea; border:1px solid #e6b3b3; color:#8a2b2b;
  padding:16px 20px; border-radius:4px; margin-bottom:20px; font-size:.92rem;
}
.field-error{ color:#c1553f; font-size:.8rem; margin-top:4px; display:block; }

@media (max-width:991px){
  .hero h1{ font-size:2rem; }
  .hero-img-wrap{ min-height:320px; }
  .form-panel{ padding:28px; }
  .form-hero-img{ min-height:260px; }
}

/* ---------- Thank-you page ---------- */
.thankyou-wrap{
  background:var(--cream);
  min-height:calc(100vh - 320px);
  display:flex; align-items:center; justify-content:center;
  padding:80px 20px;
}
.thankyou-card{ max-width:560px; text-align:center; margin:0 auto; }
.thankyou-icon{
  width:84px; height:84px; border-radius:50%;
  background:#e7f3ea; border:1px solid #b6dcc0;
  display:flex; align-items:center; justify-content:center;
  margin:0 auto 28px;
}
.thankyou-icon svg{ color:#1f5c33; }
.thankyou-wrap .eyebrow{ color:var(--terracotta); font-weight:700; letter-spacing:.04em; font-size:.8rem; display:block; margin-bottom:10px; }
.thankyou-wrap h1{ font-size:2.4rem; font-weight:700; color:var(--navy); margin-bottom:16px; }
.thankyou-wrap p.lede{ color:var(--text-muted); font-size:1rem; max-width:460px; margin:0 auto 8px; }
.thankyou-wrap .cta-pair{ justify-content:center; margin-top:28px; }
.thankyou-wrap .call-hours{ margin-top:20px; }

footer.thankyou-footer{ padding:30px 0; text-align:center; }
footer.thankyou-footer .legal-links a{ color:#c9d0dc; font-size:.88rem; margin:0 10px; }
footer.thankyou-footer .legal-links a:hover{ color:#fff; }
footer.thankyou-footer .copyright{ color:#8f9bb0; font-size:.8rem; margin-top:10px; }

@media (max-width:575px){
  .thankyou-wrap h1{ font-size:1.8rem; }
  .thankyou-wrap{ padding:56px 16px; }
  .thankyou-wrap .cta-pair{ flex-direction:column; align-items:stretch; }
  .thankyou-wrap .cta-pair a{ justify-content:center; }
}

/* ---------- ZIP entry form (click pages) ---------- */
.zip-form label{
  font-weight:600;
  font-size:.9rem;
}
.zip-input{
  letter-spacing:.4em;
  font-weight:600;
  font-size:1.1rem;
  border:1px solid #d8d2c2;
  background:#fff;
  padding:.65rem 1rem;
}
.no-collect-note{
  font-size:.85rem;
  color:var(--text-muted);
}
.fine-print{
  font-size:.78rem;
  color:var(--text-muted);
}
.fine-print a{
  color:var(--terracotta);
  font-weight:600;
}
@media (max-width: 600px) {
  .zip-form .zip-input,
  .cta-card .zip-input {
    width: 100% !important;
    flex: 0 0 100%;
  }
  .zip-form .zip-input + .btn-terracotta,
  .cta-card .zip-input + .btn-terracotta {
    width: 100%;
    flex: 0 0 100%;
  }
}

/* ---------- Why-location / facts / CTA band sections (click pages) ---------- */
.why-section{
  background:var(--cream-dark);
  padding:70px 0;
}
.why-section h2{
  font-size:2rem;
  font-weight:700;
  max-width:420px;
}
.why-section .col-text p{
  color:var(--text-muted);
  font-size:.95rem;
}
.facts-section{
  background:#fff;
}
.facts-section h2{
  font-size:2rem;
  font-weight:700;
  max-width:420px;
}
.fact-p{
  color:var(--text-muted);
  font-size:.9rem;
}
.cta-band{
  background:#e9dfc9;
  padding:60px 0;
}
.cta-band h2{
  font-size:2.1rem;
  font-weight:700;
  max-width:420px;
}
.cta-card{
  background:#fff;
  padding:28px;
  border-radius:2px;
}

/* ---------- Field validation states (shared across all forms) ---------- */
.form-control.is-invalid,
.form-select.is-invalid,
.zip-input.is-invalid{
  border-color:#c1553f;
  box-shadow:0 0 0 .2rem rgba(193,85,63,.15);
}
