/* =====================================================================
   Sections built from the chosen concepts (VMV, team field, admission path,
   INNOSPHERE gallery, co-curricular wipes, contact map) + big-type switches
   ===================================================================== */
.sr-only { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---- switches: big type instead of pills (every .seg on the site) ---- */
.seg { display: flex !important; flex-wrap: wrap; align-items: baseline; gap: 4px 0; padding: 0 !important; background: none !important; border-radius: 0 !important; overflow: visible !important; width: auto !important; -webkit-mask: none !important; mask: none !important; }
.seg-ind { display: none !important; }
.seg button { min-height: 0 !important; height: auto; padding: 2px 0 !important; border-radius: 0 !important; background: none !important; color: rgba(20, 26, 46, .22) !important; font: 560 clamp(24px, 2.8vw, 40px)/1.08 var(--f-disp) !important; letter-spacing: -.02em; white-space: nowrap; transition: color 500ms var(--ease-out) !important; }
/* the separator trails its tab, so a wrapped row never starts with a slash */
.seg button:not(:last-of-type)::after { content: "/"; display: inline-block; margin: 0 .32em; font: italic 400 1em var(--f-serif); color: var(--green); opacity: .7; }
.seg button[aria-selected="true"], .seg button[aria-checked="true"] { color: var(--ink) !important; }
.seg button:hover { color: rgba(20, 26, 46, .55) !important; }
.seg button[aria-selected="true"]:hover, .seg button[aria-checked="true"]:hover { color: var(--ink) !important; }
.seg button .seg-n { font: 500 .4em var(--f-mono); vertical-align: .9em; margin-left: .2em; opacity: .7; }
.seg:has(> button:nth-of-type(5)) button { font-size: clamp(18px, 1.8vw, 26px) !important; }
.on-dark .seg button, .sec--blue .seg button, .sec--ink .seg button { color: rgba(244, 239, 234, .3) !important; }
.on-dark .seg button[aria-selected="true"], .on-dark .seg button[aria-checked="true"], .sec--blue .seg button[aria-checked="true"], .sec--ink .seg button[aria-checked="true"] { color: var(--paper) !important; }
.on-dark .seg button:not(:last-of-type)::after { color: var(--green-light); }
@media (max-width: 699px) { .seg button { font-size: clamp(20px, 6vw, 28px) !important; } .seg:has(> button:nth-of-type(5)) button { font-size: 17px !important; } }

/* ---- Vision, Mission and Values ---- */
.vmv { position: relative; background: var(--white); }
.vmv-pin { min-height: 100svh; display: flex; align-items: center; padding: calc(var(--bar-h, 76px) + 24px) 0 40px; overflow: hidden; }
.vmv-in { width: 100%; display: grid; gap: clamp(24px, 5vh, 56px); }
.vmv-head { display: grid; gap: 16px; }
@media (min-width: 900px) { .vmv-head { grid-template-columns: 1fr minmax(0, 40ch); gap: 64px; align-items: end; } }
.vmv-stage { position: relative; min-height: clamp(260px, 42svh, 440px); display: grid; align-items: center; }
.vmv-num { position: absolute; right: 0; top: 50%; transform: translateY(-50%); height: 1em; font: italic 400 clamp(180px, 26vw, 400px)/1 var(--f-serif); pointer-events: none; }
.vmv-num span { position: absolute; right: 0; top: 0; color: transparent; -webkit-text-stroke: 0; color: rgba(37, 152, 74, .07); opacity: 0; transform: translateY(12%) scale(.94); transition: opacity 900ms var(--ease-out), transform 1.2s var(--ease-out); }
.vmv-num span.on { opacity: 1; transform: none; }
.vmv-st { grid-area: 1 / 1; position: relative; max-width: min(100%, 1040px); }
.vmv-st .lbl { margin-bottom: 18px; }
.vmv-q { font: 400 clamp(28px, 3.9vw, 58px)/1.14 var(--f-serif); letter-spacing: -.005em; color: var(--ink); }
.vmv-q--m { font-size: clamp(22px, 2.7vw, 40px); line-height: 1.22; }
.vmv-q--v { font-size: clamp(64px, 10vw, 150px); line-height: 1; font-style: italic; color: var(--green); }
.vmv-q .w { display: inline-block; white-space: nowrap; }
.vmv-q .c { display: inline-block; will-change: transform, opacity, filter; }
.vmv-rail { position: absolute; left: 0; bottom: -8px; display: flex; gap: 22px; list-style: none; font: 500 11px var(--f-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--ink-soft); }
.vmv-rail li { position: relative; padding-top: 10px; opacity: .45; transition: opacity 500ms; }
.vmv-rail li::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 2px; background: var(--line); }
.vmv-rail li::after { content: ""; position: absolute; left: 0; top: 0; height: 2px; width: calc(var(--f, 0) * 100%); background: var(--green); }
.vmv-rail li.on { opacity: 1; }
.static .vmv-st { position: relative; grid-area: auto; }
@media (max-width: 699px) { .vmv-rail { display: none; } .vmv-num { font-size: 160px; top: 20%; } }

