@font-face {
  font-family: DM Serif Display;
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src:
    url(../media/dm-serif-display-latin-ext-400-normal.108_d_-yhdzgt.woff2)
      format("woff2"),
    url(../media/dm-serif-display-latin-ext-400-normal.18cmkx6o4kr15.woff)
      format("woff");
  unicode-range:
    U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329,
    U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0,
    U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: DM Serif Display;
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src:
    url(../media/dm-serif-display-latin-400-normal.0fxam9nkux_7f.woff2)
      format("woff2"),
    url(../media/dm-serif-display-latin-400-normal.0-aff~ne0i2bp.woff)
      format("woff");
  unicode-range:
    U+??, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329,
    U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: Manrope;
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src:
    url(../media/manrope-cyrillic-ext-400-normal.115bu2ryh2wsb.woff2)
      format("woff2"),
    url(../media/manrope-cyrillic-ext-400-normal.10bm-9tngs.nd.woff)
      format("woff");
  unicode-range:
    U+460-52F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
  font-family: Manrope;
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src:
    url(../media/manrope-cyrillic-400-normal.0h_lfkrdhxih~.woff2)
      format("woff2"),
    url(../media/manrope-cyrillic-400-normal.0u.x65-m2isdc.woff) format("woff");
  unicode-range: U+301, U+400-45F, U+490-491, U+4B0-4B1, U+2116;
}
@font-face {
  font-family: Manrope;
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src:
    url(../media/manrope-greek-400-normal.128qspuv_npv-.woff2) format("woff2"),
    url(../media/manrope-greek-400-normal.00clg76~ljcxe.woff) format("woff");
  unicode-range: U+370-377, U+37A-37F, U+384-38A, U+38C, U+38E-3A1, U+3A3-3FF;
}
@font-face {
  font-family: Manrope;
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src:
    url(../media/manrope-vietnamese-400-normal.148qgjhno4xd5.woff2)
      format("woff2"),
    url(../media/manrope-vietnamese-400-normal.12sh1q7p~rawm.woff)
      format("woff");
  unicode-range:
    U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301,
    U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB;
}
@font-face {
  font-family: Manrope;
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src:
    url(../media/manrope-latin-ext-400-normal.11fwvnf-uslv9.woff2)
      format("woff2"),
    url(../media/manrope-latin-ext-400-normal.0.4slp1k-pmph.woff) format("woff");
  unicode-range:
    U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329,
    U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0,
    U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: Manrope;
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src:
    url(../media/manrope-latin-400-normal.0xncywml0dw77.woff2) format("woff2"),
    url(../media/manrope-latin-400-normal.0du~d50lh.w8e.woff) format("woff");
  unicode-range:
    U+??, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329,
    U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: Manrope;
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src:
    url(../media/manrope-cyrillic-ext-500-normal.0tu9fuqc6q4y..woff2)
      format("woff2"),
    url(../media/manrope-cyrillic-ext-500-normal.0aeiuh9~v3bi0.woff)
      format("woff");
  unicode-range:
    U+460-52F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
  font-family: Manrope;
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src:
    url(../media/manrope-cyrillic-500-normal.0t8vtxsol15c4.woff2)
      format("woff2"),
    url(../media/manrope-cyrillic-500-normal.0ki~dv3x7y~_v.woff) format("woff");
  unicode-range: U+301, U+400-45F, U+490-491, U+4B0-4B1, U+2116;
}
@font-face {
  font-family: Manrope;
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src:
    url(../media/manrope-greek-500-normal.0.w-l08rpab6k.woff2) format("woff2"),
    url(../media/manrope-greek-500-normal.185xrykehxvxh.woff) format("woff");
  unicode-range: U+370-377, U+37A-37F, U+384-38A, U+38C, U+38E-3A1, U+3A3-3FF;
}
@font-face {
  font-family: Manrope;
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src:
    url(../media/manrope-vietnamese-500-normal.0vxscr43uif75.woff2)
      format("woff2"),
    url(../media/manrope-vietnamese-500-normal.11783_cyhh0sy.woff)
      format("woff");
  unicode-range:
    U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301,
    U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB;
}
@font-face {
  font-family: Manrope;
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src:
    url(../media/manrope-latin-ext-500-normal.0u693bpswqcn6.woff2)
      format("woff2"),
    url(../media/manrope-latin-ext-500-normal.03110s_ql870..woff) format("woff");
  unicode-range:
    U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329,
    U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0,
    U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: Manrope;
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src:
    url(../media/manrope-latin-500-normal.0ofo7kbo3t0n0.woff2) format("woff2"),
    url(../media/manrope-latin-500-normal.0l6vvsc_f-zn6.woff) format("woff");
  unicode-range:
    U+??, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329,
    U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: Manrope;
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src:
    url(../media/manrope-cyrillic-ext-600-normal.0r3sb.66buoue.woff2)
      format("woff2"),
    url(../media/manrope-cyrillic-ext-600-normal.0dd6pb-0mr~fr.woff)
      format("woff");
  unicode-range:
    U+460-52F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
  font-family: Manrope;
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src:
    url(../media/manrope-cyrillic-600-normal.0rl6kp.gg1nol.woff2)
      format("woff2"),
    url(../media/manrope-cyrillic-600-normal.0u0-.57-68f3~.woff) format("woff");
  unicode-range: U+301, U+400-45F, U+490-491, U+4B0-4B1, U+2116;
}
@font-face {
  font-family: Manrope;
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src:
    url(../media/manrope-greek-600-normal.0-2v3-lf9c7mh.woff2) format("woff2"),
    url(../media/manrope-greek-600-normal.0r6g0lt_t.if4.woff) format("woff");
  unicode-range: U+370-377, U+37A-37F, U+384-38A, U+38C, U+38E-3A1, U+3A3-3FF;
}
@font-face {
  font-family: Manrope;
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src:
    url(../media/manrope-vietnamese-600-normal.187b6t9v75bit.woff2)
      format("woff2"),
    url(../media/manrope-vietnamese-600-normal.01i8c7nk698tu.woff)
      format("woff");
  unicode-range:
    U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301,
    U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB;
}
@font-face {
  font-family: Manrope;
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src:
    url(../media/manrope-latin-ext-600-normal.08fso1mcqxm-d.woff2)
      format("woff2"),
    url(../media/manrope-latin-ext-600-normal.0rl_k8_-m8yi0.woff) format("woff");
  unicode-range:
    U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329,
    U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0,
    U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: Manrope;
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src:
    url(../media/manrope-latin-600-normal.0x_3dfprs.8a-.woff2) format("woff2"),
    url(../media/manrope-latin-600-normal.04bqy5g7q0z_u.woff) format("woff");
  unicode-range:
    U+??, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329,
    U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: Manrope;
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src:
    url(../media/manrope-cyrillic-ext-700-normal.0owgbyog3zqsd.woff2)
      format("woff2"),
    url(../media/manrope-cyrillic-ext-700-normal.0owf4phtcjf7b.woff)
      format("woff");
  unicode-range:
    U+460-52F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
  font-family: Manrope;
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src:
    url(../media/manrope-cyrillic-700-normal.0dt2x44cxaznq.woff2)
      format("woff2"),
    url(../media/manrope-cyrillic-700-normal.142-7tp.5-m9t.woff) format("woff");
  unicode-range: U+301, U+400-45F, U+490-491, U+4B0-4B1, U+2116;
}
@font-face {
  font-family: Manrope;
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src:
    url(../media/manrope-greek-700-normal.0_cp_dxzmhpya.woff2) format("woff2"),
    url(../media/manrope-greek-700-normal.0bta1q34pl8cs.woff) format("woff");
  unicode-range: U+370-377, U+37A-37F, U+384-38A, U+38C, U+38E-3A1, U+3A3-3FF;
}
@font-face {
  font-family: Manrope;
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src:
    url(../media/manrope-vietnamese-700-normal.13y605bt4u.-t.woff2)
      format("woff2"),
    url(../media/manrope-vietnamese-700-normal.02-~9jfjemfi4.woff)
      format("woff");
  unicode-range:
    U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301,
    U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB;
}
@font-face {
  font-family: Manrope;
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src:
    url(../media/manrope-latin-ext-700-normal.0d17m~j8wes5..woff2)
      format("woff2"),
    url(../media/manrope-latin-ext-700-normal.12u0_yofz0bmx.woff) format("woff");
  unicode-range:
    U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329,
    U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0,
    U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: Manrope;
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src:
    url(../media/manrope-latin-700-normal.0o3hhi2b21liw.woff2) format("woff2"),
    url(../media/manrope-latin-700-normal.0rm6..kh6-ey4.woff) format("woff");
  unicode-range:
    U+??, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329,
    U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: Manrope;
  font-style: normal;
  font-display: swap;
  font-weight: 800;
  src:
    url(../media/manrope-cyrillic-ext-800-normal.0qdkyur1q38fo.woff2)
      format("woff2"),
    url(../media/manrope-cyrillic-ext-800-normal.01zwkf~76a2ie.woff)
      format("woff");
  unicode-range:
    U+460-52F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
  font-family: Manrope;
  font-style: normal;
  font-display: swap;
  font-weight: 800;
  src:
    url(../media/manrope-cyrillic-800-normal.0uz6bc-ar_8bi.woff2)
      format("woff2"),
    url(../media/manrope-cyrillic-800-normal.0zui6i16cq72v.woff) format("woff");
  unicode-range: U+301, U+400-45F, U+490-491, U+4B0-4B1, U+2116;
}
@font-face {
  font-family: Manrope;
  font-style: normal;
  font-display: swap;
  font-weight: 800;
  src:
    url(../media/manrope-greek-800-normal.00ragwah0n7du.woff2) format("woff2"),
    url(../media/manrope-greek-800-normal.0_wl-jg-zzvx9.woff) format("woff");
  unicode-range: U+370-377, U+37A-37F, U+384-38A, U+38C, U+38E-3A1, U+3A3-3FF;
}
@font-face {
  font-family: Manrope;
  font-style: normal;
  font-display: swap;
  font-weight: 800;
  src:
    url(../media/manrope-vietnamese-800-normal.17~u2k-5yoggh.woff2)
      format("woff2"),
    url(../media/manrope-vietnamese-800-normal.10q-_9d8c3my0.woff)
      format("woff");
  unicode-range:
    U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301,
    U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB;
}
@font-face {
  font-family: Manrope;
  font-style: normal;
  font-display: swap;
  font-weight: 800;
  src:
    url(../media/manrope-latin-ext-800-normal.0~pvhb.h_6d0i.woff2)
      format("woff2"),
    url(../media/manrope-latin-ext-800-normal.061vtaq4fqtim.woff) format("woff");
  unicode-range:
    U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329,
    U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0,
    U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: Manrope;
  font-style: normal;
  font-display: swap;
  font-weight: 800;
  src:
    url(../media/manrope-latin-800-normal.00.esca0refl-.woff2) format("woff2"),
    url(../media/manrope-latin-800-normal.03e-i6t~hj5l4.woff) format("woff");
  unicode-range:
    U+??, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329,
    U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
:root {
  --navy: #112547;
  --yellow: #fcc513;
  --blue: #3d6ef1;
  --link-blue: #1849b9;
  --beige: #efe0d4;
  --ivory: #fff9f0;
  --white: #fff;
  --ink-soft: #4f5c71;
  --line: #d9d9d8;
  --error: #b42318;
  --error-bg: #fff1f0;
  --success: #147d64;
  --success-bg: #e9f7f2;
  --shadow-soft: 0 18px 45px #1125471a;
  --shadow-card: 0 12px 26px #11254714;
  --radius-small: 10px;
  --radius-card: 18px;
  --radius-large: 34px;
  color: var(--navy);
  font-synthesis: none;
  text-rendering: optimizelegibility;
  font-family: Manrope, Arial, sans-serif;
}
* {
  box-sizing: border-box;
}
html {
  background: var(--ivory);
  scroll-behavior: smooth;
  scroll-padding-top: 92px;
}
body {
  background: var(--ivory);
  min-width: 320px;
  min-height: 100vh;
  color: var(--navy);
  -webkit-font-smoothing: antialiased;
  margin: 0;
  font-size: 16px;
  line-height: 1.6;
}
body.menu-open {
  overflow: hidden;
}
button,
input,
select,
textarea {
  font: inherit;
}
button,
a {
  -webkit-tap-highlight-color: transparent;
}
a {
  color: inherit;
  text-decoration: none;
}
img {
  max-width: 100%;
  display: block;
}
h1,
h2,
h3,
p {
  margin-top: 0;
}
ul,
ol {
  margin: 0;
  padding: 0;
}
.site-wrap {
  overflow-x: clip;
}
.shell {
  width: min(100% - 64px, 1280px);
  margin-inline: auto;
}
.sr-only {
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  position: absolute;
  overflow: hidden;
}
.skip-link {
  z-index: 200;
  background: var(--navy);
  color: var(--white);
  border-radius: 6px;
  padding: 10px 16px;
  position: fixed;
  top: 8px;
  left: 12px;
  transform: translateY(-150%);
}
.skip-link:focus {
  transform: translateY(0);
}
:focus-visible {
  outline: 3px solid var(--link-blue);
  outline-offset: 4px;
}
.day :focus-visible,
.enquiry :focus-visible,
.site-footer :focus-visible {
  outline-color: var(--yellow);
}
.enquiry-form :focus-visible {
  outline-color: var(--link-blue);
}
.site-header {
  z-index: 80;
  background: #fff9f0f7;
  border-bottom: 1px solid #11254714;
  min-height: 84px;
  transition:
    background-color 0.22s,
    border-color 0.22s,
    box-shadow 0.22s;
  position: sticky;
  top: 0;
}
.site-header.is-scrolled {
  background: #fff9f0fb;
  border-bottom-color: #1125471f;
  box-shadow: 0 10px 28px #11254717;
}
.header-inner {
  grid-template-columns: minmax(230px, 1fr) auto auto;
  align-items: center;
  gap: 30px;
  min-height: 84px;
  display: grid;
}
.brand-link {
  justify-content: flex-start;
  align-items: center;
  width: 250px;
  height: 60px;
  line-height: 0;
  display: flex;
}
.brand-logo {
  object-fit: contain;
  object-position: left center;
  width: 100%;
  height: 100%;
}
.desktop-nav {
  align-items: center;
  gap: 34px;
  display: flex;
}
.desktop-nav a {
  padding-block: 14px;
  font-size: 14px;
  font-weight: 700;
  position: relative;
}
.desktop-nav a:after {
  content: "";
  background: var(--yellow);
  transform-origin: 0;
  height: 2px;
  transition: transform 0.16s;
  position: absolute;
  bottom: 7px;
  left: 0;
  right: 0;
  transform: scaleX(0);
}
.desktop-nav a:hover:after,
.desktop-nav a:focus-visible:after,
.desktop-nav a[aria-current="location"]:after {
  transform: scaleX(1);
}
.desktop-nav a[aria-current="location"],
.mobile-menu-nav a[aria-current="location"] {
  color: var(--link-blue);
}
.button {
  cursor: pointer;
  border: 1px solid #0000;
  border-radius: 8px;
  justify-content: center;
  align-items: center;
  gap: 14px;
  min-height: 52px;
  padding: 13px 22px;
  font-weight: 800;
  line-height: 1.15;
  transition:
    transform 0.16s,
    background-color 0.16s,
    border-color 0.16s;
  display: inline-flex;
}
.button svg {
  flex: none;
  font-size: 20px;
  transition: transform 0.16s;
}
.button:hover {
  transform: translateY(-2px);
}
.button:hover svg {
  transform: translate(3px);
}
.button-primary {
  background: var(--yellow);
  color: var(--navy);
  box-shadow: 0 8px 18px #fcc5133d;
}
.button-primary:hover {
  background: #ffd23d;
}
.button-secondary {
  border-color: var(--navy);
  color: var(--navy);
  background: 0 0;
}
.button-secondary:hover {
  background: var(--white);
}
.header-cta {
  min-height: 48px;
  padding-inline: 20px;
  font-size: 14px;
}
.menu-trigger {
  background: var(--white);
  width: 44px;
  height: 44px;
  color: var(--navy);
  cursor: pointer;
  border: 1px solid #1125472e;
  border-radius: 8px;
  justify-content: center;
  align-items: center;
  font-size: 25px;
  display: none;
}
.mobile-menu,
.menu-backdrop {
  display: none;
}
[data-reveal] {
  --reveal-order: 0;
}
.motion-ready [data-reveal] {
  opacity: 0;
  transition:
    opacity 0.56s cubic-bezier(0.22, 1, 0.36, 1),
    translate 0.56s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.56s cubic-bezier(0.22, 1, 0.36, 1);
  transition-delay: calc(var(--reveal-order) * 70ms);
  translate: 0 18px;
}
.motion-ready [data-reveal].is-visible {
  opacity: 1;
  translate: 0;
}
.motion-ready .hero-media[data-reveal] {
  transform: scale(1.015);
}
.motion-ready .hero-media[data-reveal].is-visible {
  transform: scale(1);
}
@media (hover: hover) and (pointer: fine) {
  .stage-card,
  .campus-item,
  .why-points article,
  .day-moments article {
    transition:
      transform 0.22s,
      border-color 0.22s,
      box-shadow 0.22s;
  }
  .motion-ready .stage-card[data-reveal].is-visible,
  .motion-ready .campus-item[data-reveal].is-visible {
    transition:
      opacity 0.56s cubic-bezier(0.22, 1, 0.36, 1)
        calc(var(--reveal-order) * 70ms),
      translate 0.56s cubic-bezier(0.22, 1, 0.36, 1)
        calc(var(--reveal-order) * 70ms),
      transform 0.22s ease 0s,
      border-color 0.22s ease 0s,
      box-shadow 0.22s ease 0s;
  }
  .stage-image img,
  .why-media img,
  .day-visual > img {
    transition: transform 0.52s cubic-bezier(0.22, 1, 0.36, 1);
  }
  .stage-card:hover,
  .campus-item:hover,
  .why-points article:hover,
  .day-moments article:hover {
    transform: translateY(-4px);
  }
  .stage-card:hover .stage-image img,
  .why-media:hover img,
  .day-visual:hover > img {
    transform: scale(1.025);
  }
}
.hero {
  background: var(--ivory);
  min-height: 0;
  position: relative;
}
.hero-grid {
  grid-template-rows: minmax(0, 1fr);
  grid-template-columns: minmax(0, 52.8fr) minmax(0, 47.2fr);
  align-items: stretch;
  height: clamp(620px, 100dvh - 84px, 704px);
  display: grid;
}
.hero-copy-wrap {
  align-items: center;
  min-width: 0;
  padding-left: max(32px, 50vw - 640px);
  padding-right: clamp(28px, 3.8vw, 56px);
  display: flex;
}
.hero-copy {
  z-index: 2;
  width: 100%;
  max-width: 600px;
  padding: 0;
}
.eyebrow {
  color: var(--link-blue);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
  font-size: 13px;
  font-weight: 800;
  display: flex;
}
.eyebrow:after {
  content: "";
  background: var(--yellow);
  width: 46px;
  height: 3px;
}
.eyebrow.light,
.day .eyebrow {
  color: #c8d4ff;
}
.hero h1,
.section h2 {
  letter-spacing: -0.025em;
  font-family:
    DM Serif Display,
    Georgia,
    serif;
  font-weight: 400;
  line-height: 1.04;
}
.hero h1 {
  max-width: 650px;
  margin-bottom: 20px;
  font-size: clamp(52px, 4.2vw, 68px);
  line-height: 1.02;
}
.hero h1 span {
  z-index: 0;
  white-space: nowrap;
  position: relative;
}
.hero h1 span:after {
  content: "";
  z-index: -1;
  background: var(--yellow);
  border-radius: 3px;
  height: 0.1em;
  position: absolute;
  bottom: 0.03em;
  left: -4px;
  right: -6px;
}
.hero-lede {
  max-width: 520px;
  color: var(--ink-soft);
  margin-bottom: 24px;
  font-size: 18px;
  line-height: 1.55;
}
.hero-actions {
  flex-wrap: wrap;
  gap: 16px;
  margin-bottom: 28px;
  display: flex;
}
.hero-actions .button {
  min-width: 204px;
}
.hero-facts {
  grid-template-columns: repeat(3, 1fr);
  list-style: none;
  display: grid;
}
.hero-facts li {
  min-width: 0;
  color: var(--navy);
  border-right: 1px solid #11254738;
  align-items: center;
  gap: 12px;
  padding: 3px 18px;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.35;
  display: flex;
}
.hero-facts li:first-child {
  padding-left: 0;
}
.hero-facts li:last-child {
  border-right: 0;
}
.fact-icon {
  width: 40px;
  height: 40px;
  color: var(--blue);
  flex: none;
  place-items: center;
  font-size: 29px;
  display: grid;
}
.hero-media {
  background: var(--beige);
  border-radius: 45% 0 0 45%/18% 0 0 18%;
  min-width: 0;
  min-height: 0;
  position: relative;
  overflow: hidden;
}
.hero-media img {
  object-fit: cover;
  object-position: 50% 46%;
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0;
}
.hero-caption {
  z-index: 4;
  border-left: 4px solid var(--yellow);
  color: var(--navy);
  background: #ffffffe6;
  flex-direction: column;
  padding: 14px 18px;
  font-size: 12px;
  display: flex;
  position: absolute;
  bottom: calc(72px + 22px);
  right: 22px;
}
.hero-caption strong {
  font-size: 14px;
}
.path-band {
  pointer-events: none;
  -webkit-user-select: none;
  user-select: none;
  overflow: hidden;
}
.path-band .learning-path {
  width: 100%;
  max-width: none;
  height: auto;
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
}
.section-path,
.hero-path {
  z-index: 3;
  width: 100%;
  height: 72px;
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
}
.journey-path .learning-path {
  transform: translateY(-50%) scaleX(-1);
}
.concept-label {
  z-index: 4;
  color: var(--navy);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  background: #fff9f0eb;
  border: 1px solid #1125471f;
  border-radius: 999px;
  padding: 7px 10px;
  font-size: 10px;
  font-weight: 800;
  line-height: 1;
  position: absolute;
  top: 16px;
  right: 16px;
}
.section {
  padding-block: 118px;
  position: relative;
}
.section-intro {
  max-width: 760px;
  margin-bottom: 48px;
}
.section-intro.compact {
  max-width: 620px;
}
.section h2 {
  margin-bottom: 16px;
  font-size: clamp(42px, 4vw, 60px);
}
.section-intro > p:last-child,
.day-heading > p,
.faq-heading > p,
.campus-lede {
  color: var(--ink-soft);
  font-size: 17px;
}
.period {
  color: var(--yellow);
}
.learning {
  background: var(--white);
}
.stage-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 24px;
  display: grid;
}
.stage-card {
  background: var(--white);
  border-radius: var(--radius-card);
  min-height: 500px;
  box-shadow: var(--shadow-card);
  border: 1px solid #1125471c;
  position: relative;
  overflow: hidden;
}
.stage-image {
  height: 218px;
  overflow: hidden;
}
.stage-image img {
  object-fit: cover;
  width: 100%;
  height: 100%;
}
.stage-icon {
  background: var(--white);
  width: 58px;
  height: 58px;
  color: var(--blue);
  border: 1px solid #3d6ef12e;
  border-radius: 50%;
  place-items: center;
  margin: -29px 0 12px 20px;
  font-size: 28px;
  display: grid;
  position: relative;
  box-shadow: 0 6px 14px #1125471a;
}
.stage-body {
  padding: 0 22px 28px;
}
.stage-body h3 {
  margin-bottom: 2px;
  font-size: 22px;
  line-height: 1.25;
}
.stage-grades {
  color: var(--link-blue);
  margin-bottom: 14px;
  font-size: 14px;
  font-weight: 800;
}
.stage-body > p:last-child {
  color: var(--ink-soft);
  margin-bottom: 0;
  font-size: 14px;
  line-height: 1.65;
}
.submission-note {
  color: #697589;
  text-align: center;
  max-width: 780px;
  margin: 30px auto 0;
  font-size: 12px;
}
.why {
  background: var(--ivory);
}
.why-grid {
  grid-template-columns: minmax(0, 0.84fr) minmax(0, 1.16fr);
  grid-template-areas: "media content";
  align-items: center;
  gap: 64px;
  display: grid;
}
.why-media {
  border-radius: 0 0 76px;
  grid-area: media;
  min-height: 680px;
  position: relative;
  overflow: hidden;
}
.why-content {
  grid-area: content;
}
.why-media img {
  object-fit: cover;
  width: 100%;
  height: 680px;
}
.why-media-tag {
  background: var(--yellow);
  color: var(--navy);
  flex-direction: column;
  padding: 16px 18px;
  font-size: 12px;
  display: flex;
  position: absolute;
  bottom: 18px;
  right: 18px;
}
.why-media-tag strong {
  font-size: 15px;
}
.why-content h2 {
  margin-bottom: 42px;
}
.why-points {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 38px 28px;
  display: grid;
}
.proof-icon {
  background: var(--white);
  width: 54px;
  height: 54px;
  color: var(--blue);
  border: 1px solid #3d6ef129;
  border-radius: 50%;
  place-items: center;
  margin-bottom: 14px;
  font-size: 27px;
  display: grid;
  box-shadow: 0 6px 14px #11254712;
}
.why-points h3 {
  margin-bottom: 6px;
  font-size: 16px;
  line-height: 1.35;
}
.why-points p {
  color: var(--ink-soft);
  margin-bottom: 0;
  font-size: 13px;
  line-height: 1.55;
}
.day {
  background: var(--navy);
  color: var(--white);
}
.day-heading {
  grid-template-columns: 1fr 0.72fr;
  align-items: end;
  gap: 80px;
  margin-bottom: 48px;
  display: grid;
}
.day-heading h2 {
  margin-bottom: 0;
}
.day-heading > p {
  color: #c8d4e8;
  margin-bottom: 7px;
}
.day-visual {
  border-radius: var(--radius-large);
  min-height: 640px;
  position: relative;
  overflow: hidden;
}
.day-visual > img {
  object-fit: cover;
  width: 100%;
  height: 640px;
}
.day-moments {
  background: #112547f0;
  border: 1px solid #ffffff29;
  border-radius: 18px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  display: grid;
  position: absolute;
  bottom: 24px;
  left: 24px;
  right: 24px;
}
.day-moments article {
  border-right: 1px solid #ffffff24;
  min-height: 198px;
  padding: 24px;
}
.day-moments article:last-child {
  border-right: 0;
}
.day-moments svg {
  color: var(--yellow);
  margin-bottom: 10px;
  font-size: 28px;
}
.moment-number {
  float: right;
  color: #ffffff7a;
  letter-spacing: 0.12em;
  font-size: 12px;
  font-weight: 800;
}
.day-moments h3 {
  margin-bottom: 5px;
  font-size: 19px;
}
.day-moments p {
  color: #c8d4e8;
  margin-bottom: 0;
  font-size: 12px;
  line-height: 1.55;
}
.campus {
  background: var(--beige);
}
.campus-grid {
  grid-template-columns: 0.9fr 1.1fr;
  align-items: start;
  gap: 92px;
  display: grid;
}
.campus-copy h2 {
  max-width: 560px;
}
.campus-lede {
  max-width: 560px;
  margin-bottom: 30px;
}
.text-link {
  min-height: 44px;
  color: var(--link-blue);
  border-bottom: 2px solid var(--yellow);
  align-items: center;
  font-weight: 800;
  display: inline-flex;
}
.campus-list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  display: grid;
}
.campus-item {
  background: var(--white);
  border: 1px solid #11254714;
  border-radius: 14px;
  align-items: center;
  gap: 18px;
  min-height: 126px;
  padding: 22px;
  font-weight: 800;
  display: flex;
  box-shadow: 0 8px 20px #1125470d;
}
.campus-item svg {
  color: var(--blue);
  flex: none;
  font-size: 34px;
}
.journey {
  background: var(--ivory);
}
.journey-list {
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 18px;
  list-style: none;
  display: grid;
  position: relative;
}
.journey-list:before {
  content: "";
  transform-origin: 0;
  background: #11254733;
  height: 1px;
  transition: transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
  position: absolute;
  top: 26px;
  left: 8%;
  right: 8%;
  transform: scaleX(1);
}
.motion-ready .journey-list:before {
  transform: scaleX(0);
}
.motion-ready .journey-list.is-visible:before {
  transform: scaleX(1);
}
.journey-list li {
  z-index: 1;
  text-align: center;
  position: relative;
}
.journey-number {
  background: var(--ivory);
  border: 2px solid var(--blue);
  width: 52px;
  height: 52px;
  color: var(--link-blue);
  border-radius: 50%;
  place-items: center;
  margin: 0 auto 14px;
  font-weight: 800;
  display: grid;
}
.journey-icon {
  width: 76px;
  height: 76px;
  color: var(--navy);
  background: #e8edfb;
  border-radius: 50%;
  place-items: center;
  margin: 0 auto 16px;
  font-size: 36px;
  display: grid;
}
.journey-list h3 {
  margin-bottom: 7px;
  font-size: 16px;
}
.journey-list p {
  max-width: 190px;
  color: var(--ink-soft);
  margin: 0 auto;
  font-size: 12px;
  line-height: 1.5;
}
.journey-note {
  background: var(--white);
  border-left: 4px solid var(--yellow);
  max-width: 760px;
  color: var(--ink-soft);
  text-align: center;
  margin: 38px auto 0;
  padding: 14px 18px;
  font-size: 13px;
}
.faq {
  background: var(--white);
}
.faq-grid {
  grid-template-columns: 0.7fr 1.3fr;
  align-items: start;
  gap: 90px;
  display: grid;
}
.faq-heading {
  position: sticky;
  top: 136px;
}
.accordion {
  border-top: 1px solid #11254729;
}
.faq-item {
  border-bottom: 1px solid #11254729;
}
.faq-item h3 {
  margin: 0;
}
.faq-item button {
  width: 100%;
  min-height: 78px;
  color: var(--navy);
  cursor: pointer;
  text-align: left;
  background: 0 0;
  border: 0;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  padding: 18px 0;
  font-weight: 800;
  display: flex;
}
.faq-item button svg {
  width: 28px;
  height: 28px;
  color: var(--link-blue);
  background: #eef2ff;
  border-radius: 50%;
  flex: none;
  padding: 5px;
}
.faq-item > div {
  padding: 0 56px 24px 0;
}
.faq-item > div p {
  color: var(--ink-soft);
  margin-bottom: 0;
}
.enquiry {
  background: var(--navy);
  color: var(--white);
}
.enquiry-grid {
  grid-template-columns: 0.78fr 1.22fr;
  align-items: start;
  gap: 78px;
  display: grid;
}
.enquiry-copy {
  position: sticky;
  top: 136px;
}
.enquiry-copy > p:not(.eyebrow) {
  color: #c8d4e8;
  font-size: 17px;
}
.contact-list {
  gap: 18px;
  margin: 42px 0;
  list-style: none;
  display: grid;
}
.contact-list li {
  color: #dce4f1;
  align-items: flex-start;
  gap: 16px;
  font-size: 13px;
  display: flex;
}
.contact-list svg {
  color: var(--yellow);
  flex: none;
  font-size: 26px;
}
.contact-list span {
  gap: 2px;
  display: grid;
}
.contact-links {
  gap: 4px;
}
.contact-links a,
.contact-list a {
  text-underline-offset: 3px;
  width: fit-content;
  -webkit-text-decoration: underline #fcc513b8;
  text-decoration: underline #fcc513b8;
}
.contact-list strong {
  color: var(--white);
  font-size: 14px;
}
.reassurance {
  border-left: 4px solid var(--yellow);
  background: #ffffff14;
  gap: 3px;
  padding: 18px;
  font-size: 13px;
  display: grid;
}
.reassurance span {
  color: #c8d4e8;
}
.enquiry-form {
  background: var(--white);
  border-radius: var(--radius-large);
  color: var(--navy);
  padding: 36px;
  box-shadow: 0 24px 60px #0003;
}
.form-heading {
  color: var(--link-blue);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border-bottom: 1px solid #1125471f;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 28px;
  padding-bottom: 18px;
  font-size: 12px;
  font-weight: 800;
  display: flex;
}
.form-heading strong {
  color: var(--ink-soft);
  letter-spacing: 0;
  text-transform: none;
}
.field-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
  display: grid;
}
.field {
  gap: 7px;
  display: grid;
}
.field-wide {
  grid-column: 1/-1;
}
.field label {
  font-size: 13px;
  font-weight: 800;
}
.field input,
.field select,
.field textarea {
  background: var(--white);
  width: 100%;
  min-height: 50px;
  color: var(--navy);
  border: 1px solid #a9b1bf;
  border-radius: 8px;
  padding: 11px 13px;
}
.field textarea {
  resize: vertical;
  min-height: 96px;
}
.field input:hover,
.field select:hover,
.field textarea:hover {
  border-color: var(--link-blue);
}
.field input[aria-invalid="true"],
.field select[aria-invalid="true"],
.field textarea[aria-invalid="true"] {
  border-color: var(--error);
  background: var(--error-bg);
}
.field-error {
  color: var(--error);
  margin: 0;
  font-size: 12px;
  font-weight: 700;
}
.field-hint {
  color: var(--ink-soft);
  margin: -2px 0 0;
  font-size: 11px;
  line-height: 1.45;
}
.consent {
  color: var(--ink-soft);
  align-items: flex-start;
  gap: 11px;
  margin: 24px 0;
  font-size: 12px;
  line-height: 1.5;
  display: flex;
}
.consent input {
  width: 20px;
  height: 20px;
  accent-color: var(--link-blue);
  flex: none;
  margin: 0;
}
.consent.has-error {
  background: var(--error-bg);
  color: var(--error);
  border-radius: 6px;
  padding: 10px;
}
.consent + .field-error {
  margin-top: -16px;
  margin-bottom: 18px;
}
.submit-button {
  border: 0;
  min-width: 210px;
}
.submit-button:disabled {
  cursor: wait;
  opacity: 0.68;
  transform: none;
}
.demo-note {
  color: var(--ink-soft);
  margin: 14px 0 0;
  font-size: 12px;
}
.submit-row {
  align-items: center;
  gap: 18px;
  display: flex;
}
.demo-error-link,
.text-button {
  border: 0;
  border-bottom: 2px solid var(--yellow);
  min-height: 44px;
  color: var(--link-blue);
  cursor: pointer;
  background: 0 0;
  padding: 8px 0;
  font-size: 12px;
  font-weight: 800;
}
.text-button {
  margin-top: 8px;
}
.form-alert,
.form-success {
  border-radius: 9px;
  margin-bottom: 22px;
  padding: 16px 18px;
}
.form-alert {
  background: var(--error-bg);
  border-left: 4px solid var(--error);
  color: var(--error);
}
.form-success {
  background: var(--success-bg);
  border-left: 4px solid var(--success);
  color: var(--success);
}
.form-alert strong,
.form-success strong {
  margin-bottom: 3px;
  display: block;
}
.form-alert > svg,
.form-success > svg {
  float: left;
  margin: 1px 10px 0 0;
  font-size: 22px;
}
.form-alert a {
  color: inherit;
  text-underline-offset: 2px;
  text-decoration: underline;
}
.form-alert p,
.form-success p {
  margin-bottom: 0;
  font-size: 13px;
}
.site-footer {
  padding: 70px 0 24px;
  padding-bottom: max(24px, env(safe-area-inset-bottom));
  color: #dce4f1;
  background: #09172e;
}
.footer-grid {
  grid-template-columns: 0.85fr 1.45fr 0.5fr;
  align-items: start;
  gap: 70px;
  display: grid;
}
.footer-grid > *,
.site-footer address > * {
  min-width: 0;
}
.footer-logo {
  background: var(--ivory);
  border-radius: 8px;
  align-items: center;
  width: min(250px, 100%);
  height: 84px;
  margin-bottom: 18px;
  padding: 12px;
  display: flex;
  overflow: hidden;
}
.footer-logo img {
  object-fit: contain;
  object-position: left center;
  width: 100%;
  height: 100%;
}
.footer-brand p {
  color: #aab7cb;
  max-width: 340px;
  font-size: 13px;
}
.site-footer address {
  gap: 14px;
  font-size: 13px;
  font-style: normal;
  display: grid;
}
.site-footer address span,
.site-footer address a {
  align-items: flex-start;
  gap: 10px;
  display: flex;
}
.site-footer address a {
  overflow-wrap: anywhere;
}
.site-footer address svg {
  color: var(--yellow);
  flex: none;
  margin-top: 2px;
  font-size: 20px;
}
.footer-phone-links {
  gap: 4px !important;
  display: grid !important;
}
.footer-phone-links a {
  width: fit-content;
}
.footer-links {
  gap: 12px;
  font-size: 13px;
  font-weight: 800;
  display: grid;
}
.footer-links a {
  color: var(--white);
}
.footer-links a:hover {
  color: var(--yellow);
}
.footer-bottom {
  color: #8e9cb2;
  border-top: 1px solid #ffffff1f;
  justify-content: space-between;
  gap: 20px;
  margin-top: 46px;
  padding-top: 22px;
  font-size: 11px;
  display: flex;
}
.mobile-sticky-cta {
  display: none;
}
@media (max-width: 1180px) {
  .header-inner {
    grid-template-columns: minmax(220px, 1fr) auto auto;
    gap: 24px;
  }
  .desktop-nav {
    display: none;
  }
  .menu-trigger {
    display: inline-flex;
  }
  .menu-backdrop {
    z-index: 88;
    opacity: 0;
    visibility: hidden;
    background: #09172e85;
    transition:
      opacity 0.18s,
      visibility 0.18s;
    display: block;
    position: fixed;
    inset: 0;
  }
  .menu-backdrop.is-open {
    opacity: 1;
    visibility: visible;
  }
  .mobile-menu {
    z-index: 90;
    overscroll-behavior: contain;
    background: var(--ivory);
    flex-direction: column;
    gap: 0;
    width: min(88vw, 360px);
    padding: 22px;
    transition: transform 0.2s;
    display: flex;
    position: fixed;
    top: 0;
    bottom: 0;
    right: 0;
    overflow-y: auto;
    transform: translate(105%);
    box-shadow: -18px 0 42px #09172e38;
  }
  .mobile-menu.is-open {
    transform: translate(0);
  }
  .mobile-menu-head {
    border-bottom: 1px solid #11254729;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 22px;
    padding-bottom: 18px;
    font-family:
      DM Serif Display,
      Georgia,
      serif;
    font-size: 25px;
    display: flex;
  }
  .mobile-menu-head button {
    background: var(--white);
    width: 44px;
    height: 44px;
    color: var(--navy);
    border: 1px solid #11254729;
    border-radius: 8px;
    place-items: center;
    font-size: 22px;
    display: grid;
  }
  .mobile-menu-nav > a {
    border-bottom: 1px solid #1125471f;
    align-items: center;
    gap: 16px;
    min-height: 58px;
    font-weight: 800;
    display: flex;
  }
  .mobile-menu-nav > a span {
    color: var(--blue);
    font-size: 11px;
  }
  .mobile-menu-nav {
    display: grid;
  }
  .mobile-menu .button {
    width: 100%;
    margin-top: auto;
  }
  .header-cta {
    justify-self: end;
  }
  .hero-facts {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
  }
  .hero-facts li {
    gap: 8px;
    padding-inline: 12px;
    font-size: 12px;
  }
  .hero-facts li:first-child {
    padding-left: 0;
  }
  .stage-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .why-grid {
    grid-template-columns: 0.8fr 1.2fr;
    gap: 40px;
  }
  .why-points,
  .day-moments {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .day-moments article:nth-child(2) {
    border-right: 0;
  }
  .day-moments article:nth-child(-n + 2) {
    border-bottom: 1px solid #ffffff24;
  }
}
@media (min-width: 901px) and (max-height: 820px) {
  .hero-grid {
    height: clamp(584px, 100dvh - 84px, 660px);
    min-height: 584px;
  }
  .eyebrow {
    margin-bottom: 12px;
  }
  .hero h1 {
    margin-bottom: 14px;
    font-size: clamp(46px, 3.7vw, 58px);
  }
  .hero-lede {
    margin-bottom: 16px;
    font-size: 16px;
    line-height: 1.45;
  }
  .hero-actions {
    margin-bottom: 18px;
  }
  .fact-icon {
    width: 34px;
    height: 34px;
    font-size: 25px;
  }
}
@media (max-width: 900px) {
  .shell {
    width: min(100% - 48px, 1280px);
  }
  .footer-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 40px;
  }
  .footer-links {
    flex-wrap: wrap;
    grid-column: 1/-1;
    gap: 12px 28px;
    display: flex;
  }
  .hero-grid {
    grid-template-rows: auto;
    grid-template-columns: 1fr;
    height: auto;
    min-height: 0;
  }
  .hero-copy-wrap {
    width: min(100% - 48px, 1280px);
    margin-inline: auto;
    padding: 0;
  }
  .hero-copy {
    max-width: 680px;
    padding: 56px 0 48px;
  }
  .hero h1 {
    font-size: 52px;
  }
  .hero-media {
    border-radius: 40% 0 0/14% 0 0;
    width: 100%;
    height: 560px;
  }
  .hero-media img {
    object-position: 50% 42%;
  }
  .why-grid,
  .campus-grid,
  .faq-grid,
  .enquiry-grid {
    grid-template-columns: 1fr;
  }
  .why-grid {
    grid-template-areas: "content" "media";
  }
  .why-media {
    min-height: 520px;
  }
  .why-media img {
    height: 520px;
  }
  .faq-heading,
  .enquiry-copy {
    position: static;
  }
  .journey-list {
    grid-template-columns: 1fr;
    gap: 0;
    padding-left: 30px;
  }
  .journey-list:before {
    transform-origin: top;
    width: 1px;
    height: auto;
    inset: 20px auto 20px 55px;
    transform: scaleY(1);
  }
  .motion-ready .journey-list:before {
    transform: scaleY(0);
  }
  .motion-ready .journey-list.is-visible:before {
    transform: scaleY(1);
  }
  .journey-list li {
    text-align: left;
    grid-template-columns: 52px 76px 1fr;
    align-items: center;
    gap: 16px;
    padding-bottom: 28px;
    display: grid;
  }
  .journey-number,
  .journey-icon {
    margin: 0;
  }
  .journey-list h3,
  .journey-list p {
    grid-column: 3;
  }
  .journey-list h3 {
    align-self: end;
    margin: 0;
  }
  .journey-list p {
    align-self: start;
    max-width: none;
    margin-top: -28px;
  }
}
@media (max-width: 767px) {
  html {
    scroll-padding-top: 72px;
  }
  body {
    font-size: 16px;
  }
  .shell {
    width: calc(100% - 40px);
  }
  .site-header {
    min-height: 64px;
  }
  .header-inner {
    grid-template-columns: 1fr auto;
    gap: 12px;
    min-height: 64px;
  }
  .brand-link {
    width: min(188px, 52vw);
    height: 48px;
  }
  .header-cta {
    display: none;
  }
  .hero {
    min-height: auto;
  }
  .hero-grid {
    grid-template-columns: 1fr;
    height: auto;
    min-height: 0;
  }
  .hero-copy-wrap {
    width: calc(100% - 40px);
  }
  .hero-copy {
    max-width: none;
    padding: 48px 0 32px;
  }
  .eyebrow {
    margin-bottom: 15px;
    font-size: 11px;
  }
  .hero h1 {
    margin-bottom: 20px;
    font-size: clamp(38px, 11vw, 48px);
    line-height: 1.02;
  }
  .hero h1 br {
    display: none;
  }
  .hero h1 span {
    white-space: normal;
  }
  .hero-lede {
    margin-bottom: 26px;
    font-size: 16px;
  }
  .hero-actions {
    gap: 12px;
    margin-bottom: 28px;
    display: grid;
  }
  .hero-actions .button {
    width: 100%;
  }
  .hero-facts {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
  }
  .hero-facts li,
  .hero-facts li:first-child {
    text-align: center;
    border-right: 1px solid #1125472e;
    justify-items: center;
    gap: 5px;
    padding: 0 6px;
    font-size: 12px;
    display: grid;
  }
  .hero-facts li:last-child {
    border-right: 0;
  }
  .fact-icon {
    width: 32px;
    height: 32px;
    font-size: 24px;
  }
  .hero-media {
    aspect-ratio: 4/5;
    border-radius: 44% 0 0/14% 0 0;
    width: 100%;
    height: auto;
    max-height: 560px;
    margin: 0;
  }
  .hero-media img {
    object-position: 50% 42%;
  }
  .hero-caption {
    bottom: 14px;
    right: 14px;
  }
  .hero-path {
    display: none;
  }
  .section {
    padding-block: 76px;
  }
  .section h2 {
    font-size: 42px;
  }
  .section-intro {
    margin-bottom: 32px;
  }
  .stage-grid,
  .why-points,
  .campus-list,
  .field-grid {
    grid-template-columns: 1fr;
  }
  .stage-grid {
    gap: 18px;
  }
  .stage-card {
    grid-template-columns: 120px 1fr;
    min-height: auto;
    display: grid;
    overflow: visible;
  }
  .stage-image {
    border-radius: 16px 0 0 16px;
    height: 100%;
    min-height: 210px;
    overflow: hidden;
  }
  .stage-icon {
    width: 48px;
    height: 48px;
    margin: 0;
    font-size: 23px;
    position: absolute;
    top: 14px;
    left: 94px;
  }
  .stage-body {
    padding: 24px 18px 22px 28px;
  }
  .stage-body h3 {
    font-size: 20px;
  }
  .stage-body > p:last-child {
    font-size: 12px;
  }
  .why-grid,
  .campus-grid,
  .faq-grid,
  .enquiry-grid {
    gap: 40px;
  }
  .why-media,
  .why-media img {
    height: 430px;
    min-height: 430px;
  }
  .why-media {
    border-radius: 0 0 52px;
  }
  .why-content h2 {
    margin-bottom: 28px;
  }
  .why-points {
    gap: 24px;
  }
  .why-points article {
    grid-template-columns: 48px 1fr;
    column-gap: 14px;
    display: grid;
  }
  .proof-icon {
    grid-row: 1/3;
    width: 48px;
    height: 48px;
    margin: 0;
    font-size: 24px;
  }
  .why-points h3,
  .why-points p {
    grid-column: 2;
  }
  .day-heading {
    grid-template-columns: 1fr;
    gap: 12px;
    margin-bottom: 30px;
  }
  .day-visual {
    border-radius: 0;
    height: auto;
    min-height: 0;
    overflow: visible;
  }
  .day-visual > img {
    aspect-ratio: 4/3;
    object-fit: cover;
    border-radius: 18px;
    width: 100%;
    height: auto;
    min-height: 0;
  }
  .day-moments {
    background: 0 0;
    border: 0;
    grid-template-columns: 1fr;
    gap: 12px;
    margin-top: 16px;
    position: static;
  }
  .day-moments article {
    background: #ffffff12;
    border: 1px solid #ffffff24;
    border-radius: 14px;
    min-height: auto;
    padding: 20px;
  }
  .day-moments article:last-child {
    border: 1px solid #ffffff24;
  }
  .day-moments p {
    font-size: 13px;
  }
  .campus-item {
    min-height: 96px;
  }
  .journey-list {
    padding-left: 0;
  }
  .journey-list:before {
    left: 25px;
  }
  .journey-list li {
    text-align: left;
    grid-template-columns: 52px 1fr;
    align-items: start;
    gap: 0 16px;
  }
  .journey-icon {
    grid-area: 1/2;
    justify-self: start;
    width: 54px;
    height: 54px;
    font-size: 27px;
  }
  .journey-list h3,
  .journey-list p {
    grid-column: 2;
    margin-left: 70px;
  }
  .journey-list h3 {
    grid-row: 1;
    align-self: center;
  }
  .journey-list p {
    grid-row: 2;
    margin-top: -16px;
  }
  .faq-item button {
    min-height: 72px;
  }
  .faq-item > div {
    padding-right: 0;
  }
  .enquiry-form {
    border-radius: 20px;
    padding: 24px 18px;
  }
  .form-heading {
    display: grid;
  }
  .field-wide {
    grid-column: auto;
  }
  .submit-button {
    width: 100%;
  }
  .submit-row {
    gap: 8px;
    display: grid;
  }
  .demo-error-link {
    justify-self: start;
  }
  .footer-grid {
    grid-template-columns: 1fr;
    gap: 34px;
  }
  .footer-links {
    grid-column: auto;
    display: grid;
  }
  .footer-logo {
    width: min(240px, 100%);
  }
  .footer-bottom {
    flex-direction: column;
  }
  .mobile-sticky-cta {
    z-index: 76;
    right: 10px;
    bottom: max(10px, env(safe-area-inset-bottom));
    background: var(--yellow);
    min-height: 56px;
    color: var(--navy);
    border: 1px solid #1125471f;
    border-radius: 10px;
    justify-content: center;
    align-items: center;
    gap: 12px;
    padding: 14px 18px;
    font-weight: 800;
    display: flex;
    position: fixed;
    left: 10px;
    box-shadow: 0 10px 28px #1125473d;
  }
  .section-path {
    height: 56px;
  }
  .concept-label {
    top: 12px;
    right: 12px;
  }
}
@media (max-width: 420px) {
  .stage-card {
    grid-template-columns: 104px 1fr;
  }
  .stage-icon {
    left: 80px;
  }
  .stage-body {
    padding-left: 25px;
  }
}
@media (prefers-reduced-motion: reduce) {
  *,
  :before,
  :after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
  .motion-ready [data-reveal],
  .motion-ready .hero-media[data-reveal] {
    opacity: 1 !important;
    transform: none !important;
  }
  .motion-ready .journey-list:before {
    transform: none !important;
  }
}

