/* Shared v0.4 rules. Scoped so Home and the four programme pages stay unchanged. */
.pupil-sitepage-scope{--panel-r:0px;--terra-soft:var(--terra);--pupil-fast:150ms;--pupil-base:300ms;--pupil-reveal:600ms;--pupil-hero:900ms}
.pupil-sitepage-scope .ac-panel{border-radius:0;margin-top:0}
.pupil-sitepage-scope .section-padding{padding:clamp(60px,7vw,108px) var(--page-gutter)}
.pupil-sitepage-scope #main{overflow:clip;margin:0}
.pupil-sitepage-scope .section-kicker{font-size:12px;line-height:1.5;letter-spacing:.1em}
.pupil-sitepage-scope .section-intro{font-size:17px;line-height:1.7;margin-top:24px}
.pupil-sitepage-scope .display-heading{font-size:clamp(36px,4.7vw,76px);line-height:1.1;letter-spacing:-.04em}
.pupil-sitepage-scope .button{min-height:46px;font-size:14px}
.pupil-sitepage-scope .text-link{min-height:44px;font-size:14px}
.pupil-sitepage-scope .circle-button{min-width:44px;min-height:44px}
.pupil-sitepage-scope .ax-hero{background:var(--cream)}
.pupil-sitepage-scope .ax-hero h1{font-size:clamp(46px,7.8vw,118px);line-height:1.03}
.pupil-sitepage-scope .ax-hero .ax-lede{font-size:18px;line-height:1.65}
.pupil-sitepage-scope .ax-voice{isolation:isolate}
.pupil-sitepage-scope .ax-voice::after{content:'';position:absolute;inset:0;background:linear-gradient(transparent,rgba(0,0,0,.6));z-index:1;pointer-events:none}
.pupil-sitepage-scope .ax-voice figcaption{color:white;z-index:2}
.pupil-sitepage-scope .ax-voice figcaption em{color:inherit}
.pupil-sitepage-scope .sx-panel{opacity:1!important;filter:none!important}
.pupil-sitepage-scope .sx-index a{min-height:44px;display:flex;align-items:center}
.pupil-sitepage-scope .sx-index a.active{font-weight:600;text-decoration:underline;text-underline-offset:5px}
.pupil-sitepage-scope .sx-sticky{top:110px}
.pupil-sitepage-scope .ax-strip>figure{flex-shrink:0}
.pupil-sitepage-scope .ax-strip img{height:100%;object-fit:cover}
.pupil-sitepage-scope .sv-frame{cursor:default}
.pupil-sitepage-scope .sv-side{font-size:16px}
.pupil-sitepage-scope .cta3-form{display:none}
.pupil-sitepage-scope .cta3 .admissions-copy>.button{margin-top:26px;align-self:flex-start}
.pupil-sitepage-scope .admissions-copy>p{font-size:16px;line-height:1.75}
.pupil-sitepage-scope .pathway-explore{min-height:44px;min-width:66px;font-size:12px}
.pupil-sitepage-scope .pathway-card-top{padding-right:85px}
.pupil-sitepage-scope .pathway-card h3{font-size:clamp(24px,2.1vw,34px)}
.pupil-sitepage-scope .pathway-stage,.pupil-sitepage-scope .pathway-card-bottom{font-size:12px}
.pupil-sitepage-scope .pathway-description{font-size:16px}
.pupil-sitepage-scope .pathway-card{display:flex;flex-direction:column}
.pupil-sitepage-scope .pathway-photo{margin-top:auto}
.pupil-sitepage-scope .pathway-card-bottom{margin-top:18px}
.pupil-sitepage-scope .faq-list summary{font-size:16px;min-height:48px}
.pupil-sitepage-scope .faq-list .detail-content{font-size:16px;line-height:1.75}
/* Typed, data-driven entrance hooks. No JavaScript means no hidden content. */
.pupil-sitepage-scope.motion-ready [data-motion].motion-armed{opacity:0;transform:translateY(16px)}
.pupil-sitepage-scope.motion-ready [data-motion].motion-entered{animation:pupil-site-reveal var(--pupil-reveal) cubic-bezier(.2,.8,.2,1) both;animation-delay:var(--pupil-delay,0ms)}
.pupil-sitepage-scope.motion-ready [data-pupil-section$="-hero"] h1{animation:pupil-site-reveal var(--pupil-hero) cubic-bezier(.2,.8,.2,1) both}
@keyframes pupil-site-reveal{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
/* Short EPIC page: readable evidence rather than a fixed desktop-only chart. */
.pupil-site-ib-epic .ac-hero-grid{align-items:center}
.pupil-site-ib-epic .ac-hero-title{font-size:clamp(42px,5vw,78px);line-height:1.06}
.pupil-site-ib-epic .ac-hero-sub{font-size:18px;line-height:1.7}
.pupil-site-ib-epic .ac-hero-photo{aspect-ratio:4/5;overflow:hidden}
.pupil-site-ib-epic .ac-hero-photo img{width:100%;height:100%;object-fit:cover}
.pupil-site-ib-epic .ie-two{gap:clamp(24px,5vw,80px)}
.pupil-site-ib-epic .ie-two p{font-size:16px;line-height:1.75}
.pupil-site-ib-epic .pg-group-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;padding:0;list-style:none;margin-top:40px}
.pupil-site-ib-epic .pg-group-grid>li{background:var(--yellow);padding:26px;border-radius:16px}
.pupil-site-ib-epic .pg-group-grid p{font-size:16px;line-height:1.6}
.pupil-site-ib-epic .pg-group-grid h3{font-size:24px;margin:18px 0 12px}
.pupil-site-ib-epic .pg-ic svg{width:28px;height:28px}
.pupil-site-ib-epic .pupil-epic-level-section{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,6vw,90px);background:var(--blue);align-items:center}
.pupil-epic-level-card{background:var(--cream);padding:clamp(24px,3.5vw,48px);border-radius:16px}
.pupil-epic-levels{list-style:none;padding:0;margin:26px 0}
.pupil-epic-levels>li{display:grid;grid-template-columns:90px 1fr;gap:16px;padding:16px 0;border-top:1px solid var(--line);font-size:16px;line-height:1.65}
.pupil-epic-level-card>p:last-child{font-size:14px;line-height:1.6}
.pupil-example-note{font-size:13px;line-height:1.7;margin-top:20px}
.pupil-epic-week-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin-top:40px}
.pupil-epic-week-item{padding:28px;border-radius:16px;background:var(--yellow)}
.pupil-epic-week-item:nth-child(even){background:var(--blue)}
.pupil-epic-week-item>span{font-size:13px}
.pupil-epic-week-item h3{font-size:28px;line-height:1.2;letter-spacing:-.03em;margin:24px 0 18px}
.pupil-epic-week-item p{font-size:16px;line-height:1.7}
.pupil-epic-method-section{background:var(--yellow)}
.pupil-epic-methods{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin-top:40px}
.pupil-epic-method-card figure{aspect-ratio:4/3;overflow:hidden;margin-bottom:24px;border-radius:8px}
.pupil-epic-method-card img{width:100%;height:100%;object-fit:cover}
.pupil-epic-method-card h3{font-size:28px;line-height:1.2;margin-bottom:16px;letter-spacing:-.03em}
.pupil-epic-method-card p{font-size:16px;line-height:1.75}
.pupil-site-ib-epic .pupil-epic-origin{background:var(--blue)}
.pupil-site-ib-epic .ep-origin-grid{display:grid;grid-template-columns:.8fr 1.2fr;align-items:center;gap:clamp(30px,6vw,80px)}
.pupil-site-ib-epic .ep-origin-photo{max-width:440px;margin:0}
.pupil-site-ib-epic .ep-origin-photo img{width:100%;aspect-ratio:4/5;object-fit:cover}
.pupil-site-ib-epic .ep-origin-photo figcaption{font-size:13px;line-height:1.5;margin-top:16px}
.pupil-site-ib-epic .pupil-epic-origin .ie-quote{font-size:clamp(32px,3.6vw,56px)}
.pupil-sitepage-scope:not(.pupil-site-meet-the-pupil) .site-header:not(.is-menu-open){color:var(--ink);background:var(--cream)}
.pupil-sitepage-scope:not(.pupil-site-meet-the-pupil) .site-header .brand img{filter:none}
.pupil-sitepage-scope:not(.pupil-site-meet-the-pupil) .site-header .header-visit{background:var(--ink);color:var(--cream)}
@media(max-width:1100px){.pupil-epic-week-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pupil-site-ib-epic .pg-group-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:767px){
.pupil-sitepage-scope .section-padding{padding:60px 24px}
.pupil-sitepage-scope .section-intro,.pupil-sitepage-scope .ax-lede{font-size:16px;line-height:1.7}
.pupil-sitepage-scope .ax-hero h1{font-size:clamp(42px,11vw,72px)}
.pupil-sitepage-scope .ax-hero .ax-lede{font-size:16px}
.pupil-sitepage-scope .pathway-card-top{padding-right:78px}
.pupil-sitepage-scope .pathway-card h3{font-size:28px}
.pupil-site-ib-epic .ac-hero-grid{grid-template-columns:1fr}
.pupil-site-ib-epic .pupil-epic-level-section,.pupil-site-ib-epic .ep-origin-grid{grid-template-columns:1fr}
.pupil-epic-methods{grid-template-columns:1fr}
.pupil-epic-method-card figure{max-height:380px}
.pupil-epic-week-grid{grid-template-columns:1fr}
.pupil-site-ib-epic .ac-hero-sub{font-size:16px}
.pupil-site-ib-epic .pg-group-grid{gap:16px}
.pupil-site-ib-epic .pg-group-grid>li{padding:20px}
.pupil-site-ib-epic .pg-group-grid h3{font-size:22px}
.pupil-epic-levels>li{grid-template-columns:1fr;gap:4px}
.pupil-sitepage-scope .mt-ld-grid{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){.pupil-sitepage-scope [data-motion],.pupil-sitepage-scope .motion-line-inner,.pupil-sitepage-scope .motion-armed{animation:none!important;opacity:1!important;transform:none!important;clip-path:none!important}.pupil-sitepage-scope *{scroll-behavior:auto!important}}
/* Keep gallery controls available to keyboard and touch users as well as swiping. */
.pupil-sitepage-scope .ax-gal-controls{display:flex!important;gap:10px}
.pupil-sitepage-scope .ax-gal-controls button:disabled{opacity:.35;cursor:default}
@media(max-width:767px){.pupil-sitepage-scope .ax-gal-head{flex-wrap:wrap;gap:24px}.pupil-sitepage-scope .ax-gal-controls{margin-top:18px}}
