/* Indicators sit outside text flow; original header dimensions stay intact. */
.nav .nav-link-label{position:relative;display:inline-block}
.nav .nav-link-label::after{content:"";position:absolute;left:0;right:0;bottom:-5px;height:2px;background:var(--p,#ee3d78);transform:scaleX(0);transform-origin:left;transition:transform 150ms ease;pointer-events:none}
.nav a[aria-current] .nav-link-label::after,.nav a:focus-visible .nav-link-label::after{transform:scaleX(1)}
.nav a:not(.brand):focus-visible,.nav .menu-toggle:focus-visible{outline:2px solid var(--y,#f3dd27);outline-offset:5px}
main>section[id]{scroll-margin-top:var(--nav-offset,110px)}
@media(hover:hover) and (pointer:fine){.nav a:hover .nav-link-label::after{transform:scaleX(1)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.nav .nav-link-label::after{transition:none}}

/* The existing package anchor follows the measured sticky header height. */
#packages{scroll-margin-top:var(--nav-offset,110px)}

/* Compact full navigation at tablet landscape widths; keep the original logo. */
@media(min-width:1181px) and (max-width:1399px){
 .nav{column-gap:32px}
 .nav .links{gap:16px;flex-wrap:nowrap}
 .nav .links a{font-size:14px;letter-spacing:.13em;white-space:nowrap}
 .nav .links .ticket{padding-inline:12px}
}
/* Tablet menu state keeps the logo strong; phone styling stays unchanged. */
@media(min-width:521px) and (max-width:1180px){.nav>.brand{width:210px}}

/* Restore the full desktop navigation's bold presence without changing menus. */
@media(min-width:1181px){
 .nav{column-gap:32px}
 .nav .links{flex-wrap:nowrap}
 .nav .links a{font-size:14px;letter-spacing:.13em;white-space:nowrap}
}

/* Public reservation anchor and persistent page indicator use the existing header. */
#reservation-form{scroll-margin-top:var(--nav-offset,110px)}
.nav a.ticket[aria-current="page"],.nav a.mobile-ticket[aria-current="page"]{border-color:var(--p,#ee3d78)}
@media(prefers-reduced-motion:reduce){.nav .menu-icon,.nav .menu-icon:before,.nav .menu-icon:after{transition:none}}

/* Shared headers carry their own homepage colors, independent of page tokens. */
header.nav{--b:#080808;--c:#fff7e9;--y:#f3dd27;--p:#ee3d78;isolation:isolate}
header.nav .mobile-menu{z-index:1;background:#000}
header.nav a.ticket{transition:transform 180ms ease,box-shadow 180ms ease}
@media(hover:hover) and (pointer:fine){header.nav a.ticket:hover{transform:translateY(-2px);box-shadow:7px 8px 0 var(--p)}}
header.nav a.ticket:active{transform:translateY(1px);box-shadow:3px 3px 0 var(--p)}
@media(prefers-reduced-motion:reduce){header.nav a.ticket{transition:none}header.nav a.ticket:hover,header.nav a.ticket:active{transform:none}}