/* TIS 2026 approved premium layer */
:root{
  --ui-control-radius:10px;
  --ui-card-radius:16px;
  --ui-media-radius:24px;
  --ui-card-border:1px solid rgb(17 37 71 / 11%);
  --ui-shadow-rest:0 8px 20px rgb(17 37 71 / 8%);
  --ui-shadow-hover:0 14px 30px rgb(17 37 71 / 12%);
}

html{scroll-padding-top:104px}
body{background:var(--white)}
.site-wrap{overflow-x:clip}
.shell{width:min(100% - 64px,1280px);margin-inline:auto}
img{max-width:100%}

.site-header,.header-inner{min-height:88px}
.header-inner{grid-template-columns:minmax(228px,1fr) auto auto;gap:28px}
.brand-link{width:228px;height:auto;aspect-ratio:2131/683}
.brand-link{overflow:visible}
.brand-logo,.footer-logo img{width:100%;height:auto;aspect-ratio:2131/683;object-fit:contain}
.brand-logo{transform-origin:left center;transition:transform .2s ease}
.brand-link:hover .brand-logo,.brand-link:focus-visible .brand-logo{transform:scale(1.02)}

.button{border-radius:var(--ui-control-radius);transition:transform .18s ease,box-shadow .18s ease,background-color .18s ease,color .18s ease}
.button:hover{transform:translateY(-1px)}
.hero-path,.section-path{display:none}
.concept-label,.demo-error-link,.demo-note,.footer-bottom span:last-child{display:none!important}

