:root {
--navy:#092d67;
--royal:#164d9b;
--blue:#2d67bc;
--ink:#162744;
--cream:#faf6ec;
--beige:#eadcbf;
--sand:#d6b981;
--brown:#8d6333;
--muted:#60708a;
--line:#dbe3ef;
--white:#fff;
--radius:18px;
--shadow:0 18px 45px rgba(9,45,103,.12);
--display:"Cormorant Garamond",Georgia,serif;
--body:"DM Sans",system-ui,sans-serif}
* {
box-sizing:border-box}
html {
scroll-behavior:smooth}
body {
margin:0;
color:var(--ink);
font:15px/1.65 var(--body);
background:linear-gradient(180deg,#fcf8ef 0%,#f5efe0 100%)}

.section-title-light {
color:#fff}
.intro-light {
color:#c9dbf6}
.life-title {
font:700 3.4rem/1 var(--display);
color:var(--navy);
margin:0}
.life-title-accent {
color:var(--brown)}
.life-link {
margin-top:26px}
.contact-wa-link {
margin-top:21px}
.uniform-note {
font-size:.74rem}
.map-label {
position:relative;
z-index:2;
margin-top:95px}
.program-cards-light {
color:#fff}
.program-cards-light .program-card-navy {background:var(--navy) !important}
.program-cards-light .program-card-royal {background:var(--royal) !important}
.program-cards-light .program-card-brown {background:var(--brown) !important}
.program-card-navy .number,
.program-card-royal .number,
.program-card-brown .number {color:#ffd700;opacity:1}
.program-card-navy small,
.program-card-royal small,
.program-card-brown small {color:#fff;opacity:1}
.program-card-navy h3,
.program-card-royal h3,
.program-card-brown h3 {color:#fff}
.program-card-navy p,
.program-card-royal p,
.program-card-brown p {color:#f0f4f8}
.program-card-navy a,
.program-card-royal a,
.program-card-brown a {color:#fff;font-weight:800}
img {
max-width:100%;
display:block}
a {
text-decoration:none;
color:inherit}
button,input,select,textarea {
font:inherit}
.container {
width:min(1140px,calc(100% - 40px));
margin:auto}
.topline {
background:var(--navy);
color:#e5efff;
font-size:.76rem}
.topline .container {
min-height:35px;
display:flex;
justify-content:space-between;
align-items:center;
gap:14px}
.topline a {
opacity:.92}
.topline .quick-links {
display:flex;
gap:16px}
.site-header {
background:#fff;
position:sticky;
top:0;
z-index:30;
border-bottom:1px solid rgba(9,45,103,.08)}
.nav-shell {
height:82px;
display:flex;
align-items:center;
justify-content:space-between;
gap:20px}
.brand {
display:flex;
align-items:center;
gap:11px;
min-width:240px}
.brand img {
width:50px;
height:58px}
.brand strong,.brand span {
display:block;
line-height:1.1}
.brand strong {
font-size:.95rem;
letter-spacing:.045em;
color:var(--navy)}
.brand span {
font-size:.57rem;
letter-spacing:.13em;
color:var(--brown);
margin-top:5px;
font-weight:700}
.main-nav {
display:flex;
align-items:center;
gap:22px;
color:#405270;
font-size:.82rem;
font-weight:700}
.main-nav>a {
position:relative;
padding:8px 0}
.main-nav>a:not(.nav-button):after {
content:"";
position:absolute;
left:0;
bottom:2px;
width:0;
height:2px;
background:var(--sand);
transition:.25s}
.main-nav>a:hover:after,.main-nav>a.active:after {
width:100%}
.nav-button,.button {
display:inline-flex;
align-items:center;
justify-content:center;
gap:9px;
border-radius:999px;
border:0;
cursor:pointer;
font-weight:800;
transition:transform .2s,box-shadow .2s;
text-decoration:none}
.nav-button {
background:var(--navy);
color:white;
padding:10px 13px}
.nav-button.active {
color:white}
.button {
padding:13px 19px;
font-size:.82rem}
.button:hover,.nav-button:hover {
transform:translateY(-2px);
box-shadow:0 9px 18px rgba(9,45,103,.2)}
.button.primary {
background:var(--navy);
color:#fff}
.button.gold {
background:var(--sand);
color:var(--navy)}
.button.outline {
border:1px solid #c9d7ea;
color:var(--navy);
background:#fff}
.menu-toggle {
display:none;
border:1px solid var(--line);
border-radius:6px;
background:#fff;
padding:8px 10px;
color:var(--navy);
font-weight:700}
.hero {
position:relative;
isolation:isolate;
overflow:hidden;
background:linear-gradient(135deg,#061f4a 0%,#0f4d92 55%,#2d6bd4 100%);
color:#fff;
min-height:680px;
display:grid;
align-items:center;
box-shadow:inset 0 -80px 120px rgba(0,0,0,.12)}
.hero:before {
content:"";
position:absolute;
inset:0;
z-index:-1;
opacity:.22;
background-image:linear-gradient(45deg,#fff 1px,transparent 1px),linear-gradient(-45deg,#fff 1px,transparent 1px);
background-size:36px 36px;
-webkit-mask-image:linear-gradient(90deg,#000,transparent 75%);
mask-image:linear-gradient(90deg,#000,transparent 75%)}
.hero:after {
content:"";
position:absolute;
width:650px;
height:650px;
border:85px solid rgba(242,212,141,.15);
border-radius:50%;
right:-180px;
top:-260px;
z-index:-1}
.hero-grid {
display:grid;
grid-template-columns:1.06fr .94fr;
gap:50px;
align-items:center;
padding:80px 0}
.eyebrow {
display:flex;
gap:9px;
align-items:center;
text-transform:uppercase;
letter-spacing:.14em;
font-size:.69rem;
font-weight:800;
color:#d7e8ff;
margin:0 0 16px}
.eyebrow:before {
content:"";
display:inline-block;
width:25px;
height:2px;
background:var(--sand)}
.eyebrow.navy {
color:var(--royal)}
.hero h1,.section-heading h2,.story-card h2,.cta-panel h2 {
font:700 clamp(3rem,5vw,4.9rem)/.95 var(--display);
letter-spacing:-.045em;
margin:0}
.hero h1 em,.section-heading h2 em,.story-card h2 em,.cta-panel h2 em {
font-weight:600;
color:var(--sand)}
.hero .lead {
font-size:1.03rem;
max-width:565px;
color:#dce9fc;
margin:24px 0 29px}
.hero-actions {
display:flex;
gap:12px;
flex-wrap:wrap}
.hero-foot {
display:flex;
gap:24px;
margin-top:38px;
align-items:center}
.hero-foot .seal {
font:700 1.4rem var(--display);
color:var(--sand);
padding-right:24px;
border-right:1px solid #ffffff35}
.hero-foot p {
font-size:.75rem;
color:#ccdcf3;
margin:0}
.hero-visual {
position:relative;
min-height:420px}
.campus-frame {
position:absolute;
right:0;
top:6px;
width:min(100%,450px);
aspect-ratio:1/1.05;
background:#f6edda;
border-radius:54% 46% 22% 22%/35% 37% 27% 25%;
padding:14px;
box-shadow:20px 22px 0 rgba(1,22,60,.22)}
.campus-frame img {
width:100%;
height:100%;
object-fit:cover;
border-radius:inherit}
.float-note {
position:absolute;
background:#fff;
color:var(--ink);
border-radius:10px;
padding:13px;
display:flex;
gap:10px;
align-items:center;
box-shadow:var(--shadow);
font-size:.74rem}
.float-note i {
color:var(--brown);
font-size:1.35rem}
.float-note strong,.float-note small {
display:block}
.float-note small {
color:var(--muted);
font-size:.61rem;
margin-top:2px}
.note-top {
left:0;
top:50px}
.note-bottom {
right:-8px;
bottom:30px}
.scroll-note {
position:absolute;
left:max(20px,calc((100% - 1140px)/2));
bottom:23px;
font-size:.66rem;
letter-spacing:.12em;
text-transform:uppercase;
color:#c5d7f4}
.section {
padding:105px 0}
.section-heading {
display:flex;
justify-content:space-between;
gap:50px;
align-items:end;
margin-bottom:44px}
.section-heading h2,.story-card h2,.cta-panel h2 {
font-size:clamp(2.35rem,4vw,3.65rem);
color:var(--navy)}
.section-heading .intro {
max-width:380px;
color:var(--muted);
margin:0 0 4px}
.intro-band {
background:#fff;
padding:0 0 100px}
.intro-card {
background:#fff;
border:1px solid #e5ecf5;
border-radius:var(--radius);
box-shadow:var(--shadow);
margin-top:-42px;
position:relative;
z-index:3;
padding:30px;
display:grid;
grid-template-columns:1.35fr repeat(3,1fr);
gap:24px}
.intro-card .welcome {
padding-right:15px;
border-right:1px solid var(--line)}
.intro-card h2 {
font:700 1.7rem var(--display);
color:var(--navy);
margin:5px 0}
.intro-card p {
font-size:.79rem;
color:var(--muted);
margin:0}
.intro-card .stat {
padding-left:5px}
.stat b {
display:block;
font:700 2.15rem var(--display);
color:var(--royal)}
.stat span {
display:block;
font-size:.69rem;
text-transform:uppercase;
letter-spacing:.08em;
color:var(--muted);
font-weight:700}
.feature-grid {
display:grid;
grid-template-columns:repeat(4,1fr);
gap:15px}
.feature-card {
background:#fff;
padding:24px 19px;
border-radius:18px;
border:1px solid #e5ebf3;
transition:transform .25s,box-shadow .25s;
box-shadow:0 10px 28px rgba(9,45,103,.06)}
.feature-card:hover {
transform:translateY(-7px);
box-shadow:var(--shadow)}
.feature-card .icon {
width:43px;
height:43px;
display:grid;
place-items:center;
border-radius:10px;
background:#e7effb;
color:var(--royal);
font-size:1.25rem}
.feature-card:nth-child(2) .icon {
background:#f7edda;
color:var(--brown)}
.feature-card:nth-child(3) .icon {
background:#e8f3e9;
color:#388051}
.feature-card:nth-child(4) .icon {
background:#f1eafb;
color:#7758aa}
.feature-card h3 {
font:700 1.22rem var(--display);
color:var(--navy);
margin:20px 0 6px}
.feature-card p {
font-size:.77rem;
color:var(--muted);
margin:0}
.pattern-section {
background:var(--navy);
color:#fff;
position:relative;
overflow:hidden}
.pattern-section:after {
content:"";
position:absolute;
inset:-10%;
background-image:radial-gradient(circle at 20px 20px,#ffffff17 1px,transparent 1.5px);
background-size:40px 40px;
pointer-events:none}
.program-cards {
position:relative;
z-index:1;
display:grid;
grid-template-columns:repeat(3,1fr);
gap:15px}
.program-card {
background:rgba(255,255,255,.12);
border:1px solid rgba(255,255,255,.18);
border-radius:18px;
padding:28px;
min-height:280px;
display:flex;
flex-direction:column;
-webkit-backdrop-filter:blur(8px);
backdrop-filter:blur(8px)}
.program-card .number {
font:700 2.6rem var(--display);
color:var(--sand);
opacity:.8}
.program-card small {
font-size:.67rem;
letter-spacing:.11em;
text-transform:uppercase;
color:#d4e3fa;
font-weight:700;
margin:20px 0 2px}
.program-card h3 {
font:700 2rem var(--display);
margin:0}
.program-card p {
font-size:.79rem;
color:#cfdef5}
.program-card a {
font-size:.75rem;
font-weight:800;
margin-top:auto;
color:var(--sand)}
.academic-branches{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.academic-branch{min-height:290px;padding:30px;border-radius:20px;overflow:hidden}.academic-branch--theology{background:linear-gradient(135deg,#08285d,#18549c);color:#fff}.academic-branch--secular{background:linear-gradient(135deg,#f8eedb,#fff);border:1px solid #e5d6bd;color:var(--navy)}.academic-branch__heading{display:flex;align-items:center;gap:14px}.academic-branch__icon{display:grid;place-items:center;width:48px;height:48px;border-radius:13px;background:var(--sand);color:var(--navy);font-size:1.3rem}.academic-branch--secular .academic-branch__icon{background:var(--navy);color:var(--sand)}.academic-branch small{display:block;font-size:.64rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.academic-branch--theology small{color:#d9e7fb}.academic-branch--secular small{color:var(--brown)}.academic-branch h3{margin:3px 0 0;font:700 2rem/1 var(--display)}.academic-options{display:grid;gap:10px;margin:28px 0 0;padding:0;list-style:none}.academic-options li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 15px;border-radius:11px;font-size:.88rem;font-weight:700}.academic-branch--theology .academic-options li{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18)}.academic-branch--secular .academic-options li{background:#fff;border:1px solid #eadcc4}.academic-options small{font-size:.61rem;letter-spacing:.06em;text-align:right}.academic-branch--theology .academic-options small{color:var(--sand)}@media(max-width:760px){.academic-branches{grid-template-columns:1fr}.academic-branch{min-height:0;padding:25px}}
.academic-tickets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:18px}.academic-ticket{display:flex;align-items:center;gap:12px;padding:18px 20px;border:1px solid #e0e8f2;border-radius:14px;background:#fff;box-shadow:0 8px 20px rgba(9,45,103,.05)}.academic-ticket span{font:700 1.45rem/1 var(--display);color:var(--brown)}.academic-ticket h3{margin:0;color:var(--navy);font:700 1.35rem/1 var(--display)}.academic-ticket p{margin:3px 0 0;color:var(--muted);font-size:.72rem}@media(max-width:760px){.academic-tickets{grid-template-columns:1fr}.academic-ticket{padding:16px 18px}}
.life-grid {
display:grid;
grid-template-columns:.87fr 1.13fr;
gap:60px;
align-items:center}
.life-photo {
position:relative;
min-height:430px;
background:linear-gradient(145deg,#e6d3a6,#f9f4e9);
border-radius:15px;
padding:25px;
overflow:hidden}
.life-photo:before {
content:"";
position:absolute;
width:300px;
height:300px;
border-radius:50%;
background:var(--navy);
right:-85px;
top:-95px}
.life-photo img {
height:100%;
width:100%;
object-fit:contain;
position:relative;
z-index:1}
.quote-card {
position:absolute;
z-index:2;
bottom:23px;
left:23px;
right:23px;
background:#fffcf5;
padding:19px;
border-radius:9px;
box-shadow:var(--shadow)}
.quote-card i {
color:var(--brown);
font-size:1.3rem}
.quote-card p {
font:600 1.05rem/1.35 var(--display);
color:var(--navy);
margin:5px 0}
.quote-card small {
font-size:.66rem;
color:var(--muted)}
.life-copy>p:not(.eyebrow) {
color:var(--muted);
max-width:440px}
.tag-list {
display:flex;
flex-wrap:wrap;
gap:8px;
margin-top:22px}
.tag-list span {
border:1px solid var(--line);
border-radius:99px;
padding:7px 10px;
color:#4d617f;
font-size:.7rem;
font-weight:700}
.tag-list i {
color:var(--brown)}
.notices {
background:#fff}
.notice-layout {
display:grid;
grid-template-columns:1.15fr .85fr;
gap:18px}
.notice-list,.events-panel,.testimonial {
background:#fff;
border:1px solid #e2eaf4;
border-radius:13px}
.notice-item {
display:flex;
gap:15px;
padding:18px;
border-bottom:1px solid var(--line)}
.notice-item:last-child {
border:0}
.notice-date {
width:45px;
height:47px;
border-radius:7px;
background:#ebf2fd;
color:var(--royal);
display:grid;
place-items:center;
align-content:center;
font-weight:800;
line-height:1;
font-size:1rem}
.notice-date small {
font-size:.55rem;
margin-top:3px}
.notice-item h3 {
font:700 1.05rem var(--display);
color:var(--navy);
margin:0}
.notice-item p {
font-size:.73rem;
color:var(--muted);
margin:3px 0}
.notice-item a {
font-size:.68rem;
color:var(--royal);
font-weight:800}
.events-panel {
padding:22px;
background:linear-gradient(145deg,#fcf7ed,#fff)}
.events-panel h3 {
font:700 1.45rem var(--display);
color:var(--navy);
margin:0 0 13px}
.event {
padding:14px 0;
border-bottom:1px solid #e6dcbf;
display:flex;
gap:12px}
.event:last-child {
border:0}
.event i {
color:var(--brown);
font-size:1.25rem}
.event b,.event span {
display:block}
.event b {
font-size:.78rem}
.event span {
font-size:.67rem;
color:var(--muted);
margin-top:2px}
.gallery-grid {
display:grid;
grid-template-columns:1.12fr .88fr .88fr;
grid-template-rows:185px 185px;
gap:13px}
.gallery-tile {
position:relative;
border:0;
padding:0;
border-radius:12px;
overflow:hidden;
text-align:left;
cursor:pointer;
background:var(--navy);
min-height:0}
.gallery-tile:first-child {
grid-row:span 2}
.gallery-tile .gallery-art {
position:absolute;
inset:0;
background:linear-gradient(135deg,#1e5ca9,#e7d4a9);
transition:transform .35s}
.gallery-tile:nth-child(2) .gallery-art {
background:linear-gradient(135deg,#faf4e6,#b58a51)}
.gallery-tile:nth-child(3) .gallery-art {
background:linear-gradient(135deg,#173d7e,#7aa5db)}
.gallery-tile:nth-child(4) .gallery-art {
background:linear-gradient(135deg,#d8bf8e,#f8f4e9)}
.gallery-tile:hover .gallery-art {
transform:scale(1.08)}
.gallery-tile .gallery-art:before {
content:"";
position:absolute;
inset:18%;
border:1px solid #fff8;
border-radius:50% 50% 10px 10px}
.gallery-tile .gallery-art:after {
content:"☾";
position:absolute;
right:18px;
top:12px;
color:#fff8;
font-size:3rem}
.gallery-tile span {
position:absolute;
z-index:2;
left:14px;
bottom:13px;
color:#fff;
font-size:.72rem;
font-weight:800;
text-shadow:0 1px 5px #0008}
.testimonials {
background:#f0e5cc}
.testimonial-grid {
display:grid;
grid-template-columns:repeat(3,1fr);
gap:15px}
.testimonial {
border:0;
padding:24px;
background:#fffdf8}
.testimonial .stars {
color:var(--brown);
letter-spacing:2px}
.testimonial p {
font:600 1.08rem/1.4 var(--display);
color:var(--navy)}
.testimonial footer {
display:flex;
align-items:center;
gap:9px;
font-size:.72rem}
.testimonial .person {
width:30px;
height:30px;
border-radius:50%;
display:grid;
place-items:center;
background:#e2ecfc;
color:var(--royal);
font-weight:800}
.testimonial footer small {
display:block;
color:var(--muted);
font-size:.62rem}
.cta-section {
padding:80px 0;
background:#fff}
.cta-panel {
background:linear-gradient(120deg,#092d67,#1c5baa);
border-radius:24px;
color:#fff;
padding:48px 52px;
display:flex;
align-items:center;
justify-content:space-between;
gap:30px;
position:relative;
overflow:hidden;
box-shadow:0 20px 45px rgba(9,45,103,.18)}
.cta-panel:after {
content:"☾";
position:absolute;
color:#f5d6842b;
font-size:16rem;
right:10px;
top:-90px}
.cta-panel h2 {
color:#fff;
font-size:3rem;
position:relative;
z-index:1}
.cta-panel p {
color:#d7e6fc;
margin:8px 0 0;
position:relative;
z-index:1}
.cta-panel .button {
position:relative;
z-index:1;
white-space:nowrap}
.site-footer {
background:#071f48;
color:#d2e1f8;
padding:54px 0 20px}
.footer-grid {
display:grid;
grid-template-columns:1.7fr 1fr 1fr 1.15fr;
gap:32px}
.footer-brand .brand strong {
color:#fff}
.footer-brand .brand span {
color:#cad9f1}
.footer-brand p {
font-size:.75rem;
max-width:260px;
color:#aec4e5}
.footer-grid h3 {
font-size:.68rem;
letter-spacing:.13em;
text-transform:uppercase;
color:#fff;
margin:13px 0}
.footer-grid a {
display:block;
font-size:.75rem;
color:#b4c9e8;
margin:8px 0}
.footer-grid .contact-line {
display:flex;
gap:8px;
font-size:.75rem;
margin:9px 0}
.footer-grid .contact-line i {
color:var(--sand)}
.footer-social {
display:flex;
align-items:center;
gap:10px;
margin-top:20px;
color:#d2e1f8;
font-size:.72rem;
font-weight:700}
.footer-social a {
width:34px;
height:34px;
aspect-ratio:1;
flex:0 0 34px;
margin:0;
display:grid;
place-items:center;
border:1px solid rgba(214,185,129,.58);
border-radius:50%;
color:#fff;
font-size:1rem;
transition:background .2s ease,color .2s ease,transform .2s ease}
.footer-social a:hover,.footer-social a:focus-visible {
background:var(--sand);
color:var(--navy);
transform:translateY(-2px)}
.footer-bottom {
margin-top:34px;
padding-top:17px;
border-top:1px solid #ffffff22;
display:flex;
justify-content:space-between;
color:#93aad0;
font-size:.65rem}
.floating-wa {
position:fixed;
right:21px;
bottom:21px;
z-index:25;
width:51px;
height:51px;
display:grid;
place-items:center;
background:#1ba756;
color:white;
border-radius:50%;
box-shadow:0 9px 24px #0c583c66;
font-size:1.55rem;
transition:.2s}
.floating-wa:hover {
transform:translateY(-3px) scale(1.04)}
.floating-admission {
position:fixed;
right:21px;
bottom:90px;
z-index:24;
width:51px;
height:51px;
display:grid;
place-items:center;
background:var(--navy);
color:white;
border-radius:50%;
box-shadow:0 9px 24px rgba(9,45,103,.25);
font-size:1.35rem;
transition:.2s}
.floating-admission:hover {
transform:translateY(-3px) scale(1.04);
background:#163f86}
.page-hero {
background:linear-gradient(120deg,#08295f,#1d61ae);
color:#fff;
padding:84px 0 72px;
position:relative;
overflow:hidden}
.page-hero:after {
content:"";
position:absolute;
right:-100px;
top:-190px;
width:450px;
height:450px;
border:65px solid #ecd18d27;
border-radius:50%}
.page-hero h1 {
font:700 clamp(2.7rem,5vw,4.4rem)/1 var(--display);
margin:0}
.page-hero p {
max-width:570px;
color:#d9e7fc;
margin:17px 0 0}
.breadcrumb {
font-size:.68rem;
letter-spacing:.08em;
text-transform:uppercase;
color:#c8dafa;
font-weight:700;
margin-bottom:18px}
.breadcrumb a {
color:var(--sand)}
.content-section {
padding:88px 0}
.two-column {
display:grid;
grid-template-columns:1fr 1fr;
gap:66px;
align-items:center}
.prose h2 {
font:700 2.65rem var(--display);
color:var(--navy);
line-height:1.05;
margin:0 0 16px}
.prose p {
color:var(--muted)}
.highlight-box {
background:#eef4fc;
border-left:4px solid var(--brown);
padding:18px;
border-radius:0 9px 9px 0;
font-size:.81rem;
color:#475b78}
.leadership-grid,.reason-grid,.subject-grid,.activity-grid {
display:grid;
grid-template-columns:repeat(3,1fr);
gap:15px}
.lead-card,.reason-card,.subject-card,.activity-card {
background:#fff;
border:1px solid var(--line);
border-radius:12px;
padding:22px}
.lead-card .portrait {
height:145px;
border-radius:9px;
background:linear-gradient(145deg,#e1cfaa,#1a4b91);
margin-bottom:14px;
position:relative;
overflow:hidden}
.lead-card .portrait {background-position:center;background-size:cover}
.lead-email {display:inline-flex;align-items:center;gap:6px;margin-top:10px;color:var(--royal);font-size:.72rem;font-weight:700;word-break:break-word}.lead-email:hover {color:var(--brown)}
.governance-section {background:#eef4fc}.governance-grid {display:grid;grid-template-columns:1fr 1fr;min-height:385px;background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:var(--shadow)}.governance-image {background-size:cover;background-position:center}.governance-copy {padding:54px;align-self:center}.governance-copy h2 {font:700 clamp(2.5rem,4vw,3.7rem)/.98 var(--display);color:var(--navy);margin:0}.governance-copy h2 em {color:var(--brown)}.governance-copy p:not(.eyebrow) {color:var(--muted);margin:20px 0 26px;max-width:460px}
.lead-card .portrait:after {
content:"☾";
position:absolute;
font-size:6rem;
color:#ffffff55;
right:10px;
bottom:-17px}
.lead-card h3,.reason-card h3,.subject-card h3,.activity-card h3 {
font:700 1.28rem var(--display);
color:var(--navy);
margin:0}
.lead-card small,.reason-card p,.subject-card p,.activity-card p {
font-size:.73rem;
color:var(--muted)}
.reason-card i,.activity-card i {
font-size:1.35rem;
color:var(--brown)}
.reason-card h3,.activity-card h3 {
margin-top:13px}
.subject-card {
display:flex;
gap:13px;
align-items:start}
.subject-card i {
width:34px;
height:34px;
display:grid;
place-items:center;
background:#edf3fc;
color:var(--royal);
border-radius:7px}
.admission-shell {
display:grid;
grid-template-columns:.8fr 1.2fr;
gap:27px;
align-items:start}
.admission-aside {
background:var(--navy);
color:#fff;
padding:31px;
border-radius:15px;
position:sticky;
top:100px}
.admission-aside h2 {
font:700 2.2rem/1.02 var(--display);
margin:0}
.admission-aside p {
font-size:.8rem;
color:#d3e2fa}
.admission-aside .steps {
margin-top:25px}
.steps div {
display:flex;
gap:10px;
align-items:start;
margin:15px 0}
.steps b {
width:24px;
height:24px;
border-radius:50%;
background:var(--sand);
color:var(--navy);
display:grid;
place-items:center;
font-size:.65rem}
.steps span {
font-size:.73rem;
color:#d6e4fa}
.admission-form {
background:#fff;
border:1px solid var(--line);
border-radius:15px;
padding:31px;
box-shadow:0 12px 28px #0b316d0c}
.form-title {
display:flex;
justify-content:space-between;
align-items:center;
border-bottom:1px solid var(--line);
padding-bottom:17px;
margin-bottom:20px}
.form-title h2 {
font:700 1.8rem var(--display);
margin:0;
color:var(--navy)}
.form-title span {
color:var(--brown);
font-size:.68rem;
font-weight:700}
.form-section {
border:0;
padding:0;
margin:0 0 23px}
.form-section legend {
font-size:.7rem;
letter-spacing:.1em;
text-transform:uppercase;
color:var(--royal);
font-weight:800;
margin-bottom:10px}
.field-grid {
display:grid;
grid-template-columns:repeat(2,1fr);
gap:13px}
.field-grid .full {
grid-column:1/-1}
.field-grid label,.contact-form label {
font-size:.72rem;
font-weight:800;
color:#4d607e}
.field-grid input,.field-grid select,.field-grid textarea,.contact-form input,.contact-form textarea {
width:100%;
border:1px solid #d5e0ee;
border-radius:6px;
background:#fdfefe;
padding:10px;
margin-top:5px;
color:var(--ink);
outline:0}
.field-grid input:focus,.field-grid select:focus,.field-grid textarea:focus,.contact-form input:focus,.contact-form textarea:focus {
border-color:var(--blue);
box-shadow:0 0 0 3px #2266bb18}
.upload-grid {
display:grid;
grid-template-columns:repeat(2,1fr);
gap:10px}
.upload-field {
border:1px dashed #9eb5d7;
border-radius:7px;
padding:10px;
position:relative;
background:#f8fbff}
.upload-field input {
padding:0;
border:0;
background:transparent;
font-size:.66rem}
.upload-field label {
display:block;
font-size:.7rem;
color:var(--royal);
font-weight:800}
.upload-help {
font-size:.72rem;
color:var(--muted);
margin-top:0}
.consent {
display:flex;
gap:8px;
align-items:start;
font-size:.71rem;
color:var(--muted);
margin:15px 0}
.consent input {
width:auto;
margin-top:2px}
.form-message {
display:none;
padding:12px;
border-radius:7px;
background:#e2f5e8;
color:#14633a;
font-size:.78rem;
font-weight:700;
margin-top:12px}
.form-message.show {
display:block}
.school-life-feature {
background:#fff;
border-radius:15px;
border:1px solid var(--line);
padding:26px;
display:grid;
grid-template-columns:.85fr 1.15fr;
gap:35px;
align-items:center}
.school-life-feature img {
border-radius:12px}
.policy-list {
padding:0;
margin:18px 0;
list-style:none}
.policy-list li {
padding:10px 0;
border-bottom:1px solid var(--line);
font-size:.78rem;
color:#52637e}
.policy-list i {
color:var(--brown);
margin-right:7px}
.filter-bar {
display:flex;
align-items:center;
gap:10px;
margin-bottom:21px}
.filter-bar input {
flex:1;
border:1px solid var(--line);
border-radius:7px;
padding:11px 13px;
background:#fff;
outline:0}
.gallery-page {
grid-template-columns:repeat(3,1fr);
grid-template-rows:auto}
.gallery-page .gallery-tile {
height:260px}
.modal {
position:fixed;
inset:0;
background:#061d46d9;
z-index:60;
display:none;
align-items:center;
justify-content:center;
padding:24px}
.modal.show {
display:flex}
.modal-content {
width:min(760px,100%);
background:#fff;
border-radius:15px;
padding:18px;
position:relative}
.modal-art {
height:min(64vh,470px);
border-radius:10px;
background:linear-gradient(135deg,#164d9b,#e7ce98);
display:grid;
place-items:center;
color:white;
font:700 2rem var(--display);
text-align:center}
.modal-close {
position:absolute;
right:-9px;
top:-10px;
background:var(--sand);
color:var(--navy);
border:0;
border-radius:50%;
width:33px;
height:33px;
font-size:1.3rem;
cursor:pointer}
.contact-layout {
display:grid;
grid-template-columns:.85fr 1.15fr;
gap:22px}
.contact-info {
background:var(--navy);
color:#fff;
border-radius:15px;
padding:30px}
.contact-info h2 {
font:700 2.25rem/1 var(--display);
margin:0}
.contact-info p {
color:#d2e1f7;
font-size:.8rem}
.contact-item {
display:flex;
gap:11px;
padding:14px 0;
border-bottom:1px solid #ffffff24}
.contact-item i {
color:var(--sand);
font-size:1.2rem}
.contact-item b,.contact-item span {
display:block}
.contact-item .school-location-name {
color:#fff;
font-size:.8rem;
font-weight:800}
.contact-item b {
font-size:.72rem}
.contact-item span {
font-size:.74rem;
color:#d0dff4;
margin-top:3px}
.contact-form {
background:#fff;
border:1px solid var(--line);
border-radius:15px;
padding:30px}
.contact-form h2 {
font:700 2rem var(--display);
color:var(--navy);
margin:0 0 16px}
.contact-form label {
display:block;
margin:12px 0}
.map-box {
height:310px;
border-radius:14px;
background:linear-gradient(135deg,#cedeed,#f4e3ba);
margin-top:22px;
position:relative;
overflow:hidden;
box-shadow:0 10px 24px rgba(9,45,103,.08)}
.map-box iframe {
width:100%;
height:100%;
border:0;display:block}
.map-box:hover {
transform:translateY(-2px);
box-shadow:0 10px 24px rgba(9,45,103,.14)}
@media(max-width:980px) {
.main-nav {
gap:14px}
.feature-grid {
grid-template-columns:repeat(2,1fr)}
.footer-grid {
grid-template-columns:repeat(2,1fr)}
.gallery-grid {
grid-template-columns:1fr 1fr}
.gallery-tile:first-child {
grid-row:span 1}
.hero-grid,.life-grid,.two-column,.admission-shell,.contact-layout,.school-life-feature {
grid-template-columns:1fr}
.hero-visual {
max-width:520px;
width:100%;
margin:auto}
.admission-aside {
position:relative;
top:0}
.leadership-grid,.reason-grid,.subject-grid,.activity-grid {
grid-template-columns:repeat(2,1fr)}
.intro-card {
grid-template-columns:1fr 1fr}
.intro-card .welcome {
grid-column:1/-1;
border:0;
border-bottom:1px solid var(--line);
padding-bottom:18px}
.program-cards {
grid-template-columns:1fr}
.program-card {
min-height:0}
.testimonial-grid {
grid-template-columns:1fr}
.notice-layout {
grid-template-columns:1fr}
.governance-grid {grid-template-columns:1fr}.governance-image {min-height:280px}.governance-copy {padding:38px}
}

@media(max-width:760px) {
.topline .quick-links {
display:none}
.topline .container {
justify-content:center}
.site-header {
position:relative}
.nav-shell {
height:70px}
.brand {
min-width:0}
.brand img {
width:40px;
height:47px}
.brand strong {
font-size:.78rem}
.brand span {
font-size:.47rem}
.menu-toggle {
display:block}
.main-nav {
display:none;
position:absolute;
top:100%;
left:0;
right:0;
background:#fff;
padding:12px 20px;
box-shadow:0 14px 24px #0b316d22;
flex-direction:column;
align-items:stretch;
gap:3px}
.main-nav.open {
display:flex}
.main-nav>a {
padding:10px}
.hero {
min-height:initial}
.hero-grid {
padding:63px 0 52px}
.hero h1 {
font-size:3.2rem}
.hero-visual {
min-height:330px}
.campus-frame {
width:280px;
height:300px;
right:10px}
.note-top {
top:20px}
.note-bottom {
bottom:7px;
right:0}
.float-note {
font-size:.65rem;
padding:10px;
transform:scale(.9)}
.scroll-note {
display:none}
.section {
padding:70px 0}
.intro-band {
padding-bottom:70px}
.section-heading {
display:block;
margin-bottom:30px}
.section-heading .intro {
margin-top:15px}
.feature-grid,.leadership-grid,.reason-grid,.subject-grid,.activity-grid,.field-grid,.upload-grid {
grid-template-columns:1fr}
.field-grid .full {
grid-column:auto}
.gallery-grid {
grid-template-columns:1fr;
grid-template-rows:210px}
.gallery-tile,.gallery-page .gallery-tile {
height:210px}
.gallery-page {
grid-template-columns:1fr}
.cta-panel {
padding:35px 26px;
display:block}
.cta-panel h2 {
font-size:2.4rem}
.cta-panel .button {
margin-top:22px}
.footer-grid {
grid-template-columns:1fr}
.footer-bottom {
flex-direction:column;
gap:6px}
.page-hero {
padding:64px 0 57px}
.content-section {
padding:64px 0}
.life-photo {
min-height:350px}
.contact-form,.admission-form {
padding:22px}
.hero-foot {
margin-top:27px}
.intro-card {
padding:22px}
.filter-bar {
display:block}
.filter-bar input {
width:100%}
.hero-actions .button,
.hero-actions .nav-button {
width:100%}
}
@media(max-width:420px) {
.container {
width:min(100% - 28px,1140px)}
.hero h1 {
font-size:2.8rem}
.hero-foot .seal {
font-size:1.1rem}
.hero-foot {
gap:12px}
.intro-card {
grid-template-columns:1fr}
.hero-actions .button {
width:100%}
.program-card {
padding:23px}
}
/* Authentic school imagery and presentation refinements. */

.hero-visual .campus-frame img {
object-position:center 52%;
filter:saturate(.94) contrast(1.04)}
.life-photo img {
object-fit:cover;
object-position:center 46%;
border-radius:10px}
.two-column .life-photo img[src$="campus-illustration.svg"] {
content:url("../images/IMG_1909.PNG");
object-fit:cover;
object-position:center 52%}
.school-life-feature img[src$="uniform-palette.svg"] {
content:url("../images/o%20level%20uniform%20color.PNG");
width:100%;
min-height:360px;
object-fit:cover;
object-position:center;
border-radius:12px;
box-shadow:var(--shadow)}
.footer-brand .brand img[src$="kyabuuza-mark.svg"] {
content:url("../images/logo.png");
object-fit:contain}
.page-hero {
background:linear-gradient(115deg,rgba(4,29,71,.97),rgba(12,70,145,.9)),url("../images/IMG_1909.PNG") center 47%/cover;
color:#fff}
.page-hero:before {
content:"";
position:absolute;
inset:0;
background:linear-gradient(90deg,rgba(3,25,62,.45),transparent 70%);
pointer-events:none}
.page-hero .container {
position:relative;
z-index:1}
.gallery-tile {
box-shadow:0 12px 28px rgba(7,31,72,.12);
overflow:hidden;
border-radius:12px;
display:block}
.gallery-tile .gallery-art {
background-position:center center;
background-size:cover;
display:block;
width:100%;
height:100%}
.gallery-tile .gallery-art:before {
inset:10px;
border-radius:8px;
background:linear-gradient(180deg,transparent 35%,rgba(3,22,51,.72));
border:0}
.gallery-tile .gallery-art:after {
content:"";
inset:0;
right:auto;
top:auto;
font-size:inherit;
background:linear-gradient(180deg,transparent 44%,rgba(3,22,51,.72))}
.gallery-tile:nth-child(1) .gallery-art {
background-image:url("../images/IMG_1909.PNG")}
.gallery-tile:nth-child(2) .gallery-art {
background-image:url("../images/STUDENTS 1.jpeg")}
.gallery-tile:nth-child(3) .gallery-art {
background-image:url("../images/ict%20lab.jpg")}
.gallery-tile:nth-child(4) .gallery-art {
background-image:url("../images/o%20level%20uniform%20color.PNG")}
.gallery-tile:nth-child(5) .gallery-art {
background-image:url("../images/a%20level%20uniform%20color.png")}
.gallery-tile:nth-child(6) .gallery-art {
background-image:url("../images/PREFECTS.jpeg")}
.gallery-tile span:last-child {
left:18px;
bottom:17px;
font-size:.8rem;
letter-spacing:.02em}
.modal-art {
background-position:center;
background-size:cover;
background-image:linear-gradient(135deg,rgba(9,45,103,.72),rgba(231,206,152,.28)),url("../images/IMG_1909.PNG");
text-shadow:0 2px 14px rgba(0,0,0,.55)}
.map-box {
background:linear-gradient(135deg,rgba(210,226,238,.92),rgba(244,235,208,.82)),url("../images/IMG_1909.PNG") center/cover}
@media (max-width:760px) {
.page-hero {
padding:66px 0 60px}
.gallery-page .gallery-tile {
height:240px}
.school-life-feature img[src$="uniform-palette.svg"] {
min-height:280px}
}
/* Official school information, transcribed from the school poster. */

.official-facts {
background:linear-gradient(120deg,#061f4a,#164d9b);
color:#fff;
padding:70px 0;
position:relative;
overflow:hidden}
.official-facts:after {
content:"";
position:absolute;
width:470px;
height:470px;
border:75px solid rgba(240,211,141,.12);
border-radius:50%;
right:-160px;
top:-230px}
.official-facts__grid {
position:relative;
z-index:1;
display:grid;
grid-template-columns:1.05fr 1fr 1fr;
gap:48px}
.official-facts .eyebrow {
color:#dce9fc}
.official-facts h2 {
font:700 clamp(2.5rem,4vw,3.6rem)/1 var(--display);
margin:0 0 14px;
color:var(--sand)}
.official-facts p {
font-size:.82rem;
line-height:1.7;
color:#dce9fc;
margin:0 0 17px}
.official-facts p strong {
color:#fff}
.official-facts__label {
display:block;
margin-bottom:6px;
color:var(--sand);
font-size:.68rem;
font-weight:800;
letter-spacing:.12em;
text-transform:uppercase}
.official-facts ul {
padding:0;
margin:0;
list-style:none;
columns:1}
.official-facts li {
font-size:.78rem;
color:#e4eefc;
padding:7px 0 7px 17px;
position:relative;
border-bottom:1px solid rgba(255,255,255,.14)}
.official-facts li:before {
content:"";
position:absolute;
left:0;
top:17px;
width:6px;
height:6px;
border-radius:50%;
background:var(--sand)}
@media(max-width:760px) {
.official-facts {
padding:55px 0}
.official-facts__grid {
grid-template-columns:1fr;
gap:22px}
.official-facts p {
margin-bottom:12px}
}
/* Gallery override to ensure a strict 3x2 grid and full-bleed tiles */

.gallery-grid.gallery-page {
display:grid!important;
grid-template-columns:repeat(3,1fr)!important;
grid-template-rows:repeat(2,260px)!important;
gap:13px}
.gallery-page .gallery-tile {
height:100%!important}
.gallery-tile {
height:100%!important}
.gallery-tile .gallery-art {
width:100%;
height:100%;
background-size:cover;
background-position:center center}
@media(max-width:980px) {
.gallery-grid.gallery-page {
grid-template-columns:repeat(2,1fr);
grid-template-rows:auto;
grid-auto-rows:220px}
.gallery-page .gallery-tile {
height:220px}
}
@media(max-width:560px) {
.gallery-grid.gallery-page {
grid-template-columns:1fr;
grid-template-rows:auto;
grid-auto-rows:200px}
.gallery-page .gallery-tile {
height:200px}
}
/* Ensure form confirmation messages are visible when JS adds the `show` class */

.form-message {
display:none;
padding:12px;
border-radius:7px;
background:#e2f5e8;
color:#14633a;
font-size:.78rem;
font-weight:700;
margin-top:12px}
.form-message.show {
display:block;
opacity:1;
transform:none;
transition:opacity .18s ease,transform .18s ease}
/* Logo sizing override (larger in header;
responsive on small screens) */

.brand img {
width:68px;
height:68px;
aspect-ratio:1;
object-fit:contain}
@media(max-width:760px) {
.brand img {
width:56px;
height:56px}
}
@media(max-width:420px) {
.brand img {
width:48px;
height:48px}
}
/* Modern navigation and admissions experience */

.site-header {
background:rgba(255,255,255,.98);
backdrop-filter:blur(14px);
box-shadow:0 18px 40px rgba(9,45,103,.08);
transition:background .25s ease,box-shadow .25s ease}
.nav-shell {
padding:0 8px}
.brand {
gap:14px}
.brand strong {
letter-spacing:.08em}
.main-nav {
gap:18px;
font-size:.84rem;
text-transform:uppercase;
letter-spacing:.08em}
.main-nav>a {
padding:10px 6px;
transition:.25s}
.main-nav>a:not(.nav-button) {
color:#435778}
.main-nav>a:not(.nav-button):hover,
.main-nav>a:not(.nav-button).active {
color:var(--navy)}
.main-nav>a:not(.nav-button):after {
bottom:0;
left:0;
height:2px;
background:linear-gradient(90deg,var(--sand),var(--royal));}
.nav-button {
padding:12px 18px;
border-radius:999px;
box-shadow:0 10px 26px rgba(16,74,147,.12)}
.nav-button:hover {
transform:translateY(-1px);
box-shadow:0 18px 30px rgba(16,74,147,.18)}
.menu-toggle {
background:rgba(9,45,103,.05);
border:1px solid rgba(9,45,103,.12);
border-radius:12px;
color:var(--navy);
padding:10px 14px;
transition:.2s}
.menu-toggle:hover {
background:rgba(9,45,103,.08)}
.page-hero {
min-height:520px;
position:relative;
overflow:hidden;
display:grid;
place-items:center}
.page-hero:after {
opacity:.45;
transform:translate(20px,-10px)}
.page-hero h1 {
max-width:700px;
animation:text-pop .9s ease both}
.page-hero p {
font-size:1.03rem;
color:#e2ecff;
max-width:610px;
opacity:.95}
.page-hero .breadcrumb {
letter-spacing:.12em;
color:#cdd7f0;
text-shadow:0 1px 8px rgba(0,0,0,.12)}
@keyframes text-pop {
0% {
opacity:0;
transform:translateY(18px)}
100% {
opacity:1;
transform:translateY(0)}
}
/* Fees and requirements page */
.fees-hero {min-height:440px}
.fees-section {padding:88px 0}
.fees-section-alt {background:#eff5fc}
.fees-intro {display:flex;justify-content:space-between;gap:34px;align-items:end;margin-bottom:35px}
.fees-intro h2,.section-heading.compact h2 {font:700 clamp(2.3rem,4vw,3.4rem)/1 var(--display);color:var(--navy);margin:0 0 14px}
.fees-intro>div:first-child>p:last-child {max-width:650px;color:var(--muted);margin:0}
.bank-card {display:flex;gap:15px;align-items:start;min-width:315px;padding:20px 22px;background:var(--navy);color:#fff;border-radius:16px;box-shadow:var(--shadow)}
.bank-card>i {font-size:1.45rem;color:var(--sand)}
.bank-card span {display:block;text-transform:uppercase;letter-spacing:.12em;font-weight:700;font-size:.65rem;color:#bed4f7}.bank-card strong{font:700 1.3rem var(--display);display:block}.bank-card p{font-size:.75rem;line-height:1.5;margin:3px 0 0;color:#e5efff}
.fees-layout {display:grid;grid-template-columns:1.25fr .75fr;gap:28px;align-items:start}
.fee-table-wrap,.requirement-card {background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:0 14px 35px rgba(9,45,103,.06);overflow:auto}
.fee-table {width:100%;border-collapse:collapse;min-width:610px}.fee-table caption {caption-side:top;text-align:left;padding:24px 28px 15px;font:700 1.65rem var(--display);color:var(--navy)}.fee-table th,.fee-table td {padding:15px 21px;border-top:1px solid var(--line);text-align:left;font-size:.84rem}.fee-table thead {background:#edf4fd;color:var(--navy)}.fee-table tbody th {color:var(--royal);font-size:.9rem}.fee-table td {color:#52637c;line-height:1.6}
.fees-calculator {padding:27px;background:linear-gradient(145deg,#fffdf8,#f2e9d6);border:1px solid #e5d2ad;border-radius:20px;box-shadow:0 16px 38px rgba(91,59,19,.11);position:sticky;top:102px}.calculator-heading {display:flex;gap:13px;align-items:center}.calculator-heading .eyebrow{margin:0 0 4px}.calculator-heading h2{margin:0;font:700 1.8rem/1 var(--display);color:var(--navy)}.calculator-icon{width:45px;height:45px;border-radius:12px;display:grid;place-items:center;background:var(--navy);color:#fff;font-size:1.2rem}.calculator-copy{font-size:.78rem;color:var(--muted);line-height:1.55;margin:17px 0}.fees-calculator label:not(.calculator-check){display:block;font-size:.74rem;font-weight:800;color:var(--navy);margin:13px 0 0}.fees-calculator select{display:block;width:100%;margin-top:5px;padding:10px 11px;background:#fff;border:1px solid #cbd8e9;border-radius:8px;color:var(--ink);font-size:.84rem}.calculator-check{display:flex;align-items:center;gap:9px;margin:13px 0;font-size:.8rem;color:#405270;cursor:pointer}.calculator-check input{accent-color:var(--navy);width:16px;height:16px}.calculator-check small{color:var(--brown)}.calculator-result{border-radius:13px;background:var(--navy);padding:17px;margin-top:17px;color:#fff}.calculator-result span{font-size:.69rem;text-transform:uppercase;letter-spacing:.1em;color:#c9dcfa}.calculator-result strong{display:block;font:700 2rem/1.15 var(--display);color:#f5d996;margin-top:3px}.calculator-result p{margin:6px 0 0;color:#d9e8fc;font-size:.69rem}.calculator-note{font-size:.7rem;color:#63728a;margin:13px 0 0;line-height:1.45}.calculator-note i{color:var(--royal)}
.section-heading.compact {margin-bottom:30px}.requirements-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.requirement-card{padding:24px;overflow:hidden}.requirement-title{display:flex;gap:12px;align-items:center;margin-bottom:20px}.requirement-title>i{width:41px;height:41px;display:grid;place-items:center;border-radius:11px;background:#edf4fc;color:var(--royal);font-size:1.15rem}.requirement-title span{display:block;text-transform:uppercase;letter-spacing:.1em;font-size:.62rem;font-weight:800;color:var(--brown)}.requirement-title h3{font:700 1.45rem/1 var(--display);color:var(--navy);margin:4px 0 0}.mini-table{width:100%;border-collapse:collapse;font-size:.7rem}.mini-table th,.mini-table td{border-top:1px solid var(--line);padding:9px 5px;text-align:left;color:#52637c;vertical-align:top}.mini-table th{color:var(--navy)}.notice{font-size:.72rem;color:#596983;line-height:1.5;margin:15px 0 0}.notice i{color:var(--royal);margin-right:4px}.notice.important{color:#75471c;font-weight:700}.food-list{display:grid;gap:9px}.food-list div{background:#f7f9fc;border-radius:9px;padding:12px}.food-list strong,.food-list span{display:block}.food-list strong{color:var(--navy);font-size:.77rem}.food-list span{color:#60708a;font-size:.74rem;margin-top:3px}.requirements-list{padding:0 0 0 18px;margin:0;color:#52637c;font-size:.75rem;line-height:1.7}.requirements-list li::marker{color:var(--brown)}
@media(max-width:980px){.fees-layout{grid-template-columns:1fr}.fees-calculator{position:static}.requirements-grid{grid-template-columns:1fr 1fr}.requirements-grid .requirement-card:last-child{grid-column:1/-1}.fees-intro{align-items:start;flex-direction:column}.bank-card{min-width:0;width:100%;max-width:500px}}
@media(max-width:620px){.fees-section{padding:58px 0}.requirements-grid{grid-template-columns:1fr}.requirements-grid .requirement-card:last-child{grid-column:auto}.fees-intro{margin-bottom:26px}.fee-table caption{padding:20px 18px 12px}.fee-table th,.fee-table td{padding:12px 15px}.fees-calculator,.requirement-card{padding:20px}.fees-hero{min-height:390px}}
.calculator-action {width:100%;margin-top:18px}
/* School life navigation dropdown */
.nav-dropdown {position:relative}.nav-dropdown summary {list-style:none;display:flex;align-items:center;gap:7px;padding:10px 6px;cursor:pointer;color:#435778;transition:color .2s}.nav-dropdown summary::-webkit-details-marker {display:none}.nav-dropdown summary i {font-size:.58rem;transition:transform .2s}.nav-dropdown[open] summary i {transform:rotate(180deg)}.nav-dropdown summary:after {content:"";position:absolute;left:0;bottom:0;width:0;height:2px;background:linear-gradient(90deg,var(--sand),var(--royal));transition:.25s}.nav-dropdown:hover summary,.nav-dropdown.active summary {color:var(--navy)}.nav-dropdown:hover summary:after,.nav-dropdown.active summary:after {width:100%}.nav-dropdown-menu {position:absolute;top:calc(100% + 10px);left:-18px;min-width:178px;padding:8px;background:rgba(255,255,255,.98);border:1px solid #dbe4f0;border-radius:14px;box-shadow:0 18px 38px rgba(9,45,103,.17);z-index:40}.nav-dropdown-menu:before {content:"";position:absolute;top:-5px;left:31px;width:9px;height:9px;background:#fff;border-left:1px solid #dbe4f0;border-top:1px solid #dbe4f0;transform:rotate(45deg)}.nav-dropdown-menu a {position:relative;display:block;padding:7px 11px;border-radius:8px;color:#435778;font-size:.74rem;font-weight:600;letter-spacing:.01em;white-space:nowrap;transition:background .18s,color .18s}.nav-dropdown-menu span {display:block;margin:9px 11px 3px;color:var(--brown);font-size:.58rem;font-weight:800;letter-spacing:.15em;text-transform:uppercase}.nav-dropdown-menu a:hover,.nav-dropdown-menu a.active {background:#edf4fc;color:var(--navy)}.nav-dropdown-menu a.active {font-weight:800}
@media(max-width:760px){.nav-dropdown summary{padding:10px}.nav-dropdown summary:after{display:none}.nav-dropdown-menu{position:static;margin:0 0 5px 10px;min-width:0;padding:5px;box-shadow:none;border:0;border-left:2px solid var(--sand);border-radius:0}.nav-dropdown-menu a{white-space:normal}.nav-dropdown.active summary{font-weight:800}}

/* School life activities */
.activities-intro{padding:105px 0 62px;background:#fff}.activities-intro__layout{display:grid;grid-template-columns:1fr .68fr;gap:90px;align-items:end}.activities-intro h2,.activities-copy h2,.faith-section h2{font:700 clamp(2.7rem,4.2vw,4.25rem)/.94 var(--display);letter-spacing:-.045em;color:var(--navy);margin:0}.activities-intro h2 em,.activities-copy h2 em,.faith-section h2 em{font-weight:600;color:var(--brown)}.activities-intro__layout>p{max-width:420px;margin:0;color:var(--muted);font-size:.95rem}.activities-section{padding:85px 0}.clubs-section{background:linear-gradient(180deg,#f6f0e4,#fbf9f3)}.activities-layout{display:grid;grid-template-columns:.87fr 1.13fr;gap:80px;align-items:center}.activities-layout--reverse{grid-template-columns:1fr .9fr}.activities-copy>p:not(.eyebrow){max-width:455px;color:var(--muted);margin:22px 0 27px}.club-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.club-list span{display:flex;align-items:center;gap:9px;padding:10px 12px;border:1px solid #dbe4ee;border-radius:10px;background:#fff;color:#324867;font-size:.77rem;font-weight:700;box-shadow:0 5px 14px rgba(9,45,103,.04)}.club-list i{color:var(--brown);font-size:1rem}.activities-image{position:relative;height:455px;border-radius:24px;overflow:hidden;box-shadow:0 26px 54px rgba(9,45,103,.18)}.activities-image:after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(5,30,70,.18),transparent 55%)}.activities-image img{height:100%;width:100%;object-fit:cover}.image-caption{position:absolute;z-index:1;left:20px;bottom:20px;display:flex;align-items:center;gap:11px;background:rgba(255,255,255,.95);padding:12px 15px;border-radius:12px;box-shadow:0 12px 28px rgba(5,28,67,.22)}.image-caption i{color:var(--brown);font-size:1.3rem}.image-caption strong,.image-caption small{display:block;line-height:1.25}.image-caption strong{font-size:.77rem;color:var(--navy)}.image-caption small{font-size:.65rem;color:var(--muted);margin-top:2px}.sports-section{background:#fff}.sport-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:11px}.sport-grid>div{display:flex;align-items:center;gap:10px;padding:14px;border-radius:12px;background:#f1f6fc;border:1px solid #dce7f5}.sport-grid i{width:32px;height:32px;display:grid;place-items:center;border-radius:8px;background:var(--navy);color:var(--sand);font-size:.9rem}.sport-grid strong,.sport-grid small{display:block;line-height:1.25}.sport-grid strong{font-size:.79rem;color:var(--navy)}.sport-grid small{font-size:.62rem;color:var(--muted);margin-top:2px}.sports-photo-grid{display:grid;grid-template-columns:1fr .92fr;gap:14px;align-items:end}.sports-photo-grid figure{position:relative;margin:0;border-radius:20px;overflow:hidden;box-shadow:0 18px 40px rgba(9,45,103,.14)}.sports-photo-grid figure:nth-child(2){transform:translateY(42px)}.sports-photo-grid img{width:100%;height:350px;object-fit:cover}.sports-photo-grid figure:nth-child(2) img{height:285px}.sports-photo-grid figcaption{position:absolute;left:13px;bottom:13px;border-radius:99px;background:rgba(9,45,103,.9);padding:5px 10px;color:#fff;font-size:.67rem;font-weight:700}.faith-section{position:relative;overflow:hidden;background:linear-gradient(125deg,#071f4a,#124789);color:#fff;padding:100px 0}.faith-section:before{content:"";position:absolute;width:570px;height:570px;border:70px solid rgba(234,220,191,.12);border-radius:50%;right:-190px;top:-260px}.faith-section__inner{position:relative;z-index:1}.faith-section h2{color:#fff}.faith-section h2 em{color:var(--sand)}.faith-section .eyebrow{color:#cfe1ff}.faith-section__intro{max-width:570px;margin:24px 0 36px;color:#d4e2f6}.faith-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px;max-width:800px}.faith-card{padding:25px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);border-radius:18px;backdrop-filter:blur(8px)}.faith-card__icon{display:grid;place-items:center;width:45px;height:45px;border-radius:11px;background:var(--sand);color:var(--navy);font-size:1.25rem}.faith-card p{margin:18px 0 1px;text-transform:uppercase;letter-spacing:.1em;font-size:.62rem;color:#c4d8f5;font-weight:700}.faith-card h3{font:700 2rem/1 var(--display);margin:0;color:#fff}.faith-card small{display:block;margin-top:6px;color:#dbe8f9;font-size:.7rem}
@media(max-width:760px){.activities-intro{padding:65px 0 42px}.activities-intro__layout,.activities-layout,.activities-layout--reverse{grid-template-columns:1fr;gap:32px}.activities-section{padding:65px 0}.activities-copy{order:0}.activities-image{height:330px}.club-list,.sport-grid{grid-template-columns:1fr}.sports-photo-grid{margin-top:8px}.sports-photo-grid figure:nth-child(2){transform:translateY(25px)}.sports-photo-grid img{height:260px}.sports-photo-grid figure:nth-child(2) img{height:215px}.faith-section{padding:70px 0}.faith-cards{grid-template-columns:1fr}}

/* Clubs page */
.clubs-hero{position:relative;overflow:hidden;background:linear-gradient(115deg,rgba(5,29,69,.94),rgba(14,69,138,.8)),url("../images/IMG_1910.PNG") center/cover;color:#fff}.clubs-hero:after{content:"";position:absolute;width:450px;height:450px;border:65px solid rgba(234,220,191,.15);border-radius:50%;right:-120px;bottom:-270px}.clubs-hero .container{position:relative;z-index:1}.clubs-page-intro{padding:105px 0 70px;background:#fff}.clubs-page-intro__grid{display:grid;grid-template-columns:1fr .72fr;gap:90px;align-items:end}.clubs-page-intro h2,.clubs-directory__heading h2,.clubs-join h2{font:700 clamp(2.7rem,4.2vw,4.25rem)/.94 var(--display);letter-spacing:-.045em;color:var(--navy);margin:0}.clubs-page-intro h2 em,.clubs-directory__heading h2 em,.clubs-join h2 em{font-weight:600;color:var(--brown)}.clubs-page-intro__grid>p{max-width:440px;margin:0;color:var(--muted);font-size:.94rem}.clubs-directory{padding:34px 0 105px;background:linear-gradient(180deg,#f8f4ea,#fff)}.clubs-directory__heading{margin-bottom:36px}.clubs-directory__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.club-directory-card{background:#fff;border:1px solid #e0e8f2;border-radius:18px;padding:25px;box-shadow:0 12px 28px rgba(9,45,103,.06);transition:transform .22s,box-shadow .22s}.club-directory-card:hover{transform:translateY(-6px);box-shadow:0 20px 38px rgba(9,45,103,.13)}.club-directory-card>span{display:grid;place-items:center;width:43px;height:43px;border-radius:11px;background:#e8f0fb;color:var(--royal);font-size:1.12rem}.club-directory-card:nth-child(2)>span,.club-directory-card:nth-child(5)>span{background:#f8eedb;color:var(--brown)}.club-directory-card:nth-child(3)>span,.club-directory-card:nth-child(6)>span{background:#e6f3ea;color:#287348}.club-directory-card small{display:block;margin:19px 0 3px;color:var(--brown);font-size:.61rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.club-directory-card h3{margin:0;color:var(--navy);font:700 1.7rem var(--display)}.club-directory-card p{margin:9px 0 0;color:var(--muted);font-size:.77rem}.clubs-join{padding:0 0 105px;background:#fff}.clubs-join__panel{position:relative;isolation:isolate;overflow:hidden;display:grid;grid-template-columns:1fr 285px auto;gap:35px;align-items:center;padding:42px;background:linear-gradient(120deg,#08275a,#124b91);border-radius:22px;color:#fff}.clubs-join h2{color:#fff;font-size:clamp(2.35rem,3.6vw,3.4rem)}.clubs-join h2 em{color:var(--sand)}.clubs-join p:not(.eyebrow){max-width:390px;margin:17px 0 0;color:#d5e4fa;font-size:.82rem}.clubs-join .eyebrow{margin-bottom:14px}.clubs-join img{width:100%;height:165px;object-fit:cover;border-radius:14px}.clubs-join .button{justify-self:end}
@media(max-width:850px){.clubs-directory__grid{grid-template-columns:repeat(2,1fr)}.clubs-join__panel{grid-template-columns:1fr auto}.clubs-join img{display:none}}@media(max-width:760px){.clubs-page-intro{padding:65px 0 42px}.clubs-page-intro__grid{grid-template-columns:1fr;gap:24px}.clubs-directory{padding:22px 0 65px}.clubs-directory__grid{grid-template-columns:1fr}.clubs-join{padding-bottom:65px}.clubs-join__panel{grid-template-columns:1fr;padding:28px}.clubs-join .button{justify-self:start}}

/* Refined motion system */
@keyframes page-rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@keyframes soft-pulse{0%,100%{transform:scale(1);opacity:.22}50%{transform:scale(1.08);opacity:.34}}
@keyframes image-drift{0%,100%{transform:scale(1.01) translate3d(0,0,0)}50%{transform:scale(1.05) translate3d(-.6%,-.4%,0)}}
.page-hero .container,.clubs-hero .container{animation:page-rise .75s cubic-bezier(.2,.8,.2,1) both}.page-hero h1,.clubs-hero h1{animation:page-rise .85s cubic-bezier(.2,.8,.2,1) both .08s}.page-hero p:not(.breadcrumb),.clubs-hero p:not(.breadcrumb){animation:page-rise .85s cubic-bezier(.2,.8,.2,1) both .17s}.hero:after,.clubs-hero:after,.faith-section:before{animation:soft-pulse 8s ease-in-out infinite}.clubs-hero{background-size:cover}.clubs-hero:before{content:"";position:absolute;inset:0;background:inherit;z-index:-1;animation:image-drift 13s ease-in-out infinite}.nav-dropdown-menu{transform-origin:top left;animation:dropdown-in .2s ease both}@keyframes dropdown-in{from{opacity:0;transform:translateY(-5px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.nav-dropdown-menu a{overflow:hidden}.nav-dropdown-menu a:before{content:"";position:absolute;left:7px;top:50%;width:4px;height:4px;border-radius:50%;background:var(--sand);opacity:0;transform:translateY(-50%) scale(0);transition:.18s}.nav-dropdown-menu a:hover:before,.nav-dropdown-menu a.active:before{opacity:1;transform:translateY(-50%) scale(1)}.nav-dropdown-menu a:hover,.nav-dropdown-menu a.active{padding-left:19px}.reveal{opacity:0;transform:translateY(22px);transition:opacity .65s ease var(--reveal-delay,0ms),transform .65s cubic-bezier(.2,.75,.25,1) var(--reveal-delay,0ms)}.reveal.is-visible{opacity:1;transform:translateY(0)}.feature-card,.program-card,.club-directory-card,.faith-card,.sport-grid>div,.club-list span{transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s ease,border-color .25s ease,background .25s ease}.program-card:hover,.faith-card:hover{transform:translateY(-8px);border-color:rgba(234,220,191,.6);box-shadow:0 20px 34px rgba(1,21,57,.2)}.sport-grid>div:hover,.club-list span:hover{transform:translateY(-4px);border-color:#aac6e9;box-shadow:0 12px 22px rgba(9,45,103,.1)}.activities-image img,.sports-photo-grid img,.clubs-join img{transition:transform .65s cubic-bezier(.2,.75,.25,1),filter .5s ease}.activities-image:hover img,.sports-photo-grid figure:hover img,.clubs-join__panel:hover img{transform:scale(1.055);filter:saturate(1.07)}.button,.nav-button{transition:transform .22s cubic-bezier(.2,.8,.2,1),box-shadow .22s ease,filter .22s ease}.button:hover,.nav-button:hover{filter:brightness(1.04)}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}
.reveal-text{opacity:0;clip-path:inset(0 0 110% 0);transform:translateY(1.1em);transition:opacity .6s ease var(--reveal-delay,0ms),transform .7s cubic-bezier(.2,.75,.25,1) var(--reveal-delay,0ms),clip-path .7s cubic-bezier(.2,.75,.25,1) var(--reveal-delay,0ms)}.reveal-text.is-visible{opacity:1;clip-path:inset(0);transform:translateY(0)}@media(prefers-reduced-motion:reduce){.reveal-text{opacity:1;clip-path:none;transform:none}}

/* Responsive interaction polish */
@media(hover:hover){.club-directory-card:hover>span,.feature-card:hover .icon{transform:rotate(-7deg) scale(1.08)}.club-directory-card>span,.feature-card .icon{transition:transform .3s cubic-bezier(.2,.8,.2,1)}.sports-photo-grid figure{transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s ease}.sports-photo-grid figure:hover{transform:translateY(-7px) rotate(-.8deg);box-shadow:0 24px 46px rgba(9,45,103,.2)}.sports-photo-grid figure:nth-child(2):hover{transform:translateY(34px) rotate(.8deg)}}
@media(max-width:980px){.container{width:min(1140px,calc(100% - 32px))}.section{padding:80px 0}.section-heading{gap:30px;margin-bottom:32px}.page-hero{min-height:355px}.clubs-page-intro__grid{gap:46px}.activities-layout{gap:42px}}
@media(max-width:760px){.main-nav{display:flex;visibility:hidden;pointer-events:none;opacity:0;max-height:0;overflow:hidden;transform:translateY(-9px);padding:0 20px;transition:opacity .22s ease,transform .28s cubic-bezier(.2,.8,.2,1),max-height .36s ease,padding .3s ease}.main-nav.open{visibility:visible;pointer-events:auto;opacity:1;max-height:min(75vh,620px);overflow-y:auto;transform:translateY(0);padding:12px 20px 16px}.main-nav.open>a,.main-nav.open>.nav-dropdown{animation:nav-item-in .3s cubic-bezier(.2,.8,.2,1) both var(--nav-item-delay,0ms)}.main-nav>a,.main-nav>.nav-dropdown{width:100%}.main-nav>a{border-radius:9px}.main-nav>a:hover{background:#f0f5fc}.menu-toggle{transition:transform .22s ease,background .22s ease,box-shadow .22s ease}.menu-toggle[aria-expanded="true"]{transform:rotate(2deg);background:#edf4fc;box-shadow:0 6px 15px rgba(9,45,103,.12)}.nav-dropdown-menu{animation:none}.nav-dropdown-menu:before{display:none}.nav-dropdown-menu a{padding:9px 10px}.nav-dropdown-menu a:hover,.nav-dropdown-menu a.active{padding-left:17px}.page-hero .container,.clubs-hero .container{padding-top:52px;padding-bottom:52px}.page-hero h1,.clubs-hero h1{font-size:clamp(2.7rem,12vw,3.55rem)}.page-hero p:not(.breadcrumb),.clubs-hero p:not(.breadcrumb){font-size:.9rem;max-width:34rem}.section-heading{display:block}.section-heading .intro{margin-top:17px}.feature-grid{gap:12px}.feature-card{padding:20px 17px}.clubs-directory__grid,.faith-cards{gap:13px}.club-directory-card{padding:21px}.clubs-join__panel{border-radius:18px}.cta-panel{border-radius:18px}.floating-wa,.floating-admission{width:45px;height:45px;bottom:17px}.floating-admission{bottom:72px}}
@media(max-width:420px){.container{width:calc(100% - 24px)}.brand{gap:7px}.brand img{width:36px;height:43px}.brand strong{font-size:.69rem}.brand span{font-size:.42rem}.menu-toggle{padding:7px 8px;font-size:.75rem}.hero-grid{padding:50px 0 42px}.hero h1{font-size:2.8rem}.club-list span,.sport-grid>div{padding:10px}.image-caption{left:12px;bottom:12px;padding:9px 11px}.clubs-page-intro h2,.clubs-directory__heading h2{font-size:2.6rem}}
@keyframes nav-item-in{from{opacity:0;transform:translateX(-10px)}to{opacity:1;transform:translateX(0)}}

/* Eye-catching, but still refined, visual transitions */
@keyframes aurora-sweep{0%{transform:translateX(-120%) skewX(-18deg);opacity:0}18%{opacity:.24}65%{opacity:.15}100%{transform:translateX(250%) skewX(-18deg);opacity:0}}
@keyframes title-glow{0%,100%{text-shadow:0 0 0 rgba(245,211,139,0)}50%{text-shadow:0 8px 28px rgba(245,211,139,.22)}}
@keyframes badge-bob{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-7px) rotate(-2deg)}}
@keyframes border-travel{0%{background-position:0% 50%}100%{background-position:200% 50%}}
.page-hero,.clubs-hero{isolation:isolate}.page-hero:before,.clubs-hero:before{content:"";position:absolute;z-index:-1;top:-20%;bottom:-20%;width:32%;left:0;background:linear-gradient(90deg,transparent,rgba(255,239,190,.8),transparent);filter:blur(10px);pointer-events:none;animation:aurora-sweep 8s cubic-bezier(.25,.7,.25,1) infinite}.page-hero h1 em,.clubs-hero h1 em{animation:title-glow 3.5s ease-in-out infinite}.feature-card,.club-directory-card,.faith-card{position:relative;overflow:hidden}.feature-card:after,.club-directory-card:after,.faith-card:after{content:"";position:absolute;inset:auto -30% 0;height:3px;background:linear-gradient(90deg,transparent,var(--sand),#7bb3ff,var(--sand),transparent);background-size:200% 100%;transform:translateX(-70%);transition:transform .45s cubic-bezier(.2,.8,.2,1)}.feature-card:hover:after,.club-directory-card:hover:after,.faith-card:hover:after{transform:translateX(20%);animation:border-travel 1.2s linear infinite}.feature-card:hover,.club-directory-card:hover{transform:translateY(-9px) scale(1.015)}.faith-card:hover{transform:translateY(-9px) scale(1.01)}.image-caption,.clubs-join .button{animation:badge-bob 4.5s ease-in-out infinite}.image-caption:hover,.clubs-join .button:hover{animation-play-state:paused}.sports-photo-grid figure:after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 25%,rgba(255,255,255,.52) 48%,transparent 68%);transform:translateX(-135%);transition:transform .7s cubic-bezier(.2,.8,.2,1);pointer-events:none}.sports-photo-grid figure:hover:after{transform:translateX(135%)}.button.gold{position:relative;overflow:hidden}.button.gold:after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 25%,rgba(255,255,255,.45) 48%,transparent 70%);transform:translateX(-120%);transition:transform .5s ease}.button.gold:hover:after{transform:translateX(120%)}
@media(max-width:760px){.page-hero:before,.clubs-hero:before{width:52%;animation-duration:10s}.feature-card:hover,.club-directory-card:hover,.faith-card:hover{transform:translateY(-4px) scale(1)}.image-caption,.clubs-join .button{animation-duration:5.5s}}
@media(prefers-reduced-motion:reduce){.page-hero:before,.clubs-hero:before,.page-hero h1 em,.clubs-hero h1 em,.image-caption,.clubs-join .button{animation:none!important}}

.faith-clubs-heading{margin:70px 0 28px;padding-top:55px;border-top:1px solid #d9e4ef}.faith-clubs-heading h2{font:700 clamp(2.35rem,3.6vw,3.35rem)/.95 var(--display);letter-spacing:-.04em;color:var(--navy);margin:0}.faith-clubs-heading h2 em{font-weight:600;color:var(--brown)}.faith-clubs-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:760px}.club-directory-card--faith{background:linear-gradient(145deg,#fff,#f2f7fd)}.club-directory-card--faith>span{background:var(--navy)!important;color:var(--sand)!important}@media(max-width:760px){.faith-clubs-heading{margin-top:50px;padding-top:42px}.faith-clubs-grid{grid-template-columns:1fr}}

.club-gallery-heading,.sports-clubs-heading{margin:75px 0 28px;padding-top:55px;border-top:1px solid #d9e4ef}.club-gallery-heading h2,.sports-clubs-heading h2{font:700 clamp(2.35rem,3.6vw,3.35rem)/.95 var(--display);letter-spacing:-.04em;color:var(--navy);margin:0}.club-gallery-heading h2 em,.sports-clubs-heading h2 em{font-weight:600;color:var(--brown)}.club-gallery{display:grid;grid-template-columns:1.25fr .75fr;grid-template-rows:190px 190px;gap:14px}.club-gallery__tile{position:relative;overflow:hidden;margin:0;border-radius:18px;min-height:0;background:var(--navy)}.club-gallery__tile--large{grid-row:span 2}.club-gallery__tile img,.sports-gallery__card img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.8,.2,1),filter .5s ease}.club-gallery__tile:after,.sports-gallery__card:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 24%,rgba(4,26,62,.85));pointer-events:none}.club-gallery__tile figcaption{position:absolute;z-index:1;left:20px;right:20px;bottom:17px;color:#fff}.club-gallery__tile figcaption span,.sports-gallery__card span{display:block;margin-bottom:3px;color:var(--sand);font-size:.61rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.club-gallery__tile figcaption strong{font:700 1.35rem/1 var(--display)}.club-gallery__tile:hover img,.sports-gallery__card:hover img{transform:scale(1.08);filter:saturate(1.1)}.sports-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.sports-gallery__card{position:relative;overflow:hidden;height:285px;border-radius:18px;background:var(--navy);box-shadow:0 13px 28px rgba(9,45,103,.12);transition:transform .28s cubic-bezier(.2,.8,.2,1),box-shadow .28s ease}.sports-gallery__card:hover{transform:translateY(-7px);box-shadow:0 24px 40px rgba(9,45,103,.2)}.sports-gallery__card div{position:absolute;z-index:1;bottom:19px;left:20px;right:20px;color:#fff}.sports-gallery__card h3{margin:0;font:700 1.45rem/1.05 var(--display)}@media(max-width:760px){.club-gallery-heading,.sports-clubs-heading{margin-top:50px;padding-top:42px}.club-gallery{grid-template-columns:1fr 1fr;grid-template-rows:170px 170px;gap:10px}.club-gallery__tile--large{grid-row:span 2}.club-gallery__tile figcaption{left:13px;bottom:13px}.club-gallery__tile figcaption strong{font-size:1.1rem}.sports-gallery{grid-template-columns:1fr;gap:12px}.sports-gallery__card{height:230px}}

/* Lead with visual storytelling on the Student Activities page. */
.clubs-directory .container{display:flex;flex-direction:column}.clubs-directory .sports-clubs-heading{order:1;margin-top:0;padding-top:0;border-top:0}.clubs-directory .sports-gallery{order:2;grid-template-columns:repeat(2,minmax(0,1fr))}.clubs-directory .clubs-directory__heading{order:3;margin-top:82px}.clubs-directory .clubs-directory__heading + .clubs-directory__grid{order:4}.clubs-directory .club-gallery-heading{order:5}.clubs-directory .club-gallery{order:6}.clubs-directory .faith-clubs-heading{order:7}.clubs-directory .faith-clubs-grid{order:8}
@media(max-width:760px){.clubs-directory .clubs-directory__heading{margin-top:58px}.clubs-directory .sports-gallery{grid-template-columns:1fr}}
@keyframes photo-sweep{0%{transform:translateX(-135%) skewX(-16deg)}100%{transform:translateX(135%) skewX(-16deg)}}.campus-frame{overflow:hidden;transition:transform .5s cubic-bezier(.2,.8,.2,1),box-shadow .5s ease}.campus-frame img,.life-photo img,.activities-image img,.sports-photo-grid img,.club-gallery__tile img,.sports-gallery__card img,.clubs-join img{transform:scale(1.015);transition:transform .85s cubic-bezier(.2,.75,.25,1),filter .65s ease}.gallery-tile .gallery-art{transition:transform .85s cubic-bezier(.2,.75,.25,1),filter .65s ease}.campus-frame:after,.sports-photo-grid figure:after,.gallery-tile:before{content:"";position:absolute;z-index:1;top:0;bottom:0;width:40%;left:-45%;pointer-events:none;background:linear-gradient(105deg,transparent,rgba(255,255,255,.34),transparent)}.sports-photo-grid figcaption,.gallery-tile span{z-index:2}@media(hover:hover){.campus-frame:hover{transform:translateY(-7px) rotate(-.7deg);box-shadow:25px 30px 0 rgba(1,22,60,.2)}.sports-photo-grid figure:hover,.club-gallery__tile:hover,.sports-gallery__card:hover{transform:translateY(-7px) rotate(-.45deg)}.campus-frame:hover img,.life-photo:hover img,.activities-image:hover img,.sports-photo-grid figure:hover img,.club-gallery__tile:hover img,.sports-gallery__card:hover img,.clubs-join__panel:hover img{transform:scale(1.1) rotate(.45deg);filter:saturate(1.12) contrast(1.03)}.gallery-tile:hover .gallery-art,.gallery-tile:focus-visible .gallery-art{transform:scale(1.1) rotate(.55deg);filter:saturate(1.12) contrast(1.03)}.campus-frame:hover:after,.sports-photo-grid figure:hover:after,.gallery-tile:hover:before,.gallery-tile:focus-visible:before{animation:photo-sweep .8s cubic-bezier(.2,.75,.25,1) both}}@media(prefers-reduced-motion:reduce){.campus-frame:hover,.sports-photo-grid figure:hover,.club-gallery__tile:hover,.sports-gallery__card:hover{transform:none}.campus-frame:hover img,.life-photo:hover img,.activities-image:hover img,.sports-photo-grid figure:hover img,.club-gallery__tile:hover img,.sports-gallery__card:hover img,.clubs-join__panel:hover img,.gallery-tile:hover .gallery-art{transform:none}}
@keyframes campus-float{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-11px) rotate(-.8deg)}}@keyframes note-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}@keyframes cta-flow{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}@keyframes contact-pulse{0%,100%{box-shadow:0 0 0 0 rgba(37,211,102,.26)}55%{box-shadow:0 0 0 11px rgba(37,211,102,0)}}.hero-visual .campus-frame{animation:campus-float 6.5s ease-in-out infinite}.hero-visual .campus-frame:hover{animation-play-state:paused}.float-note{animation:note-float 5.2s ease-in-out infinite}.note-bottom{animation-delay:-2.6s}.cta-panel{background-size:180% 180%;animation:cta-flow 10s ease-in-out infinite}.floating-wa{animation:contact-pulse 3.2s ease-out infinite}.floating-admission{animation:contact-pulse 3.2s ease-out 1.1s infinite}.floating-wa:hover,.floating-admission:hover{animation-play-state:paused}@media(prefers-reduced-motion:reduce){.hero-visual .campus-frame,.float-note,.cta-panel,.floating-wa,.floating-admission{animation:none}}
.admission-shell {
grid-template-columns:.95fr 1.05fr;
gap:34px}
.admission-aside {
background:radial-gradient(circle at top left,rgba(255,255,255,.18),rgba(255,255,255,0)),linear-gradient(180deg,#0f2a5c,#06336e);
border:1px solid rgba(255,255,255,.12);
box-shadow:0 28px 58px rgba(9,45,103,.14);
padding:38px;
min-height:fit-content;
position:sticky;
top:100px}
.admission-aside:before {
content:"";
position:absolute;
inset:0;
background:radial-gradient(circle at 20% 15%,rgba(255,255,255,.25),transparent 35%);
pointer-events:none;
border-radius:15px}
.admission-aside>* {
position:relative;
z-index:1}
.admission-aside .eyebrow {
color:#a9c9ff;
letter-spacing:.18em;
text-transform:uppercase;
font-size:.72rem;
margin-bottom:18px}
.admission-aside h2 {
font-size:2.35rem;
letter-spacing:-.02em}
.admission-aside p {
font-size:.94rem;
max-width:370px;
line-height:1.8;
color:#d3e2fa}
.admission-aside .steps {
margin-top:30px;
display:grid;
gap:14px}
.steps div {
background:rgba(255,255,255,.08);
border:1px solid rgba(255,255,255,.14);
border-radius:16px;
padding:18px 18px 16px;
gap:10px;
display:grid}
.steps b {
width:34px;
height:34px;
border-radius:50%;
background:var(--sand);
color:var(--navy);
font-size:.88rem;
font-weight:800;
display:grid;
place-items:center;
box-shadow:inset 0 1px 0 rgba(255,255,255,.6)}
.steps span {
font-size:.85rem;
color:#e4f2ff;
line-height:1.5}
#admission-form {
animation:fade-up .9s ease both .15s}
.admission-form {
background:rgba(255,255,255,.98);
border:1px solid rgba(30,69,130,.12);
box-shadow:0 26px 70px rgba(18,59,117,.12);
border-radius:24px;
padding:36px}
.form-title {
background:#f9fbff;
border-radius:16px;
border:1px solid rgba(41,97,183,.12);
padding:22px 24px 18px;
margin-bottom:28px;
box-shadow:inset 0 1px 1px rgba(255,255,255,.85)}
.form-title h2 {
font-size:2rem;
color:var(--navy)}
.form-title span {
color:var(--royal);
font-size:.82rem;
text-transform:uppercase;
letter-spacing:.14em}
.form-section {
margin-bottom:28px}
.form-section legend {
font-size:.82rem;
letter-spacing:.14em;
color:var(--navy);
border-bottom:1px solid rgba(41,97,183,.15);
padding-bottom:11px;
margin-bottom:18px}
.field-grid {
display:grid;
grid-template-columns:repeat(2,minmax(0,1fr));
gap:18px}
.field-grid label {
display:block;
position:relative;
font-size:.8rem;
color:#344264}
.field-grid input,.field-grid select,.field-grid textarea {
background:#f8fbff;
border:1px solid rgba(30,69,130,.18);
border-radius:14px;
padding:14px 15px;
margin-top:8px;
transition:.25s;
box-shadow:inset 0 6px 18px rgba(13,39,92,.04)}
.field-grid input:focus,.field-grid select:focus,.field-grid textarea:focus {
border-color:var(--royal);
box-shadow:0 0 0 4px rgba(25,93,161,.12);
outline:none}
.upload-grid {
grid-template-columns:repeat(2,minmax(0,1fr));
gap:14px}
.upload-field {
background:rgba(13,54,117,.05);
border:1px dashed rgba(30,69,130,.18);
border-radius:14px;
padding:18px;
transition:.25s}
.upload-field:hover {
background:rgba(13,54,117,.08)}
.upload-field label {
font-size:.8rem;
color:var(--royal)}
.upload-field input {
padding:0;
margin-top:10px}
.consent {
gap:10px;
font-size:.82rem;
color:#4f5e75}
.button.primary {
background:linear-gradient(135deg,#164d9b,#3f73d4);
color:#fff;
box-shadow:0 16px 32px rgba(22,77,155,.18);
padding:14px 22px;
border-radius:14px}
.button.primary:hover {
transform:translateY(-1px)}
.form-message {
display:none;
padding:15px 16px;
border-radius:14px;
background:#eaf7f2;
color:#124a38;
font-size:.88rem;
font-weight:700;
margin-top:18px;
opacity:0;
transform:translateY(10px);
transition:opacity .28s ease,transform .28s ease}
.form-message.show {
display:block;
opacity:1;
transform:translateY(0)}
.form-message.error {
background:#fff0f0;
color:#9d2020}
.form-trap {
position:absolute!important;
left:-9999px!important;
width:1px!important;
height:1px!important;
overflow:hidden!important}
@keyframes fade-up {
0% {
opacity:0;
transform:translateY(18px)}
100% {
opacity:1;
transform:translateY(0)}
}

/* Real-photo gallery layout and square school crest. */
.site-header .brand img {
width:68px;
height:68px;
aspect-ratio:1;
object-fit:contain;
flex:0 0 68px}
.gallery-tile .gallery-art {
background:none;
object-fit:cover;
object-position:center}
.gallery-page .gallery-tile:first-child {
grid-row:auto}
.gallery-grid.gallery-page {
grid-template-columns:repeat(3,minmax(0,1fr))!important;
grid-template-rows:none!important;
grid-auto-rows:250px}
.gallery-page .gallery-tile {
height:250px!important}
@media(max-width:980px) {
.gallery-grid.gallery-page {
grid-template-columns:repeat(2,minmax(0,1fr))!important;
grid-auto-rows:220px}
.gallery-page .gallery-tile {
height:220px!important}
}
@media(max-width:760px) {
.site-header .brand img {
width:56px;
height:56px;
flex-basis:56px}
}
@media(max-width:560px) {
.gallery-grid.gallery-page {
grid-template-columns:1fr!important;
grid-auto-rows:230px}
.gallery-page .gallery-tile {
height:230px!important}
}

/* Admissions application: responsive on screen, A4-ready in print. */
body.admission-page {
background:linear-gradient(180deg,#f7faff 0%,#eef4fb 48%,#f9f5ec 100%)}
.admission-page .content-section {
padding:clamp(54px,7vw,96px) 0}
.admission-page .admission-shell {
width:min(1460px,calc(100% - 48px));
max-width:none;
grid-template-columns:minmax(300px,.46fr) minmax(0,1fr);
gap:clamp(24px,4vw,58px)}
.admission-aside {
border-radius:22px}
.admission-assurance {
display:flex;
align-items:center;
gap:12px;
margin:25px 0 0;
padding:14px;
background:rgba(255,255,255,.1);
border:1px solid rgba(255,255,255,.16);
border-radius:14px}
.admission-assurance > i {
font-size:1.35rem;
color:var(--sand)}
.admission-assurance strong,.admission-assurance small {
display:block}
.admission-assurance strong {
font-size:.8rem}
.admission-assurance small {
margin-top:2px;
font-size:.7rem;
color:#cfe0fb}
.admission-aside__note {
display:flex;
gap:8px;
align-items:flex-start;
margin:17px 0 0!important;
font-size:.76rem!important;
line-height:1.55!important}
.admission-aside__note i {
color:var(--sand);
margin-top:3px}
.admission-form {
width:min(100%,210mm);
min-height:297mm;
justify-self:end;
border-radius:24px}
.form-title {
align-items:flex-end;
gap:18px}
.form-title > div {
min-width:0}
.form-kicker {
margin:0 0 5px;
color:var(--royal);
font-size:.7rem;
font-weight:800;
letter-spacing:.14em;
text-transform:uppercase}
.form-title span {
display:inline-flex;
align-items:center;
gap:7px;
white-space:nowrap}
.application-intro {
display:flex;
align-items:flex-start;
gap:12px;
padding:15px 16px;
margin:-8px 0 14px;
border:1px solid #dce7f5;
border-radius:14px;
background:linear-gradient(135deg,#f3f8ff,#fbfdff);
color:#4e617f;
font-size:.82rem;
line-height:1.6}
.application-intro > i {
color:var(--royal);
font-size:1.1rem;
margin-top:2px}
.application-intro p {
margin:0}
.application-meta {
display:flex;
flex-wrap:wrap;
gap:8px;
margin:0 0 30px}
.application-meta span {
display:inline-flex;
align-items:center;
gap:6px;
padding:6px 9px;
border:1px solid #dce7f5;
border-radius:999px;
background:#fff;
color:#536887;
font-size:.67rem;
font-weight:700}
.application-meta i {
color:var(--royal)}
.form-section legend {
width:100%}
.upload-help strong {
color:var(--royal)}
.attachment-summary {
display:flex;
align-items:center;
gap:7px;
margin:13px 0 15px;
padding:10px 12px;
border:1px solid #dce7f5;
border-radius:11px;
background:#f7faff;
color:#536887;
font-size:.75rem;
font-weight:700}
.attachment-summary i {
color:var(--royal)}
.attachment-summary.is-selected {
border-color:#bad9c7;
background:#f0faf4;
color:#256343}
.attachment-summary.is-error {
border-color:#edb9b9;
background:#fff5f5;
color:#9d2020}
.upload-field {
min-height:138px;
display:flex;
flex-direction:column;
justify-content:space-between}
.upload-field.is-selected {
background:#f0faf4;
border-color:#71b58d;
border-style:solid}
.upload-field.is-error {
background:#fff5f5;
border-color:#dc7676;
border-style:solid}
.upload-field label {
display:block}
.upload-field label > span {
display:block}
.upload-field input[type=file] {
display:block;
width:100%;
max-width:100%;
padding:0;
margin-top:12px;
color:#60708a;
font-size:.72rem;
cursor:pointer}
.upload-field input[type=file]::file-selector-button {
margin-right:9px;
padding:7px 10px;
border:0;
border-radius:8px;
background:var(--navy);
color:#fff;
font-weight:700;
cursor:pointer}
[data-file-summary] {
display:flex;
align-items:flex-start;
gap:6px;
min-height:20px;
margin-top:11px;
color:#60708a;
font-size:.69rem;
font-weight:700;
line-height:1.4;
overflow-wrap:anywhere}
.upload-field.is-selected [data-file-summary] {
color:#256343}
.upload-field.is-selected [data-file-summary] i {
color:#2f9a58}
.upload-field.is-error [data-file-summary] {
color:#9d2020}
.attachment-note {
display:flex;
align-items:flex-start;
gap:7px;
margin:14px 0 0;
color:#6e7d92;
font-size:.71rem;
line-height:1.55}
.attachment-note i {
color:var(--brown);
margin-top:2px}
.human-check {
padding:0}
.robot-check {
display:flex;
align-items:center;
justify-content:space-between;
gap:15px;
min-height:78px;
padding:14px 16px;
border:1px solid #cbd9eb;
border-radius:16px;
background:linear-gradient(135deg,#f9fbff,#f2f7fe)}
.robot-check__box {
display:flex;
align-items:center;
gap:12px;
min-width:0;
margin:0!important;
cursor:pointer}
.robot-check__box input {
position:absolute;
opacity:0;
pointer-events:none}
.robot-check__control {
display:grid;
place-items:center;
width:27px;
height:27px;
flex:0 0 27px;
border:2px solid #8ba5c8;
border-radius:6px;
background:#fff;
color:#fff;
transition:.2s}
.robot-check__control i {
opacity:0;
font-size:1.1rem;
line-height:1}
.robot-check__box input:checked + .robot-check__control {
border-color:#2f9a58;
background:#2f9a58}
.robot-check__box input:checked + .robot-check__control i {
opacity:1}
.robot-check__box:has(input:focus-visible) .robot-check__control {
outline:3px solid rgba(22,77,155,.25);
outline-offset:3px}
.robot-check__label {
color:#273b5e;
font-size:.95rem;
font-weight:700}
.robot-check__brand {
display:flex;
flex-direction:column;
align-items:center;
gap:3px;
color:#557099;
font-size:1.25rem}
.robot-check__brand small {
font-size:.56rem;
font-weight:700;
letter-spacing:.06em;
text-transform:uppercase}
.admission-submit {
width:100%;
margin-top:2px}
.admission-submit:disabled {
cursor:not-allowed;
opacity:.58;
box-shadow:none;
transform:none}
.submit-help {
display:flex;
align-items:flex-start;
gap:7px;
margin:12px 0 0;
color:#697991;
font-size:.72rem;
line-height:1.5}
.submit-help i {
color:var(--royal);
margin-top:2px}
.admission-form .form-message {
line-height:1.55}

/* Make the admission declaration clearly visible and easy to select. */
.admission-form .consent {
align-items:flex-start;
gap:14px;
margin:20px 0;
padding:16px 18px;
border:1px solid #c9d9ef;
border-radius:14px;
background:#f6faff;
color:#263c61;
font-size:.92rem;
font-weight:600;
line-height:1.55;
cursor:pointer}
.admission-form .consent input[type=checkbox] {
appearance:auto;
width:26px;
height:26px;
min-width:26px;
margin:1px 0 0;
accent-color:var(--royal);
cursor:pointer}
.admission-form .consent:has(input:focus-visible) {
outline:3px solid rgba(22,77,155,.25);
outline-offset:3px}
.admission-form .field-grid > label,
.admission-form .upload-field label > span {
font-weight:800;
color:#263c61}
.admission-submit.is-loading {
cursor:wait}
.admission-submit__loading {
display:none;
align-items:center;
gap:9px}
.admission-submit.is-loading .admission-submit__loading {
display:inline-flex}
.admission-submit.is-loading .admission-submit__label,
.admission-submit.is-loading > .bi {
display:none}
.admission-submit__spinner {
width:16px;
height:16px;
border:2px solid rgba(255,255,255,.42);
border-top-color:#fff;
border-radius:50%;
animation:admission-submit-spin .75s linear infinite}
@keyframes admission-submit-spin {
to {transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce) {
.admission-submit__spinner {animation:none}}

/* Home-page photo slideshow. */
.hero-slideshow {
isolation:isolate}
.hero-slideshow__slides {
position:relative;
width:100%;
height:100%;
overflow:hidden;
border-radius:inherit}
.hero-slideshow__slides img {
position:absolute;
inset:0;
width:100%;
height:100%;
object-fit:cover;
opacity:0;
transform:scale(1.08) translateX(4%);
transition:opacity .75s ease,transform 5.6s ease;
will-change:opacity,transform}
.hero-slideshow__slides img.is-active {
opacity:1;
transform:scale(1.015) translateX(0)}
.hero-slideshow__dots {
position:absolute;
z-index:3;
left:50%;
bottom:20px;
display:flex;
gap:7px;
transform:translateX(-50%)}
.hero-slideshow__dots button {
width:8px;
height:8px;
padding:0;
border:1px solid rgba(255,255,255,.85);
border-radius:50%;
background:rgba(255,255,255,.36);
cursor:pointer;
transition:width .25s ease,background .25s ease,transform .25s ease}
.hero-slideshow__dots button.is-active {
width:24px;
border-radius:99px;
background:#fff}
.hero-slideshow__dots button:focus-visible {
outline:3px solid var(--sand);
outline-offset:4px}
@media(max-width:760px) {
.hero-slideshow__dots {bottom:15px}}
@media(prefers-reduced-motion:reduce) {
.hero-slideshow__slides img {transition:none}}

@media(max-width:1180px) {
.admission-page .admission-shell {
width:min(1140px,calc(100% - 40px));
grid-template-columns:minmax(270px,.7fr) minmax(0,1.3fr);
gap:28px}
.admission-form {
min-height:0}}
@media(max-width:980px) {
.admission-page .admission-shell {
grid-template-columns:1fr;
width:min(780px,calc(100% - 32px))}
.admission-aside {
position:relative;
top:0}
.admission-form {
width:100%;
justify-self:stretch}}
@media(max-width:560px) {
.admission-page .admission-shell {
width:calc(100% - 24px)}
.admission-aside,.admission-form {
padding:22px;
border-radius:18px}
.form-title {
align-items:flex-start;
flex-direction:column;
padding:18px}
.form-title h2 {
font-size:1.75rem}
.application-meta {
margin-bottom:24px}
.upload-field {
min-height:128px}
.robot-check {
padding:13px}
.robot-check__brand {
display:none}}

@page {
size:A4;
margin:10mm}
@media print {
html,body {
background:#fff!important;
font-size:10pt}
.topline,.site-header,.page-hero,.admission-aside,.site-footer,.floating-wa,.floating-admission {
display:none!important}
main,.content-section,.admission-page .content-section,.container,.admission-page .admission-shell {
display:block!important;
width:100%!important;
max-width:none!important;
margin:0!important;
padding:0!important}
.admission-form {
display:block!important;
width:100%!important;
min-height:0!important;
margin:0!important;
padding:0!important;
border:0!important;
border-radius:0!important;
box-shadow:none!important}
.form-title {
padding:0 0 5mm!important;
margin:0 0 5mm!important;
border:0!important;
border-bottom:1px solid #9eacc0!important;
border-radius:0!important;
background:transparent!important}
.application-intro {
margin:0 0 4mm!important;
padding:3mm!important;
font-size:8.5pt!important}
.application-meta {
margin:0 0 5mm!important}
.form-section {
break-inside:avoid;
margin:0 0 5mm!important}
.form-section legend {
padding-bottom:2mm!important;
margin-bottom:3mm!important}
.field-grid {
gap:3mm!important}
.field-grid input,.field-grid select,.field-grid textarea {
min-height:9mm!important;
padding:2mm!important;
border-color:#9eacc0!important;
background:transparent!important;
box-shadow:none!important}
.upload-grid {
gap:3mm!important}
.upload-field {
min-height:0!important;
padding:3mm!important;
border-color:#9eacc0!important;
background:transparent!important}
.upload-field input[type=file],.attachment-note,.human-check,.admission-submit,.submit-help,.form-message {
display:none!important}
.attachment-summary {
margin:0 0 3mm!important;
padding:2mm!important}
.consent {
break-inside:avoid;
font-size:8pt!important}
textarea {
resize:none!important}}

/* Five-second human-verification interaction for the static admissions form. */
.robot-check {
display:grid;
grid-template-columns:minmax(165px,auto) minmax(170px,1fr) auto;
align-items:center;
min-height:96px}
.robot-check__details {
display:grid;
gap:3px;
min-width:0}
.robot-check__status {
color:#31466a;
font-size:.74rem;
font-weight:800;
line-height:1.35}
.robot-check__timer {
color:#71829b;
font-size:.66rem;
font-weight:600}
.robot-check__progress {
display:block;
height:4px;
overflow:hidden;
margin-top:5px;
border-radius:999px;
background:#d7e2f0}
.robot-check__progress > span {
display:block;
width:0;
height:100%;
border-radius:inherit;
background:linear-gradient(90deg,#2b62b2,#53a3e7)}
.robot-check[data-state="verifying"] {
border-color:#7ea6d8;
background:linear-gradient(135deg,#f2f8ff,#eaf4ff)}
.robot-check[data-state="verifying"] .robot-check__box {
cursor:wait}
.robot-check[data-state="verifying"] .robot-check__control {
border-color:#2d67bc;
background:#fff}
.robot-check[data-state="verifying"] .robot-check__control i {
opacity:1;
color:#2d67bc;
font-size:.74rem}
.robot-check[data-state="verifying"] .robot-check__progress > span {
animation:human-verification-progress 5s linear forwards}
.robot-check[data-state="verified"] {
border-color:#86c8a0;
background:linear-gradient(135deg,#f3fbf6,#e8f7ee)}
.robot-check[data-state="verified"] .robot-check__status {
color:#236643}
.robot-check[data-state="verified"] .robot-check__timer {
color:#4b8261}
.robot-check[data-state="verified"] .robot-check__progress > span {
width:100%;
background:#2f9a58;
animation:none}
.robot-check[data-state="verified"] .robot-check__brand {
color:#2f9a58}
@keyframes human-verification-progress {
from {width:0}
to {width:100%}}
@media(max-width:680px) {
.robot-check {
grid-template-columns:1fr auto;
gap:11px;
min-height:0}
.robot-check__details {
grid-column:1/-1;
padding-left:39px}}
@media(prefers-reduced-motion:reduce) {
.robot-check[data-state="verifying"] .robot-check__progress > span {
animation:none;
width:100%}}

.contact-human-check {
margin:25px 0 16px;
padding:0;
border:0}
.contact-human-check legend {
padding:0;
margin:0 0 10px;
color:var(--navy);
font-size:.76rem;
font-weight:800;
letter-spacing:.11em;
text-transform:uppercase}
.contact-form .robot-check {
margin:0}
.contact-submit {
width:100%}
.contact-submit:disabled {
cursor:not-allowed;
opacity:.58;
box-shadow:none;
transform:none}
.contact-submit-help {
display:flex;
align-items:flex-start;
gap:7px;
margin:12px 0 0;
color:#697991;
font-size:.72rem;
line-height:1.5}
.contact-submit-help i {
margin-top:2px;
color:var(--royal)}

/* Stronger school identity in the header and a restrained site-wide watermark. */
body {
position:relative;
isolation:isolate;
min-height:100vh}
body::before {
content:"";
position:fixed;
inset:0;
z-index:-1;
pointer-events:none;
background:url("../images/logo.png") center 50%/clamp(330px,48vw,760px) no-repeat;
opacity:.055;
filter:grayscale(.18) saturate(.72)}
.site-header .nav-shell {
height:100px}
.site-header .brand {
gap:16px}
.site-header .brand img {
width:86px;
height:86px;
flex-basis:86px;
filter:drop-shadow(0 7px 10px rgba(9,45,103,.13))}
@media(max-width:1100px) and (min-width:761px) {
.site-header .nav-shell {
height:91px}
.site-header .brand img {
width:74px;
height:74px;
flex-basis:74px}
.main-nav {
gap:13px;
font-size:.77rem}}
@media(max-width:760px) {
.site-header .nav-shell {
height:82px}
.site-header .brand img {
width:64px;
height:64px;
flex-basis:64px}
body::before {
background-size:clamp(260px,72vw,420px);
background-position:center 52%;
opacity:.032}}
@media(max-width:420px) {
.site-header .nav-shell {
height:74px}
.site-header .brand {
gap:9px}
.site-header .brand img {
width:54px;
height:54px;
flex-basis:54px}}

/* More compact page sections below the navigation. */
.page-hero {
min-height:440px;
padding:64px 0 58px}
.content-section {
padding:72px 0}
.section {
padding:86px 0}
.fees-section {
padding:72px 0}
@media(max-width:980px) {
.page-hero {
min-height:330px;
padding:56px 0 50px}
.content-section,.fees-section {
padding:60px 0}
.section {
padding:72px 0}}
@media(max-width:760px) {
.page-hero {
min-height:0;
padding:50px 0 45px}
.content-section,.fees-section {
padding:52px 0}
.section {
padding:62px 0}}

/* Admissions help and full-screen photo viewer. */
.admission-help {
display:flex;
gap:11px;
align-items:flex-start;
margin-top:20px;
padding:15px;
border:1px solid rgba(234,220,191,.42);
border-radius:12px;
background:rgba(255,255,255,.08);
color:#dbe8fa}
.admission-help > i {
margin-top:4px;
color:var(--sand);
font-size:1.15rem}
.admission-help div {
display:grid;
gap:2px}
.admission-help strong {
color:#fff}
.admission-help span,.admission-help a {
font-size:.77rem;
line-height:1.55}
.admission-help a {
color:#f4d99e;
font-weight:700}
.modal {
width:100vw;
height:100vh;
max-width:none;
max-height:none;
margin:0;
padding:24px;
border:0;
background:rgba(3,19,48,.94);
color:#fff}
.modal[open],.modal.show {
display:grid;
place-items:center}
.modal-content {
width:min(1120px,100%);
max-height:calc(100vh - 48px);
padding:18px 70px;
border-radius:18px;
background:#0b2857;
box-shadow:0 28px 80px rgba(0,0,0,.45);
display:grid;
grid-template-columns:auto minmax(0,1fr) auto;
align-items:center;
gap:16px}
.modal-close {
right:14px;
top:14px;
z-index:2;
width:38px;
height:38px;
display:grid;
place-items:center;
border:1px solid rgba(255,255,255,.28);
border-radius:50%;
background:rgba(3,19,48,.8);
color:#fff;
font-size:1rem}
.modal-close:hover,.modal-close:focus-visible {
background:var(--sand);
color:var(--navy)}
.modal-figure {
grid-column:2;
margin:0;
min-width:0;
display:grid;
gap:13px;
justify-items:center}
.modal-image {
display:block;
max-width:100%;
max-height:min(70vh,700px);
width:auto;
height:auto;
border-radius:10px;
object-fit:contain;
background:#061d46}
.modal-figure figcaption {
width:100%;
display:flex;
align-items:baseline;
justify-content:space-between;
gap:14px}
.modal-counter {
color:#c9dbf6;
font-size:.72rem;
font-weight:700;
letter-spacing:.08em;
text-transform:uppercase}
.modal-title {
font:700 clamp(1.35rem,3vw,2rem)/1 var(--display);
text-align:right}
.modal-nav {
min-width:100px;
padding:10px 12px;
display:inline-flex;
align-items:center;
justify-content:center;
gap:6px;
border:1px solid rgba(255,255,255,.25);
border-radius:999px;
background:transparent;
color:#fff;
font-size:.78rem;
font-weight:800;
cursor:pointer}
.modal-nav:hover,.modal-nav:focus-visible {
border-color:var(--sand);
background:var(--sand);
color:var(--navy)}
.modal-previous {
grid-column:1}
.modal-next {
grid-column:3}
@media(max-width:700px) {
.modal {
padding:12px}
.modal-content {
max-height:calc(100vh - 24px);
padding:54px 14px 14px;
grid-template-columns:1fr 1fr;
gap:12px}
.modal-figure {
grid-column:1 / -1;
grid-row:1}
.modal-image {
max-height:calc(100vh - 210px)}
.modal-figure figcaption {
align-items:flex-start;
flex-direction:column;
gap:4px}
.modal-title {
text-align:left}
.modal-previous {
grid-column:1;
grid-row:2}
.modal-next {
grid-column:2;
grid-row:2}
.modal-nav {
width:100%}}
@media(prefers-reduced-motion:reduce) {
.modal,.modal-content,.modal-image {
transition:none}}

/* Structured footer, FAQ section and gallery storytelling. */
.site-footer {
position:relative;
overflow:hidden;
padding:64px 0 22px;
background:radial-gradient(circle at 12% 0%,rgba(45,103,188,.26),transparent 31%),linear-gradient(135deg,#041837 0%,#071f48 55%,#0b326d 100%)}
.site-footer:before {
content:"";
position:absolute;
inset:0;
pointer-events:none;
opacity:.35;
background-image:linear-gradient(45deg,rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(-45deg,rgba(255,255,255,.035) 1px,transparent 1px);
background-size:32px 32px}
.site-footer .container {
position:relative}
.footer-grid {
grid-template-columns:minmax(250px,1.5fr) repeat(2,minmax(130px,.78fr)) minmax(205px,1.05fr);
gap:0;
align-items:start}
.footer-brand {
padding-right:34px}
.footer-grid > div:not(.footer-brand) {
min-height:180px;
padding:5px 24px 0;
border-left:1px solid rgba(202,217,241,.16)}
.footer-grid h3 {
position:relative;
margin:6px 0 17px;
padding-bottom:11px;
font-size:.66rem}
.footer-grid h3:after {
content:"";
position:absolute;
left:0;
bottom:0;
width:28px;
height:2px;
background:var(--sand)}
.footer-grid a {
width:max-content;
max-width:100%;
margin:9px 0;
transition:color .2s ease,transform .2s ease}
.footer-grid a:hover,.footer-grid a:focus-visible {
color:#fff;
transform:translateX(3px)}
.footer-grid .contact-line {
align-items:flex-start;
gap:10px;
margin:10px 0;
line-height:1.45}
.footer-grid .contact-line i {
width:24px;
height:24px;
display:grid;
place-items:center;
flex:0 0 24px;
border-radius:7px;
background:rgba(214,185,129,.13)}
.footer-social {
margin-top:24px;
padding-top:17px;
border-top:1px solid rgba(202,217,241,.16)}
.footer-social a:hover,.footer-social a:focus-visible {
transform:none}
.footer-bottom {
align-items:center;
margin-top:42px;
padding-top:19px}
.faq-section {
background:linear-gradient(135deg,#eef4fb 0%,#faf6ec 100%);
border-top:1px solid #dbe5f0;
border-bottom:1px solid #dbe5f0}
.faq-layout {
display:grid;
grid-template-columns:minmax(260px,.78fr) minmax(0,1.22fr);
gap:70px;
align-items:start}
.faq-intro {
position:sticky;
top:125px}
.faq-intro h2 {
margin:0;
color:var(--navy);
font:700 clamp(2.55rem,4.3vw,4rem)/.92 var(--display);
letter-spacing:-.045em}
.faq-intro h2 em {
color:var(--brown)}
.faq-intro > p:not(.eyebrow) {
max-width:390px;
margin:20px 0 24px;
color:#60708a}
.faq-list {
display:grid;
gap:12px}
.faq-item {
overflow:hidden;
border:1px solid #d7e1ec;
border-radius:14px;
background:#fff;
box-shadow:0 9px 22px rgba(9,45,103,.06);
transition:border-color .2s ease,box-shadow .2s ease}
.faq-item[open] {
border-color:#a7bdd8;
box-shadow:0 13px 28px rgba(9,45,103,.1)}
.faq-item summary {
display:flex;
align-items:center;
justify-content:space-between;
gap:18px;
padding:19px 21px;
cursor:pointer;
list-style:none;
color:var(--navy);
font-weight:800}
.faq-item summary::-webkit-details-marker {
display:none}
.faq-item summary i {
width:27px;
height:27px;
display:grid;
place-items:center;
flex:0 0 27px;
border-radius:50%;
background:#edf3fa;
color:var(--royal);
font-size:.75rem;
transition:background .2s ease,color .2s ease,transform .2s ease}
.faq-item[open] summary i {
background:var(--navy);
color:#fff;
transform:rotate(45deg)}
.faq-item p {
margin:0;
padding:0 21px 20px;
color:#60708a;
font-size:.87rem;
line-height:1.7}
.modal-figure figcaption {
display:grid;
grid-template-columns:1fr auto;
align-items:baseline;
gap:5px 14px}
.modal-description {
grid-column:1 / -1;
margin:2px 0 0;
color:#d6e4f7;
font-size:.82rem;
line-height:1.6}
@media(max-width:980px) {
.footer-grid {
grid-template-columns:repeat(2,minmax(0,1fr));
gap:26px}
.footer-grid > div:not(.footer-brand) {
min-height:0;
padding:0;
border-left:0}
.faq-layout {
gap:38px}
.faq-intro {
position:static}}
@media(max-width:760px) {
.site-footer {
padding-top:48px}
.footer-grid {
gap:28px}
.footer-brand {
padding-right:0}
.footer-bottom {
align-items:flex-start;
margin-top:30px}
.faq-layout {
grid-template-columns:1fr;
gap:30px}
.faq-item summary {
padding:17px}
.faq-item p {
padding:0 17px 18px}
.modal-figure figcaption {
display:grid;
grid-template-columns:1fr;
gap:4px}
.modal-title,.modal-description {
grid-column:1;
text-align:left}}
