/* ============================================================
   KIS Karnal — internal pages stylesheet
   Loaded after css/style.css on every internal page.
   ============================================================ */

/* ---------- page load transition ---------- */
html.page-transition body{opacity:0;}
html.page-transition.page-loaded body{
  opacity:1;
  animation:pageFadeIn .6s cubic-bezier(.2,.7,.2,1);
}
@keyframes pageFadeIn{
  from{opacity:0; transform:translateY(10px);}
  to{opacity:1; transform:translateY(0);}
}

/* ---------- active nav link ---------- */
.navlinks .navitem > a.active-link{color:var(--gold-light);}
.navlinks .navitem > a.active-link::after{content:'';position:absolute;left:0;right:0;bottom:-6px;height:2px;background:var(--gold);}
.navlinks .navitem{position:relative;}

/* ---------- page hero banner ---------- */
.page-hero{
  position:relative;
  /*min-height:340px;*/
  display:flex;
  align-items:flex-end;
  background:linear-gradient(180deg, rgba(7,20,38,0.55), rgba(7,20,38,0.86)), var(--navy-deep) center/cover no-repeat;
  color:#fff;
  padding:40px 0px;
  overflow:hidden;
}
.page-hero.no-image{background:linear-gradient(135deg, var(--navy-deep), var(--navy));}
.page-hero .wrap{position:relative;z-index:2;padding-bottom:0px;}
.page-hero-eyebrow{
  font-family:'JetBrains Mono',monospace;font-size:0.72rem;letter-spacing:0.18em;
  text-transform:uppercase;color:var(--gold-light);font-weight:600;
  opacity:0; animation:heroUp .8s .1s cubic-bezier(.2,.7,.2,1) forwards;
}
.page-hero h1{
  font-size:clamp(2.1rem, 4.2vw, 30px); font-weight:600; line-height:1.12; margin-top:14px;
  opacity:0; animation:heroUp .8s .25s cubic-bezier(.2,.7,.2,1) forwards;
}
.page-hero p.lead{
  max-width:640px; margin-top:16px; color:rgba(255,255,255,0.82); line-height:1.65; font-size:1.02rem;
  opacity:0; animation:heroUp .8s .4s cubic-bezier(.2,.7,.2,1) forwards;
}
@keyframes heroUp{from{opacity:0; transform:translateY(22px);} to{opacity:1; transform:translateY(0);}}

.breadcrumb{
  display:flex; align-items:center; gap:8px; font-family:'JetBrains Mono',monospace;
  font-size:0.75rem; letter-spacing:0.04em; color:rgba(255,255,255,0.65); margin-top:22px;
  opacity:0; animation:heroUp .8s .55s cubic-bezier(.2,.7,.2,1) forwards;
}
.breadcrumb a{color:rgba(255,255,255,0.85);}
.breadcrumb a:hover{color:var(--gold-light);}
.breadcrumb .sep{opacity:0.5;}
.breadcrumb .current{color:var(--gold-light);}

/* ---------- generic page section ---------- */
.page-section{padding:80px 0;}
.page-section.tight{padding:56px 0;}
.page-section.alt{background:var(--parchment-dark);}
.page-section h2.sub-h{font-size:20px;font-weight:600;margin:0 0 0px; color:var(--navy-deep);}
.page-section p.body-text{color:var(--ink-soft);line-height:1.75;font-size:1rem;margin-bottom:16px;}

/* ---------- two column info block ---------- */
.info-split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
.info-split img{border-radius:4px;}
@media (max-width:860px){.info-split{grid-template-columns:1fr;gap:30px;}}

/* ---------- anchored sub-section with side rail ---------- */
.anchor-block{scroll-margin-top:110px;border-top:1px solid var(--line);padding:54px 0;}
.anchor-block:first-of-type{border-top:none;}
.anchor-block-grid{display:grid;grid-template-columns:20px 1fr;gap:48px;}
.anchor-rail{position:sticky;top:120px;align-self:start;}
.anchor-rail .tag-icon{
  width:52px;height:52px;border:1px solid var(--gold);border-radius:2px;
  display:flex;align-items:center;justify-content:center;font-family:'Fraunces',serif;
  font-weight:600;color:var(--oxblood);font-size:1.3rem;margin-bottom:14px;
}
@media (max-width:860px){.anchor-block-grid{grid-template-columns:1fr;gap:20px;}.anchor-rail{position:static;}}

/* ---------- simple checklist ---------- */
.check-list{list-style:none;margin-top:14px;}
.check-list li{display:flex;gap:12px;color:var(--ink-soft);}
.check-list li:last-child{border-bottom:none;}
.check-list li i{color:var(--oxblood);margin-top:3px;flex-shrink:0;}

/* ---------- fee / info table ---------- */
.info-table{width:100%;border-collapse:collapse;margin-top:18px;}
.info-table th,.info-table td{padding:14px 16px;text-align:left;border-bottom:1px solid var(--line);font-size:0.94rem;}
.info-table thead th{
  font-family:'JetBrains Mono',monospace;font-size:0.68rem;letter-spacing:0.1em;text-transform:uppercase;
  color:var(--gold-light);background:var(--navy-deep);color:#fff;
}
.info-table tbody tr{transition:background .2s ease;}
.info-table tbody tr:hover{background:var(--parchment-dark);}
.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:4px;}

/* ---------- stat pill row ---------- */
.pill-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px;}
.pill{
  border:1px solid var(--line);padding:8px 16px;border-radius:999px;font-size:0.84rem;
  color:var(--ink-soft);display:flex;align-items:center;gap:8px;transition:all .25s ease;
}
.pill:hover{border-color:var(--gold);color:var(--ink);transform:translateY(-2px);}
.pill i{color:var(--oxblood);}

/* ---------- accordion (FAQ-style, used on fund rules / entrance tests) ---------- */
.acc-item{border:1px solid var(--line);border-radius:4px;margin-bottom:12px;overflow:hidden;}
.acc-head{
  display:flex;justify-content:space-between;align-items:center;padding:18px 20px;cursor:pointer;
  font-family:'Fraunces',serif;font-weight:600;font-size:1.02rem;background:#fff;transition:background .2s ease;
}
.acc-head:hover{background:var(--parchment-dark);}
.acc-head .plus{transition:transform .3s ease;color:var(--oxblood);font-size:1.2rem;}
.acc-item.open .acc-head .plus{transform:rotate(45deg);}
.acc-body{max-height:0;overflow:hidden;transition:max-height .35s ease;background:var(--parchment-dark);}
.acc-body-inner{padding:0 20px 20px;color:var(--ink-soft);line-height:1.65;font-size:0.94rem;}

/* ---------- full gallery page ---------- */
.gallery-filter{display:flex;flex-wrap:wrap;gap:10px;margin:28px 0 34px;}
.gallery-filter button{
  border:1px solid var(--line);background:#fff;padding:9px 18px;border-radius:999px;font-size:0.82rem;
  font-family:'JetBrains Mono',monospace;letter-spacing:0.04em;cursor:pointer;transition:all .25s ease;color:var(--ink-soft);
}
.gallery-filter button:hover{border-color:var(--gold);color:var(--ink);}
.gallery-filter button.active{background:var(--navy-deep);border-color:var(--navy-deep);color:#fff;}
.full-gallery-grid{
  columns:3 260px;column-gap:16px;
}
.full-gallery-grid .gallery-item{
  break-inside:avoid;margin-bottom:16px;border-radius:3px;overflow:hidden;display:block;position:relative;
  opacity:0;transform:scale(.96);transition:opacity .5s ease, transform .5s ease;
}
.full-gallery-grid .gallery-item.show{opacity:1;transform:scale(1);}
.full-gallery-grid .gallery-item img{width:100%;display:block;transition:transform .5s cubic-bezier(.2,.7,.2,1);}
.full-gallery-grid .gallery-item:hover img{transform:scale(1.06);}
.full-gallery-grid .gallery-item::after{
  content:'\f00e';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;inset:0;
  display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.3rem;
  background:rgba(11,31,58,0.0);opacity:0;transition:all .3s ease;
}
.full-gallery-grid .gallery-item:hover::after{background:rgba(11,31,58,0.38);opacity:1;}
@media (max-width:760px){.full-gallery-grid{columns:2 160px;}}

/* ---------- contact page ---------- */
.contact-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:50px;}
@media (max-width:900px){.contact-grid{grid-template-columns:1fr;}}
.contact-card{
  background:#fff;border:1px solid var(--line);border-radius:6px;padding:34px;
  box-shadow:0 20px 50px -30px rgba(11,31,58,0.25);
}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;}
@media (max-width:520px){.form-row{grid-template-columns:1fr;}}
.form-field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px;}
.form-field label{font-size:0.78rem;font-family:'JetBrains Mono',monospace;letter-spacing:0.05em;color:var(--ink-soft);text-transform:uppercase;}
.form-field input,.form-field select,.form-field textarea{
  border:1px solid var(--line);border-radius:3px;padding:12px 14px;font-family:inherit;font-size:0.94rem;
  color:var(--ink);background:var(--parchment-dark);transition:border-color .2s ease, background .2s ease;
}
.form-field input:focus,.form-field select:focus,.form-field textarea:focus{
  outline:none;border-color:var(--gold);background:#fff;
}
.form-submit{
  border:none;background:var(--oxblood);color:#fff;padding:14px 30px;border-radius:3px;font-weight:600;
  cursor:pointer;letter-spacing:0.02em;transition:all .25s ease;display:inline-flex;align-items:center;gap:10px;
}
.form-submit:hover{background:#a11f1f;transform:translateY(-2px);}
.form-note{font-size:0.8rem;color:var(--ink-soft);margin-top:10px;}
.contact-info-list{display:flex;flex-direction:column;gap:22px;margin-top:10px;}
.contact-info-item{display:flex;gap:16px;align-items:flex-start;}
.contact-info-item .ic{
  width:46px;height:46px;flex-shrink:0;border-radius:50%;background:var(--navy-deep);color:var(--gold-light);
  display:flex;align-items:center;justify-content:center;font-size:1.05rem;
}
.contact-info-item h5{font-family:'Fraunces',serif;font-weight:600;margin-bottom:3px;}
.contact-info-item p,.contact-info-item a{color:var(--ink-soft);font-size:0.92rem;line-height:1.5;}
.map-frame{border-radius:6px;overflow:hidden;border:1px solid var(--line);margin-top:26px;}

/* ---------- blog: category chips ---------- */
.blog-hero-search{
  display:flex;gap:10px;margin-top:26px;max-width:480px;
  opacity:0; animation:heroUp .8s .55s cubic-bezier(.2,.7,.2,1) forwards;
}
.blog-hero-search input{
  flex:1;border:1px solid rgba(255,255,255,0.25);background:rgba(255,255,255,0.08);color:#fff;
  padding:12px 16px;border-radius:3px;font-family:inherit;
}
.blog-hero-search input::placeholder{color:rgba(255,255,255,0.55);}
.blog-hero-search button{
  border:1px solid var(--gold);background:var(--gold);color:#fff;padding:0 20px;border-radius:3px;cursor:pointer;
}
.blog-cats{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 40px;}
.blog-cats button{
  border:1px solid var(--line);background:#fff;padding:10px 20px;border-radius:999px;font-size:0.82rem;
  font-family:'JetBrains Mono',monospace;letter-spacing:0.04em;cursor:pointer;transition:all .25s ease;color:var(--ink-soft);
}
.blog-cats button:hover{border-color:var(--gold);color:var(--ink);transform:translateY(-2px);}
.blog-cats button.active{background:var(--oxblood);border-color:var(--oxblood);color:#fff;}
.blog-cats button .count{opacity:0.65;font-size:0.75em;margin-left:4px;}
.blog-cats a{
  border:1px solid var(--line);background:#fff;padding:10px 20px;border-radius:999px;font-size:0.82rem;
  font-family:'JetBrains Mono',monospace;letter-spacing:0.04em;cursor:pointer;transition:all .25s ease;color:var(--ink-soft);
}
.blog-cats a:hover{border-color:var(--gold);color:var(--ink);transform:translateY(-2px);}
.blog-cats a.active{background:var(--oxblood);border-color:var(--oxblood);color:#fff;}
.blog-cats a .count{opacity:0.65;font-size:0.75em;margin-left:4px;}

/* ---------- blog grid + cards ---------- */
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;}
@media (max-width:960px){.blog-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:640px){.blog-grid{grid-template-columns:1fr;}}
.blog-card{
  background:#fff;border:1px solid var(--line);border-radius:6px;overflow:hidden;display:flex;flex-direction:column;
  transition:transform .4s cubic-bezier(.2,.7,.2,1), box-shadow .4s ease, border-color .3s ease;
  opacity:0;transform:translateY(24px);
}
.blog-card.show{opacity:1;transform:translateY(0);}
.blog-card:hover{transform:translateY(-8px);box-shadow:0 26px 50px -26px rgba(11,31,58,0.35);border-color:var(--gold);}
.blog-card-media{position:relative;aspect-ratio:16/10;overflow:hidden;}
.blog-card-media img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.2,1);}
.blog-card:hover .blog-card-media img{transform:scale(1.08);}
.blog-card-cat{
  position:absolute;top:14px;left:14px;background:#e4e9f3f0;color:var(--gold-light);
  font-family:'JetBrains Mono',monospace;font-size:0.65rem;letter-spacing:0.08em;text-transform:uppercase;
  padding:6px 12px;border-radius:999px;
}
.blog-card-body{padding:22px 22px 24px;display:flex;flex-direction:column;flex:1;}
.blog-card-meta{font-family:'JetBrains Mono',monospace;font-size:0.68rem;letter-spacing:0.06em;color:var(--ink-soft);
  text-transform:uppercase;display:flex;gap:14px;margin-bottom:10px;}
.blog-card-meta span{display:flex;align-items:center;gap:6px;}
.blog-card h3{font-size:1.14rem;font-weight:600;line-height:1.35;margin-bottom:10px;}
.blog-card p{color:var(--ink-soft);font-size:0.9rem;line-height:1.6;flex:1;}
.blog-card-more{
  margin-top:16px;font-family:'JetBrains Mono',monospace;font-size:0.75rem;letter-spacing:0.06em;
  text-transform:uppercase;color:var(--oxblood);display:inline-flex;align-items:center;gap:8px;transition:gap .25s ease;
}
.blog-card:hover .blog-card-more{gap:14px;}

.blog-empty{
  text-align:center;padding:70px 20px;color:var(--ink-soft);display:none;
}
.blog-empty.show{display:block;}

/* ---------- blog detail page ---------- */
.post-hero-meta{display:flex;flex-wrap:wrap;gap:18px;margin-top:18px;font-family:'JetBrains Mono',monospace;font-size:0.75rem;letter-spacing:0.05em;color:rgba(255,255,255,0.75);}
.post-hero-meta span{display:flex;align-items:center;gap:7px;}
.post-layout{display:grid;grid-template-columns:1fr 300px;gap:56px;}
@media (max-width:920px){.post-layout{grid-template-columns:1fr;}}
.post-body{color:var(--ink);}
.post-body .post-cover{border-radius:6px;margin-bottom:30px;overflow:hidden;}
.post-body p{color:var(--ink-soft);line-height:1.85;font-size:1.02rem;margin-bottom:20px;}
.post-body h2,.post-body h3{font-weight:600;margin:34px 0 14px;}
.post-body blockquote{
  border-left:3px solid var(--oxblood);padding:6px 0 6px 22px;font-family:'Fraunces',serif;font-style:italic;
  font-size:1.15rem;color:var(--ink);margin:26px 0;
}
.post-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:30px;}
.post-tags a{border:1px solid var(--line);padding:6px 14px;border-radius:999px;font-size:0.78rem;color:var(--ink-soft);transition:all .2s ease;}
.post-tags a:hover{border-color:var(--gold);color:var(--ink);}
.post-share{display:flex;gap:10px;align-items:center;margin-top:28px;padding-top:24px;border-top:1px solid var(--line);}
.post-share span{font-size:0.8rem;color:var(--ink-soft);font-family:'JetBrains Mono',monospace;}
.post-share a{
  width:38px;height:38px;border-radius:50%;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;
  color:var(--ink-soft);transition:all .25s ease;
}
.post-share a:hover{background:var(--navy-deep);border-color:var(--navy-deep);color:#fff;transform:translateY(-3px);}

.post-sidebar{display:flex;flex-direction:column;gap:34px;}
.side-block{border:1px solid var(--line);border-radius:6px;padding:22px;}
.side-block h4{font-family:'JetBrains Mono',monospace;font-size:0.72rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--oxblood);margin-bottom:16px;}
.side-post{display:flex;gap:12px;margin-bottom:14px;text-decoration:none;}
.side-post:last-child{margin-bottom:0;}
.side-post img{width:64px;height:64px;object-fit:cover;border-radius:4px;flex-shrink:0;}
.side-post strong{font-size:0.86rem;line-height:1.35;display:block;color:var(--ink);}
.side-post small{color:var(--ink-soft);font-size:0.74rem;}
.side-cat-list a{
  display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px dashed var(--line);font-size:0.88rem;color:var(--ink-soft);
}
.side-cat-list a:last-child{border-bottom:none;}
.side-cat-list a:hover{color:var(--oxblood);}

.related-posts{margin-top:70px;}
.author-box{
  display:flex;gap:18px;align-items:center;background:var(--parchment-dark);border-radius:6px;padding:24px;margin-top:36px;
}
.author-box img{width:64px;height:64px;border-radius:50%;object-fit:cover;}
.author-box strong{display:block;font-family:'Fraunces',serif;font-size:1.02rem;}
.author-box span{font-size:0.84rem;color:var(--ink-soft);}

/* ---------- back to top ---------- */
#backToTop{
  position:fixed;right:24px;bottom:24px;width:46px;height:46px;border-radius:50%;border:none;
  background:var(--navy-deep);color:var(--gold-light);cursor:pointer;z-index:400;
  display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;
  transform:translateY(14px);transition:all .35s cubic-bezier(.2,.7,.2,1);box-shadow:0 12px 30px -12px rgba(11,31,58,0.5);
}
#backToTop.show{opacity:1;pointer-events:auto;transform:translateY(0);}
#backToTop:hover{background:var(--oxblood);}

/* ---------- 404 ---------- */
.error-page{min-height:60vh;display:flex;align-items:center;justify-content:center;text-align:center;padding:120px 20px 80px;}
.error-page .code{font-family:'Fraunces',serif;font-size:6rem;font-weight:700;color:var(--gold-light);line-height:1;}

/* ---------- foot social ---------- */
.foot-social{display:flex;gap:10px;margin-top:18px;}
.foot-social a{
  width:36px;height:36px;border-radius:50%;border:1px solid rgba(198,160,79,0.3);display:flex;align-items:center;
  justify-content:center;color:var(--gold-light);transition:all .25s ease;
}
.foot-social a:hover{background:var(--gold);color:#0b1f3a;transform:translateY(-3px);}

/* ---------- fade-up utility for generic content ---------- */
.fade-up{opacity:0;transform:translateY(20px);transition:opacity .7s ease, transform .7s ease;}
.fade-up.in{opacity:1;transform:translateY(0);}
/* ============================================================
   KIS — OUR JOURNEY / HISTORY
   Matches existing pages.css design system
   ============================================================ */

.history-section{
  position:relative;
  padding:90px 0 100px;
  background:var(--parchment-dark);
  overflow:hidden;
}

/* subtle background word */

.history-section .wrap{
  position:relative;
  z-index:1;
}


/* ---------- INTRO ---------- */

.history-intro{
  max-width:760px;
  margin-bottom:70px;
}

.history-intro .eyebrow{
  margin-bottom:12px;
}

.history-intro h2{
  font-family:'Fraunces',serif;
  font-size:clamp(2.2rem,4.5vw,40px);
  line-height:1.08;
  font-weight:600;
  color:var(--ink);
  margin:0 0 20px;
  letter-spacing:-.025em;
}

.history-intro h2 span{
  color:var(--oxblood);
}

.history-intro p{
  max-width:680px;
  margin:0;
  color:var(--ink-soft);
  font-size:1rem;
  line-height:1.8;
}


/* ============================================================
   TIMELINE
   ============================================================ */

.history-timeline{
  position:relative;
  max-width:1050px;
  margin:0 auto;
  padding:10px 0;
}


/* central line */

.history-timeline::before{
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  left:50%;
  width:1px;
  background:var(--line);
  transform:translateX(-50%);
}


/* ---------- ITEM ---------- */

.history-item{
  position:relative;
  display:grid;
  grid-template-columns:1fr 70px 1fr;
  align-items:center;
  min-height:250px;
}

.history-item-reverse{
  direction:rtl;
}

.history-item-reverse > *{
  direction:ltr;
}


/* ---------- YEAR ---------- */

.history-year{
  padding-right:48px;
  text-align:right;
}

.history-item-reverse .history-year{
  padding-right:0;
  padding-left:48px;
  text-align:left;
}

.history-year span{
  display:block;
  font-family:'Fraunces',serif;
  font-size:clamp(2.8rem,5vw,4.5rem);
  line-height:1;
  font-weight:600;
  color:var(--navy-deep);
}

.history-year small{
  display:block;
  margin-top:9px;
  font-family:'JetBrains Mono',monospace;
  font-size:.62rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--oxblood);
  line-height:1.5;
}


/* ---------- DOT ---------- */

.history-dot{
  position:relative;
  z-index:5;
  width:17px;
  height:17px;
  margin:0 auto;
  border-radius:50%;
  background:var(--oxblood);
  border:4px solid var(--parchment-dark);
  box-shadow:0 0 0 1px var(--oxblood);
}

.history-dot::after{
  content:"";
  position:absolute;
  width:5px;
  height:5px;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  border-radius:50%;
  background:#fff;
}


/* ============================================================
   HISTORY CARD
   ============================================================ */

.history-card{
  position:relative;
  margin-left:30px;
  padding:28px 30px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:6px;
  box-shadow:0 20px 50px -30px rgba(11,31,58,.25);
  transition:
    transform .35s cubic-bezier(.2,.7,.2,1),
    box-shadow .35s ease,
    border-color .3s ease;
}

.history-item-reverse .history-card{
  margin-left:0;
  margin-right:30px;
}

.history-card:hover{
  transform:translateY(-6px);
  border-color:var(--gold);
  box-shadow:0 26px 55px -28px rgba(11,31,58,.35);
}


/* small top row */

.history-card-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:18px;
}

.history-number{
  font-family:'JetBrains Mono',monospace;
  font-size:.65rem;
  letter-spacing:.1em;
  color:var(--ink-soft);
}

.history-card-top i{
  width:43px;
  height:43px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--line);
  border-radius:50%;
  background:var(--parchment-dark);
  color:var(--oxblood);
  font-size:.95rem;
  transition:all .3s ease;
}

.history-card:hover .history-card-top i{
  background:var(--oxblood);
  border-color:var(--oxblood);
  color:#fff;
}


/* heading */

.history-card h3{
  margin:0 0 10px;
  font-family:'Fraunces',serif;
  font-size:1.55rem;
  line-height:1.2;
  font-weight:600;
  color:var(--ink);
}


/* paragraph */

.history-card p{
  margin:0;
  color:var(--ink-soft);
  font-size:.94rem;
  line-height:1.72;
}


/* ============================================================
   FEATURE / TODAY CARD
   ============================================================ */

.history-highlight{
  background:var(--navy-deep);
  border-color:var(--navy-deep);
}

.history-highlight:hover{
  border-color:var(--gold);
}

.history-highlight h3{
  color:#fff;
}

.history-highlight p{
  color:rgba(255,255,255,.72);
}

.history-highlight .history-number{
  color:rgba(255,255,255,.45);
}

.history-highlight .history-card-top i{
  background:rgba(198,160,79,.12);
  border-color:rgba(198,160,79,.35);
  color:var(--gold-light);
}

.history-highlight:hover .history-card-top i{
  background:var(--gold);
  border-color:var(--gold);
  color:var(--navy-deep);
}


/* ============================================================
   TABLET
   ============================================================ */

@media (max-width:900px){

  .history-section{
    padding:75px 0 85px;
  }

  .history-intro{
    margin-bottom:55px;
  }

  .history-item{
    grid-template-columns:105px 45px 1fr;
    min-height:220px;
  }

  .history-item-reverse{
    direction:ltr;
  }

  .history-item-reverse > *{
    direction:ltr;
  }

  .history-timeline::before{
    left:127px;
  }

  .history-year,
  .history-item-reverse .history-year{
    padding:0 15px 0 0;
    text-align:right;
  }

  .history-year span{
    font-size:2.7rem;
  }

  .history-card,
  .history-item-reverse .history-card{
    margin-left:20px;
    margin-right:0;
  }
}


