/* Shared layout for St. Patrick's inner pages. */

.inner-page{
  --icon-star:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='m12 2 2.9 6.1 6.6.9-4.8 4.7 1.2 6.6-5.9-3.1-5.9 3.1 1.2-6.6L2.5 9l6.6-.9L12 2Z'/%3E%3C/svg%3E");
  --icon-book:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M3 4c3-1 6-1 9 1v16c-3-2-6-2-9-1V4Zm18 0c-3-1-6-1-9 1v16c3-2 6-2 9-1V4Z'/%3E%3C/svg%3E");
  --icon-document:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' fill-rule='evenodd' d='M5 2h10l5 5v15H5V2Zm2 2v16h11V9h-5V4H7Zm8 .8V7h2.2L15 4.8ZM9 12h7v2H9v-2Zm0 4h7v2H9v-2Z'/%3E%3C/svg%3E");
  --icon-trophy:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M7 2h10v3h4v2c0 4-2 6-6 6-.5 1-1.2 1.7-2 2v3h4v2H7v-2h4v-3c-.8-.3-1.5-1-2-2-4 0-6-2-6-6V5h4V2Zm0 5H5c0 2.2 1 3.4 3.2 3.8A10 10 0 0 1 7 7Zm10 0a10 10 0 0 1-1.2 3.8C18 10.4 19 9.2 19 7h-2Z'/%3E%3C/svg%3E");
  --icon-medal:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M7 2h4l1 4 1-4h4l-2.2 6.1A7 7 0 1 1 9.2 8L7 2Zm5 7a5 5 0 1 0 0 10 5 5 0 0 0 0-10Zm0 2 1 2 2.2.3-1.6 1.5.4 2.2-2-1-2 1 .4-2.2-1.6-1.5L11 13l1-2Z'/%3E%3C/svg%3E");
  --icon-bulb:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 2a7 7 0 0 0-4.2 12.6c.8.6 1.2 1.3 1.2 2.4h6c0-1.1.4-1.8 1.2-2.4A7 7 0 0 0 12 2Zm-3 17h6v2H9v-2Z'/%3E%3C/svg%3E");
  --icon-users:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M8 3a4 4 0 1 1 0 8 4 4 0 0 1 0-8Zm9 2a3 3 0 1 1 0 6 3 3 0 0 1 0-6ZM1 21c.4-5 2.6-8 7-8s6.6 3 7 8H1Zm14-7c4.8-.8 7.5 1.7 8 6h-6.1a11 11 0 0 0-1.9-6Z'/%3E%3C/svg%3E");
  --icon-flag:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M5 2h2v2h12l-2 4 2 4H7v10H5V2Z'/%3E%3C/svg%3E");
  --icon-chat:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M3 3h18v14H9l-6 5V3Zm4 5v2h10V8H7Zm0 4v2h7v-2H7Z'/%3E%3C/svg%3E");
  --icon-puzzle:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M3 3h7v4a2 2 0 1 0 4 0V3h7v7h-4a2 2 0 1 0 0 4h4v7h-7v-4a2 2 0 1 0-4 0v4H3v-7h4a2 2 0 1 0 0-4H3V3Z'/%3E%3C/svg%3E");
  --icon-heart:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 21 3.5 13.3A6 6 0 0 1 12 4.8a6 6 0 0 1 8.5 8.5L12 21Z'/%3E%3C/svg%3E");
  --icon-shield:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='m12 2 9 4v6c0 5.4-3.6 9-9 10-5.4-1-9-4.6-9-10V6l9-4Zm-1 13.5 6-6-1.4-1.4-4.6 4.6-2.6-2.6L7 11.5l4 4Z'/%3E%3C/svg%3E");
  --icon-fitness:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M2 9h2V7h3v4h10V7h3v2h2v6h-2v2h-3v-4H7v4H4v-2H2V9Z'/%3E%3C/svg%3E");
  --icon-laptop:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M4 4h16v12h3v3H1v-3h3V4Zm2 2v8h12V6H6Z'/%3E%3C/svg%3E");
  --icon-flask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M8 2h8v2h-1v5.3l5.5 9.2A2.3 2.3 0 0 1 18.5 22h-13a2.3 2.3 0 0 1-2-3.5L9 9.3V4H8V2Zm3 8-2.4 4h6.8L13 10V4h-2v6Z'/%3E%3C/svg%3E");
  --icon-briefcase:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M9 3h6l2 3h5v14H2V6h5l2-3Zm2 2-1 1h4l-1-1h-2Zm-7 8v5h16v-5h-6v2h-4v-2H4Z'/%3E%3C/svg%3E");
  --icon-building:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M3 22V2h13v6h5v14h-7v-4h-4v4H3Zm3-16v2h2V6H6Zm5 0v2h2V6h-2ZM6 11v2h2v-2H6Zm5 0v2h2v-2h-2Zm5 0v2h2v-2h-2Zm0 5v2h2v-2h-2Z'/%3E%3C/svg%3E");
  --icon-eye:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 4C5 4 1 12 1 12s4 8 11 8 11-8 11-8-4-8-11-8Zm0 13a5 5 0 1 1 0-10 5 5 0 0 1 0 10Zm0-2.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5Z'/%3E%3C/svg%3E");
  --icon-bus:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M5 2h14a3 3 0 0 1 3 3v12h-2v3h-3v-3H7v3H4v-3H2V5a3 3 0 0 1 3-3Zm0 3v6h14V5H5Zm2 8a2 2 0 1 0 0 4 2 2 0 0 0 0-4Zm10 0a2 2 0 1 0 0 4 2 2 0 0 0 0-4Z'/%3E%3C/svg%3E");
  --icon-target:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 2a10 10 0 1 0 10 10h-3a7 7 0 1 1-7-7V2Zm2 0v7H7v3h10V2h-3Zm-2 8a2 2 0 1 0 0 4 2 2 0 0 0 0-4Z'/%3E%3C/svg%3E");
  background:#fff;
}

.inner-page main{
  display:block;
  overflow-x:clip;
  overflow-y:visible;
}

/* Keep the generated top bar and sticky navbar in the same layout context as the homepage. */
.inner-page [data-site-header]{display:contents}

.inner-page :where(section[id],article[id]){scroll-margin-top:112px}
.inner-page :where(a,button,input,select,textarea):focus-visible{
  outline:3px solid rgba(244,180,0,.78);
  outline-offset:3px;
}

.inner-hero{
  --hero-image:url("st_patricks_hero_banner_same_size.webp");
  position:relative;
  min-height:430px;
  display:flex;
  align-items:flex-end;
  color:#fff;
  background-image:linear-gradient(rgba(7,25,52,.38),rgba(7,25,52,.38)),var(--hero-image);
  background-position:center;
  background-size:cover;
  border-bottom:6px solid var(--gold);
}

.inner-hero::before{
  display:none;
}

.inner-hero::after{
  display:none;
}

.page-about .inner-hero{--hero-image:url("infra-3.webp");background-position:center 46%}
.page-academics .inner-hero{--hero-image:url("classroom-2.webp");background-position:center 45%}
.page-facilities .inner-hero{--hero-image:url("infra-1.webp");background-position:center}
.page-student-life .inner-hero{--hero-image:url("dance-1.webp");background-position:center 38%}
.page-co-curricular .inner-hero{--hero-image:url("dance-3.webp");background-position:center 42%}
.page-sports .inner-hero{--hero-image:url("playground-2.webp");background-position:center 46%}
.page-achievements .inner-hero{--hero-image:url("achivement.webp");background-position:center 38%}
.page-management .inner-hero{--hero-image:url("infra-3.webp");background-position:center 38%}
.page-house-system .inner-hero{--hero-image:url("house-1.webp");background-position:center 38%}
.page-gallery .inner-hero{--hero-image:url("infra-3.webp");background-position:center 48%}
.page-contact .inner-hero{--hero-image:url("infra-3.webp");background-position:center 46%}
.page-admissions .inner-hero{--hero-image:url("classroom-1.webp");background-position:center 44%}
.page-careers .inner-hero{--hero-image:url("classroom-2.webp");background-position:center 42%}
.page-alumni .inner-hero{--hero-image:url("infra-4.webp");background-position:center 52%}

/* Achievements page: celebratory motion and interactive depth. */
.page-achievements .inner-hero .wrap > *{
  opacity:0;
  animation:achievementHeroIn .72s cubic-bezier(.2,.75,.25,1) forwards;
}
.page-achievements .inner-hero .breadcrumb{animation-delay:.08s}
.page-achievements .inner-hero .inner-kicker{animation-delay:.16s}
.page-achievements .inner-hero h1{animation-delay:.24s}
.page-achievements .inner-hero p{animation-delay:.32s}

@keyframes achievementHeroIn{
  from{opacity:0;transform:translateY(24px)}
  to{opacity:1;transform:none}
}

.inner-hero .wrap{
  position:relative;
  z-index:1;
  padding-top:5.5rem;
  padding-bottom:4.4rem;
}

.breadcrumb{
  display:flex;
  align-items:center;
  gap:.55rem;
  flex-wrap:wrap;
  margin-bottom:1.2rem;
  color:rgba(255,255,255,.82);
  font-family:var(--font-head);
  font-size:.82rem;
  font-weight:600;
}

.breadcrumb a{
  color:var(--gold);
}

.breadcrumb span[aria-hidden="true"]{
  color:rgba(255,255,255,.55);
}

.inner-kicker{
  display:inline-flex;
  align-items:center;
  gap:.65rem;
  color:var(--gold);
  font-family:var(--font-head);
  font-size:.78rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0;
}

.inner-kicker::before{
  content:"";
  width:34px;
  height:3px;
  border-radius:3px;
  background:var(--gold);
}

.inner-hero h1{
  max-width:780px;
  margin:.65rem 0 .8rem;
  font-family:var(--font-head);
  font-size:3.1rem;
  line-height:1.08;
  font-weight:800;
  letter-spacing:0;
  text-transform:capitalize;
  text-wrap:balance;
}

.inner-hero p{
  max-width:720px;
  color:rgba(255,255,255,.88);
  font-size:1.03rem;
}

.inner-band{
  position:relative;
  padding:var(--sec-pad) 0;
  background:#fff;
}

