.site-header .header-inner { position: relative; flex-wrap: wrap; padding-block: .65rem 0; gap: .35rem 1rem; }
.site-header .header-nav { width: 100%; flex-wrap: nowrap; justify-content: space-between; gap: 0; }
.site-menu-panel { display: flex; width: 100%; justify-content: space-between; align-items: center; gap: 1.25rem; border-top: 1px solid #07375e0c; }
.site-menu-panel > .nav-location, .program-menu > summary.nav-location { min-height: 50px; font-size: .87rem; white-space: nowrap; }
.site-menu-panel > .nav-location:is([href="partner-with-ilios.html"], [href="join-our-team.html"]) { color: var(--blue); }
.site-menu-panel > .nav-location:is([href="partner-with-ilios.html"], [href="join-our-team.html"]):is(:hover, :focus-visible) { color: var(--navy); }
.site-menu-toggle { display: none; }
.site-header .header-nav > .booking-cta { position: absolute; top: .7rem; right: 0; isolation: isolate; }
.booking-cta::after { content: ""; position: absolute; inset: -3px; z-index: -1; border: 2px solid rgb(8 120 185 / .3); border-radius: inherit; pointer-events: none; opacity: 0; }
@media (prefers-reduced-motion: no-preference) {
 .booking-cta::after { animation: booking-glow 3s ease-out infinite; }
}
@keyframes booking-glow {
 0% { opacity: .65; transform: scale(1); }
 75%, 100% { opacity: 0; transform: scale(1.07, 1.25); }
}
.site-header .header-inner .brand { flex-shrink: 0; white-space: nowrap; }
.site-header :is(a, button, summary):focus-visible { outline: 3px solid var(--blue); outline-offset: 3px; }
@media (max-width: 1080px) {
 .site-header .header-inner { flex-wrap: nowrap; min-height: 78px; padding-block: .75rem; gap: .75rem; }
 .site-header .header-nav { flex: 0 0 auto; width: auto; gap: .65rem; }
 .site-header .header-nav > .booking-cta { position: relative; top: auto; right: auto; }
 .site-menu-toggle:not([hidden]) { display: inline-flex; align-items: center; justify-content: center; gap: .45rem; min-width: 44px; min-height: 44px; padding: .5rem .7rem; background: var(--sky); color: var(--navy); border: 1px solid var(--border); border-radius: 12px; font: inherit; font-size: .85rem; font-weight: 750; cursor: pointer; }
 .site-menu-toggle svg { fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
 .site-menu-cross, .site-menu-toggle[aria-expanded="true"] .site-menu-bars { display: none; }
 .site-menu-toggle[aria-expanded="true"] .site-menu-cross { display: block; }
 .site-menu-panel { flex-direction: column; align-items: stretch; gap: 0; background: white; border-top: 1px solid var(--border); padding: .65rem 1.25rem 1rem; }
 .site-nav-enhanced .site-menu-panel { display: none; position: absolute; top: 100%; left: 0; right: 0; width: auto; max-height: calc(100dvh - var(--site-header-height, 78px) - .75rem); overflow-y: auto; overscroll-behavior: contain; border: 1px solid var(--border); border-radius: 0 0 20px 20px; box-shadow: 0 18px 32px #07375e21; }
 .site-nav-enhanced .site-menu-panel.is-open { display: flex; }
 .site-menu-panel > .nav-location, .site-menu-panel .program-menu > summary { width: 100%; min-height: 46px; padding: .6rem .35rem; font-size: 1rem; }
 .site-menu-panel .program-menu > summary { display: flex; justify-content: space-between; }
 .site-header:not(.site-nav-enhanced) { position: relative; }
 .site-header:not(.site-nav-enhanced) .header-inner { flex-wrap: wrap; }
 .site-header:not(.site-nav-enhanced) .header-nav { width: 100%; }
 .site-header:not(.site-nav-enhanced) .booking-cta { position: absolute; top: .75rem; right: 0; }
}
@media (max-width: 700px) {
 .site-header .header-inner { min-height: 72px; }
 .site-header .header-inner .brand { white-space: normal; }
 .site-header .header-inner .brand span { max-width: 95px; line-height: 1.15; font-size: .95rem; }
 .site-menu-toggle:not([hidden]) { padding: .5rem; }
 .site-menu-toggle span { display: none; }
 .site-header .header-nav { gap: .45rem; }
 .site-nav-enhanced .site-menu-panel { left: -.25rem; right: -.25rem; padding-inline: 1rem; }
}
@media (max-width: 380px) {
 .site-header .header-inner { gap: .4rem; }
 .site-header .header-inner .brand { gap: .4rem; }
 .site-header .header-inner .brand img { width: 36px; height: 36px; }
 .site-header .header-inner .brand span { max-width: 65px; font-size: .76rem; }
 .site-header .header-nav > .booking-cta { padding-inline: .6rem; font-size: .72rem; }
 .site-header .header-nav { gap: .35rem; }
}
.program-menu { color: var(--navy); }
.program-menu > summary.nav-location { cursor: pointer; list-style: none; gap: .4rem; white-space: nowrap; text-decoration: none; }
.program-menu > summary::-webkit-details-marker { display: none; }
.program-menu-chevron { display: block; flex: 0 0 14px; transition: transform 160ms; }
.program-menu svg { fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.program-menu[open] .program-menu-chevron { transform: rotate(180deg); }
.program-menu-current .program-menu-label,
.program-menu[open] .program-menu-label,
.program-menu > summary:hover .program-menu-label { text-decoration: underline; text-underline-offset: 6px; }
.program-menu-panel { position: absolute; top: 100%; left: 0; right: 0; max-height: calc(100dvh - var(--site-header-height, 83px)); overflow-y: auto; overscroll-behavior: contain; padding: .75rem 0; background: var(--sky); color: var(--navy); box-shadow: 0 20px 35px #07375e30; border-radius: 0 0 18px 18px; }
.program-menu-panel > .wrap { max-width: 960px; }
.program-menu-top { margin-bottom: .25rem; }
.program-menu-overview { display: inline-flex; align-items: center; gap: .5rem; min-height: 36px; margin-bottom: .35rem; font-family: var(--display); font-weight: 850; font-size: 1rem; text-decoration: none; }
.program-menu-overview svg { color: var(--blue); }
.program-menu-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .65rem; }
.program-menu-column { --category-colour: #267744; min-width: 0; background: white; border: 1px solid var(--border); border-radius: 12px; padding: .7rem; }
.program-menu-column.swimmer { --category-colour: var(--blue); }
.program-menu-column.advanced { --category-colour: #07375e; }
.program-menu-column h3 { margin: 0; font-size: 1rem; line-height: 1.2; color: var(--category-colour); }
.program-menu-column h3 a { text-decoration: none; }
.program-menu-column h3 a:hover { text-decoration: underline; text-underline-offset: 4px; }
.program-menu-column p { font-size: .72rem; margin: .2rem 0 .45rem; color: var(--ink-soft); }
.program-menu-column ul { margin: 0; padding: 0; list-style: none; display: grid; gap: .2rem; }
.program-menu-column h3 + ul { margin-top: .45rem; }
.program-menu-link { display: flex; align-items: center; gap: .4rem; min-height: 34px; font-size: .84rem; line-height: 1.3; padding: .3rem .5rem; border: 1px solid var(--border); border-radius: 7px; text-decoration: none; background: var(--sky); transition: background-color 140ms, border-color 140ms; }
/* The badge artwork has square backgrounds outside its circular edge. */
.program-menu-badge { width: 18px; height: 18px; flex: 0 0 18px; object-fit: contain; clip-path: circle(47.5%); }
.program-menu-link:hover { background: var(--sky); border-color: var(--border-strong); }
.program-menu-link[aria-current="page"] { background: var(--sky); border-color: var(--category-colour); text-decoration: underline; text-underline-offset: 4px; }
.program-menu-help { display: flex; flex: 1; min-width: 0; align-items: center; gap: .6rem; padding: .65rem .8rem; background: var(--navy); border: 1px solid var(--navy); border-radius: 12px; box-shadow: 0 4px 12px rgb(7 55 94 / .14); }
.program-menu-help-photo { width: 40px; height: 40px; flex: 0 0 40px; object-fit: cover; border-radius: 8px; }
.program-menu-help-content { display: flex; flex: 1; min-width: 0; align-items: center; justify-content: space-between; gap: .6rem; }
.program-menu-help p { font-family: var(--display); font-size: 1rem; font-weight: 750; line-height: 1.25; margin: 0; color: var(--white); }
.program-menu-help a { display: inline-flex; align-items: center; justify-content: center; gap: .4rem; min-height: 40px; font-size: .84rem; font-weight: 800; color: var(--white); background: var(--blue); padding: .5rem .8rem; border-radius: 9px; box-shadow: 0 3px 8px rgb(0 0 0 / .12); text-decoration: none; }
.program-menu-help a:hover { background: var(--navy); }
.program-menu-help a svg { flex: 0 0 18px; }
.site-header .program-menu a:focus-visible,
.site-header .program-menu summary:focus-visible,
.site-header .program-menu button:focus-visible { outline: 3px solid var(--blue); outline-offset: 3px; }
.site-header .program-menu-help a:focus-visible { outline-color: var(--white); }
@media (min-width: 1081px) {
 .program-menu-column:not(.advanced) ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1080px) {
 .program-menu-panel { position: static; max-height: none; overflow: visible; margin: .2rem 0 .4rem; padding: .5rem 0; border: 1px solid var(--border); border-radius: 12px; box-shadow: none; }
 .program-menu-panel > .wrap { width: calc(100% - 1rem); }
 .program-menu-column { padding: .6rem; }
 .program-menu-column h3 { font-size: .92rem; }
 .program-menu-link { min-height: 38px; font-size: .8rem; padding: .3rem .4rem; }
 .program-menu-help p { font-size: .86rem; }
 .program-menu-help a { font-size: .78rem; padding: .4rem .5rem; }
}
@media (max-width: 700px) {
 .program-menu-grid { grid-template-columns: 1fr; gap: .4rem; }
 .program-menu-column h3 { display: inline; }
 .program-menu-column p { display: inline; margin: 0 0 0 .4rem; font-size: .7rem; white-space: nowrap; }
 .program-menu-column ul { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: .35rem; gap: .2rem .35rem; }
 .program-menu-link { gap: .3rem; padding-inline: .3rem; }
 .program-menu-badge { width: 16px; height: 16px; flex-basis: 16px; }
 .program-menu-help-content { flex-direction: column; align-items: stretch; gap: .4rem; }
}
@media (max-width: 380px) {
 .program-menu-column { padding: .5rem; }
 .program-menu-link { font-size: .76rem; }
 .program-menu-column.advanced ul { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) { .program-menu-chevron, .program-menu-link { transition: none; } }