/* ============================================================
   MOBILE
   ============================================================ */

@media (max-width:600px){

  .history-section{
    padding:60px 0 70px;
  }

  .history-section::after{
    top:35px;
    right:-25px;
    font-size:75px;
  }

  .history-intro{
    margin-bottom:45px;
  }

  .history-intro h2{
    font-size:2.35rem;
    letter-spacing:-.02em;
  }

  .history-intro p{
    font-size:.94rem;
    line-height:1.7;
  }


  /* timeline becomes left aligned */

  .history-timeline{
    padding-left:0;
  }

  .history-timeline::before{
    left:15px;
    transform:none;
  }


  .history-item,
  .history-item-reverse{
    display:grid;
    grid-template-columns:30px 1fr;
    min-height:auto;
    margin-bottom:36px;
    direction:ltr;
  }


  /* year */

  .history-year,
  .history-item-reverse .history-year{
    grid-column:2;
    grid-row:1;
    padding:0 0 13px;
    text-align:left;
  }

  .history-year span{
    font-size:2.35rem;
  }

  .history-year small{
    font-size:.56rem;
  }


  /* dot */

  .history-dot{
    grid-column:1;
    grid-row:1 / span 2;
    width:15px;
    height:15px;
    margin:7px auto 0;
    border-width:3px;
  }


  /* card */

  .history-card,
  .history-item-reverse .history-card{
    grid-column:2;
    grid-row:2;
    margin:0;
    padding:23px 20px;
  }

  .history-card-top{
    margin-bottom:16px;
  }

  .history-card-top i{
    width:39px;
    height:39px;
    font-size:.85rem;
  }

  .history-card h3{
    font-size:1.35rem;
  }

  .history-card p{
    font-size:.9rem;
    line-height:1.65;
  }
}


/* ============================================================
   EXTRA SMALL DEVICES
   ============================================================ */

@media (max-width:380px){

  .history-intro h2{
    font-size:2.1rem;
  }

  .history-year span{
    font-size:2.1rem;
  }

  .history-card{
    padding:20px 17px;
  }

  .history-card h3{
    font-size:1.25rem;
  }
}
/* =========================================================
   MODERN LABS PAGE
   ========================================================= */

.labs-modern-section {
  padding: 100px 0 120px;
  background: var(--parchment);
  overflow: hidden;
}


/* ---------------------------------------------------------
   INTRO
   --------------------------------------------------------- */

.labs-modern-intro {
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  gap: 80px;
  align-items: end;
  padding-bottom: 70px;
}

.labs-overline {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: var(--oxblood);
  font-family: "JetBrains Mono", monospace;
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  margin-bottom: 22px;
}

.labs-overline::before {
  content: "";
  width: 34px;
  height: 1px;
  background: var(--gold);
}

.labs-intro-left h2 {
  margin: 0;
  max-width: 700px;
  color: var(--navy-deep);
  font-size: clamp(2.8rem, 5vw, 40px);
  font-weight: 600;
  line-height: .98;
  letter-spacing: -.045em;
}


.labs-intro-right {
  max-width: 560px;
  padding-bottom: 7px;
}

.labs-intro-right p {
  margin: 0;
  color: var(--ink-soft);
  font-size: 1.08rem;
  line-height: 1.85;
}


/* ---------------------------------------------------------
   LAB CARD
   --------------------------------------------------------- */

.lab-modern-card {
  position: relative;
  display: grid;
  grid-template-columns: 90px minmax(0, 1fr) 150px;
  min-height: 390px;
  margin-bottom: 24px;
  border: 1px solid var(--line);
  background: rgba(255,255,255,.42);
  overflow: hidden;
  transition:
    transform .35s ease,
    box-shadow .35s ease,
    border-color .35s ease;
}

.lab-modern-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 22px 55px rgba(20,30,45,.10);
  border-color: rgba(160,120,45,.45);
}


/* NUMBER */

.lab-modern-number {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding-top: 48px;
}

.lab-modern-number span {
  font-family: "JetBrains Mono", monospace;
  font-size: .8rem;
  font-weight: 600;
  color: var(--oxblood);
}

.lab-modern-number div {
  width: 1px;
  flex: 1;
  margin-top: 18px;
  background: var(--line);
}


/* CONTENT */

.lab-modern-content {
  padding: 48px 45px 45px 15px;
  max-width: 850px;
}

.lab-modern-icon {
  width: 58px;
  height: 58px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 25px;
  background: var(--navy-deep);
  color: var(--gold-light);
  font-size: 1.25rem;
}

.lab-modern-label {
  display: block;
  margin-bottom: 9px;
  color: var(--gold);
  font-family: "JetBrains Mono", monospace;
  font-size: .7rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.lab-modern-content h3 {
  margin: 0 0 18px;
  color: var(--navy-deep);
  font-family: "Fraunces", serif;
  font-size: clamp(2rem, 3vw, 3rem);
  font-weight: 600;
  line-height: 1.05;
}

.lab-modern-content p {
  max-width: 760px;
  margin: 0;
  color: var(--ink-soft);
  font-size: 1rem;
  line-height: 1.8;
}


/* FEATURE */

.lab-modern-feature {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  margin-top: 28px;
  padding-top: 20px;
  border-top: 1px solid var(--line);
}

.lab-modern-feature > i {
  color: var(--oxblood);
  font-size: 1.15rem;
}

.lab-modern-feature strong,
.lab-modern-feature small {
  display: block;
}

.lab-modern-feature strong {
  color: var(--ink);
  font-size: .92rem;
}

.lab-modern-feature small {
  margin-top: 3px;
  color: var(--ink-soft);
  font-size: .8rem;
}


/* RIGHT SIDE */

.lab-modern-side {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 20px;
  background: var(--parchment-dark);
  border-left: 1px solid var(--line);
}

.lab-modern-side span {
  color: var(--oxblood);
  font-family: "JetBrains Mono", monospace;
  font-size: .66rem;
  font-weight: 600;
  letter-spacing: .1em;
  line-height: 1.7;
  text-align: center;
  text-transform: uppercase;
}

.lab-side-circle {
  width: 52px;
  height: 52px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--gold);
  border-radius: 50%;
  color: var(--oxblood);
  font-size: .9rem;
}


/* ---------------------------------------------------------
   DARK SCIENCE CARD
   --------------------------------------------------------- */

.lab-modern-card-dark {
  background: var(--navy-deep);
  border-color: var(--navy-deep);
}

.lab-modern-card-dark:hover {
  border-color: var(--gold);
}

.lab-modern-card-dark .lab-modern-number span,
.lab-modern-card-dark .lab-modern-label {
  color: var(--gold-light);
}

.lab-modern-card-dark .lab-modern-number div {
  background: rgba(255,255,255,.14);
}

.lab-modern-card-dark .lab-modern-content h3 {
  color: #fff;
}

.lab-modern-card-dark .lab-modern-content p {
  color: rgba(255,255,255,.72);
}

.lab-modern-card-dark .lab-modern-icon {
  background: var(--gold);
  color: var(--navy-deep);
}

.lab-modern-card-dark .lab-modern-side {
  background: rgba(255,255,255,.045);
  border-color: rgba(255,255,255,.12);
}

.lab-modern-card-dark .lab-modern-side span {
  color: var(--gold-light);
}

.lab-modern-card-dark .lab-side-circle {
  color: var(--gold-light);
  border-color: var(--gold);
}


/* ---------------------------------------------------------
   SCIENCE SUBJECTS
   --------------------------------------------------------- */

.science-subjects {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 28px;
}

.science-subjects span {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 9px 14px;
  border: 1px solid rgba(255,255,255,.16);
  color: rgba(255,255,255,.82);
  font-size: .78rem;
}

.science-subjects i {
  color: var(--gold-light);
}


/* ---------------------------------------------------------
   IMAGE SHOWCASE
   --------------------------------------------------------- */

.labs-showcase {
  position: relative;
  height: 480px;
  margin-top: 55px;
  overflow: hidden;
  background: var(--navy-deep);
}

.labs-showcase img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center;
  filter: saturate(.9);
  transition: transform .7s ease;
}

.labs-showcase:hover img {
  transform: scale(1.035);
}

.labs-showcase::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(
      90deg,
      rgba(8,18,31,.88) 0%,
      rgba(8,18,31,.55) 38%,
      rgba(8,18,31,0) 75%
    ),
    linear-gradient(
      to top,
      rgba(8,18,31,.85) 0%,
      rgba(8,18,31,.45) 30%,
      rgba(8,18,31,0) 65%
    );
}

.labs-showcase-overlay {
  position: absolute;
  z-index: 2;
  inset: 0;
  display: flex;
  align-items: flex-end;
  gap: 28px;
  padding: 45px;
}
.labs-showcase-overlay p {
    color: #fff;
}
.showcase-number {
  color: var(--gold-light);
  font-family: "JetBrains Mono", monospace;
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .1em;
  padding-bottom: 8px;
}

.labs-showcase-overlay span {
  display: block;
  margin-bottom: 8px;
  color: var(--gold-light);
  font-family: "JetBrains Mono", monospace;
  font-size: .68rem;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.labs-showcase-overlay h3 {
  margin: 0;
  color: #fff;
  font-family: "Fraunces", serif;
  font-size: clamp(2rem, 4vw, 3.7rem);
  font-weight: 600;
  line-height: 1;
  margin-bottom : 30px;
}


/* ---------------------------------------------------------
   HERO
   --------------------------------------------------------- */

.labs-hero {
  background:
    linear-gradient(
      90deg,
      rgba(8,18,31,.9),
      rgba(8,18,31,.58),
      rgba(8,18,31,.25)
    ),
    url("../images/sp4.webp") center/cover no-repeat;
}


/* ---------------------------------------------------------
   TABLET
   --------------------------------------------------------- */

@media (max-width: 900px) {

  .labs-modern-section {
    padding: 75px 0 90px;
  }

  .labs-modern-intro {
    grid-template-columns: 1fr;
    gap: 25px;
    padding-bottom: 50px;
  }

  .lab-modern-card {
    grid-template-columns: 65px minmax(0, 1fr);
  }

  .lab-modern-side {
    display: none;
  }

  .lab-modern-content {
    padding-right: 35px;
  }

  .labs-showcase {
    height: 400px;
  }

}


/* ---------------------------------------------------------
   MOBILE
   --------------------------------------------------------- */

@media (max-width: 600px) {

  .labs-modern-section {
    padding: 55px 0 70px;
  }

  .labs-modern-intro {
    padding-bottom: 35px;
  }

  .labs-intro-left h2 {
    font-size: 2.65rem;
  }

  .labs-intro-right p {
    font-size: .96rem;
    line-height: 1.7;
  }

  .lab-modern-card {
    grid-template-columns: 48px 1fr;
    margin-bottom: 16px;
  }

  .lab-modern-number {
    padding-top: 32px;
  }

  .lab-modern-content {
    padding: 32px 22px 32px 5px;
  }

  .lab-modern-icon {
    width: 48px;
    height: 48px;
    margin-bottom: 20px;
    font-size: 1rem;
  }

  .lab-modern-content h3 {
    font-size: 2rem;
  }

  .lab-modern-content p {
    font-size: .92rem;
    line-height: 1.7;
  }

  .lab-modern-feature {
    margin-top: 22px;
  }

  .science-subjects {
    gap: 7px;
  }

  .science-subjects span {
    padding: 8px 10px;
    font-size: .7rem;
  }

  .labs-showcase {
    height: 330px;
    margin-top: 35px; 
  }       

  .labs-showcase-overlay {
    padding: 25px;  
    gap: 16px;
  }

  .labs-showcase-overlay h3 {
    font-size: 2rem;
  }

  .showcase-number {
    font-size: .65rem;
  }

}
/* =========================================================
   SPORTS & GAMES — MODERN SECTION
   ========================================================= */

.sports-modern-section {
  position: relative;
  padding: 110px 0 120px;
  background: var(--parchment-dark);
  overflow: hidden;
}


/* ---------------------------------------------------------
   INTRO
   --------------------------------------------------------- */

.sports-modern-intro {
  display: grid;
  grid-template-columns: 1fr .8fr;
  gap: 80px;
  align-items: end;
  margin-bottom: 65px;
}

.sports-overline {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 22px;
  color: var(--oxblood);
  font-family: "JetBrains Mono", monospace;
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.sports-overline::before {
  content: "";
  width: 34px;
  height: 1px;
  background: var(--gold);
}

.sports-modern-intro h2 {
  margin: 0;
  color: var(--navy-deep);
  font-size: clamp(3rem, 5vw, 40px);
  font-weight: 600;
  line-height: .95;
  letter-spacing: -.045em;
}

.sports-intro-text {
  max-width: 560px;
}

.sports-intro-text p {
  margin: 0;
  color: var(--ink-soft);
  font-size: 1.05rem;
  line-height: 1.85;
}


/* ---------------------------------------------------------
   SPORTS GRID
   --------------------------------------------------------- */

.sports-modern-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}


/* ---------------------------------------------------------
   SPORT CARD
   --------------------------------------------------------- */

.sport-card {
  position: relative;
  min-height: 360px;
  padding: 38px;
  border: 1px solid var(--line);
  background: var(--parchment);
  overflow: hidden;
  transition:
    transform .35s ease,
    box-shadow .35s ease,
    border-color .35s ease;
}

.sport-card:hover {
  transform: translateY(-6px);
  border-color: rgba(160,120,45,.45);
  box-shadow: 0 22px 50px rgba(20,30,45,.10);
}


/* TOP */

.sport-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 32px;
}

.sport-number {
  color: var(--oxblood);
  font-family: "JetBrains Mono", monospace;
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .12em;
}

.sport-icon {
  width: 56px;
  height: 56px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--navy-deep);
  color: var(--gold-light);
  font-size: 1.2rem;
}


/* CONTENT */

.sport-category {
  display: block;
  margin-bottom: 8px;
  color: var(--gold);
  font-family: "JetBrains Mono", monospace;
  font-size: .65rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.sport-card h3 {
  margin: 0 0 16px;
  color: var(--navy-deep);
  font-family: "Fraunces", serif;
  font-size: 2.25rem;
  font-weight: 600;
  line-height: 1.05;
}

.sport-card p {
  margin: 0 0 12px;
  color: var(--ink-soft);
  font-size: .94rem;
  line-height: 1.75;
}

.sport-card p:last-child {
  margin-bottom: 0;
}


/* ---------------------------------------------------------
   HIGHLIGHT CARD
   --------------------------------------------------------- */

.sport-card-highlight {
  background: var(--navy-deep);
  border-color: var(--navy-deep);
}

.sport-card-highlight:hover {
  border-color: var(--gold);
}

.sport-card-highlight .sport-number {
  color: var(--gold-light);
}

.sport-card-highlight .sport-icon {
  background: var(--gold);
  color: var(--navy-deep);
}

.sport-card-highlight .sport-category {
  color: var(--gold-light);
}

.sport-card-highlight h3 {
  color: #fff;
}

.sport-card-highlight p {
  color: rgba(255,255,255,.72);
}


/* ---------------------------------------------------------
   WIDE KABADDI CARD
   --------------------------------------------------------- */

.sport-card-wide {
  grid-column: span 2;
  min-height: 300px;
  display: grid;
  grid-template-columns: 75px 1fr;
  column-gap: 25px;
}

.sport-card-wide .sport-card-top {
  grid-row: span 3;
  flex-direction: column;
  justify-content: flex-start;
  gap: 25px;
  margin: 0;
}

.sport-card-wide .sport-category,
.sport-card-wide h3,
.sport-card-wide p {
  max-width: 850px;
}


/* ---------------------------------------------------------
   CLOSING STRIP
   --------------------------------------------------------- */

.sports-closing {
  display: flex;
  align-items: center;
  gap: 25px;
  margin-top: 45px;
  padding: 35px 40px;
  background: var(--navy-deep);
}

.sports-closing-icon {
  width: 58px;
  height: 58px;
  flex: 0 0 58px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--gold);
  border-radius: 50%;
  color: var(--gold-light);
}

.sports-closing span {
  display: block;
  margin-bottom: 6px;
  color: var(--gold-light);
  font-family: "JetBrains Mono", monospace;
  font-size: .65rem;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.sports-closing h3 {
  margin: 0;
  color: #fff;
  font-family: "Fraunces", serif;
  font-size: 1.7rem;
  font-weight: 500;
}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 900px) {

  .sports-modern-section {
    padding: 80px 0 90px;
  }

  .sports-modern-intro {
    grid-template-columns: 1fr;
    gap: 25px;
    margin-bottom: 45px;
  }

  .sports-modern-grid {
    grid-template-columns: 1fr;
  }

  .sport-card-wide {
    grid-column: span 1;
  }

}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 600px) {

  .sports-modern-section {
    padding: 60px 0 70px;
  }

  .sports-modern-intro {
    margin-bottom: 35px;
  }

  .sports-modern-intro h2 {
    font-size: 2.8rem;
  }

  .sports-intro-text p {
    font-size: .95rem;
    line-height: 1.7;
  }

  .sports-modern-grid {
    gap: 14px;
  }

  .sport-card {
    min-height: auto;
    padding: 28px 24px;
  }

  .sport-card-top {
    margin-bottom: 25px;
  }

  .sport-icon {
    width: 48px;
    height: 48px;
    font-size: 1rem;
  }

  .sport-card h3 {
    font-size: 2rem;
  }

  .sport-card p {
    font-size: .9rem;
    line-height: 1.7;
  }

  .sport-card-wide {
    display: block;
  }

  .sport-card-wide .sport-card-top {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    margin-bottom: 25px;
  }

  .sports-closing {
    align-items: flex-start;
    padding: 28px 22px;
    gap: 17px;
  }

  .sports-closing-icon {
    width: 48px;
    height: 48px;
    flex-basis: 48px;
  }

  .sports-closing h3 {
    font-size: 1.35rem;
  }

}
/* =========================================================
   OLYMPIAD MODERN SECTION
   ========================================================= */

.olympiad-modern-section {
  padding: 110px 0 120px;
  background: var(--parchment);
  overflow: hidden;
}


/* =========================================================
   INTRO
   ========================================================= */

.olympiad-modern-intro {
  display: grid;
  grid-template-columns: 1fr .85fr;
  gap: 80px;
  align-items: end;
  padding-bottom: 75px;
}

.olympiad-overline {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: var(--oxblood);
  font-family: "JetBrains Mono", monospace;
  font-size: .7rem;
  font-weight: 600;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.olympiad-overline::before {
  content: "";
  width: 34px;
  height: 1px;
  background: var(--gold);
}

.olympiad-title h2 {
  margin: 22px 0 15px;
  color: var(--navy-deep);
  font-size: clamp(3rem, 5vw, 40px);
  font-weight: 600;
  line-height: .95;
  letter-spacing: -.045em;
}

.olympiad-classes {
  display: inline-block;
  padding: 8px 14px;
  border: 1px solid var(--gold);
  color: var(--oxblood);
  font-family: "JetBrains Mono", monospace;
  font-size: .68rem;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.olympiad-intro-text {
  max-width: 570px;
}

.olympiad-intro-text p {
  margin: 0 0 16px;
  color: var(--ink-soft);
  font-size: 1rem;
  line-height: 1.85;
}

.olympiad-intro-text p:last-child {
  margin-bottom: 0;
}

.olympiad-intro-text strong {
  color: var(--ink);
}


/* =========================================================
   ABOUT
   ========================================================= */

.olympiad-about {
  display: grid;
  grid-template-columns: 100px 1fr;
  gap: 45px;
  padding: 55px;
  background: var(--navy-deep);
  color: #fff;
}

.olympiad-about-number {
  color: var(--gold-light);
  font-family: "JetBrains Mono", monospace;
  font-size: .75rem;
  padding-top: 7px;
}

.olympiad-small-title {
  display: block;
  margin-bottom: 13px;
  color: var(--gold-light);
  font-family: "JetBrains Mono", monospace;
  font-size: .67rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.olympiad-about-content h3 {
  max-width: 700px;
  margin: 0 0 17px;
  color: #fff;
  font-size: clamp(2rem, 3vw, 3rem);
  font-weight: 500;
  line-height: 1.05;
}

.olympiad-about-content p {
  max-width: 800px;
  margin: 0;
  color: rgba(255,255,255,.7);
  font-size: .98rem;
  line-height: 1.8;
}


/* =========================================================
   SUBJECTS
   ========================================================= */

.olympiad-subject-section {
  padding: 85px 0;
}

.olympiad-section-heading {
  margin-bottom: 35px;
}

.olympiad-section-heading > span {
  display: block;
  margin-bottom: 10px;
  color: var(--gold);
  font-family: "JetBrains Mono", monospace;
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.olympiad-section-heading h3 {
  margin: 0;
  color: var(--navy-deep);
  font-size: 35px;
  font-weight: 600;
}


.olympiad-subject-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}

.olympiad-subject-card {
  position: relative;
  min-height: 220px;
  padding: 27px;
  border: 1px solid var(--line);
  background: var(--parchment-dark);
  transition: .3s ease;
}

.olympiad-subject-card:hover {
  transform: translateY(-5px);
  border-color: var(--gold);
  box-shadow: 0 18px 40px rgba(20,30,45,.08);
}

.olympiad-subject-card > span {
  position: absolute;
  top: 22px;
  right: 24px;
  color: var(--oxblood);
  font-family: "JetBrains Mono", monospace;
  font-size: .65rem;
}

.olympiad-subject-icon {
  width: 52px;
  height: 52px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 25px;
  background: var(--navy-deep);
  color: var(--gold-light);
}

.olympiad-subject-card h4 {
  max-width: 260px;
  margin: 0 0 10px;
  color: var(--navy-deep);
  font-family: "Fraunces", serif;
  font-size: 1.35rem;
  font-weight: 600;
  line-height: 1.15;
}

.olympiad-subject-card small {
  color: var(--ink-soft);
  font-family: "JetBrains Mono", monospace;
  font-size: .63rem;
  letter-spacing: .1em;
}


/* =========================================================
   HIGHLIGHTS
   ========================================================= */

.olympiad-highlights {
  padding: 75px 0;
  border-top: 1px solid var(--line);
}

.olympiad-highlight-heading {
  max-width: 700px;
  margin-bottom: 40px;
}

.olympiad-highlight-heading h3 {
  margin: 20px 0 0;
  color: var(--navy-deep);
  font-size: clamp(2.3rem, 4vw, 35px);
  line-height: 1;
  font-weight: 600;
}

.olympiad-highlight-heading h3 em {
  color: var(--oxblood);
  font-weight: 500;
}


.olympiad-highlight-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}

.olympiad-highlight-card {
  padding: 30px;
  min-height: 280px;
  border: 1px solid var(--line);
  background: rgba(255,255,255,.4);
}

.highlight-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 32px;
}

.highlight-top span {
  color: var(--oxblood);
  font-family: "JetBrains Mono", monospace;
  font-size: .68rem;
}

.highlight-top i {
  color: var(--gold);
  font-size: 1.25rem;
}

.olympiad-highlight-card h4 {
  margin: 0 0 14px;
  color: var(--navy-deep);
  font-family: "Fraunces", serif;
  font-size: 1.5rem;
  line-height: 1.1;
}

.olympiad-highlight-card p {
  margin: 0;
  color: var(--ink-soft);
  font-size: .9rem;
  line-height: 1.75;
}


/* =========================================================
   PREPARATION
   ========================================================= */

.olympiad-preparation {
  display: grid;
  grid-template-columns: .8fr 1.2fr;
  gap: 80px;
  padding: 80px 0;
  border-top: 1px solid var(--line);
}

.olympiad-preparation-heading h3 {
  margin: 20px 0 0;
  color: var(--navy-deep);
  font-size: 3rem;
  line-height: 1;
}

.olympiad-preparation-heading h3 em {
  display: block;
  color: var(--oxblood);
  font-weight: 500;
}


.preparation-list {
  border-top: 1px solid var(--line);
}

.preparation-item {
  display: grid;
  grid-template-columns: 45px 1fr 30px;
  align-items: center;
  gap: 20px;
  padding: 25px 0;
  border-bottom: 1px solid var(--line);
}

.preparation-number {
  color: var(--oxblood);
  font-family: "JetBrains Mono", monospace;
  font-size: .68rem;
}

.preparation-item h4 {
  margin: 0 0 5px;
  color: var(--navy-deep);
  font-family: "Fraunces", serif;
  font-size: 1.2rem;
}

.preparation-item p {
  margin: 0;
  color: var(--ink-soft);
  font-size: .86rem;
  line-height: 1.6;
}

.preparation-item > i {
  color: var(--gold);
  font-size: .8rem;
}


/* =========================================================
   FINAL
   ========================================================= */

.olympiad-final {
  display: flex;
  align-items: center;
  gap: 25px;
  padding: 35px 40px;
  background: var(--navy-deep);
}

.olympiad-final-icon {
  width: 58px;
  height: 58px;
  flex: 0 0 58px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--gold);
  border-radius: 50%;
  color: var(--gold-light);
}