.motion-ready [data-reveal]{transition:opacity .32s ease,translate .32s ease,transform .32s ease;translate:0 10px}
.motion-ready [data-reveal].is-visible{translate:0 0}

.hero{min-height:704px}
.hero-grid{width:min(100% - 64px,1280px);grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;height:704px;margin-inline:auto}
.hero-copy-wrap{padding:0 56px 0 0}
.hero-copy{max-width:560px}
.hero h1{max-width:540px;font-size:clamp(48px,4.4vw,64px);line-height:1.04}
.hero h1 span{display:block;color:var(--yellow)}
.hero h1 span:after{display:none}
.hero-media,.why-media,.day-visual>img{border-radius:var(--ui-media-radius)}
.hero-media{border-radius:clamp(88px,24vw,150px) 24px 24px 24px}
.hero-media{height:624px;align-self:center;overflow:hidden}
.hero-caption{right:auto;bottom:32px;left:24px}

.section{padding-block:96px}
.section h2{font-size:clamp(44px,3.8vw,56px)}
.section-intro{margin-bottom:36px}
.section-intro p,.why-content>p,.campus-copy>p,.journey-note,.faq-copy>p,.enquiry-copy>p{font-size:15px;line-height:1.65}

.stage-card,.why-points article,.day-moments article,.journey-list li,.faq-item{border:var(--ui-card-border);border-radius:var(--ui-card-radius);box-shadow:var(--ui-shadow-rest)}
.stage-grid{gap:20px}
.stage-card{min-height:384px;overflow:hidden}
.stage-image{height:164px}
.stage-body{padding:0 20px 22px}
.stage-icon{width:48px;height:48px;margin:-24px 0 12px 18px;font-size:23px}
.stage-body h3{font-size:20px}
.stage-grades{margin-bottom:9px}
.stage-body p{font-size:14px;line-height:1.6}

