.site-header .wrap { position: relative; z-index: 50; min-height: 80px; gap: clamp(.75rem, 2vw, 2rem); }
.navigation-shell { display: flex; align-items: center; flex: 1; gap: 1.25rem; min-width: 0; }
.nav { display: flex; align-items: center; gap: clamp(1rem, 1.8vw, 1.65rem); margin-inline: auto; font-family: 'Anton', Impact, sans-serif; font-size: 1rem; font-weight: 400; line-height: 1; letter-spacing: .055em; text-transform: uppercase; }
.nav-item { appearance: none; display: inline-flex; position: relative; align-items: center; justify-content: center; gap: .35em; min-height: 48px; margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; color: inherit; font: inherit; letter-spacing: inherit; text-transform: inherit; text-decoration: none; white-space: nowrap; cursor: pointer; }
.nav-item::after { content: ''; position: absolute; inset: auto 0 2px; height: 4px; background: var(--ink); transform: scaleX(0); transform-origin: left; }
.nav-item:hover::after, .nav-item:focus-visible::after, .nav-item:active::after, .nav-item[aria-current='page']::after, .nav-item[aria-expanded='true']::after, .nav-item[data-services-page='true']::after { transform: scaleX(1); }
.nav-item:focus-visible { outline: 3px solid var(--cream); outline-offset: 4px; }
.nav-services { display: flex; align-items: center; }
.nav-chevron { display: block; flex: none; width: .7em; height: .7em; transition: transform .2s ease; }
.nav-service-toggle[aria-expanded='true'] .nav-chevron { transform: rotate(180deg); }
.nav-service-panel { position: absolute; top: calc(100% - 3px); left: 50%; z-index: 2; width: min(920px, calc(100vw - 48px)); max-height: calc(100dvh - 145px); overflow-y: auto; padding: 1.4rem; border: 3px solid var(--ink); border-radius: 4px; background: var(--cream); color: var(--ink); box-shadow: 6px 6px 0 var(--ink); transform: translateX(-50%); text-transform: none; letter-spacing: normal; }
.nav-service-panel[hidden] { display: none; }
.nav-service-groups { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.25rem; }
.nav-service-groups h2 { margin: 0 0 .65rem; font: 400 .72rem/1.4 'Archivo Black', sans-serif; text-transform: uppercase; letter-spacing: .04em; }
.nav-service-groups ul { list-style: none; padding: 0; margin: 0; }
.nav-service-panel a { display: flex; align-items: center; min-height: 34px; padding: .3rem 0; color: var(--ink); font: 750 .85rem/1.35 'Inter', sans-serif; text-decoration: none; }
.nav-service-panel a:hover, .nav-service-panel a:focus-visible { color: var(--red); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 4px; }
.nav-service-panel a:focus-visible { outline: 3px solid var(--red); outline-offset: 2px; }
.nav-service-panel .nav-all-services { min-height: 48px; margin-top: 1rem; padding-top: .9rem; border-top: 3px solid var(--ink); font-family: 'Archivo Black', sans-serif; text-transform: uppercase; }
.navigation-ctas, .header-actions { display: flex; align-items: center; flex: none; }
.navigation-ctas { gap: 1rem; }
.header-actions { gap: .65rem; }
.site-header .menu-toggle, .site-header .mobile-menu-close, .site-header .mobile-phone, .site-header .mobile-book-now, .navigation-ctas .mobile-menu-call { display: none; }
.phone-icon { display: inline-block; flex: none; width: 1.1em; height: 1.1em; margin-inline-end: .4em; vertical-align: -.17em; transform-origin: 50% 50%; }
.block-button .phone-icon { margin: 0; }
a[href^='tel:']:hover .phone-icon, a[href^='tel:']:focus-visible .phone-icon { animation: phone-ring .6s ease-in-out; }
@keyframes phone-ring { 0%, 100% { transform: rotate(0); } 15%, 45% { transform: rotate(-12deg); } 30%, 60% { transform: rotate(12deg); } 75% { transform: rotate(-6deg); } 90% { transform: rotate(6deg); } }