.olympiad-final span {
  display: block;
  margin-bottom: 6px;
  color: var(--gold-light);
  font-family: "JetBrains Mono", monospace;
  font-size: .64rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.olympiad-final h3 {
  margin: 0;
  color: #fff;
  font-family: "Fraunces", serif;
  font-size: 1.65rem;
  font-weight: 500;
}


/* =========================================================
   RESPONSIVE
   ========================================================= */

@media (max-width: 900px) {

  .olympiad-modern-section {
    padding: 80px 0 90px;
  }

  .olympiad-modern-intro {
    grid-template-columns: 1fr;
    gap: 30px;
    padding-bottom: 55px;
  }

  .olympiad-subject-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .olympiad-highlight-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .olympiad-preparation {
    grid-template-columns: 1fr;
    gap: 40px;
  }

}


@media (max-width: 600px) {

  .olympiad-modern-section {
    padding: 60px 0 70px;
  }

  .olympiad-title h2 {
    font-size: 2.8rem;
  }

  .olympiad-intro-text p {
    font-size: .92rem;
  }

  .olympiad-about {
    grid-template-columns: 1fr;
    gap: 18px;
    padding: 30px 25px;
  }

  .olympiad-about-content h3 {
    font-size: 2rem;
  }

  .olympiad-subject-section {
    padding: 55px 0;
  }

  .olympiad-subject-grid,
  .olympiad-highlight-grid {
    grid-template-columns: 1fr;
  }

  .olympiad-subject-card {
    min-height: 190px;
  }

  .olympiad-highlights {
    padding: 55px 0;
  }

  .olympiad-highlight-card {
    min-height: auto;
  }

  .olympiad-preparation {
    padding: 55px 0;
  }

  .olympiad-preparation-heading h3 {
    font-size: 2.5rem;
  }

  .preparation-item {
    grid-template-columns: 35px 1fr 20px;
    gap: 12px;
  }

  .preparation-item h4 {
    font-size: 1.05rem;
  }

  .preparation-item p {
    font-size: .82rem;
  }

  .olympiad-final {
    padding: 28px 22px;
    gap: 17px;
  }

  .olympiad-final-icon {
    width: 48px;
    height: 48px;
    flex-basis: 48px;
  }

  .olympiad-final h3 {
    font-size: 1.3rem;
  }

}
<!-- =========================================================
     NCC CAMP / BOARDING CSS
     ========================================================= -->

.ncc-camp-section {
  background: var(--parchment);
}


/* =========================================================
   MAIN NCC CARD
   ========================================================= */

.ncc-modern-card {
  display: grid;
  grid-template-columns: 90px 1fr 150px;
  min-height: 330px;
  border: 1px solid var(--line);
  background: var(--navy-deep);
  color: #fff;
  overflow: hidden;
  margin-bottom: 20px;
}

.ncc-modern-number {
  padding: 45px 0 0 35px;
  color: var(--gold-light);
  font-family: "JetBrains Mono", monospace;
  font-size: .7rem;
}

.ncc-modern-content {
  padding: 45px 50px 45px 20px;
  align-self: center;
  max-width: 850px;
}

.ncc-modern-content .lab-modern-label {
  color: var(--gold-light);
}

.ncc-modern-content h3 {
  margin: 0 0 20px;
  color: #fff;
  font-family: "Fraunces", serif;
  font-size: clamp(2rem, 3.5vw, 3.4rem);
  font-weight: 500;
  line-height: 1.02;
}

.ncc-modern-content p {
  margin: 0;
  color: rgba(255,255,255,.72);
  font-size: .98rem;
  line-height: 1.8;
}

.ncc-modern-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,.05);
  border-left: 1px solid rgba(255,255,255,.12);
  color: var(--gold-light);
  font-size: 2rem;
}


/* =========================================================
   FEATURES
   ========================================================= */

.ncc-features-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-top: 55px;
}

.ncc-feature-card {
  position: relative;
  min-height: 290px;
  padding: 30px;
  border: 1px solid var(--line);
  background: var(--parchment-dark);
  transition:
    transform .3s ease,
    box-shadow .3s ease,
    border-color .3s ease;
}

.ncc-feature-card:hover {
  transform: translateY(-5px);
  border-color: rgba(160,120,45,.45);
  box-shadow: 0 18px 40px rgba(20,30,45,.09);
}

.ncc-feature-number {
  position: absolute;
  top: 25px;
  right: 25px;
  color: var(--oxblood);
  font-family: "JetBrains Mono", monospace;
  font-size: .65rem;
}

.ncc-feature-icon {
  width: 52px;
  height: 52px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 27px;
  background: var(--navy-deep);
  color: var(--gold-light);
}

.ncc-feature-card h3 {
  margin: 0 0 13px;
  color: var(--navy-deep);
  font-family: "Fraunces", serif;
  font-size: 1.45rem;
  line-height: 1.1;
}

.ncc-feature-card p {
  margin: 0;
  color: var(--ink-soft);
  font-size: .88rem;
  line-height: 1.7;
}


/* =========================================================
   COMMUNITY
   ========================================================= */

.ncc-community {
  display: flex;
  align-items: center;
  gap: 28px;
  margin-top: 55px;
  padding: 40px;
  background: var(--navy-deep);
}

.ncc-community-icon {
  width: 62px;
  height: 62px;
  flex: 0 0 62px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--gold);
  border-radius: 50%;
  color: var(--gold-light);
  font-size: 1.25rem;
}

.ncc-community span {
  display: block;
  margin-bottom: 8px;
  color: var(--gold-light);
  font-family: "JetBrains Mono", monospace;
  font-size: .65rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.ncc-community h3 {
  max-width: 750px;
  margin: 0 0 12px;
  color: #fff;
  font-family: "Fraunces", serif;
  font-size: 1.9rem;
  font-weight: 500;
  line-height: 1.15;
}

.ncc-community p {
  max-width: 800px;
  margin: 0;
  color: rgba(255,255,255,.68);
  font-size: .9rem;
  line-height: 1.7;
}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 1000px) {

  .ncc-features-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .ncc-modern-card {
    grid-template-columns: 70px 1fr 110px;
  }

}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 600px) {

  .ncc-modern-card {
    grid-template-columns: 45px 1fr;
  }

  .ncc-modern-number {
    padding: 30px 0 0 20px;
  }

  .ncc-modern-content {
    padding: 30px 22px 30px 5px;
  }

  .ncc-modern-content h3 {
    font-size: 2rem;
  }

  .ncc-modern-content p {
    font-size: .9rem;
  }

  .ncc-modern-icon {
    display: none;
  }

  .ncc-features-grid {
    grid-template-columns: 1fr;
    margin-top: 35px;
  }

  .ncc-feature-card {
    min-height: auto;
    padding: 27px;
  }

  .ncc-community {
    align-items: flex-start;
    padding: 28px 22px;
    gap: 17px;
  }

  .ncc-community-icon {
    width: 48px;
    height: 48px;
    flex-basis: 48px;
  }

  .ncc-community h3 {
    font-size: 1.4rem;
  }

}
/* =========================================================
   NDA PAGE
   ========================================================= */

.nda-page {
  background: var(--parchment);
}


/* ---------------------------------------------------------
   PREPARATION HEADING
   --------------------------------------------------------- */

.nda-preparation-heading {
  max-width: 850px;
  padding: 85px 0 45px;
}

.nda-preparation-heading h3 {
  margin: 20px 0 18px;
  color: var(--navy-deep);
  font-size: 35px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: -.03em;
}

.nda-preparation-heading p {
  max-width: 750px;
  margin: 0;
  color: var(--ink-soft);
  font-size: 1rem;
  line-height: 1.8;
}


/* ---------------------------------------------------------
   NDA FEATURES
   --------------------------------------------------------- */

.nda-features-grid {
  margin-top: 0;
}

.nda-features-grid .ncc-feature-card {
  min-height: 310px;
}

.nda-features-grid .ncc-feature-icon {
  background: var(--navy-deep);
}


/* ---------------------------------------------------------
   SUCCESS
   --------------------------------------------------------- */

.nda-success {
  margin-top: 65px;
}

.nda-success .ncc-community-icon {
  color: var(--gold-light);
}


/* ---------------------------------------------------------
   FINAL STRIP
   --------------------------------------------------------- */

.nda-final {
  display: flex;
  align-items: center;
  gap: 25px;
  margin-top: 20px;
  padding: 35px 40px;
  background: var(--oxblood);
}

.nda-final-icon {
  width: 58px;
  height: 58px;
  flex: 0 0 58px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--gold-light);
  border-radius: 50%;
  color: var(--gold-light);
}

.nda-final span {
  display: block;
  margin-bottom: 6px;
  color: #e8eaef;
  font-family: "JetBrains Mono", monospace;
  font-size: .65rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.nda-final h3 {
  margin: 0;
  color: #fff;
  font-family: "Fraunces", serif;
  font-size: 1.65rem;
  font-weight: 500;
}


/* ---------------------------------------------------------
   MOBILE
   --------------------------------------------------------- */

@media (max-width: 600px) {

  .nda-preparation-heading {
    padding: 55px 0 30px;
  }

  .nda-preparation-heading h3 {
    font-size: 2.5rem;
  }

  .nda-preparation-heading p {
    font-size: .92rem;
  }

  .nda-features-grid .ncc-feature-card {
    min-height: auto;
  }

  .nda-success {
    margin-top: 40px;
  }

  .nda-final {
    padding: 28px 22px;
    gap: 17px;
  }

  .nda-final-icon {
    width: 48px;
    height: 48px;
    flex-basis: 48px;
  }

  .nda-final h3 {
    font-size: 1.3rem;
  }

}
/* =========================================
   ADMISSION OVERVIEW
========================================= */

.admission-overview {
  padding: 80px 0;
  background: var(--parchment);
}

.admission-overview-card {
  background: var(--parchment-light, #fff);
  padding: 0px 52px;
  position: relative;
  overflow: hidden;
}


.admission-overview-header {
  margin-bottom: 40px;
  position: relative;
  z-index: 1;
}

.admission-overline {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: "JetBrains Mono", monospace;
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--oxblood);
  margin-bottom: 12px;
}

.admission-overline::before {
  content: "";
  width: 28px;
  height: 1px;
  background: var(--gold);
}

.admission-overview-header h2 {
  margin: 0;
  font-size: clamp(2rem, 4vw, 40px);
  line-height: 1.1;
  color: var(--navy-deep);
  font-weight: 600;
}

.admission-info-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
  position: relative;
  z-index: 1;
}

.admission-info-item {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  padding: 28px 25px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  min-height: 125px;
  transition: all 0.3s ease;
}

.admission-info-item:hover {
  background: var(--parchment-dark);
}

.admission-info-number {
  flex: 0 0 auto;
  width: 38px;
  height: 38px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--gold);
  color: var(--oxblood);
  font-family: "JetBrains Mono", monospace;
  font-size: 0.68rem;
}

.admission-info-item small {
  display: block;
  margin-bottom: 8px;
  color: var(--ink-soft);
  font-family: "JetBrains Mono", monospace;
  font-size: 0.68rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.admission-info-item strong {
  display: block;
  color: var(--navy-deep);
  font-family: "Fraunces", serif;
  font-size: 1.15rem;
  line-height: 1.45;
  font-weight: 600;
}

.admission-info-highlight {
  grid-column: span 2;
  background: var(--navy-deep);
  border-color: var(--navy-deep);
}

.admission-info-highlight:hover {
  background: var(--navy);
}

.admission-info-highlight .admission-info-number {
  color: var(--gold-light);
  border-color: var(--gold);
}

.admission-info-highlight small {
  color: rgba(255, 255, 255, 0.65);
}

.admission-info-highlight strong {
  color: #fff;
  font-size: 1.35rem;
}

.admission-time {
  display: inline-block;
  margin-top: 8px;
  color: var(--gold-light);
  font-family: "JetBrains Mono", monospace;
  font-size: 0.78rem;
  letter-spacing: 0.03em;
}


/* =========================================
   RESPONSIVE
========================================= */

@media (max-width: 800px) {

  .admission-overview {
    padding: 60px 0;
  }

  .admission-overview-card {
    padding: 35px 25px;
  }

  .admission-info-grid {
    grid-template-columns: 1fr;
  }

  .admission-info-highlight {
    grid-column: span 1;
  }

  .admission-info-item {
    padding: 23px 20px;
  }

}

@media (max-width: 520px) {

  .admission-overview {
    padding: 45px 0;
  }

  .admission-overview-card {
    padding: 28px 18px;
  }

  .admission-overview-header {
    margin-bottom: 28px;
  }

  .admission-info-item {
    gap: 14px;
    padding: 20px 15px;
  }

  .admission-info-number {
    width: 32px;
    height: 32px;
    font-size: 0.6rem;
  }

  .admission-info-item strong {
    font-size: 1rem;
  }

  .admission-info-highlight strong {
    font-size: 1.15rem;
  }

  .admission-overview-card::before {
    font-size: 3rem;
  }

}
/* =========================================
   VACATION DATES
========================================= */

.vacation-dates-section {
  padding: 80px 0;
  background: var(--parchment-dark);
}

.vacation-heading {
  display: grid;
  grid-template-columns: 1fr 0.75fr;
  gap: 60px;
  align-items: end;
  margin-bottom: 42px;
}

.vacation-overline {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;

  font-family: "JetBrains Mono", monospace;
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--oxblood);
}

.vacation-overline::before {
  content: "";
  width: 28px;
  height: 1px;
  background: var(--gold);
}

.vacation-heading h2 {
  margin: 0;
  font-family: "Fraunces", serif;
  font-size: clamp(2.2rem, 4vw, 3.4rem);
  line-height: 1.05;
  font-weight: 600;
  color: var(--navy-deep);
}

.vacation-heading p {
  margin: 0;
  color: var(--ink-soft);
  line-height: 1.75;
  font-size: 1rem;
}


/* TABLE */

.vacation-table-wrap {
  background: var(--parchment-light, #fff);
  border: 1px solid var(--line);
  overflow: hidden;
}

.vacation-table-scroll {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.vacation-table {
  width: 100%;
  min-width: 760px;
  border-collapse: collapse;
  text-align: left;
}

.vacation-table thead {
  background: var(--navy-deep);
}

.vacation-table th {
  padding: 18px 20px;

  color: #fff;
  font-family: "JetBrains Mono", monospace;
  font-size: 0.68rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;

  border-right: 1px solid rgba(255,255,255,0.12);
  white-space: nowrap;
}

.vacation-table th:last-child {
  border-right: none;
}

.vacation-table td {
  padding: 18px 20px;

  color: var(--ink-soft);
  font-size: 0.94rem;
  line-height: 1.55;

  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);

  vertical-align: middle;
}

.vacation-table td:last-child {
  border-right: none;
}

.vacation-table tbody tr:last-child td {
  border-bottom: none;
}


/* Alternate rows */

.vacation-table tbody tr:nth-child(odd) {
  background: rgba(255,255,255,0.55);
}

.vacation-table tbody tr:nth-child(even) {
  background: rgba(245,238,220,0.45);
}

.vacation-table tbody tr:hover {
  background: rgba(196, 154, 62, 0.08);
}


/* Serial */

.vacation-table .serial {
  width: 75px;
  text-align: center;

  font-family: "JetBrains Mono", monospace;
  font-size: 0.72rem;
  color: var(--oxblood);
  font-weight: 600;
}


/* Month */

.vacation-table .month {
  width: 120px;

  font-family: "Fraunces", serif;
  font-size: 1.05rem;
  color: var(--navy-deep);
  font-weight: 600;
}


/* Date */

.vacation-table td:nth-child(3) {
  color: var(--navy);
  font-weight: 500;
  white-space: nowrap;
}


/* Holiday */

.vacation-table td:last-child {
  min-width: 320px;
}


/* =========================================
   RESPONSIVE
========================================= */

@media (max-width: 900px) {

  .vacation-dates-section {
    padding: 65px 0;
  }

  .vacation-heading {
    grid-template-columns: 1fr;
    gap: 18px;
    margin-bottom: 32px;
  }

  .vacation-heading h2 {
    font-size: 2.5rem;
  }

}

@media (max-width: 600px) {

  .vacation-dates-section {
    padding: 50px 0;
  }

  .vacation-heading h2 {
    font-size: 2.15rem;
  }

  .vacation-heading p {
    font-size: 0.92rem;
  }

  .vacation-table th {
    padding: 15px;
    font-size: 0.63rem;
  }

  .vacation-table td {
    padding: 15px;
    font-size: 0.88rem;
  }

}
/* =========================================
   REQUIRED DOCUMENTS
========================================= */

.required-documents-section {
  padding: 90px 0;
  background: var(--parchment);
}

.required-documents-heading {
  display: grid;
  grid-template-columns: 1fr 0.75fr;
  gap: 60px;
  align-items: end;
  margin-bottom: 45px;
}

.documents-overline {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;

  font-family: "JetBrains Mono", monospace;
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--oxblood);
}

.documents-overline::before {
  content: "";
  width: 28px;
  height: 1px;
  background: var(--gold);
}

.required-documents-heading h2 {
  margin: 0;

  font-family: "Fraunces", serif;
  font-size: clamp(2.3rem, 4vw, 3.5rem);
  line-height: 1.05;
  font-weight: 600;
  color: var(--navy-deep);
}

.required-documents-heading p {
  margin: 0;
  color: var(--ink-soft);
  font-size: 1rem;
  line-height: 1.75;
}


/* =========================================
   MAIN LAYOUT
========================================= */

.documents-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.65fr) minmax(280px, 0.75fr);
  gap: 35px;
  align-items: start;
}


/* =========================================
   DOCUMENT LIST
========================================= */

.documents-list {
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
  background: var(--parchment-light, #fff);
}

.document-item {
  display: flex;
  align-items: flex-start;
  gap: 22px;

  padding: 23px 25px;

  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);

  transition: all 0.3s ease;
}

.document-item:hover {
  background: var(--parchment-dark);
  transform: translateX(4px);
}

.document-number {
  flex: 0 0 auto;

  width: 38px;
  height: 38px;

  display: flex;
  align-items: center;
  justify-content: center;

  border: 1px solid var(--gold);

  color: var(--oxblood);

  font-family: "JetBrains Mono", monospace;
  font-size: 0.68rem;
  font-weight: 600;
}

.document-content {
  flex: 1;
}

.document-content h3 {
  margin: 0 0 5px;

  color: var(--navy-deep);

  font-family: "Fraunces", serif;
  font-size: 1.08rem;
  line-height: 1.4;
  font-weight: 600;
}

.document-content p {
  margin: 4px 0 9px;

  color: var(--ink-soft);
  font-size: 0.9rem;
  line-height: 1.6;
}

.document-status {
  display: inline-block;

  padding: 5px 9px;

  background: rgba(180, 140, 50, 0.10);
  border-left: 2px solid var(--gold);

  color: var(--oxblood);

  font-family: "JetBrains Mono", monospace;
  font-size: 0.62rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}


/* =========================================
   RIGHT SIDE
========================================= */

.documents-side {
  position: sticky;
  top: 120px;
}

.documents-side-card {
  position: relative;
  overflow: hidden;

  padding: 35px 30px;

  background: var(--navy-deep);
  color: #fff;
}

.documents-side-card::after {
  content: "03";

  position: absolute;
  right: -5px;
  bottom: -35px;

  font-family: "Fraunces", serif;
  font-size: 9rem;
  font-weight: 600;

  color: rgba(255,255,255,0.035);
}

.documents-side-icon {
  width: 48px;
  height: 48px;

  display: flex;
  align-items: center;
  justify-content: center;

  border: 1px solid var(--gold);

  color: var(--gold-light);

  margin-bottom: 25px;
}

.documents-side-label {
  display: block;

  margin-bottom: 12px;

  font-family: "JetBrains Mono", monospace;
  font-size: 0.68rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;

  color: var(--gold-light);
}

.documents-side-card h3 {
  position: relative;
  z-index: 1;

  margin: 0 0 15px;

  font-family: "Fraunces", serif;
  font-size: 2rem;
  line-height: 1.15;
  font-weight: 600;
}

.documents-side-card h3 em {
  color: var(--gold-light);
  font-style: italic;
}

.documents-side-card p {
  position: relative;
  z-index: 1;

  margin: 0;

  color: rgba(255,255,255,0.7);

  font-size: 0.9rem;
  line-height: 1.7;
}

.documents-count {
  position: relative;
  z-index: 1;

  display: flex;
  align-items: center;
  gap: 15px;

  margin-top: 30px;
  padding-top: 22px;

  border-top: 1px solid rgba(255,255,255,0.15);
}

.documents-count strong {
  font-family: "Fraunces", serif;
  font-size: 3rem;
  line-height: 1;
  color: var(--gold-light);
}

.documents-count span {
  font-family: "JetBrains Mono", monospace;
  font-size: 0.62rem;
  line-height: 1.5;
  text-transform: uppercase;
  letter-spacing: 0.05em;

  color: rgba(255,255,255,0.65);
}


/* =========================================
   CONTACT CARD
========================================= */

