:root{
  --ink:#18212b;
  --navy:#17384b;
  --teal:#4b8292;
  --sky:#eaf7fb;
  --blue:#1a9ad3;
  --gold:#e3bb3b;
  --gold-soft:#fff7d9;
  --cream:#fffdf7;
  --paper:#ffffff;
  --muted:#66737d;
  --line:#d9e5e9;
  --shadow:0 18px 45px rgba(25,56,75,.10);
  --radius:22px;
  --max:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--cream);line-height:1.6}
a{color:inherit}
img{max-width:100%;display:block}
button,input,select,textarea{font:inherit}
.container{width:min(var(--max),calc(100% - 36px));margin-inline:auto}
.eyebrow{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;font-weight:800;color:var(--teal);margin:0 0 .65rem}
h1,h2,h3{font-family:Georgia,"Times New Roman",serif;color:var(--navy);line-height:1.08;margin:0 0 .7em}
h1{font-size:clamp(2.55rem,6vw,5.2rem);letter-spacing:-.035em}
h2{font-size:clamp(2rem,4vw,3.35rem);letter-spacing:-.025em}
h3{font-size:1.35rem}
p{margin:0 0 1em}.lead{font-size:clamp(1.08rem,2vw,1.3rem);color:#44515a;max-width:760px}
.small{font-size:.9rem;color:var(--muted)}
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,253,247,.94);backdrop-filter:blur(14px);border-bottom:1px solid rgba(23,56,75,.09)}
.site-header .container{width:min(1500px,calc(100% - 28px))}
.nav-wrap{min-height:82px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:900;color:var(--navy);flex:0 0 auto}
.brand img{width:54px;height:54px;object-fit:contain}.brand-copy{line-height:1.05}.brand-copy strong{display:block;font-size:.98rem}.brand-copy span{display:block;font-size:.68rem;font-weight:600;color:var(--teal);margin-top:4px}
.nav-links{display:flex;align-items:center;gap:2px;flex-wrap:nowrap;white-space:nowrap;margin-left:auto}.nav-links a{padding:10px 8px;border-radius:12px;text-decoration:none;font-size:.88rem;font-weight:700;color:#31424c}.nav-links a:hover,.nav-links a.active{background:var(--sky);color:var(--navy)}
.nav-links .nav-cta{background:var(--navy);color:white;padding-inline:16px}.nav-links .nav-cta:hover,.nav-links .nav-cta.active{background:#0f2b3c;color:white}
.menu-btn{display:none;border:0;background:var(--sky);border-radius:12px;padding:10px 12px;color:var(--navy);font-weight:800}
.hero{position:relative;overflow:hidden;padding:84px 0 70px;background:linear-gradient(140deg,#fffdf7 0%,#f9fbef 45%,#e8f7fb 100%)}
.hero:before{content:"";position:absolute;width:460px;height:460px;border-radius:50%;background:rgba(227,187,59,.19);right:-130px;top:-210px}.hero:after{content:"";position:absolute;width:360px;height:360px;border-radius:50%;border:52px solid rgba(26,154,211,.08);left:-190px;bottom:-230px}
.hero-grid{position:relative;display:grid;grid-template-columns:1.15fr .85fr;align-items:center;gap:64px;z-index:1}
.hero-logo-card{background:white;border:1px solid rgba(23,56,75,.10);box-shadow:var(--shadow);border-radius:36px;padding:28px;transform:rotate(1deg)}
.hero-logo-card img{width:min(100%,520px);margin:auto}
.hero .tagline{font-family:Georgia,"Times New Roman",serif;font-style:italic;color:var(--teal);font-size:1.15rem;margin-bottom:12px}
.price-line{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:24px 0}.price-pill{display:inline-flex;align-items:baseline;gap:7px;background:var(--navy);color:white;border-radius:999px;padding:10px 18px}.price-pill strong{font-size:1.65rem}.price-pill span{font-size:.9rem}.free-pill{background:var(--gold-soft);border:1px solid #f2d87f;color:#5b4916;border-radius:999px;padding:10px 16px;font-weight:800}.price-pill.ks1-price{background:#e8f7fb;color:var(--navy);border:1px solid #b8e5ef}
.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 19px;border-radius:13px;text-decoration:none;font-weight:800;border:1px solid transparent;cursor:pointer}.btn-primary{background:var(--navy);color:white}.btn-primary:hover{background:#0f2b3c}.btn-secondary{background:white;border-color:#b9ccd3;color:var(--navy)}.btn-secondary:hover{background:var(--sky)}.btn-gold{background:var(--gold);color:#1f2e37}.btn-gold:hover{filter:brightness(.97)}
.promise{background:var(--navy);color:white;padding:30px;border-radius:var(--radius);box-shadow:var(--shadow)}.promise p{font-family:Georgia,"Times New Roman",serif;font-size:clamp(1.25rem,2.5vw,1.7rem);line-height:1.45;margin:0}.promise strong{color:#ffe888}
.section{padding:76px 0}.section-tight{padding:52px 0}.section-sky{background:var(--sky)}.section-white{background:white}.section-gold{background:var(--gold-soft)}
.section-head{display:flex;align-items:end;justify-content:space-between;gap:28px;margin-bottom:34px}.section-head>div{max-width:760px}.section-head p{color:var(--muted);margin:0}.section-head a{white-space:nowrap}
.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.card{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:25px;box-shadow:0 10px 30px rgba(23,56,75,.06)}.card p:last-child{margin-bottom:0}.card .kicker{font-size:.75rem;letter-spacing:.11em;text-transform:uppercase;font-weight:900;color:var(--teal);margin-bottom:8px}.card .age{display:inline-block;background:var(--gold-soft);border-radius:999px;padding:5px 10px;font-weight:800;font-size:.82rem;color:#5c4a15;margin-bottom:14px}.subjects{display:flex;flex-wrap:wrap;gap:8px;margin-top:15px}.subjects span{font-size:.82rem;background:#f2f7f8;border:1px solid #d9e5e9;border-radius:999px;padding:5px 9px;color:#334b58}
.stat-strip{display:grid;grid-template-columns:repeat(4,1fr);background:white;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}.stat{padding:24px;text-align:center;border-right:1px solid var(--line)}.stat:last-child{border-right:0}.stat strong{display:block;font-family:Georgia,"Times New Roman",serif;font-size:1.8rem;color:var(--navy)}.stat span{font-size:.86rem;color:var(--muted)}
.blocks{display:grid;grid-template-columns:1fr 1fr;gap:22px}.block-card{border-radius:var(--radius);padding:28px;border:1px solid var(--line);background:white}.block-card h3{margin-bottom:9px}.place-row{display:flex;gap:7px;flex-wrap:wrap;margin-top:14px}.place-row span{font-size:.8rem;border-radius:999px;padding:5px 9px;background:var(--sky);color:#294a59}
.steps{counter-reset:steps;display:grid;gap:16px}.step{counter-increment:steps;background:white;border:1px solid var(--line);border-radius:18px;padding:22px 22px 22px 78px;position:relative}.step:before{content:counter(steps);position:absolute;left:20px;top:20px;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--navy);color:white;font-weight:900}.step h3{margin-bottom:6px}.step p{margin-bottom:0;color:#50606a}
.sample-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.sample-card{overflow:hidden;padding:0}.sample-card img{width:100%;aspect-ratio:3/4;object-fit:cover;object-position:top;border-bottom:1px solid var(--line)}.sample-card-body{padding:20px}.sample-card-body h3{margin-bottom:6px}.sample-card-body .btn{width:100%;margin-top:8px}
.page-hero{padding:68px 0 44px;background:linear-gradient(135deg,#fffdf7,#eaf7fb)}.page-hero .lead{max-width:850px}.crumb{font-size:.84rem;color:var(--teal);font-weight:800;margin-bottom:14px}.crumb a{text-decoration:none}.crumb a:hover{text-decoration:underline}
.note{border-left:4px solid var(--gold);background:var(--gold-soft);padding:18px 20px;border-radius:0 14px 14px 0}.note p:last-child{margin-bottom:0}
.filters{background:white;border:1px solid var(--line);box-shadow:var(--shadow);border-radius:var(--radius);padding:22px;margin:24px 0}.filter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.field label{display:block;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;font-weight:900;color:#53636c;margin-bottom:6px}.field select,.field input,.field textarea{width:100%;border:1px solid #bfcfd5;background:white;border-radius:11px;padding:11px 12px;color:var(--ink)}.field select:focus,.field input:focus,.field textarea:focus{outline:3px solid rgba(26,154,211,.16);border-color:var(--blue)}
.schedule-wrap{overflow:auto;border:1px solid var(--line);border-radius:18px;background:white}.schedule-table{width:100%;border-collapse:collapse;min-width:840px}.schedule-table th{background:var(--navy);color:white;text-align:left;padding:13px 14px;font-size:.8rem;letter-spacing:.04em}.schedule-table td{padding:13px 14px;border-bottom:1px solid #e6eef1;vertical-align:top}.schedule-table tr:last-child td{border-bottom:0}.schedule-table tr:hover td{background:#fbfdfd}.schedule-day{font-weight:900;color:var(--navy)}.schedule-time{white-space:nowrap;font-weight:800}.schedule-age{font-size:.84rem;color:var(--muted)}.empty-state{text-align:center;padding:38px;color:var(--muted)}
.badge{display:inline-flex;border-radius:999px;padding:4px 9px;background:var(--sky);font-size:.78rem;color:#244859;font-weight:800}.badge.gold{background:var(--gold-soft);color:#614d11}
.booking-placeholder{background:white;border:2px dashed #9cb6c0;border-radius:var(--radius);padding:46px 28px;text-align:center}.booking-placeholder .icon{width:64px;height:64px;border-radius:50%;background:var(--sky);display:grid;place-items:center;margin:0 auto 18px;font-size:1.8rem}.booking-placeholder p{max-width:640px;margin:0 auto 18px;color:var(--muted)}
.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:28px}.contact-list{display:grid;gap:13px;margin-top:20px}.contact-item{background:white;border:1px solid var(--line);border-radius:15px;padding:16px}.contact-item strong{display:block;color:var(--navy);margin-bottom:3px}.contact-form{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:25px;box-shadow:var(--shadow)}.contact-form .field{margin-bottom:14px}.contact-form textarea{min-height:150px;resize:vertical}.form-status{font-size:.88rem;color:var(--muted);margin-top:12px}
.footer{background:#102c3b;color:#dce9ee;padding:44px 0 28px}.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:30px}.footer h3{color:white;font-size:1.05rem;font-family:inherit;margin-bottom:10px}.footer p,.footer a{color:#c7d9e0;font-size:.9rem}.footer a{text-decoration:none}.footer a:hover{color:white;text-decoration:underline}.footer-links{display:grid;gap:7px}.footer-brand{display:flex;align-items:center;gap:12px}.footer-brand img{width:62px;background:white;border-radius:12px;padding:4px}.footer-bottom{border-top:1px solid rgba(255,255,255,.12);margin-top:30px;padding-top:18px;font-size:.78rem;color:#9fb7c1}.legal-pending{font-style:italic;color:#aac1ca}
.check-list{list-style:none;padding:0;margin:18px 0 0;display:grid;gap:9px}.check-list li{position:relative;padding-left:30px}.check-list li:before{content:"✓";position:absolute;left:0;top:0;color:var(--teal);font-weight:900}
.callout{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:start;background:white;border:1px solid var(--line);padding:22px;border-radius:18px}.callout-icon{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:var(--gold-soft);font-weight:900;color:#5d4b14}
.inline-links{display:flex;gap:10px;flex-wrap:wrap}.text-link{font-weight:800;color:var(--navy);text-decoration-thickness:2px;text-underline-offset:3px}

@media(max-width:1240px){
  .nav-links{display:none;position:absolute;left:18px;right:18px;top:76px;background:white;border:1px solid var(--line);border-radius:18px;padding:10px;box-shadow:var(--shadow);flex-direction:column;align-items:stretch;white-space:normal;margin-left:0}
  .nav-links.open{display:flex}
  .nav-links a{padding:12px 13px;font-size:.92rem}
  .menu-btn{display:block}
}
@media(max-width:980px){
  .nav-links{display:none;position:absolute;left:18px;right:18px;top:76px;background:white;border:1px solid var(--line);border-radius:18px;padding:10px;box-shadow:var(--shadow);flex-direction:column;align-items:stretch}.nav-links.open{display:flex}.nav-links a{padding:12px 13px}.menu-btn{display:block}.hero-grid{grid-template-columns:1fr;gap:34px}.hero-logo-card{max-width:540px}.grid-4{grid-template-columns:repeat(2,1fr)}.grid-3,.sample-grid{grid-template-columns:repeat(2,1fr)}.filter-grid{grid-template-columns:repeat(2,1fr)}.contact-grid{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr 1fr}.footer-grid>div:first-child{grid-column:1/-1}
}
@media(max-width:680px){
  .container{width:min(100% - 24px,var(--max))}.hero{padding:56px 0 46px}.section{padding:56px 0}.page-hero{padding:50px 0 34px}.brand-copy span{display:none}.brand img{width:50px;height:50px}.nav-wrap{min-height:70px}.nav-links{top:66px}.grid-2,.grid-3,.grid-4,.sample-grid,.blocks,.filter-grid,.footer-grid{grid-template-columns:1fr}.stat-strip{grid-template-columns:1fr 1fr}.stat:nth-child(2){border-right:0}.stat:nth-child(-n+2){border-bottom:1px solid var(--line)}.section-head{align-items:start;flex-direction:column}.sample-card{display:grid;grid-template-columns:42% 1fr}.sample-card img{height:100%;aspect-ratio:auto;border-bottom:0;border-right:1px solid var(--line)}.sample-card-body{padding:16px}.sample-card-body .btn{font-size:.85rem;padding:0 11px}.promise{padding:22px}.hero-logo-card{padding:18px;border-radius:26px}.contact-form{padding:18px}.footer-grid>div:first-child{grid-column:auto}
}
.filter-grid.five{grid-template-columns:1.35fr repeat(4,minmax(0,1fr))}
.finder-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin:26px 0 14px}.finder-heading h3{font-size:1.7rem;margin:8px 0 0}.badge{display:inline-block;background:var(--sky);color:#315362;border:1px solid #cfe3e9;border-radius:999px;padding:5px 10px;font-size:.76rem;font-weight:900;letter-spacing:.02em}.badge.gold{background:var(--gold-soft);border-color:#eed66f;color:#5f4d17}.schedule-age{font-size:.78rem;color:var(--muted);margin-top:3px}.schedule-time{font-weight:800;color:var(--navy);white-space:nowrap}.schedule-day{font-weight:800}.empty-state{text-align:center;color:var(--muted);padding:30px!important}.zone-table{min-width:1080px}.zone-table td,.zone-table th{white-space:nowrap}.zone-table td:nth-child(2),.zone-table th:nth-child(2){white-space:normal;min-width:190px}

@media(max-width:1240px){
  .nav-links{display:none;position:absolute;left:18px;right:18px;top:76px;background:white;border:1px solid var(--line);border-radius:18px;padding:10px;box-shadow:var(--shadow);flex-direction:column;align-items:stretch;white-space:normal;margin-left:0}
  .nav-links.open{display:flex}
  .nav-links a{padding:12px 13px;font-size:.92rem}
  .menu-btn{display:block}
}
@media(max-width:980px){.filter-grid.five{grid-template-columns:repeat(2,1fr)}}
@media(max-width:680px){.filter-grid.five{grid-template-columns:1fr}.finder-heading{align-items:start;flex-direction:column}.finder-heading .btn{width:100%}}
.document-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.document-card{display:block;background:white;border:1px solid var(--line);border-radius:var(--radius);padding:24px;text-decoration:none;box-shadow:0 10px 30px rgba(23,56,75,.05);transition:transform .15s ease,box-shadow .15s ease}.document-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.document-card.featured{grid-column:span 2;background:linear-gradient(135deg,#fffdf7,#eaf7fb)}.document-card h3{margin:7px 0 8px}.document-card p{color:var(--muted)}.document-type{font-size:.72rem;letter-spacing:.11em;text-transform:uppercase;font-weight:900;color:var(--teal)}.booking-selection{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow)}.selection-summary{display:flex;flex-wrap:wrap;gap:8px}.selection-summary span{display:inline-flex;border-radius:999px;padding:7px 11px;background:var(--gold-soft);border:1px solid #eed66f;color:#5f4d17;font-size:.82rem;font-weight:800}

@media(max-width:1240px){
  .nav-links{display:none;position:absolute;left:18px;right:18px;top:76px;background:white;border:1px solid var(--line);border-radius:18px;padding:10px;box-shadow:var(--shadow);flex-direction:column;align-items:stretch;white-space:normal;margin-left:0}
  .nav-links.open{display:flex}
  .nav-links a{padding:12px 13px;font-size:.92rem}
  .menu-btn{display:block}
}
@media(max-width:980px){.document-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.document-card.featured{grid-column:span 2}}
@media(max-width:680px){.document-grid{grid-template-columns:1fr}.document-card.featured{grid-column:auto}}


/* v7 desktop navigation: evenly distribute all links across the full row */
@media (min-width:901px){
  .site-header .container{width:calc(100% - 36px);max-width:none}
  .nav-wrap{min-height:122px;display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:4px;padding:10px 0 8px}
  .brand{align-self:flex-start}
  .nav-links{display:flex!important;position:static!important;left:auto!important;right:auto!important;top:auto!important;width:100%;margin-left:0!important;padding:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;background:transparent!important;flex-direction:row!important;align-items:center!important;justify-content:space-between;gap:clamp(12px,1.6vw,30px);white-space:nowrap}
  .nav-links a{padding:10px 8px}
  .nav-links .nav-cta{margin-left:0;padding-inline:20px}
  .menu-btn{display:none!important}
}
@media (max-width:900px){
  .nav-wrap{min-height:70px;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:12px;padding:0}
  .nav-links{display:none;position:absolute;left:18px;right:18px;top:76px;background:white;border:1px solid var(--line);border-radius:18px;padding:10px;box-shadow:var(--shadow);flex-direction:column;align-items:stretch;white-space:normal;margin-left:0}
  .nav-links.open{display:flex}
  .nav-links a{padding:12px 13px;font-size:.92rem}
  .menu-btn{display:block}
}

/* v8 home international section: keep heading on one line and refine block-card spacing */
.international-head>div{max-width:100%;width:100%}
.block-card .badge{display:table;margin-bottom:9px}
.block-card{padding-top:22px}
@media (min-width:1100px){
  .international-head h2{white-space:nowrap;font-size:clamp(2rem,3.45vw,3.2rem);margin-bottom:.5em}
}
@media (max-width:1099px){
  .international-head h2{white-space:normal}
}
