/* Pupil production utility pages, intentionally isolated from programme sections. */
.pupil-utility-body{background:#fff;color:#1b1b1b}
.pupil-utility-body .site-header,
.pupil-utility-body .site-header.scrolled{background:#fff;color:#1b1b1b;box-shadow:0 1px 0 rgba(18,65,107,.10)}
.pupil-utility-body .site-header .brand img{filter:none}
.pupil-utility-body .site-header .header-visit{background:#1a1a1a;color:#fff}
.pupil-utility-body .site-header .menu-toggle span{background:currentColor}
.pupil-utility-body .wp-site-blocks>main.pupil-utility-page{margin:0!important;max-width:none!important;width:100%}
.pupil-utility-page{font-family:Inter,Arial,sans-serif;color:#1b1b1b;min-height:69vh;overflow:hidden}
.pupil-utility-page *{box-sizing:border-box}
.pupil-utility-eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.15em;font-weight:600;display:inline-flex;align-items:center;gap:11px;color:#1c547d}
.pupil-utility-dot{display:inline-block;width:8px;height:8px;background:#f8c632;border-radius:50%;flex:none}
.pupil-utility-button{display:inline-flex;align-items:center;justify-content:space-between;gap:36px;min-height:52px;padding:14px 22px;border-radius:50px;background:#161e29;color:#fff;text-decoration:none!important;font-size:14px;font-weight:600;transition:background .2s,transform .2s}
.pupil-utility-button:hover{background:#0b73ad;transform:translateY(-2px)}
.pupil-utility-button:focus-visible,.pupil-utility-text-link:focus-visible{outline:3px solid #0b73ad;outline-offset:4px}
.pupil-utility-button span{font-size:19px;line-height:1}
.pupil-utility-text-link{font-size:14px;text-decoration:underline;text-underline-offset:5px;font-weight:500}
.pupil-utility-actions{display:flex;align-items:center;flex-wrap:wrap;gap:26px}
/* A light, warm 404, with yellow used as a school-brand accent. */
.pupil-not-found{position:relative;display:flex;align-items:center;padding:clamp(155px,17vh,230px) var(--page-gutter) 116px!important;background:linear-gradient(116deg,#fff 0%,#fff 65%,#eef8ff 100%)}
.pupil-error-content{position:relative;z-index:1;width:min(100%,850px)}
.pupil-error-number{position:relative;display:inline-block;font-size:clamp(128px,23vw,320px);font-weight:500;letter-spacing:-.095em;line-height:.91;color:#d7edff;margin:26px 0 12px -0.05em}
.pupil-error-spark{position:absolute;right:-.54em;top:.19em;font-size:.20em;letter-spacing:normal;color:#f8c632;transform:rotate(-13deg)}
.pupil-not-found h1{font:500 clamp(37px,4.5vw,73px)/1.11 Inter,Arial,sans-serif;letter-spacing:-.054em;margin:0 0 24px;max-width:780px}
.pupil-error-description{font-size:clamp(16px,1.52vw,19px);line-height:1.65;color:#53616a;max-width:540px;margin:0 0 32px}
.pupil-error-caption{position:absolute;right:var(--page-gutter);bottom:38px;font-size:11px;font-weight:500;letter-spacing:.12em;color:#436e87}
.pupil-error-caption span{color:#eab72d;padding:0 7px}
/* Privacy: generous editorial typography, with clear headings and short paragraphs. */
.pupil-privacy-page{background:#fff;padding:0!important}
.pupil-privacy-page>.wp-block-post-content{width:100%;max-width:none!important;margin:0!important;padding:0!important}
.pupil-legal-hero{padding:clamp(165px,17vh,215px) var(--page-gutter) 86px;background:#f0f8ff;border-bottom:1px solid #d5e8f8}
.pupil-legal-hero-inner{max-width:1100px;margin:0 auto}
.pupil-legal-hero h1{font:500 clamp(47px,7vw,104px)/1.01 Inter,Arial,sans-serif;letter-spacing:-.055em;margin:22px 0 25px;max-width:940px;color:#18232d}
.pupil-legal-hero .pupil-legal-deck{font-size:clamp(17px,2vw,22px);line-height:1.55;color:#3b515d;max-width:740px;margin:0}
.pupil-legal-meta{display:flex;flex-wrap:wrap;gap:10px 20px;margin-top:36px;color:#536b79;font-size:12px;letter-spacing:.01em}
.pupil-legal-meta strong{font-weight:600;color:#263c4a}
.pupil-legal-body{max-width:1150px;margin:0 auto;padding:76px clamp(24px,5vw,56px) 110px;display:grid;grid-template-columns:215px minmax(0,1fr);column-gap:clamp(50px,7vw,120px);align-items:start}
.pupil-legal-toc{position:sticky;top:135px;display:flex;flex-direction:column;gap:13px}
.pupil-legal-toc h2{font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:#54748a;font-weight:700;margin:0 0 6px}
.pupil-legal-toc a{font-size:13px;line-height:1.45;color:#354753;text-decoration:none;transition:color .2s}
.pupil-legal-toc a:hover{color:#0678b5;text-decoration:underline;text-underline-offset:4px}
.pupil-legal-copy{max-width:740px}
.pupil-legal-copy section{padding-bottom:34px;margin-bottom:33px;border-bottom:1px solid #dae7ef;scroll-margin-top:125px}
.pupil-legal-copy section:last-child{margin-bottom:0;border:0}
.pupil-legal-copy h2{font:600 clamp(23px,2.35vw,30px)/1.23 Inter,Arial,sans-serif;letter-spacing:-.025em;color:#172b37;margin:0 0 15px}
.pupil-legal-copy p,.pupil-legal-copy li{font-size:16px;line-height:1.83;color:#3a4b56;margin:0 0 14px}
.pupil-legal-copy ul{padding-left:22px;margin:0 0 16px}
.pupil-legal-copy li{padding-left:4px;margin:5px 0}
.pupil-legal-copy a{color:#086d9e;text-decoration:underline;text-underline-offset:4px}
.pupil-legal-copy a:hover{color:#114f75}
.pupil-legal-note{padding:22px 25px;background:#f5faff;border-left:3px solid #f8c632;margin-top:22px}
.pupil-legal-note p{margin-bottom:0}
@media(max-width:800px){
 .pupil-legal-body{display:block;padding:48px 24px 75px}
 .pupil-legal-toc{position:static;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin:0 0 42px;padding-bottom:26px;border-bottom:1px solid #dae7ef}
 .pupil-legal-toc h2{grid-column:1/-1}
 .pupil-legal-hero{padding:155px 24px 58px}
 .pupil-not-found{padding:170px 24px 90px!important}
 .pupil-error-caption{right:24px;bottom:25px}
}
@media(max-width:500px){
 .pupil-legal-hero h1{font-size:clamp(42px,12.5vw,62px)}
 .pupil-legal-toc{grid-template-columns:1fr 1fr}
 .pupil-error-number{font-size:clamp(125px,34vw,170px)}
 .pupil-error-spark{right:-.45em}
 .pupil-not-found h1{font-size:clamp(36px,10vw,53px)}
 .pupil-error-caption{display:none}
}
@media(prefers-reduced-motion:reduce){.pupil-utility-page *{scroll-behavior:auto!important;transition:none!important}}
/* WordPress block-theme wrapper ships a high-specificity padding reset. */
.pupil-utility-body .wp-site-blocks>main.pupil-not-found{
  padding:clamp(155px,17vh,230px) var(--page-gutter) 116px!important;
}
@media(max-width:800px){
  .pupil-utility-body .wp-site-blocks>main.pupil-not-found{padding:170px 24px 90px!important}
}