.inner-band.cream{background:var(--cream)}
.inner-band.cream-2{background:var(--cream-2)}
.inner-band.navy{background:var(--navy-deep);color:#fff}
.inner-band.green{background:var(--brand-dark);color:#fff}

.band-heading{
  max-width:770px;
  margin-bottom:2rem;
}

.band-heading.center{
  margin-right:auto;
  margin-left:auto;
  text-align:center;
}

.band-heading .label{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  margin-bottom:.55rem;
  color:var(--brand);
  font-family:var(--font-head);
  font-size:.76rem;
  font-weight:700;
  text-transform:uppercase;
}

.band-heading .label::before{
  content:"";
  width:28px;
  height:3px;
  border-radius:3px;
  background:var(--gold);
}

.band-heading.center .label::after{
  content:"";
  width:28px;
  height:3px;
  border-radius:3px;
  background:var(--gold);
}

.inner-band.navy .band-heading .label,
.inner-band.green .band-heading .label{color:var(--gold)}

.band-heading h2{
  margin-bottom:.7rem;
  color:var(--navy-deep);
  font-family:var(--font-head);
  font-size:2.2rem;
  line-height:1.15;
  font-weight:800;
  letter-spacing:0;
  text-wrap:balance;
}

.band-heading h2 .accent{color:var(--brand)}
.inner-band.navy .band-heading h2,
.inner-band.green .band-heading h2{color:#fff}
.inner-band.navy .band-heading h2 .accent,
.inner-band.green .band-heading h2 .accent{color:var(--gold)}

.band-heading p,
.copy p{
  color:var(--muted);
}

.inner-band.navy .band-heading p,
.inner-band.green .band-heading p,
.inner-band.navy .copy p,
.inner-band.green .copy p{color:rgba(255,255,255,.8)}

.intro-split,
.content-split{
  display:grid;
  grid-template-columns:minmax(0,1.03fr) minmax(340px,.97fr);
  gap:3rem;
  align-items:center;
}

.content-split.reverse .media{order:-1}

.copy h2,
.copy h3{
  color:var(--navy-deep);
  font-family:var(--font-head);
  line-height:1.18;
  font-weight:800;
  letter-spacing:0;
}

.copy h2{font-size:2.1rem;margin:.5rem 0 1rem}
.copy h3{font-size:1.35rem;margin-bottom:.65rem}
.copy h2 .accent,.copy h3 .accent{color:var(--brand)}
.inner-band.navy .copy h2,
.inner-band.navy .copy h3,
.inner-band.green .copy h2,
.inner-band.green .copy h3{color:#fff}
.inner-band.navy .copy h2 .accent,
.inner-band.navy .copy h3 .accent,
.inner-band.green .copy h2 .accent,
.inner-band.green .copy h3 .accent{color:var(--gold)}
.copy p+p{margin-top:.85rem}

.media{
  position:relative;
  min-width:0;
}

.media img{
  display:block;
  width:100%;
  min-height:330px;
  max-height:480px;
  object-fit:cover;
  border-radius:8px;
  box-shadow:var(--shadow);
}

.media::before{
  content:"";
  position:absolute;
  top:-12px;
  right:-12px;
  width:88px;
  height:88px;
  border-top:7px solid var(--gold);
  border-right:7px solid var(--brand);
  border-radius:0 8px 0 0;
  z-index:1;
}

.media-note{
  position:absolute;
  left:18px;
  bottom:18px;
  max-width:250px;
  padding:.85rem 1rem;
  border-left:5px solid var(--gold);
  border-radius:6px;
  background:var(--navy-deep);
  color:#fff;
  box-shadow:var(--shadow-sm);
  font-family:var(--font-head);
  font-size:.86rem;
  font-weight:700;
}

.fact-row{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:.75rem;
  margin-top:1.5rem;
}

.fact{
  padding:.85rem;
  border-left:4px solid var(--gold);
  background:var(--cream-2);
}

.fact b{
  display:block;
  color:var(--brand-dark);
  font-family:var(--font-head);
  font-size:1.05rem;
}

.fact span{color:var(--muted);font-size:.78rem}

.content-grid,
.values-grid,
.stage-grid,
.facility-grid,
.house-grid,
.contact-cards{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1.15rem;
  margin-bottom:2rem;
}

.info-card,
.value-panel,
.stage-card,
.contact-card{
  position:relative;
  min-width:0;
  padding:1.5rem;
  border:1px solid rgba(15,42,94,.12);
  border-radius:8px;
  background:#fff;
  box-shadow:0 12px 28px rgba(10,31,71,.08);
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}

.content-grid > *,
.values-grid > *,
.stage-grid > *,
.contact-cards > *{height:100%}

.info-card::before,
.value-panel::before,
.stage-card::before,
.contact-card::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:4px;
  border-radius:8px 8px 0 0;
  background:var(--brand);
}

.info-card:nth-child(3n+2)::before,
.stage-card:nth-child(3n+2)::before{background:var(--gold)}
.info-card:nth-child(3n)::before,
.stage-card:nth-child(3n)::before{background:var(--navy)}

.info-card:hover,
.value-panel:hover,
.stage-card:hover,
.contact-card:hover{
  transform:translateY(-5px);
  border-color:rgba(27,122,61,.3);
  box-shadow:0 20px 36px rgba(10,31,71,.13);
}

.card-index{
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  margin-bottom:1rem;
  border-radius:8px;
  background:var(--cream-2);
  color:var(--brand-dark);
  font-family:var(--font-head);
  font-size:.85rem;
  font-weight:800;
}

.info-card h3,
.value-panel h3,
.stage-card h3,
.facility-card h3,
.house-card h3,
.contact-card h3{
  color:var(--navy-deep);
  font-family:var(--font-head);
  font-size:1.08rem;
  line-height:1.25;
  font-weight:700;
  letter-spacing:0;
}

.info-card p,
.value-panel p,
.stage-card p,
.contact-card p{
  margin-top:.55rem;
  color:var(--muted);
  font-size:.9rem;
}

.value-panel{
  background:linear-gradient(145deg,var(--brand-dark),var(--brand));
  color:#fff;
  border-color:rgba(255,255,255,.18);
}

.value-panel::before{background:var(--gold)}
.value-panel h3{color:var(--gold)}
.value-panel p{color:rgba(255,255,255,.84)}

/* About page: home-page visual language with page-specific interactions. */
.page-about .inner-hero{
  min-height:450px;
  isolation:isolate;
}

.page-achievements .achievement-intro{
  overflow:hidden;
  background:
    radial-gradient(circle at 92% 12%,rgba(244,180,0,.13),transparent 26%),
    linear-gradient(180deg,var(--cream),#fffaf0);
}

.page-achievements .achievement-intro .media img{
  transition:transform .65s cubic-bezier(.2,.75,.25,1),box-shadow .35s ease,filter .35s ease;
}

.page-achievements .achievement-intro .media:hover img{
  transform:scale(1.025);
  filter:saturate(1.08);
  box-shadow:0 28px 58px rgba(10,31,71,.2);
}

.page-achievements .achievement-intro .media-note{
  transition:transform .35s ease,background .35s ease,box-shadow .35s ease;
}

.page-achievements .achievement-intro .media:hover .media-note{
  transform:translateY(-8px);
  background:var(--brand-dark);
  box-shadow:0 18px 34px rgba(10,31,71,.24);
}

.page-achievements .fact{
  position:relative;
  overflow:hidden;
  cursor:default;
  transition:transform .3s ease,background .3s ease,box-shadow .3s ease,border-color .3s ease;
}

.page-achievements .fact::after{
  content:"";
  position:absolute;
  inset:auto -22px -28px auto;
  width:70px;
  height:70px;
  border-radius:50%;
  background:rgba(244,180,0,.16);
  transform:scale(.4);
  transition:transform .35s ease;
}

.page-achievements .fact:hover{
  transform:translateY(-6px);
  border-color:var(--brand);
  background:#fff;
  box-shadow:0 16px 30px rgba(10,31,71,.12);
}

.page-achievements .fact:hover::after{transform:scale(1)}

.page-achievements .achievement-areas{
  background:
    radial-gradient(circle at 8% 18%,rgba(27,122,61,.055),transparent 24%),
    #fff;
}

.page-achievements .achievement-areas .info-card{
  --card-accent:var(--brand);
  isolation:isolate;
  overflow:hidden;
  padding:1.75rem;
  border-radius:14px;
  transition:transform .38s cubic-bezier(.2,.75,.25,1),box-shadow .38s ease,border-color .38s ease;
}

.page-achievements .achievement-areas .info-card:nth-child(2){--card-accent:var(--gold-deep)}
.page-achievements .achievement-areas .info-card:nth-child(3){--card-accent:var(--navy)}
.page-achievements .achievement-areas .info-card::before{
  height:5px;
  background:var(--card-accent);
  transition:height .35s ease;
}

.page-achievements .achievement-areas .info-card::after{
  content:"";
  position:absolute;
  z-index:-1;
  top:-80px;
  right:-90px;
  width:190px;
  height:190px;
  border-radius:50%;
  background:color-mix(in srgb,var(--card-accent) 10%,transparent);
  transition:transform .5s cubic-bezier(.2,.75,.25,1);
}

.page-achievements .achievement-areas .info-card:hover{
  transform:translateY(-12px);
  border-color:color-mix(in srgb,var(--card-accent) 35%,transparent);
  box-shadow:0 28px 55px rgba(10,31,71,.16);
}

.page-achievements .achievement-areas .info-card:hover::before{height:8px}
.page-achievements .achievement-areas .info-card:hover::after{transform:scale(1.35)}
.page-achievements .achievement-areas .card-index{
  color:var(--card-accent);
  transition:transform .35s ease,background .35s ease,color .35s ease,box-shadow .35s ease;
}

.page-achievements .achievement-areas .info-card:hover .card-index{
  transform:rotate(-7deg) scale(1.1);
  background:var(--card-accent);
  color:#fff;
  box-shadow:0 10px 22px color-mix(in srgb,var(--card-accent) 28%,transparent);
}

.page-achievements .achievement-areas .info-card h3{transition:color .3s ease}
.page-achievements .achievement-areas .info-card:hover h3{color:var(--card-accent)}
.page-achievements .achievement-milestones{
  overflow:hidden;
  background-image:
    linear-gradient(90deg,rgba(4,54,26,.48) 0%,rgba(4,54,26,.36) 50%,rgba(7,25,52,.28) 100%),
    url("infra-3.webp");
  background-position:center 46%;
  background-size:cover;
  background-repeat:no-repeat;
}

.page-achievements .achievement-milestones .wrap{
  position:relative;
  z-index:1;
}

.page-achievements .achievement-milestones .copy h2{
  color:#fff;
  text-shadow:0 2px 12px rgba(2,18,10,.62);
}

.page-achievements .achievement-milestones .copy h2 .accent{
  color:#ffd34f;
}

.page-achievements .achievement-milestones .copy > p{
  color:rgba(255,255,255,.96);
  text-shadow:0 1px 8px rgba(2,18,10,.72);
}

.page-achievements .achievement-milestones .inner-kicker{
  text-shadow:0 1px 7px rgba(2,18,10,.7);
}

.page-achievements .achievement-milestones .check-list li{
  transition:transform .28s ease,background .28s ease,border-color .28s ease;
}

.page-achievements .achievement-milestones .check-list li:hover{
  transform:translateX(7px);
  background:rgba(255,255,255,.13);
  border-color:rgba(244,180,0,.48);
}

.page-achievements .achievement-milestones .quote-band{
  overflow:hidden;
  background:rgba(7,25,52,.72);
  backdrop-filter:blur(9px);
  -webkit-backdrop-filter:blur(9px);
  transition:transform .4s cubic-bezier(.2,.75,.25,1),box-shadow .4s ease,border-color .4s ease;
}

.page-achievements .achievement-milestones .quote-band:hover{
  transform:translateY(-10px) rotate(-.5deg);
  border-color:#ffd34f;
  box-shadow:0 30px 58px rgba(3,18,42,.34);
}

.page-achievements .achievement-milestones .quote-band::before{
  transition:transform .5s ease,color .5s ease;
}

.page-achievements .achievement-milestones .quote-band:hover::before{
  transform:translate(-8px,8px) rotate(-8deg);
  color:rgba(244,180,0,.34);
}

.page-about .inner-hero::before{
  display:none;
}

.page-about .about-hero-content > *{
  opacity:0;
  animation:aboutHeroIn .72s cubic-bezier(.2,.75,.25,1) forwards;
}

.page-about .about-hero-content .breadcrumb{animation-delay:.08s}
.page-about .about-hero-content .inner-kicker{animation-delay:.16s}
.page-about .about-hero-content h1{animation-delay:.24s}
.page-about .about-hero-content p{animation-delay:.32s}

@keyframes aboutHeroIn{
  from{opacity:0;transform:translateY(22px)}
  to{opacity:1;transform:none}
}

.page-about .inner-band{padding-top:var(--sec-pad);padding-bottom:var(--sec-pad)}
.page-about .about-overview .intro-split{grid-template-columns:minmax(0,.92fr) minmax(390px,1.08fr)}
.page-about .about-history .content-split{grid-template-columns:minmax(390px,1.05fr) minmax(0,.95fr)}

.page-about .about-overview::before,
.page-about #profile::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(135deg,rgba(27,122,61,.045),transparent 34%,rgba(244,180,0,.055));
}

.page-about .about-overview .wrap,
.page-about #profile .wrap{position:relative;z-index:1}

.page-about .media::before{display:none}
.page-about .about-photo-main{
  position:relative;
  overflow:hidden;
  border-radius:8px;
  box-shadow:var(--shadow);
}

.page-about .about-photo-main img{
  display:block;
  width:100%;
  min-height:390px;
  aspect-ratio:4/3;
  object-fit:cover;
  border-radius:0;
  box-shadow:none;
  transition:transform .65s cubic-bezier(.2,.7,.2,1),filter .35s ease;
}

.page-about .about-photo-main::after{
  content:"";
  position:absolute;
  inset:0;
  border:1px solid rgba(255,255,255,.28);
  border-radius:inherit;
  pointer-events:none;
}

.page-about .about-collage{padding:0 2rem 2rem 0}
.page-about .about-collage .about-photo-main{z-index:1}
.page-about .about-photo-inset{
  position:absolute;
  z-index:4;
  right:0;
  bottom:0;
  width:39%;
  overflow:hidden;
  border:5px solid var(--cream);
  border-radius:8px;
  background:#fff;
  box-shadow:0 18px 38px rgba(10,31,71,.24);
  transition:transform .35s ease,box-shadow .35s ease;
}

.page-about .about-photo-inset img{
  display:block;
  width:100%;
  min-height:0;
  aspect-ratio:1/1;
  object-fit:cover;
  border-radius:0;
  box-shadow:none;
  transition:transform .55s ease;
}

.page-about .about-dot-pattern{
  position:absolute;
  z-index:0;
  top:-24px;
  left:-24px;
  width:112px;
  height:112px;
  opacity:.42;
  background-image:radial-gradient(var(--brand) 2px,transparent 2.5px);
  background-size:14px 14px;
}

.page-about .about-corner{
  position:absolute;
  z-index:3;
  width:38px;
  height:38px;
  pointer-events:none;
}

.page-about .about-corner--top{
  top:16px;
  left:16px;
  border-top:4px solid var(--gold);
  border-left:4px solid var(--gold);
  border-radius:6px 0 0;
}

.page-about .about-corner--bottom{
  right:46px;
  bottom:48px;
  border-right:4px solid var(--brand);
  border-bottom:4px solid var(--brand);
  border-radius:0 0 6px;
}

.page-about .about-collage .media-note{
  z-index:5;
  right:32%;
  bottom:32px;
  max-width:265px;
}

.page-about .about-story-media,
.page-about .about-profile-media{padding:0 1.15rem 1.15rem 0}

.page-about .about-story-media::after,
.page-about .about-profile-media::after{
  content:"";
  position:absolute;
  z-index:-1;
  right:0;
  bottom:0;
  width:72%;
  height:68%;
  border-radius:8px;
  background:var(--gold);
}

.page-about .about-profile-media::after{background:var(--brand)}

.page-about .story-year,
.page-about .profile-badge{
  position:absolute;
  z-index:2;
  left:-18px;
  bottom:34px;
  display:flex;
  align-items:center;
  gap:.7rem;
  max-width:210px;
  padding:.8rem 1rem;
  border-left:5px solid var(--gold);
  border-radius:6px;
  background:var(--navy-deep);
  color:#fff;
  box-shadow:var(--shadow-sm);
  transition:transform .3s ease,box-shadow .3s ease;
}

.page-about .profile-badge{border-left-color:var(--brand);background:#fff;color:var(--navy-deep)}
.page-about .story-year strong,
.page-about .profile-badge strong{color:var(--gold);font-family:var(--font-head);font-size:1.42rem;line-height:1}
.page-about .profile-badge strong{color:var(--brand)}
.page-about .story-year span,
.page-about .profile-badge span{font-family:var(--font-head);font-size:.72rem;font-weight:700;line-height:1.25}

.page-about .fact{
  --fact-accent:var(--gold);
  position:relative;
  overflow:hidden;
  display:flex;
  min-height:128px;
  padding:1rem;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  border:1px solid rgba(15,42,94,.1);
  border-top:4px solid var(--fact-accent);
  border-radius:8px;
  background:#fff;
  box-shadow:0 9px 20px rgba(10,31,71,.06);
  transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;
}

.page-about .fact:nth-child(2){--fact-accent:var(--brand)}
.page-about .fact:nth-child(3){--fact-accent:var(--navy)}
.page-about .fact-icon{
  position:relative;
  z-index:1;
  display:grid;
  place-items:center;
  width:44px;
  height:44px;
  border-radius:8px;
  background:var(--cream-2);
  background:color-mix(in srgb,var(--fact-accent) 12%,#fff);
  color:var(--fact-accent);
  transition:transform .25s ease,background .25s ease,color .25s ease;
}

.page-about .fact-icon svg{width:22px;height:22px}
.page-about .fact-copy{position:relative;z-index:1;display:block;min-width:0;margin-top:.62rem}
.page-about .fact-copy b{display:block;color:var(--brand-dark);font-size:.98rem;line-height:1.2;transition:color .25s ease}
.page-about .fact-copy > span{display:block;margin-top:.22rem;color:var(--muted);font-size:.72rem;line-height:1.4}

.page-about .about-foundation{
  overflow:hidden;
  background:linear-gradient(118deg,var(--navy-deep),var(--navy) 66%,#123e68);
}

.page-about .about-foundation::before{
  content:"";
  position:absolute;
  top:0;
  right:0;
  width:28%;
  height:7px;
  background:var(--gold);
}

.page-about .about-foundation .values-grid{
  grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);
  align-items:stretch;
  gap:1.25rem;
}

.page-about .about-foundation .value-panel{
  overflow:hidden;
  padding:1.65rem;
  border-color:rgba(255,255,255,.32);
  background:#fff;
  color:var(--ink);
  box-shadow:0 18px 38px rgba(3,15,36,.24);
  transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease;
}

.page-about .about-foundation .value-panel::before{height:5px;transition:height .28s ease}
.page-about .about-foundation .foundation-card-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}
.page-about .about-foundation .foundation-card-head .card-index{margin:0}
.page-about .about-foundation .foundation-icon{
  display:grid;
  place-items:center;
  width:44px;
  height:44px;
  border-radius:8px;
  background:var(--cream-2);
  color:var(--brand);
  transition:transform .28s ease,background .28s ease,color .28s ease;
}

.page-about .about-foundation .foundation-icon svg{width:24px;height:24px}
.page-about .about-foundation .value-panel h3{color:var(--navy-deep);font-size:1.16rem}
.page-about .about-foundation .value-panel p{color:var(--muted);font-size:.92rem}
.page-about .about-foundation .vision-card{
  display:flex;
  flex-direction:column;
  justify-content:center;
  background:var(--brand-dark);
  border-color:rgba(255,255,255,.2);
}

.page-about .about-foundation .vision-card h3{color:var(--gold);font-size:1.3rem}
.page-about .about-foundation .vision-card p{color:rgba(255,255,255,.86);font-size:.98rem}
.page-about .about-foundation .vision-card .card-index{background:var(--gold);color:var(--navy-deep)}
.page-about .about-foundation .vision-card .foundation-icon{background:rgba(255,255,255,.12);color:var(--gold)}
.page-about .about-foundation .mission-card .check-list{grid-template-columns:repeat(2,minmax(0,1fr))}
.page-about .about-foundation .values-card{grid-column:1/-1}
.page-about .about-foundation .values-card .check-list{grid-template-columns:repeat(5,minmax(0,1fr))}

.page-about .about-foundation .mission-card .check-list li,
.page-about .about-foundation .values-card .check-list li{
  min-height:52px;
  display:flex;
  align-items:center;
  color:var(--ink);
  border-color:rgba(15,42,94,.09);
  background:var(--cream);
  transition:transform .22s ease,background .22s ease,border-color .22s ease,box-shadow .22s ease;
}

.page-about .about-foundation .mission-card .check-list li::before,
.page-about .about-foundation .values-card .check-list li::before{border-color:var(--brand)}
.page-about #profile .btn{margin-top:1.3rem}

.page-about #profile .about-photo-main img{min-height:360px}

.page-about .reveal.reveal--left{transform:translate3d(-32px,18px,0)}
.page-about .reveal.reveal--right{transform:translate3d(32px,18px,0)}
.page-about .reveal.in{transform:none}
.page-about .about-foundation .value-panel:nth-child(2){transition-delay:.08s}
.page-about .about-foundation .value-panel:nth-child(3){transition-delay:.14s}

@media(hover:hover) and (pointer:fine){
  .page-about .media:hover .about-photo-main img{transform:scale(1.045);filter:saturate(1.07)}
  .page-about .about-collage:hover .about-photo-inset{transform:translateY(-7px) rotate(1deg);box-shadow:0 24px 44px rgba(10,31,71,.28)}
  .page-about .about-collage:hover .about-photo-inset img{transform:scale(1.06)}
  .page-about .about-story-media:hover .story-year,
  .page-about .about-profile-media:hover .profile-badge{transform:translateY(-6px);box-shadow:0 18px 34px rgba(10,31,71,.24)}
  .page-about .fact:hover{transform:translateY(-5px);border-color:var(--fact-accent);box-shadow:0 18px 32px rgba(10,31,71,.12)}
  .page-about .fact:hover .fact-icon{transform:translateY(-2px) rotate(-4deg);background:var(--fact-accent);color:#fff}
  .page-about .fact:hover b{color:var(--navy-deep)}
  .page-about .about-foundation .value-panel:hover{transform:translateY(-7px);border-color:rgba(244,180,0,.7);box-shadow:0 26px 48px rgba(3,15,36,.34)}
  .page-about .about-foundation .value-panel:hover::before{height:8px}
  .page-about .about-foundation .value-panel:hover .foundation-icon{transform:translateY(-3px) rotate(-4deg);background:var(--brand);color:#fff}
  .page-about .about-foundation .vision-card:hover .foundation-icon{background:var(--gold);color:var(--navy-deep)}
  .page-about .about-foundation .check-list li:hover{transform:translateY(-3px);border-color:rgba(27,122,61,.26);background:#fff;box-shadow:0 8px 18px rgba(10,31,71,.08)}
}

.check-list{
  --list-icon:var(--icon-star);
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.7rem 1rem;
  margin-top:1.2rem;
  list-style:none;
}

.check-list li{
  position:relative;
  min-height:44px;
  padding:.55rem .65rem .55rem 2.75rem;
  border:1px solid rgba(15,42,94,.09);
  border-radius:6px;
  background:rgba(255,255,255,.72);
  color:var(--ink);
  font-size:.84rem;
  font-weight:500;
}

.check-list li::before{
  content:"";
  position:absolute;
  left:.75rem;
  top:50%;
  width:23px;
  height:23px;
  border:0;
  background-color:var(--brand);
  -webkit-mask:var(--item-icon,var(--list-icon)) center/contain no-repeat;
  mask:var(--item-icon,var(--list-icon)) center/contain no-repeat;
  transform:translateY(-50%);
  transition:transform .25s ease,background-color .25s ease;
}

.check-list li:hover::before{transform:translateY(-50%) scale(1.12) rotate(-5deg)}
.page-academics .check-list{--list-icon:var(--icon-book)}
.page-admissions .check-list{--list-icon:var(--icon-document)}
.page-sports .check-list{--list-icon:var(--icon-trophy)}
.page-achievements .check-list{--list-icon:var(--icon-medal)}

.inner-band.navy .check-list li,
.inner-band.green .check-list li{
  color:#fff;
  border-color:rgba(255,255,255,.14);
  background:rgba(255,255,255,.07);
}

.inner-band.navy .check-list li::before,
.inner-band.green .check-list li::before{background-color:var(--gold)}

.stage-grid{grid-template-columns:repeat(2,minmax(0,1fr))}

.stage-card{
  padding-left:5.2rem;
}

.stage-card .stage-no{
  position:absolute;
  top:1.45rem;
  left:1.35rem;
  display:grid;
  place-items:center;
  width:54px;
  height:54px;
  border-radius:50%;
  background:var(--navy);
  color:var(--gold);
  font-family:var(--font-head);
  font-size:.82rem;
  font-weight:800;
}

.stage-card .meta{
  display:block;
  margin:.25rem 0 .7rem;
  color:var(--brand);
  font-family:var(--font-head);
  font-size:.75rem;
  font-weight:700;
  text-transform:uppercase;
}

.stage-card .check-list{grid-template-columns:1fr}

.facility-grid{grid-template-columns:repeat(3,minmax(0,1fr))}

.facility-card{
  position:relative;
  min-height:360px;
  overflow:hidden;
  border-radius:8px;
  background:var(--navy-deep);
  box-shadow:var(--shadow-sm);
}

.facility-card img{
  width:100%;
  height:100%;
  min-height:360px;
  object-fit:cover;
  transition:transform .45s ease;
}

.facility-card::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,transparent 28%,rgba(7,25,52,.94) 88%);
}

.facility-card .facility-copy{
  position:absolute;
  z-index:1;
  right:0;
  bottom:0;
  left:0;
  padding:1.25rem;
  color:#fff;
}

.facility-card .tag{
  display:inline-block;
  margin-bottom:.45rem;
  padding:.22rem .55rem;
  border-radius:999px;
  background:var(--gold);
  color:var(--navy-deep);
  font-family:var(--font-head);
  font-size:.68rem;
  font-weight:800;
}

.facility-card h3{color:#fff}
.facility-card p{margin-top:.35rem;color:rgba(255,255,255,.8);font-size:.82rem}
.facility-card:hover img{transform:scale(1.045)}

.feature-line{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1px;
  overflow:hidden;
  border-radius:8px;
  background:rgba(255,255,255,.18);
}

.feature-line article{
  min-height:170px;
  padding:1.4rem;
  background:rgba(255,255,255,.08);
}

.feature-line b{
  display:block;
  margin-bottom:.45rem;
  color:var(--gold);
  font-family:var(--font-head);
  font-size:1.05rem;
}

.feature-line p{color:rgba(255,255,255,.78);font-size:.86rem}

.quote-band{
  position:relative;
  padding:2.2rem 2.4rem;
  border-left:8px solid var(--gold);
  border-radius:8px;
  background:var(--navy-deep);
  color:#fff;
  box-shadow:var(--shadow-sm);
}

.quote-band::before{
  content:"\201C";
  position:absolute;
  top:-20px;
  right:24px;
  color:rgba(244,180,0,.2);
  font-family:Georgia,serif;
  font-size:8rem;
  line-height:1;
}

.quote-band h2,
.quote-band h3{
  position:relative;
  color:var(--gold);
  font-family:var(--font-head);
  letter-spacing:0;
}

.quote-band p{position:relative;color:rgba(255,255,255,.84)}
.quote-band p+p{margin-top:.8rem}

.house-grid{grid-template-columns:repeat(2,minmax(0,1fr))}

.house-card{
  --house-color:var(--brand);
  position:relative;
  min-height:390px;
  overflow:hidden;
  border-radius:8px;
  box-shadow:var(--shadow-sm);
}

.house-card.green-house{--house-color:#1f9d55}
.house-card.red-house{--house-color:#d83b38}
.house-card.blue-house{--house-color:#2380d9}
.house-card.gold-house{--house-color:#f4b400}

.house-card .tag{
  display:inline-block;
  margin-bottom:.45rem;
  padding:.2rem .55rem;
  border-radius:999px;
  background:var(--house-color);
  color:#fff;
  font-family:var(--font-head);
  font-size:.68rem;
  font-weight:800;
}

.house-card.gold-house .tag{color:var(--navy-deep)}

.council-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem;margin-top:2rem}
.council-card{position:relative;overflow:hidden;padding:1.5rem;border:1px solid rgba(10,31,71,.1);border-radius:18px;background:#fff;box-shadow:0 10px 26px rgba(10,31,71,.07)}
.council-card::before{content:"";position:absolute;inset:0 0 auto;height:5px;background:var(--brand)}
.council-card:nth-child(2)::before,.council-card:nth-child(4)::before{background:#d83b38}
.council-card:nth-child(5)::before{background:#f4b400}
.council-card:nth-child(6)::before{background:#2380d9}
.council-role{display:block;margin-bottom:.85rem;color:var(--brand);font-family:var(--font-head);font-size:.75rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.council-card h3{margin-top:1rem;color:var(--navy-deep);font-family:var(--font-head);font-size:1.04rem;line-height:1.25}.council-card h3:first-of-type{margin-top:0}.council-card h3 small{font-size:.76em;font-weight:600}.council-card p{margin-top:.2rem;color:var(--muted);font-size:.86rem}.council-card p small{font-size:1em}

/* ---- Hosted (Zoho) form embeds ---- */
.form-embed{max-width:880px;margin:2rem auto 0;border:1px solid rgba(10,31,71,.1);border-radius:18px;background:#fff;box-shadow:0 10px 26px rgba(10,31,71,.07);overflow:hidden}
/* The form is on another origin, so its height cannot be measured from here. Give it room
   rather than letting it scroll inside its own little window. */
.form-embed iframe{display:block;width:100%;height:760px;border:0}
.form-fallback{max-width:880px;margin:.9rem auto 0;color:var(--muted);font-size:.86rem;text-align:center}
.form-fallback a{color:var(--brand);font-weight:600;text-decoration:underline}
/* On the admissions page the embed sits in the two-column shell beside the aside. The
   embed and its fallback share one wrapper so the grid still sees exactly two children. */
.application-col{min-width:0}
.application-embed{margin-top:0;max-width:none;width:100%}
.application-shell .form-fallback{max-width:none;text-align:left}
@media(max-width:640px){
  /* fields stack on narrow screens, so the form runs taller */
  .form-embed iframe{height:940px}
}

/* ---- Alumni profiles ---- */
.alumni-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.35rem;margin-top:2rem}
.alumni-card{position:relative;overflow:hidden;padding:1.6rem 1.5rem;border:1px solid rgba(10,31,71,.1);border-radius:18px;background:#fff;box-shadow:0 10px 26px rgba(10,31,71,.07)}
.alumni-card::before{content:"";position:absolute;inset:0 0 auto;height:5px;background:var(--brand)}
.alumni-card:nth-child(3n+2)::before{background:var(--gold)}
.alumni-card:nth-child(3n)::before{background:var(--navy)}
/* no alumni photographs yet, so initials stand in  swap for <img> when supplied */
.alumni-avatar{display:grid;place-items:center;width:56px;height:56px;margin-bottom:.9rem;border-radius:50%;background:var(--cream-2);color:var(--navy-deep);font-family:var(--font-head);font-weight:800;font-size:1.05rem;letter-spacing:.04em}
.alumni-card h3{color:var(--navy-deep);font-family:var(--font-head);font-size:1.08rem;line-height:1.25}
.alumni-batch{display:inline-block;margin-top:.35rem;padding:.2rem .6rem;border-radius:999px;background:var(--cream-2);color:var(--brand);font-family:var(--font-head);font-size:.7rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.alumni-card p{margin-top:.7rem;color:var(--muted);font-size:.88rem;line-height:1.6}

/* ---- Result analysis / school toppers ---- */
.topper-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem;margin-top:2rem;max-width:760px;margin-left:auto;margin-right:auto}
.topper-card{position:relative;overflow:hidden;padding:2rem 1.5rem 1.6rem;border:1px solid rgba(10,31,71,.1);border-radius:18px;background:#fff;box-shadow:0 10px 26px rgba(10,31,71,.07);text-align:center}
.topper-card::before{content:"";position:absolute;inset:0 0 auto;height:5px;background:var(--brand)}
.topper-card:nth-child(2)::before{background:var(--gold)}
.topper-rank{display:inline-block;margin-bottom:1rem;padding:.26rem .8rem;border-radius:999px;background:var(--brand);color:#fff;font-family:var(--font-head);font-size:.68rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.topper-card:nth-child(2) .topper-rank{background:var(--gold);color:var(--navy-deep)}
.topper-photo{width:104px;height:104px;margin:0 auto .9rem;border-radius:50%;overflow:hidden;background:var(--cream-2);box-shadow:0 0 0 4px #fff,0 0 0 6px rgba(27,122,61,.25)}
.topper-card:nth-child(2) .topper-photo{box-shadow:0 0 0 4px #fff,0 0 0 6px rgba(244,180,0,.35)}
/* portraits are taller than wide  cover keeps the face centred in the circle */
.topper-photo img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block}
.topper-class{display:block;color:var(--brand);font-family:var(--font-head);font-size:.74rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.topper-card h3{margin-top:.3rem;color:var(--navy-deep);font-family:var(--font-head);font-size:1.25rem;line-height:1.25}
.topper-mark{margin-top:.6rem;font-family:var(--font-head);color:var(--navy-deep);line-height:1}
.topper-mark b{font-size:2rem;font-weight:800}
.topper-mark span{margin-left:.2rem;color:var(--muted);font-size:1rem;font-weight:600}
.topper-pct{margin-top:.35rem;color:var(--brand);font-family:var(--font-head);font-size:.9rem;font-weight:700}

.house-card img{
  width:100%;
  height:100%;
  min-height:390px;
  object-fit:cover;
  transition:transform .45s ease;
}

.house-card::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,transparent 18%,rgba(7,25,52,.95) 92%);
  border-top:7px solid var(--house-color);
}

.house-card .house-copy{
  position:absolute;
  z-index:1;
  right:0;
  bottom:0;
  left:0;
  padding:1.5rem;
  color:#fff;
}

.house-card h3{color:#fff;font-size:1.35rem}
.house-card p{margin-top:.5rem;color:rgba(255,255,255,.82);font-size:.87rem}
.house-card:hover img{transform:scale(1.04)}

.gallery-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  grid-auto-rows:190px;
  gap:.8rem;
}

.gallery-item{
  position:relative;
  overflow:hidden;
  border-radius:8px;
  background:var(--navy-deep);
}

.gallery-item.wide{grid-column:span 2}
.gallery-item.tall{grid-row:span 2}
.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease,filter .4s ease}
.gallery-item::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(7,25,52,.75));opacity:0;transition:opacity .25s ease}
.gallery-item span{position:absolute;z-index:1;left:1rem;bottom:.8rem;color:#fff;font-family:var(--font-head);font-size:.82rem;font-weight:700;opacity:0;transform:translateY(8px);transition:opacity .25s ease,transform .25s ease}
.gallery-item:hover img{transform:scale(1.05);filter:saturate(1.08)}
.gallery-item:hover::after,.gallery-item:hover span{opacity:1}
.gallery-item:hover span{transform:none}

/* Admissions and careers. */
.process-grid,
.role-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1.15rem;
}

.process-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.process-grid .info-card{height:100%}

.role-card{
  position:relative;
  min-width:0;
  min-height:285px;
  padding:1.6rem;
  overflow:hidden;
  border:1px solid rgba(15,42,94,.12);
  border-radius:8px;
  background:#fff;
  box-shadow:0 12px 28px rgba(10,31,71,.08);
  transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;
}

.role-card::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:5px;
  background:var(--brand);
}

.role-card:nth-child(2)::before{background:var(--gold)}
.role-card:nth-child(3)::before{background:var(--navy)}

.role-icon{
  display:grid;
  place-items:center;
  width:52px;
  height:52px;
  margin-bottom:1.15rem;
  border-radius:8px;
  background:var(--cream-2);
  color:var(--brand);
  transition:transform .25s ease,background .25s ease,color .25s ease;
}

.role-icon svg{width:27px;height:27px}
.role-card h3{color:var(--navy-deep);font-family:var(--font-head);font-size:1.14rem;line-height:1.3;letter-spacing:0}
.role-card p{margin-top:.65rem;color:var(--muted);font-size:.88rem}
.role-meta{
  display:inline-block;
  margin-top:1.1rem;
  padding:.28rem .62rem;
  border-radius:999px;
  background:var(--cream);
  color:var(--brand-dark);
  font-family:var(--font-head);
  font-size:.68rem;
  font-weight:700;
}

.application-shell{
  display:grid;
  grid-template-columns:minmax(270px,.72fr) minmax(520px,1.28fr);
  gap:2.4rem;
  align-items:start;
}

.application-aside{min-width:0;padding-top:.5rem}
.application-aside h2{
  margin:.55rem 0 1rem;
  color:var(--navy-deep);
  font-family:var(--font-head);
  font-size:2.2rem;
  font-weight:800;
  line-height:1.15;
  letter-spacing:0;
}
.application-aside h2 .accent{color:var(--brand)}
.application-aside > p{color:var(--muted)}

.application-points{--list-icon:var(--icon-document);display:grid;gap:.78rem;margin-top:1.35rem;list-style:none}
.application-points li{
  position:relative;
  padding:.8rem .85rem .8rem 2.75rem;
  border:1px solid rgba(15,42,94,.1);
  border-radius:8px;
  background:rgba(255,255,255,.68);
}
.application-points li::before{
  content:"";
  position:absolute;
  top:50%;
  left:1rem;
  width:22px;
  height:22px;
  background-color:var(--brand);
  -webkit-mask:var(--item-icon,var(--list-icon)) center/contain no-repeat;
  mask:var(--item-icon,var(--list-icon)) center/contain no-repeat;
  transform:translateY(-50%);
}
.application-points b{display:block;color:var(--navy-deep);font-family:var(--font-head);font-size:.86rem}
.application-points span{display:block;margin-top:.15rem;color:var(--muted);font-size:.78rem;line-height:1.5}
.application-points a{color:var(--brand-dark);font-weight:700}

.application-form{
  min-width:0;
  padding:2rem;
  border:1px solid rgba(15,42,94,.12);
  border-top:6px solid var(--gold);
  border-radius:8px;
  background:#fff;
  box-shadow:0 20px 45px rgba(10,31,71,.12);
}

.form-heading{margin-bottom:1.35rem}
.form-heading .form-label{color:var(--brand);font-family:var(--font-head);font-size:.72rem;font-weight:800;text-transform:uppercase}
.form-heading h2{margin:.25rem 0 .35rem;color:var(--navy-deep);font-family:var(--font-head);font-size:1.55rem;line-height:1.2;letter-spacing:0}
.form-heading p{color:var(--muted);font-size:.8rem}

.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem 1.1rem}
.form-field{display:flex;min-width:0;flex-direction:column;gap:.42rem}
.form-field--full{grid-column:1/-1}
.form-field label{color:var(--navy-deep);font-family:var(--font-head);font-size:.78rem;font-weight:700}
.form-field label span{color:#b72e2e}
.form-field input,
.form-field select,
.form-field textarea{
  width:100%;
  min-width:0;
  border:1px solid rgba(15,42,94,.2);
  border-radius:6px;
  background:#fff;
  color:var(--ink);
  font:inherit;
  font-size:.9rem;
  transition:border-color .2s ease,box-shadow .2s ease,background .2s ease;
}
.form-field input,
.form-field select{min-height:48px;padding:.68rem .78rem}
.form-field textarea{min-height:120px;padding:.75rem .8rem;resize:vertical}
.form-field input[type="file"]{padding:.55rem;background:var(--cream)}
.form-field input[type="file"]::file-selector-button{
  margin-right:.7rem;
  padding:.45rem .7rem;
  border:0;
  border-radius:5px;
  background:var(--navy-deep);
  color:#fff;
  font-family:var(--font-head);
  font-size:.72rem;
  font-weight:700;
  cursor:pointer;
}
.form-field input:hover,
.form-field select:hover,
.form-field textarea:hover{border-color:rgba(27,122,61,.45)}
.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus{border-color:var(--brand);outline:0;box-shadow:0 0 0 4px rgba(27,122,61,.11);background:#fff}
.form-field small{color:var(--muted);font-size:.7rem}

.form-consent{display:flex;align-items:flex-start;gap:.65rem;margin-top:1rem;color:var(--muted);font-size:.78rem;line-height:1.5;cursor:pointer}
.form-consent input{width:18px;height:18px;margin-top:1px;accent-color:var(--brand);flex:none}
.form-actions{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-top:1.3rem}
.form-actions .btn{border:0;cursor:pointer}
.form-status{display:none;max-width:420px;padding:.7rem .85rem;border-left:4px solid var(--brand);border-radius:5px;background:#edf8f0;color:var(--brand-dark);font-size:.78rem;font-weight:600}
.form-status.show{display:block;animation:formStatusIn .3s ease both}

@keyframes formStatusIn{
  from{opacity:0;transform:translateY(6px)}
  to{opacity:1;transform:none}
}

@media(hover:hover) and (pointer:fine){
  .role-card:hover{transform:translateY(-6px);border-color:rgba(27,122,61,.3);box-shadow:0 22px 40px rgba(10,31,71,.14)}
  .role-card:hover .role-icon{transform:translateY(-3px) rotate(-4deg);background:var(--brand);color:#fff}
}


.contact-card a{
  display:inline-block;
  margin-top:.55rem;
  color:var(--brand);
  font-weight:700;
  overflow-wrap:anywhere;
}

.contact-layout{
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(380px,1.1fr);
  gap:2rem;
  align-items:stretch;
}

.visit-panel{
  padding:2rem;
  border-radius:8px;
  background:var(--navy-deep);
  color:#fff;
}

.visit-panel h2{color:var(--gold);font-family:var(--font-head);font-size:2.2rem;font-weight:800;line-height:1.15;letter-spacing:0}
/* The panel is navy and the QR's modules are navy too, so the code sits on its own white
   plate. The padding doubles as the quiet zone scanners need to lock on. */
.map-qr{display:flex;align-items:center;gap:1rem;margin-top:1.6rem;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.16)}
.map-qr a{display:block;flex:none;background:#fff;padding:.55rem;border-radius:10px;line-height:0}
.map-qr img{display:block;width:104px;height:104px}
.map-qr p{margin:0;color:#fff;font-family:var(--font-head);font-weight:700;font-size:.95rem;line-height:1.3}
.map-qr p span{display:block;margin-top:.25rem;color:rgba(255,255,255,.72);font-family:var(--font-body,inherit);font-weight:500;font-size:.82rem}
.visit-panel p{margin-top:.75rem;color:rgba(255,255,255,.82)}
.visit-panel .btn{margin-top:1.35rem}

.map-panel{
  min-height:360px;
  display:grid;
  place-items:center;
  padding:2rem;
  border:1px solid rgba(15,42,94,.12);
  border-radius:8px;
  background:linear-gradient(135deg,var(--cream-2),#fff);
  text-align:center;
}

/* when the panel holds the live Google map, let it fill edge-to-edge */
.map-panel:has(iframe){padding:0;overflow:hidden}
.map-panel iframe{display:block;width:100%;height:100%;min-height:360px;border:0}

.map-pin{
  display:grid;
  place-items:center;
  width:74px;
  height:74px;
  margin:0 auto 1rem;
  border-radius:50%;
  background:var(--brand);
  color:#fff;
  box-shadow:0 0 0 10px rgba(27,122,61,.12);
}

.map-pin svg{width:32px;height:32px}
.map-panel h3{font-family:var(--font-head);color:var(--navy-deep);font-size:1.25rem;letter-spacing:0}
.map-panel p{margin:.6rem auto 1.2rem;max-width:460px;color:var(--muted)}

.next-cta{
  background:linear-gradient(100deg,var(--brand-dark),var(--brand));
  color:#fff;
}

.next-cta .wrap{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1.5rem;
  padding-top:2rem;
  padding-bottom:2rem;
}

.next-cta h2{font-family:var(--font-head);font-size:1.55rem;line-height:1.2;letter-spacing:0}
.next-cta p{margin-top:.35rem;color:rgba(255,255,255,.78)}
.next-cta .btn{flex:none}

@media(max-width:1100px){
  .inner-hero h1{font-size:2.65rem}
  .content-grid,.values-grid,.facility-grid,.alumni-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .feature-line{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .intro-split,.content-split{gap:2.2rem}
  .process-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .application-shell{grid-template-columns:minmax(240px,.65fr) minmax(460px,1.35fr);gap:1.6rem}
}

@media(max-width:900px){
  .inner-hero{min-height:400px}
  .inner-hero h1{font-size:2.3rem}
  .intro-split,.content-split,.contact-layout,.application-shell{grid-template-columns:1fr;gap:2rem}
  .content-split.reverse .media{order:0}
  .media{width:100%;max-width:650px}
  .contact-cards{grid-template-columns:1fr}
  .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .application-aside{max-width:720px;padding-top:0}
  .application-form{max-width:none}
  .role-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .role-grid .role-card:last-child{grid-column:1/-1;min-height:0}
}

@media(max-width:700px){
  .inner-hero{min-height:360px;background-image:linear-gradient(rgba(7,25,52,.42),rgba(7,25,52,.42)),var(--hero-image)}
  .inner-hero .wrap{padding-top:4rem;padding-bottom:3rem}
  .inner-hero h1{font-size:1.95rem}
  .inner-hero p{font-size:.94rem}
  .band-heading h2,.copy h2{font-size:1.75rem}
  .content-grid,.values-grid,.stage-grid,.facility-grid,.house-grid,.council-grid,.topper-grid,.alumni-grid{grid-template-columns:1fr}
  .fact-row{grid-template-columns:1fr}
  .check-list{grid-template-columns:1fr}
  .feature-line{grid-template-columns:1fr}
  .feature-line article{min-height:auto}
  .stage-card{padding-left:1.4rem;padding-top:5.2rem}
  .stage-card .stage-no{top:1.25rem}
  .facility-card,.facility-card img{min-height:330px}
  .house-card,.house-card img{min-height:330px}
  .gallery-grid{grid-auto-rows:170px}
  .gallery-item.wide{grid-column:span 1}
  .process-grid,.role-grid,.form-grid{grid-template-columns:1fr}
  .role-grid .role-card:last-child{grid-column:auto}
  .form-field--full{grid-column:auto}
  .application-aside h2{font-size:1.9rem}
  .application-form{padding:1.4rem}
  .next-cta .wrap{align-items:flex-start;flex-direction:column}
  .next-cta .btn{width:100%;justify-content:center}
}

@media(max-width:460px){
  .inner-hero{min-height:340px}
  .inner-hero h1{font-size:1.72rem}
  .breadcrumb{font-size:.75rem}
  .inner-kicker{font-size:.7rem}
  .band-heading h2,.copy h2{font-size:1.55rem}
  .media img{min-height:260px}
  .media-note{position:static;max-width:none;border-radius:0 0 6px 6px}
  .quote-band{padding:1.6rem 1.25rem}
  .gallery-grid{grid-template-columns:1fr;grid-auto-rows:220px}
  .gallery-item.tall{grid-row:span 1}
  .visit-panel,.map-panel{padding:1.4rem}
  .application-form{padding:1.15rem}
  .form-actions{align-items:stretch;flex-direction:column}
  .form-actions .btn{width:100%;justify-content:center}
  .form-status{max-width:none;width:100%}
}

/* Inner-page cards use complete outlines instead of side or top accent bars. */
.inner-page .fact{
  border:2px solid rgba(244,180,0,.5);
  border-radius:12px;
}

.inner-page.page-about .fact{
  border-color:color-mix(in srgb,var(--fact-accent) 48%,#fff);
}

.inner-page .info-card,
.inner-page .value-panel,
.inner-page .stage-card,
.inner-page .contact-card,
.inner-page .role-card{
  border:2px solid rgba(27,122,61,.24);
  border-radius:12px;
}

.inner-page .info-card:nth-child(3n+2),
.inner-page .stage-card:nth-child(3n+2),
.inner-page .role-card:nth-child(2){border-color:rgba(244,180,0,.48)}

.inner-page .info-card:nth-child(3n),
.inner-page .stage-card:nth-child(3n),
.inner-page .role-card:nth-child(3){border-color:rgba(15,42,94,.32)}

.inner-page .info-card::before,
.inner-page .value-panel::before,
.inner-page .stage-card::before,
.inner-page .contact-card::before,
.inner-page .role-card::before{display:none}

.inner-page.page-achievements .achievement-areas .info-card{
  border-color:color-mix(in srgb,var(--card-accent) 42%,#fff);
}

.inner-page .media-note,
.inner-page.page-about .story-year,
.inner-page.page-about .profile-badge{
  border:2px solid rgba(244,180,0,.7);
}

.inner-page.page-about .profile-badge{border-color:rgba(27,122,61,.55)}

.inner-page .quote-band{
  border:2px solid rgba(244,180,0,.78);
  border-radius:12px;
}

.inner-page .council-card{
  --council-border:var(--brand);
  border:2px solid color-mix(in srgb,var(--council-border) 38%,#fff);
}

.inner-page .council-card:nth-child(2),
.inner-page .council-card:nth-child(4){--council-border:#d83b38}
.inner-page .council-card:nth-child(5){--council-border:#f4b400}
.inner-page .council-card:nth-child(6){--council-border:#2380d9}
.inner-page .council-card::before{display:none}

.inner-page .house-card{
  border:2px solid var(--house-color);
  border-radius:12px;
}
.inner-page .house-card::after{border-top:0}

.inner-page .application-form{
  border:2px solid rgba(244,180,0,.62);
  border-radius:12px;
}

.inner-page.page-about .about-foundation::before{display:none}

/* Facilities page: interactive cards, icons and section motion. */
.page-facilities .inner-hero .wrap > *{
  opacity:0;
  animation:facilityHeroIn .7s cubic-bezier(.2,.75,.25,1) forwards;
}
.page-facilities .inner-hero .breadcrumb{animation-delay:.06s}
.page-facilities .inner-hero .inner-kicker{animation-delay:.14s}
.page-facilities .inner-hero h1{animation-delay:.22s}
.page-facilities .inner-hero p{animation-delay:.3s}

@keyframes facilityHeroIn{
  from{opacity:0;transform:translateY(22px)}
  to{opacity:1;transform:none}
}

.page-facilities .facility-card{
  border:2px solid rgba(244,180,0,.34);
  border-radius:14px;
  transition:transform .4s cubic-bezier(.2,.75,.25,1),box-shadow .4s ease,border-color .4s ease;
}
.page-facilities .facility-card::after{
  background:linear-gradient(180deg,transparent 48%,rgba(7,25,52,.66) 100%);
  transition:background .4s ease;
}
.page-facilities .facility-card .facility-copy{
  text-shadow:0 2px 9px rgba(3,15,36,.68);
  transition:transform .4s cubic-bezier(.2,.75,.25,1);
}
.page-facilities .facility-card .tag{transition:transform .3s ease,background .3s ease}
.page-facilities .facility-card:hover{
  transform:translateY(-10px);
  border-color:var(--gold);
  box-shadow:0 28px 54px rgba(10,31,71,.2);
}
.page-facilities .facility-card:hover::after{
  background:linear-gradient(180deg,transparent 42%,rgba(7,25,52,.74) 100%);
}
.page-facilities .facility-card:hover img{transform:scale(1.085)}
.page-facilities .facility-card:hover .facility-copy{transform:translateY(-7px)}
.page-facilities .facility-card:hover .tag{transform:translateY(-2px);background:#ffd047}

.page-facilities #student-care .feature-line article{
  transition:background .3s ease,box-shadow .3s ease,transform .3s ease;
}
.page-facilities #student-care .feature-line article:hover{
  position:relative;
  z-index:1;
  transform:translateY(-4px);
  background:rgba(255,255,255,.15);
  box-shadow:0 16px 30px rgba(3,22,12,.2);
}

.page-facilities .fac-tab .ic{transition:transform .3s ease,background .3s ease,color .3s ease}
.page-facilities .fac-tab:hover .ic{transform:rotate(-6deg) scale(1.08)}
.page-facilities .fac-stage .layer .scrim{display:none}
.page-facilities .fac-stage .layer .panel{text-shadow:0 2px 10px rgba(3,15,36,.78)}
.page-facilities .fac-stage .layer li svg{display:none}
.page-facilities .fac-stage .layer li::before{
  content:"";
  flex:0 0 18px;
  width:18px;
  height:18px;
  background-color:var(--gold);
  -webkit-mask:var(--item-icon,var(--icon-target)) center/contain no-repeat;
  mask:var(--item-icon,var(--icon-target)) center/contain no-repeat;
}
.page-facilities .fac-stage .layer.active > img{animation:facilityStageImage .7s ease both}
.page-facilities .fac-stage .layer.active .panel > *{animation:facilityStageCopy .55s ease both}
.page-facilities .fac-stage .layer.active .panel > :nth-child(2){animation-delay:.07s}
.page-facilities .fac-stage .layer.active .panel > :nth-child(3){animation-delay:.14s}
.page-facilities .fac-stage .layer.active .panel > :nth-child(4){animation-delay:.21s}

@keyframes facilityStageImage{
  from{transform:scale(1.045);filter:saturate(.82)}
  to{transform:none;filter:none}
}
@keyframes facilityStageCopy{
  from{opacity:0;transform:translateY(16px)}
  to{opacity:1;transform:none}
}

.page-facilities #safety .check-list li{
  display:flex;
  align-items:center;
  gap:.75rem;
  min-height:68px;
  padding:.72rem .85rem;
  border:2px solid rgba(27,122,61,.18);
  border-radius:12px;
  background:rgba(255,255,255,.82);
  transition:transform .3s cubic-bezier(.2,.75,.25,1),border-color .3s ease,background .3s ease,box-shadow .3s ease;
}
.page-facilities #safety .check-list li::before{display:none}
.page-facilities #safety .safety-icon{
  display:grid;
  place-items:center;
  flex:0 0 42px;
  width:42px;
  height:42px;
  border-radius:11px;
  background:rgba(27,122,61,.1);
  color:var(--brand);
  transition:transform .3s ease,background .3s ease,color .3s ease,box-shadow .3s ease;
}
.page-facilities #safety .safety-icon svg{
  width:23px;
  height:23px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.9;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.page-facilities #safety .check-list li:hover{
  transform:translateY(-6px);
  border-color:rgba(27,122,61,.5);
  background:#fff;
  box-shadow:0 16px 30px rgba(10,31,71,.12);
}
.page-facilities #safety .check-list li:hover .safety-icon{
  transform:rotate(-6deg) scale(1.08);
  background:var(--brand);
  color:#fff;
  box-shadow:0 10px 20px rgba(27,122,61,.24);
}
.page-facilities #safety .media img{
  transition:transform .55s cubic-bezier(.2,.75,.25,1),filter .4s ease,box-shadow .4s ease;
}
.page-facilities #safety .media:hover img{
  transform:scale(1.025);
  filter:saturate(1.08);
  box-shadow:0 28px 55px rgba(10,31,71,.2);
}

/* House System page: expressive house colours and interactive leadership cards. */
.page-house-system .inner-hero .wrap > *{
  opacity:0;
  animation:houseHeroIn .7s cubic-bezier(.2,.75,.25,1) forwards;
}
.page-house-system .inner-hero .breadcrumb{animation-delay:.06s}
.page-house-system .inner-hero .inner-kicker{animation-delay:.14s}
.page-house-system .inner-hero h1{animation-delay:.22s}
.page-house-system .inner-hero p{animation-delay:.3s}

@keyframes houseHeroIn{
  from{opacity:0;transform:translateY(22px)}
  to{opacity:1;transform:none}
}

.page-house-system .house-intro{
  overflow:hidden;
  background:
    radial-gradient(circle at 8% 18%,rgba(27,122,61,.08),transparent 26%),
    linear-gradient(180deg,var(--cream),#fffaf1);
}
.page-house-system .house-intro .check-list li{
  display:flex;
  align-items:center;
  gap:.7rem;
  min-height:62px;
  padding:.65rem .78rem;
  transition:transform .28s ease,border-color .28s ease,background .28s ease,box-shadow .28s ease;
}
.page-house-system .house-intro .check-list li::before{display:none}
.page-house-system .house-intro .house-value-icon{
  display:grid;
  place-items:center;
  flex:0 0 38px;
  width:38px;
  height:38px;
  border-radius:10px;
  background:rgba(27,122,61,.1);
  color:var(--brand);
  transition:transform .28s ease,background .28s ease,color .28s ease,box-shadow .28s ease;
}
.page-house-system .house-intro .house-value-icon svg{
  width:21px;
  height:21px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.9;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.page-house-system .house-intro .check-list li:hover{
  transform:translateY(-5px);
  border-color:rgba(27,122,61,.45);
  background:#fff;
  box-shadow:0 13px 26px rgba(10,31,71,.1);
}
.page-house-system .house-intro .check-list li:hover .house-value-icon{
  transform:rotate(-6deg) scale(1.08);
  background:var(--brand);
  color:#fff;
  box-shadow:0 9px 18px rgba(27,122,61,.23);
}
.page-house-system .house-intro .media img{
  transition:transform .55s cubic-bezier(.2,.75,.25,1),filter .4s ease,box-shadow .4s ease;
}
.page-house-system .house-intro .media:hover img{
  transform:scale(1.025);
  filter:saturate(1.08);
  box-shadow:0 28px 55px rgba(10,31,71,.2);
}
.page-house-system .house-intro .media-note{transition:transform .35s ease,background .35s ease}
.page-house-system .house-intro .media:hover .media-note{transform:translateY(-7px);background:var(--brand-dark)}

.page-house-system .house-council{
  background:
    radial-gradient(circle at 92% 8%,rgba(244,180,0,.11),transparent 25%),
    var(--cream);
}
.page-house-system .council-card{
  isolation:isolate;
  transition:transform .38s cubic-bezier(.2,.75,.25,1),border-color .38s ease,box-shadow .38s ease,background .38s ease;
}
.page-house-system .council-card::after{
  content:"";
  position:absolute;
  z-index:-1;
  top:-58px;
  right:-60px;
  width:135px;
  height:135px;
  border-radius:50%;
  background:color-mix(in srgb,var(--council-border) 10%,transparent);
  transition:transform .45s ease;
}
.page-house-system .council-card > *{position:relative;z-index:1}
.page-house-system .council-card:hover{
  transform:translateY(-10px);
  border-color:var(--council-border);
  background:#fff;
  box-shadow:0 26px 50px rgba(10,31,71,.15);
}
.page-house-system .council-card:hover::after{transform:scale(1.5)}
.page-house-system .council-role{
  display:inline-flex;
  margin-bottom:1rem;
  padding:.34rem .68rem;
  border-radius:999px;
  background:color-mix(in srgb,var(--council-border) 12%,#fff);
  color:var(--council-border);
  transition:transform .3s ease,background .3s ease,color .3s ease;
}
.page-house-system .council-card:hover .council-role{
  transform:translateY(-2px);
  background:var(--council-border);
  color:#fff;
}
.page-house-system .council-card h3{transition:color .28s ease}
.page-house-system .council-card:hover h3{color:var(--council-border)}

.page-house-system .house-values .feature-line article{
  transition:transform .3s ease,background .3s ease,box-shadow .3s ease;
}
.page-house-system .house-values .feature-line article:hover{
  position:relative;
  z-index:1;
  transform:translateY(-5px);
  background:rgba(255,255,255,.14);
  box-shadow:0 16px 30px rgba(2,15,35,.22);
}

/* Gallery page: dense responsive mosaic, filters and image viewer. */
.page-gallery .inner-hero .wrap > *{
  opacity:0;
  animation:galleryHeroIn .7s cubic-bezier(.2,.75,.25,1) forwards;
}
.page-gallery .inner-hero .breadcrumb{animation-delay:.06s}
.page-gallery .inner-hero .inner-kicker{animation-delay:.14s}
.page-gallery .inner-hero h1{animation-delay:.22s}
.page-gallery .inner-hero p{animation-delay:.3s}

@keyframes galleryHeroIn{
  from{opacity:0;transform:translateY(22px)}
  to{opacity:1;transform:none}
}

.page-gallery .gallery-section{
  background:
    radial-gradient(circle at 92% 5%,rgba(244,180,0,.12),transparent 22%),
    linear-gradient(180deg,var(--cream),#fffaf1);
}
.page-gallery .gallery-filters{
  display:flex;
  justify-content:center;
  gap:.55rem;
  flex-wrap:wrap;
  margin:-.5rem 0 2rem;
}
.page-gallery .gallery-filters button{
  padding:.55rem .9rem;
  border:1px solid rgba(15,42,94,.15);
  border-radius:999px;
  background:#fff;
  color:var(--navy-deep);
  cursor:pointer;
  font-family:var(--font-head);
  font-size:.78rem;
  font-weight:700;
  transition:transform .25s ease,background .25s ease,color .25s ease,border-color .25s ease,box-shadow .25s ease;
}
.page-gallery .gallery-filters button:hover{
  transform:translateY(-3px);
  border-color:rgba(27,122,61,.4);
  box-shadow:0 10px 20px rgba(10,31,71,.09);
}
.page-gallery .gallery-filters button.active{
  border-color:var(--brand);
  background:var(--brand);
  color:#fff;
  box-shadow:0 10px 22px rgba(27,122,61,.22);
}
.page-gallery .gallery-grid{
  grid-template-columns:repeat(4,minmax(0,1fr));
  grid-auto-flow:dense;
  grid-auto-rows:210px;
  gap:1rem;
}
.page-gallery .gallery-item{
  margin:0;
  border:2px solid rgba(255,255,255,.9);
  border-radius:14px;
  cursor:zoom-in;
  box-shadow:0 12px 28px rgba(10,31,71,.11);
  transition:transform .38s cubic-bezier(.2,.75,.25,1),border-color .38s ease,box-shadow .38s ease;
}
.page-gallery .gallery-item[hidden]{display:none!important}
.page-gallery .gallery-grid.in .gallery-item:not([hidden]){
  animation:galleryTileIn .55s cubic-bezier(.2,.75,.25,1) both;
  animation-delay:var(--gallery-delay,0ms);
}
.page-gallery .gallery-item::after{
  background:linear-gradient(180deg,rgba(7,25,52,.02) 35%,rgba(7,25,52,.84) 100%);
  opacity:1;
}
.page-gallery .gallery-item span{
  right:1rem;
  bottom:1rem;
  left:1rem;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
  opacity:1;
  transform:none;
  font-size:.86rem;
}
.page-gallery .gallery-item span::after{
  content:"+";
  display:grid;
  place-items:center;
  flex:0 0 30px;
  width:30px;
  height:30px;
  border:1px solid rgba(255,255,255,.5);
  border-radius:50%;
  background:rgba(255,255,255,.16);
  font-size:1.2rem;
  line-height:1;
  backdrop-filter:blur(5px);
  -webkit-backdrop-filter:blur(5px);
  transition:transform .3s ease,background .3s ease,color .3s ease;
}
.page-gallery .gallery-item:hover,
.page-gallery .gallery-item:focus-visible{
  z-index:2;
  transform:translateY(-8px);
  border-color:var(--gold);
  outline:none;
  box-shadow:0 26px 50px rgba(10,31,71,.2);
}
.page-gallery .gallery-item:hover img,
.page-gallery .gallery-item:focus-visible img{transform:scale(1.075);filter:saturate(1.1)}
.page-gallery .gallery-item:hover span::after,
.page-gallery .gallery-item:focus-visible span::after{
  transform:rotate(90deg) scale(1.08);
  background:var(--gold);
  color:var(--navy-deep);
}

.page-careers #career-overview .check-list li{
  display:flex;
  align-items:center;
  gap:.72rem;
  min-height:62px;
  padding:.65rem .78rem;
  border:2px solid rgba(27,122,61,.18);
  border-radius:12px;
  background:rgba(255,255,255,.82);
  transition:transform .28s ease,border-color .28s ease,background .28s ease,box-shadow .28s ease;
}
.page-careers #career-overview .check-list li::before{display:none}
.page-careers #career-overview .career-value-icon{
  display:grid;
  place-items:center;
  flex:0 0 40px;
  width:40px;
  height:40px;
  border-radius:10px;
  background:rgba(27,122,61,.1);
  color:var(--brand);
  transition:transform .28s ease,background .28s ease,color .28s ease,box-shadow .28s ease;
}
.page-careers #career-overview .career-value-icon svg{
  width:22px;
  height:22px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.9;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.page-careers #career-overview .check-list li:hover{
  transform:translateY(-5px);
  border-color:rgba(27,122,61,.48);
  background:#fff;
  box-shadow:0 14px 28px rgba(10,31,71,.11);
}
.page-careers #career-overview .check-list li:hover .career-value-icon{
  transform:rotate(-6deg) scale(1.08);
  background:var(--brand);
  color:#fff;
  box-shadow:0 9px 18px rgba(27,122,61,.24);
}

@keyframes galleryTileIn{
  from{opacity:0;transform:translateY(22px) scale(.97)}
  to{opacity:1;transform:none}
}

.gallery-lightbox{
  position:fixed;
  z-index:200;
  inset:0;
  display:grid;
  grid-template-columns:72px minmax(0,1fr) 72px;
  align-items:center;
  padding:2rem;
  background:rgba(3,14,32,.93);
  opacity:0;
  visibility:hidden;
  transition:opacity .25s ease,visibility .25s ease;
}
.gallery-lightbox[hidden]{display:none}
.gallery-lightbox.show{opacity:1;visibility:visible}
.gallery-lightbox figure{
  display:flex;
  min-width:0;
  max-width:1120px;
  max-height:calc(100vh - 4rem);
  margin:auto;
  flex-direction:column;
  align-items:center;
  gap:.8rem;
}
.gallery-lightbox figure img{
  width:auto;
  max-width:100%;
  max-height:calc(100vh - 8rem);
  border:2px solid rgba(255,255,255,.22);
  border-radius:14px;
  object-fit:contain;
  box-shadow:0 30px 70px rgba(0,0,0,.45);
}
.gallery-lightbox figcaption{
  color:#fff;
  font-family:var(--font-head);
  font-size:.95rem;
  font-weight:700;
  text-align:center;
}
.gallery-lightbox button{
  display:grid;
  place-items:center;
  width:50px;
  height:50px;
  border:1px solid rgba(255,255,255,.28);
  border-radius:50%;
  background:rgba(255,255,255,.1);
  color:#fff;
  cursor:pointer;
  font-size:2rem;
  line-height:1;
  transition:transform .25s ease,background .25s ease,color .25s ease;
}
.gallery-lightbox button:hover{transform:scale(1.08);background:var(--gold);color:var(--navy-deep)}
.gallery-lightbox-close{position:absolute;top:1rem;right:1rem}
.gallery-lightbox-nav.prev{justify-self:start}
.gallery-lightbox-nav.next{justify-self:end}
body.gallery-open{overflow:hidden}

@media(max-width:1100px){
  .page-gallery .gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:200px}
}
@media(max-width:900px){
  .page-gallery .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:190px}
}
@media(max-width:560px){
  .page-gallery .gallery-filters{justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto;padding:.2rem .1rem .7rem;scrollbar-width:none}
  .page-gallery .gallery-filters::-webkit-scrollbar{display:none}
  .page-gallery .gallery-filters button{flex:0 0 auto}
  .page-gallery .gallery-grid{grid-template-columns:1fr;grid-auto-rows:235px}
  .page-gallery .gallery-item.wide{grid-column:span 1}
  .page-gallery .gallery-item.tall{grid-row:span 1}
  .gallery-lightbox{grid-template-columns:52px minmax(0,1fr) 52px;padding:1rem .4rem}
  .gallery-lightbox button{width:42px;height:42px}
  .gallery-lightbox figure img{max-height:calc(100vh - 9rem)}
}

@media(prefers-reduced-motion:reduce){
  .info-card,.value-panel,.stage-card,.contact-card,.role-card,.role-icon,.facility-card img,.house-card img,.gallery-item img{transition:none}
  .form-status.show{animation:none}
  .page-achievements .inner-hero .wrap > *{opacity:1;animation:none}
  .page-achievements .fact,
  .page-achievements .fact::after,
  .page-achievements .achievement-intro .media img,
  .page-achievements .achievement-intro .media-note,
  .page-achievements .achievement-areas .info-card::before,
  .page-achievements .achievement-areas .info-card::after,
  .page-achievements .achievement-areas .card-index,
  .page-achievements .achievement-milestones .check-list li,
  .page-achievements .achievement-milestones .quote-band,
  .page-achievements .achievement-milestones .quote-band::before{transition:none}
  .page-facilities .inner-hero .wrap > *{opacity:1;animation:none}
  .page-facilities .facility-card,
  .page-facilities .facility-card::after,
  .page-facilities .facility-card img,
  .page-facilities .facility-card .facility-copy,
  .page-facilities .facility-card .tag,
  .page-facilities #student-care .feature-line article,
  .page-facilities .fac-tab .ic,
  .page-facilities #safety .check-list li,
  .page-facilities #safety .safety-icon,
  .page-facilities #safety .media img{transition:none}
  .page-facilities .fac-stage .layer.active > img,
  .page-facilities .fac-stage .layer.active .panel > *{animation:none}
  .page-house-system .inner-hero .wrap > *{opacity:1;animation:none}
  .page-house-system .house-intro .check-list li,
  .page-house-system .house-intro .house-value-icon,
  .page-house-system .house-intro .media img,
  .page-house-system .house-intro .media-note,
  .page-house-system .council-card,
  .page-house-system .council-card::after,
  .page-house-system .council-role,
  .page-house-system .house-values .feature-line article{transition:none}
  .page-gallery .inner-hero .wrap > *{opacity:1;animation:none}
  .page-gallery .gallery-filters button,
  .page-gallery .gallery-item,
  .page-gallery .gallery-item img,
  .page-gallery .gallery-item span::after,
  .gallery-lightbox,
  .gallery-lightbox button{transition:none}
  .page-gallery .gallery-grid.in .gallery-item:not([hidden]){animation:none}
  .page-careers #career-overview .check-list li,
  .page-careers #career-overview .career-value-icon{transition:none}
}

@media(max-width:1100px){
  .page-about .about-foundation .values-card .check-list{grid-template-columns:repeat(3,minmax(0,1fr))}
}

@media(min-width:901px) and (max-width:1100px){
  .page-about .fact{
    display:grid;
    grid-template-columns:38px minmax(0,1fr);
    align-items:center;
    gap:.5rem;
    min-height:112px;
    padding:.72rem;
  }
  .page-about .fact-icon{width:38px;height:38px}
  .page-about .fact-icon svg{width:20px;height:20px}
  .page-about .fact-copy{margin-top:0}
  .page-about .fact-copy b{font-size:.88rem}
  .page-about .fact-copy > span{font-size:.66rem}
}

@media(max-width:900px){
  .page-about .inner-hero{min-height:400px}
  .page-about .about-overview .intro-split,
  .page-about .about-history .content-split{grid-template-columns:1fr}
  .page-about .about-overview .media,
  .page-about .about-history .media{max-width:none}
  .page-about .story-year,
  .page-about .profile-badge{left:18px}
  .page-about .about-foundation .values-grid{grid-template-columns:1fr}
  .page-about .about-foundation .values-card{grid-column:auto}
  .page-about .about-foundation .values-card .check-list{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:700px){
  .page-about .fact-row{grid-template-columns:repeat(3,minmax(0,1fr))}
  .page-about .fact{min-height:120px;padding:.85rem}
  .page-about .fact-icon{width:40px;height:40px}
  .page-about .about-photo-main img{min-height:280px}
}

@media(max-width:520px){
  .page-about .fact-row{grid-template-columns:1fr}
  .page-about .fact{
    display:grid;
    grid-template-columns:44px minmax(0,1fr);
    align-items:center;
    gap:.75rem;
    min-height:72px;
    padding:.65rem .8rem;
  }
  .page-about .fact-copy{margin-top:0}
  .page-about .about-collage{padding:0 0 1rem}
  .page-about .about-photo-inset{display:none}
  .page-about .about-collage .media-note{
    position:relative;
    right:auto;
    bottom:auto;
    left:auto;
    max-width:calc(100% - 24px);
    margin:-18px 12px 0;
  }
  .page-about .about-corner--bottom{right:16px;bottom:38px}
  .page-about .about-story-media,
  .page-about .about-profile-media{padding:0 0 .8rem}
  .page-about .about-story-media::after,
  .page-about .about-profile-media::after{right:-8px;bottom:0;width:76%}
  .page-about .story-year,
  .page-about .profile-badge{right:14px;bottom:24px;left:14px;max-width:230px}
  .page-about .about-foundation .mission-card .check-list,
  .page-about .about-foundation .values-card .check-list{grid-template-columns:1fr}
}

@media(prefers-reduced-motion:reduce){
  .page-about .about-hero-content > *{opacity:1;animation:none}
  .page-about .about-photo-main img,
  .page-about .about-photo-inset,
  .page-about .about-photo-inset img,
  .page-about .story-year,
  .page-about .profile-badge,
  .page-about .fact,
  .page-about .fact::after,
  .page-about .foundation-icon,
  .page-about .about-foundation .check-list li{transition:none}
}
