/* Scoped finish for the six approved pages; the existing visual direction stays authoritative. */
h1, h2, h3, h4 { text-wrap: balance; text-transform: none; }
p { text-wrap: pretty; }
[id] { scroll-margin-top: 112px; }
a, button, summary, input, select, textarea { -webkit-tap-highlight-color: rgba(15,109,168,.16); }
a:focus-visible, button:focus-visible, summary:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 3px solid #0f6da8; outline-offset: 4px;
}
.local-seo-home .hero a:focus-visible, .local-seo-home .hero button:focus-visible, .cta-band a:focus-visible { outline-color: #f4b21b; }
a:hover { text-decoration-thickness: 2px; }
a:active { text-decoration: underline; text-decoration-thickness: 2px; }
button:active, .button:active { filter: brightness(.9); }
summary:hover, summary:active { color: #0f6da8; }
input:hover, select:hover, textarea:hover { border-color: #0f6da8; }
input:active, select:active, textarea:active { outline: 2px solid #0f6da8; outline-offset: 2px; }
input:focus-visible, select:focus-visible, textarea:focus-visible { border-color: #0f6da8; }
.site-header .nav-actions .phone { display: inline-flex; align-items: center; min-height: 44px; }
.site-header .nav-actions .phone-number { display: inline; }
.site-header .nav-actions .phone-label { display: none; }
.menu-toggle { min-height: 44px; min-width: 64px; padding: 8px 10px; border: 1px solid #a7bdcc; border-radius: 6px; background: #fff; color: #082c4f; font: inherit; font-size: .875rem; font-weight: 800; cursor: pointer; }
.menu-toggle:hover { background: #edf7fb; border-color: #0f6da8; }
.menu-toggle[hidden], .nav-links[hidden] { display: none !important; }
.site-header .button { box-shadow: none; }
.cta-band .cta-actions .button { background: transparent; color: #fff; border: 1px solid #a9c9db; box-shadow: none; }
.cta-band .cta-actions .button:hover { background: rgba(255,255,255,.1); border-color: #fff; }
.local-seo-home .hero-subheading { max-width: 40ch; margin: 0; color: #fff; font-size: clamp(1.25rem,1.65vw,1.5rem); font-weight: 500; line-height: 1.35; }
.local-seo-home .hero .button.secondary { background: transparent; border-color: transparent; color: #fff; box-shadow: none; text-decoration: underline; text-underline-offset: 4px; }
.local-seo-home .hero .button.secondary:hover { background: rgba(255,255,255,.08); border-color: transparent; }
@media (max-width: 1160px) {
  .site-header .nav { display: flex; flex-wrap: wrap; gap: 0 12px; min-height: 72px; padding: 8px 0; }
  .site-header .brand { flex: 1 1 auto; order: 1; }
  .site-header .brand img { width: 174px; }
  .site-header .nav-actions { order: 2; margin-left: auto; gap: 0; }
  .site-header .nav-actions .button { display: none; }
  .site-header .menu-toggle { order: 3; }
  .site-header .nav-links { order: 4; display: flex; flex: 1 0 100%; flex-wrap: wrap; align-items: center; gap: 4px 20px; padding: 14px 0 6px; border-top: 1px solid #d9e3ea; margin-top: 8px; }
  .site-header .nav-links a { display: inline-flex; align-items: center; min-height: 44px; }
  html:not(.nav-ready) .site-header { position: relative; }
  html:not(.nav-ready) .site-header + main { padding-top: 0; }
  .sc-project-page main, .local-seo-landing main { padding-top: 72px; }
}
@media (max-width: 680px) {
  [id] { scroll-margin-top: 88px; }
  .site-header .nav { width: calc(100% - 24px); min-height: 64px; gap: 0 8px; }
  .site-header .brand { flex: 1 1 110px; }
  .site-header .brand img { width: min(132px, 34vw); }
  .site-header .nav-actions .phone { padding: 0 2px; font-size: .82rem; }
  .site-header .menu-toggle { min-width: 60px; padding-inline: 8px; }
  .site-header .nav-links { gap: 0; flex-direction: column; align-items: stretch; }
  .site-header .nav-links a { padding: 6px 8px; }
  .sc-project-page main, .local-seo-landing main { padding-top: 64px; }
  .local-seo-home .hero { --mobile-header-height: 64px; }
  .local-seo-home .hero-inner { justify-content: flex-start; padding-top: clamp(76px, 13svh, 116px); }
  .local-seo-home .hero-copy { padding-bottom: 0; }
  .local-seo-home .hero-copy-intro { padding: 28px 18px 18px; gap: 12px; }
  .local-seo-home .hero-subheading { font-size: 1.1875rem; line-height: 1.35; }
  .local-seo-home .hero .lead { max-width: 38ch; font-size: 1rem; line-height: 1.45; }
  .local-seo-home .hero h1 { margin-bottom: 0; line-height: 1.07; }
  .local-seo-home .hero-actions { gap: 2px; }
  .local-seo-home .hero .hero-actions .button.secondary { min-height: 44px; padding: 8px 12px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
}

/* Preserve the VIP grey section while giving its light copy and cyan labels sufficient contrast. */
.local-seo-vip .choice { background: #4b4b4b; }
/* Keep the existing navy wash opaque beneath every word; feather beyond the copy. */
@media (min-width: 681px) {
  .local-seo-home .hero-copy-intro::before {
    right: -100px;
    bottom: -32px;
    background: linear-gradient(100deg, rgba(3,24,43,.95) 0%, rgba(3,24,43,.9) 56%, rgba(3,24,43,.86) 94%, rgba(3,24,43,0) 100%);
    -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 4%, #000 96%, transparent 100%);
    mask-image: linear-gradient(180deg, transparent 0%, #000 4%, #000 96%, transparent 100%);
  }
}
@media (max-width: 680px) {
  .local-seo-home .hero-copy-intro {
    background: linear-gradient(180deg, rgba(3,24,43,0) 0%, rgba(3,24,43,.86) 4%, rgba(3,24,43,.94) 38%, rgba(3,24,43,.98) 100%);
  }
}