/* ---- Team: face field ---- */
.tf { position: relative; height: min(92svh, 860px); background: var(--ink); color: var(--paper); overflow: hidden; user-select: none; -webkit-user-select: none; touch-action: pan-y; }
.tf-field { position: absolute; inset: 0; }
.tf-f { position: absolute; left: 0; top: 0; border-radius: 14px; overflow: hidden; background: #2a3150; will-change: transform; transition: opacity .7s, filter .7s, box-shadow .7s; cursor: pointer; }
.tf-f img { width: 100%; height: 100%; object-fit: cover; pointer-events: none; }
.tf-f.dim { opacity: .1; filter: grayscale(1); }
.tf-f.hit { box-shadow: 0 0 0 3px var(--green-light); }
.tf-ui { position: absolute; left: 0; right: 0; top: 0; z-index: 2; padding: calc(var(--bar-h, 76px) + 22px) 0 70px; background: linear-gradient(rgba(20,26,46,.98) 72%, rgba(20,26,46,0)); pointer-events: none; }
.tf-ui-in { display: grid; gap: 14px; pointer-events: none; }
.tf-ui-in > * { pointer-events: auto; justify-self: start; }
.tf-ui .h2 { color: var(--paper); }
.tf-cap { position: absolute; left: 50%; bottom: 26px; z-index: 2; transform: translate(-50%, 20px); background: var(--paper); color: var(--ink); border-radius: 999px; padding: 10px 18px; font-weight: 600; font-size: 15px; opacity: 0; white-space: nowrap; pointer-events: none; transition: opacity .4s, transform .6s var(--ease-out); }
.tf-cap.on { opacity: 1; transform: translate(-50%, 0); }
.tf-cap span { color: var(--ink-soft); font-weight: 500; margin-left: 8px; }
.tf-td { position: absolute; right: var(--gut); bottom: 26px; z-index: 2; color: var(--paper); }
@media (max-width: 699px) { .tf-td { display: none; } .tf-ui { padding-top: calc(var(--bar-h, 64px) + 14px); } }

/* ---- Admission path ---- */
.ap-wrap { position: relative; margin-top: 12px; }
.ap-svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.ap-bg { fill: none; stroke: rgba(20, 26, 46, .1); stroke-width: 2; stroke-dasharray: 2 9; stroke-linecap: round; }
.ap-fg { fill: none; stroke: var(--green); stroke-width: 3; stroke-linecap: round; filter: drop-shadow(0 6px 10px rgba(37, 152, 74, .28)); }
.ap-dot circle:last-child { fill: var(--green); stroke: var(--white); stroke-width: 3; }
.ap-halo { fill: rgba(37, 152, 74, .16); transform-box: fill-box; transform-origin: center; animation: apPulse 2.2s ease-in-out infinite; }
@keyframes apPulse { 50% { transform: scale(1.35); opacity: .5; } }
.ap-steps { position: relative; list-style: none; display: grid; gap: clamp(72px, 14vh, 150px); padding: 60px 0 120px; }
.ap-s { position: relative; display: grid; grid-template-columns: 72px 1fr; gap: 24px; width: min(620px, 100%); }
@media (min-width: 900px) { .ap-s:nth-child(even) { margin-left: auto; } }
.ap-node { position: relative; width: 72px; height: 72px; border-radius: 50%; display: grid; place-items: center; background: var(--white); box-shadow: inset 0 0 0 2px rgba(20, 26, 46, .14); transition: box-shadow .8s var(--ease-out), background .8s; z-index: 1; }
.ap-node b { font: 560 22px var(--f-disp); color: var(--ink-soft); transition: color .6s; }
.ap-node::after { content: ""; position: absolute; inset: -8px; border-radius: 50%; box-shadow: 0 0 0 2px var(--green); opacity: 0; transform: scale(.8); transition: opacity .8s, transform .9s var(--ease-out); }
.ap-s.on .ap-node { background: var(--ink); box-shadow: none; }
.ap-s.on .ap-node b { color: var(--paper); }
.ap-s.on .ap-node::after { opacity: 1; transform: none; }
.ap-body { opacity: .28; transform: translateY(18px); transition: opacity .9s var(--ease-out), transform 1s var(--ease-out); }
.ap-s.on .ap-body { opacity: 1; transform: none; }
.ap-body .h3 { margin-bottom: 10px; }
.ap-body p { color: var(--ink-soft); }
.ap-body .chips li, .ap-body .chip { transform: scale(.7) rotate(-5deg); opacity: 0; transition: transform .7s var(--ease-out), opacity .5s; }
.ap-s.on .ap-body .chips li, .ap-s.on .ap-body .chip { transform: none; opacity: 1; }
.ap-s.on .ap-body .chips li:nth-child(2) { transition-delay: .12s; } .ap-s.on .ap-body .chips li:nth-child(3) { transition-delay: .24s; }
@media (max-width: 699px) { .ap-s { grid-template-columns: 52px 1fr; gap: 16px; } .ap-node { width: 52px; height: 52px; } .ap-node b { font-size: 17px; } }
.static .ap-body, .static .ap-body .chips li { opacity: 1; transform: none; }

/* ---- INNOSPHERE parallax gallery ---- */
.cg-intro { padding-bottom: 32px !important; }
.cg { position: relative; height: 100svh; overflow: hidden; background: var(--ink); color: var(--paper); }
.cg-word { position: absolute; left: 0; top: 50%; margin-top: -.42em; font: 800 clamp(110px, 17vw, 260px)/.84 var(--f-disp); letter-spacing: -.02em; white-space: nowrap; color: rgba(244,239,234,.04); -webkit-text-stroke: 1px rgba(244,239,234,.16); pointer-events: none; will-change: transform; }
.cg-track { position: absolute; left: 0; top: 0; height: 100%; display: flex; align-items: center; gap: clamp(24px, 4vw, 64px); padding: 0 10vw; will-change: transform; }
.cg-card { flex: none; width: clamp(250px, 26vw, 370px); will-change: transform; }
.cg-card:nth-child(odd) { margin-top: -12svh; } .cg-card:nth-child(even) { margin-top: 14svh; }
.cg-ph { position: relative; aspect-ratio: 3 / 4; border-radius: 16px; overflow: hidden; }
.cg-ph img { position: absolute; inset: -6% -12%; width: 124%; height: 112%; object-fit: cover; will-change: transform; }
.cg-card .lbl { color: var(--green-light); margin-top: 16px; }
.cg-card h3 { font: 560 clamp(24px, 2.2vw, 30px)/1.05 var(--f-disp); margin-top: 6px; }
.cg-card p { margin-top: 8px; font-size: 14.5px; line-height: 1.45; color: rgba(244,239,234,.72); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
@media (max-width: 699px) { .cg-card { width: 68vw; } .cg-card:nth-child(odd) { margin-top: -6svh; } .cg-card:nth-child(even) { margin-top: 8svh; } }
.static .cg { height: auto; } .static .cg-track { position: relative; flex-wrap: wrap; padding: 60px 5vw; height: auto; }

/* ---- Co-curricular: sticky photo with wipes ---- */
.ks-grid { display: grid; gap: 0; margin-top: 24px; }
@media (min-width: 900px) { .ks-grid { grid-template-columns: 1fr 1fr; gap: 64px; } }
.ks-frame { position: sticky; top: calc(var(--bar-h, 76px) + 6svh); height: 76svh; border-radius: 20px; overflow: hidden; background: var(--ink); }
.ks-frame img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; clip-path: polygon(0 100%, 100% 100%, 100% 100%, 0 100%); transform: scale(1.08); }
.ks-frame img:first-child { clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); }
.ks-ct { position: absolute; left: 18px; top: 16px; z-index: 2; font: 500 12px var(--f-mono); letter-spacing: .14em; color: #fff; background: rgba(20,26,46,.55); padding: 6px 10px; border-radius: 99px; }
.ks-b { min-height: 78svh; display: flex; flex-direction: column; justify-content: center; padding: 30px 0; }
.ks-n { font: 500 12px var(--f-mono); color: var(--green); margin-bottom: 10px; }
.ks-h { font: 560 clamp(28px, 3.4vw, 48px)/1.02 var(--f-disp); letter-spacing: -.01em; }
.ks-b > p:last-child:not(.ks-n) { margin-top: 14px; font-size: 17px; color: var(--ink-soft); max-width: 48ch; }
@media (max-width: 899px) { .ks-frame { top: calc(var(--bar-h, 64px) + 8px); height: 38svh; z-index: 1; border-radius: 16px; } .ks-b { min-height: 62svh; } }

/* ---- Contact: route and pin ---- */
.cx-grid { display: grid; gap: 32px; align-items: center; }
@media (min-width: 900px) { .cx-grid { grid-template-columns: 1.2fr 1fr; gap: 56px; } }
.cx-map { position: relative; aspect-ratio: 5 / 4; border-radius: 22px; overflow: hidden; background: #E4E8DC; }
.cx-map svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.cx-rd path { fill: none; stroke: #fff; stroke-linecap: round; }
.cx-rt { fill: none; stroke: var(--green); stroke-width: 6; stroke-linecap: round; stroke-linejoin: round; }
.cx-pin { transform-box: fill-box; transform-origin: 50% 100%; }
.cx-rip { fill: none; stroke: var(--green); stroke-width: 2; transform-box: fill-box; transform-origin: 50% 50%; }
.cx-open { position: absolute; left: 16px; right: 16px; bottom: 16px; justify-self: start; width: fit-content; max-width: calc(100% - 32px); background: var(--ink); color: var(--paper); text-decoration: none; font-weight: 600; font-size: 14px; padding: 10px 16px; border-radius: 99px; }
.cx-d { display: grid; gap: 22px; }
.cx-row { border-top: 1px solid var(--line); padding-top: 14px; display: grid; gap: 4px; }
.cx-row a { font: 560 clamp(20px, 2.2vw, 30px)/1.15 var(--f-disp); text-decoration: none; }
.cx-row a:hover { color: var(--green); } .cx-ph { color: var(--green); }
.cx .rv { display: block; overflow: hidden; }
.cx .rv > * { display: block; transform: translateY(105%); transition: transform 1s var(--ease-out); }
.cx.in .rv > * { transform: none; }
.static .cx .rv > * { transform: none; }
@media (min-width: 1100px) { .has-toc .vmv-pin > .wrap { padding-left: calc(var(--gut) + var(--rail, 190px)); } }
.ap-bg { stroke-dasharray: 1 8; }
@media (max-width: 699px) {
  .tf-filter { flex-wrap: nowrap !important; overflow-x: auto !important; max-width: calc(100vw - 2 * var(--gut)); scrollbar-width: none; -webkit-mask: linear-gradient(90deg, #000 85%, transparent) !important; mask: linear-gradient(90deg, #000 85%, transparent) !important; }
  .tf-filter::-webkit-scrollbar { display: none; }
  .tf-ui { padding-bottom: 40px; }
}
@media (hover: none), (max-width: 699px) { .seg button { padding: 9px 0 !important; } .cx-row a { display: inline-block; padding: 8px 0; } }
.cx-map { contain: paint; }
@media (min-width: 1000px) {
  .menu-subs { grid-template-rows: auto auto auto; align-content: center; }
  .menu-subs .menu-peek { grid-row: 1; grid-column: 1; }
  .menu-subs .msub { grid-area: 2 / 1 !important; }
  .menu-subs .menu-contact { grid-row: 3; grid-column: 1; }
  .menu-subs .menu-back { display: none; }
}
@media (min-width: 1000px) {
  .menu-subs .menu-peek { aspect-ratio: auto; height: min(34vh, 320px); margin-bottom: 22px; }
  .menu-subs .msub ul { grid-template-columns: 1fr 1fr; column-gap: 28px; }
  .menu-subs .msub:not(:has(li:nth-child(5))) ul { grid-template-columns: 1fr; }
  .menu-subs .msub a { min-height: 44px; font-size: 16.5px; }
}

/* team: how to browse, and the link moved below the field */
.tf-hint { position: absolute; left: 50%; bottom: 84px; z-index: 2; transform: translateX(-50%); display: flex; align-items: center; gap: 12px; padding: 10px 18px 10px 12px; border-radius: 999px; background: rgba(20,26,46,.82); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); color: var(--paper); font-size: 14px; font-weight: 500; white-space: nowrap; pointer-events: none; transition: opacity .8s, transform .8s var(--ease-out); }
.tf.used .tf-hint { opacity: 0; transform: translate(-50%, 10px); }
.tf-hint-ic { position: relative; width: 26px; height: 26px; border-radius: 50%; box-shadow: inset 0 0 0 1.5px var(--green-light); }
.tf-hint-ic::after { content: ""; position: absolute; top: 50%; left: 50%; width: 6px; height: 6px; margin: -3px; border-radius: 50%; background: var(--green-light); animation: tfHint 2.4s var(--ease-io, ease-in-out) infinite; }
@keyframes tfHint { 0%, 100% { transform: translateX(-7px); } 50% { transform: translateX(7px); } }
.tf-foot { background: var(--ink); padding: 18px 0 28px; }
.tf-foot .link { color: var(--paper); }
@media (max-width: 699px) { .tf-hint { font-size: 12.5px; bottom: 76px; } }
.tf-ui { background: linear-gradient(rgba(20,26,46,.98) calc(100% - 44px), rgba(20,26,46,0)) !important; padding-bottom: 44px !important; }

/* live-update notice */
.live-chip { position: fixed; left: 50%; bottom: 22px; z-index: 200; display: flex; align-items: center; gap: 10px; padding: 10px 10px 10px 18px; border-radius: 999px; background: var(--ink); color: var(--paper); font-size: 14px; box-shadow: 0 20px 40px -18px rgba(0,0,0,.5); transform: translate(-50%, 30px); opacity: 0; transition: transform .5s var(--ease-out), opacity .4s; max-width: calc(100vw - 24px); }
.live-chip.on { transform: translate(-50%, 0); opacity: 1; }
.live-chip button { font-weight: 600; font-size: 13px; padding: 7px 12px; border-radius: 999px; background: rgba(244,239,234,.12); color: inherit; }
.live-chip button[data-now] { background: var(--green); }
@media (max-width: 520px) { .live-chip span { font-size: 12.5px; } .live-chip button[data-stay] { display: none; } }

/* School source content: retain paragraphs, lists and their original indentation. */
.source-prose{max-width:1040px;font-size:18px;line-height:1.8;color:var(--ink-soft)}
.source-prose h2,.source-prose h3,.source-prose h4{color:var(--ink);font-family:var(--f-disp);line-height:1.2;margin:1.5em 0 .65em}
.source-prose p{margin:0 0 1.25em}.source-prose ul,.source-prose ol{padding-left:1.5em;margin:1em 0 1.5em;list-style:revert}.source-prose li{margin:.55em 0}
.source-prose img{display:block;max-width:100%;max-height:560px;object-fit:contain;margin:28px auto;border-radius:16px}
.letter-layout{display:grid;grid-template-columns:1fr 2fr;gap:60px}.leadership-letter p{margin-bottom:1.4em}.leadership-letter,.vmv .vmv-q{font-family:var(--f-body);font-size:clamp(18px,1.65vw,23px);font-weight:400;line-height:1.65;color:var(--ink-soft);letter-spacing:normal}
.stage-tx .link{margin-top:20px}.approach-summary{border-top:1px solid var(--line)}
@media(max-width:700px){.letter-layout{grid-template-columns:1fr;gap:30px}.source-prose{font-size:16px}}
.collection-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin-top:40px}.collection-card{border:1px solid var(--line);border-radius:18px;overflow:hidden;background:var(--white,#fff)}.collection-card>img{width:100%;aspect-ratio:4/3;object-fit:cover}.collection-card>div{padding:24px}.collection-card h3{font-size:26px;line-height:1.15;margin:12px 0}.collection-card .link{margin-top:15px}.collection-tabs{grid-column:1/-1;display:flex;gap:12px}.collection-tabs button{padding:12px 20px;border:1px solid var(--line);border-radius:30px}.collection-tabs button[aria-pressed=true]{background:var(--ink);color:var(--paper)}.video-card iframe,.video-card video{display:block;width:100%;aspect-ratio:16/9;border:0;border-radius:16px;background:var(--ink)}.video-card .lbl{padding:18px 0}.collection-grid:has(.video-card){grid-template-columns:repeat(2,minmax(0,1fr))}.caption-collapsed{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.caption-toggle{font-size:14px;margin-top:14px}.collection-empty{grid-column:1/-1;padding:40px;background:var(--paper-2,#eae7e0);border-radius:16px}
@media(max-width:800px){.collection-grid{grid-template-columns:1fr 1fr}}@media(max-width:560px){.collection-grid,.collection-grid:has(.video-card){grid-template-columns:1fr}}
#proud{padding-block:clamp(32px,5vh,70px)}.proud-feed{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(30px,6vw,100px);align-items:center;max-width:1100px}.proud-image{display:block;width:min(100%,calc((100svh - 180px)*.8));margin:auto;aspect-ratio:4/5;background:#ece9e3;border-radius:18px;overflow:hidden}.proud-image img{width:100%;height:100%;object-fit:contain}.proud-copy .h2{font-size:clamp(36px,5vw,72px);margin:20px 0}.proud-caption{font-size:clamp(18px,2vw,25px);line-height:1.45;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:20px}.proud-controls{display:flex;align-items:center;gap:24px;margin:28px 0}.proud-controls button{width:46px;height:46px;border:1px solid currentColor;border-radius:50%}@media(max-width:640px){.proud-feed{grid-template-columns:1fr;gap:20px}.proud-image{width:min(65vw,calc((100svh - 340px)*.8))}.proud-copy .h2{margin:10px 0;font-size:34px}.proud-caption{font-size:16px;-webkit-line-clamp:2}.proud-controls{margin:16px 0}.proud-copy .lbl{font-size:10px}}
.collection-card{color:var(--ink)}.collection-card .lbl{color:var(--ink-soft)}.collection-card h3{color:var(--ink)}[data-page=home] .collection-grid[data-limit]{grid-template-columns:repeat(4,minmax(0,1fr))}.leadership-letter,.vmv .vmv-q{font-family:var(--f-text)}
@media(max-width:1000px){[data-page=home] .collection-grid[data-limit]{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){[data-page=home] .collection-grid[data-limit]{grid-template-columns:1fr}}
.meal-preview{max-width:760px;margin:40px auto}.meal-preview img{width:100%;height:auto;border-radius:12px}

/* Editorial programme pages use the same display type, splits and paper tones as Academic. */
.learning-split{align-items:start}.learning-split .h2{font-size:clamp(38px,4.5vw,68px);margin:18px 0 28px}.learning-copy{font-size:18px;line-height:1.7;color:var(--ink-soft)}.learning-copy p+p{margin-top:20px}.learning-copy h3{margin:26px 0 14px}.learning-copy ul{list-style:disc;padding-left:22px;margin:20px 0}.learning-copy li+li{margin-top:12px}
.learning-image{margin:0;overflow:hidden;border-radius:16px;background:var(--white);padding:18px}.learning-image img{display:block;width:100%;max-height:680px;object-fit:contain;border-radius:8px}.learning-split>.learning-image{position:sticky;top:120px}
.learning-topics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 64px}.learning-topic{border-top:1px solid var(--line);padding-top:24px;font-size:17px;line-height:1.7;color:var(--ink-soft)}.learning-topic>.lbl{color:var(--green);margin-bottom:18px}.learning-topic .h3{font-size:clamp(26px,3vw,38px);color:var(--ink);margin-bottom:20px}.learning-topic p+p{margin-top:16px}.learning-topic ul{padding-left:20px;list-style:disc;margin:18px 0}.learning-topic li+li{margin-top:10px}
.docs .docs-head,.docs .docs-list a{grid-template-columns:60px minmax(0,2fr) minmax(150px,1fr)}.docs .docs-list a{padding-block:24px}.docs .d-doc{font-size:19px;font-weight:500;line-height:1.4}.doc-open{float:right;font-family:var(--f-mono);font-size:12px;color:var(--green)}.doc-filter{margin-bottom:32px}.meal-feature{align-items:start}.meal-feature .meal-preview{margin:0}.meal-feature .btn{margin-top:24px}.calendar-page{display:grid;grid-template-columns:minmax(220px,.7fr) minmax(0,1.3fr);gap:clamp(32px,6vw,90px)}.calendar-page aside .h2{font-size:clamp(40px,5vw,72px)}.calendar-page aside .lead{margin:24px 0}.calendar-page [data-calendar]{background:var(--white);border-radius:20px;padding:clamp(24px,4vw,48px)}
@media(max-width:760px){.learning-topics,.calendar-page{grid-template-columns:1fr}.learning-split>.learning-image{position:static}.learning-copy{font-size:16px}.docs .docs-head,.docs .docs-list a{grid-template-columns:32px minmax(0,1fr)}.docs .docs-head>span:last-child{display:none}.docs .d-cat{grid-column:2;font-size:12px}.docs .d-doc{font-size:17px}.docs .docs-list a{gap:8px 14px}.learning-topics{gap:28px}.learning-image{padding:10px}}

@media(max-width:699px){.tf-hint{max-width:calc(100% - 32px);white-space:normal;text-align:center}.tf-hint-ic{flex-shrink:0}}
/* Curriculum: measured editorial spacing, clear chapters, and readable text. */
.curriculum-section{padding-block:clamp(48px,6vw,88px)}
.curriculum-section .learning-split{gap:clamp(32px,5vw,80px);align-items:center}
.curriculum-section .h2{font-size:clamp(34px,3.7vw,58px);line-height:1.08;max-width:19ch;margin:16px 0 28px}
.curriculum-section .learning-copy{font-size:17px;line-height:1.8;max-width:64ch}
.curriculum-section .learning-image{padding:0;background:transparent;border-radius:18px;position:static}
.curriculum-section .learning-image img{max-height:520px}
.curriculum-section .sec-head{margin-bottom:36px}
.curriculum-section .learning-topics{gap:0 56px}
.curriculum-section .learning-topic{padding:28px 0 36px;font-size:16px;line-height:1.8}
.curriculum-section .learning-topic .h3{font-size:clamp(24px,2.3vw,34px);line-height:1.18;max-width:26ch}
.learning-note>div{display:grid;grid-template-columns:minmax(220px,1fr) 1.6fr;gap:0 64px;border-top:1px solid var(--line);padding-top:36px}
.learning-note .lbl{grid-column:1/-1}.learning-note .learning-copy{padding-top:16px}
@media(max-width:800px){.curriculum-section .learning-split,.learning-note>div{display:grid;grid-template-columns:1fr;gap:28px}.curriculum-section .h2{margin-bottom:20px}.curriculum-section .learning-copy{font-size:16px}.learning-note .learning-copy{padding-top:0}.curriculum-section .learning-image{max-width:560px;width:100%;margin-inline:auto}}
/* Give long letters the proportions of a letter rather than a full-width article. */
.letter-layout{grid-template-columns:minmax(180px,1fr) minmax(0,2.2fr);gap:clamp(32px,6vw,88px);max-width:1160px}
.letter-layout>div:first-child{position:sticky;top:112px;align-self:start;border-top:2px solid var(--green);padding-top:22px}
.letter-layout .h2{font-size:clamp(34px,3.5vw,52px);line-height:1.1;margin-top:16px}
.letter-layout .leadership-letter{padding:clamp(24px,4vw,52px);background:var(--white);border:1px solid var(--line);border-radius:16px;font-size:17px;line-height:1.85;max-width:74ch}
.letter-layout .leadership-letter p:last-child{margin-bottom:0}
.registration-invite{padding-block:48px 64px}
.registration-invite>.wrap{display:flex;align-items:center;justify-content:space-between;gap:32px;border-top:1px solid var(--line);padding-top:36px}
.registration-invite .h2{font-size:clamp(32px,4vw,54px);margin:14px 0 18px}.registration-invite p:not(.lbl){font-size:17px;max-width:52ch;line-height:1.6}.registration-invite .btn{flex-shrink:0}
.media-home{padding-bottom:40px}.results-home{padding-top:40px}
@media(min-width:900px){.usp-index button{height:auto;min-height:58px;max-height:none;padding:16px 14px;line-height:1.4}.usp-stage{align-self:start;position:sticky;top:100px}.usp-media{min-height:420px}}
@media(max-width:700px){.letter-layout{grid-template-columns:1fr;gap:24px}.letter-layout>div:first-child{position:static}.letter-layout .leadership-letter{padding:24px 20px;font-size:16px}.registration-invite>.wrap{flex-direction:column;align-items:flex-start}.media-home{padding-bottom:24px}.results-home{padding-top:24px}}
.collection-empty{color:var(--ink);line-height:1.7}.on-dark .collection-tabs button{border-color:var(--line-light)}.on-dark .collection-tabs button[aria-pressed=true]{background:var(--paper);color:var(--ink)}
section:has(>.letter-layout){padding-block:64px}
[data-page=admissions] #faq{padding-bottom:48px}

/* Curriculum resources restored from the original school's programme panels. */
.programme-resources-intro{max-width:54ch;color:var(--muted);font-size:18px;line-height:1.65;margin-top:20px}
.programme-resource-list{border-top:1px solid var(--line, #d4d1cb)}
.programme-resource{border-bottom:1px solid var(--line, #d4d1cb)}
.programme-resource summary{display:flex;align-items:center;gap:24px;padding:26px 0;cursor:pointer;list-style:none}
.programme-resource summary::-webkit-details-marker{display:none}
.programme-resource summary h3{font-family:var(--font-display,inherit);font-size:clamp(22px,2.5vw,32px);font-weight:600;line-height:1.2;margin:0;flex:1}
.programme-resource summary .lbl{margin:0;color:var(--green,#4d9955)}
.programme-resource-toggle{display:grid;place-items:center;flex:0 0 36px;height:36px;border:1px solid currentColor;border-radius:50%;font-size:24px;transition:transform .2s}
.programme-resource[open] .programme-resource-toggle{transform:rotate(45deg)}
.programme-resource summary:focus-visible{outline:2px solid var(--green,#4d9955);outline-offset:5px}
.programme-resource-body{max-width:850px;margin-left:48px;padding:0 0 32px}
.programme-resource-body p{margin:0 0 18px}
.programme-resource-body ul{padding-left:22px;margin:16px 0 24px}
.programme-resource-body li{margin-bottom:10px}
@media(max-width:600px){.programme-resource summary{gap:12px;padding:22px 0}.programme-resource-body{margin-left:0;padding-bottom:24px}.programme-resources-intro{font-size:16px}.programme-resource-toggle{flex-basis:30px;height:30px}}
@media(prefers-reduced-motion:reduce){.programme-resource-toggle{transition:none}}

/* Programme editorial system: visual overview, concise entry points, full detail on demand. */
.programme-nav{background:var(--paper);border-bottom:1px solid var(--line)}
.programme-nav>.wrap{display:grid;grid-template-columns:repeat(4,1fr)}
.programme-nav a{display:grid;grid-template-columns:24px 1fr;gap:6px 12px;padding:24px 20px;border-bottom:3px solid transparent;text-decoration:none;min-width:0}
.programme-nav a[aria-current]{border-color:var(--green);background:rgba(77,153,85,.08)}
.programme-nav a>span{grid-row:span 2;font-family:var(--f-mono);font-size:12px;color:var(--green)}
.programme-nav strong{font-size:17px}.programme-nav small{color:var(--ink-soft);font-size:12px}
.programme-story-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(32px,6vw,88px);align-items:center}
.programme-story .h2{font-size:clamp(42px,4.6vw,68px);line-height:1.06;margin:24px 0 28px;max-width:13ch}
.programme-story .h2 em{line-height:1.12;display:inline-block}
.programme-lead{font-size:20px;color:var(--ink-soft);line-height:1.65;max-width:43ch}
.programme-pillars{display:grid;gap:0;margin:32px 0 24px;border-top:1px solid var(--line)}
.programme-pillars span{display:flex;gap:20px;align-items:center;border-bottom:1px solid var(--line);padding:14px 0;font-weight:600}
.programme-pillars b{font:12px var(--f-mono);color:var(--green)}
.programme-story-photo{position:relative;isolation:isolate;border-radius:120px 20px 20px 20px;overflow:hidden;min-width:0;align-self:stretch;min-height:520px;margin:0}
.programme-story-photo img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover}
.programme-story-photo:after{content:'';position:absolute;inset:40% 0 0;background:linear-gradient(transparent,rgba(20,26,46,.88));z-index:0}
.programme-story-photo figcaption{position:absolute;inset:auto 32px 32px;z-index:1;color:var(--paper);display:grid;gap:14px}
.programme-story-photo .lbl{color:var(--paper)}
.programme-story-photo strong{font:500 clamp(36px,4vw,56px)/1 var(--f-disp)}
.programme-story-photo em{font-family:var(--f-serif);color:var(--green-light);font-weight:400}
.programme-overview summary{display:flex;justify-content:space-between;font-weight:600;cursor:pointer;list-style:none;padding:12px 0;text-decoration:underline;text-underline-offset:5px}
.programme-overview .learning-copy{font-size:16px;line-height:1.8;padding-top:20px}
.programme-topic-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;align-items:start}
.programme-topic{padding:28px;border:1px solid var(--line);border-radius:4px 32px 4px 4px;background:var(--paper)}
.programme-topic:nth-child(4n+1){background:var(--ink);color:var(--paper);border-color:var(--ink)}
.programme-topic-number{font:400 46px/1 var(--f-serif);font-style:italic;color:var(--green);display:block;margin-bottom:28px}
.programme-topic h3{font:600 28px/1.13 var(--f-disp);margin:0 0 18px}
.programme-topic>p{font-size:16px;line-height:1.65;opacity:.8;margin-bottom:24px}
.programme-topic summary{cursor:pointer;display:flex;justify-content:space-between;padding-top:18px;border-top:1px solid currentColor;font-weight:600;list-style:none}
.programme-topic .learning-copy{padding-top:24px;font-size:16px;line-height:1.75;color:inherit}
.programme-topic .learning-copy p,.programme-topic .learning-copy li{font-size:16px;color:inherit}
.programme-topic .learning-copy ul{padding-left:20px}
.programme-resources-feature{background:var(--ink);color:var(--paper)}
.programme-resources-feature .lbl{color:var(--green-light)}
.programme-resources-feature .h2 em{color:var(--green-light)}
.programme-resources-feature .programme-resources-intro{color:var(--paper);opacity:.75}
.programme-resources-feature .programme-resource-list{display:grid;grid-template-columns:1fr 1fr;gap:18px;border:0;align-items:start}
.programme-resources-feature .programme-resource{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.2);border-radius:16px;padding:4px 24px}
.programme-resources-feature .programme-resource summary{min-height:110px;gap:16px}
.programme-resources-feature .programme-resource summary h3{font-family:var(--f-disp);font-size:30px}
.programme-resources-feature .programme-resource-body{margin:0;color:var(--paper)}
.programme-resources-feature .programme-resource-body p,.programme-resources-feature .programme-resource-body li{color:var(--paper);font-size:16px}
.programme-methods{list-style:none;padding:0!important;display:grid;gap:18px}
.programme-methods li{position:relative;padding:20px 20px 20px 66px;background:var(--paper);border:1px solid var(--line);border-radius:12px;margin:0!important}
.programme-methods strong{display:block;margin-bottom:6px}
.programme-method-number{position:absolute;left:18px;top:22px;font:italic 26px var(--f-serif);color:var(--green)}
@media(max-width:1000px){.programme-topic-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.programme-story-grid{gap:32px}.programme-story-photo{min-height:480px}.programme-nav a{padding:20px 10px}}
@media(max-width:650px){.programme-nav>.wrap{grid-template-columns:repeat(2,1fr)}.programme-nav a{padding:16px 8px}.programme-nav strong{font-size:15px}.programme-nav small{font-size:11px}.programme-story-grid{grid-template-columns:1fr}.programme-story .h2{font-size:44px;max-width:14ch}.programme-lead{font-size:18px}.programme-story-photo{min-height:360px;grid-row:2;border-radius:72px 16px 16px 16px}.programme-story-photo figcaption{inset:auto 24px 24px}.programme-topic-grid{grid-template-columns:1fr}.programme-topic{padding:24px}.programme-topic-number{margin-bottom:18px}.programme-resources-feature .programme-resource-list{grid-template-columns:1fr}.programme-resources-feature .programme-resource{padding:0 18px}.programme-resources-feature .programme-resource summary{min-height:96px}.programme-resources-feature .programme-resource summary h3{font-size:26px}}
.programme-story .h2{max-width:none;font-size:clamp(42px,4.2vw,62px)}
.programme-story-photo{height:600px;max-height:680px;align-self:start}
.programme-topic:nth-child(4n+1) .programme-topic-number{color:var(--green-light)}
@media(max-width:650px){.programme-story .h2{font-size:42px}.programme-story-photo{height:380px;min-height:0}}
.programme-topic-grid{align-items:stretch}.programme-topic{display:flex;flex-direction:column}.programme-topic>details{margin-top:auto}
.learning-copy .programme-methods{list-style:none;padding-left:0}

/* calendar: single column until there is room for the aside; past dates recede */
@media(max-width:960px){.calendar-page{grid-template-columns:1fr}}
.calendar-events article.is-past{opacity:.5}
@media(min-width:761px){.meal-feature>div:first-child{position:sticky;top:120px}}
.h2+.learning-copy{margin-top:24px}
.sec--white .learning-image{padding:0;background:none}
.cx-map iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.live-chip { width: max-content; max-width: calc(100vw - 32px); }
.live-chip span { line-height: 1.35; }
.live-chip:has(span:only-of-type) button { flex: none; }
@media (max-width: 520px) { .live-chip { border-radius: 18px; } }
/* resource cards: columns may shrink below their content's natural width (no sideways scroll on fold phones) */
.programme-resource-list{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}.programme-resource-list>*{min-width:0}