.admission-contact-card {
  margin-top: 18px;
  padding: 25px;

  background: var(--parchment-light, #fff);
  border: 1px solid var(--line);
}

.contact-label {
  display: block;

  margin-bottom: 8px;

  font-family: "JetBrains Mono", monospace;
  font-size: 0.65rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;

  color: var(--oxblood);
}

.admission-contact-card h4 {
  margin: 0 0 10px;

  color: var(--navy-deep);

  font-family: "Fraunces", serif;
  font-size: 1.35rem;
}

.admission-contact-card p {
  margin: 0 0 18px;

  color: var(--ink-soft);

  font-size: 0.88rem;
  line-height: 1.6;
}

.contact-numbers {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.contact-numbers a {
  display: flex;
  align-items: center;
  gap: 10px;

  color: var(--navy-deep);

  font-family: "JetBrains Mono", monospace;
  font-size: 0.75rem;
  text-decoration: none;

  transition: color 0.25s ease;
}

.contact-numbers a i {
  color: var(--oxblood);
}

.contact-numbers a:hover {
  color: var(--oxblood);
}


/* =========================================
   RESPONSIVE
========================================= */

@media (max-width: 950px) {

  .required-documents-heading {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .documents-layout {
    grid-template-columns: 1fr;
  }

  .documents-side {
    position: static;
  }

  .documents-side-card {
    display: grid;
    grid-template-columns: auto 1fr;
    column-gap: 22px;
    align-items: start;
  }

  .documents-side-icon {
    grid-row: span 3;
  }

  .documents-side-label {
    margin-bottom: 6px;
  }

  .documents-side-card h3 {
    margin-bottom: 10px;
  }

  .documents-count {
    grid-column: 2;
    margin-top: 20px;
  }

}

@media (max-width: 600px) {

  .required-documents-section {
    padding: 55px 0;
  }

  .required-documents-heading h2 {
    font-size: 2.2rem;
  }

  .required-documents-heading p {
    font-size: 0.92rem;
  }

  .document-item {
    gap: 14px;
    padding: 19px 15px;
  }

  .document-number {
    width: 32px;
    height: 32px;
    font-size: 0.6rem;
  }

  .document-content h3 {
    font-size: 1rem; 
  }
  .document-content p {
    font-size: 0.84rem;
  }

  .documents-side-card {
    display: block;
    padding: 28px 22px;
  }

  .documents-count {
    margin-top: 22px;
  }

}
/* =========================================================
   FEE STRUCTURE PAGE
   KIS MODERN TEMPLATE
========================================================= */

.fee-page-section {
  padding: 85px 0;
  background: var(--parchment);
}


/* =========================================================
   PAGE INTRO
========================================================= */

.fee-page-intro {
  display: grid;
  grid-template-columns: 1fr .7fr;
  gap: 60px;
  align-items: end;

  margin-bottom: 38px;
}

.fee-eyebrow,
.fee-inner-heading > span {
  display: inline-flex;
  align-items: center;
  gap: 10px;

  margin-bottom: 12px;

  color: var(--oxblood);

  font-family: "JetBrains Mono", monospace;
  font-size: .68rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.fee-eyebrow::before,
.fee-inner-heading > span::before {
  content: "";

  width: 28px;
  height: 1px;

  background: var(--gold);
}

.fee-page-intro h2 {
  margin: 0;

  color: var(--navy-deep);

  font-size: clamp(2.4rem, 5vw, 40px);
  line-height: 1;
}

.fee-page-intro > p {
  margin: 0;

  color: var(--ink-soft);

  font-family: "JetBrains Mono", monospace;
  font-size: .68rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}


/* =========================================================
   TABS
========================================================= */

.fee-tabs {
  display: flex;

  border-bottom: 1px solid var(--line);

  margin-bottom: 42px;
}

.fee-tab {
  padding: 15px 28px;

  border: 0;
  border-bottom: 2px solid transparent;

  background: transparent;

  color: var(--ink-soft);

  font-family: "Fraunces", serif;
  font-size: 1rem;
  font-weight: 600;

  cursor: pointer;

  transition: .25s ease;
}

.fee-tab:hover {
  color: var(--oxblood);
}

.fee-tab.active {
  color: var(--oxblood);
  border-bottom-color: var(--oxblood);
}


/* =========================================================
   SESSION TITLE
========================================================= */

.fee-session {
  margin-bottom: 27px;
}

.fee-session-label {
  margin-bottom: 7px;

  color: var(--ink-soft);

  font-family: "JetBrains Mono", monospace;
  font-size: .64rem;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.fee-session h3 {
  margin: 0;

  color: var(--navy-deep);

  font-size: 30px;
}

.fee-session h3 span {
  color: var(--oxblood);
}


/* =========================================================
   FEE TABLE
========================================================= */

.fee-table-box {
  overflow: hidden;

  border: 1px solid var(--line);

  background: #fff;
}

.fee-table-scroll {
  width: 100%;
  overflow-x: auto;
}

.kis-fee-table {
  width: 100%;
  min-width: 820px;

  border-collapse: collapse;
}

.kis-fee-table th {
  padding: 18px 20px;

  background: var(--navy-deep);

  color: #fff;

  font-family: "JetBrains Mono", monospace;
  font-size: .63rem;
  font-weight: 500;
  letter-spacing: .08em;
  text-transform: uppercase;

  text-align: left;
}

.kis-fee-table td {
  padding: 19px 20px;

  border-bottom: 1px solid var(--line);
  border-right: 1px solid var(--line);

  color: var(--ink-soft);

  font-size: .92rem;
}

.kis-fee-table tbody tr:nth-child(even) {
  background: var(--parchment-dark);
}

.kis-fee-table tbody tr:hover {
  background: rgba(180,140,50,.07);
}

.kis-fee-table td:nth-child(n+3) {
  text-align: right;

  white-space: nowrap;
}

.kis-fee-table .fee-quarter {
  width: 205px;

  background: var(--oxblood);

  color: #fff;

  font-family: "Fraunces", serif;
  font-size: 1rem;
  font-weight: 600;

  vertical-align: middle;
}

.fee-quarter span {
  display: block;

  margin-bottom: 7px;

  color: var(--gold-light);

  font-family: "JetBrains Mono", monospace;
  font-size: .58rem;
}

.kis-fee-table .fee-total {
  color: var(--oxblood);

  font-family: "Fraunces", serif;
  font-size: 1.08rem;
  font-weight: 600;
}


/* =========================================================
   MOBILE FEE
========================================================= */

.fee-mobile-list {
  display: none;
}

.fee-mobile-card {
  margin-bottom: 18px;

  background: #fff;

  border: 1px solid var(--line);
}

.fee-mobile-header {
  display: flex;
  align-items: center;
  gap: 14px;

  padding: 17px 18px;

  background: var(--navy-deep);
  color: #fff;
}

.fee-mobile-header span {
  color: var(--gold-light);

  font-family: "JetBrains Mono", monospace;
  font-size: .62rem;
}

.fee-mobile-header h4 {
  margin: 0;

  font-family: "Fraunces", serif;
  font-size: 1.05rem;
}

.fee-mobile-class {
  padding: 20px;

  border-bottom: 1px solid var(--line);
}

.fee-mobile-class:last-child {
  border-bottom: 0;
}

.fee-mobile-class h5 {
  margin: 0 0 13px;

  color: var(--navy-deep);

  font-family: "Fraunces", serif;
  font-size: 1.05rem;
}

.fee-mobile-class > div {
  display: flex;
  justify-content: space-between;
  gap: 15px;

  padding: 6px 0;

  font-size: .84rem;
}

.fee-mobile-class > div span {
  color: var(--ink-soft);
}

.fee-mobile-class > div strong {
  color: var(--navy-deep);
}

.fee-mobile-class .mobile-fee-total {
  margin-top: 7px;
  padding-top: 11px;

  border-top: 1px solid var(--line);
}

.mobile-fee-total strong {
  color: var(--oxblood) !important;

  font-family: "Fraunces", serif;
}


/* =========================================================
   TRANSPORT NOTE
========================================================= */

.fee-transport-note {
  margin-top: 14px;

  color: var(--ink-soft);

  font-size: .78rem;
}

.fee-transport-note span {
  color: var(--oxblood);
  font-weight: 600;
}


/* =========================================================
   INNER SECTIONS
========================================================= */

.fee-inner-section {
  margin-top: 30px;
  padding-top: 20px;
}

.fee-inner-heading {
  margin-bottom: 30px;
}

.fee-inner-heading h3 {
  margin: 0;

  color: var(--navy-deep);

  font-size: 30px;
}


/* =========================================================
   EXTRAS
========================================================= */

.extras-list {
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}

.extras-item,
.extras-info {
  display: flex;
  align-items: flex-start;
  gap: 20px;

  padding: 25px;

  background: #fff;

  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.extras-item {
  justify-content: space-between;
}

.extras-left {
  display: flex;
  gap: 18px;
  align-items: flex-start;
}

.extras-left > span,
.extras-info > span {
  flex: 0 0 auto;

  width: 37px;
  height: 37px;

  display: flex;
  align-items: center;
  justify-content: center;

  border: 1px solid var(--gold);

  color: var(--oxblood);

  font-family: "JetBrains Mono", monospace;
  font-size: .62rem;
}

.extras-left p {
  margin: 0;

  color: var(--navy-deep);

  font-family: "Fraunces", serif;
  font-size: 1.05rem;
}

.extras-item > strong {
  color: var(--oxblood);

  font-family: "Fraunces", serif;
  font-size: 1.15rem;

  white-space: nowrap;
}

.extras-info p {
  margin: 0;

  color: var(--ink-soft);

  font-size: .92rem;
  line-height: 1.7;
}


/* =========================================================
   SPECIAL INFORMATION
========================================================= */

.special-list {
  border-top: 1px solid var(--line);
}

.special-item {
  display: grid;
  grid-template-columns: 45px 1fr;
  gap: 20px;

  padding: 25px 5px;

  border-bottom: 1px solid var(--line);
}

.special-item > span {
  width: 36px;
  height: 36px;

  display: flex;
  align-items: center;
  justify-content: center;

  border: 1px solid var(--gold);

  color: var(--oxblood);

  font-family: "JetBrains Mono", monospace;
  font-size: .62rem;
}

.special-item p {
  margin: 0;

  color: var(--ink-soft);

  font-size: .94rem;
  line-height: 1.75;
}


/* =========================================================
   WITHDRAWAL
========================================================= */

.withdrawal-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 18px;
}

.withdrawal-card {
  display: grid;
  grid-template-columns: 40px 1fr;
  gap: 18px;

  padding: 26px;

  background: #fff;

  border: 1px solid var(--line);

  transition: .3s ease;
}

.withdrawal-card:hover {
  border-color: var(--gold);
  transform: translateY(-3px);
}

.withdrawal-card > span {
  color: var(--oxblood);

  font-family: "JetBrains Mono", monospace;
  font-size: .63rem;
}

.withdrawal-card p {
  margin: 0;

  color: var(--ink-soft);

  font-size: .92rem;
  line-height: 1.7;
}


/* =========================================================
   GROUNDS FOR REMOVAL
========================================================= */

.removal-section {
  margin-top: 24px;

  padding: 32px;

  background: rgba(155,28,39,.055);

  border: 1px solid rgba(155,28,39,.17);
  border-left: 4px solid var(--oxblood);
}

.removal-title {
  display: flex;
  align-items: center;
  gap: 16px;

  margin-bottom: 18px;
}

.removal-icon {
  width: 46px;
  height: 46px;

  display: flex;
  align-items: center;
  justify-content: center;

  flex: 0 0 auto;

  background: var(--oxblood);
  color: #fff;
}

.removal-title > div:last-child > span {
  display: block;

  margin-bottom: 3px;

  color: var(--oxblood);

  font-family: "JetBrains Mono", monospace;
  font-size: .61rem;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.removal-title h4 {
  margin: 0;

  color: var(--navy-deep);

  font-family: "Fraunces", serif;
  font-size: 1.5rem;
}

.removal-section > p {
  margin: 0 0 18px;

  color: var(--ink-soft);

  line-height: 1.7;
}

.removal-section ul {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px 30px;

  margin: 0;
  padding: 0;

  list-style: none;
}

.removal-section li {
  position: relative;

  padding-left: 19px;

  color: var(--ink-soft);

  font-size: .9rem;
  line-height: 1.55;
}

.removal-section li::before {
  content: "";

  position: absolute;
  left: 0;
  top: .65em;

  width: 6px;
  height: 6px;

  background: var(--oxblood);
  border-radius: 50%;
}


/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 950px) {

  .fee-page-intro {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .withdrawal-grid {
    grid-template-columns: 1fr;
  }

}


@media (max-width: 700px) {

  .fee-page-section {
    padding: 60px 0;
  }

  .fee-page-intro h2 {
    font-size: 2.4rem;
  }

  .fee-table-box {
    display: none;
  }

  .fee-mobile-list {
    display: block;
  }

  .fee-tabs {
    margin-bottom: 30px;
  }

  .fee-tab {
    padding: 13px 18px;
  }

  .fee-inner-section {
    margin-top: 65px;
    padding-top: 50px;
  }

  .extras-list {
    border-left: 0;
  }

  .extras-item,
  .extras-info {
    padding: 20px 17px;
  }

  .extras-item {
    flex-direction: column;
    gap: 12px;
  }

  .extras-item > strong {
    margin-left: 55px;
  }

  .special-item {
    grid-template-columns: 38px 1fr;
    gap: 14px;
  }

  .removal-section {
    padding: 24px 19px;
  }

  .removal-section ul {
    grid-template-columns: 1fr;
  }

}


@media (max-width: 480px) {

  .fee-page-intro h2 {
    font-size: 2.1rem;
  }

  .fee-session h3 {
    font-size: 1.45rem;
  }

  .fee-mobile-class {
    padding: 18px 15px;
  }

  .fee-inner-heading h3 {
    font-size: 1.9rem;
  }

  .special-item p,
  .withdrawal-card p,
  .extras-info p {
    font-size: .86rem;
  }

  .removal-title {
    align-items: flex-start;
  }

}
/* =========================================================
   FEE TAB CONTENT
========================================================= */

.fee-tab-content {
  display: none;
  animation: feeTabFade .35s ease;
}

.fee-tab-content.active {
  display: block;
}

@keyframes feeTabFade {
  from {
    opacity: 0;
    transform: translateY(8px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}


/* Boarding table needs a little more width */

.boarding-fee-table {
  min-width: 1050px;
}

.boarding-fee-table th,
.boarding-fee-table td {
  white-space: nowrap;
}

.boarding-fee-table td {
  padding: 18px 16px;
}


/* Mobile */

@media (max-width: 700px) {

  .boarding-fee-table {
    min-width: 1050px;
  }

  .fee-tab-content {
    width: 100%;
  }

}
/* =========================================================
   ENTRANCE TEST PAGE
========================================================= */

.entrance-page-section {
  padding: 85px 0;
  background: var(--parchment);
}


/* =========================================================
   PAGE HEADING
========================================================= */

.entrance-page-heading {
  max-width: 850px;
  margin-bottom: 48px;
}

.entrance-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;

  margin-bottom: 13px;

  color: var(--oxblood);

  font-family: "JetBrains Mono", monospace;
  font-size: .66rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.entrance-eyebrow::before {
  content: "";

  width: 28px;
  height: 1px;

  background: var(--gold);
}

.entrance-page-heading h2,
.entrance-section-heading h2 {
  margin: 0;

  color: var(--navy-deep);
  font-size: clamp(2.3rem, 5vw, 40px);
  line-height: 1.05;
}

.entrance-page-heading p {
  max-width: 680px;

  margin: 18px 0 0;

  color: var(--ink-soft);

  font-size: .98rem;
  line-height: 1.7;
}


/* =========================================================
   INFORMATION CARDS
========================================================= */

.entrance-info-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 22px;
}

.entrance-info-card {
  display: flex;
  gap: 24px;

  padding: 32px;

  background: #fff;

  border: 1px solid var(--line);

  transition: .3s ease;
}

.entrance-info-card:hover {
  border-color: var(--gold);

  transform: translateY(-4px);
}

.entrance-card-number {
  flex: 0 0 auto;

  width: 43px;
  height: 43px;

  display: flex;
  align-items: center;
  justify-content: center;

  border: 1px solid var(--gold);

  color: var(--oxblood);

  font-family: "JetBrains Mono", monospace;
  font-size: .62rem;
}

.entrance-card-content {
  min-width: 0;
}

.entrance-card-label {
  display: block;

  margin-bottom: 6px;

  color: var(--ink-soft);

  font-family: "JetBrains Mono", monospace;
  font-size: .6rem;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.entrance-card-content h3 {
  margin: 0 0 20px;

  color: var(--navy-deep);

  font-family: "Fraunces", serif;
  font-size: 1.65rem;
}


/* =========================================================
   DETAIL LIST
========================================================= */

.entrance-detail-list {
  margin: 0;
  padding: 0;

  list-style: none;
}

.entrance-detail-list li {
  position: relative;

  padding: 12px 0 12px 18px;

  border-bottom: 1px solid var(--line);

  color: var(--ink-soft);

  font-size: .9rem;
  line-height: 1.65;
}

.entrance-detail-list li:last-child {
  border-bottom: 0;
}

.entrance-detail-list li::before {
  content: "";

  position: absolute;
  left: 0;
  top: 22px;

  width: 5px;
  height: 5px;

  background: var(--oxblood);

  border-radius: 50%;
}

.entrance-detail-list strong {
  color: var(--navy-deep);
}


/* =========================================================
   QUESTION DISTRIBUTION
========================================================= */

.question-distribution {
  display: grid;
  grid-template-columns: repeat(2, 1fr);

  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}

.question-distribution div {
  display: flex;
  align-items: center;
  justify-content: space-between;

  padding: 11px 13px;

  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);

  background: var(--parchment-dark);
}

.question-distribution span {
  color: var(--ink-soft);

  font-size: .83rem;
}

.question-distribution strong {
  color: var(--oxblood);

  font-family: "Fraunces", serif;
  font-size: 1rem;
}

.exam-meta {
  display: grid;
  grid-template-columns: 1fr 1fr;

  margin-top: 20px;

  border-top: 1px solid var(--line);
}

.exam-meta div {
  padding: 17px 10px 0 0;
}

.exam-meta div + div {
  padding-left: 15px;

  border-left: 1px solid var(--line);
}

.exam-meta span {
  display: block;

  margin-bottom: 4px;

  color: var(--ink-soft);

  font-family: "JetBrains Mono", monospace;
  font-size: .58rem;
  text-transform: uppercase;
}

.exam-meta strong {
  color: var(--navy-deep);

  font-size: .83rem;
}


/* =========================================================
   SYLLABUS SECTION
========================================================= */

.entrance-syllabus-section {
  margin-top: 100px;
  padding-top: 70px;

  border-top: 1px solid var(--line);
}

.entrance-section-heading {
  display: flex;
  justify-content: space-between;

  margin-bottom: 32px;
}


/* =========================================================
   SYLLABUS TABS
========================================================= */

.syllabus-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;

  margin-bottom: 35px;
}

.syllabus-tab {
  padding: 13px 20px;

  border: 1px solid var(--line);

  background: #fff;

  color: var(--ink-soft);

  font-family: "Fraunces", serif;
  font-size: .9rem;
  font-weight: 600;

  cursor: pointer;

  transition: .25s ease;
}

.syllabus-tab:hover {
  border-color: var(--gold);

  color: var(--oxblood);
}

.syllabus-tab.active {
  background: var(--oxblood);

  border-color: var(--oxblood);

  color: #fff;
}


/* =========================================================
   SYLLABUS CONTENT
========================================================= */

.syllabus-content {
  display: none;

  animation: syllabusFade .35s ease;
}

.syllabus-content.active {
  display: block;
}

@keyframes syllabusFade {

  from {
    opacity: 0;
    transform: translateY(8px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }

}


/* =========================================================
   SUBJECT GRID
========================================================= */

.subject-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}

.subject-card {
  position: relative;

  padding: 27px;

  background: #fff;

  border: 1px solid var(--line);

  transition: .3s ease;
}

.subject-card:hover {
  border-color: var(--gold);

  transform: translateY(-4px);
}

.subject-top {
  display: flex;
  align-items: center;
  justify-content: space-between;

  margin-bottom: 17px;
}

.subject-top span {
  color: var(--gold);

  font-family: "JetBrains Mono", monospace;
  font-size: .63rem;
}

.subject-top small {
  color: var(--ink-soft);

  font-family: "JetBrains Mono", monospace;
  font-size: .55rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.subject-card h3 {
  margin: 0 0 17px;

  color: var(--oxblood);

  font-family: "Fraunces", serif;
  font-size: 1.25rem;
}

.subject-card ul {
  margin: 0;
  padding: 0 0 0 18px;

  color: var(--ink-soft);

  font-size: .87rem;
  line-height: 1.65;
}

.subject-card li {
  margin-bottom: 7px;
}

.subject-card li:last-child {
  margin-bottom: 0;
}


/* =========================================================
   EMPTY SYLLABUS TABS
========================================================= */

.syllabus-empty {
  min-height: 180px;

  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;

  padding: 30px;

  background: #fff;

  border: 1px solid var(--line);

  text-align: center;
}

.syllabus-empty span {
  margin-bottom: 8px;

  color: var(--oxblood);

  font-family: "JetBrains Mono", monospace;
  font-size: .62rem;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.syllabus-empty h3 {
  margin: 0;

  color: var(--navy-deep);

  font-family: "Fraunces", serif;
  font-size: 1.5rem;
}


/* =========================================================
   SUMMARY STRIP
========================================================= */

.entrance-summary {
  display: grid;
  grid-template-columns: repeat(4, 1fr);

  margin-top: 55px;

  border: 1px solid var(--line);

  background: var(--navy-deep);
}

.summary-item {
  padding: 25px 22px;

  border-right: 1px solid rgba(255,255,255,.14);
}

.summary-item:last-child {
  border-right: 0;
}

.summary-item span {
  display: block;

  margin-bottom: 7px;

  color: rgba(255,255,255,.62);

  font-family: "JetBrains Mono", monospace;
  font-size: .58rem;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.summary-item strong {
  color: #fff;

  font-family: "Fraunces", serif;
  font-size: 1.1rem;
}


/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 950px) {

  .entrance-info-grid {
    grid-template-columns: 1fr;
  }

  .subject-grid {
    grid-template-columns: repeat(2, 1fr);
  }

}


@media (max-width: 700px) {

  .entrance-page-section {
    padding: 60px 0;
  }

  .entrance-page-heading h2,
  .entrance-section-heading h2 {
    font-size: 2.25rem;
  }

  .entrance-info-card {
    padding: 23px 20px;

    gap: 16px;
  }

  .entrance-card-number {
    width: 36px;
    height: 36px;
  }

  .question-distribution {
    grid-template-columns: 1fr;
  }

  .exam-meta {
    grid-template-columns: 1fr;
  }

  .exam-meta div + div {
    padding-left: 0;

    border-left: 0;

    border-top: 1px solid var(--line);

    margin-top: 12px;
    padding-top: 12px;
  }

  .entrance-syllabus-section {
    margin-top: 65px;
    padding-top: 50px;
  }

  .syllabus-tabs {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
  }

  .syllabus-tab {
    width: 100%;
    padding: 12px 8px;
  }

  .syllabus-tab:last-child {
    grid-column: 1 / -1;
  }

  .subject-grid {
    grid-template-columns: 1fr;
  }

  .entrance-summary {
    grid-template-columns: repeat(2, 1fr);
  }

  .summary-item:nth-child(2) {
    border-right: 0;
  }

  .summary-item:nth-child(3),
  .summary-item:nth-child(4) {
    border-top: 1px solid rgba(255,255,255,.14);
  }

}


@media (max-width: 480px) {

  .entrance-info-card {
    display: block;
  }

  .entrance-card-number {
    margin-bottom: 18px;
  }

  .entrance-card-content h3 {
    font-size: 1.4rem;
  }

  .entrance-page-heading {
    margin-bottom: 35px;
  }

  .syllabus-tabs {
    grid-template-columns: 1fr;
  }

  .syllabus-tab:last-child {
    grid-column: auto;
  }

  .subject-card {
    padding: 22px;
  }

  .entrance-summary {
    grid-template-columns: 1fr;
  }

  .summary-item {
    border-right: 0;

    border-bottom: 1px solid rgba(255,255,255,.14);
  }

  .summary-item:nth-child(3),
  .summary-item:nth-child(4) {
    border-top: 0;
  }

  .summary-item:last-child {
    border-bottom: 0;
  }

}
/* =========================================================
   FUND RULES PAGE
========================================================= */

.fund-rules-section {
  padding: 85px 0;
  background: var(--parchment);
}


/* =========================================================
   INTRO
========================================================= */

.fund-rules-intro {
  display: grid;
  grid-template-columns: 1fr .65fr;
  gap: 60px;
  align-items: end;

  margin-bottom: 50px;
}

.fund-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;

  margin-bottom: 13px;

  color: var(--oxblood);

  font-family: "JetBrains Mono", monospace;
  font-size: .65rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.fund-eyebrow::before {
  content: "";

  width: 28px;
  height: 1px;

  background: var(--gold);
}

.fund-rules-intro h2 {
  margin: 0;

  color: var(--navy-deep);

  font-size: clamp(2.4rem, 5vw, 40px);
  line-height: 1;
}

.fund-rules-intro > p {
  margin: 0;

  color: var(--ink-soft);

  font-family: "JetBrains Mono", monospace;
  font-size: .65rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}


/* =========================================================
   MAIN RULE BLOCK
========================================================= */

.fund-rule-block {
  margin-bottom: 24px;

  background: #fff;

  border: 1px solid var(--line);
}

.fund-rule-heading {
  display: flex;
  align-items: center;
  gap: 18px;

  padding: 25px 28px;

  border-bottom: 1px solid var(--line);

  background: #fff;
}

.fund-rule-number {
  width: 42px;
  height: 42px;

  display: flex;
  align-items: center;
  justify-content: center;

  flex: 0 0 auto;

  border: 1px solid var(--gold);

  color: var(--oxblood);

  font-family: "JetBrains Mono", monospace;
  font-size: .62rem;
}

.fund-rule-heading span {
  display: block;

  margin-bottom: 4px;

  color: var(--ink-soft);

  font-family: "JetBrains Mono", monospace;
  font-size: .58rem;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.fund-rule-heading h3 {
  margin: 0;

  color: var(--navy-deep);

  font-family: "Fraunces", serif;
  font-size: 1.65rem;
}

.fund-rule-body {
  padding: 28px;
}


/* =========================================================
   BANK DETAILS
========================================================= */

.bank-details-card {
  padding: 26px;

  background: var(--navy-deep);

  color: #fff;
}

.bank-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;

  margin-bottom: 25px;
}

.bank-label {
  color: var(--gold-light);

  font-family: "JetBrains Mono", monospace;
  font-size: .63rem;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.bank-tag {
  padding: 5px 10px;

  border: 1px solid rgba(255,255,255,.2);

  color: #fff;

  font-family: "JetBrains Mono", monospace;
  font-size: .55rem;
}

.bank-details-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);

  border-top: 1px solid rgba(255,255,255,.14);
  border-left: 1px solid rgba(255,255,255,.14);
}

.bank-details-grid div {
  padding: 18px;

  border-right: 1px solid rgba(255,255,255,.14);
  border-bottom: 1px solid rgba(255,255,255,.14);
}

.bank-details-grid span {
  display: block;

  margin-bottom: 6px;

  color: rgba(255,255,255,.55);

  font-family: "JetBrains Mono", monospace;
  font-size: .56rem;
  text-transform: uppercase;
}

.bank-details-grid strong {
  color: #fff;

  font-family: "Fraunces", serif;
  font-size: .98rem;
  font-weight: 500;
}

.fund-important-note {
  display: flex;
  align-items: center;
  gap: 15px;

  margin-top: 14px;
  padding: 18px 20px;

  background: rgba(155,28,39,.07);

  border-left: 3px solid var(--oxblood);
}

.fund-important-note span {
  color: var(--oxblood);

  font-family: "JetBrains Mono", monospace;
  font-size: .6rem;
  font-weight: 600;
  text-transform: uppercase;
}

.fund-important-note p {
  margin: 0;

  color: var(--ink-soft);

  font-size: .86rem;
}


/* =========================================================
   FEE SCHEDULE
========================================================= */

.fee-schedule-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}

.schedule-card {
  border: 1px solid var(--line);

  background: var(--parchment-dark);
}

.schedule-card-special {
  border-top: 3px solid var(--oxblood);
}

.schedule-card-head {
  padding: 20px;

  background: var(--navy-deep);

  color: #fff;
}

.schedule-card-head span {
  display: block;

  margin-bottom: 5px;

  font-family: "Fraunces", serif;
  font-size: 1.1rem;
}

.schedule-card-head small {
  color: rgba(255,255,255,.58);

  font-family: "JetBrains Mono", monospace;
  font-size: .57rem;
  text-transform: uppercase;
}

.schedule-row {
  display: flex;
  align-items: center;
  justify-content: space-between;

  gap: 20px;

  padding: 18px 20px;

  border-bottom: 1px solid var(--line);
}

.schedule-row:last-child {
  border-bottom: 0;
}

.schedule-row strong {
  display: block;

  color: var(--navy-deep);

  font-family: "Fraunces", serif;
  font-size: .95rem;
}

.schedule-row span {
  display: block;

  margin-top: 2px;

  color: var(--ink-soft);

  font-size: .75rem;
}

.schedule-row b {
  color: var(--oxblood);

  font-size: .78rem;

  white-space: nowrap;
}


/* =========================================================
   PENALTIES
========================================================= */

.penalty-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}

.penalty-card {
  padding: 25px;
}

.penalty-red {
  background: rgba(155,28,39,.06);

  border: 1px solid rgba(155,28,39,.18);

  border-left: 4px solid var(--oxblood);
}

.penalty-orange {
  background: rgba(191,119,31,.07);

  border: 1px solid rgba(191,119,31,.18);

  border-left: 4px solid var(--gold);
}

.penalty-label {
  display: block;

  margin-bottom: 18px;

  color: var(--oxblood);

  font-family: "JetBrains Mono", monospace;
  font-size: .61rem;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.penalty-item {
  display: flex;
  gap: 15px;

  padding: 13px 0;

  border-bottom: 1px solid rgba(155,28,39,.13);
}

.penalty-item:last-child {
  border-bottom: 0;
}

.penalty-item > span {
  width: 28px;
  height: 28px;

  display: flex;
  align-items: center;
  justify-content: center;

  background: var(--oxblood);

  color: #fff;

  font-family: "JetBrains Mono", monospace;
  font-size: .55rem;
}

.penalty-item p {
  margin: 0;

  color: var(--ink-soft);

  font-size: .88rem;
}

.penalty-item strong {
  display: block;

  margin-top: 3px;

  color: var(--navy-deep);
}

.penalty-card ul {
  margin: 0;
  padding: 0 0 0 18px;

  color: var(--ink-soft);

  font-size: 16px;
  line-height: 1.65;
}

.penalty-card li {
  margin-bottom: 10px;
}

.penalty-card li:last-child {
  margin-bottom: 0;
}


/* =========================================================
   VERIFICATION
========================================================= */

.verification-layout {
  display: grid;
  grid-template-columns: 1fr .8fr;
  gap: 20px;
}

.verification-main {
  display: flex;
  align-items: center;
  gap: 18px;

  padding: 23px;

  background: var(--parchment-dark);

  border: 1px solid var(--line);
}

.verification-icon {
  width: 44px;
  height: 44px;

  display: flex;
  align-items: center;
  justify-content: center;

  background: var(--oxblood);

  color: #fff;

  font-size: 1.2rem;
}

.verification-main h4 {
  margin: 0 0 5px;

  color: var(--navy-deep);

  font-family: "Fraunces", serif;
  font-size: 1.05rem;
}

.verification-main p {
  margin: 0;

  color: var(--ink-soft);

  font-size: .82rem;
}

.verification-contact {
  padding: 23px;

  background: var(--navy-deep);

  color: #fff;
}

.verification-contact > span {
  display: block;

  margin-bottom: 13px;

  color: rgba(255,255,255,.62);

  font-size: .76rem;
}

.verification-contact div {
  display: flex;
  flex-direction: column;
  gap: 7px;
}

.verification-contact a {
  color: var(--gold-light);

  font-family: "JetBrains Mono", monospace;
  font-size: .7rem;

  text-decoration: none;
}


/* =========================================================
   WITHDRAWAL
========================================================= */

.withdrawal-rule-card {
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}

.withdrawal-rule-item {
  display: grid;
  grid-template-columns: 40px 1fr;

  gap: 18px;

  padding: 21px;

  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);

  background: var(--parchment-dark);
}

.withdrawal-rule-item > span {
  width: 32px;
  height: 32px;

  display: flex;
  align-items: center;
  justify-content: center;

  border: 1px solid var(--gold);

  color: var(--oxblood);

  font-family: "JetBrains Mono", monospace;
  font-size: .58rem;
}

.withdrawal-rule-item p {
  margin: 0;

  color: var(--ink-soft);

  font-size: 16px;
  line-height: 1.65;
}


/* =========================================================
   FACILITY
========================================================= */

.facility-grid {
  display: grid;
  grid-template-columns: .8fr 1.2fr;
  gap: 18px;
}

.facility-card {
  padding: 26px;

  border: 1px solid var(--line);

  background: #fff;
}

.facility-card:first-child {
  background: var(--parchment-dark);
}

.facility-card-head {
  display: flex;
  align-items: center;
  gap: 13px;

  margin-bottom: 18px;
}

.facility-card-head span {
  width: 34px;
  height: 34px;

  display: flex;
  align-items: center;
  justify-content: center;

  background: var(--oxblood);

  color: #fff;

  font-family: "JetBrains Mono", monospace;
  font-size: .57rem;
}

.facility-card-head h4 {
  margin: 0;

  color: var(--navy-deep);

  font-family: "Fraunces", serif;
  font-size: 1.25rem;
}

.facility-card p {
  margin: 0;

  color: var(--ink-soft);

  font-size: .87rem;
  line-height: 1.7;
}

.facility-card ul {
  margin: 0;
  padding-left: 18px;

  color: var(--ink-soft);

  font-size: .87rem;
  line-height: 1.65;
}

.facility-card li {
  margin-bottom: 9px;
}

.facility-card li:last-child {
  margin-bottom: 0;
}


/* =========================================================
   CONTACT
========================================================= */

.fund-contact {
  display: flex;
  align-items: center;
  gap: 18px;

  margin-top: 35px;
  padding: 24px 28px;

  background: var(--navy-deep);

  color: #fff;
}

.fund-contact-icon {
  width: 43px;
  height: 43px;

  display: flex;
  align-items: center;
  justify-content: center;

  border: 1px solid var(--gold);

  color: var(--gold-light);

  font-size: 1.1rem;
}

.fund-contact span {
  display: block;

  margin-bottom: 3px;

  color: var(--gold-light);

  font-family: "JetBrains Mono", monospace;
  font-size: .57rem;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.fund-contact p {
  margin: 0;

  color: rgba(255,255,255,.78);

  font-size: .88rem;
}

.fund-contact a {
  color: #fff;
  font-weight: 600;

  text-decoration: none;
}


/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 900px) {

  .fund-rules-intro {
    grid-template-columns: 1fr;
    gap: 15px;
  }

  .bank-details-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .fee-schedule-grid,
  .penalty-grid,
  .verification-layout,
  .facility-grid {
    grid-template-columns: 1fr;
  }

}


@media (max-width: 650px) {

  .fund-rules-section {
    padding: 60px 0;
  }

  .fund-rule-heading {
    padding: 20px;

    gap: 13px;
  }

  .fund-rule-body {
    padding: 18px;
  }

  .fund-rule-heading h3 {
    font-size: 1.4rem;
  }

  .bank-details-card {
    padding: 20px;
  }

  .bank-details-grid {
    grid-template-columns: 1fr;
  }

  .fund-important-note {
    align-items: flex-start;
    flex-direction: column;
    gap: 7px;
  }

  .schedule-row {
    align-items: flex-start;
    flex-direction: column;
    gap: 7px;
  }

  .verification-layout {
    gap: 12px;
  }

  .fund-contact {
    align-items: flex-start;
    padding: 20px;
  }

}


@media (max-width: 480px) {

  .fund-rules-intro h2 {
    font-size: 2.2rem;
  }

  .fund-rule-number {
    width: 36px;
    height: 36px;
  }

  .fund-rule-heading h3 {
    font-size: 1.25rem;
  }

  .fund-rule-heading span {
    font-size: .53rem;
  }

  .penalty-card,
  .facility-card {
    padding: 21px;
  }

}
/* =========================================
   GALLERY PAGINATION
========================================= */

.gallery-pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
  margin-top: 45px;
  flex-wrap: wrap;
}

.gallery-pagination button {
  width: 42px;
  height: 42px;
  border: 1px solid var(--line);
  background: transparent;
  color: var(--ink);
  font-family: "Source Sans 3", sans-serif;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.25s ease;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.gallery-pagination button:hover {
  background: var(--navy);
  color: #fff;
  border-color: var(--navy);
}

.gallery-pagination button.active {
  background: var(--gold);
  color: #dde1e6;
  border-color: var(--gold);
}

.gallery-pagination button.prev,
.gallery-pagination button.next {
  width: auto;
  min-width: 42px;
  padding: 0 15px;
  font-size: 13px;
  letter-spacing: .04em;
}

.gallery-pagination button:disabled {
  opacity: .35;
  cursor: not-allowed;
}

.gallery-pagination .dots {
  width: 30px;
  text-align: center;
  color: var(--ink-soft);
  font-size: 14px;
}


/* Gallery item pagination animation */
.gallery-item.gallery-hidden {
  display: none !important;
}

.gallery-item.gallery-show {
  display: block;
  animation: galleryFadeIn .35s ease;
}

@keyframes galleryFadeIn {
  from {
    opacity: 0;
    transform: translateY(8px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}


/* Mobile */
@media (max-width: 600px) {

  .gallery-pagination {
    margin-top: 30px;
    gap: 6px;
  }

  .gallery-pagination button {
    width: 38px;
    height: 38px;
    font-size: 13px;
  }

  .gallery-pagination button.prev,
  .gallery-pagination button.next {
    padding: 0 10px;
    font-size: 12px;
  }
}


    /* =========================================================
       BOARDING FACILITIES PAGE
    ========================================================= */

    .boarding-page {
      background: var(--parchment);
    }

    /* HERO */
    .boarding-hero {
      position: relative;
      min-height: 520px;
      display: flex;
      align-items: flex-end;
      background-size: cover;
      background-position: center;
      overflow: hidden;
    }

    .boarding-hero::before {
      content: "";
      position: absolute;
      inset: 0;
      background:
        linear-gradient(
          180deg,
          rgba(6, 8, 7, .08) 0%,
          rgba(6, 8, 7, .28) 45%,
          rgba(6, 8, 7, .82) 100%
        );
    }

    .boarding-hero .wrap {
      position: relative;
      z-index: 2;
      width: 100%;
      padding-bottom: 58px;
    }

    .boarding-hero-eyebrow {
      color: var(--gold-light);
      font-family: "JetBrains Mono", monospace;
      font-size: .72rem;
      text-transform: uppercase;
      letter-spacing: .16em;
      margin-bottom: 16px;
    }

    .boarding-hero h1 {
      color: #fff;
      font-family: "Fraunces", serif;
      font-size: clamp(3rem, 7vw, 6rem);
      line-height: .96;
      font-weight: 600;
      max-width: 850px;
      margin: 0 0 20px;
    }

    .boarding-hero .lead {
      color: rgba(255,255,255,.86);
      max-width: 760px;
      font-size: 1.12rem;
      line-height: 1.7;
      margin-bottom: 22px;
    }

    .boarding-breadcrumb {
      display: flex;
      align-items: center;
      gap: 10px;
      color: rgba(255,255,255,.7);
      font-size: .88rem;
    }

    .boarding-breadcrumb a {
      color: var(--gold-light);
      text-decoration: none;
    }

    /* COMMON */
    .boarding-section {
      padding: 100px 0;
    }

    .boarding-section + .boarding-section {
      border-top: 1px solid var(--line);
    }

    .boarding-section.alt {
      background: var(--parchment-dark);
    }

    .boarding-section-head {
      max-width: 850px;
      margin-bottom: 55px;
    }

    .boarding-eyebrow {
      display: inline-flex;
      align-items: center;
      gap: 9px;
      color: var(--oxblood);
      font-family: "JetBrains Mono", monospace;
      text-transform: uppercase;
      letter-spacing: .13em;
      font-size: .7rem;
      font-weight: 600;
      margin-bottom: 15px;
    }

    .boarding-eyebrow::before {
      content: "";
      width: 28px;
      height: 1px;
      background: var(--gold);
    }

    .boarding-section-head h2 {
      color: var(--navy-deep);
      font-size: clamp(2.2rem, 4vw, 40px);
      line-height: 1.08;
      margin: 0 0 20px;
      font-weight: 600;
    }

    .boarding-section-head p,
    .boarding-copy {
      color: var(--ink-soft);
      font-size: 1.03rem;
      line-height: 1.85;
    }

    /* OVERVIEW */
    .overview-layout {
      display: grid;
      grid-template-columns: 1fr 1.7fr;
      gap: 80px;
      align-items: start;
    }

    .overview-stamp {
      position: sticky;
      top: 120px;
      border-top: 2px solid var(--gold);
      padding-top: 20px;
    }

    .overview-stamp span {
      display: block;
      font-family: "JetBrains Mono", monospace;
      font-size: .68rem;
      text-transform: uppercase;
      letter-spacing: .14em;
      color: var(--ink-soft);
    }

    .overview-stamp strong {
      display: block;
      margin-top: 8px;
      color: var(--navy-deep);
      font-family: "Fraunces", serif;
      font-size: 2rem;
      font-weight: 600;
    }

    .overview-content p {
      margin: 0 0 25px;
      color: var(--ink-soft);
      font-size: 1.05rem;
      line-height: 1.9;
    }

    /* ACCOMMODATION / HEALTH */
    .feature-section {
      padding: 95px 0;
    }

    .feature-layout {
      display: grid;
      grid-template-columns: 280px 1fr;
      gap: 70px;
    }

    .feature-rail {
      border-right: 1px solid var(--line);
      padding-right: 30px;
    }

    .feature-number {
      width: 58px;
      height: 58px;
      display: flex;
      align-items: center;
      justify-content: center;
      border: 1px solid var(--gold);
      color: var(--oxblood);
      font-family: "JetBrains Mono", monospace;
      font-size: .85rem;
      margin-bottom: 22px;
    }

    .feature-rail h3 {
      color: var(--navy-deep);
      font-size: 1.55rem;
      line-height: 1.2;
      margin: 0;
    }

    .feature-content > h2 {
      color: var(--navy-deep);
      font-size: clamp(2rem, 4vw, 40px);
      line-height: 1.1;
      margin: 0 0 18px;
    }

    .feature-content > h4 {
      color: var(--oxblood);
      font-size: 1.5rem;
      margin: 40px 0 18px;
    }

    .feature-intro {
      max-width: 850px;
      color: var(--ink-soft);
      font-size: 1.05rem;
      line-height: 1.85;
      margin-bottom: 35px;
    }

    .feature-cards {
      display: grid;
      grid-template-columns: repeat(2, minmax(0,1fr));
      gap: 20px;
      margin-top: 35px;
    }

    .feature-card {
      background: rgba(255,255,255,.52);
      border: 1px solid var(--line);
      padding: 30px;
      transition: transform .25s ease, box-shadow .25s ease;
    }

    .feature-card:hover {
      transform: translateY(-4px);
      box-shadow: 0 14px 35px rgba(0,0,0,.07);
    }

    .feature-card i {
      color: var(--oxblood);
      font-size: 1.25rem;
      margin-bottom: 18px;
    }

    .feature-card h4 {
      color: var(--navy-deep);
      font-family: "Fraunces", serif;
      font-size: 1.3rem;
      margin: 0 0 9px;
    }

    .feature-card p {
      color: var(--ink-soft);
      line-height: 1.7;
      margin: 0;
    }

    .check-list {
      list-style: none;
      margin: 30px 0 0;
      padding: 0;
      display: grid;
      gap: 14px;
    }

    .check-list li {
      display: flex;
      gap: 14px;
      align-items: flex-start;
      color: var(--ink-soft);
      background: rgba(255,255,255,.4);
    }

    .check-list li i {
      width: 22px;
      color: var(--oxblood);
      margin-top: 4px;
      flex: 0 0 22px;
    }

    /* MESS */
    .mess-intro {
      max-width: 900px;
      color: var(--ink-soft);
      font-size: 1.05rem;
      line-height: 1.85;
      margin-bottom: 55px;
    }

    .mess-feature {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 0;
      margin-bottom: 28px;
      border: 1px solid var(--line);
      background: rgba(255,255,255,.42);
    }

    .mess-feature.reverse .mess-image {
      order: 2;
    }

    .mess-feature.reverse .mess-text {
      order: 1;
    }

    .mess-text {
      padding: 45px;
      display: flex;
      justify-content: center;
      flex-direction: column;
    }

    .mess-text h3 {
      font-family: "Fraunces", serif;
      color: var(--navy-deep);
      font-size: 1.8rem;
      margin: 0 0 17px;
    }

    .mess-text h3::after {
      content: "";
      display: block;
      width: 55px;
      height: 2px;
      background: var(--gold);
      margin-top: 12px;
    }

    .mess-text p {
      color: var(--ink-soft);
      line-height: 1.8;
      margin: 0;
    }

    .mess-image {
      min-height: 310px;
      overflow: hidden;
    }

    .mess-image img {
      width: 100%;
      height: 100%;
      min-height: 310px;
      object-fit: cover;
      display: block;
      transition: transform .5s ease;
    }

    .mess-feature:hover .mess-image img {
      transform: scale(1.035);
    }

    /* EATABLES */
    .eatables-wrap {
      display: grid;
      grid-template-columns: 300px 1fr;
      gap: 65px;
      align-items: start;
    }

    .eatables-label {
      position: sticky;
      top: 120px;
    }

    .eatables-label h2 {
      font-family: "Fraunces", serif;
      color: var(--navy-deep);
      font-size: 2.3rem;
      line-height: 1.1;
      margin: 15px 0;
    }

    .eatables-label p {
      color: var(--ink-soft);
      line-height: 1.7;
    }

    .eatables-list {
      display: grid;
      grid-template-columns: repeat(2, minmax(0,1fr));
      gap: 10px;
    }

    .eatable-item {
      display: flex;
      align-items: center;
      gap: 14px;
      padding: 17px 18px;
      border: 1px solid var(--line);
      background: rgba(255,255,255,.45);
    }

    .eatable-no {
      width: 31px;
      height: 31px;
      border: 1px solid var(--gold);
      display: flex;
      align-items: center;
      justify-content: center;
      flex: 0 0 31px;
      color: var(--oxblood);
      font-family: "JetBrains Mono", monospace;
      font-size: .68rem;
    }

    .eatable-item span:last-child {
      color: var(--ink);
      font-weight: 600;
    }

    .content-note {
      margin-top: 25px;
      padding: 18px 20px;
      border-left: 3px solid var(--oxblood);
      background: rgba(155,28,39,.055);
      color: var(--ink-soft);
      line-height: 1.7;
    }

    /* DSW */
    .dsw-section {
      background: var(--navy-deep);
      color: #fff;
    }

    .dsw-layout {
      display: grid;
      grid-template-columns: .75fr 1.7fr;
      gap: 80px;
    }

    .dsw-section .boarding-eyebrow {
      color: var(--gold-light);
    }

    .dsw-section .boarding-eyebrow::before {
      background: var(--gold-light);
    }

    .dsw-section h2 {
      color: #fff;
      font-size: clamp(2.4rem, 4vw, 40px);
      line-height: 1.05;
      margin: 0 0 20px;
    }

    .dsw-section .dsw-intro {
      color: rgba(255,255,255,.7);
      line-height: 1.8;
      font-size: 1.05rem;
    }

    .dsw-content {
      display: grid;
      gap: 28px;
    }

    .dsw-block {
      padding-bottom: 28px;
      border-bottom: 1px solid rgba(255,255,255,.14);
    }

    .dsw-block:last-child {
      border-bottom: 0;
      padding-bottom: 0;
    }

    .dsw-block h3 {
      color: var(--gold-light);
      font-size: 1.65rem;
      margin: 0 0 10px;
    }

    .dsw-block p {
      color: rgba(255,255,255,.72);
      line-height: 1.8;
      margin: 0;
    }

    /* DAILY ROUTINE */
    .routine-intro {
      max-width: 800px;
      margin-bottom: 50px;
    }

    .routine-intro h2 {
      color: var(--navy-deep);
      font-size: clamp(2.3rem,4vw,40px);
      margin: 0 0 15px;
    }

    .routine-intro p {
      color: var(--ink-soft);
      line-height: 1.8;
    }

    .routine-season {
      border: 1px solid var(--line);
      background: rgba(255,255,255,.5);
      margin-bottom: 28px;
    }

    .routine-season-head {
      padding: 25px 30px;
      background: var(--navy-deep);
      color: #fff;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 20px;
    }

    .routine-season-head h3 {
      font-family: "Fraunces", serif;
      font-size: 1.7rem;
      margin: 0;
      font-weight: 600;
    }

    .routine-season-head span {
      color: var(--gold-light);
      font-family: "JetBrains Mono", monospace;
      font-size: .68rem;
      text-transform: uppercase;
      letter-spacing: .1em;
    }

    .routine-list {
      display: grid;
      grid-template-columns: repeat(2, minmax(0,1fr));
    }

    .routine-item {
      display: grid;
      grid-template-columns: 125px 1fr;
      gap: 18px;
      padding: 18px 25px;
      border-bottom: 1px solid var(--line);
    }

    .routine-item:nth-child(odd) {
      border-right: 1px solid var(--line);
    }

    .routine-time {
      color: var(--oxblood);
      font-family: "JetBrains Mono", monospace;
      font-size: .76rem;
      font-weight: 600;
      padding-top: 2px;
    }

    .routine-activity {
      color: var(--ink);
      line-height: 1.5;
    }

    .routine-activity strong {
      font-weight: 700;
    }

    /* REQUIRED ITEMS */
    .items-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0,1fr));
      gap: 28px;
    }

    .items-card {
      border: 1px solid var(--line);
      background: rgba(255,255,255,.48);
    }

    .items-card.full {
      grid-column: 1 / -1;
    }

    .items-card-head {
      padding: 25px 28px;
      background: var(--navy-deep);
      color: #fff;
    }

    .items-card-head h3 {
      font-family: "Fraunces", serif;
      font-size: 1.6rem;
      margin: 0;
    }

    .items-card-body {
      padding: 25px 28px;
    }

    .item-row {
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: 20px;
      padding: 13px 0;
      border-bottom: 1px solid var(--line);
      color: var(--ink-soft);
    }

    .item-row:last-child {
      border-bottom: 0;
    }

    .item-row strong {
      color: var(--ink);
    }

    .item-qty {
      color: var(--oxblood);
      font-family: "JetBrains Mono", monospace;
      font-size: .72rem;
      white-space: nowrap;
    }

    .toiletries {
      display: flex;
      flex-wrap: wrap;
      gap: 9px;
    }

    .toiletry {
      border: 1px solid var(--line);
      padding: 9px 13px;
      background: var(--parchment);
      color: var(--ink);
      font-size: .88rem;
    }

    /* PROHIBITED */
    .prohibited-section {
      background: var(--parchment-dark);
    }

    .prohibited-list {
      counter-reset: prohibited;
      display: grid;
      gap: 13px;
      max-width: 1000px;
    }

    .prohibited-item {
      counter-increment: prohibited;
      display: grid;
      grid-template-columns: 55px 1fr;
      gap: 20px;
      align-items: center;
      padding: 21px 25px;
      border: 1px solid var(--line);
      background: rgba(255,255,255,.5);
    }

    .prohibited-item::before {
      content: counter(prohibited, decimal-leading-zero);
      width: 38px;
      height: 38px;
      border: 1px solid var(--oxblood);
      color: var(--oxblood);
      display: flex;
      align-items: center;
      justify-content: center;
      font-family: "JetBrains Mono", monospace;
      font-size: .68rem;
    }

    .prohibited-item p {
      margin: 0;
      color: var(--ink-soft);
      line-height: 1.7;
    }

    .prohibited-note {
      max-width: 1000px;
      margin-top: 25px;
      padding: 22px 25px;
      border-left: 3px solid var(--oxblood);
      background: rgba(155,28,39,.07);
      color: var(--ink-soft);
      line-height: 1.75;
    }

    /* VISIT / VIDEO */
    .boarding-visit {
      background: var(--navy);
      padding: 95px 0;
    }

    .visit-grid {
      display: grid;
      grid-template-columns: 1.25fr .75fr;
      gap: 60px;
      align-items: center;
    }

    .visit-video {
      overflow: hidden;
      border: 1px solid rgba(255,255,255,.15);
      background: #000;
    }

    .visit-video iframe {
      display: block;
      width: 100%;
      height: 430px;
    }

    .visit-content .boarding-eyebrow {
      color: var(--gold-light);
    }

    .visit-content h2 {
      color: #fff;
      font-family: "Fraunces", serif;
      font-size: clamp(2rem,3.5vw,3.2rem);
      line-height: 1.15;
      margin: 12px 0 20px;
    }

    .visit-content p {
      color: rgba(255,255,255,.72);
      line-height: 1.8;
      margin-bottom: 25px;
    }

    .visit-btn {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      padding: 14px 23px;
      background: var(--gold);
      color: var(--navy-deep);
      text-decoration: none;
      font-weight: 700;
      transition: transform .2s ease;
    }

    .visit-btn:hover {
      transform: translateY(-2px);
    }

    /* RESPONSIVE */
    @media (max-width: 900px) {

      .boarding-section,
      .feature-section,
      .boarding-visit {
        padding: 70px 0;
      }

      .overview-layout,
      .feature-layout,
      .dsw-layout,
      .eatables-wrap,
      .visit-grid {
        grid-template-columns: 1fr;
        gap: 40px;
      }

      .overview-stamp,
      .eatables-label {
        position: static;
      }

      .feature-rail {
        border-right: 0;
        border-bottom: 1px solid var(--line);
        padding-right: 0;
        padding-bottom: 22px;
      }

      .feature-cards,
      .items-grid {
        grid-template-columns: 1fr;
      }

      .items-card.full {
        grid-column: auto;
      }

      .routine-list {
        grid-template-columns: 1fr;
      }

      .routine-item:nth-child(odd) {
        border-right: 0;
      }

      .mess-feature {
        grid-template-columns: 1fr;
      }

      .mess-feature.reverse .mess-image,
      .mess-feature.reverse .mess-text {
        order: initial;
      }

      .mess-image {
        min-height: 280px;
      }

      .mess-image img {
        min-height: 280px;
      }

      .eatables-list {
        grid-template-columns: 1fr;
      }
    }

    @media (max-width: 600px) {

      .boarding-hero {
        min-height: 450px;
      }

      .boarding-hero .wrap {
        padding-bottom: 35px;
      }

      .boarding-hero h1 {
        font-size: 2.8rem;
      }

      .boarding-hero .lead {
        font-size: .98rem;
      }

      .boarding-section,
      .feature-section,
      .boarding-visit {
        padding: 55px 0;
      }

      .boarding-section-head {
        margin-bottom: 35px;
      }

      .mess-text {
        padding: 28px 23px;
      }

      .routine-season-head {
        padding: 20px;
        align-items: flex-start;
        flex-direction: column;
      }

      .routine-item {
        grid-template-columns: 1fr;
        gap: 5px;
        padding: 16px 18px;
      }

      .items-card-head,
      .items-card-body {
        padding: 21px;
      }

      .item-row {
        align-items: flex-start;
        flex-direction: column;
        gap: 5px;
      }

      .prohibited-item {
        grid-template-columns: 42px 1fr;
        gap: 12px;
        padding: 17px;
      }

      .visit-video iframe {
        height: 250px;
      }
    }
  
    /* =========================================================
       FACILITIES PAGE — VISUAL UPGRADE
    ========================================================= */

    html {
      scroll-behavior: smooth;
      scroll-padding-top: 95px;
    }

    #accommodation,
    #healthcare,
    #mess,
    #hostellers,
    #dsw {
      scroll-margin-top: 90px;
    }

    /* =========================================================
   QUICK NAVIGATION — LIGHT BACKGROUND
========================================================= */

.facility-quicknav {
  position: relative;
  padding: 55px 0 65px;
  background: var(--parchment-dark);
  overflow: hidden;
}

/* Decorative circle */
.facility-quicknav::before {
  content: "";
  position: absolute;
  width: 420px;
  height: 420px;
  border: 1px solid rgba(11,31,58,.08);
  border-radius: 50%;
  right: -190px;
  top: -210px;
  pointer-events: none;
}

/* Heading */
.facility-quicknav-head {
  display: grid;
  grid-template-columns: 1.25fr .75fr;
  gap: 60px;
  align-items: end;
  margin-bottom: 32px;
  position: relative;
  z-index: 1;
}

.facility-quicknav-head .boarding-eyebrow {
  color: var(--oxblood);
}

.facility-quicknav-head .boarding-eyebrow::before {
  background: var(--gold);
}

.facility-quicknav-head h2 {
  margin: 0;
  color: var(--navy-deep);
  font-size: clamp(2rem, 3.5vw, 40px);
  line-height: 1.05;
}

.facility-quicknav-head p {
  margin: 0;
  color: var(--ink-soft);
  line-height: 1.75;
  max-width: 470px;
}

/* Cards */
.facility-quicknav-grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(5, minmax(0,1fr));
  gap: 12px;
}

.facility-quicknav-card {
  min-height: 155px;
  padding: 20px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;

  border: 1px solid var(--line);
  background: rgba(255,255,255,.62);

  color: var(--navy-deep);
  text-decoration: none;

  box-shadow: 0 8px 25px rgba(11,31,58,.035);

  transition:
    transform .25s ease,
    background .25s ease,
    border-color .25s ease,
    box-shadow .25s ease;
}

.facility-quicknav-card:hover {
  transform: translateY(-5px);
  background: #fff;
  border-color: var(--gold);
  box-shadow: 0 15px 35px rgba(11,31,58,.09);
}

/* Number */
.facility-quicknav-card > span {
  color: var(--oxblood);
  font-family: "JetBrains Mono", monospace;
  font-size: .66rem;
  letter-spacing: .1em;
}

/* Icon */
.facility-quicknav-card i {
  color: var(--oxblood);
  font-size: 1.2rem;
  margin: 8px 0;
}

/* Main title */
.facility-quicknav-card strong {
  color: var(--navy-deep);
  font-family: "Fraunces", serif;
  font-size: 1.18rem;
  font-weight: 600;
}

/* Small text */
.facility-quicknav-card em {
  color: var(--ink-soft);
  font-size: .76rem;
  font-style: normal;
}

/* Active / clicked section card */
.facility-quicknav-card:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 3px;
}

/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 1000px) {

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

  .facility-quicknav-head {
    grid-template-columns: 1fr;
    gap: 18px;
  }

}