.why{background:var(--beige)}
.why-grid{grid-template-columns:minmax(0,.84fr) minmax(0,1.16fr);gap:44px}
.why-media{min-height:640px;height:640px;overflow:hidden}
.why-media img{height:640px}
.why-media-tag{background:var(--navy);color:var(--white);right:auto;bottom:0;left:0;padding:14px 18px}
.why-media-tag span{color:var(--yellow)}
.why-media-tag strong{color:var(--white)}
.why-content h2{margin-bottom:28px}
.why-points{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.why-points article{background:var(--white);padding:20px}
.proof-icon{width:44px;height:44px;margin-bottom:10px;font-size:22px}
.why-points h3{font-size:18px;line-height:1.35}
.why-points p{font-size:14px;line-height:1.6}

.day-heading{gap:56px;margin-bottom:32px}
.day-visual{overflow:visible}
.day-visual{min-height:0}
.day-visual>img{height:448px}
.day-moments{position:static;margin-top:20px;gap:20px}
.day-moments{background:transparent;border:0;grid-template-columns:repeat(4,minmax(0,1fr))}
.day-moments article{background:var(--white);color:var(--navy);min-height:160px;padding:20px}
.day-moments article,.day-moments article:last-child{border-right:var(--ui-card-border)}
.day-moments h3{color:var(--navy);font-size:19px;line-height:1.35}
.day-moments p{color:var(--ink-soft);font-size:14px;line-height:1.6}
.day-moments svg,.moment-number{color:var(--blue)}

.campus-grid{grid-template-columns:minmax(0,.74fr) minmax(0,1.26fr);gap:72px;align-items:center}
.campus-copy{max-width:440px}
.campus-item{min-height:72px;padding:16px 18px;border:var(--ui-card-border);border-radius:var(--ui-card-radius);box-shadow:var(--ui-shadow-rest)}
.campus-item svg{font-size:27px}
.campus-item p{font-size:14px;line-height:1.55}

.journey{background:var(--white)}
.journey .section-intro{text-align:center;margin-inline:auto}
.journey-list{grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}
.journey-list:before{display:none}
.journey-list li{min-height:210px;padding:20px}
.journey-list li{background:var(--white);text-align:left;display:grid;grid-template-columns:auto 40px 1fr;column-gap:12px;row-gap:0}
.journey-number{background:transparent;border:0;border-radius:0;width:auto;height:auto;color:var(--link-blue);justify-content:start;margin:0 0 8px;font-size:12px}
.journey-icon{width:40px;height:40px;border-radius:50%;background:#e8edfb;color:var(--blue);place-items:center;justify-content:center;margin:0 0 10px;font-size:20px;grid-area:auto;justify-self:auto}
.journey-list h3,.journey-list p{max-width:none;margin-left:0;grid-column:auto;grid-row:auto;align-self:auto}
.journey-list h3{font-size:18px;line-height:1.35;margin:0 0 6px}
.journey-list p{font-size:14px;line-height:1.6;margin:0}
.journey-number{grid-column:1;grid-row:1;align-self:center;margin:0}
.journey-icon{grid-column:2;grid-row:1;justify-self:start;align-self:center;margin:0}
.journey-icon svg{width:22px;height:22px;display:block}
.journey-list h3{grid-column:1/-1;grid-row:2;margin:14px 0 6px}
.journey-list p{grid-column:1/-1;grid-row:3;margin:0}
.journey-note{background:transparent;border-left:0;max-width:760px;margin-top:28px;padding:0}

.faq{background:var(--beige)}
.faq-grid{gap:72px}
.accordion{border-top:0;gap:12px;display:grid}
.faq-item{background:var(--white);overflow:hidden}
.faq-item.is-open{border-color:var(--blue)}
.faq-item:focus-within{box-shadow:0 0 0 3px rgb(0 103 255 / 14%),var(--ui-shadow-rest)}
.faq-item button{min-height:66px;padding:14px 18px}
.faq-item button{font-size:15px}
.faq-item button svg{width:22px;height:22px;background:transparent;padding:2px}
.faq-item>div{padding:0 18px 18px}

.enquiry-grid{grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr);gap:64px}
.enquiry-form{border-radius:var(--ui-media-radius);padding:32px}
.form-field label,.field-help,.form-disclaimer{font-size:13px;line-height:1.55}
.submit-row{display:grid}
.submit-button{width:100%}
.submit-button{min-width:0}

.footer-logo{width:250px;height:auto;min-height:0;aspect-ratio:auto;padding:12px}
.footer-contact,.footer-links,.footer-bottom{font-size:14px;line-height:1.6}

@media (min-width:1050px){
  .desktop-nav{display:flex}
  .menu-trigger{display:none}
}

@media (min-width:1050px) and (max-width:1180px){
  .hero-copy-wrap{padding-right:32px}
  .hero-actions{gap:10px}
  .hero-actions .button{padding-inline:14px;font-size:14px}
}

@media (hover:hover) and (pointer:fine){
  .stage-card:hover,.campus-item:hover,.why-points article:hover,.day-moments article:hover{transform:translateY(-2px)}
  .stage-card:hover,.campus-item:hover,.why-points article:hover,.day-moments article:hover,.journey-list li:hover{box-shadow:var(--ui-shadow-hover)}
  .journey-list li:hover{transform:translateY(-2px)}
  .stage-card:hover .stage-image img,.why-points article:hover img,.day-moments article:hover img{transform:scale(1.01)}
  .stage-card,.why-points article,.day-moments article,.journey-list li,.campus-item{transition:transform .18s ease,box-shadow .18s ease}
  .stage-image img,.why-media img,.day-visual>img{transition:transform .2s ease}
  .stage-card:hover .stage-image img,.why-media:hover img,.day-visual:hover>img{transform:scale(1.01)}
}

@media (min-width:901px){.why-grid{grid-template-columns:minmax(0,.84fr) minmax(0,1.16fr);gap:44px}}

@media (max-width:900px){
  .day-moments{grid-template-columns:repeat(2,minmax(0,1fr))}
  .journey-list{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media (max-width:900px){
  .hero{min-height:0}
  .hero-grid{width:100%;height:auto;grid-template-columns:1fr}
  .hero-copy-wrap{width:min(100% - 48px,1280px);margin-inline:auto;padding:0}
  .hero-copy{max-width:680px;padding:56px 0 48px}
  .hero-media{height:560px;width:calc(100% - 48px);margin:0 24px 48px}
  .why-grid,.campus-grid,.enquiry-grid{grid-template-columns:1fr}
  .why-grid{grid-template-areas:"content" "media"}
  .why-media,.why-media img{height:560px;min-height:560px}
  .campus-grid,.enquiry-grid{gap:48px}
  .day-visual>img{height:420px}
}

@media (max-width:767px){
  .site-header,.header-inner{min-height:72px}
  .brand-link{width:176px;height:auto}
  .day-moments,.journey-list{grid-template-columns:1fr}
}

@media (max-width:767px){
  .shell{width:calc(100% - 40px)}
  .header-inner{grid-template-columns:1fr auto;gap:16px}
  .hero-grid{display:block}
  .hero-copy-wrap{width:calc(100% - 40px);margin-inline:auto;padding:0}
  .hero-copy{padding:44px 0 30px}
  .hero h1{max-width:none;font-size:clamp(40px,11.3vw,46px);line-height:1.04}
  .hero h1 br{display:initial}
  .hero h1 span{display:block;color:var(--yellow);white-space:nowrap}
  .hero-media{aspect-ratio:35/44;height:auto;width:calc(100% - 20px);margin:0 0 0 20px}
  .hero-caption{right:auto;bottom:18px;left:18px}
  .section{padding-block:64px}
  .section h2{font-size:clamp(38px,10.5vw,46px)}
  .stage-grid{gap:16px}
  .stage-card{min-height:0;display:block;overflow:hidden}
  .stage-image{height:auto;aspect-ratio:16/9;border-radius:0}
  .stage-icon{position:relative;top:auto;left:auto;margin:-24px 0 10px 18px}
  .stage-body{padding:0 18px 22px}
  .why-grid{gap:30px}
  .why-media,.why-media img{height:360px;min-height:360px}
  .why-points{grid-template-columns:1fr;gap:16px}
  .why-points article{display:block;padding:18px}
  .proof-icon{margin-bottom:10px}
  .day-heading{gap:10px;margin-bottom:24px}
  .day-visual>img{height:auto}
  .day-moments{margin-top:20px;gap:20px}
  .day-moments article{min-height:0;padding:18px}
  .campus-grid,.faq-grid,.enquiry-grid{gap:32px}
  .campus-item{min-height:72px}
  .journey-list{gap:16px;padding-left:0}
  .journey-list li{min-height:0;padding:18px}
  .journey-list li{display:grid;grid-template-columns:auto 40px 1fr;column-gap:12px;row-gap:0}
  .journey-number{grid-column:1;grid-row:1;align-self:center;margin:0}
  .journey-icon{grid-column:2;grid-row:1;justify-self:start;margin:0}
  .journey-icon svg{width:22px;height:22px;display:block}
  .journey-list h3{grid-column:1/-1;grid-row:2;margin:14px 0 6px}
  .journey-list p{grid-column:1/-1;grid-row:3;margin:0}
  .journey-list p{margin:0}
  .faq-item button{min-height:64px;font-size:16px}
  .enquiry-form{padding:24px 18px}
  .footer-logo{width:220px}
  .mobile-sticky-cta{display:none}
}

@media (min-width:901px) and (max-height:820px){
  .hero{min-height:620px}
  .hero-grid{height:calc(100vh - 88px);min-height:620px}
  .hero-media{height:calc(100% - 48px)}
  .hero h1{font-size:56px}
}

@media (prefers-reduced-motion:reduce){
  .brand-logo,.button,.stage-card,.why-points article,.day-moments article,.journey-list li,.campus-item,.stage-image img,.why-media img,.day-visual>img{transition:none!important}
  .brand-link:hover .brand-logo,.brand-link:focus-visible .brand-logo,.button:hover,.stage-card:hover,.why-points article:hover,.day-moments article:hover,.journey-list li:hover,.campus-item:hover,.stage-card:hover .stage-image img,.why-media:hover img,.day-visual:hover>img{transform:none!important}
}
