/* v7.45.21 — daily trial invitation and compact family access messaging */
.daily-trial-popup[hidden]{display:none!important}
.daily-trial-popup{position:fixed;inset:0;z-index:1800;display:grid;place-items:center;padding:20px}
.daily-trial-popup-backdrop{position:absolute;inset:0;width:100%;height:100%;border:0;background:rgba(4,4,4,.72);backdrop-filter:blur(5px);cursor:pointer}
.daily-trial-popup-card{position:relative;width:min(520px,100%);padding:30px;border:1px solid rgba(203,161,48,.65);border-radius:24px;background:linear-gradient(145deg,#151515,#050505);box-shadow:0 30px 90px rgba(0,0,0,.48);color:#fff;text-align:center}
.daily-trial-popup-logo{display:grid;place-items:center;width:76px;height:76px;margin:0 auto 16px;border:1px solid rgba(203,161,48,.48);border-radius:50%;background:#fff}
.daily-trial-popup-logo img{width:62px;height:62px;object-fit:contain;border-radius:50%}
.daily-trial-popup-card h2{max-width:420px;margin:4px auto 12px;color:#fff;font-size:clamp(27px,5vw,39px);line-height:1.06}
.daily-trial-popup-card>p:not(.eyebrow){max-width:430px;margin:0 auto;color:#ddd7cb;line-height:1.6}
.daily-trial-popup-card .eyebrow{margin-bottom:7px}
.daily-trial-popup-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:23px}
.daily-trial-popup-actions .button{min-width:150px}
.daily-trial-popup-card small{display:block;margin-top:16px;color:#aaa49a}
.daily-trial-popup-close{position:absolute;top:12px;right:12px;width:42px;height:42px;padding:0;border:1px solid rgba(255,255,255,.22);border-radius:50%;background:rgba(255,255,255,.08);color:#fff;font-size:27px;line-height:1;cursor:pointer}
.daily-trial-popup-close:hover,.daily-trial-popup-close:focus-visible{border-color:#cba130;background:#cba130;color:#111}
.daily-trial-popup-open{overflow:hidden}
@media(max-width:600px){.daily-trial-popup{padding:14px}.daily-trial-popup-card{padding:27px 18px 22px;border-radius:20px}.daily-trial-popup-actions{display:grid}.daily-trial-popup-actions .button{width:100%}}

/* v7.45.55 — grouped October timetable and clear 2-hour Recreational sessions */
.transition-schedule-grouped{gap:14px}
.transition-programme-group{overflow:hidden;border:1px solid #eadfbd;border-radius:18px;background:#fffdf8}
.transition-programme-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 16px;background:#f7f1df;border-bottom:1px solid #eadfbd}
.transition-programme-heading>div{display:grid;gap:2px}
.transition-programme-heading strong{color:#171717;font-size:.93rem}
.transition-programme-heading small{color:#746c5d;font-size:.72rem}
.transition-programme-heading>span{padding:5px 9px;border-radius:999px;background:#171717;color:#fff;font-size:.68rem;font-weight:850;white-space:nowrap}
.transition-programme-group .transition-session{border:0;border-radius:0;background:#fff;box-shadow:none}
.transition-programme-group .transition-session+.transition-session{border-top:1px solid #eee7d3}
.programme-schedule-note{margin:-3px 0 12px;color:#8a6814;font-size:.82rem;font-weight:800}
@media(max-width:640px){.transition-programme-heading{padding:11px 12px}.transition-programme-heading>span{font-size:.62rem}.transition-programme-group .transition-session{padding:11px 12px}}

/* v7.45.86 — compact homepage timetable for mobile */
@media(max-width:680px){
  .home-transition-section{padding-top:28px!important;padding-bottom:28px!important}
  .home-transition-header{gap:10px;margin-bottom:14px}
  .home-transition-header h2{font-size:clamp(1.55rem,7.4vw,2rem);line-height:1.05}
  .home-transition-header>p{padding-left:11px;font-size:.76rem;line-height:1.45}
  .home-transition-grid{gap:10px}
  .transition-panel{padding:12px 10px;border-radius:16px}
  .transition-panel-heading{grid-template-columns:34px minmax(0,1fr);gap:8px;margin-bottom:11px}
  .transition-panel-heading>span{width:34px;height:34px;border-radius:10px;font-size:.6rem}
  .transition-panel-heading .eyebrow{margin-bottom:2px;font-size:.58rem;letter-spacing:.11em}
  .transition-panel-heading h3{font-size:1.04rem;line-height:1.12}
  .transition-schedule-grouped{gap:8px;margin-bottom:12px}
  .transition-programme-group{border-radius:13px}
  .transition-programme-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;padding:8px 10px}
  .transition-programme-heading>div{gap:0}
  .transition-programme-heading strong{font-size:.78rem;line-height:1.15}
  .transition-programme-heading small{font-size:.6rem;line-height:1.2}
  .transition-programme-heading>span{padding:4px 7px;font-size:.54rem}
  .transition-programme-group .transition-session{
    display:grid;
    grid-template-columns:65px minmax(0,1fr);
    gap:2px 8px;
    padding:8px 10px;
    align-items:center;
  }
  .transition-programme-group .transition-session strong{grid-column:1;grid-row:1 / span 2;font-size:.66rem}
  .transition-programme-group .transition-session>span{grid-column:2;grid-row:1;font-size:.75rem;line-height:1.2}
  .transition-programme-group .transition-session small{display:block;grid-column:2;grid-row:2;font-size:.62rem;line-height:1.25}
  .transition-programme-group .transition-session small b{display:block;padding:0;border:0}
  .transition-panel-schedule>.text-link{font-size:.7rem}
}

@media(max-width:380px){
  .transition-programme-heading{grid-template-columns:1fr}
  .transition-programme-heading>span{justify-self:start}
}


/* v7.45.84 — reliable public Join F17 tap target */
.site-header .mobile-nav-actions{
  position:relative;
  z-index:220;
  pointer-events:auto;
}
.site-header .mobile-join-button,
.site-header .primary-nav .nav-signup{
  position:relative;
  z-index:221;
  pointer-events:auto!important;
  touch-action:manipulation;
  -webkit-tap-highlight-color:rgba(212,175,55,.18);
}
@media(max-width:1120px){
  .site-header .mobile-join-button{
    isolation:isolate;
  }
}

/* v7.45.85 — readable location sessions and polished public-site motion */
.locations-page .programme-schedule-box{
  position:relative;
  overflow:hidden;
  padding:24px;
  border-color:rgba(181,138,30,.35);
  background:linear-gradient(145deg,#fff,#fffaf0);
  box-shadow:0 18px 44px rgba(71,52,8,.08);
}
.locations-page .programme-schedule-box::after{
  content:"";
  position:absolute;
  width:170px;
  height:170px;
  right:-105px;
  top:-105px;
  border:1px solid rgba(212,175,55,.28);
  border-radius:50%;
  box-shadow:0 0 0 28px rgba(212,175,55,.045);
  pointer-events:none;
}
.location-session-heading{
  position:relative;
  z-index:1;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  padding-bottom:15px;
  border-bottom:1px solid #eadfbd;
}
.location-session-heading .eyebrow{margin:0 0 4px}
.location-session-heading h3{margin:0}
.location-session-heading>span{
  flex:0 0 auto;
  padding:7px 10px;
  border:1px solid #dbc46f;
  border-radius:999px;
  color:#755710;
  background:#fff8dd;
  font-size:.7rem;
  font-weight:850;
}
.location-session-list{position:relative;z-index:1;display:grid;gap:9px;margin-top:15px}
.location-session-row{
  display:grid;
  grid-template-columns:minmax(170px,1.4fr) minmax(105px,.7fr) minmax(150px,1fr);
  gap:14px;
  align-items:center;
  min-width:0;
  padding:13px 14px;
  border:1px solid #eee4c7;
  border-radius:14px;
  background:rgba(255,255,255,.9);
  transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease;
}
.location-session-row:hover{
  transform:translateX(4px);
  border-color:#d4af37;
  box-shadow:0 10px 22px rgba(71,52,8,.08);
}
.location-session-programme{
  min-width:0;
  color:#8a6814;
  font-size:.72rem;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.location-session-row strong{color:#171717;font-size:.9rem}
.location-session-row time{color:#4e493f;font-size:.86rem;font-weight:800}
.location-session-address{
  position:relative;
  z-index:1;
  margin-top:15px;
  padding-top:14px;
  border-top:1px solid #eadfbd;
  color:#746d60;
  font-size:.76rem;
  font-style:normal;
  line-height:1.55;
}
.comparison-session-list{display:grid;gap:7px;min-width:180px}
.comparison-session-list span{display:grid;grid-template-columns:88px minmax(0,1fr);gap:8px;align-items:baseline}
.comparison-session-list strong{color:#8a6814;font-size:.75rem}
.comparison-session-list small{color:inherit;font-size:.75rem;white-space:nowrap}
.locations-page .comparison-table td:last-child{white-space:normal}

/* Keep every weekday fully visible on the homepage programme cards. */
@media(max-width:680px){
  .home-page .programme-card .mini-schedule>div{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:2px!important;
    min-height:0;
    padding:7px 0!important;
  }
  .home-page .programme-card .mini-schedule>div>strong,
  .home-page .programme-card .mini-schedule>div>span,
  .home-page .programme-card .mini-schedule>div>small{
    display:block!important;
    grid-column:1!important;
    width:100%!important;
    overflow:visible!important;
    white-space:normal!important;
    text-overflow:clip!important;
    line-height:1.35!important;
  }
  .home-page .programme-card .mini-schedule>div>strong{font-size:.69rem!important}
  .home-page .programme-card .mini-schedule>div>span{font-size:.66rem!important;text-align:left!important}
  .home-page .programme-card .mini-schedule>div>small{font-size:.61rem!important}
  .location-session-heading{display:grid;gap:10px}
  .location-session-heading>span{justify-self:start}
  .location-session-row{grid-template-columns:1fr;gap:3px;padding:12px}
  .location-session-programme{margin-bottom:3px}
  .location-session-row strong{font-size:.88rem}
  .location-session-row time{font-size:.82rem}
  .locations-page .programme-schedule-box{padding:17px}
  .comparison-session-list{min-width:155px}
  .comparison-session-list span{grid-template-columns:76px minmax(0,1fr)}
}

/* Gold-and-black motion shared across the public website. */
.reveal{
  filter:blur(3px);
  transition:opacity .62s ease,transform .68s cubic-bezier(.2,.8,.2,1),filter .5s ease;
}
.reveal.visible{filter:blur(0)}
.programme-grid .reveal:nth-child(2),
.location-photo-grid .reveal:nth-child(2),
.values-grid .reveal:nth-child(2){transition-delay:.08s}
.programme-grid .reveal:nth-child(3),
.location-photo-grid .reveal:nth-child(3),
.values-grid .reveal:nth-child(3){transition-delay:.16s}
.page-hero-content.visible h1,
.hero-copy.visible h1{animation:f17TitleRise .72s .08s both cubic-bezier(.2,.8,.2,1)}
.page-hero-content.visible .button,
.hero-copy.visible .hero-actions{animation:f17ActionRise .65s .2s both ease-out}
.location-feature-image.visible img,
.location-photo-card.visible img{animation:f17ImageSettle .9s both cubic-bezier(.2,.8,.2,1)}
.button-gold{position:relative;overflow:hidden;isolation:isolate}
.button-gold::after{
  content:"";
  position:absolute;
  z-index:-1;
  inset:-40% auto -40% -35%;
  width:28%;
  transform:skewX(-20deg);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.52),transparent);
  transition:left .55s ease;
}
.button-gold:hover::after,.button-gold:focus-visible::after{left:115%}
@keyframes f17TitleRise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@keyframes f17ActionRise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes f17ImageSettle{from{opacity:.45;transform:scale(1.045)}to{opacity:1;transform:scale(1)}}
@media(prefers-reduced-motion:reduce){
  .reveal{filter:none!important;transition:none!important}
  .page-hero-content.visible h1,
  .hero-copy.visible h1,
  .page-hero-content.visible .button,
  .hero-copy.visible .hero-actions,
  .location-feature-image.visible img,
  .location-photo-card.visible img{animation:none!important}
  .location-session-row,.button-gold::after{transition:none!important}
}


/* 2026-08-30 public visibility stability hotfix.
   Content must remain readable even if an animation script is delayed or fails. */
.reveal,
.reveal.visible{
  opacity:1 !important;
  transform:none !important;
  filter:none !important;
}
