:root{
  --navy:#082866;--navy2:#061b55;--blue:#0d8fe8;--aqua:#3ac6f6;
  --pale:#dff5ff;--soft:#f2fbff;--white:#fff;--green:#18b966;
  --pink:#ef4b80;--orange:#ff982c;--text:#0b2b67;--muted:#345472;
  --shadow:0 16px 44px rgba(10,72,137,.15);--radius:22px;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:'Nunito',system-ui,sans-serif;color:var(--text);background:#f5fbff;line-height:1.55;font-weight:600}a{text-decoration:none;color:inherit}img{max-width:100%;display:block}.container{width:min(1180px,92vw);margin:auto}.skip-link{position:absolute;left:-999px}.skip-link:focus{left:1rem;top:1rem;z-index:999;background:#fff;padding:.75rem 1rem;border-radius:12px}
.site-header{position:fixed;inset:0 0 auto;z-index:50;background:linear-gradient(135deg,var(--navy2),#0a317e);color:#fff;overflow:visible}.nav-wrap{min-height:154px;display:flex;align-items:center;justify-content:space-between;gap:2rem;overflow:visible}.brand{display:flex;align-items:center;align-self:stretch;flex:0 0 auto;overflow:visible;padding:8px 0}.brand-logo{display:block;width:300px;height:auto;max-height:none;object-fit:contain;object-position:left center;filter:drop-shadow(0 7px 14px rgba(0,0,0,.18));transform:translateY(6px)}.site-nav{display:flex;align-items:center;gap:1.9rem;font-weight:900;font-size:1rem}.site-nav a:not(.btn){color:#fff;position:relative}.site-nav a:not(.btn)::after{content:"";position:absolute;left:0;right:100%;bottom:-9px;height:3px;border-radius:9px;background:var(--aqua);transition:.2s}.site-nav a:hover::after{right:0}.nav-toggle{display:none;border:0;background:transparent}.nav-toggle span{display:block;width:28px;height:3px;background:#fff;margin:5px;border-radius:5px}.header-wave{height:18px;background:var(--aqua);clip-path:polygon(0 40%,3% 70%,7% 42%,11% 72%,15% 44%,19% 70%,24% 42%,29% 70%,34% 40%,39% 72%,44% 42%,49% 70%,54% 40%,59% 72%,64% 42%,69% 70%,74% 40%,79% 72%,84% 42%,89% 70%,94% 40%,100% 70%,100% 100%,0 100%)}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:60px;padding:0 1.55rem;border:0;border-radius:15px;background:linear-gradient(135deg,#0868d9,#0b90eb);color:#fff!important;font-family:'Nunito',sans-serif;font-weight:900;font-size:1rem;box-shadow:0 12px 26px rgba(0,104,220,.22);cursor:pointer;transition:.2s}.btn:hover{transform:translateY(-2px);box-shadow:0 16px 32px rgba(0,104,220,.27)}.btn-small{min-height:52px;background:linear-gradient(135deg,#12a9ed,#28c0f5)}.portal-login-button{background:#fff!important;color:var(--navy)!important;border:2px solid rgba(255,255,255,.85);box-shadow:0 10px 24px rgba(0,0,0,.16)}.portal-login-button:hover{background:#e9f8ff!important;color:var(--navy)!important}.btn-outline{background:#fff!important;color:#0868d9!important;border:2px solid #20acef;box-shadow:none}.btn-green{background:#fff!important;color:#11a75a!important;border:2px solid #11b963;box-shadow:none}.btn-outline.dark{color:var(--navy)!important;border-color:rgba(8,40,102,.18)}.chat-mark{display:inline-grid;place-items:center;margin-left:.45rem;width:1.15rem;height:1.15rem;border:2px solid currentColor;border-radius:50%;font-size:.62rem}.full{width:100%}
.hero{position:relative;margin-top:172px;background:linear-gradient(135deg,#d9f4ff,#bfeaff);overflow:hidden}.hero-grid{min-height:590px;display:grid;grid-template-columns:1.02fr .98fr;align-items:stretch}.hero-copy{padding:68px 34px 92px 0;z-index:2}.hero-photo{position:relative;background:linear-gradient(90deg,rgba(191,234,255,.20),rgba(191,234,255,0)),url('../images/swimmer.jpg') center/cover no-repeat;min-height:590px}.hero-photo::before,.hero-photo::after{content:"";position:absolute;border:2px solid rgba(255,255,255,.6);border-radius:50%;animation:bubble 5s ease-in-out infinite}.hero-photo::before{width:20px;height:20px;left:12%;top:15%}.hero-photo::after{width:34px;height:34px;right:9%;top:22%;animation-delay:1.2s}.eyebrow{text-transform:uppercase;letter-spacing:.14em;color:#138ed8;font-weight:900;font-size:.79rem;margin:0 0 1rem}h1,h2,h3,.finder-title{font-family:'Fredoka','Nunito',sans-serif;line-height:1.07;margin:0;color:var(--navy);font-weight:700;letter-spacing:-.025em}h1{font-size:clamp(3rem,6vw,5.2rem);max-width:720px}.lead,.large-text{font-size:1.22rem;color:var(--muted);max-width:690px}.hero-benefits{display:flex;gap:1.45rem;flex-wrap:wrap;margin:2rem 0}.hero-benefits span{display:flex;align-items:center;gap:.65rem;color:var(--navy);font-weight:900}.hero-benefits span::before{content:"◌";display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:#fff;color:var(--blue);font-size:1.35rem;border:2px solid rgba(13,143,232,.12);box-shadow:0 8px 20px rgba(0,90,170,.12)}.actions{display:flex;gap:1rem;flex-wrap:wrap}.hero-actions .btn{min-width:215px}.hero-wave{position:absolute;left:-2%;right:-2%;bottom:-2px;height:42px;background:#f5fbff;clip-path:polygon(0 58%,4% 34%,8% 60%,12% 35%,16% 62%,20% 35%,24% 60%,28% 36%,32% 62%,36% 35%,40% 60%,44% 36%,48% 62%,52% 35%,56% 60%,60% 36%,64% 62%,68% 35%,72% 60%,76% 36%,80% 62%,84% 35%,88% 60%,92% 36%,96% 62%,100% 40%,100% 100%,0 100%)}
.class-finder{padding:48px 0 76px;background:#f5fbff}.finder-title{text-align:center;margin-bottom:2.4rem;font-size:2.15rem}.finder-wave{color:var(--aqua);display:inline-block;animation:waveFloat 2.3s ease-in-out infinite}.finder-wave:last-child{animation-delay:.45s}.quick-class-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.35rem;align-items:stretch}.quick-class-card{background:#fff;border-radius:22px;box-shadow:var(--shadow);border:1px solid rgba(13,143,232,.10);overflow:hidden;display:grid;grid-template-rows:132px 190px 56px;min-width:0;height:100%}.quick-class-card-head{display:grid;grid-template-columns:52px minmax(0,1fr);gap:.9rem;align-items:start;padding:1.15rem 1.1rem .9rem}.quick-class-icon{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:1.35rem;font-weight:900;flex:0 0 auto}.quick-class-card:nth-child(1) .quick-class-icon{background:#e95383}.quick-class-card:nth-child(2) .quick-class-icon{background:#ff9a25}.quick-class-card:nth-child(3) .quick-class-icon{background:#64c64d}.quick-class-card:nth-child(4) .quick-class-icon{background:#3a90ea}.quick-class-card h3{font-size:1.12rem;line-height:1.15;margin:0 0 .38rem}.quick-class-card p{margin:0;color:var(--muted);font-size:.91rem;line-height:1.45;font-weight:700;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.quick-class-photo{width:100%;height:190px;object-fit:cover;object-position:center;display:block}.quick-class-card button{border:0;color:#fff;font:inherit;font-weight:900;text-align:center;padding:.9rem 1rem;cursor:pointer;margin:0;min-height:56px}.quick-class-card:nth-child(1) button{background:#e95383}.quick-class-card:nth-child(2) button{background:#ff9a25}.quick-class-card:nth-child(3) button{background:#64c64d}.quick-class-card:nth-child(4) button{background:#3a90ea}
.section{padding:88px 0}.section-soft{background:linear-gradient(180deg,#eefaff,#e3f5ff)}.section-head{max-width:780px;margin-bottom:2.4rem}.section-head h2,h2{font-size:clamp(2rem,4vw,3.05rem)}.split,.pool-grid,.cta-grid{display:grid;grid-template-columns:1fr 1fr;gap:3.5rem;align-items:center}.intro .large-text{color:var(--muted)}.feature-grid,.photo-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.1rem}.feature-card,.photo-card,.testimonial-card,.contact-card,.enquiry-form{background:#fff;border:1px solid rgba(0,143,232,.10);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.feature-card{padding:1.4rem}.feature-card .icon{width:60px;height:60px;display:grid;place-items:center;border-radius:20px;background:var(--soft);font-size:2rem;margin-bottom:1rem}.feature-card p,.pool-grid p,.contact-card p{color:var(--muted)}.section-blue{background:linear-gradient(135deg,#082866,#0b8fe7);color:#fff}.section-blue h2,.section-blue .eyebrow{color:#fff}.section-blue p{color:rgba(255,255,255,.88)}.tick-list{padding-left:1.1rem;font-weight:800}.pool-photo{border-radius:var(--radius);box-shadow:0 30px 80px rgba(0,0,0,.22);height:420px;width:100%;object-fit:cover}.photo-grid{grid-template-columns:repeat(3,1fr)}.photo-card img{height:260px;width:100%;object-fit:cover}.photo-card figcaption{padding:1rem 1.1rem;font-weight:900;color:var(--navy)}.narrow{max-width:860px}.testimonial-card{text-align:center;padding:2rem}.stars{color:#ffbf2f;letter-spacing:.12em;font-size:1.35rem}.testimonial-card blockquote{font-family:'Fredoka',sans-serif;font-size:1.45rem;margin:0 auto 1rem;color:var(--navy)}.testimonial-card cite{font-style:normal;font-weight:900;color:var(--blue)}.slider-buttons{display:flex;justify-content:center;gap:.8rem;margin-top:1.4rem}.slider-buttons button{border:0;border-radius:999px;background:var(--soft);color:var(--navy);font-weight:900;padding:.7rem 1rem;cursor:pointer}.faq-list{display:grid;gap:.8rem}.faq-list button{width:100%;border:0;background:#fff;border-radius:18px;padding:1.1rem 1.2rem;text-align:left;font:inherit;font-weight:900;color:var(--navy);display:flex;justify-content:space-between;cursor:pointer;box-shadow:0 10px 25px rgba(0,95,153,.08)}.faq-list div{display:none;background:#fff;margin-top:-.5rem;border-radius:0 0 18px 18px;padding:0 1.2rem 1rem;color:var(--muted)}.faq-list .open+div{display:block}.cta{background:linear-gradient(135deg,#dff5ff,#f7fcff)}.enquiry-form{display:grid;grid-template-columns:1fr 1fr;gap:1rem;padding:1.6rem}.enquiry-form label{display:grid;gap:.4rem;font-weight:900;color:var(--navy)}input,select,textarea{border:1px solid rgba(0,80,150,.16);border-radius:15px;padding:.9rem 1rem;font:inherit;background:#f9fdff}.enquiry-form .full,.enquiry-form button,.form-note{grid-column:1/-1}.contact-card{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:2rem}.site-footer{background:var(--navy);color:#d9edff;padding:54px 0 24px}.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:2rem}.footer-logo{width:230px;background:#fff;border-radius:22px;padding:.4rem}.footer-grid h3{color:#fff}.footer-grid a{display:block;color:#d9edff;margin:.35rem 0}.footer-bottom{border-top:1px solid rgba(255,255,255,.14);margin-top:2rem;padding-top:1rem;color:#a8c9df}.mobile-book{display:none}
.modal-backdrop{position:fixed;inset:0;background:rgba(2,20,50,.52);z-index:100;display:none;justify-content:flex-end;padding:120px 24px 24px}.modal-backdrop.open{display:flex}.lesson-modal{width:min(470px,100%);max-height:calc(100vh - 145px);overflow:auto;background:linear-gradient(180deg,#fbfeff,#e9f7ff);border-radius:26px;box-shadow:0 30px 90px rgba(0,0,0,.26);position:relative}.modal-close{position:absolute;top:.8rem;right:.8rem;border:0;background:transparent;color:var(--navy);width:42px;height:42px;font-size:1.9rem;cursor:pointer}.modal-header{padding:1.65rem 4rem 1rem 1.65rem}.modal-header h2{font-size:2rem}.modal-header p{color:var(--muted);margin:.5rem 0 0}.modal-body{padding:0 1.65rem 1.65rem}.term-card{background:#fff;border:1px solid rgba(239,75,128,.22);border-radius:16px;padding:1rem;margin:1rem 0}.term-card h3{color:var(--pink);margin-bottom:.4rem}.term-days{display:grid;gap:.55rem;margin-top:.8rem}.term-day{border-top:1px solid rgba(16,44,122,.10);padding-top:.55rem}.term-day strong{display:block;color:var(--navy);margin-bottom:.25rem}.availability-list{display:grid;gap:.65rem}.availability-item{background:#fff;border-bottom:1px solid rgba(16,44,122,.10);padding:.75rem .2rem}.availability-item strong{display:block;color:var(--navy)}.modal-highlights{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;background:#fff;border-radius:14px;padding:.8rem;margin:1rem 0;font-size:.76rem;font-weight:800}.modal-note{color:var(--muted)}.modal-enquire{width:100%;background:linear-gradient(135deg,#ef4b80,#ec2f6d)!important;color:#fff!important}body.modal-lock{overflow:hidden}.reveal{opacity:0;transform:translateY(24px);transition:.65s ease}.reveal.visible{opacity:1;transform:none}.delay-1{transition-delay:.12s}.delay-2{transition-delay:.22s}.delay-3{transition-delay:.32s}
@keyframes waveFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes bubble{0%,100%{transform:translateY(0);opacity:.55}50%{transform:translateY(-18px);opacity:1}}
@media(max-width:1020px){.nav-toggle{display:block}.nav-wrap{min-height:112px}.brand-logo{width:225px;max-height:none;transform:none}.site-nav{display:none;position:absolute;top:112px;left:4vw;right:4vw;background:#08296d;border-radius:20px;box-shadow:var(--shadow);padding:1rem;flex-direction:column;align-items:stretch}.site-nav.open{display:flex}.hero{margin-top:132px}.hero-grid,.split,.pool-grid,.cta-grid{grid-template-columns:1fr}.hero-copy{padding-right:0}.hero-photo{min-height:420px}.quick-class-grid,.feature-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:680px){.section{padding:62px 0}.nav-wrap{min-height:96px}.brand-logo{width:175px;max-height:none;transform:none}.site-nav{top:96px}.hero{margin-top:114px}.hero-grid{min-height:auto}.hero-copy{padding:52px 0 38px}.hero-photo{min-height:330px}.hero-benefits,.hero-actions{flex-direction:column}.hero-actions .btn{width:100%}.quick-class-grid,.feature-grid,.photo-grid,.enquiry-form,.footer-grid{grid-template-columns:1fr}.finder-title{font-size:1.8rem}.finder-wave{display:none}.modal-backdrop{padding:0;align-items:flex-end}.lesson-modal{width:100%;max-height:92vh;border-radius:24px 24px 0 0}.modal-highlights{grid-template-columns:1fr}.contact-card{display:block}.pool-photo{height:290px}.mobile-book{display:flex;position:fixed;z-index:60;left:1rem;right:1rem;bottom:1rem;justify-content:center;background:linear-gradient(135deg,#0c67df,#098ce8);color:#fff;padding:1rem;border-radius:999px;font-weight:900;box-shadow:0 18px 40px rgba(0,80,150,.32)}}

/* Softer, blended hero photography */
.hero-grid{
  position:relative;
  isolation:isolate;
}
.hero-photo{
  align-self:center;
  min-height:520px;
  margin:34px 0 70px -52px;
  border-radius:72px 0 0 72px;
  background-image:
    linear-gradient(90deg, rgba(191,234,255,.92) 0%, rgba(191,234,255,.42) 16%, rgba(191,234,255,.08) 34%, rgba(3,75,150,.08) 100%),
    url('../images/swimmer.jpg');
  background-position:center;
  background-size:cover;
  box-shadow:
    -30px 0 55px rgba(191,234,255,.75),
    0 26px 65px rgba(0,91,163,.18);
  overflow:hidden;
  -webkit-mask-image:linear-gradient(to right, transparent 0%, rgba(0,0,0,.25) 8%, #000 27%, #000 100%);
  mask-image:linear-gradient(to right, transparent 0%, rgba(0,0,0,.25) 8%, #000 27%, #000 100%);
}
.hero-photo::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  background:
    radial-gradient(circle at 72% 46%, transparent 0 38%, rgba(4,63,126,.10) 100%),
    linear-gradient(180deg, rgba(255,255,255,.09), rgba(0,116,190,.10));
  pointer-events:none;
  animation:none;
  width:auto;
  height:auto;
  left:0;
  top:0;
  border:0;
}
.hero-photo::after{
  content:"";
  position:absolute;
  inset:12px;
  border-radius:58px 0 0 58px;
  border:1px solid rgba(255,255,255,.30);
  box-shadow:inset 0 0 38px rgba(193,239,255,.22);
  pointer-events:none;
  animation:none;
  width:auto;
  height:auto;
  right:12px;
  top:12px;
}

@media(max-width:1020px){
  .hero-photo{
    margin:0 0 58px;
    min-height:420px;
    border-radius:48px;
    -webkit-mask-image:linear-gradient(to bottom, transparent 0%, #000 16%, #000 90%, transparent 100%);
    mask-image:linear-gradient(to bottom, transparent 0%, #000 16%, #000 90%, transparent 100%);
    box-shadow:0 24px 60px rgba(0,91,163,.16);
  }
  .hero-photo::after{border-radius:38px;}
}
@media(max-width:680px){
  .hero-photo{
    min-height:330px;
    margin:0 0 38px;
    border-radius:34px;
    background-position:center;
    -webkit-mask-image:linear-gradient(to bottom, transparent 0%, #000 13%, #000 92%, transparent 100%);
    mask-image:linear-gradient(to bottom, transparent 0%, #000 13%, #000 92%, transparent 100%);
  }
  .hero-photo::after{inset:8px;border-radius:27px;}
}


/* Hero image fully feathered */
.hero-media{
  overflow:hidden;
  border-radius:48px;
}
.hero-media::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(circle at center, rgba(0,0,0,0) 58%, rgba(0,159,227,.12) 78%, rgba(234,249,255,1) 100%),
    linear-gradient(to left, rgba(234,249,255,1) 0%, rgba(234,249,255,0) 12%, rgba(234,249,255,0) 88%, rgba(234,249,255,1) 100%),
    linear-gradient(to bottom, rgba(234,249,255,1) 0%, rgba(234,249,255,0) 12%, rgba(234,249,255,0) 88%, rgba(234,249,255,1) 100%);
  mix-blend-mode:normal;
}

/* feather the hero photograph on every edge */
.hero-photo{
  border-radius:72px;
  margin:34px 10px 70px -42px;
  box-shadow:0 26px 68px rgba(0,91,163,.16);
  -webkit-mask-image:radial-gradient(
    ellipse 88% 84% at 52% 50%,
    #000 0%,
    #000 58%,
    rgba(0,0,0,.96) 66%,
    rgba(0,0,0,.72) 77%,
    rgba(0,0,0,.28) 89%,
    transparent 100%
  );
  mask-image:radial-gradient(
    ellipse 88% 84% at 52% 50%,
    #000 0%,
    #000 58%,
    rgba(0,0,0,.96) 66%,
    rgba(0,0,0,.72) 77%,
    rgba(0,0,0,.28) 89%,
    transparent 100%
  );
  -webkit-mask-repeat:no-repeat;
  mask-repeat:no-repeat;
  -webkit-mask-size:100% 100%;
  mask-size:100% 100%;
}
.hero-photo::after{
  inset:14px;
  border-radius:58px;
  border:1px solid rgba(255,255,255,.18);
  box-shadow:inset 0 0 50px rgba(191,234,255,.16);
}
@media(max-width:1020px){
  .hero-photo{
    margin:0 0 58px;
    border-radius:48px;
    -webkit-mask-image:radial-gradient(ellipse 92% 88% at 50% 50%,#000 0%,#000 62%,rgba(0,0,0,.82) 78%,rgba(0,0,0,.30) 91%,transparent 100%);
    mask-image:radial-gradient(ellipse 92% 88% at 50% 50%,#000 0%,#000 62%,rgba(0,0,0,.82) 78%,rgba(0,0,0,.30) 91%,transparent 100%);
  }
  .hero-photo::after{border-radius:38px;}
}
@media(max-width:680px){
  .hero-photo{
    margin:0 0 38px;
    border-radius:34px;
    -webkit-mask-image:radial-gradient(ellipse 95% 90% at 50% 50%,#000 0%,#000 64%,rgba(0,0,0,.82) 80%,rgba(0,0,0,.28) 92%,transparent 100%);
    mask-image:radial-gradient(ellipse 95% 90% at 50% 50%,#000 0%,#000 64%,rgba(0,0,0,.82) 80%,rgba(0,0,0,.28) 92%,transparent 100%);
  }
  .hero-photo::after{inset:8px;border-radius:27px;}
}

/* 0: dissolve the hero photo into the surrounding blue rather than fading to transparency alone */
.hero-grid{
  position:relative;
  isolation:isolate;
}
.hero-grid::after{
  content:"";
  position:absolute;
  z-index:0;
  top:28px;
  right:-4%;
  bottom:54px;
  width:58%;
  background:
    linear-gradient(135deg,rgba(217,244,255,.32),rgba(26,166,230,.16)),
    url('../images/swimmer.jpg') center/cover no-repeat;
  filter:blur(34px) saturate(.92);
  opacity:.46;
  transform:scale(1.08);
  pointer-events:none;
  -webkit-mask-image:radial-gradient(ellipse 82% 78% at 52% 50%,#000 0 48%,rgba(0,0,0,.78) 67%,rgba(0,0,0,.28) 84%,transparent 100%);
  mask-image:radial-gradient(ellipse 82% 78% at 52% 50%,#000 0 48%,rgba(0,0,0,.78) 67%,rgba(0,0,0,.28) 84%,transparent 100%);
}
.hero-copy{position:relative;z-index:3}
.hero-photo{
  position:relative;
  z-index:2;
  margin:20px -20px 54px -68px;
  min-height:550px;
  border-radius:0;
  box-shadow:none;
  overflow:visible;
  background-image:
    linear-gradient(90deg,rgba(217,244,255,.42) 0%,rgba(191,234,255,.10) 24%,rgba(3,75,150,.04) 100%),
    url('../images/swimmer.jpg');
  background-position:center;
  background-size:cover;
  -webkit-mask-image:
    linear-gradient(to right,transparent 0%,rgba(0,0,0,.22) 7%,#000 24%,#000 78%,rgba(0,0,0,.50) 91%,transparent 100%),
    linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.32) 8%,#000 22%,#000 78%,rgba(0,0,0,.42) 91%,transparent 100%);
  mask-image:
    linear-gradient(to right,transparent 0%,rgba(0,0,0,.22) 7%,#000 24%,#000 78%,rgba(0,0,0,.50) 91%,transparent 100%),
    linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.32) 8%,#000 22%,#000 78%,rgba(0,0,0,.42) 91%,transparent 100%);
  -webkit-mask-composite:source-in;
  mask-composite:intersect;
  -webkit-mask-repeat:no-repeat;
  mask-repeat:no-repeat;
  -webkit-mask-size:100% 100%;
  mask-size:100% 100%;
}
.hero-photo::before{
  content:"";
  position:absolute;
  inset:0;
  width:auto;
  height:auto;
  left:0;
  top:0;
  border:0;
  border-radius:0;
  animation:none;
  background:
    radial-gradient(ellipse at 56% 48%,transparent 0 46%,rgba(8,83,150,.10) 78%,rgba(191,234,255,.18) 100%),
    linear-gradient(180deg,rgba(217,244,255,.08),rgba(0,112,190,.05));
  pointer-events:none;
}
.hero-photo::after{display:none!important}

@media(max-width:1020px){
  .hero-grid::after{
    top:auto;
    left:2%;
    right:2%;
    bottom:32px;
    width:auto;
    height:410px;
    filter:blur(28px) saturate(.92);
  }
  .hero-photo{
    margin:-8px 0 38px;
    min-height:420px;
    -webkit-mask-image:
      linear-gradient(to right,transparent 0%,rgba(0,0,0,.36) 8%,#000 20%,#000 80%,rgba(0,0,0,.36) 92%,transparent 100%),
      linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.34) 8%,#000 20%,#000 80%,rgba(0,0,0,.34) 92%,transparent 100%);
    mask-image:
      linear-gradient(to right,transparent 0%,rgba(0,0,0,.36) 8%,#000 20%,#000 80%,rgba(0,0,0,.36) 92%,transparent 100%),
      linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.34) 8%,#000 20%,#000 80%,rgba(0,0,0,.34) 92%,transparent 100%);
  }
}
@media(max-width:680px){
  .hero-grid::after{height:325px;bottom:22px;filter:blur(24px)}
  .hero-photo{min-height:330px;margin:-4px 0 24px;background-position:center}
}

/* 1: full-width hero image with text overlay */
.hero{
  position:relative;
  margin-top:172px;
  min-height:680px;
  background:#0b74ba;
  overflow:hidden;
  isolation:isolate;
}
.hero::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  background:
    linear-gradient(90deg,rgba(6,27,85,.92) 0%,rgba(8,40,102,.82) 30%,rgba(8,40,102,.38) 56%,rgba(8,40,102,.10) 100%),
    linear-gradient(180deg,rgba(7,31,82,.18) 0%,rgba(7,31,82,0) 58%,rgba(166,225,250,.25) 100%),
    url('../images/swimmer.jpg') center 42%/cover no-repeat;
  transform:scale(1.02);
}
.hero::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:
    radial-gradient(circle at 86% 18%,rgba(255,255,255,.18) 0 2px,transparent 3px),
    radial-gradient(circle at 92% 30%,rgba(255,255,255,.24) 0 4px,transparent 5px),
    radial-gradient(circle at 78% 70%,rgba(255,255,255,.15) 0 6px,transparent 7px),
    linear-gradient(90deg,rgba(8,40,102,.18),transparent 48%);
}
.hero-grid{
  min-height:680px;
  display:block;
  position:relative;
  z-index:3;
}
.hero-grid::after{display:none!important}
.hero-copy{
  position:relative;
  z-index:4;
  width:min(690px,62%);
  padding:82px 0 118px;
  color:#fff;
  text-shadow:0 2px 12px rgba(0,28,74,.22);
}
.hero-copy .eyebrow{color:#82dcff}
.hero-copy h1{color:#fff;max-width:670px}
.hero-copy .lead{color:rgba(255,255,255,.94);max-width:610px}
.hero-benefits span{color:#fff}
.hero-benefits span::before{
  background:rgba(255,255,255,.93);
  border-color:rgba(255,255,255,.5);
}
.hero-photo{
  position:absolute;
  inset:0;
  z-index:0;
  min-height:0;
  margin:0;
  background:none!important;
  -webkit-mask-image:none!important;
  mask-image:none!important;
  pointer-events:none;
}
.hero-photo::before,.hero-photo::after{display:none!important}
.hero-actions .btn-outline{
  background:rgba(255,255,255,.94)!important;
  border-color:#fff;
}
.hero-actions .btn-green{
  background:rgba(255,255,255,.94)!important;
  border-color:#34c66a;
}
.hero-wave{z-index:5}

@media(max-width:1020px){
  .hero{margin-top:110px;min-height:650px}
  .hero::before{
    background:
      linear-gradient(90deg,rgba(6,27,85,.92) 0%,rgba(8,40,102,.78) 42%,rgba(8,40,102,.30) 75%,rgba(8,40,102,.08) 100%),
      url('../images/swimmer.jpg') 58% center/cover no-repeat;
  }
  .hero-grid{min-height:650px}
  .hero-copy{width:min(650px,72%);padding:72px 0 108px}
}
@media(max-width:680px){
  .hero{margin-top:92px;min-height:720px}
  .hero::before{
    background:
      linear-gradient(180deg,rgba(6,27,85,.92) 0%,rgba(8,40,102,.76) 38%,rgba(8,40,102,.22) 70%,rgba(8,40,102,.12) 100%),
      url('../images/swimmer.jpg') 58% center/cover no-repeat;
  }
  .hero-grid{min-height:720px}
  .hero-copy{width:100%;padding:54px 0 118px}
  .hero-copy h1{font-size:clamp(2.75rem,13vw,4.3rem)}
  .hero-copy .lead{font-size:1.08rem;max-width:94%}
  .hero-benefits{gap:.85rem}
  .hero-benefits span{font-size:.94rem}
  .hero-benefits span::before{width:42px;height:42px}
  .hero-actions .btn{width:100%;min-width:0}
}


/* 2: changing homepage strapline */
.rotating-strapline{
  transition:opacity .32s ease, transform .32s ease, filter .32s ease;
  will-change:opacity,transform,filter;
  min-height:2.2em;
  display:flex;
  align-items:center;
}
.rotating-strapline.is-changing{
  opacity:0;
  transform:translateY(10px);
  filter:blur(4px);
}
@media(max-width:680px){
  .rotating-strapline{min-height:3.25em;}
}
@media(prefers-reduced-motion:reduce){
  .rotating-strapline{transition:none;}
}

/* Term-date lesson selector */
.class-selector-modal{width:min(880px,100%)}
.selector-kicker{margin:0 0 .35rem;color:#008fd5!important;text-transform:uppercase;letter-spacing:.12em;font-weight:900;font-size:.78rem}
.class-selector-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.class-selector-option{display:grid;grid-template-columns:138px 1fr;align-items:stretch;min-height:150px;padding:0;border:1px solid rgba(0,143,213,.16);border-radius:22px;background:#fff;overflow:hidden;text-align:left;cursor:pointer;box-shadow:0 12px 30px rgba(0,76,137,.09);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.class-selector-option:hover,.class-selector-option:focus-visible{transform:translateY(-3px);box-shadow:0 20px 42px rgba(0,76,137,.16);border-color:rgba(0,143,213,.42);outline:none}
.class-selector-option img{width:100%;height:100%;min-height:150px;object-fit:cover}
.class-selector-copy{display:flex;flex-direction:column;padding:1rem 1.05rem}
.class-selector-copy strong{font-family:Fredoka,sans-serif;font-size:1.2rem;line-height:1.1;color:#071f52;margin-bottom:.35rem}
.class-selector-copy small{font:inherit;font-size:.88rem;line-height:1.4;color:#61778b}
.class-selector-copy em{margin-top:auto;padding-top:.65rem;color:#008fd5;font-style:normal;font-weight:900;font-size:.88rem}
@media(max-width:720px){.class-selector-grid{grid-template-columns:1fr}.class-selector-option{grid-template-columns:112px 1fr;min-height:132px}.class-selector-option img{min-height:132px}}
@media(max-width:440px){.class-selector-option{grid-template-columns:92px 1fr}.class-selector-copy{padding:.85rem}.class-selector-copy strong{font-size:1.05rem}.class-selector-copy small{font-size:.8rem}}

/* Editable available-classes table */
.available-classes-section{background:linear-gradient(180deg,#fff 0%,#eef9ff 100%)}
.available-classes-heading{display:flex;justify-content:space-between;align-items:end;gap:2rem;margin-bottom:1.5rem}
.available-classes-heading p:last-child{max-width:680px;color:var(--muted);margin-bottom:0}
.class-table-filters{display:grid;grid-template-columns:1fr 1fr 1.35fr;gap:1rem;margin-bottom:1rem;background:#fff;border:1px solid rgba(0,159,227,.12);padding:1rem;border-radius:22px;box-shadow:0 12px 35px rgba(0,80,150,.08)}
.class-table-filters label{display:grid;gap:.35rem;font-weight:900;color:var(--navy)}
.class-table-filters select,.class-table-filters input{width:100%;background:#f8fcff}
.class-table-wrap{overflow:auto;background:#fff;border-radius:24px;border:1px solid rgba(0,159,227,.12);box-shadow:var(--shadow)}
.available-classes-table{width:100%;border-collapse:collapse;min-width:860px}
.available-classes-table th{background:var(--navy);color:#fff;text-align:left;padding:1rem;font-family:Fredoka,sans-serif;font-size:.95rem;white-space:nowrap}
.available-classes-table td{padding:1rem;border-bottom:1px solid rgba(0,80,150,.08);vertical-align:middle}
.available-classes-table tbody tr{transition:.18s;background:#fff}
.available-classes-table tbody tr:hover{background:#f0faff}
.available-classes-table tbody tr:last-child td{border-bottom:0}
.class-status{display:inline-flex;padding:.35rem .65rem;border-radius:999px;background:#eaf8ff;color:var(--deep);font-weight:900;font-size:.85rem}
.class-table-button{border:0;background:transparent;color:var(--blue);font:inherit;font-weight:900;cursor:pointer;white-space:nowrap}
.class-table-button:hover{text-decoration:underline}
.class-table-empty{text-align:center;padding:2rem;color:var(--muted)}
@media(max-width:850px){.available-classes-heading{align-items:flex-start;flex-direction:column}.class-table-filters{grid-template-columns:1fr}.available-classes-heading .btn{width:100%}}

/* Admin access */
.footer-admin-button{border:0;background:transparent;color:#d9edff;font:inherit;padding:.25rem 0;cursor:pointer;display:block}.footer-admin-button:hover{text-decoration:underline}.admin-login-backdrop{position:fixed;inset:0;z-index:300;background:rgba(1,18,48,.76);display:none;align-items:center;justify-content:center;padding:1rem}.admin-login-backdrop.open{display:flex}.admin-login-card{width:min(430px,100%);background:#fff;border-radius:28px;padding:2rem;position:relative;box-shadow:0 35px 90px rgba(0,0,0,.32)}.admin-login-logo{width:210px;max-height:82px;object-fit:contain;margin:0 auto 1rem}.admin-login-card h2{font-size:2rem;margin-bottom:1.2rem;text-align:center}.admin-login-card>.eyebrow{text-align:center}.admin-login-card form{display:grid;gap:1rem}.admin-login-card label{display:grid;gap:.4rem;font-weight:900;color:var(--navy)}.admin-login-close{position:absolute;right:.75rem;top:.75rem;width:42px;height:42px;border:0;border-radius:50%;background:var(--soft);color:var(--navy);font-size:1.5rem;cursor:pointer}.admin-login-message{min-height:1.4rem;margin:0;text-align:center;font-weight:800;color:#b42318}.admin-login-message.success{color:#18864b}

/* Separate term-dates pop-up */
.term-dates-modal{width:min(920px,100%)}
.all-term-dates{display:grid;gap:1rem}
.term-card-full{display:block!important;margin:0;background:linear-gradient(180deg,#f7fcff,#eef9ff);border:1px solid rgba(0,143,213,.16);border-radius:22px;padding:1.2rem}
.term-card-full h3{font-size:1.45rem;margin-bottom:.35rem;color:#071f52}
.term-card-full>p{color:#4d667a}
.term-card-full .term-days{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}
.term-card-full .term-day{background:#fff;box-shadow:0 9px 24px rgba(0,76,137,.07)}
.term-rebooking{margin:.9rem 0 0;font-weight:800;color:#005f99!important}
.term-dates-empty{text-align:center;padding:2rem;color:var(--muted)}
@media(max-width:760px){.term-card-full .term-days{grid-template-columns:1fr}}

/* 8: colour-coded class availability */
.class-status{display:inline-flex;align-items:center;justify-content:center;padding:.38rem .7rem;border-radius:999px;font-weight:900;font-size:.82rem;line-height:1;color:#fff;white-space:nowrap;box-shadow:inset 0 -1px 0 rgba(0,0,0,.12)}
.class-status.status-available{background:#27a844;color:#fff}
.class-status.status-limited{background:#f28c18;color:#fff}
.class-status.status-full{background:#d9363e;color:#fff}
.class-status.status-enquire{background:#1687d9;color:#fff}
.availability-item-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:.8rem;margin-bottom:.3rem}
.availability-item-heading strong{margin-bottom:0!important}
@media(max-width:440px){.availability-item-heading{align-items:flex-start;flex-direction:column}.availability-item-heading .class-status{align-self:flex-start}}

/* 9 lesson-type colours and morning/afternoon filtering */
.lesson-type-badge{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:.38rem .68rem;font-weight:900;font-size:.84rem;line-height:1.15;white-space:nowrap;color:#fff;box-shadow:inset 0 -1px 0 rgba(0,0,0,.12)}
.lesson-type-baby{background:#e95383}
.lesson-type-preschool{background:#f39a24}
.lesson-type-learn{background:#55ad3f}
.lesson-type-private{background:#7556c8}
.lesson-type-adult{background:#194f91}
.lesson-type-default{background:#168ac7}
.time-period-label{display:block;margin-top:.22rem;color:#63798c;font-size:.74rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em}
.modal-time-period{display:inline-flex;margin:.55rem 0 0;padding:.25rem .48rem;border-radius:999px;background:#edf8ff;color:#0a75ae}
.availability-type-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.65rem}
.class-table-filters{grid-template-columns:1fr 1fr 1fr 1.35fr}
@media(max-width:1050px){.class-table-filters{grid-template-columns:1fr 1fr}}
@media(max-width:650px){.class-table-filters{grid-template-columns:1fr}.availability-type-row{align-items:flex-start;flex-direction:column}}

/* 0: focused class popup and coloured day labels */
.modal-actions-stack{display:grid;gap:.65rem;margin-top:1rem}
.term-dates-link{border:0;background:transparent;color:#008fd5;font:inherit;font-weight:900;text-decoration:underline;text-underline-offset:3px;cursor:pointer;padding:.45rem .5rem}
.term-dates-link:hover{color:#071f52}
.day-badge{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:.34rem .64rem;font-weight:900;font-size:.82rem;line-height:1.15;white-space:nowrap;color:#fff;box-shadow:inset 0 -1px 0 rgba(0,0,0,.12)}
.day-monday{background:#6b5bd2}.day-tuesday{background:#e95383}.day-wednesday{background:#f29a24}.day-thursday{background:#2aa887}.day-friday{background:#168ac7}.day-saturday{background:#194f91}.day-sunday{background:#9a5aa5}.day-other{background:#607d8b}
.availability-day-time{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;margin-top:.35rem}.availability-item .day-badge{color:#fff}
@media(max-width:520px){.availability-day-time{align-items:flex-start;flex-direction:column;gap:.35rem}}

/* Direct class enquiry buttons */
.class-row-actions{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap}
.class-enquire-button,.availability-enquire-button{border:0;border-radius:999px;background:linear-gradient(135deg,#2434c6,#009fe3);color:#fff;font:inherit;font-weight:900;cursor:pointer;box-shadow:0 8px 20px rgba(0,120,220,.18)}
.class-enquire-button{padding:.55rem .8rem;white-space:nowrap}
.availability-enquire-button{display:block;width:100%;margin-top:1rem;padding:.75rem 1rem}
.class-enquire-button:hover,.availability-enquire-button:hover{transform:translateY(-1px)}
#enquire{scroll-margin-top:130px}

/* 2: colour-coded term dates popup */
.term-dates-modal{background:linear-gradient(180deg,#fbfeff 0%,#eef9ff 100%)}
.term-dates-modal .modal-header{background:linear-gradient(135deg,#071f52 0%,#0b63a8 58%,#12a7df 100%);color:#fff;border-radius:26px 26px 0 0}
.term-dates-modal .modal-header h2,.term-dates-modal .modal-header p{color:#fff}
.term-dates-modal .modal-close{color:#fff;background:rgba(255,255,255,.16);border-radius:50%}
.all-term-dates{gap:1.4rem}
.term-card-full{padding:0!important;overflow:hidden;border:0!important;background:#fff!important;box-shadow:0 18px 46px rgba(0,76,137,.13)}
.term-title-banner{display:flex;align-items:center;gap:1rem;padding:1.15rem 1.3rem;color:#fff}
.term-title-banner h3{color:#fff!important;margin:.1rem 0 0!important;font-size:1.7rem!important;line-height:1.08}
.term-title-icon{width:54px;height:54px;border-radius:18px;display:grid;place-items:center;background:rgba(255,255,255,.2);font-size:1.8rem;box-shadow:inset 0 0 0 1px rgba(255,255,255,.2)}
.term-season-label{display:block;text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;font-weight:900;color:rgba(255,255,255,.88)}
.term-autumn .term-title-banner{background:linear-gradient(135deg,#c95a16 0%,#f28c28 52%,#f6b343 100%)}
.term-spring .term-title-banner{background:linear-gradient(135deg,#2f8f4e 0%,#59b96a 52%,#91cf70 100%)}
.term-summer .term-title-banner{background:linear-gradient(135deg,#0877bd 0%,#18acd0 52%,#52d6c7 100%)}
.term-default .term-title-banner{background:linear-gradient(135deg,#3446b8,#009fe3)}
.term-card-content{padding:1.15rem 1.25rem 1.3rem}
.term-intro{margin:.1rem 0 .55rem!important;color:#4d667a!important}
.term-length{margin:.2rem 0 .9rem!important;color:#163c63!important}
.term-card-full .term-days{grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem}
.term-card-full .term-day{padding:.9rem;border-radius:18px;border:1px solid rgba(0,143,213,.13);background:linear-gradient(180deg,#fff,#f8fcff);box-shadow:0 8px 22px rgba(0,76,137,.06)}
.term-day-heading{margin-bottom:.65rem}
.term-date-row{display:grid;grid-template-columns:minmax(105px,.8fr) 1.2fr;gap:.65rem;align-items:center;padding:.48rem 0;border-top:1px solid rgba(16,44,122,.08)}
.term-date-row:first-of-type{border-top:0}
.month-badge{display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:.3rem .62rem;border-radius:999px;color:#fff;font-weight:900;font-size:.78rem;text-align:center;box-shadow:0 5px 13px rgba(0,0,0,.08)}
.month-january{background:#159a9c}.month-february{background:#2d7dd2}.month-march{background:#7c4dbe}.month-april{background:#d6a51e;color:#2f2600}.month-may{background:#43a047}.month-june{background:#f28c28}.month-july{background:#df4d5a}.month-august{background:#11a8bf}.month-september{background:#d68b16}.month-october{background:#ec6d1d}.month-november{background:#8a5a3c}.month-december{background:#62a9d8}.month-half-term{background:#c83d55}.month-other{background:#657b8f}
.term-date-value{font-weight:800;color:#294860;line-height:1.35}
.term-rebooking{margin:1rem 0 0!important;padding:.85rem 1rem;border-radius:14px;background:#e8f6ff;color:#005f99!important}
.day-badge{display:inline-flex;align-items:center;justify-content:center;padding:.38rem .75rem;border-radius:999px;color:#fff;font-weight:900;font-size:.82rem;line-height:1}
.day-monday{background:#2878c8}.day-tuesday{background:#3a9a52}.day-wednesday{background:#7651b5}.day-thursday{background:#e48922}.day-friday{background:#d84b5c}.day-saturday{background:#288fac}.day-sunday{background:#2b9b76}.day-other{background:#607d8b}
@media(max-width:900px){.term-card-full .term-days{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.term-card-full .term-days{grid-template-columns:1fr}.term-date-row{grid-template-columns:1fr}.month-badge{justify-self:start}.term-title-banner{padding:1rem}.term-title-banner h3{font-size:1.4rem!important}}

/* 4: full classes cannot be enquired about */
.class-row-full td:not(:nth-child(6)){color:#7f8d99}
.class-row-full .lesson-type-badge,.class-row-full .day-badge{filter:saturate(.45);opacity:.68}
.class-enquire-button.enquire-disabled,.availability-enquire-button.enquire-disabled,.modal-enquire.enquire-disabled{
  background:#c8d0d6!important;
  color:#687681!important;
  border-color:#c8d0d6!important;
  box-shadow:none!important;
  cursor:not-allowed!important;
  opacity:.82;
  pointer-events:none;
  text-decoration:none!important;
}
.availability-item-full{background:#f4f6f7!important;color:#7f8d99}
.availability-item-full .lesson-type-badge,.availability-item-full .day-badge{filter:saturate(.45);opacity:.7}
.availability-item-full .availability-item-heading strong{color:#687681}

/* 4: make each day heading prominent in the term-dates pop-up */
.term-card-full .term-day-heading{margin-bottom:.8rem}
.term-card-full .term-day-heading .day-badge{
  font-family:Fredoka,sans-serif;
  font-size:1.25rem;
  padding:.62rem 1.05rem;
  min-width:150px;
  justify-content:flex-start;
  border-radius:16px;
  box-shadow:0 7px 18px rgba(0,76,137,.16),inset 0 -2px 0 rgba(0,0,0,.10);
}
@media(max-width:620px){
  .term-card-full .term-day-heading .day-badge{font-size:1.1rem;min-width:135px;padding:.55rem .9rem}
}


/* Places-left column and badges */
.places-left-badge{display:inline-flex;align-items:center;justify-content:center;min-width:2.4rem;padding:.34rem .62rem;border-radius:999px;background:#e8f7ff;color:#005f99;font-weight:900;font-size:.85rem;white-space:nowrap}
.places-left-badge.places-none{background:#f1f3f5;color:#667085}
.availability-meta-badges{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;margin-left:auto}
@media(max-width:760px){.availability-meta-badges{margin-left:0}}


/* 6: lesson column is the only class-details link */
.lesson-type-link{border:0;cursor:pointer;font:inherit;font-weight:900;gap:.35rem;transition:transform .16s ease,box-shadow .16s ease,filter .16s ease}
.lesson-type-link:hover{transform:translateY(-1px);filter:brightness(1.06);box-shadow:0 7px 18px rgba(0,80,150,.18)}
.lesson-type-link:focus-visible{outline:3px solid rgba(0,159,227,.32);outline-offset:3px}
.available-classes-table td:last-child,.available-classes-table th:last-child{text-align:center}
.available-classes-table{min-width:820px}
.class-table-button{display:none!important}
.class-name-badge{display:inline-flex;align-items:center;border-radius:999px;padding:.38rem .68rem;background:#e9f5fb;color:#154b6d;font-weight:900;font-size:.84rem;line-height:1.15;white-space:nowrap}

/* month-card term-date layout */
.term-month-layout .term-card-content{padding:1.25rem 1.35rem 1.45rem}
.term-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;margin:1rem 0 1.15rem}
.term-summary-card{position:relative;overflow:hidden;border-radius:18px;padding:1rem 1.05rem;background:#f4faff;border:1px solid rgba(0,118,188,.12);box-shadow:0 8px 22px rgba(0,76,137,.06)}
.term-summary-card::after{content:"";position:absolute;right:-24px;bottom:-30px;width:90px;height:90px;border-radius:50%;background:rgba(255,255,255,.42)}
.term-summary-card span{display:block;text-transform:uppercase;letter-spacing:.09em;font-size:.7rem;font-weight:900;opacity:.76;margin-bottom:.25rem}
.term-summary-card strong{position:relative;z-index:1;display:block;font-family:Fredoka,sans-serif;font-size:1.12rem;line-height:1.25;color:#071f52}
.term-summary-card.start{background:linear-gradient(135deg,#e7f8ed,#f7fff9);border-color:rgba(47,143,78,.22)}
.term-summary-card.finish{background:linear-gradient(135deg,#e6f5ff,#f8fcff);border-color:rgba(0,143,213,.22)}
.term-day-tabs{display:flex;gap:.55rem;overflow:auto;padding:.15rem 0 .75rem;margin-bottom:.25rem;scrollbar-width:thin}
.term-day-tabs button{flex:0 0 auto;border:1px solid rgba(0,118,188,.18);background:#fff;color:#0b4d75;border-radius:999px;padding:.58rem .9rem;font:inherit;font-size:.86rem;font-weight:900;cursor:pointer;transition:.18s}
.term-day-tabs button:hover,.term-day-tabs button.active{background:#071f52;color:#fff;border-color:#071f52;box-shadow:0 8px 20px rgba(7,31,82,.18)}
.half-term-alert{display:grid;grid-template-columns:auto 1fr;gap:.85rem;align-items:start;margin:.35rem 0 1rem;padding:1rem 1.05rem;border-radius:18px;background:linear-gradient(135deg,#fff0db,#fff9ef);border:1px solid rgba(242,140,40,.28);color:#744116}
.half-term-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:#f28c28;color:#fff;font-size:1.1rem}
.half-term-alert strong{display:block;font-family:Fredoka,sans-serif;font-size:1.05rem;margin-bottom:.35rem}
.half-term-alert p{display:flex;align-items:center;gap:.55rem;margin:.35rem 0;color:#744116;font-weight:800}
.half-term-alert[hidden],.half-term-alert p[hidden]{display:none!important}
.term-month-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.term-month-card{border-radius:20px;background:#fff;border:1px solid rgba(0,118,188,.13);overflow:hidden;box-shadow:0 10px 28px rgba(0,76,137,.07)}
.term-month-card>header{display:flex;align-items:center;gap:.65rem;padding:.85rem 1rem;background:linear-gradient(135deg,#eaf7ff,#f9fdff);border-bottom:1px solid rgba(0,118,188,.1)}
.term-month-card h4{margin:0;font-family:Fredoka,sans-serif;font-size:1.25rem;color:#071f52}
.month-card-icon{font-size:1.15rem}
.month-card-days{padding:.35rem .9rem .75rem}
.month-day-row{display:grid;grid-template-columns:minmax(120px,.7fr) 1.3fr;gap:.75rem;align-items:center;padding:.72rem 0;border-top:1px solid rgba(7,31,82,.08)}
.month-day-row:first-child{border-top:0}
.month-date-list{font-weight:900;color:#294860;line-height:1.4}
.term-footer-note{margin:1rem 0 0!important;padding:.8rem 1rem;border-radius:14px;background:#f3f9fd;color:#294860!important}
.term-month-card[hidden],.month-day-row[hidden]{display:none!important}
@media(max-width:760px){
  .term-summary-grid{grid-template-columns:1fr}
  .term-month-grid{grid-template-columns:1fr}
  .term-day-tabs{margin-left:-.15rem;margin-right:-.15rem;padding-left:.15rem;padding-right:.15rem}
}
@media(max-width:480px){
  .term-month-layout .term-card-content{padding:1rem}
  .month-day-row{grid-template-columns:1fr;gap:.4rem}
  .month-day-row .day-badge{justify-self:start}
  .half-term-alert p{align-items:flex-start;flex-direction:column;gap:.3rem}
}

/* Aqua Fish AI assistant */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.ai-chat-launcher{position:fixed;right:22px;bottom:22px;z-index:80;border:0;border-radius:999px;padding:.9rem 1.15rem;background:linear-gradient(135deg,#2434c6,#009fe3);color:#fff;font:inherit;font-weight:900;box-shadow:0 18px 45px rgba(0,80,150,.32);display:flex;gap:.5rem;align-items:center;cursor:pointer}
.ai-chat-launcher span:first-child{font-size:1.25rem}.ai-chat-panel{position:fixed;right:22px;bottom:86px;z-index:90;width:min(410px,calc(100vw - 28px));max-height:min(680px,calc(100vh - 110px));background:#fff;border-radius:25px;box-shadow:0 28px 80px rgba(0,35,80,.3);overflow:hidden;border:1px solid rgba(0,159,227,.2);display:flex;flex-direction:column}.ai-chat-panel[hidden]{display:none!important}
.ai-chat-header{background:linear-gradient(135deg,#071f52,#008fd5);color:#fff;padding:1rem 1.1rem;display:flex;align-items:center;justify-content:space-between}.ai-chat-header div{display:grid}.ai-chat-header strong{font-family:Fredoka,sans-serif;font-size:1.1rem}.ai-chat-header small{opacity:.8}.ai-chat-header button{border:0;background:rgba(255,255,255,.15);color:#fff;width:36px;height:36px;border-radius:50%;font-size:1.4rem;cursor:pointer}
.ai-chat-messages{padding:1rem;overflow:auto;display:flex;flex-direction:column;gap:.75rem;min-height:190px;background:linear-gradient(180deg,#f8fdff,#eef9ff)}.ai-message{max-width:88%;padding:.78rem .9rem;border-radius:17px;line-height:1.45;white-space:pre-wrap}.ai-message-assistant{align-self:flex-start;background:#fff;color:#20384c;border:1px solid rgba(0,159,227,.15);border-bottom-left-radius:5px}.ai-message-user{align-self:flex-end;background:#087fc1;color:#fff;border-bottom-right-radius:5px}.ai-message-error{background:#fff0f0;color:#9b1c2f}.ai-message-thinking{opacity:.7;font-style:italic}
.ai-suggestions{display:flex;gap:.45rem;overflow-x:auto;padding:.65rem .8rem;background:#fff;border-top:1px solid #e5f2f8}.ai-suggestions button{flex:0 0 auto;border:1px solid #b9dded;border-radius:999px;background:#f4fbff;color:#075d8b;padding:.48rem .7rem;font:inherit;font-size:.8rem;font-weight:800;cursor:pointer}
.ai-chat-form{display:grid;grid-template-columns:1fr auto;gap:.55rem;padding:.75rem;background:#fff;border-top:1px solid #e5f2f8}.ai-chat-form textarea{resize:none;border:1px solid #bdd9e8;border-radius:15px;padding:.72rem;font:inherit;min-height:48px}.ai-chat-form button{border:0;border-radius:14px;background:#009fe3;color:#fff;padding:.65rem .85rem;font:inherit;font-weight:900;cursor:pointer}.ai-chat-form button:disabled{opacity:.55;cursor:wait}.ai-chat-disclaimer{margin:0;padding:0 .85rem .75rem;background:#fff;color:#718596;font-size:.72rem;line-height:1.35}
@media(max-width:680px){.ai-chat-launcher{right:14px;bottom:78px}.ai-chat-panel{right:14px;bottom:136px;max-height:calc(100vh - 160px)}}


/* database booking system */
.class-action-buttons,.availability-action-row{display:flex;gap:.45rem;flex-wrap:wrap}.class-book-button,.availability-book-button{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:.58rem .8rem;background:#20a449;color:#fff;font-weight:900;text-decoration:none;white-space:nowrap}.class-book-button:hover,.availability-book-button:hover{background:#16873b}.booking-disabled{background:#b7c0c6!important;color:#eef2f4!important;pointer-events:none}.booking-page{padding-top:190px}.booking-header .nav-wrap{min-height:118px}.booking-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:2rem;align-items:start}.booking-class-summary,.booking-form,.booking-notice{background:#fff;border:1px solid rgba(0,159,227,.14);border-radius:24px;padding:1.4rem;box-shadow:0 18px 50px rgba(0,80,150,.12)}.booking-form{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.booking-form label{display:grid;gap:.35rem;font-weight:900;color:#071f52}.booking-form input,.booking-form select,.booking-form textarea{width:100%;padding:.85rem 1rem;border:1px solid #c4dbe7;border-radius:14px;font:inherit}.booking-consent{display:flex!important;grid-template-columns:auto 1fr;align-items:start}.booking-consent input{width:auto;margin-top:.3rem}.booking-small{grid-column:1/-1;color:#667d91}.booking-notice.success{border-left:7px solid #22a447}.booking-notice.error{border-left:7px solid #cc314d;color:#8b1e31}@media(max-width:820px){.booking-layout,.booking-form{grid-template-columns:1fr}.booking-page{padding-top:140px}}

/* database class linkage */
.modal-no-classes{padding:1.2rem;border-radius:16px;background:#eef9ff;color:#31566f;text-align:center}

/* Database-backed enquiry form */
.enquiry-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.form-note-success{color:#08783e!important;font-weight:900}
.enquiry-form button[disabled]{opacity:.65;cursor:wait;transform:none}


/* USP cards: supports up to eight homepage selling points */
.feature-grid{align-items:stretch}.feature-card{height:100%;display:flex;flex-direction:column}.feature-card h3{margin:.1rem 0 .55rem}.feature-card p{margin-top:auto}.feature-grid:has(.feature-card:nth-child(5)){grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:980px){.feature-grid,.feature-grid:has(.feature-card:nth-child(5)){grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.feature-grid,.feature-grid:has(.feature-card:nth-child(5)){grid-template-columns:1fr}}

/* Finn assistant branding */
.fin-help-card{display:block}.fin-help-copy{max-width:100%}.fin-help-copy h3{margin:.4rem 0}.fin-help-action{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-top:.5rem}.fin-primary-button{margin:0}.fin-help-logo-wrap,.fin-chat-logo-wrap{position:relative;display:grid;place-items:center;background:transparent!important;box-shadow:none!important;border:0!important;overflow:visible!important}.fin-help-logo-wrap{width:118px;height:72px;flex:0 0 118px}.fin-logo{display:block;max-width:100%;height:auto;transform-origin:50% 55%;will-change:transform,filter;background:transparent}.fin-help-logo{width:118px}.fin-chat-logo{width:104px}.fin-powered{font-size:.78rem;color:var(--muted);margin:.45rem 0 0}.fin-or{display:flex;align-items:center;gap:.75rem;margin:1.25rem 0 .85rem;color:#7690a3;font-weight:900;text-transform:uppercase;font-size:.76rem;letter-spacing:.12em}.fin-or::before,.fin-or::after{content:"";height:1px;flex:1;background:#cfe3ed}.fin-chat-identity{display:flex!important;grid-template-columns:none!important;align-items:center;gap:.75rem}.fin-chat-logo-wrap{width:112px;height:64px;flex:0 0 112px;border-radius:0}.fin-chat-name{display:grid}.fin-chat-name strong{font-size:1.28rem}.fin-chat-name small{font-size:.75rem;line-height:1.2}.fin-bubble{position:absolute;width:10px;height:10px;border:2px solid rgba(0,159,227,.7);border-radius:50%;opacity:0;pointer-events:none}.fin-bubble-one{right:12%;bottom:20%}.fin-bubble-two{right:3%;bottom:40%;width:7px;height:7px}.fin-bubble-three{right:22%;bottom:8%;width:6px;height:6px}.fin-logo.fin-animate{animation:finSwim 1.45s ease-in-out}.fin-logo.fin-thinking{animation:finThink 1s ease-in-out infinite}.fin-logo.fin-animate~.fin-bubble,.fin-logo.fin-thinking~.fin-bubble{animation:finBubble 1.35s ease-out infinite}.fin-logo.fin-animate~.fin-bubble-two,.fin-logo.fin-thinking~.fin-bubble-two{animation-delay:.22s}.fin-logo.fin-animate~.fin-bubble-three,.fin-logo.fin-thinking~.fin-bubble-three{animation-delay:.42s}@keyframes finSwim{0%,100%{transform:translateY(0) rotate(0);filter:drop-shadow(0 7px 14px rgba(0,0,0,.12))}25%{transform:translateY(-7px) rotate(-4deg);filter:drop-shadow(0 0 16px rgba(36,199,207,.55))}55%{transform:translateY(2px) rotate(5deg);filter:drop-shadow(0 0 22px rgba(0,159,227,.65))}80%{transform:translateY(-3px) rotate(-2deg)}}@keyframes finThink{0%,100%{transform:translateY(0) rotate(-2deg);filter:drop-shadow(0 0 8px rgba(36,199,207,.25))}50%{transform:translateY(-5px) rotate(3deg);filter:drop-shadow(0 0 18px rgba(0,159,227,.65))}}@keyframes finBubble{0%{transform:translateY(0) scale(.65);opacity:0}20%{opacity:.85}100%{transform:translateY(-52px) scale(1.2);opacity:0}}@media(max-width:760px){.fin-help-action{justify-content:flex-start}.fin-primary-button{width:auto;min-width:150px}.fin-help-logo-wrap{width:100px;height:64px;flex-basis:100px}.fin-help-logo{width:100px}.fin-chat-logo-wrap{width:94px;flex-basis:94px}.fin-chat-logo{width:88px}}@media(max-width:440px){.fin-help-action{gap:.5rem}.fin-primary-button{flex:1}.fin-help-logo-wrap{width:82px;flex-basis:82px}.fin-help-logo{width:82px}}@media(prefers-reduced-motion:reduce){.fin-logo.fin-animate,.fin-logo.fin-thinking,.fin-logo.fin-animate~.fin-bubble,.fin-logo.fin-thinking~.fin-bubble{animation:none!important}}
.ai-feedback{align-self:flex-start;display:flex;align-items:center;gap:.4rem;margin:-.35rem 0 .2rem .2rem;color:#607789;font-size:.75rem}.ai-feedback button{border:1px solid #cfe3ed;background:#fff;border-radius:999px;padding:.25rem .45rem;cursor:pointer}.ai-escalation-form{align-self:stretch;background:#fff;border:1px solid #cfe3ed;border-radius:16px;padding:.8rem;display:grid;gap:.5rem}.ai-escalation-form input{border:1px solid #bdd9e8;border-radius:10px;padding:.6rem;font:inherit}.ai-escalation-form button{border:0;border-radius:10px;background:#087fc1;color:#fff;padding:.6rem;font-weight:800}.ai-escalation-form small{color:#526a7c}

.consent-check{display:flex!important;gap:.65rem;align-items:flex-start}.consent-check input{width:auto!important;margin-top:.25rem}

.children-admin-table .class-text-list{display:grid;gap:.28rem;margin:0;padding:0;list-style:none}
.children-admin-table .class-text-list>div{margin:0;padding:0;line-height:1.35}

.class-term-price-form{display:flex;align-items:center;gap:.45rem;min-width:185px}
.class-term-price-form .currency-input{display:flex;align-items:center;gap:.2rem;white-space:nowrap}
.class-term-price-form input[type="number"]{width:88px;min-width:88px;padding:.45rem .5rem}
.class-term-price-form button{white-space:nowrap}
@media (max-width:900px){.class-term-price-form{min-width:175px}}

.class-term-name{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:92px;max-width:150px;padding:.62rem .9rem;border-radius:999px;
  background:linear-gradient(135deg,#b86627 0%,#d98b43 100%);
  color:#fff;font-weight:900;line-height:1.15;text-align:center;
  box-shadow:0 8px 18px rgba(154,84,32,.20);
}
.class-term-name.term-spring{background:linear-gradient(135deg,#2f8f4e,#72bd65)}
.class-term-name.term-summer{background:linear-gradient(135deg,#0877bd,#32baca)}
.class-term-name.term-winter{background:linear-gradient(135deg,#526ca8,#78a9d5)}
.class-row-full .class-term-name{filter:saturate(.45);opacity:.65;box-shadow:none}

.birth-month-year{border:0;padding:0;margin:0;min-width:0}
.birth-month-year legend{font-weight:700;margin-bottom:.45rem}
.birth-month-year-grid{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}
.birth-month-year-grid label{margin:0}
@media (max-width:640px){.birth-month-year-grid{grid-template-columns:1fr}}

/* AquaFish 1.0.4 - enquiry form popup */
.enquiry-popup-card{background:#fff;border-radius:28px;padding:clamp(26px,4vw,44px);box-shadow:0 18px 50px rgba(7,58,105,.12);align-self:stretch;display:flex;flex-direction:column;justify-content:center}.enquiry-popup-card h2{margin:.25rem 0 .65rem}.enquiry-popup-card .btn{align-self:flex-start;margin-top:1rem}.enquiry-modal-backdrop{z-index:1200}.enquiry-popup-modal{width:min(860px,calc(100% - 32px));max-height:calc(100vh - 32px);overflow:auto}.enquiry-form-popup{margin:0;box-shadow:none;background:transparent;padding:0}.footer-enquiry-link{display:block;padding:0;margin:.35rem 0;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.footer-enquiry-link:hover{text-decoration:underline}.mobile-book{border:0;cursor:pointer}.enquiry-form-popup .form-note{margin-bottom:0}@media(max-width:760px){.enquiry-cta-grid{grid-template-columns:1fr}.enquiry-popup-modal{width:calc(100% - 20px);max-height:calc(100vh - 20px)}.enquiry-popup-modal .modal-body{padding-left:18px;padding-right:18px}}


/* AquaFish 1.0.5 - enquiry popup viewport/focus fix */
.enquiry-modal-backdrop{justify-content:center;align-items:center;padding:16px;overflow:auto;}
.enquiry-popup-modal{margin:auto;max-height:calc(100dvh - 32px);overscroll-behavior:contain;}
@media(max-width:760px){.enquiry-modal-backdrop{align-items:center;padding:10px}.enquiry-popup-modal{max-height:calc(100dvh - 20px);border-radius:20px}}


/* AquaFish 1.0.6 - enquiry popup alignment and spacing refinement */
.enquiry-popup-modal{
  width:min(820px,calc(100% - 40px));
  box-sizing:border-box;
}
.enquiry-popup-modal .modal-header{
  padding:1.8rem 4.2rem 1.1rem 2.6rem;
}
.enquiry-popup-modal .modal-body{
  padding:0 2.6rem 2rem;
}
.enquiry-popup-modal .enquiry-form-popup{
  width:100%;
  box-sizing:border-box;
  column-gap:1.35rem;
  row-gap:1rem;
}
.enquiry-popup-modal .enquiry-form-popup label,
.enquiry-popup-modal .enquiry-form-popup fieldset{
  min-width:0;
  box-sizing:border-box;
}
.enquiry-popup-modal .enquiry-form-popup input,
.enquiry-popup-modal .enquiry-form-popup select,
.enquiry-popup-modal .enquiry-form-popup textarea{
  width:100%;
  box-sizing:border-box;
}
@media(max-width:760px){
  .enquiry-popup-modal{width:calc(100% - 24px)}
  .enquiry-popup-modal .modal-header{padding:1.45rem 3.6rem .9rem 1.55rem}
  .enquiry-popup-modal .modal-body{padding:0 1.55rem 1.5rem}
}
@media(max-width:520px){
  .enquiry-popup-modal{width:calc(100% - 16px)}
  .enquiry-popup-modal .modal-header{padding-left:1.35rem;padding-right:3.4rem}
  .enquiry-popup-modal .modal-body{padding-left:1.35rem;padding-right:1.35rem}
}

/* AquaFish 1.0.7 - enquiry popup left-edge clipping fix */
.enquiry-popup-modal .enquiry-form-popup{
  padding-left:12px;
  padding-right:4px;
}
.enquiry-popup-modal .modal-header{
  padding-left:calc(2.6rem + 12px);
}
@media(max-width:760px){
  .enquiry-popup-modal .enquiry-form-popup{padding-left:10px;padding-right:2px}
  .enquiry-popup-modal .modal-header{padding-left:calc(1.55rem + 10px)}
}
@media(max-width:520px){
  .enquiry-popup-modal .enquiry-form-popup{padding-left:9px;padding-right:1px}
  .enquiry-popup-modal .modal-header{padding-left:calc(1.35rem + 9px)}
}
