/* Shared accessibility improvements for every redesigned page. */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
main:focus{outline:none}
.site-menu :focus-visible{outline-color:#a1dfff;outline-width:3px}
.menu-secondary>a,.footer-column>a,.footer-bottom nav a,.back-to-top{min-height:44px}
.footer-column>a{padding-block:10px;font-size:14px}
.footer-column h3{font-size:14px}
.site-footer .footer-bottom{font-size:14px}
.footer-main>*{min-width:0}
.site-footer p,.footer-column a{overflow-wrap:anywhere}
@media(max-width:360px){.site-footer .footer-main{grid-template-columns:minmax(0,1fr)}}
.price-table caption{overflow-wrap:anywhere}
.body-copy,.prose,.centre-detail-body,.hero-booking p{overflow-wrap:anywhere}
h1,h2,h3{overflow-wrap:anywhere}
.text-link,.button,.store-badge{max-width:100%}
.site-header .header-nav{min-width:0}
.site-header .brand{flex-shrink:0}
.site-header .booking-link{background:white;color:var(--navy)}
.site-header .booking-link:hover{background:#dce9fb}
.breadcrumbs ol{align-items:center}
.breadcrumbs ol{display:flex;flex-wrap:wrap;gap:8px 22px;list-style:none;margin:0 0 35px;padding:0;font-size:13px;color:var(--muted)}
.breadcrumbs a{display:inline-flex;align-items:center;min-height:44px;text-decoration:underline;text-underline-offset:4px}
.breadcrumb-trail{padding-top:25px}
.breadcrumb-trail ol{margin-bottom:0}
.breadcrumb-trail+section.section-space,.breadcrumb-trail+section>.section-space{padding-top:50px}
.action-group{display:flex;flex-wrap:wrap;align-items:center;gap:16px 24px}

main .button+.text-link,main .text-link+.text-link{margin-inline-start:18px}
main .action-group>.button,main .action-group>.text-link{margin:0}
main .section-jumps>.text-link,main .hours-actions>.text-link{margin-inline-start:0}
.body-copy a:not(.button):not(.text-link),.info-card p a{text-decoration:underline;text-underline-offset:4px}
.programme-page-link{margin-top:18px;font-size:14px}
.app-centre-note{margin-top:22px;font-size:17px}
.plan-card>.button+.text-link{margin:18px 0 0}
.price-action{margin-top:25px}
.centre-panorama .douglas-panorama-photo{aspect-ratio:5/1;object-fit:cover;object-position:50% 55%}
@media(max-width:600px){.breadcrumb-trail{padding-top:18px}.breadcrumb-trail+section.section-space,.breadcrumb-trail+section>.section-space{padding-top:38px}.breadcrumbs ol{font-size:12px;gap:4px 18px}.action-group{gap:14px 18px}.next-step>.action-group{width:100%}}
.schedule-link{margin-block:18px}
.centre-hours .body-copy+.text-link{margin-top:20px}
.site-menu{overscroll-behavior:contain}
details summary{min-height:44px}
details summary:focus-visible{outline-offset:3px}
/* Keep text enlargement within the available column instead of allowing the
   automatic minimum size of grid/flex items to push content off the screen. */
.visitor-section>*,.gym-intro>*,.school-jumps>a,.gym-locations>a{min-width:0}
.school-jumps{grid-template-columns:repeat(4,minmax(0,1fr))}
.gym-locations{grid-template-columns:repeat(2,minmax(0,1fr))}
.school-jumps a,.gym-locations a,.text-link,details summary{overflow-wrap:anywhere}
details summary>span{min-width:0}
details summary>.ti{flex-shrink:0}
@media(max-width:600px){.school-jumps{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:360px){.school-jumps,.gym-locations{grid-template-columns:minmax(0,1fr)}.school-jumps a+a{border-left:0;border-top:1px solid var(--line)}}
button:disabled{cursor:wait;opacity:.75}
/* Keep the homepage hero in document flow so zoom and custom text spacing can grow it.
   The original heights and offsets remain the minimum layout at each breakpoint. */
.homepage main .home-hero{--hero-size:max(610px,min(76vw,calc(100svh - 70px)));--hero-foot:clamp(130px,12vw,180px);--hero-side:calc(var(--gutter) - 12px);display:flex;align-items:flex-end;height:auto;min-height:var(--hero-size);max-height:none;padding:160px 0 var(--hero-foot)}
.homepage main .home-hero .hero-content{position:relative;inset:auto;min-width:0;flex:1 1 auto;margin-inline:var(--hero-side) var(--gutter)}
.homepage main .home-hero .hero-shade{background:linear-gradient(90deg,rgba(5,16,31,.6),rgba(5,16,31,.25) 50%,rgba(5,16,31,0) 70%)}
.homepage main .home-hero{--hero-foot:clamp(132px,11vw,160px)}
@media(min-width:1600px){.homepage main .home-hero{--hero-side:calc((100% - var(--content-max))/2)}}

.centre-intro>*,.centre-hours>*,.find-centre-inner>*{min-width:0}
.centre-contact-links a{max-width:100%;overflow-wrap:anywhere;min-width:0}
.centre-visit-photo{border-radius:14px;overflow:hidden;background:var(--paper)}
.centre-visit-photo img{width:100%;height:370px;object-fit:cover}
.centre-visit-photo figcaption{padding:16px 20px;color:var(--muted);font-size:13px}
@media(max-width:600px){.centre-visit-photo img{height:250px}}

@media(max-width:600px){.homepage main .home-hero{--hero-size:clamp(490px,64svh,590px);--hero-foot:132px;--hero-side:24px;padding-top:125px}.homepage main .home-hero{--hero-foot:116px}.centre-contact-links a{font-size:13px}}
@media(max-width:360px){.homepage main .home-hero{--hero-side:20px}.site-header{column-gap:6px}.site-header .booking-link{white-space:normal;max-width:100px;letter-spacing:0;word-spacing:0}}
@media(forced-colors:active){.button,.store-badge,.class-filters button,.filter-buttons button,.site-menu,.info-card,.plan-card{border:1px solid ButtonText}.class-filters button[aria-pressed=true],.filter-buttons button[aria-pressed=true]{outline:3px solid Highlight}.hero-shade{background:Canvas}.hero-image{opacity:.15}.home-hero{color:CanvasText}.hero-booking>p{color:CanvasText}.site-header{background:Canvas!important;color:CanvasText}.brand{background:#0a2348}.ti{forced-color-adjust:auto}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
