:root {
  --blue: #0756ce;
  --blue-dark: #073a91;
  --ink: #0a1120;
  --muted: #5c677b;
  --mist: #eef5ff;
  --line: #d8e3f2;
  --white: #fff;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--white); font-family: "DM Sans", sans-serif; font-size: 17px; line-height: 1.65; }
a { color: inherit; }
.site-header { height: 86px; display: flex; align-items: center; justify-content: space-between; padding: 0 max(5vw, 24px); border-bottom: 1px solid rgba(10,17,32,.1); background: rgba(255,255,255,.94); position: sticky; top: 0; z-index: 10; backdrop-filter: blur(12px); }
.brand { display: block; text-decoration: none; line-height: 1; }
.brand img { display: block; width: 150px; height: 62px; object-fit: contain; object-position: left center; }
.header-cta { color: var(--blue); font-weight: 700; text-underline-offset: 5px; }

.hero { min-height: calc(100vh - 86px); display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(300px, .65fr); overflow: hidden; }
.hero-copy { padding: clamp(70px, 9vw, 138px) max(6vw, 30px); align-self: center; }
.eyebrow, .section-label { margin: 0 0 22px; color: var(--blue); font: 800 .78rem/1.2 "Manrope", sans-serif; letter-spacing: .17em; text-transform: uppercase; }
h1, h2 { font-family: "Manrope", sans-serif; letter-spacing: -.045em; line-height: 1.03; margin: 0; }
h1 { font-size: clamp(3.7rem, 7vw, 7.5rem); max-width: 900px; }
h1 span { color: var(--blue); display: block; }
h2 { font-size: clamp(2.3rem, 4.2vw, 4.5rem); }
.hero-intro { max-width: 700px; font-size: clamp(1.15rem, 1.7vw, 1.45rem); color: #334056; margin: 34px 0; }
.launch-card { display: grid; grid-template-columns: repeat(3, 1fr); max-width: 790px; border: 1px solid var(--line); border-radius: 18px; overflow: hidden; }
.launch-card div { padding: 19px 22px; display: grid; gap: 3px; }
.launch-card div + div { border-left: 1px solid var(--line); }
.launch-card span { color: var(--muted); font-size: .8rem; text-transform: uppercase; letter-spacing: .1em; }
.launch-card strong { font-size: .98rem; line-height: 1.35; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 34px; }
.button { display: inline-flex; justify-content: center; align-items: center; min-height: 54px; padding: 0 26px; border-radius: 999px; font-weight: 700; text-decoration: none; border: 2px solid var(--blue); cursor: pointer; font: 700 1rem "DM Sans", sans-serif; }
.button.primary, .form-button { background: var(--blue); color: white; }
.button.secondary { color: var(--blue); }
.button:hover, .button:focus-visible { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(7,86,206,.2); }
.hero-stage { background: var(--blue); color: white; min-height: 100%; display: flex; flex-direction: column; justify-content: center; padding: 7vw 5vw; position: relative; }
.hero-stage::before { content: ""; position: absolute; width: 380px; height: 380px; border: 1px solid rgba(255,255,255,.25); border-radius: 50%; right: -190px; top: 8%; }
.stage-number { font: 800 clamp(6rem, 11vw, 12rem)/.8 "Manrope", sans-serif; letter-spacing: -.09em; }
.stage-number span { font-size: .48em; letter-spacing: -.06em; }
.hero-stage p { font: 700 clamp(1.5rem, 2.7vw, 2.5rem)/1.35 "Manrope", sans-serif; margin: 54px 0 0; }

.section-pad { padding: clamp(80px, 10vw, 150px) max(6vw, 30px); }
.intro { max-width: 1200px; margin: auto; }
.intro h2 { max-width: 900px; }
.intro > p:not(.section-label) { max-width: 890px; font-size: 1.2rem; color: var(--muted); margin: 30px 0; }
.pill-row { display: flex; gap: 11px; flex-wrap: wrap; margin-top: 42px; }
.pill-row span { border: 1px solid var(--line); border-radius: 999px; padding: 9px 17px; font-weight: 600; }

.programme { background: var(--ink); color: white; }
.section-label.light { color: #70a8ff; }
.section-heading { display: grid; grid-template-columns: 1.5fr .5fr; gap: 40px; align-items: end; max-width: 1350px; margin: auto; }
.section-heading > p { color: #aeb9ca; max-width: 360px; }
.timetable { max-width: 1350px; margin: 70px auto 0; border-top: 1px solid #3a4353; }
.table-row { display: grid; grid-template-columns: 120px 1fr 1fr; border-bottom: 1px solid #30394a; }
.table-row > * { padding: 19px 22px; }
.table-row > * + * { border-left: 1px solid #30394a; }
.table-head { color: #70a8ff; font-weight: 700; font-size: .82rem; text-transform: uppercase; letter-spacing: .08em; }
.break-row { color: #9da9bb; }
.feature-row { background: var(--blue); }
.programme-note { max-width: 900px; margin: 30px auto 0; color: #aeb9ca; font-size: .92rem; }

.details { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(50px, 9vw, 140px); max-width: 1350px; margin: auto; align-items: center; }
.details-copy p:not(.section-label) { color: var(--muted); font-size: 1.15rem; margin-top: 28px; }
.block-dates { margin-top: 36px; border-top: 1px solid var(--line); }
.block-dates p { display: grid; grid-template-columns: 120px 1fr; gap: 18px; padding: 17px 0; margin: 0 !important; border-bottom: 1px solid var(--line); font-size: .96rem !important; }
.block-dates strong { color: var(--blue); }
.price-card { background: var(--mist); border: 1px solid #cfe0f8; border-radius: 28px; padding: clamp(34px, 5vw, 66px); }
.price-card > p:first-child { color: var(--blue); font-weight: 700; margin-top: 0; }
.price { color: var(--ink); font: 800 clamp(4.5rem, 7vw, 7rem)/1 "Manrope", sans-serif; letter-spacing: -.07em; }
.price span { font-size: .45em; vertical-align: top; }
.price-sub { color: var(--blue-dark); font-weight: 700; margin-top: 5px; }
.price-card ul { list-style: none; padding: 20px 0 0; margin: 25px 0; border-top: 1px solid #c8d8ed; }
.price-card li { padding: 7px 0 7px 28px; position: relative; }
.price-card li::before { content: "✓"; color: var(--blue); font-weight: 800; position: absolute; left: 0; }
.small { color: var(--muted); font-size: .86rem; }

.interest { background: var(--blue); color: white; display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(50px, 9vw, 140px); }
.interest-copy { align-self: center; }
.interest-copy > p:not(.section-label) { color: #dce9ff; font-size: 1.12rem; }
.contact-lines { display: grid; gap: 7px; margin-top: 34px; font-weight: 700; }
.contact-lines a { text-underline-offset: 4px; }
.interest-form { background: white; color: var(--ink); padding: clamp(28px, 5vw, 56px); border-radius: 26px; display: grid; gap: 20px; }
.interest-action { align-content: center; min-height: 390px; }
.interest-action .action-kicker { color: var(--blue); font: 800 .78rem/1.2 "Manrope", sans-serif; letter-spacing: .14em; text-transform: uppercase; margin: 0; }
.interest-action h3 { font: 800 clamp(2rem, 3.5vw, 3.4rem)/1.05 "Manrope", sans-serif; letter-spacing: -.04em; margin: 0; }
.interest-action > p:not(.action-kicker, .form-note) { color: var(--muted); font-size: 1.08rem; margin: 0; }
.interest-action .form-button { width: fit-content; min-width: 240px; }
.interest-form label { font-weight: 700; font-size: .92rem; display: grid; gap: 7px; }
.field-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
input, select, textarea { width: 100%; border: 1px solid #bac9dd; background: white; border-radius: 10px; padding: 13px 14px; color: var(--ink); font: 400 1rem "DM Sans", sans-serif; }
.check-label { grid-template-columns: 21px 1fr !important; align-items: start; gap: 11px !important; font-weight: 500 !important; line-height: 1.45; }
.check-label input { width: 20px; height: 20px; margin-top: 2px; accent-color: var(--blue); }
textarea { resize: vertical; }
input:focus, select:focus, textarea:focus { outline: 3px solid rgba(7,86,206,.18); border-color: var(--blue); }
.form-button { border-color: var(--blue); margin-top: 5px; }
.form-note { color: var(--muted); text-align: center; font-size: .82rem; margin: -9px 0 0; }

footer { background: #060b14; color: #aeb9ca; padding: 45px max(6vw, 30px); display: grid; grid-template-columns: 1fr auto auto; gap: 35px; align-items: center; font-size: .86rem; }
.footer-brand { display: flex; align-items: center; }
.footer-brand img { width: 155px; height: 88px; object-fit: contain; object-position: left center; background: white; border-radius: 8px; }
footer p { margin: 0; }

@media (max-width: 900px) {
  .hero { grid-template-columns: 1fr; }
  .hero-stage { min-height: 360px; }
  .details, .interest, .section-heading { grid-template-columns: 1fr; }
  .table-row { grid-template-columns: 82px 1fr 1fr; font-size: .88rem; }
  .table-row > * { padding: 15px 10px; }
  footer { grid-template-columns: 1fr; gap: 8px; }
}

@media (max-width: 620px) {
  .site-header { height: 76px; }
  .header-cta { font-size: .86rem; }
  .hero { min-height: auto; }
  .hero-copy { padding-top: 68px; }
  h1 { font-size: clamp(3.25rem, 15vw, 5rem); }
  .launch-card { grid-template-columns: 1fr; }
  .launch-card div + div { border-left: 0; border-top: 1px solid var(--line); }
  .hero-actions .button { width: 100%; }
  .hero-stage { min-height: 290px; }
  .field-pair { grid-template-columns: 1fr; }
  .timetable { display: grid; gap: 16px; border: 0; }
  .table-head { display: none; }
  .table-row { grid-template-columns: 1fr; border: 1px solid #30394a; border-radius: 13px; overflow: hidden; }
  .table-row > * { border: 0 !important; }
  .table-row strong { color: #70a8ff; padding-bottom: 0; }
  .feature-row strong { color: white; }
}

@media (prefers-reduced-motion: no-preference) {
  .button { transition: transform .2s ease, box-shadow .2s ease; }
}

.header-links{display:flex;align-items:center;gap:28px}.school-link{font-size:.94rem;font-weight:600;text-underline-offset:5px;color:var(--blue-dark)}.footer-school-link{grid-column:1/-1;color:#e4edff;font-size:1rem;font-weight:600;text-underline-offset:5px;width:fit-content}.school-link:focus-visible,.footer-school-link:focus-visible,.header-cta:focus-visible{outline:3px solid #7eaafa;outline-offset:5px}
@media(max-width:620px){.site-header{height:auto;min-height:90px;padding-top:12px;padding-bottom:12px;gap:20px}.brand{flex-shrink:0}.brand img{width:120px}.header-links{flex-direction:column;align-items:flex-end;gap:7px;text-align:right}.school-link{font-size:.875rem;line-height:1.4}.header-cta{font-size:.875rem}.footer-school-link{margin-top:14px}}
/* Temporary October trial notice; scoped to preserve the rest of the site. */
.hub-trial-notice { margin: 24px auto; width: calc(100% - 48px); max-width: 1280px; padding: clamp(24px, 4vw, 44px); background: #eef5ff; color: #102d55; border: 2px solid #0756ce; border-radius: 22px; display: flex; align-items: center; gap: 32px; }
.hub-trial-notice > div { flex: 1; min-width: 0; }
.hub-trial-notice .hub-trial-kicker { margin: 0 0 12px; color: #0756ce; font-size: .82rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.hub-trial-notice h2 { margin: 0 0 16px; font-size: clamp(1.55rem, 3vw, 2.35rem); line-height: 1.18; letter-spacing: -.025em; color: #102d55; }
.hub-trial-notice p { margin: 12px 0 0; line-height: 1.55; font-size: 1rem; }
.hub-trial-notice .hub-trial-small { font-size: .86rem; }
.hub-trial-notice .hub-trial-button { display: inline-flex; justify-content: center; align-items: center; gap: 12px; flex-shrink: 0; min-height: 54px; padding: 15px 25px; border-radius: 999px; background: #0756ce; color: #fff; font-size: 1rem; font-weight: 800; text-decoration: none; }
.hub-trial-notice .hub-trial-button:hover { background: #073a91; }
.hub-trial-notice .hub-trial-button:focus-visible { outline: 3px solid #102d55; outline-offset: 4px; }
@media (max-width: 720px) { .hub-trial-notice { flex-direction: column; align-items: stretch; gap: 22px; width: calc(100% - 28px); margin: 14px auto; } }

/* Trial morning update and photo gallery. */
.trial-feedback { max-width: 1480px; margin: auto; }
.feedback-quotes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; margin-top: 32px; }
.feedback-quotes blockquote { margin: 0; padding: 28px; background: var(--mist); border-left: 4px solid var(--blue); border-radius: 0 16px 16px 0; }
.feedback-quotes p { margin: 0; font-size: 1.12rem; line-height: 1.65; color: #24334b; }
.feedback-credit { margin-top: 22px; color: #526078; font-size: .92rem; }
@media (max-width: 760px) { .feedback-quotes { grid-template-columns: 1fr; gap: 16px; } }
.hub-morning { background: var(--mist); }
.morning-feature { max-width: 1350px; margin: auto; display: grid; grid-template-columns: 1fr 1fr; gap: clamp(28px, 5vw, 76px); align-items: center; }
.morning-copy h2 { font-size: clamp(2.1rem, 3.8vw, 3.8rem); line-height: 1.1; }
.morning-copy > p:not(.section-label) { color: #334056; margin: 22px 0; }
.morning-copy .button { margin-top: 8px; }
.morning-photo { display: block; }
.morning-photo img { display: block; width: 100%; height: auto; border-radius: 22px; }
.morning-gallery { max-width: 1350px; margin: 40px auto 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; align-items: start; }
.morning-gallery a { display: block; border-radius: 15px; overflow: hidden; }
.morning-gallery img { display: block; width: 100%; height: auto; }
.morning-photo:focus-visible, .morning-gallery a:focus-visible { outline: 3px solid var(--blue); outline-offset: 5px; }
@media (max-width: 900px) { .morning-feature { grid-template-columns: 1fr; } }
@media (max-width: 620px) { .morning-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 24px; } .morning-copy .button { width: 100%; } }

/* Junior launch programme */
.junior-timetable .table-row {grid-template-columns: 160px minmax(0,1fr);}
.session-description {display:block; margin-top:5px; font-size:.95rem; color:#c1ccdc;}
.feature-row .session-description {color:#fff;}
.next-steps {max-width:1350px;margin:auto;background:var(--mist);border-radius:24px;}
.future-grid {display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:32px;}
.future-grid h3 {font-family:Manrope,sans-serif;font-size:1.4rem;line-height:1.3;}
.future-grid p {color:var(--muted);}
@media(max-width:760px){.future-grid{grid-template-columns:1fr;gap:20px;}.junior-timetable .table-row{grid-template-columns:1fr;}.next-steps{border-radius:0;}}

.lead-tutor{display:grid;grid-template-columns:minmax(220px,.7fr) minmax(0,1.3fr);gap:clamp(28px,5vw,70px);align-items:center;max-width:1350px;margin:auto;}
.lead-tutor>img{width:100%;max-height:520px;object-fit:cover;object-position:center 25%;border-radius:22px;}
.lead-tutor p:not(.section-label){color:var(--muted);font-size:1.1rem;}
@media(max-width:760px){.lead-tutor{grid-template-columns:1fr;}.lead-tutor>img{max-width:400px;max-height:470px;}}

.louella-story{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(32px,6vw,80px);align-items:center;max-width:1350px;margin:auto;}
.louella-story p:not(.section-label){color:var(--muted);font-size:1.15rem;max-width:620px;}
.louella-story video{display:block;width:100%;max-width:340px;height:auto;justify-self:center;border-radius:20px;background:#111;}
@media(max-width:760px){.louella-story{grid-template-columns:1fr;}.louella-story video{max-width:320px;}}

.senior-video{display:block;width:100%;max-width:320px;height:auto;border-radius:18px;background:#111;margin:22px 0;}

.booking-open{background:#edf4ff;border-top:6px solid #0057d9;text-align:center}.booking-open h2{font-size:clamp(2.3rem,6vw,4.2rem);margin:.4em 0;color:#0057d9}.booking-open p{max-width:760px;margin:1.2em auto;line-height:1.6}.booking-open .booking-intro{font-size:1.2rem}.booking-details{font-size:1.15rem}.booking-open .booking-terms{font-size:.95rem}.booking-open a:not(.button){text-decoration:underline}

.senior-interest-callout{max-width:820px;margin:2.5rem auto 0;padding:2rem 1.2rem;background:white;border-radius:16px;border:2px solid #0057d9}.senior-interest-callout h3{font-size:1.6rem;margin:0}.senior-interest-callout .button{white-space:normal}
