/* Official identity applied to the existing design system. */
@font-face {
  font-family:"Nunito";font-style:normal;font-weight:400 900;font-display:swap;
  src:url("../assets/fonts/nunito-rounded-latin.woff2") format("woff2");
}
@font-face {
  font-family:"Nunito Sans";font-style:normal;font-weight:400 900;font-display:swap;
  src:url("../assets/fonts/nunito-sans-latin.woff2") format("woff2");
}
h1,h2,h3{letter-spacing:-.04em}
.hero h1{font-size:clamp(46px,4.8vw,70px);font-weight:850;line-height:1.08;letter-spacing:-.045em;max-width:17ch}
.hero .eyebrow{display:flex;align-items:center;gap:12px}
.hero-marker{display:block;flex:none;width:36px;height:36px}
.button{border-radius:var(--radius-control)}
.button:hover{background:#00c900}
input,select,textarea{border-radius:8px}
.work-lightbox button{border-radius:10px}
.gallery-photo{border-radius:var(--radius-media)}
.programme-panel img{border-radius:24px 8px 24px 8px}
.section-heading h2 span,.work-heading h2 span,.process h2 span,.about-title h2 span{color:var(--brand-navy)}
.service-row .number,.process li>span{color:var(--muted)}
/* The wordmark keeps its own clear space. Only approved support artwork moves. */
.hero{position:relative;isolation:isolate}
.hero-brand .connection-arcs{
  left:auto;right:-170px;top:-45px;width:350px;height:280px;
  background:url("../assets/brand/shape-flow.svg") center/contain no-repeat;
  opacity:.1;stroke:none;
}
.hero-brand:after{
  content:"";position:absolute;right:-12px;bottom:-6px;width:72px;height:72px;
  background:url("../assets/brand/active-welcome.svg") center/contain no-repeat;
  pointer-events:none;
}
.hero-logo{animation:none;transform:none}
.brand-caption{max-width:35ch;line-height:1.6;font-size:12px;letter-spacing:0;margin-top:26px}
/* The approved school-life illustration replaces the improvised arch graphic. */
.about-illustration{position:relative;isolation:isolate;max-width:440px;width:100%;margin-top:32px}
.about-illustration:before{
  content:"";position:absolute;inset:4% 2%;z-index:-1;background:#e9f5e7;
  mask:url("../assets/brand/shape-wide.svg") center/contain no-repeat;
}
.about-illustration img{width:100%;height:auto}
.service-identity{display:block;width:68px;height:68px;object-fit:contain;margin-top:36px}
.community .programme-heading{position:relative;padding-right:110px}
.programme-identity{position:absolute;right:0;top:5px;width:90px;height:80px;object-fit:contain}
.process{position:relative}
.process-identity{position:absolute;top:var(--section-space);right:max(var(--gutter),calc((100% - var(--content-width))/2));width:68px;height:80px;object-fit:contain}
.contact-copy{border-radius:28px 0 0 0;padding-bottom:160px}
.contact-brand-signoff{position:absolute;left:46px;bottom:50px;display:flex;align-items:center;gap:18px;max-width:calc(100% - 92px)}
.contact-brand-signoff img{width:72px;height:72px;flex:none}
.contact-brand-signoff p{font-family:var(--font-display);font-size:25px;font-weight:800;line-height:1.1;letter-spacing:-.035em}
.footer{border-top:5px solid var(--brand-green)}
.footer-identity>p{max-width:36ch;line-height:1.7}
@media(max-width:1100px){
  .hero h1{font-size:clamp(44px,5vw,56px)}
  .hero-brand:after{width:54px;height:54px;right:0;bottom:-16px}
  .contact-brand-signoff{left:32px;max-width:calc(100% - 64px);gap:14px}
  .contact-brand-signoff p{font-size:22px}
  .contact-brand-signoff img{width:58px;height:58px}
}
@media(max-width:760px){
  .hero .eyebrow{letter-spacing:.13em}
  .hero h1{font-size:clamp(34px,7.4vw,54px);max-width:18ch;line-height:1.09}
  .hero:before{
    content:"";position:absolute;z-index:-1;right:-160px;top:-100px;width:330px;height:300px;
    background:url("../assets/brand/shape-soft.svg") center/contain no-repeat;opacity:.045;
  }
  .about-title h2{font-size:34px}
  .about-illustration{max-width:360px;margin-top:28px}
  .service-identity,.process-identity{display:none}
  .community .programme-heading{padding-right:0}
  .programme-identity{width:38px;height:34px;top:-8px;right:0}
  .community .programme-heading .section-label{padding-right:52px}
  .programme-panel img{border-radius:20px 6px 20px 6px}
  .contact-copy{border-radius:0;padding-bottom:44px}
  .contact-brand-signoff{position:static;margin-top:30px;max-width:none;gap:14px}
  .contact-brand-signoff img{width:52px;height:52px}
  .contact-brand-signoff p{font-size:22px}
  .footer-identity>p{max-width:30ch}
}
@media(max-width:370px){.hero h1{font-size:32px}.about-title h2{font-size:31px}}
