.btn { max-width:100%; text-align:center; }
.btn svg { flex-shrink:0; }
.footer-contact { overflow-wrap:anywhere; }
@media(max-width:1200px) {
 .nav-inner { position:relative; }
 .nav-links { position:absolute; inset:100% 0 auto; background:#fff; flex-direction:column; gap:0; padding:8px 26px 22px; border-bottom:1px solid var(--line); transform:none; visibility:hidden; pointer-events:none; max-height:calc(100dvh - 92px); overflow-y:auto; }
 .nav-links.open { visibility:visible; pointer-events:auto; transform:none; }
 .nav-links a { padding:12px 0; width:100%; border-bottom:1px solid var(--line); font-size:1.05rem; }
 .nav-links a::after { display:none; }
 .nav-links .nav-cta { text-align:center; margin-top:12px; border-bottom:0; }
 .nav-toggle { display:flex; min-width:44px; min-height:44px; align-items:center; justify-content:center; }
}
@media(max-width:640px) {
 .container { padding-inline:20px; }
 .nav-inner { padding-inline:16px; }
 .nav .brand-mark { width:52px; height:52px; }
 .nav .brand-name { font-size:1.2rem; }
 .nav-links { max-height:calc(100dvh - 72px); }
 .btn-lg { padding:17px 24px; }
}
@media(prefers-reduced-motion:reduce) {
 html { scroll-behavior:auto; }
 *,*::before,*::after { transition:none !important; animation:none !important; }
 html.reveal-js .reveal { opacity:1; transform:none; }
}

/* Mobile reading layout; desktop presentation is unchanged. */
@media (max-width: 640px) {
  .section.tight.home-intro { padding:36px 0 40px; }
  .home-intro > .narrow { width:100%; padding-inline:24px; box-sizing:border-box; }
  .home-intro .eyebrow { font-size:.66rem; letter-spacing:.1em; line-height:1.65; max-width:30em; margin-inline:auto; margin-bottom:16px; }
  .home-intro .lead { font-size:1rem; line-height:1.6; text-align:center; }
  .home-intro .intro-reassurance { display:block; margin-top:16px; }

  .service-detail .container, .service-hub .container { padding-inline:24px; }
  .service-detail .page-hero, .service-hub .page-hero { padding:44px 0 40px; }
  .service-detail .page-hero h1, .service-hub .page-hero h1 {
    font-size:clamp(1.85rem, 7.5vw, 2.35rem); line-height:1.16;
    margin-bottom:20px; overflow-wrap:break-word; text-wrap:balance;
  }
  .service-detail .eyebrow, .service-hub .eyebrow { font-size:.68rem; letter-spacing:.1em; line-height:1.65; margin-bottom:16px; }
  .service-detail .page-hero .lead, .service-hub .page-hero .lead { font-size:1rem; line-height:1.6; text-align:left; }
  .service-detail .section, .service-hub .section { padding-block:44px; }
  .service-detail h2, .service-hub h2 { font-size:1.65rem; line-height:1.25; margin-bottom:16px; }
  .service-detail .prose p, .service-detail .lead, .service-detail .closing p,
  .service-detail .help-list li, .service-detail .exp-list li { font-size:1rem; line-height:1.65; }
  .service-detail .prose p + p { margin-top:16px; }
  .service-detail .exp-list { grid-template-columns:minmax(0,1fr); gap:16px; margin-top:20px; }
  .service-detail .help-list li { padding-bottom:18px; }
  .service-detail .serve-band { padding:26px 20px; border-radius:20px; }
  .service-detail .serve-band .lead { text-align:left; }
  .service-detail .closing p { margin-bottom:24px; }
  .service-detail .btn, .service-hub .btn { font-size:1rem; padding:15px 22px; white-space:normal; }
  .service-detail .related h2 { font-size:1.4rem; }
  .service-detail .related-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:10px; }
  .service-detail .related-grid a { text-align:center; padding:12px 16px; font-size:.95rem; line-height:1.5; border-radius:16px; }
  .service-hub .sl-card { padding:26px 22px; }
}