@media (max-width: 700px) {

  .facility-quicknav {
    padding: 45px 0 50px;
  }

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

  .facility-quicknav-card {
    min-height: 135px;
  }

}

@media (max-width: 480px) {

  .facility-quicknav-grid {
    grid-template-columns: 1fr;
  }

  .facility-quicknav-card {
    min-height: 110px;
  }

}
    /* Overview upgrade */
    .overview-layout {
      position: relative;
    }

    .overview-stamp {
      min-height: 560px;
      position: sticky;
      top: 110px;
      padding: 25px 30px 30px;
      border-top: 2px solid var(--gold);
      border-bottom: 1px solid var(--line);
      background:
        linear-gradient(135deg, rgba(11,31,58,.025), transparent 55%),
        var(--parchment-dark);
      overflow: hidden;
    }


    .overview-stamp-top {
      display: flex;
      justify-content: space-between;
      align-items: center;
      margin-bottom: 34px;
    }

    .overview-stamp-top span {
      display: block;
      font-family: "JetBrains Mono", monospace;
      font-size: .68rem;
      text-transform: uppercase;
      letter-spacing: .14em;
      color: var(--ink-soft);
    }

    .overview-stamp-top b {
      width: 42px;
      height: 42px;
      border: 1px solid var(--gold);
      display: flex;
      align-items: center;
      justify-content: center;
      color: var(--oxblood);
      font-family: "Fraunces", serif;
      font-size: .95rem;
      font-weight: 600;
    }

    .overview-stamp > strong {
      position: relative;
      z-index: 1;
      display: block;
      max-width: 290px;
      color: var(--navy-deep);
      font-family: "Fraunces", serif;
      font-size: clamp(2rem, 3vw, 2.8rem);
      line-height: 1.08;
      font-weight: 600;
    }

    .overview-stamp-lines {
      position: relative;
      z-index: 1;
      display: grid;
      gap: 0;
      margin-top: 65px;
      border-top: 1px solid var(--line);
    }

    .overview-stamp-lines div {
      display: flex;
      align-items: center;
      gap: 14px;
      padding: 17px 0;
      border-bottom: 1px solid var(--line);
      color: var(--ink-soft);
      font-size: .92rem;
    }

    .overview-stamp-lines i {
      width: 28px;
      color: var(--oxblood);
    }

    .overview-content {
      padding-top: 4px;
    }

    .overview-content p:first-child {
      font-size: 1.12rem;
      color: var(--ink);
    }

    /* Feature sections feel more editorial */
    .feature-section,
    .boarding-section {
      position: relative;
      overflow: hidden;
    }

    .feature-section::before,
    .boarding-section::before {
      content: "";
      position: absolute;
      left: 0;
      top: 70px;
      width: 4px;
      height: 70px;
      background: var(--gold);
      opacity: .8;
    }

    .feature-content > h2,
    .boarding-section-head h2,
    .routine-intro h2 {
      letter-spacing: -.025em;
    }

    .feature-card {
      position: relative;
      overflow: hidden;
    }

    .feature-card::after {
      content: "";
      position: absolute;
      width: 80px;
      height: 80px;
      right: -38px;
      bottom: -38px;
      border: 1px solid rgba(191,151,70,.28);
      border-radius: 50%;
    }

    /* Mess cards */
    .mess-feature {
      box-shadow: 0 18px 40px rgba(11,31,58,.055);
      transition: transform .25s ease, box-shadow .25s ease;
    }

    .mess-feature:hover {
      transform: translateY(-3px);
      box-shadow: 0 24px 50px rgba(11,31,58,.09);
    }

    /* DSW stronger visual separation */
    .dsw-section {
      position: relative;
      overflow: hidden;
    }

    .dsw-content {
      position: relative;
      z-index: 1;
    }

    .dsw-block {
      padding: 26px 0 30px;
    }

    /* Routine */
    .routine-season {
      overflow: hidden;
      box-shadow: 0 12px 32px rgba(11,31,58,.045);
    }

    .routine-item {
      min-height: 68px;
    }

    /* Required/prohibited */
    .items-card,
    .prohibited-item {
      transition: transform .2s ease, box-shadow .2s ease;
    }

    .items-card:hover,
    .prohibited-item:hover {
      transform: translateY(-2px);
      box-shadow: 0 12px 30px rgba(11,31,58,.06);
    }

    .prohibited-list {
      max-width: 1100px;
    }

    /* Visit section */
    .boarding-visit {
      position: relative;
      overflow: hidden;
    }

    .boarding-visit::before {
      content: "";
      position: absolute;
      width: 380px;
      height: 380px;
      border: 1px solid rgba(255,255,255,.08);
      border-radius: 50%;
      left: -190px;
      bottom: -200px;
    }

    /* Mobile */
    @media (max-width: 1000px) {
      .facility-quicknav-grid {
        grid-template-columns: repeat(3, minmax(0,1fr));
      }

      .facility-quicknav-head {
        grid-template-columns: 1fr;
        gap: 18px;
      }

      .overview-stamp {
        min-height: auto;
      }
    }

    @media (max-width: 700px) {
      .facility-quicknav {
        padding: 45px 0 50px;
      }

      .facility-quicknav-grid {
        grid-template-columns: 1fr 1fr;
      }

      .facility-quicknav-card {
        min-height: 125px;
      }

      .overview-stamp {
        padding: 22px;
      }

      .overview-stamp-lines {
        margin-top: 35px;
      }

      .feature-section::before,
      .boarding-section::before {
        display: none;
      }
    }

    @media (max-width: 480px) {
      .facility-quicknav-grid {
        grid-template-columns: 1fr;
      }

      .facility-quicknav-card {
        min-height: 105px;
      }

      .overview-stamp-top {
        margin-bottom: 25px;
      }

      .overview-stamp > strong {
        font-size: 2rem;
      }
    }
 
