:root{--blue:#0864ac;--navy:#073957;--aqua:#58cfdf;--orange:#ff701f;--pale:#effaff;--ink:#103f57;--muted:#506b7a;--line:#d5e5ed}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:105px}body{margin:0;color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.65}a{color:inherit}button,input,select,textarea{font:inherit}button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--orange);outline-offset:5px}img{max-width:100%;display:block}h1,h2,h3,p{margin:0}p+p{margin-top:1rem}h1,h2,h3{line-height:1.08;letter-spacing:-.045em}h1{font-size:clamp(3.5rem,6.8vw,6.7rem);font-weight:900}h2{font-size:clamp(2.25rem,4vw,3.65rem);font-weight:800}h3{font-size:1.5rem;letter-spacing:-.025em}p{color:var(--muted)}.eyebrow{font-size:.8rem;font-weight:800;letter-spacing:.12em;line-height:1.5;margin-bottom:1.3rem;color:var(--blue)}.lead{font-size:1.45rem;line-height:1.45}.topbar{background:var(--navy);color:#fff;text-align:center;padding:8px 24px;font-size:.875rem}.topbar a{margin-left:28px;color:var(--aqua);text-decoration:none;font-weight:bold}header{height:98px;padding:0 max(5vw,20px);display:flex;align-items:center;justify-content:space-between;background:#fff;position:sticky;top:0;z-index:10;box-shadow:0 2px 0 #0739570a}.brand{display:flex;align-items:center;text-decoration:none;line-height:1.05;font-size:1.4rem;font-weight:900;color:var(--blue);letter-spacing:-.03em;gap:10px}.brand img{width:66px;height:66px;object-fit:contain}.brand span span{display:block;font-size:.9rem;letter-spacing:.055em;margin-top:5px}nav{display:flex;align-items:center;gap:28px}nav>a{text-decoration:none;font-size:.9rem;font-weight:bold}nav>a:hover,.text-link:hover{text-decoration:underline;text-underline-offset:5px}.button{display:inline-flex;align-items:center;justify-content:center;background:var(--orange);color:var(--navy);border:0;border-radius:9px;padding:14px 23px;text-decoration:none;font-weight:800;font-size:1rem;cursor:pointer;min-height:48px;line-height:1.4}.button:hover{filter:brightness(.96)}.button.blue{background:var(--blue);color:white}.button.small{padding:12px 20px;font-size:.9rem}.menu-toggle{display:none}.hero{display:grid;grid-template-columns:1.05fr 1fr;background:var(--blue);color:#fff;min-height:650px}.hero-copy{padding:65px 5vw 55px}.hero-copy .eyebrow{color:var(--aqua)}.hero h1 span{color:var(--aqua)}.hero-copy>p:not(.eyebrow){color:#deeff8;max-width:430px;margin-top:22px}.hero-copy .lead{color:#fff!important;margin-top:28px!important}.actions{display:flex;align-items:center;gap:24px;margin-top:30px;flex-wrap:wrap}.text-link{font-weight:700;text-underline-offset:5px}.hero .text-link{font-size:.95rem}.hero-image{position:relative;margin:30px 30px 30px 0}.hero-image>img{width:100%;height:100%;max-height:700px;object-fit:cover;object-position:center 45%;border-radius:80px 12px 80px 12px}.photo-note{position:absolute;bottom:25px;left:-35px;background:#fff;box-shadow:0 8px 30px #0002;color:var(--navy);padding:13px 25px 13px 8px;border-radius:16px;display:flex;align-items:center;line-height:1.4;font-size:1rem}.photo-note img{width:80px;height:80px;object-fit:contain}.hero-notes{display:flex;gap:22px;margin-top:40px;font-size:.85rem;color:#fff}.hero-notes span+span{border-left:1px solid #ffffff60;padding-left:22px}.ribbon{display:flex;justify-content:space-between;background:var(--aqua);padding:22px 5vw;font-weight:800;font-size:.9rem;gap:20px}.section{padding:85px max(5vw,20px);scroll-margin-top:0}.section-head{display:flex;justify-content:space-between;align-items:end;gap:50px;margin-bottom:38px}.section-head>p{max-width:370px}.program-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.program{border:1px solid var(--line);border-radius:15px;padding:26px 24px;position:relative;display:flex;flex-direction:column;overflow:hidden}.number{font-size:2.8rem;color:var(--aqua);font-weight:900;line-height:1;margin-bottom:26px}.program .eyebrow{font-size:.75rem;letter-spacing:.07em;margin-bottom:10px}.program h3{margin-bottom:16px}.program p:not(.eyebrow){font-size:.95rem;line-height:1.7;flex:1}.program-meta{margin-top:26px;padding-top:18px;border-top:1px solid var(--line);font-size:.875rem;color:var(--muted)}.program-meta strong{display:block;font-size:1.1rem;color:var(--blue)}.private-strip{display:flex;justify-content:space-between;gap:30px;background:var(--pale);border-radius:16px;padding:32px;margin-top:26px}.private-strip h3{margin-bottom:10px}.private-strip p{max-width:630px}.private-strip .eyebrow{margin-bottom:10px}.private-strip>div:last-child{flex-shrink:0;display:flex;flex-direction:column;justify-content:center;gap:16px}.private-strip strong{font-size:1.7rem}.private-strip strong span{font-size:.85rem;font-weight:normal}.pathway{background:var(--pale);display:grid;grid-template-columns:1fr 1fr;gap:80px}.pathway>div>p:last-child{margin-top:25px;max-width:450px}.pathway-list>div:not(.download-links){display:flex;gap:20px;align-items:center;padding:0 0 20px;margin-bottom:15px;border-bottom:1px solid var(--line)}.pathway-list>div>span{display:grid;place-items:center;width:44px;height:44px;flex-shrink:0;border-radius:50%;background:#fff;color:var(--blue);font-weight:800}.pathway-list strong{display:block;font-size:1.1rem;color:var(--ink)}.pathway-list p{font-size:.9rem}.download-links{display:flex;gap:15px;flex-wrap:wrap;font-size:.875rem;font-weight:700}.aqua{display:grid;grid-template-columns:1fr 1fr;gap:80px;background:var(--navy)}.aqua-copy h2{color:#fff}.aqua-copy h2 span{color:var(--aqua)}.aqua-copy .eyebrow{color:var(--aqua)}.aqua-copy p:not(.eyebrow){color:#d0e6f0;margin-top:22px;max-width:470px}.aqua-copy .button{margin-top:30px}.aqua-card{border-radius:20px;background:#fff;padding:32px}.aqua-row{display:flex;justify-content:space-between;gap:20px;padding:13px 0;border-bottom:1px solid var(--line)}.aqua-row strong{display:block;font-size:1.1rem}.aqua-row span{font-size:.875rem;color:var(--muted)}.aqua-row b{font-size:1.25rem;align-self:center}.loyalty{background:var(--pale);border-radius:12px;margin-top:24px;padding:18px;display:flex;justify-content:space-between;align-items:center;gap:15px;font-size:.8rem}.loyalty strong{font-size:1.15rem;display:block}.loyalty-price{font-size:1.8rem;font-weight:800;line-height:1.3}.loyalty-price small{display:block;font-size:.75rem;font-weight:normal}.small-print{font-size:.875rem;margin-top:14px;color:var(--muted);line-height:1.5}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:14px}table{width:100%;border-collapse:collapse;text-align:left;font-size:1rem}thead{background:var(--blue);color:#fff}th,td{padding:16px 24px}tbody th{font-weight:600}tbody tr+tr{border-top:1px solid var(--line)}td:last-child{font-weight:800;color:var(--blue)}.highlight{background:var(--pale)}.pricing-notes{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:26px;font-size:.9rem}.pricing-notes strong{display:block;color:var(--ink);margin-bottom:4px}.pricing-notes p{margin:0}.timetable{background:var(--pale);display:grid;grid-template-columns:1fr 1fr;gap:90px}.timetable p{margin-top:22px;max-width:450px}.timetable .button{margin-top:25px}.schedule{background:#fff;padding:14px 28px;border-radius:16px}.schedule>div{padding:20px 0;display:flex;justify-content:space-between;gap:20px}.schedule>div+div{border-top:1px solid var(--line)}.schedule span{text-align:right}.notice{padding:20px;border-left:3px solid var(--orange);background:#fff;line-height:1.6;font-size:.9rem}.visit{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}.visit p{margin-top:20px}.visit .text-link{display:inline-block;margin-top:20px}.visit .notice{background:var(--pale);margin-top:30px}.visit .notice p{margin-top:7px}.visit-photos{position:relative;padding-bottom:65px;padding-right:70px}.visit-photos img:first-child{width:100%;aspect-ratio:1.12;object-fit:cover;border-radius:45px 12px 12px 12px}.visit-photos img:last-child{width:65%;position:absolute;right:0;bottom:0;aspect-ratio:1.5;object-fit:cover;border-radius:12px;border:6px solid #fff}.faqs{background:var(--pale)}details{border-bottom:1px solid #c9dfe9;padding:21px 0}summary{cursor:pointer;font-weight:700;font-size:1.05rem}details p{margin-top:14px;max-width:900px;font-size:.95rem}.contact{display:grid;grid-template-columns:1fr 1fr;gap:80px}.contact h2{color:var(--blue)}.contact>div>p:not(.eyebrow){margin-top:25px;max-width:420px}.contact-link{display:block;font-weight:800;text-decoration:none;font-size:1.8rem;margin-top:25px;color:var(--blue)}.contact-email{display:inline-block;margin-top:6px;overflow-wrap:anywhere}.contact-finn{width:145px;height:145px;object-fit:contain;margin-top:12px}form{padding:32px;border:1px solid var(--line);border-radius:20px;align-self:start}form h3{margin-bottom:26px}label{display:block;font-size:.875rem;font-weight:700;margin-bottom:18px}label span{font-weight:normal;color:var(--muted)}input,select,textarea{display:block;width:100%;margin-top:6px;padding:12px;background:#f8fcfe;color:var(--ink);border:1px solid #b6d0dd;border-radius:7px;min-height:46px;font-size:1rem}textarea{resize:vertical}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}form .button{width:100%;margin-top:18px}#form-status{font-size:.9rem;margin-top:12px}footer{background:var(--navy);color:#fff;padding:40px 5vw;display:flex;justify-content:space-between;align-items:center;gap:30px}footer .brand{color:var(--aqua)}footer .brand img{width:55px;height:55px}footer p{color:#d0e6f0;font-size:.9rem}footer>div{font-size:.875rem;display:flex;flex-direction:column;gap:8px}footer small{color:#b6d4e2;font-size:.8rem}.skip{position:absolute;left:10px;top:-100px;z-index:100;background:#fff;padding:15px}.skip:focus{top:10px}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(min-width:1500px){.section,header,.hero-copy,.ribbon,footer{padding-left:max(5vw,calc((100vw - 1350px)/2));padding-right:max(5vw,calc((100vw - 1350px)/2))}.hero-copy{padding-right:60px}.hero-image{margin-right:max(30px,calc((100vw - 1350px)/2))}}@media(max-width:1100px){nav{gap:18px}.program-grid{grid-template-columns:repeat(2,1fr)}.hero{min-height:620px}.hero h1{font-size:5.2rem}.hero-copy{padding-top:48px}.pathway,.aqua,.contact,.timetable{gap:40px}.private-strip{align-items:center}.section{padding-top:65px;padding-bottom:65px}}@media(max-width:800px){header{height:80px}.brand img{height:56px;width:56px}.menu-toggle{display:block;border:1px solid var(--line);background:#fff;padding:9px 15px;border-radius:8px;color:var(--blue);font-weight:bold;min-height:44px}nav{display:none;position:absolute;top:80px;left:0;right:0;background:#fff;padding:20px;box-shadow:0 8px 15px #07395720;flex-direction:column;align-items:stretch;gap:5px}nav.open{display:flex}nav>a{padding:12px}nav .button{margin-top:8px}.topbar{font-size:.75rem}.topbar a{margin-left:12px}.hero{grid-template-columns:1fr 1fr;min-height:560px}.hero-copy{padding:40px 24px}.hero h1{font-size:3.9rem}.hero .lead{font-size:1.1rem}.hero-image{margin:20px 20px 20px 0}.hero-image>img{border-radius:40px 10px 40px 10px}.photo-note{left:-20px;bottom:15px;font-size:.8rem;padding:7px 12px 7px 0}.photo-note img{width:60px;height:60px}.hero-notes{display:none}.ribbon{display:grid;grid-template-columns:repeat(2,1fr);font-size:.8rem;gap:12px}.section-head{gap:20px;align-items:start}.section-head>p{max-width:280px;font-size:.9rem}.private-strip{flex-direction:column;align-items:stretch}.private-strip>div:last-child{flex-direction:row;align-items:center;justify-content:space-between}.pathway,.aqua,.contact,.timetable,.visit{grid-template-columns:1fr;gap:35px}.aqua-card{max-width:none}.visit-photos{max-width:600px}.contact-finn{display:none}.contact h2 br:last-child{display:none}footer{flex-wrap:wrap}.loyalty strong{font-size:1.1rem}}@media(max-width:580px){.topbar a{display:none}.hero{grid-template-columns:1fr}.hero-copy{padding:40px 24px}.hero h1{font-size:4.7rem}.hero-copy>p:not(.eyebrow){max-width:100%;font-size:1rem}.hero-copy .lead{font-size:1.25rem}.hero-image{margin:0 20px 25px;height:355px}.hero-image>img{object-position:center 44%;border-radius:40px 10px 40px 10px}.photo-note{left:15px;bottom:15px}.hero .eyebrow{font-size:.75rem}.actions{gap:20px}.ribbon{padding:20px 24px}.section{padding:50px 24px}.section-head{flex-direction:column;gap:20px;margin-bottom:25px}.section-head>p{max-width:none}.program-grid{grid-template-columns:1fr;gap:15px}.program{padding:24px}.program .number{font-size:2rem;margin-bottom:15px}.program-meta{display:flex;justify-content:space-between}.private-strip{padding:24px}.private-strip>div:last-child{flex-direction:column;align-items:stretch}.table-wrap{margin-left:-8px;margin-right:-8px}th,td{padding:14px 12px;font-size:.875rem}thead th{font-size:.8rem}table th:first-child{width:48%}.pricing-notes{grid-template-columns:1fr;gap:20px}.aqua-card{padding:24px}.aqua-row b{font-size:1.1rem}.loyalty{padding:14px;gap:8px}.loyalty-price{font-size:1.6rem}.visit-photos{padding-right:35px;padding-bottom:45px}.form-row{grid-template-columns:1fr;gap:0}form{padding:24px}.contact-link{font-size:1.6rem}.contact-email{font-size:.9rem}footer{padding:35px 24px;flex-direction:column;align-items:start;gap:24px}h2{font-size:2.4rem}.schedule{padding:10px 22px}.download-links{flex-direction:column;gap:12px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@media print{header,.topbar,.hero,.ribbon,.contact,footer{display:none}.section{padding:20px}details{display:block}details>p{display:block}.aqua{background:#fff}.aqua-copy h2,.aqua-copy p{color:#103f57!important}.button{display:none}}

/* Keep pricing readable against its dark blue surface. */
#pricing{background:var(--navy);color:#fff}#pricing h2,#pricing .eyebrow,#pricing p,#pricing .pricing-notes strong,#pricing th,#pricing td,#pricing td:last-child{color:#fff}#pricing thead,#pricing .highlight{background:var(--blue)}#pricing .table-wrap,#pricing tbody tr+tr{border-color:#ffffff70}
@media print{#pricing{background:#fff;color:var(--ink)}#pricing h2,#pricing .eyebrow,#pricing p,#pricing .pricing-notes strong,#pricing th,#pricing td,#pricing td:last-child{color:var(--ink)}#pricing thead,#pricing .highlight{background:var(--pale)}}

/* Let photo height follow its displayed width rather than HTML dimensions. */
.visit-photos img{height:auto;min-width:0;max-width:100%}
@media(max-width:800px){.visit-photos{display:grid;grid-template-columns:1fr;gap:16px;width:100%;max-width:600px;padding:0;min-width:0}.visit-photos img:first-child,.visit-photos img:last-child{position:static;width:100%;height:auto;max-height:320px;aspect-ratio:3 / 2;object-fit:cover;border:0;border-radius:16px}}

/* White program copy on an explicit blue surface. */
#programs{background:var(--navy);color:#fff}#programs .section-head h2,#programs .section-head p,#programs .program h3,#programs .program p,#programs .program-meta,#programs .program-meta strong{color:#fff}#programs .program,#programs .program-meta{border-color:#ffffff70}
@media print{#programs{background:#fff;color:var(--ink)}#programs .section-head h2,#programs .section-head p,#programs .program h3,#programs .program p,#programs .program-meta,#programs .program-meta strong{color:var(--ink)}}

/* Readable location and enquiry sections on blue. */
#visit,#contact{background:var(--navy);color:#fff}#visit h2,#contact h2,#contact form h3{color:var(--orange)}#visit>div>.eyebrow,#visit>div>p,#visit .text-link,#contact>div>p,#contact .contact-link,#contact .contact-email,#contact label,#contact label span,#contact form p{color:#fff}#visit .notice{color:var(--ink)}#visit .notice p{color:var(--muted)}#contact form{border-color:#ffffff70}#contact input,#contact select,#contact textarea{color:var(--ink);background:#f8fcfe}#contact input::placeholder,#contact textarea::placeholder{color:var(--muted);opacity:1}
@media print{#visit,#contact{background:#fff;color:var(--ink)}#visit h2,#visit>div>.eyebrow,#visit>div>p,#visit .text-link{color:var(--ink)}}

/* Private lessons sit on a pale card inside the dark program section. */
#programs .private-strip{background:var(--pale);color:var(--navy)}#programs .private-strip h3,#programs .private-strip strong,#programs .private-strip strong span{color:var(--navy)}#programs .private-strip p{color:var(--muted)}#programs .private-strip .eyebrow{color:var(--blue)}#programs .private-strip .button{color:#fff;background:var(--blue)}
