
:root{--p:#173B57;--s:#315D75;--a:#B45309;--bg:#F5F8FA;--tx:#17222b;--mut:#60717e;--bd:#d9e2e8;--shadow:0 10px 28px rgba(23,59,87,.08)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:var(--tx);line-height:1.65;background:#fff}a{color:#165878;text-underline-offset:3px}img{max-width:100%;display:block}.container{width:min(1120px,calc(100% - 32px));margin:auto}.site-header{position:sticky;top:0;z-index:30;background:rgba(255,255,255,.97);border-bottom:1px solid var(--bd);backdrop-filter:blur(8px)}.head{min-height:68px;display:flex;align-items:center;gap:20px}.brand{font-weight:900;color:var(--p);text-decoration:none;font-size:1.05rem;line-height:1.15;max-width:290px}.brand span{display:block;color:var(--a);font-size:.72rem;letter-spacing:.09em;text-transform:uppercase}.nav{margin-left:auto;display:flex;gap:17px;align-items:center}.nav a{text-decoration:none;font-weight:750;color:var(--p)}.menu{display:none}.hero{background:linear-gradient(110deg,rgba(11,34,51,.95),rgba(23,59,87,.80)),url('/assets/images/hero.webp') center/cover;color:#fff;padding:66px 0}.hero h1{color:#fff;font-size:clamp(2.25rem,5vw,4.25rem);line-height:1.03;margin:.2em 0}.hero p{font-size:1.15rem;max-width:760px;color:#edf5f8}.eyebrow{font-weight:900;color:#ffd78d;text-transform:uppercase;letter-spacing:.1em}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:11px 18px;border-radius:12px;background:var(--a);color:white;text-decoration:none;font-weight:850;border:1px solid transparent}.btn.secondary{background:white;color:var(--p);border-color:var(--bd)}.cta{display:flex;gap:11px;flex-wrap:wrap;margin:22px 0}.section{padding:50px 0}.alt{background:var(--bg)}h1,h2,h3{color:var(--p);line-height:1.2;text-wrap:balance}h1{font-size:clamp(2rem,4vw,3.2rem)}h2{font-size:clamp(1.42rem,2.6vw,2rem);margin-top:1.55em}.lead{font-size:1.1rem;color:#344a58;max-width:790px}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.card{border:1px solid var(--bd);border-radius:18px;background:#fff;padding:18px;box-shadow:0 5px 18px rgba(23,59,87,.05)}.card img{border-radius:12px;aspect-ratio:16/9;object-fit:cover;margin-bottom:12px}.card h3{margin:.5rem 0}.pill{display:inline-block;background:#eaf1f5;padding:4px 9px;border-radius:99px;font-size:.86rem;margin:2px}.breadcrumb{padding:16px 0;color:var(--mut);font-size:.9rem}.content{width:min(850px,100%)}.featured{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:18px;border:1px solid var(--bd);margin:16px 0 24px}.facts,.toc,.notice{border:1px solid var(--bd);background:#f9fbfc;border-radius:14px;padding:16px 18px;margin:20px 0}.facts{border-left:4px solid #F0A74B}.facts dl{display:grid;grid-template-columns:repeat(2,1fr);gap:8px 20px}.facts dt{font-weight:850}.facts dd{margin:0;color:var(--mut)}.toc ol{columns:2}.faq details{border:1px solid var(--bd);border-radius:12px;padding:12px 15px;margin:10px 0}.faq summary{font-weight:800;color:var(--p);cursor:pointer}.vendor-note{background:#fff8e9;border:1px solid #f0d198;padding:14px;border-radius:12px}.site-footer{background:#102c40;color:#e8f1f5;margin-top:48px;padding:38px 0 22px}.site-footer a{color:#fff;display:block;margin:5px 0}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:25px}.copyright{text-align:center;border-top:1px solid #315367;padding-top:18px;margin-top:25px;font-size:.9rem}.form-shell,.form-grid,.field,.field label{min-width:0;max-width:100%}.form-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:15px;width:100%}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field.full{grid-column:1/-1}.field label{display:grid;grid-template-columns:minmax(0,1fr);gap:6px;width:100%;overflow-wrap:anywhere}.field input,.field select,.field textarea{display:block;width:100%;max-width:100%;min-width:0;padding:11px 12px;border:1px solid #a9bbc7;border-radius:10px;font:inherit}.field select{white-space:normal;text-overflow:ellipsis}.field textarea{min-height:125px;resize:vertical}.field label:has(input[type="checkbox"]){display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;column-gap:10px}.field input[type="checkbox"]{width:auto;max-width:none;min-width:auto;margin:.35em 0 0;padding:0}.pricing{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.price{font-size:2rem;font-weight:900;color:var(--p)}.kicker{font-size:.8rem;text-transform:uppercase;letter-spacing:.09em;font-weight:900;color:var(--a)}table{border-collapse:collapse;width:100%}th,td{border:1px solid var(--bd);padding:10px;text-align:left}.skip{position:absolute;left:-9999px}.skip:focus{left:10px;top:10px;background:white;padding:10px;z-index:100}.status{padding:10px 12px;border-radius:10px;background:#fff8e9;border:1px solid #f0d198}.search{display:grid;grid-template-columns:1fr auto;gap:10px;max-width:720px}.search input{min-height:48px;border-radius:12px;border:1px solid #a9bbc7;padding:10px 14px;font:inherit}.small{font-size:.91rem;color:var(--mut)}
@media(max-width:820px){.nav{display:none}.menu{display:block;margin-left:auto}.grid,.pricing{grid-template-columns:1fr 1fr}.facts dl{grid-template-columns:1fr}.toc ol{columns:1}.form-grid{grid-template-columns:minmax(0,1fr)}.field,.field.full{grid-column:1/-1;width:100%;min-width:0}.field label{width:100%;min-width:0}.field input,.field select,.field textarea{width:100%;max-width:100%;min-width:0}.form-grid .btn{width:100%}.footer-grid{grid-template-columns:1fr}}@media(max-width:560px){.container{width:min(100% - 28px,1120px)}.hero{padding:42px 0}.grid,.pricing{grid-template-columns:1fr}.cta{display:grid;grid-template-columns:1fr}.btn{width:100%}.section{padding:34px 0}.head{min-height:58px}.brand{font-size:.98rem}.search{grid-template-columns:1fr}}


/* STEP 19C — Mobile Typography & Vertical Density */
@media (max-width: 820px) {
  h1 {
    font-size: clamp(2.25rem, 9vw, 3rem);
    line-height: 1.08;
    margin-bottom: 1rem;
  }

  h2 {
    font-size: clamp(1.65rem, 6.8vw, 2.25rem);
    line-height: 1.15;
  }

  .eyebrow,
  .kicker,
  .section-label {
    margin-bottom: .65rem;
  }

  .hero,
  .page-hero,
  .content-hero,
  .section,
  .content-section {
    padding-top: 2rem;
    padding-bottom: 2rem;
  }

  .hero .inner,
  .page-hero .inner,
  .content-hero .inner {
    gap: 1rem;
  }

  .hero p,
  .page-hero p,
  .content-hero p,
  .lede,
  .intro {
    margin-top: .75rem;
    margin-bottom: 1rem;
  }

  .card,
  .service-card,
  .guide-card,
  .provider-card {
    padding: 1rem;
  }

  .service-card img,
  .guide-card img,
  .provider-card img,
  .featured-image img,
  img.featured-image {
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    max-height: 360px;
  }

  .service-card .card-body,
  .guide-card .card-body,
  .provider-card .card-body {
    padding-top: .85rem;
  }

  .service-card h2,
  .service-card h3,
  .guide-card h2,
  .guide-card h3,
  .provider-card h2,
  .provider-card h3 {
    margin-top: .35rem;
    margin-bottom: .65rem;
  }

  .service-card p,
  .guide-card p,
  .provider-card p {
    margin-top: .45rem;
    margin-bottom: .7rem;
  }

  .actions,
  .cta-group,
  .hero-actions {
    gap: .75rem;
  }

  .actions .button,
  .cta-group .button,
  .hero-actions .button,
  .btn {
    min-height: 48px;
  }

  /* keep homepage hero prominent but slightly tighter */
  body.home .hero,
  .home-hero {
    padding-top: 2.5rem;
    padding-bottom: 2.5rem;
  }
}

/* STEP 19F — Provider Directory UX */
.provider-grid{align-items:stretch}
.compact-provider-card{display:flex;flex-direction:column;gap:.7rem}
.compact-provider-card h3{margin:.15rem 0 .25rem}
.provider-card-facts{display:grid;gap:.45rem;margin:0}
.provider-card-facts div{display:grid;grid-template-columns:minmax(72px,.38fr) minmax(0,1fr);gap:.75rem;align-items:start}
.provider-card-facts dt{font-weight:700;color:#425466}
.provider-card-facts dd{margin:0;min-width:0}
.provider-card-actions{display:flex;gap:.8rem;align-items:center;flex-wrap:wrap;margin-top:auto}
.provider-card-actions .text-link{font-weight:700}
@media(max-width:820px){
 .provider-grid{grid-template-columns:1fr}
 .compact-provider-card{padding:1rem}
 .provider-card-facts div{grid-template-columns:1fr;gap:.1rem}
 .provider-card-actions .btn{width:auto;min-width:0}
}