/* =========================================================
   ENTRANCE TEST PAGE
========================================================= */

.enquiry-page {
    background: var(--parchment);
}


/* =========================================================
   MAIN SECTION
========================================================= */

.enquiry-section {
    padding: 90px 0 100px;
}

.enquiry-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(320px, .7fr);
    gap: 65px;
    align-items: start;
}


/* =========================================================
   FORM HEADING
========================================================= */

.enquiry-heading {
    margin-bottom: 25px;
}

.enquiry-heading .eyebrow {
    color: var(--oxblood);
}

.enquiry-heading h2 {
    margin: 13px 0 0;
    color: var(--navy-deep);
    font-size: clamp(2rem, 4vw, 40px);
    line-height: 1.08;
    font-weight: 600;
}


/* =========================================================
   FORM CARD
========================================================= */

.enquiry-form-card {
    background: #fff;
    border: 1px solid var(--line);
    padding: 38px;
    box-shadow: 0 25px 55px rgba(11,31,58,.07);
}

.enquiry-form-title {
    display: flex;
    align-items: center;
    gap: 15px;
    padding-bottom: 24px;
    margin-bottom: 28px;
    border-bottom: 1px solid var(--line);
}

.enquiry-form-title-icon {
    width: 48px;
    height: 48px;
    flex: 0 0 48px;

    display: flex;
    align-items: center;
    justify-content: center;

    background: var(--oxblood);
    color: #fff;

    font-size: 1rem;
}

.enquiry-form-title h3 {
    margin: 0;
    color: var(--navy-deep);
    font-family: "Fraunces", serif;
    font-size: 1.55rem;
    line-height: 1.1;
}

.enquiry-form-title p {
    margin: 4px 0 0;
    color: var(--ink-soft);
    font-size: .82rem;
}


/* =========================================================
   FORM
========================================================= */

#enquireForm {
    display: flex;
    flex-direction: column;
    gap: 22px;
}

#enquireForm .form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

#enquireForm .form-field {
    display: flex;
    flex-direction: column;
}

#enquireForm .form-field label {
    display: flex;
    align-items: center;
    gap: 8px;

    margin-bottom: 9px;

    color: var(--navy-deep);
    font-size: .82rem;
    font-weight: 600;
}

#enquireForm .form-field label i {
    width: 15px;
    color: var(--oxblood);
    font-size: .76rem;
}

#enquireForm .optional-text {
    color: var(--ink-soft);
    font-size: .72rem;
    font-weight: 400;
}


#enquireForm input:not([type="file"]),
#enquireForm select {

    width: 100%;
    min-height: 49px;

    padding: 12px 14px;

    border: 1px solid #d7dbe0;
    border-radius: 4px;

    background: #fff;

    color: var(--ink);

    font-family: "Source Sans 3", sans-serif;
    font-size: .94rem;

    outline: none;

    transition:
        border-color .2s ease,
        box-shadow .2s ease,
        background .2s ease;
}

#enquireForm input:not([type="file"]):focus,
#enquireForm select:focus {

    border-color: var(--oxblood);

    box-shadow:
        0 0 0 3px rgba(155,28,39,.08);
}

#enquireForm input::placeholder {
    color: #9b9ea4;
}


/* =========================================================
   PHOTO UPLOAD
========================================================= */

.photo-upload-field {
    margin-top: 1px;
}

.photo-upload-box {

    position: relative;

    border: 2px dashed #d5d9df;
    border-radius: 5px;

    background: #fafafa;

    transition:
        border-color .25s ease,
        background .25s ease;
}

.photo-upload-box:hover {
    border-color: var(--oxblood);
    background: rgba(155,28,39,.025);
}

.photo-upload-box input[type="file"] {

    position: absolute;

    width: 1px;
    height: 1px;

    opacity: 0;

    pointer-events: none;
}

.photo-upload-label {

    min-height: 165px;

    padding: 28px 20px;

    margin: 0 !important;

    display: flex !important;
    flex-direction: column;

    align-items: center;
    justify-content: center;

    text-align: center;

    cursor: pointer;
}

.photo-upload-label i {

    width: auto !important;

    margin: 0 0 12px;

    color: var(--oxblood) !important;

    font-size: 2.1rem !important;
}

.photo-upload-label strong {

    color: var(--oxblood);

    font-size: .95rem;
    font-weight: 600;
}

.photo-upload-label span {

    margin-top: 5px;

    color: var(--ink-soft);

    font-size: .76rem;

    font-weight: 400;
}


/* =========================================================
   TEST CENTER
========================================================= */

.test-center-box {

    min-height: 49px;

    padding: 12px 14px;

    display: flex;
    align-items: center;
    gap: 10px;

    border: 1px solid #d7dbe0;
    border-radius: 4px;

    background: #f5f6f7;

    color: var(--ink);

    font-size: .94rem;
}

.test-center-box i {
    color: var(--oxblood);
}


/* =========================================================
   SUBMIT
========================================================= */

#enquireForm .form-submit {

    width: 100%;
    min-height: 53px;

    margin-top: 3px;

    padding: 13px 20px;

    border: 0;
    border-radius: 4px;

    background: var(--oxblood);

    color: #fff;

    font-family: "Source Sans 3", sans-serif;

    font-size: .96rem;
    font-weight: 700;

    cursor: pointer;

    display: flex;
    align-items: center;
    justify-content: center;

    gap: 9px;

    transition:
        background .2s ease,
        transform .2s ease;
}

#enquireForm .form-submit:hover {

    background: var(--navy-deep);

    transform: translateY(-2px);
}

#enquireForm .form-submit i {
    font-size: .82rem;
}


/* =========================================================
   FORM NOTE
========================================================= */

#enquireForm .form-note {

    margin: -7px 0 0;

    color: var(--ink-soft);

    font-size: .76rem;

    line-height: 1.6;
}


/* =========================================================
   RIGHT SIDE
========================================================= */

.enquiry-side {
    position: sticky;
    top: 110px;
}

.enquiry-side-heading {
    margin-bottom: 25px;
}

.enquiry-side-heading .eyebrow {
    color: var(--oxblood);
}

.enquiry-side-heading h2 {

    margin: 13px 0 0;

    color: var(--navy-deep);

  
    font-size: clamp(2rem, 3vw, 40px);

    line-height: 1.08;

    font-weight: 600;
}


/* =========================================================
   SIDE BLOCKS
========================================================= */

.enquiry-side .side-block {

    padding: 26px;

    margin-bottom: 18px;

    background: #fff;

    border: 1px solid var(--line);

    box-shadow: 0 10px 28px rgba(11,31,58,.035);
}

.enquiry-side .side-block h4 {

    margin: 0 0 17px;

    color: var(--navy-deep);

    font-size: 18px;
    letter-spacing: 0px;
    font-weight: 600;
}

.enquiry-side .check-list {

    margin: 0;
    padding: 0;

    list-style: none;

    display: flex;
    flex-direction: column;

    gap: 13px;
}

.enquiry-side .check-list li {

    display: flex;

    gap: 10px;

    color: var(--ink-soft);

    font-size: .9rem;

    line-height: 1.55;
}

.enquiry-side .check-list li i {

    flex: 0 0 auto;

    margin-top: 4px;

    color: var(--oxblood);

    font-size: .78rem;
}


/* =========================================================
   CONTACT INFO
========================================================= */

.contact-info-list {

    margin-top: 25px;

    border-top: 1px solid var(--line);
}

.contact-info-item {

    display: flex;

    align-items: center;

    gap: 15px;

    padding: 18px 0;

    border-bottom: 1px solid var(--line);
}

.contact-info-item .ic {

    width: 44px;
    height: 44px;

    flex: 0 0 44px;

    display: flex;

    align-items: center;
    justify-content: center;

    background: rgba(155,28,39,.07);

    color: var(--oxblood);
}

.contact-info-item h5 {

    margin: 0 0 3px;

    color: var(--ink-soft);

    font-size: .7rem;

    text-transform: uppercase;

    letter-spacing: .08em;

    font-family: "JetBrains Mono", monospace;
}

.contact-info-item a {

    color: var(--navy-deep);

    font-size: .94rem;

    font-weight: 600;

    text-decoration: none;
}

.contact-info-item a:hover {
    color: var(--oxblood);
}


/* =========================================================
   APPLICATION FEE HIGHLIGHT
========================================================= */

.application-fee-box {

    margin-top: 20px;

    padding: 20px 22px;

    background: var(--navy-deep);

    color: #fff;

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 15px;
}

.application-fee-box span {

    color: rgba(255,255,255,.65);

    font-size: .74rem;

    text-transform: uppercase;

    letter-spacing: .08em;

    font-family: "JetBrains Mono", monospace;
}

.application-fee-box strong {

    color: var(--gold-light);

    font-family: "Fraunces", serif;

    font-size: 1.7rem;
}


/* =========================================================
   SUCCESS STATE
========================================================= */

#enquireForm .form-submit.success {
    background: #2f8a4b !important;
}


/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 1000px) {

    .enquiry-grid {

        grid-template-columns: 1fr;

        gap: 55px;
    }

    .enquiry-side {
        position: static;

        display: grid;

        grid-template-columns: 1fr 1fr;

        gap: 18px;
    }

    .enquiry-side-heading {
        grid-column: 1 / -1;
    }

    .contact-info-list {
        grid-column: 1 / -1;
    }

}


@media (max-width: 700px) {

    .enquiry-section {
        padding: 60px 0 70px;
    }

    .enquiry-form-card {
        padding: 25px 20px;
    }

    #enquireForm .form-row {
        grid-template-columns: 1fr;

        gap: 22px;
    }

    .enquiry-side {
        display: block;
    }

    .enquiry-side-heading {
        margin-bottom: 22px;
    }

    .enquiry-side .side-block {
        padding: 22px;
    }

    .photo-upload-label {
        min-height: 145px;
    }

}


@media (max-width: 480px) {

    .enquiry-form-card {
        padding: 20px 16px;
    }

    .enquiry-form-title {
        align-items: flex-start;
    }

    .enquiry-form-title-icon {
        width: 42px;
        height: 42px;
        flex-basis: 42px;
    }

    .enquiry-form-title h3 {
        font-size: 1.3rem;
    }

}

/* =========================================================
   CAMPUS TOUR PAGE
========================================================= */

.campus-tour-page {
    background: var(--parchment);
}


/* =========================================================
   CAMPUS INTRO
========================================================= */

.campus-intro {
    padding: 90px 0 80px;
}

.campus-intro-grid {
    display: grid;
    grid-template-columns: .75fr 1.25fr;
    gap: 75px;
    align-items: start;
}

.campus-intro-label {
    position: sticky;
    top: 110px;
}

.campus-intro-label .eyebrow {
    color: var(--oxblood);
}

.campus-intro-label h2 {
    margin: 15px 0 0;

    color: var(--navy-deep);

    font-family: "Fraunces", serif;

    font-size: clamp(2.2rem, 4vw, 3.5rem);

    line-height: 1.05;

    font-weight: 600;
}


.campus-intro-content {
    border-left: 1px solid var(--line);
    padding-left: 45px;
}

.campus-intro-content p {
    margin: 0 0 25px;

    color: var(--ink-soft);

    font-size: 1.08rem;

    line-height: 1.9;
}

.campus-intro-content p:last-child {
    margin-bottom: 0;
}


/* =========================================================
   CAMPUS STATS
========================================================= */

.campus-stats {
    display: grid;

    grid-template-columns:
        repeat(4, minmax(0, 1fr));

    margin-top: 55px;

    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
}

.campus-stat {
    padding: 28px 24px;

    border-right: 1px solid var(--line);
}

.campus-stat:last-child {
    border-right: 0;
}

.campus-stat strong {
    display: block;

    color: var(--oxblood);

    font-family: "Fraunces", serif;

    font-size: 1.8rem;

    line-height: 1;
}