@media (max-width: 1023px) {
  .topbar { display: none; }
  .site-header[data-menu-open='true'] .wrap { z-index: 100; }
  .site-header .wrap { gap: .4rem; }
  .site-header .brand { margin-right: auto; }
  .site-header .mobile-phone { display: inline-flex; flex: none; gap: .4rem; padding: .5rem; font-size: .9rem; white-space: nowrap; }
  .site-header .mobile-book-now { display: inline-flex; flex: none; min-height: 42px; padding: .45rem .6rem; font-size: .82rem; white-space: nowrap; }
  .site-header .menu-toggle, .site-header .mobile-menu-close { display: inline-flex; flex: none; width: 48px; height: 48px; padding: .5rem; }
  .site-header .navigation-shell { display: none; position: fixed; inset: 0; z-index: 60; width: 100%; height: 100dvh; padding: max(1rem, env(safe-area-inset-top)) max(1.25rem, env(safe-area-inset-right)) max(2rem, env(safe-area-inset-bottom)) max(1.25rem, env(safe-area-inset-left)); overflow-y: auto; overscroll-behavior: contain; border: 3px solid var(--ink); border-radius: 4px; background: var(--cream); color: var(--ink); flex-direction: column; align-items: stretch; gap: 1rem; }
  .site-header[data-menu-open='true'] .navigation-shell { display: flex; }
  .mobile-menu-close { align-self: flex-end; }
  .nav { flex-direction: column; align-items: flex-start; gap: 0; width: 100%; margin: 0; font-size: 1.55rem; }
  .nav-item { justify-content: flex-start; min-height: 56px; }
  .nav-item:focus-visible { outline-color: var(--red); }
  .nav-services { display: block; width: 100%; }
  .nav-service-panel { position: static; width: 100%; max-height: none; margin: .75rem 0 1.25rem; padding: 0 0 0 1rem; border: 0; border-left: 3px solid var(--ink); border-radius: 0; box-shadow: none; transform: none; overflow: visible; }
  .nav-service-groups { grid-template-columns: 1fr; gap: 1.25rem; }
  .nav-service-groups h2 { color: var(--red); }
  .nav-service-panel a { min-height: 48px; font: 400 1.1rem/1.3 'Anton', Impact, sans-serif; text-transform: uppercase; }
  .navigation-ctas { flex-direction: column; align-items: stretch; gap: 1rem; padding: 0 .4rem .4rem 0; }
  .navigation-ctas .mobile-menu-call { display: inline-flex; width: 100%; }
  .header-actions { flex-direction: column; align-items: stretch; gap: .75rem; }
  .header-actions, .header-actions .block-button { width: 100%; }
  .header-actions .block-button { font-size: 1.15rem; }
}

@media (min-width:1024px) and (max-width:1279px) {
  .site-header .wrap{gap:8px}
  .navigation-shell{gap:8px}
  .nav{gap:6px;font-size:.9rem;letter-spacing:.02em}
  .site-header .brand-name{font-size:1.5rem}
  .site-header .brand .logo-slot{width:80px;height:auto}
  .header-actions .block-button{font-size:12px;padding-inline:8px}
}

@media (min-width:1280px) and (max-width:1599px) {
  .site-header .wrap { gap: .75rem; }
  .navigation-shell { gap: .75rem; }
  .nav { gap: .75rem; font-size: 13px; letter-spacing: .015em; }
  .header-actions .block-button { font-size: 13px; padding-inline: 10px; }
}

@media (max-width: 479px) {
  .site-header .wrap { padding-inline: .5rem; gap: .25rem; }
  .site-header .brand { min-width: 0; gap: .2rem; flex: none; }
  .site-header .brand-name { font-size: clamp(.72rem, 3.5vw, 1rem); }
  .site-header .logo-slot { width: 24px; height: 24px; }
  .site-header .mobile-phone { font-size: clamp(.62rem, 2.65vw, .72rem); padding: .25rem; gap: .15rem; letter-spacing: 0; }
  .site-header .mobile-book-now { min-height: 38px; padding: .3rem .35rem; font-size: clamp(.62rem, 2.8vw, .72rem); }
  .site-header .menu-toggle { width: 40px; height: 40px; padding: .35rem; }
}

@media (max-width:359px) {
  .site-header .brand-name { font-size: .65rem; letter-spacing: 0; }
  .site-header .logo-slot { width: 20px; height: 20px; }
  .site-header .mobile-phone { display: none; }
  .site-header .mobile-book-now { min-height: 36px; padding: .2rem .25rem; font-size: .58rem; }
  .site-header .menu-toggle { width: 36px; height: 36px; padding: .25rem; }
}

@media (prefers-reduced-motion: reduce) {
  .nav-chevron { transition: none; transform: none !important; }
  .phone-icon { animation: none !important; transition: none !important; }
}
