/* Shared overrides loaded after each page's own styles.
   Readability: the high-contrast display face is kept only for the big hero name;
   all other headings use Source Serif 4, which stays legible on phone screens. */
:root{
  --display:"Bodoni Moda", Didot, Georgia, serif;
  --serif:"Source Serif 4", Georgia, "Times New Roman", serif;
  --muted:#3F4A63;
}
h1,h2,h3,.brand,.big,.sign,blockquote{font-family:var(--serif)}
h1,h2,h3{font-weight:500;letter-spacing:-.008em}
.hero h1{font-family:var(--display);font-weight:400}
.brand{font-weight:600;letter-spacing:-.01em}
.area-list li,.contact dd,.rv-score b,.steps li::before{font-family:var(--serif)}

/* ---------- mobile menu ---------- */
.menu-btn{display:none;align-items:center;justify-content:center;width:46px;height:46px;border-radius:12px;border:1.5px solid rgba(243,245,248,.45);background:transparent;color:#fff;cursor:pointer}
.menu-btn svg{width:22px;height:22px}
.mnav{display:none}

/* ---------- sticky action bar (phones) ---------- */
.mbar{display:none}

@media (max-width:900px){
  .menu-btn{display:inline-flex}
  .nav .wrap{height:76px}
  .mnav{position:fixed;inset:0;z-index:50;background:var(--lagoon);color:#fff;padding:24px 20px 120px;display:none;flex-direction:column;overflow:auto}
  .mnav.open{display:flex}
  .mnav .mtop{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}
  .mnav a.ml{display:block;padding:16px 4px;border-bottom:1px solid rgba(255,255,255,.14);font-size:1.35rem;font-family:var(--serif);text-decoration:none;color:#fff}
  .mnav .btn{margin-top:28px;text-align:center}
  body.menu-open{overflow:hidden}
}

@media (max-width:640px){
  body{font-size:18px;line-height:1.65}
  .wrap{padding-left:20px;padding-right:20px}
  h2{font-size:2.05rem;line-height:1.15}
  h3{font-size:1.35rem}
  .lede{font-size:1.12rem}
  .hero{padding-top:104px}
  .hero h1{font-size:4rem;line-height:.95}
  .hero h1 em{padding-left:.35em}
  .hero .intro{font-size:1.15rem;max-width:none;color:#E9EEF6}
  .hero .ctas .btn{flex:1 1 auto;text-align:center}
  .ribbon .wrap{grid-template-columns:1fr 1fr;gap:12px 18px;font-size:.98rem}
  .ribbon strong{display:block;font-size:1.2rem}
  .svc p,.steps p,.proof p,.faq details p,.broker-pts p,.rv-grid figcaption,.calc-form small,.channels span:last-child{font-size:1rem}
  .rv-grid blockquote{font-size:1.15rem}
  .about blockquote{font-size:1.45rem}
  .contact dd{font-size:1.25rem;word-break:break-word}
  footer{font-size:.95rem}
  .area-list li{font-size:1.2rem}
  section{padding:68px 0}
  .land h1{font-size:2.6rem;line-height:1.08}
  .land .sub{font-size:1.12rem}
  .gets span{font-size:1rem}
  .field input,.field select,.field textarea,.calc-form input,.calc-form select{font-size:17px}
  .mbar{display:grid;grid-template-columns:1fr 1fr 1.4fr;gap:8px;position:fixed;left:0;right:0;bottom:0;z-index:40;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:rgba(255,255,255,.96);border-top:1px solid var(--stone);box-shadow:0 -6px 20px rgba(11,30,84,.08)}
  .mbar a{display:flex;align-items:center;justify-content:center;gap:6px;min-height:48px;border-radius:12px;font-weight:600;font-size:.98rem;text-decoration:none;color:var(--lagoon);border:1.5px solid var(--stone);background:#fff}
  .mbar a.primary{background:var(--grove);border-color:var(--grove);color:#fff}
  body.has-mbar{padding-bottom:78px}
  .top .brand{white-space:nowrap}
  .top .contacts a.tel:not([hreflang]){display:none}
  .mbar.two{grid-template-columns:1fr 1fr}
}