.campus-stat span {
    display: block;

    margin-top: 8px;

    color: var(--ink-soft);

    font-size: .78rem;

    text-transform: uppercase;

    letter-spacing: .08em;

    font-family: "JetBrains Mono", monospace;
}


/* =========================================================
   MAIN VIDEO
========================================================= */

.campus-video-section {
    padding: 0 0 90px;
}

.campus-video-wrapper {
    position: relative;

    overflow: hidden;

    background: var(--navy-deep);

    border-radius: 5px;

    border: 1px solid var(--line);

    box-shadow:
        0 30px 65px rgba(11,31,58,.15);
}

.campus-video-wrapper::before {
    content: "";

    position: absolute;

    inset: 0;

    pointer-events: none;

    border: 1px solid rgba(255,255,255,.08);

    z-index: 2;
}

.campus-video {
    position: relative;

    width: 100%;

    aspect-ratio: 16 / 8.5;
}

.campus-video iframe {
    position: absolute;

    inset: 0;

    width: 100%;
    height: 100%;

    border: 0;
}


/* =========================================================
   VIDEO INTRO LABEL
========================================================= */

.video-heading {
    display: flex;

    justify-content: space-between;

    align-items: end;

    gap: 30px;

    margin-bottom: 28px;
}

.video-heading .eyebrow {
    color: var(--oxblood);
}

.video-heading h2 {
    margin: 12px 0 0;

    color: var(--navy-deep);
    font-size: clamp(2rem, 3.5vw, 40px);

    line-height: 1.05;
}

.video-heading p {
    max-width: 430px;

    margin: 0;

    color: var(--ink-soft);

    line-height: 1.7;
}


/* =========================================================
   CAMPUS SPACES
========================================================= */

.campus-spaces {
    padding: 90px 0;

    background: var(--parchment-dark);
}

.campus-spaces-heading {
    margin-bottom: 55px;
}

.campus-spaces-heading .eyebrow {
    color: var(--oxblood);
}

.campus-spaces-heading h2 {
    margin: 13px 0 0;

    color: var(--navy-deep);

    font-size: clamp(2rem, 4vw, 40px);

    line-height: 1.05;
}


/* =========================================================
   SPACE CARD
========================================================= */

.campus-space {
    display: grid;

    grid-template-columns: 1fr 1fr;

    min-height: 350px;

    margin-bottom: 25px;

    background: #fff;

    border: 1px solid var(--line);

    overflow: hidden;
}

.campus-space:last-child {
    margin-bottom: 0;
}

.campus-space-image {
    min-height: 350px;

    overflow: hidden;
}

.campus-space-image img {
    width: 100%;
    height: 100%;

    object-fit: cover;

    display: block;

    transition: transform .5s ease;
}

.campus-space:hover .campus-space-image img {
    transform: scale(1.035);
}

.campus-space-content {
    display: flex;

    flex-direction: column;

    justify-content: center;

    padding: 45px;
}

.campus-space-number {
    color: var(--gold);

    font-family: "JetBrains Mono", monospace;

    font-size: .7rem;

    letter-spacing: .1em;

    margin-bottom: 15px;
}

.campus-space-content h3 {
    margin: 0 0 14px;

    color: var(--navy-deep);

    font-family: "Fraunces", serif;

    font-size: 1.8rem;

    line-height: 1.1;
}

.campus-space-content p {
    margin: 0;

    color: var(--ink-soft);

    line-height: 1.75;

    font-size: .95rem;
}


/* Alternate layout */

.campus-space.reverse .campus-space-image {
    order: 2;
}

.campus-space.reverse .campus-space-content {
    order: 1;
}


/* =========================================================
   CAMPUS TOUR VIDEO GRID
========================================================= */

.video-gallery-section {
    padding: 90px 0;
}

.video-gallery-heading {
    text-align: center;

    max-width: 700px;

    margin: 0 auto 45px;
}

.video-gallery-heading .eyebrow {
    color: var(--oxblood);
}

.video-gallery-heading h2 {
    margin: 13px 0;

    color: var(--navy-deep);

    font-family: "Fraunces", serif;

    font-size: clamp(2rem, 4vw, 3.1rem);
}

.video-gallery-heading p {
    margin: 0;

    color: var(--ink-soft);

    line-height: 1.7;
}

.campus-video-grid {
    display: grid;

    grid-template-columns: 1fr 1fr;

    gap: 22px;
}

.campus-video-card {
    background: #fff;

    border: 1px solid var(--line);

    overflow: hidden;

    box-shadow: 0 12px 30px rgba(11,31,58,.045);
}

.campus-video-card iframe {
    display: block;

    width: 100%;

    aspect-ratio: 16 / 9;

    border: 0;
}

.campus-video-card-content {
    padding: 20px 22px;
}

.campus-video-card-content span {
    color: var(--oxblood);

    font-family: "JetBrains Mono", monospace;

    font-size: .66rem;

    letter-spacing: .08em;
}

.campus-video-card-content h3 {
    margin: 7px 0 0;

    color: var(--navy-deep);

    font-family: "Fraunces", serif;

    font-size: 1.25rem;
}


/* =========================================================
   IN PICTURES
========================================================= */

.campus-gallery-section {
    padding: 90px 0;
}

.campus-gallery-heading {
    display: flex;

    justify-content: space-between;

    align-items: end;

    gap: 30px;

    margin-bottom: 35px;
}

.campus-gallery-heading h2 {
    margin: 12px 0 0;

    color: var(--navy-deep);

    font-family: "Fraunces", serif;

    font-size: clamp(2rem, 4vw, 3.1rem);

    line-height: 1.05;
}

.campus-gallery-heading .eyebrow {
    color: var(--oxblood);
}

.gallery-link {
    color: var(--oxblood);

    font-family: "JetBrains Mono", monospace;

    font-size: .76rem;

    text-decoration: none;

    white-space: nowrap;
}

.gallery-link:hover {
    color: var(--navy-deep);
}

.campus-gallery-grid {
    display: grid;

    grid-template-columns:
        1.25fr .75fr .75fr;

    grid-auto-rows: 220px;

    gap: 10px;
}

.campus-gallery-item {
    overflow: hidden;

    display: block;

    position: relative;

    background: var(--navy-deep);
}

.campus-gallery-item:first-child {
    grid-row: span 2;
}

.campus-gallery-item img {
    width: 100%;
    height: 100%;

    object-fit: cover;

    display: block;

    transition: transform .5s ease;
}

.campus-gallery-item:hover img {
    transform: scale(1.05);
}


/* =========================================================
   CTA
========================================================= */

.campus-cta {
    padding: 90px 0;

    background: var(--navy-deep);

    color: #fff;

    text-align: center;
}

.campus-cta .eyebrow {
    color: var(--gold-light);
}

.campus-cta h2 {
    max-width: 800px;

    margin: 15px auto;

    color: #fff;

    font-family: "Fraunces", serif;

    font-size: clamp(2.3rem, 5vw, 4rem);

    line-height: 1.05;
}

.campus-cta p {
    max-width: 600px;

    margin: 0 auto 28px;

    color: rgba(255,255,255,.68);

    line-height: 1.7;
}


/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 900px) {

    .campus-intro-grid {
        grid-template-columns: 1fr;

        gap: 35px;
    }

    .campus-intro-label {
        position: static;
    }

    .campus-intro-content {
        padding-left: 0;

        border-left: 0;
    }

    .campus-stats {
        grid-template-columns: repeat(2, 1fr);
    }

    .campus-stat:nth-child(2) {
        border-right: 0;
    }

    .campus-stat:nth-child(-n+2) {
        border-bottom: 1px solid var(--line);
    }

    .video-heading,
    .campus-gallery-heading {
        display: block;
    }

    .video-heading p {
        margin-top: 20px;
    }

    .campus-gallery-heading .gallery-link {
        display: inline-block;

        margin-top: 20px;
    }

    .campus-space {
        grid-template-columns: 1fr;
    }

    .campus-space-image {
        min-height: 300px;
    }

    .campus-space.reverse .campus-space-image {
        order: 1;
    }

    .campus-space.reverse .campus-space-content {
        order: 2;
    }

}


@media (max-width: 700px) {

    .campus-intro {
        padding: 60px 0;
    }

    .campus-video-section,
    .campus-spaces,
    .video-gallery-section,
    .campus-gallery-section {
        padding: 65px 0;
    }

    .campus-stats {
        margin-top: 40px;
    }

    .campus-stat {
        padding: 22px 16px;
    }

    .campus-stat strong {
        font-size: 1.5rem;
    }

    .campus-stat span {
        font-size: .65rem;
    }

    .campus-space-content {
        padding: 30px 24px;
    }

    .campus-space-image {
        min-height: 240px;
    }

    .campus-video-grid {
        grid-template-columns: 1fr;
    }

    .campus-gallery-grid {
        grid-template-columns: 1fr 1fr;

        grid-auto-rows: 180px;
    }

    .campus-gallery-item:first-child {
        grid-column: span 2;

        grid-row: span 1;
    }

}


@media (max-width: 480px) {

    .campus-stats {
        grid-template-columns: 1fr;
    }

    .campus-stat {
        border-right: 0;

        border-bottom: 1px solid var(--line);
    }

    .campus-stat:last-child {
        border-bottom: 0;
    }

    .campus-gallery-grid {
        grid-template-columns: 1fr;

        grid-auto-rows: 220px;
    }

    .campus-gallery-item:first-child {
        grid-column: auto;
    }

}


/* =========================================================
   MANDATORY PUBLIC DISCLOSURE
========================================================= */

.disclosure-page {
    background: var(--parchment);
}


/* =========================================================
   INTRO
========================================================= */

.disclosure-intro {
    padding: 85px 0 65px;
}

.disclosure-intro-grid {
    display: grid;
    grid-template-columns: .75fr 1.25fr;
    gap: 70px;
    align-items: start;
}

.disclosure-intro-label {
    position: sticky;
    top: 110px;
}

.disclosure-intro-label .eyebrow {
    color: var(--oxblood);
}

.disclosure-intro-label h2 {
    margin: 14px 0 0;

    color: var(--navy-deep);

    font-size: clamp(2.2rem, 4vw, 40px);

    line-height: 1.05;

    font-weight: 600;
}


.disclosure-intro-content {
    border-left: 1px solid var(--line);

    padding-left: 45px;
}

.disclosure-intro-content p {
    margin: 0;

    color: var(--ink-soft);

    font-size: 1.08rem;

    line-height: 1.85;
}


/* =========================================================
   QUICK NAV
========================================================= */

.disclosure-nav {
    display: grid;

    grid-template-columns:
        repeat(4, minmax(0, 1fr));

    gap: 10px;

    margin-top: 50px;
}

.disclosure-nav-card {
    display: flex;

    flex-direction: column;

    justify-content: space-between;

    min-height: 135px;

    padding: 20px;

    background: #fff;

    border: 1px solid var(--line);

    color: var(--navy-deep);

    text-decoration: none;

    transition:
        transform .25s ease,
        border-color .25s ease,
        box-shadow .25s ease;
}

.disclosure-nav-card:hover {
    transform: translateY(-4px);

    border-color: var(--gold);

    box-shadow: 0 12px 30px rgba(11,31,58,.07);
}

.disclosure-nav-card .num {
    color: var(--oxblood);

    font-family: "JetBrains Mono", monospace;

    font-size: .65rem;

    letter-spacing: .1em;
}

.disclosure-nav-card i {
    color: var(--oxblood);

    font-size: 1.05rem;

    margin: 12px 0;
}

.disclosure-nav-card strong {
    font-family: "Fraunces", serif;

    font-size: 1.05rem;

    font-weight: 600;
}


/* =========================================================
   MAIN DISCLOSURE SECTION
========================================================= */

.disclosure-section {
    padding: 30px 0 100px;
}

.disclosure-block {
    margin-bottom: 75px;
}

.disclosure-block:last-child {
    margin-bottom: 0;
}


/* =========================================================
   SECTION HEADING
========================================================= */

.disclosure-section-head {
    display: flex;

    align-items: end;

    gap: 25px;

    margin-bottom: 28px;

    border-bottom: 1px solid var(--line);

    padding-bottom: 18px;
}

.disclosure-section-number {
    color: var(--gold);

    font-family: "JetBrains Mono", monospace;

    font-size: .7rem;

    letter-spacing: .08em;

    white-space: nowrap;
}

.disclosure-section-head .eyebrow {
    color: var(--oxblood);

    margin-bottom: 5px;
}

.disclosure-section-head h2 {
    margin: 0;

    color: var(--navy-deep);

    font-size: clamp(1.8rem, 3vw, 40px);

    line-height: 1.05;

    font-weight: 600;
}


/* =========================================================
   BASIC INFORMATION
========================================================= */

.basic-info-grid {
    display: grid;

    grid-template-columns: 1.15fr .85fr;

    gap: 20px;
}

.info-card {
    background: #fff;

    border: 1px solid var(--line);

    padding: 30px;

    min-height: 100%;
}

.info-card-top {
    display: flex;

    align-items: center;

    gap: 13px;

    margin-bottom: 25px;
}

.info-card-icon {
    width: 42px;
    height: 42px;

    display: flex;

    align-items: center;
    justify-content: center;

    background: rgba(155,28,39,.07);

    color: var(--oxblood);
}

.info-card-top h3 {
    margin: 0;

    color: var(--navy-deep);

    font-size: 1.35rem;
}

.school-name {
    margin-bottom: 25px;

    color: var(--oxblood);

    font-family: "Fraunces", serif;

    font-size: 1.55rem;

    font-weight: 600;
}

.info-list {
    display: flex;

    flex-direction: column;
}

.info-list-row {
    display: flex;

    justify-content: space-between;

    gap: 25px;

    padding: 13px 0;

    border-bottom: 1px solid var(--line);
}

.info-list-row:last-child {
    border-bottom: 0;
}

.info-list-row span {
    color: var(--ink-soft);

    font-size: .82rem;
}

.info-list-row strong {
    color: var(--navy-deep);

    font-size: .9rem;

    text-align: right;
}


/* =========================================================
   CONTACT
========================================================= */

.contact-disclosure-grid {
    display: grid;

    grid-template-columns: 1fr 1fr;

    gap: 20px;
}

.principal-card {
    background: var(--navy-deep);

    padding: 35px;

    color: #fff;
}

.principal-label {
    color: var(--gold-light);

    font-family: "JetBrains Mono", monospace;

    font-size: .65rem;

    letter-spacing: .1em;

    text-transform: uppercase;
}

.principal-card h3 {
    margin: 13px 0 5px;

    color: #fff;

    font-family: "Fraunces", serif;

    font-size: 1.8rem;
}

.principal-card .qualification {
    color: rgba(255,255,255,.6);

    font-size: .88rem;

    margin-bottom: 25px;
}

.principal-contact {
    display: flex;

    flex-direction: column;

    gap: 10px;
}

.principal-contact a {
    color: #fff;

    text-decoration: none;

    font-size: .9rem;
}

.principal-contact i {
    width: 20px;

    color: var(--gold-light);
}

.contact-detail-card {
    background: #fff;

    border: 1px solid var(--line);

    padding: 35px;
}

.contact-detail-card h3 {
    margin: 0 0 20px;

    color: var(--navy-deep);

    font-family: "Fraunces", serif;

    font-size: 1.45rem;
}

.contact-detail {
    display: flex;

    align-items: center;

    gap: 15px;

    padding: 15px 0;

    border-bottom: 1px solid var(--line);
}

.contact-detail:last-child {
    border-bottom: 0;
}

.contact-detail-icon {
    width: 40px;
    height: 40px;

    flex: 0 0 40px;

    display: flex;

    align-items: center;
    justify-content: center;

    background: rgba(155,28,39,.07);

    color: var(--oxblood);
}

.contact-detail span {
    color: var(--ink-soft);

    font-size: .72rem;

    display: block;

    text-transform: uppercase;

    letter-spacing: .07em;

    font-family: "JetBrains Mono", monospace;
}

.contact-detail strong,
.contact-detail a {
    color: var(--navy-deep);

    font-size: .94rem;

    text-decoration: none;
}


/* =========================================================
   TEACHING STAFF
========================================================= */

.staff-overview {
    display: grid;

    grid-template-columns: 1fr 1fr;

    gap: 20px;

    margin-bottom: 20px;
}

.staff-main-card {
    padding: 35px;

    background: var(--navy-deep);

    color: #fff;
}

.staff-main-card .staff-big-number {
    color: var(--gold-light);

    font-family: "Fraunces", serif;

    font-size: 4rem;

    line-height: 1;
}

.staff-main-card h3 {
    margin: 8px 0;

    color: #fff;

    font-family: "Fraunces", serif;

    font-size: 1.5rem;
}

.staff-main-card p {
    margin: 0;

    color: rgba(255,255,255,.62);

    font-size: .88rem;
}

.ratio-card {
    padding: 35px;

    background: #fff;

    border: 1px solid var(--line);
}

.ratio-card .staff-big-number {
    color: var(--oxblood);

    font-family: "Fraunces", serif;

    font-size: 4rem;

    line-height: 1;
}

.ratio-card h3 {
    margin: 8px 0;

    color: var(--navy-deep);

    font-family: "Fraunces", serif;

    font-size: 1.5rem;
}

.ratio-card p {
    margin: 0;

    color: var(--ink-soft);

    font-size: .88rem;
}

.staff-grid {
    display: grid;

    grid-template-columns:
        repeat(3, minmax(0,1fr));

    gap: 10px;
}

.staff-stat {
    padding: 27px;

    background: #fff;

    border: 1px solid var(--line);
}

.staff-stat strong {
    display: block;

    color: var(--oxblood);

    font-family: "Fraunces", serif;

    font-size: 2rem;

    line-height: 1;
}

.staff-stat span {
    display: block;

    margin-top: 8px;

    color: var(--ink-soft);

    font-size: .78rem;

    text-transform: uppercase;

    letter-spacing: .08em;

    font-family: "JetBrains Mono", monospace;
}


/* =========================================================
   SPECIAL STAFF
========================================================= */

.special-staff {
    display: grid;

    grid-template-columns: 1fr 1fr;

    gap: 20px;

    margin-top: 20px;
}

.special-card {
    background: #fff;

    border: 1px solid var(--line);

    padding: 25px 28px;

    display: flex;

    align-items: center;

    gap: 18px;
}

.special-icon {
    width: 48px;
    height: 48px;

    flex: 0 0 48px;

    display: flex;

    align-items: center;
    justify-content: center;

    background: rgba(191,151,70,.12);

    color: var(--gold);

    font-size: 1rem;
}

.special-card span {
    display: block;

    color: var(--ink-soft);

    font-size: .7rem;

    text-transform: uppercase;

    letter-spacing: .08em;

    font-family: "JetBrains Mono", monospace;
}

.special-card strong {
    display: block;

    margin-top: 3px;

    color: var(--navy-deep);

    font-family: "Fraunces", serif;

    font-size: 1.2rem;
}


/* =========================================================
   RESULTS
========================================================= */

.results-grid {
    display: grid;

    grid-template-columns: 1fr 1fr;

    gap: 20px;
}

.result-card {
    background: #fff;

    border: 1px solid var(--line);

    padding: 32px;
}

.result-card-header {
    display: flex;

    justify-content: space-between;

    align-items: center;

    padding-bottom: 20px;

    margin-bottom: 20px;

    border-bottom: 1px solid var(--line);
}

.result-card-header span {
    color: var(--oxblood);

    font-family: "JetBrains Mono", monospace;

    font-size: .67rem;

    letter-spacing: .08em;
}

.result-card-header h3 {
    margin: 0;

    color: var(--navy-deep);

    font-family: "Fraunces", serif;

    font-size: 1.35rem;
}

.result-stats {
    display: grid;

    grid-template-columns:
        repeat(3, 1fr);

    gap: 10px;
}

.result-stat {
    padding: 18px 12px;

    background: var(--parchment-dark);

    text-align: center;
}

.result-stat strong {
    display: block;

    color: var(--navy-deep);

    font-family: "Fraunces", serif;

    font-size: 1.6rem;
}

.result-stat span {
    display: block;

    margin-top: 5px;

    color: var(--ink-soft);

    font-size: .68rem;

    line-height: 1.3;
}


/* =========================================================
   CAMPUS DETAILS
========================================================= */

.campus-details-grid {
    display: grid;

    grid-template-columns:
        repeat(3, minmax(0,1fr));

    gap: 10px;
}

.campus-detail-card {
    min-height: 190px;

    padding: 30px;

    background: #fff;

    border: 1px solid var(--line);

    display: flex;

    flex-direction: column;

    justify-content: space-between;
}

.campus-detail-number {
    color: var(--oxblood);

    font-family: "Fraunces", serif;

    font-size: 2.5rem;

    line-height: 1;
}

.campus-detail-card h3 {
    margin: 12px 0 5px;

    color: var(--navy-deep);

    font-family: "Fraunces", serif;

    font-size: 1.15rem;
}

.campus-detail-card p {
    margin: 0;

    color: var(--ink-soft);

    font-size: .8rem;

    line-height: 1.5;
}


/* =========================================================
   FACILITIES
========================================================= */

.facilities-disclosure-grid {
    display: grid;

    grid-template-columns:
        repeat(3, minmax(0,1fr));

    gap: 10px;
}

.facility-disclosure-card {
    padding: 30px;

    min-height: 180px;

    background: #fff;

    border: 1px solid var(--line);
}

.facility-disclosure-icon {
    width: 43px;
    height: 43px;

    display: flex;

    align-items: center;
    justify-content: center;

    margin-bottom: 22px;

    background: rgba(155,28,39,.07);

    color: var(--oxblood);
}

.facility-disclosure-card strong {
    display: block;

    color: var(--navy-deep);

    font-family: "Fraunces", serif;

    font-size: 2rem;
}

.facility-disclosure-card h3 {
    margin: 5px 0;

    color: var(--navy-deep);

    font-family: "Fraunces", serif;

    font-size: 1.1rem;
}

.facility-disclosure-card p {
    margin: 0;

    color: var(--ink-soft);

    font-size: .82rem;
}


/* =========================================================
   FOOTER NOTE
========================================================= */

.disclosure-note {
    margin-top: 65px;

    padding: 25px 30px;

    border-left: 3px solid var(--gold);

    background: #fff;

    border-top: 1px solid var(--line);
    border-right: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
}

.disclosure-note span {
    display: block;

    color: var(--oxblood);

    font-family: "JetBrains Mono", monospace;

    font-size: .68rem;

    letter-spacing: .08em;

    text-transform: uppercase;

    margin-bottom: 7px;
}

.disclosure-note p {
    margin: 0;

    color: var(--ink-soft);

    font-size: .88rem;

    line-height: 1.6;
}


/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 900px) {

    .disclosure-intro-grid {
        grid-template-columns: 1fr;

        gap: 35px;
    }

    .disclosure-intro-label {
        position: static;
    }

    .disclosure-intro-content {
        border-left: 0;

        padding-left: 0;
    }

    .disclosure-nav {
        grid-template-columns: repeat(2,1fr);
    }

    .basic-info-grid,
    .contact-disclosure-grid,
    .results-grid {
        grid-template-columns: 1fr;
    }

    .staff-overview {
        grid-template-columns: 1fr 1fr;
    }

    .campus-details-grid,
    .facilities-disclosure-grid {
        grid-template-columns: 1fr 1fr;
    }

}


@media (max-width: 700px) {

    .disclosure-intro {
        padding: 60px 0 45px;
    }

    .disclosure-section {
        padding-bottom: 70px;
    }

    .disclosure-nav {
        grid-template-columns: 1fr 1fr;

        margin-top: 40px;
    }

    .disclosure-nav-card {
        min-height: 120px;

        padding: 17px;
    }

    .disclosure-section-head {
        align-items: flex-start;

        flex-direction: column;

        gap: 7px;
    }

    .info-card,
    .principal-card,
    .contact-detail-card,
    .staff-main-card,
    .ratio-card,
    .result-card,
    .campus-detail-card,
    .facility-disclosure-card {
        padding: 24px;
    }

    .staff-overview {
        grid-template-columns: 1fr;
    }

    .staff-grid {
        grid-template-columns: 1fr 1fr;
    }

    .special-staff {
        grid-template-columns: 1fr;
    }

    .result-stats {
        grid-template-columns: 1fr 1fr 1fr;
    }

    .campus-details-grid,
    .facilities-disclosure-grid {
        grid-template-columns: 1fr;
    }

}


@media (max-width: 480px) {

    .disclosure-nav {
        grid-template-columns: 1fr;
    }

    .staff-grid {
        grid-template-columns: 1fr;
    }

    .result-stats {
        grid-template-columns: 1fr;
    }

    .info-list-row {
        flex-direction: column;

        gap: 4px;
    }

    .info-list-row strong {
        text-align: left;
    }

}

/* =========================================
   RESULT SEARCH SECTION
========================================= */

.roll-search-section {
  position: relative;
  overflow: hidden;
}

.roll-search-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(400px, .92fr);
  gap: 70px;
  align-items: center;
}


/* =========================================
   LEFT CONTENT
========================================= */

.roll-info {
  max-width: 650px;
}

.roll-info h2 {
  max-width: 560px;
  font-size: clamp(2rem, 4vw, 40px);
  line-height: 1.08;
}

.roll-info .sub-h em {
  display: block;
  color: var(--oxblood);
  font-style: italic;
  font-weight: 500;
}

.roll-intro {
  margin-top: 18px;
}

.result-points {
  display: flex;
  flex-direction: column;
  gap: 17px;
  margin-top: 35px;
}

.result-point {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 16px 0;
  border-top: 1px solid var(--line);
}

.result-point:last-child {
  border-bottom: 1px solid var(--line);
}

.result-point-icon {
  width: 43px;
  height: 43px;
  flex: 0 0 43px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--parchment);
  color: var(--oxblood);
  font-size: 15px;
}

.result-point h4 {
  margin: 0 0 3px;
  color: var(--navy-deep);
  font-family: "Fraunces", serif;
  font-size: 1.05rem;
}

.result-point p {
  margin: 0;
  color: var(--ink-soft);
  font-size: .92rem;
  line-height: 1.55;
}


/* =========================================
   FORM CARD
========================================= */

.roll-form-wrap {
  width: 100%;
}

.roll-form-card {
  position: relative;
  padding: 38px;
  background: #fff;
  border: 1px solid var(--line);
  box-shadow: 0 20px 55px rgba(10, 20, 35, .10);
}

.roll-form-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 70px;
  height: 4px;
  background: var(--gold);
}

.roll-form-top {
  display: flex;
  align-items: center;
  gap: 17px;
}

.roll-form-icon {
  width: 52px;
  height: 52px;
  flex: 0 0 52px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--navy-deep);
  color: var(--gold-light);
  font-size: 20px;
}

.roll-form-top .eyebrow {
  margin-bottom: 5px;
}

.roll-form-top h3 {
  margin: 0;
  color: var(--navy-deep);
  font-family: "Fraunces", serif;
  font-size: 1.7rem;
}

.roll-form-divider {
  height: 1px;
  background: var(--line);
  margin: 28px 0;
}


/* =========================================
   FORM
========================================= */

.roll-form-card .form-field {
  margin-bottom: 22px;
}

.roll-form-card .form-field label {
  display: block;
  margin-bottom: 9px;
  color: var(--navy-deep);
  font-weight: 600;
}

.roll-form-card .form-field label i {
  margin-right: 6px;
  color: var(--oxblood);
}

.roll-form-card input {
  width: 100%;
  min-height: 56px;
  padding: 14px 17px;
  box-sizing: border-box;
  border: 1px solid var(--line);
  background: var(--parchment);
  color: var(--ink);
  font-family: "Source Sans 3", sans-serif;
  font-size: 1rem;
  outline: none;
  transition: .25s ease;
}

.roll-form-card input:focus {
  border-color: var(--gold);
  background: #fff;
  box-shadow: 0 0 0 3px rgba(190, 150, 60, .10);
}

.roll-form-card input::placeholder {
  color: #999;
}

.roll-form-card .form-note {
  display: block;
  margin-top: 8px;
  color: var(--ink-soft);
  font-size: .82rem;
  line-height: 1.5;
}


/* =========================================
   SEARCH BUTTON
========================================= */

.roll-search-btn {
  width: 100%;
  min-height: 54px;
  justify-content: center;
  margin-top: 4px;
  cursor: pointer;
}


/* =========================================
   RESULT AREA
========================================= */

.roll-result {
  min-height: 5px;
  margin-top: 18px;
}

.roll-help {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  margin-top: 25px;
  padding-top: 19px;
  border-top: 1px solid var(--line);
  color: var(--ink-soft);
  font-size: .88rem;
  line-height: 1.55;
}

.roll-help > i {
  margin-top: 4px;
  color: var(--gold);
}

.roll-help a {
  color: var(--oxblood);
  font-weight: 600;
  text-decoration: none;
}

.roll-help a:hover {
  text-decoration: underline;
}


/* =========================================
   TABLET
========================================= */

@media (max-width: 900px) {

  .roll-search-grid {
    grid-template-columns: 1fr;
    gap: 45px;
  }

  .roll-info {
    max-width: 100%;
  }

  .roll-form-wrap {
    max-width: 650px;
  }

}


/* =========================================
   MOBILE
========================================= */

@media (max-width: 600px) {

  .roll-search-grid {
    gap: 32px;
  }

  .roll-form-card {
    padding: 25px 20px;
  }

  .roll-form-top h3 {
    font-size: 1.4rem;
  }

  .roll-form-icon {
    width: 46px;
    height: 46px;
    flex-basis: 46px;
  }

  .roll-info .sub-h {
    font-size: 2rem;
  }

  .result-points {
    margin-top: 25px;
  }

}
/* =========================================
   CLASS XI REPORT CARD
========================================= */

.report-card-section {
  position: relative;
  overflow: hidden;
}

.report-card-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(400px, .92fr);
  gap: 70px;
  align-items: center;
}


/* =========================================
   LEFT CONTENT
========================================= */

.report-card-info {
  max-width: 650px;
}

.report-card-info h2 {
  max-width: 560px;
  font-size: clamp(2rem, 4vw, 40px);
  line-height: 1.08;
}

.report-card-info .sub-h em {
  display: block;
  color: var(--oxblood);
  font-style: italic;
  font-weight: 500;
}

.report-card-intro {
  margin-top: 18px;
}

.report-points {
  display: flex;
  flex-direction: column;
  gap: 17px;
  margin-top: 35px;
}

.report-point {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 16px 0;
  border-top: 1px solid var(--line);
}

.report-point:last-child {
  border-bottom: 1px solid var(--line);
}

.report-point-icon {
  width: 43px;
  height: 43px;
  flex: 0 0 43px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--parchment);
  color: var(--oxblood);
  font-size: 15px;
}

.report-point h4 {
  margin: 0 0 3px;
  color: var(--navy-deep);
  font-family: "Fraunces", serif;
  font-size: 1.05rem;
}

.report-point p {
  margin: 0;
  color: var(--ink-soft);
  font-size: .92rem;
  line-height: 1.55;
}


/* =========================================
   FORM CARD
========================================= */

.report-card-form-wrap {
  width: 100%;
}

.report-card-form-card {
  position: relative;
  padding: 38px;
  background: #fff;
  border: 1px solid var(--line);
  box-shadow: 0 20px 55px rgba(10, 20, 35, .10);
}

.report-card-form-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 70px;
  height: 4px;
  background: var(--gold);
}

.report-card-form-head {
  display: flex;
  align-items: center;
  gap: 17px;
}

.report-card-form-icon {
  width: 52px;
  height: 52px;
  flex: 0 0 52px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--navy-deep);
  color: var(--gold-light);
  font-size: 20px;
}

.report-card-form-head .eyebrow {
  margin-bottom: 5px;
}

.report-card-form-head h3 {
  margin: 0;
  color: var(--navy-deep);
  font-family: "Fraunces", serif;
  font-size: 1.7rem;
}

.report-card-divider {
  height: 1px;
  margin: 28px 0;
  background: var(--line);
}


/* =========================================
   FORM FIELDS
========================================= */

.report-card-form-card .form-field {
  margin-bottom: 22px;
}

.report-card-form-card .form-field label {
  display: block;
  margin-bottom: 9px;
  color: var(--navy-deep);
  font-weight: 600;
}

.report-card-form-card .form-field label i {
  margin-right: 6px;
  color: var(--oxblood);
}

.report-card-form-card input,
.report-card-form-card select {
  width: 100%;
  min-height: 56px;
  padding: 14px 17px;
  box-sizing: border-box;
  border: 1px solid var(--line);
  background: var(--parchment);
  color: var(--ink);
  font-family: "Source Sans 3", sans-serif;
  font-size: 1rem;
  outline: none;
  transition: .25s ease;
}

.report-card-form-card input:focus,
.report-card-form-card select:focus {
  border-color: var(--gold);
  background: #fff;
  box-shadow: 0 0 0 3px rgba(190, 150, 60, .10);
}

.report-card-form-card input::placeholder {
  color: #999;
}

.report-card-form-card .form-note {
  display: block;
  margin-top: 8px;
  color: var(--ink-soft);
  font-size: .82rem;
  line-height: 1.5;
}


/* =========================================
   SEARCH BUTTON
========================================= */

.report-search-btn {
  width: 100%;
  min-height: 54px;
  justify-content: center;
  margin-top: 4px;
  cursor: pointer;
}


/* =========================================
   RESULT AREA
========================================= */

.report-card-result {
  min-height: 5px;
  margin-top: 18px;
}

.report-card-help {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  margin-top: 25px;
  padding-top: 19px;
  border-top: 1px solid var(--line);
  color: var(--ink-soft);
  font-size: .88rem;
  line-height: 1.55;
}

.report-card-help > i {
  margin-top: 4px;
  color: var(--gold);
}

.report-card-help a {
  color: var(--oxblood);
  font-weight: 600;
  text-decoration: none;
}

.report-card-help a:hover {
  text-decoration: underline;
}


/* =========================================
   TABLET
========================================= */

@media (max-width: 900px) {

  .report-card-grid {
    grid-template-columns: 1fr;
    gap: 45px;
  }

  .report-card-info {
    max-width: 100%;
  }

  .report-card-form-wrap {
    max-width: 650px;
  }

}


/* =========================================
   MOBILE
========================================= */

@media (max-width: 600px) {

  .report-card-grid {
    gap: 32px;
  }

  .report-card-form-card {
    padding: 25px 20px;
  }

  .report-card-form-head h3 {
    font-size: 1.4rem;
  }

  .report-card-form-icon {
    width: 46px;
    height: 46px;
    flex-basis: 46px;
  }

  .report-card-info .sub-h {
    font-size: 2rem;
  }

  .report-points {
    margin-top: 25px;
  }

}
/* ============================================================
   KIS — RESPONSIVE CSS
   Paste this at the END of your existing CSS
   ============================================================ */

/* ---------- GLOBAL ---------- */

html,
body {
  max-width: 100%;
  overflow-x: hidden;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

img,
video,
iframe {
  max-width: 100%;
}

img {
  height: auto;
}

button,
input,
select,
textarea {
  max-width: 100%;
}

.wrap {
  width: min(1180px, calc(100% - 40px));
  margin-left: auto;
  margin-right: auto;
}


/* ============================================================
   TABLET / SMALL LAPTOP
   ============================================================ */

@media (max-width: 1100px) {

  .wrap {
    width: min(100% - 36px, 1040px);
  }

  .page-hero {
    padding: 34px 0;
  }

  .page-hero h1 {
    font-size: clamp(2rem, 5vw, 2.6rem);
  }

  .page-section {
    padding: 65px 0;
  }

  .labs-modern-intro,
  .sports-modern-intro,
  .olympiad-modern-intro {
    gap: 45px;
  }

  .lab-modern-card {
    grid-template-columns: 70px minmax(0, 1fr) 110px;
  }

  .lab-modern-content {
    padding-right: 30px;
  }

  .sports-modern-grid {
    gap: 16px;
  }

  .sport-card {
    padding: 32px;
  }

  .contact-grid {
    gap: 30px;
  }

  .post-layout {
    gap: 35px;
  }
}


/* ============================================================
   TABLET
   ============================================================ */

@media (max-width: 900px) {

  .wrap {
    width: calc(100% - 32px);
  }

  .page-section {
    padding: 55px 0;
  }

  .page-section.tight {
    padding: 42px 0;
  }

  .page-hero {
    min-height: 0;
    padding: 32px 0;
  }

  .page-hero p.lead {
    max-width: 100%;
    font-size: .98rem;
  }

  .breadcrumb {
    flex-wrap: wrap;
    row-gap: 5px;
  }


  /* ---------- COMMON TWO COLUMN LAYOUTS ---------- */

  .info-split,
  .contact-grid,
  .post-layout,
  .labs-modern-intro,
  .sports-modern-intro,
  .olympiad-modern-intro {
    grid-template-columns: 1fr;
    gap: 32px;
  }


  /* ---------- ANCHOR ---------- */

  .anchor-block-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .anchor-rail {
    position: static;
  }


  /* ---------- LABS ---------- */

  .lab-modern-card {
    grid-template-columns: 60px minmax(0, 1fr);
    min-height: 0;
  }

  .lab-modern-side {
    display: none;
  }

  .lab-modern-content {
    max-width: none;
    padding: 40px 32px 40px 12px;
  }


  /* ---------- SPORTS ---------- */

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

  .sport-card-wide {
    grid-column: span 2;
  }


  /* ---------- BLOG ---------- */

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


  /* ---------- HEADINGS ---------- */

  .labs-intro-left h2,
  .sports-modern-intro h2,
  .olympiad-title h2 {
    font-size: clamp(2.3rem, 6vw, 3.4rem);
  }


  /* ---------- TABLE ---------- */

  .table-wrap {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .info-table {
    min-width: 620px;
  }


  /* ---------- CONTACT ---------- */

  .contact-card {
    padding: 28px;
  }


  /* ---------- GALLERY ---------- */

  .full-gallery-grid {
    columns: 2 180px;
  }


  /* ---------- SHOWCASE ---------- */

  .labs-showcase {
    height: 400px;
  }
}


/* ============================================================
   MOBILE — 767px
   ============================================================ */

@media (max-width: 767px) {

  .wrap {
    width: calc(100% - 28px);
  }

  .page-section {
    padding: 45px 0;
  }

  .page-section.tight {
    padding: 35px 0;
  }


  /* ---------- HERO ---------- */

  .page-hero {
    padding: 28px 0 32px;
  }

  .page-hero-eyebrow {
    font-size: .65rem;
    letter-spacing: .14em;
  }

  .page-hero h1 {
    font-size: clamp(1.8rem, 8vw, 2.35rem);
    line-height: 1.12;
    margin-top: 10px;
  }

  .page-hero p.lead {
    font-size: .92rem;
    line-height: 1.6;
    margin-top: 12px;
  }

  .breadcrumb {
    font-size: .66rem;
    gap: 6px;
    margin-top: 16px;
  }


  /* ---------- COMMON LAYOUTS ---------- */

  .info-split,
  .contact-grid,
  .post-layout,
  .labs-modern-intro,
  .sports-modern-intro,
  .olympiad-modern-intro {
    grid-template-columns: 1fr !important;
    gap: 25px;
  }


  /* ---------- BLOG / SPORTS ---------- */

  .sports-modern-grid,
  .blog-grid {
    grid-template-columns: 1fr !important;
  }

  .sport-card-wide {
    grid-column: auto;
  }


  /* ==========================================================
     LABS
     ========================================================== */

  .labs-modern-section {
    padding: 55px 0 65px;
  }

  .labs-intro-left h2,
  .sports-modern-intro h2,
  .olympiad-title h2 {
    font-size: clamp(2.1rem, 9vw, 2.8rem);
    line-height: 1;
  }

  .labs-intro-right p,
  .sports-intro-text p {
    font-size: .93rem;
    line-height: 1.7;
  }

  .lab-modern-card {
    grid-template-columns: 42px minmax(0, 1fr) !important;
    margin-bottom: 14px;
  }

  .lab-modern-number {
    padding-top: 28px;
  }

  .lab-modern-content {
    padding: 28px 18px 30px 6px;
  }

  .lab-modern-icon {
    width: 46px;
    height: 46px;
    margin-bottom: 18px;
    font-size: .95rem;
  }

  .lab-modern-content h3 {
    font-size: clamp(1.65rem, 7vw, 2.15rem);
    line-height: 1.08;
  }

  .lab-modern-content p {
    font-size: .9rem;
    line-height: 1.68;
  }

  .lab-modern-feature {
    max-width: 100%;
    gap: 10px;
    margin-top: 18px;
    padding-top: 16px;
  }

  .science-subjects {
    gap: 6px;
  }

  .science-subjects span {
    padding: 7px 9px;
    font-size: .68rem;
  }

  .labs-showcase {
    height: 300px;
    margin-top: 28px;
  }

  .labs-showcase-overlay {
    padding: 22px;
    gap: 12px;
    align-items: flex-end;
  }

  .labs-showcase-overlay h3 {
    font-size: clamp(1.65rem, 7vw, 2.2rem);
  }


  /* ==========================================================
     SPORTS
     ========================================================== */

  .sports-modern-section {
    padding: 55px 0 65px;
  }

  .sport-card {
    min-height: 0;
    padding: 24px 20px;
  }

  .sport-card-top {
    margin-bottom: 22px;
  }

  .sport-icon {
    width: 46px;
    height: 46px;
  }

  .sport-card h3 {
    font-size: clamp(1.7rem, 7vw, 2.1rem);
  }

  .sport-card p {
    font-size: .9rem;
    line-height: 1.68;
  }

  .sports-closing {
    margin-top: 28px;
    padding: 23px 18px;
    gap: 14px;
  }

  .sports-closing h3 {
    font-size: 1.2rem;
    line-height: 1.3;
  }


  /* ==========================================================
     HISTORY
     ========================================================== */

  .history-section {
    padding: 55px 0 65px;
  }

  .history-intro {
    margin-bottom: 38px;
  }

  .history-intro h2 {
    font-size: clamp(2rem, 9vw, 2.45rem);
  }

  .history-intro p {
    font-size: .92rem;
  }


  /* ==========================================================
     CONTACT
     ========================================================== */

  .contact-card {
    padding: 22px 18px;
  }

  .contact-info-item {
    gap: 12px;
  }

  .contact-info-item .ic {
    width: 40px;
    height: 40px;
    font-size: .9rem;
  }

  .form-row {
    grid-template-columns: 1fr !important;
    gap: 0;
  }

  .form-submit {
    width: 100%;
    justify-content: center;
    padding: 13px 20px;
  }


  /* ==========================================================
     BLOG
     ========================================================== */

  .blog-hero-search {
    width: 100%;
    max-width: none;
    flex-direction: column;
  }

  .blog-hero-search input,
  .blog-hero-search button {
    width: 100%;
    min-height: 44px;
  }

  .blog-cats {
    gap: 7px;
    margin-bottom: 28px;
  }

  .blog-cats button {
    padding: 8px 13px;
    font-size: .72rem;
  }

  .blog-card-body {
    padding: 18px 17px 20px;
  }

  .blog-card h3 {
    font-size: 1.05rem;
  }


  /* ==========================================================
     BLOG DETAIL
     ========================================================== */

  .post-body p {
    font-size: .95rem;
    line-height: 1.75;
  }

  .post-body blockquote {
    padding-left: 15px;
    font-size: 1rem;
  }

  .post-share {
    flex-wrap: wrap;
  }

  .author-box {
    padding: 18px;
    gap: 13px;
    align-items: flex-start;
  }

  .author-box img {
    width: 52px;
    height: 52px;
  }


  /* ==========================================================
     GALLERY
     ========================================================== */

  .full-gallery-grid {
    columns: 2 130px;
    column-gap: 10px;
  }

  .full-gallery-grid .gallery-item {
    margin-bottom: 10px;
  }

  .gallery-filter {
    gap: 7px;
    margin: 20px 0 25px;
  }

  .gallery-filter button {
    padding: 8px 12px;
    font-size: .72rem;
  }


  /* ==========================================================
     ACCORDION
     ========================================================== */

  .acc-head {
    padding: 15px 14px;
    font-size: .92rem;
    gap: 12px;
  }

  .acc-body-inner {
    padding: 0 14px 17px;
    font-size: .88rem;
  }


  /* ==========================================================
     PILLS
     ========================================================== */

  .pill-row {
    gap: 7px;
  }

  .pill {
    padding: 7px 11px;
    font-size: .75rem;
  }


  /* ==========================================================
     BACK TO TOP
     ========================================================== */

  #backToTop {
    right: 14px;
    bottom: 14px;
    width: 42px;
    height: 42px;
  }


  /* ==========================================================
     404
     ========================================================== */

  .error-page {
    min-height: 55vh;
    padding: 90px 15px 60px;
  }

  .error-page .code {
    font-size: clamp(4rem, 20vw, 6rem);
  }
}


/* ============================================================
   SMALL MOBILE — 575px
   ============================================================ */

@media (max-width: 575px) {

  .wrap {
    width: calc(100% - 24px);
  }

  .page-section {
    padding: 38px 0;
  }

  .page-section.tight {
    padding: 30px 0;
  }

  .page-hero {
    padding: 24px 0 28px;
  }

  .page-hero h1 {
    font-size: 22px;
  }

  .page-hero p.lead {
    font-size: .88rem;
  }


  /* ---------- ALL MAJOR LAYOUTS ---------- */

  .labs-modern-intro,
  .sports-modern-intro,
  .olympiad-modern-intro,
  .info-split,
  .contact-grid,
  .post-layout {
    grid-template-columns: 1fr !important;
  }


  .labs-intro-left h2,
  .sports-modern-intro h2,
  .olympiad-title h2 {
    font-size: clamp(1.9rem, 10vw, 2.45rem);
  }


  /* ---------- LAB CARD ---------- */

  .lab-modern-card {
    grid-template-columns: 35px minmax(0, 1fr) !important;
  }

  .lab-modern-number span {
    font-size: .68rem;
  }

  .lab-modern-number {
    padding-top: 25px;
  }

  .lab-modern-content {
    padding: 25px 13px 27px 3px;
  }

  .lab-modern-content h3 {
    font-size: 1.55rem;
  }

  .lab-modern-content p {
    font-size: .87rem;
  }

  .lab-modern-feature strong {
    font-size: .84rem;
  }

  .lab-modern-feature small {
    font-size: .74rem;
  }


  /* ---------- SPORT ---------- */

  .sport-card {
    padding: 21px 17px;
  }

  .sport-card h3 {
    font-size: 1.65rem;
  }

  .sports-closing {
    flex-direction: column;
  }

  .sports-closing-icon {
    width: 44px;
    height: 44px;
    flex-basis: 44px;
  }


  /* ---------- HISTORY ---------- */

  .history-card {
    padding: 20px 16px;
  }

  .history-card h3 {
    font-size: 1.22rem;
  }

  .history-card p {
    font-size: .87rem;
  }


  /* ---------- CONTACT ---------- */

  .contact-info-item p,
  .contact-info-item a {
    font-size: .86rem;
    word-break: break-word;
  }


  /* ---------- SIDEBAR ---------- */

  .side-block {
    padding: 18px 15px;
  }


  /* ---------- AUTHOR ---------- */

  .author-box {
    flex-direction: column;
  }

  .author-box img {
    width: 58px;
    height: 58px;
  }


  /* ---------- GALLERY ---------- */

  .full-gallery-grid {
    columns: 1;
  }


  /* ---------- TABLE ---------- */

  .info-table th,
  .info-table td {
    padding: 11px 12px;
    font-size: .84rem;
  }
}


/* ============================================================
   EXTRA SMALL — 380px
   ============================================================ */

@media (max-width: 380px) {

  .wrap {
    width: calc(100% - 20px);
  }

  .page-hero h1 {
    font-size: 1.6rem;
  }

  .breadcrumb {
    font-size: .6rem;
  }

  .labs-intro-left h2,
  .sports-modern-intro h2,
  .olympiad-title h2 {
    font-size: 1.85rem;
  }

  .lab-modern-card {
    grid-template-columns: 30px minmax(0, 1fr) !important;
  }

  .lab-modern-content {
    padding-right: 8px;
  }

  .lab-modern-icon {
    width: 42px;
    height: 42px;
  }

  .sport-card {
    padding: 19px 15px;
  }

  .history-year span {
    font-size: 2rem;
  }

  .history-card {
    padding: 18px 14px;
  }

  .form-field input,
  .form-field select,
  .form-field textarea {
    padding: 11px 12px;
    font-size: .88rem;
  }

  .post-tags a {
    padding: 5px 10px;
    font-size: .7rem;
  }
}


/* ============================================================
   TOUCH DEVICES
   ============================================================ */

@media (hover: none) and (pointer: coarse) {

  .history-card:hover,
  .lab-modern-card:hover,
  .sport-card:hover,
  .blog-card:hover {
    transform: none;
  }

  .blog-card:hover .blog-card-media img,
  .full-gallery-grid .gallery-item:hover img,
  .labs-showcase:hover img {
    transform: none;
  }
}


/* ============================================================
   REDUCED MOTION
   ============================================================ */

@media (prefers-reduced-motion: reduce) {

  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}
