/* Home page styles */
/* ============ TOKENS ============ */
  :root{
    --navy:#14213D;
    --navy-2:#1E3059;
    --maroon:#7E2430;
    --maroon-2:#98303D;
    --gold:#C08A28;
    --gold-light:#E4C069;
    --cream:#FAF6EC;
    --paper:#FFFDF8;
    --ink:#1B1B18;
    --ink-soft:#514E45;
    --line:#E6DEC8;
    --line-dark:rgba(255,255,255,.16);
    --shadow: 0 18px 40px -22px rgba(20,33,61,.35);
    --radius: 2px;
    --maxw: 1180px;
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--cream);
    color:var(--ink);
    font-family:'Inter',system-ui,sans-serif;
    font-size:16px;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  img{max-width:100%;display:block;}
  a{color:inherit;text-decoration:none;}
  ul{list-style:none;margin:0;padding:0;}
  h1,h2,h3,h4{
    font-family:'Fraunces',serif;
    font-weight:600;
    line-height:1.15;
    margin:0;
    color:var(--navy);
  }
  p{margin:0;}
  .wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px;}
  section{position:relative;}
  :focus-visible{outline:2px solid var(--maroon);outline-offset:3px;}
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *{animation-duration:.001ms !important;transition-duration:.001ms !important;}
  }

  .btn{
    display:inline-flex;align-items:center;gap:10px;
    padding:14px 26px;
    font-family:'Inter',sans-serif;
    font-weight:600;
    font-size:.95rem;
    border:1px solid transparent;
    border-radius:var(--radius);
    cursor:pointer;
    transition:background .18s ease, color .18s ease, border-color .18s ease;
  }
  .btn-primary{background:var(--maroon);color:#fff;}
  .btn-primary:hover{background:var(--maroon-2);}
  .btn-ghost{border-color:var(--navy);color:var(--navy);background:transparent;}
  .btn-ghost:hover{background:var(--navy);color:#fff;}
  .btn-ghost-light{border-color:rgba(255,255,255,.55);color:#fff;background:transparent;}
  .btn-ghost-light:hover{background:#fff;color:var(--navy);}

  .eyebrow{
    font-family:'Inter',sans-serif;
    font-weight:600;
    font-size:.8rem;
    letter-spacing:.02em;
    color:var(--maroon);
    display:flex;align-items:center;gap:10px;
    margin-bottom:14px;
  }
  .eyebrow::before{content:"";width:26px;height:1px;background:var(--maroon);display:block;}

  /* ============ TOP STRIP ============ */
  .topstrip{
    background:var(--navy);
    color:#cdd6e8;
    font-size:.82rem;
  }
  .topstrip .wrap{
    display:flex;justify-content:space-between;align-items:center;
    padding:9px 28px;
    gap:20px;
    flex-wrap:wrap;
  }
  .topstrip a{color:#cdd6e8;}
  .topstrip a:hover{color:#fff;}
  .topstrip-left{display:flex;gap:22px;flex-wrap:wrap;}
  .topstrip-left span{display:inline-flex;align-items:center;gap:7px;}
  .topstrip-right{display:flex;gap:16px;align-items:center;}

  /* ============ HEADER ============ */
  header.site{
    background:var(--paper);
    border-bottom:1px solid var(--line);
    position:sticky;top:0;z-index:50;
  }
  .nav-row{
    display:flex;align-items:center;justify-content:space-between;
    padding:16px 28px;
  }
  .brand{display:flex;align-items:center;gap:12px;}
  .brand-mark{
    width:46px;height:46px;border-radius:50%;
    background:var(--navy);
    display:flex;align-items:center;justify-content:center;
    color:var(--gold-light);
    font-family:'Fraunces',serif;
    font-weight:700;font-size:1.2rem;
    flex-shrink:0;
  }
  .brand-text .name{
    font-family:'Fraunces',serif;font-weight:600;font-size:1.08rem;color:var(--navy);
    line-height:1.2;
  }
  .brand-text .sub{font-size:.72rem;color:var(--ink-soft);letter-spacing:.03em;}

  nav.primary ul{display:flex;gap:30px;align-items:center;}
  nav.primary a{
    font-size:.92rem;font-weight:500;color:var(--ink);
    padding:6px 0;border-bottom:2px solid transparent;
    transition:border-color .15s ease, color .15s ease;
  }
  nav.primary a:hover,nav.primary a.active{border-color:var(--maroon);color:var(--maroon);}
  .nav-cta{display:flex;align-items:center;gap:14px;}

  .burger{display:none;background:none;border:none;cursor:pointer;padding:6px;}
  .burger span{display:block;width:24px;height:2px;background:var(--navy);margin:5px 0;}

  @media (max-width:960px){
    nav.primary{
      position:fixed;inset:0 0 0 auto;width:78%;max-width:340px;
      background:var(--paper);
      transform:translateX(100%);
      transition:transform .25s ease;
      padding:90px 30px 30px;
      box-shadow:-10px 0 30px rgba(0,0,0,.15);
    }
    nav.primary.open{transform:translateX(0);}
    nav.primary ul{flex-direction:column;align-items:flex-start;gap:22px;}
    .burger{display:block;}
    .nav-cta .btn-ghost{display:none;}
  }

  /* ============ HERO ============ */
  .hero{
    background:var(--navy);
    color:#fff;
    overflow:hidden;
    position:relative;
  }
  .hero::before{
    content:"";
    position:absolute;inset:0;
    background-image:repeating-linear-gradient(to bottom, transparent 0 39px, rgba(255,255,255,.045) 39px 40px);
    pointer-events:none;
  }
  .hero-grid{
    position:relative;z-index:1;
    display:grid;grid-template-columns:1.05fr .95fr;gap:50px;
    align-items:center;
    padding:76px 0 64px;
  }
  .hero h1{
    color:#fff;
    font-size:clamp(2.1rem,4vw,3.35rem);
    max-width:14ch;
  }
  .hero .lede{
    margin-top:20px;
    color:#c4cbdc;
    max-width:46ch;
    font-size:1.05rem;
  }
  .hero .actions{display:flex;gap:14px;margin-top:32px;flex-wrap:wrap;}
  .hero-stats{
    display:flex;gap:34px;margin-top:52px;flex-wrap:wrap;
  }
  .hero-stats div{border-left:2px solid var(--gold);padding-left:14px;}
  .hero-stats .num{font-family:'Fraunces',serif;font-size:1.7rem;color:#fff;font-weight:600;}
  .hero-stats .lbl{font-size:.78rem;color:#a8b1c6;margin-top:2px;}

  .hero-visual{position:relative;}
  .hero-photo{
    border-radius:var(--radius);
    overflow:hidden;
    box-shadow:var(--shadow);
    aspect-ratio:4/5;
  }
  .hero-photo img{width:100%;height:100%;object-fit:cover;}
  .hero-badge{
    position:absolute;left:-24px;bottom:-24px;
    background:var(--gold);
    color:var(--navy);
    padding:18px 22px;
    max-width:210px;
    box-shadow:var(--shadow);
    font-family:'Fraunces',serif;
    font-weight:600;
    font-size:.95rem;
    line-height:1.35;
  }
  @media (max-width:900px){
    .hero-grid{grid-template-columns:1fr;padding:48px 0 44px;}
    .hero-visual{order:-1;max-width:340px;margin:0 auto;}
    .hero-badge{left:8px;bottom:-18px;}
  }

  /* ============ SECTION SPACING ============ */
  .section{padding:88px 0;}
  .section.alt{background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
  .section-head{max-width:640px;margin-bottom:52px;}
  .section-head h2{font-size:clamp(1.7rem,2.6vw,2.3rem);}
  .section-head .desc{margin-top:14px;color:var(--ink-soft);font-size:1.02rem;}
  @media (max-width:700px){.section{padding:60px 0;}}

  /* ============ PILLARS ============ */
  .pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);}
  .pillar{background:var(--paper);padding:36px 32px;}
  .pillar .num{font-family:'Fraunces',serif;color:var(--gold);font-size:.85rem;font-weight:600;}
  .pillar h3{margin-top:14px;font-size:1.2rem;}
  .pillar p{margin-top:12px;color:var(--ink-soft);font-size:.95rem;}
  @media (max-width:800px){.pillars{grid-template-columns:1fr;}}

  /* ============ ABOUT ============ */
  .about-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:64px;align-items:center;}
  .about-photos{position:relative;}
  .about-photos .main{aspect-ratio:1/1;overflow:hidden;box-shadow:var(--shadow);}
  .about-photos .main img{width:100%;height:100%;object-fit:cover;}
  .about-photos .float{
    position:absolute;width:46%;aspect-ratio:5/4;overflow:hidden;
    right:-30px;bottom:-34px;
    border:6px solid var(--paper);box-shadow:var(--shadow);
  }
  .about-photos .float img{width:100%;height:100%;object-fit:cover;}
  .about-copy h2{font-size:clamp(1.7rem,2.6vw,2.3rem);}
  .about-copy p{margin-top:18px;color:var(--ink-soft);}
  .about-copy .vision{
    margin-top:26px;padding:20px 24px;
    border-left:3px solid var(--maroon);
    background:var(--cream);
    font-family:'Fraunces',serif;font-style:italic;color:var(--navy);
    font-size:1.05rem;
  }
  @media (max-width:860px){
    .about-grid{grid-template-columns:1fr;gap:70px 0;}
    .about-photos{max-width:380px;margin:0 auto 30px;}
  }

  /* ============ MESSAGES ============ */
  .messages{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);}
  .msg-card{background:var(--paper);padding:40px;display:flex;flex-direction:column;gap:18px;}
  .msg-top{display:flex;gap:16px;align-items:center;}
  .msg-photo{width:64px;height:64px;border-radius:50%;overflow:hidden;flex-shrink:0;}
  .msg-photo img{width:100%;height:100%;object-fit:cover;}
  .msg-role{font-size:.76rem;color:var(--maroon);font-weight:600;}
  .msg-name{font-family:'Fraunces',serif;color:var(--navy);font-size:1.1rem;margin-top:2px;}
  .msg-card p.body{color:var(--ink-soft);font-size:.95rem;}
  .msg-card p.body.clamp{
    display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden;
  }
  .msg-card .more{font-size:.85rem;font-weight:600;color:var(--maroon);align-self:flex-start;}
  @media (max-width:860px){.messages{grid-template-columns:1fr;}}

  /* ============ SCHOOL LIFE ============ */
  .life-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
  .life-card{position:relative;aspect-ratio:3/4;overflow:hidden;box-shadow:var(--shadow);}
  .life-card img{width:100%;height:100%;object-fit:cover;}
  .life-card .tag{
    position:absolute;left:0;right:0;bottom:0;
    padding:22px 22px 20px;
    background:linear-gradient(to top, rgba(20,33,61,.92), rgba(20,33,61,0));
    color:#fff;
  }
  .life-card .tag h3{color:#fff;font-size:1.1rem;}
  .life-card .tag span{font-size:.82rem;color:var(--gold-light);font-weight:600;display:inline-flex;gap:6px;margin-top:8px;}
  @media (max-width:800px){.life-grid{grid-template-columns:1fr;}.life-card{aspect-ratio:16/10;}}

  /* ============ GALLERY ============ */
  .gallery-grid{
    display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:110px;gap:10px;
  }
  .gallery-grid a{overflow:hidden;border-radius:var(--radius);}
  .gallery-grid img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease;}
  .gallery-grid a:hover img{transform:scale(1.06);}
  .g1{grid-column:span 2;grid-row:span 2;}
  .g2{grid-column:span 2;grid-row:span 1;}
  .g3{grid-column:span 2;grid-row:span 1;}
  .g4{grid-column:span 2;grid-row:span 1;}
  .g5{grid-column:span 2;grid-row:span 1;}
  .g6{grid-column:span 2;grid-row:span 2;}
  @media (max-width:800px){
    .gallery-grid{grid-template-columns:repeat(3,1fr);grid-auto-rows:90px;}
    .g1,.g6{grid-column:span 3;grid-row:span 2;}
    .g2,.g3,.g4,.g5{grid-column:span 3;grid-row:span 1;}
  }

  /* ============ FACULTY ============ */
  .faculty-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;}
  .faculty-card{text-align:left;}
  .faculty-photo{aspect-ratio:1/1;overflow:hidden;background:var(--line);box-shadow:var(--shadow);}
  .faculty-photo img{width:100%;height:100%;object-fit:cover;}
  .faculty-card h4{margin-top:16px;font-size:1.02rem;}
  .faculty-card .subj{font-size:.85rem;color:var(--ink-soft);margin-top:3px;}
  @media (max-width:800px){.faculty-grid{grid-template-columns:repeat(2,1fr);}}

  /* ============ TOPPERS STRIP ============ */
  .toppers{background:var(--navy);color:#fff;}
  .toppers .section-head h2{color:#fff;}
  .toppers .section-head .desc{color:#a8b1c6;}
  .topper-row{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line-dark);border:1px solid var(--line-dark);}
  .topper-card{background:#182747;padding:28px 26px;}
  .topper-card .rank{font-family:'Fraunces',serif;color:var(--gold-light);font-size:.85rem;}
  .topper-card h4{color:#fff;margin-top:10px;font-size:1.05rem;}
  .topper-card .class{color:#a8b1c6;font-size:.85rem;margin-top:4px;}
  .topper-card .pct{margin-top:14px;font-family:'Fraunces',serif;font-size:1.5rem;color:var(--gold-light);}
  @media (max-width:800px){.topper-row{grid-template-columns:repeat(2,1fr);}}

  /* ============ TESTIMONIALS ============ */
  .testi-row{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
  .testi-card{background:var(--paper);border:1px solid var(--line);padding:32px;}
  .testi-card .quote{font-family:'Fraunces',serif;font-style:italic;color:var(--navy);font-size:1.02rem;line-height:1.55;}
  .testi-who{display:flex;align-items:center;gap:12px;margin-top:22px;}
  .testi-who img{width:44px;height:44px;border-radius:50%;object-fit:cover;}
  .testi-who .n{font-weight:600;font-size:.92rem;}
  .testi-who .r{font-size:.78rem;color:var(--ink-soft);}
  @media (max-width:860px){.testi-row{grid-template-columns:1fr;}}

  /* ============ CALENDAR + PRINCIPAL ============ */
  .split2{display:grid;grid-template-columns:1.1fr .9fr;gap:1px;background:var(--line);border:1px solid var(--line);}
  .cal-card{background:var(--paper);padding:44px;}
  .cal-card h3{font-size:1.3rem;}
  .cal-list{margin-top:26px;display:flex;flex-direction:column;}
  .cal-item{display:grid;grid-template-columns:78px 1fr;gap:18px;padding:18px 0;border-top:1px solid var(--line);}
  .cal-item:first-child{border-top:none;}
  .cal-date{font-family:'Fraunces',serif;color:var(--maroon);font-weight:600;font-size:.95rem;line-height:1.3;}
  .cal-date .day{font-size:1.5rem;display:block;}
  .cal-text{font-size:.95rem;color:var(--ink);align-self:center;}

  .principal-card{background:var(--navy);color:#fff;padding:44px;display:flex;flex-direction:column;justify-content:space-between;}
  .principal-top{display:flex;gap:18px;align-items:center;}
  .principal-photo{width:64px;height:64px;border-radius:50%;overflow:hidden;flex-shrink:0;}
  .principal-photo img{width:100%;height:100%;object-fit:cover;}
  .principal-card .role{font-size:.76rem;color:var(--gold-light);font-weight:600;}
  .principal-card .quote{
    margin-top:28px;
    font-family:'Fraunces',serif;font-style:italic;
    font-size:1.15rem;line-height:1.55;color:#e7eaf3;
  }
  .principal-contacts{margin-top:32px;display:grid;grid-template-columns:1fr 1fr;gap:20px;font-size:.86rem;}
  .principal-contacts .lbl{color:#8f9ab4;margin-bottom:4px;}
  @media (max-width:900px){.split2{grid-template-columns:1fr;}}

  /* ============ CONTACT ============ */
  .contact-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:60px;}
  .contact-info h2{font-size:clamp(1.6rem,2.4vw,2.1rem);}
  .contact-info p.desc{margin-top:16px;color:var(--ink-soft);}
  .contact-list{margin-top:32px;display:flex;flex-direction:column;gap:22px;}
  .contact-list li{display:flex;gap:16px;align-items:flex-start;}
  .contact-ico{
    width:40px;height:40px;border-radius:50%;
    background:var(--cream);border:1px solid var(--line);
    display:flex;align-items:center;justify-content:center;flex-shrink:0;
    color:var(--maroon);font-size:1rem;
  }
  .contact-list .t{font-weight:600;font-size:.9rem;}
  .contact-list .d{color:var(--ink-soft);font-size:.9rem;margin-top:2px;}

  form.contact-form{background:var(--paper);border:1px solid var(--line);padding:36px;}
  form.contact-form .row{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
  form.contact-form label{font-size:.82rem;font-weight:600;color:var(--navy);display:block;margin-bottom:7px;}
  form.contact-form input,form.contact-form textarea{
    width:100%;padding:13px 14px;
    border:1px solid var(--line);
    background:var(--cream);
    font-family:'Inter',sans-serif;font-size:.92rem;
    border-radius:var(--radius);
  }
  form.contact-form input:focus,form.contact-form textarea:focus{
    outline:none;border-color:var(--maroon);
  }
  form.contact-form .field{margin-top:18px;}
  form.contact-form .field:first-child{margin-top:0;}
  form.contact-form button{margin-top:24px;width:100%;justify-content:center;}
  @media (max-width:860px){
    .contact-grid{grid-template-columns:1fr;}
    form.contact-form .row{grid-template-columns:1fr;}
  }

  /* ============ CTA BAND ============ */
  .cta-band{
    background:var(--maroon);
    color:#fff;
    padding:56px 0;
  }
  .cta-band .wrap{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;}
  .cta-band h2{color:#fff;font-size:clamp(1.4rem,2.4vw,1.9rem);max-width:26ch;}
  .cta-band .actions{display:flex;gap:14px;}

  /* ============ FOOTER ============ */
  footer{background:var(--navy);color:#c4cbdc;padding:70px 0 26px;}
  .foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:40px;}
  .foot-brand{display:flex;gap:12px;align-items:center;margin-bottom:16px;}
  footer p.about{font-size:.9rem;color:#9aa4bd;max-width:34ch;}
  footer h5{color:#fff;font-family:'Fraunces',serif;font-weight:600;font-size:1rem;margin-bottom:18px;}
  footer ul li{margin-bottom:11px;font-size:.9rem;}
  footer ul li a:hover{color:#fff;}
  .foot-bottom{
    margin-top:56px;padding-top:24px;border-top:1px solid var(--line-dark);
    display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;
    font-size:.82rem;color:#8f9ab4;
  }
  .foot-social{display:flex;gap:12px;}
  .foot-social a{
    width:34px;height:34px;border:1px solid var(--line-dark);border-radius:50%;
    display:flex;align-items:center;justify-content:center;font-size:.78rem;
  }
  .foot-social a:hover{background:var(--gold);color:var(--navy);border-color:var(--gold);}
  @media (max-width:860px){.foot-grid{grid-template-columns:1fr 1fr;}}
  @media (max-width:560px){.foot-grid{grid-template-columns:1fr;}}

  /* ============ WHATSAPP FAB ============ */
  .wa-fab{
    position:fixed;right:22px;bottom:22px;z-index:60;
    width:56px;height:56px;border-radius:50%;
    background:#25D366;color:#fff;
    display:flex;align-items:center;justify-content:center;
    box-shadow:0 10px 24px rgba(0,0,0,.28);
    font-size:1.5rem;
  }

/* Home page styles */
/* ===== MODERN PROFESSIONAL REDESIGN ===== */
:root{
  --navy:#0b1f3a;
  --navy-2:#15345d;
  --maroon:#8f2033;
  --maroon-2:#b22e45;
  --gold:#d5a33b;
  --gold-light:#f0d184;
  --cream:#f5f7fb;
  --paper:#ffffff;
  --ink:#172033;
  --ink-soft:#667085;
  --line:#e6eaf0;
  --shadow:0 20px 55px rgba(11,31,58,.10);
  --shadow-lg:0 28px 80px rgba(11,31,58,.18);
  --radius:18px;
  --maxw:1240px;
}

body{
  background:#f5f7fb;
  color:var(--ink);
  font-size:16px;
}
.wrap{max-width:1240px;padding-left:24px;padding-right:24px}
h1,h2,h3,h4{letter-spacing:-.025em}
.btn{
  min-height:48px;
  padding:13px 22px;
  border-radius:10px;
  box-shadow:0 8px 18px rgba(11,31,58,.08);
}
.btn-primary{
  background:linear-gradient(135deg,var(--maroon),#a92a42);
  border:0;
}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 12px 25px rgba(143,32,51,.25)}
.btn-ghost{border-color:#cfd6e2;background:#fff}
.btn-ghost:hover{background:var(--navy);border-color:var(--navy)}

.topstrip{
  background:#07172c;
  font-size:.8rem;
}
.topstrip .wrap{padding-top:8px;padding-bottom:8px}
.topstrip-left,.topstrip-right{gap:18px}
.topstrip a{transition:.2s}

header.site{
  background:rgba(255,255,255,.94);
  backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(230,234,240,.9);
}
.nav-row{padding:13px 24px}
.brand{gap:13px}
.brand-mark{
  width:48px;height:48px;
  background:linear-gradient(145deg,var(--navy),#214a7b);
  box-shadow:0 8px 20px rgba(11,31,58,.18);
}
.brand-text .name{font-size:1.02rem}
.brand-text .sub{font-size:.68rem;color:#7a8495}
nav.primary ul{gap:25px}
nav.primary a{font-size:.86rem;font-weight:600;color:#344054}
nav.primary a:hover,nav.primary a.active{color:var(--maroon);border-color:var(--maroon)}

.hero{
  background:
    radial-gradient(circle at 80% 20%,rgba(213,163,59,.16),transparent 30%),
    linear-gradient(120deg,#081b35 0%,#102d52 58%,#173e69 100%);
}
.hero::before{
  background-image:
    radial-gradient(circle at 10% 20%,rgba(255,255,255,.08) 1px,transparent 1px);
  background-size:28px 28px;
  opacity:.45;
}
.hero-grid{
  grid-template-columns:1.02fr .98fr;
  gap:70px;
  padding:92px 0 90px;
}
.hero h1{
  font-size:clamp(2.7rem,5vw,4.65rem);
  max-width:12ch;
  line-height:1.02;
}
.hero .lede{
  max-width:54ch;
  font-size:1.06rem;
  line-height:1.8;
  color:#cbd5e5;
}
.hero .actions{margin-top:30px}
.hero-stats{gap:42px;margin-top:48px}
.hero-stats div{border-left:2px solid var(--gold);padding-left:15px}
.hero-stats .num{font-size:1.8rem}
.hero-visual{padding:10px}
.hero-photo{
  aspect-ratio:1/1.08;
  border-radius:24px;
  border:8px solid rgba(255,255,255,.09);
  box-shadow:var(--shadow-lg);
  position:relative;
}
.hero-photo::after{
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 60%,rgba(7,23,44,.2));
  pointer-events:none;
}
.hero-badge{
  left:-22px;bottom:-22px;
  border-radius:14px;
  padding:17px 20px;
  background:linear-gradient(135deg,#e0b54e,#c99027);
  box-shadow:0 18px 35px rgba(0,0,0,.25);
}

.section{padding:96px 0}
.section.alt{
  background:#fff;
  border-top:1px solid #edf0f5;
  border-bottom:1px solid #edf0f5;
}
.section-head{max-width:720px;margin-bottom:42px}
.eyebrow{
  text-transform:uppercase;
  letter-spacing:.13em;
  font-size:.72rem;
  font-weight:800;
}
.eyebrow::before{width:32px;height:2px}
.section-head h2{font-size:clamp(2rem,3.2vw,3rem)}
.section-head .desc{color:#667085;line-height:1.75}

/* ============ PILLARS (enhanced) ============ */
.pillars-section{
  position:relative;
  overflow:hidden;
  padding-top:86px;
  padding-bottom:96px;
}
.pillars-section::before,
.pillars-section::after{
  content:"";
  position:absolute;
  border-radius:50%;
  filter:blur(70px);
  z-index:0;
  pointer-events:none;
  opacity:.55;
}
.pillars-section::before{
  width:420px;height:420px;
  top:-180px;left:-140px;
  background:radial-gradient(circle,rgba(213,163,59,.28),transparent 70%);
}
.pillars-section::after{
  width:460px;height:460px;
  bottom:-220px;right:-160px;
  background:radial-gradient(circle,rgba(143,32,51,.16),transparent 70%);
}
.pillars-head{
  position:relative;
  z-index:1;
  max-width:640px;
  margin:0 auto 48px;
  text-align:center;
}
.pillars-head .eyebrow{justify-content:center}
.pillars-head h2{margin-top:12px}
.pillars-head h2 em{
  font-style:normal;
  background:linear-gradient(100deg,var(--maroon),var(--gold) 65%);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}
.pillars{
  position:relative;
  z-index:1;
  border:0;
  background:transparent;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}
.pillar{
  position:relative;
  background:#fff;
  padding:38px 30px 32px;
  border:1px solid #e6eaf0;
  border-radius:20px;
  box-shadow:0 10px 35px rgba(11,31,58,.06);
  overflow:hidden;
  opacity:0;
  transform:translateY(28px);
  transition:transform .5s cubic-bezier(.2,.7,.2,1),box-shadow .35s ease,border-color .35s ease;
}
.pillar.in-view{
  animation:pillar-rise .7s cubic-bezier(.2,.7,.2,1) forwards;
}
.pillar:nth-child(1).in-view{animation-delay:.02s}
.pillar:nth-child(2).in-view{animation-delay:.14s}
.pillar:nth-child(3).in-view{animation-delay:.26s}
@keyframes pillar-rise{
  from{opacity:0;transform:translateY(28px);}
  to{opacity:1;transform:translateY(0);}
}
.pillar::before{
  content:"";
  position:absolute;
  top:0;left:0;right:0;
  height:4px;
  background:linear-gradient(90deg,var(--maroon),var(--gold));
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .45s ease;
}
.pillar:hover{
  transform:translateY(-10px);
  box-shadow:0 26px 55px rgba(11,31,58,.14);
  border-color:rgba(213,163,59,.35);
}
.pillar:hover::before{transform:scaleX(1)}
.pillar-icon{
  width:60px;height:60px;
  display:flex;align-items:center;justify-content:center;
  border-radius:16px;
  background:linear-gradient(135deg,var(--navy),var(--navy-2));
  color:var(--gold-light);
  box-shadow:0 10px 22px rgba(11,31,58,.22);
  transition:transform .45s cubic-bezier(.2,.7,.2,1),box-shadow .35s ease;
}
.pillar-icon svg{width:28px;height:28px}
.pillar:hover .pillar-icon{
  transform:rotate(-8deg) scale(1.08);
  box-shadow:0 14px 28px rgba(11,31,58,.3);
}
.pillar .num{
  position:absolute;
  top:26px;right:26px;
  width:34px;height:34px;
  display:flex;align-items:center;justify-content:center;
  border-radius:10px;
  background:#fff5e1;
  color:#a06c10;
  font-family:'Fraunces',serif;
  font-size:.8rem;
  font-weight:700;
  transition:background .3s ease,color .3s ease;
}
.pillar:hover .num{background:var(--gold);color:#fff}
.pillar h3{margin-top:20px;font-size:1.25rem}
.pillar p{margin-top:10px;line-height:1.75;color:var(--ink-soft)}
.pillar-tag{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin-top:18px;
  padding:6px 12px;
  border-radius:999px;
  background:var(--cream);
  color:var(--navy-2);
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.01em;
}
.pillar-tag::before{
  content:"";
  width:6px;height:6px;
  border-radius:50%;
  background:var(--gold);
}
@media (max-width:800px){
  .pillars{grid-template-columns:1fr}
  .pillars-section::before,.pillars-section::after{display:none}
}

.about-grid{grid-template-columns:.95fr 1.05fr;gap:82px}
.about-photos .main{border-radius:22px;box-shadow:var(--shadow-lg)}
.about-photos .float{
  right:-28px;bottom:-28px;
  border:7px solid #fff;
  border-radius:16px;
  box-shadow:var(--shadow-lg);
}
.about-copy p{line-height:1.8;color:#667085}
.about-copy .vision{
  margin-top:30px;
  padding:23px 25px;
  border:1px solid #f0dfb5;
  border-left:4px solid var(--gold);
  border-radius:12px;
  background:#fffaf0;
  color:#26364e;
}

.messages{
  border:0;background:transparent;
  gap:20px;
}
.msg-card{
  border:1px solid #e5e9f0;
  border-radius:18px;
  padding:34px;
  box-shadow:0 10px 35px rgba(11,31,58,.055);
  transition:transform .25s ease;
}
.msg-card:hover{transform:translateY(-4px)}
.msg-photo{width:70px;height:70px;border:3px solid #f1e4c5}
.msg-role{text-transform:uppercase;letter-spacing:.1em;font-size:.7rem}
.msg-card p.body{line-height:1.8}
.msg-card .more{padding-top:3px}

.life-grid{gap:20px}
.life-card{
  border-radius:20px;
  box-shadow:var(--shadow);
  transition:transform .3s ease;
}
.life-card:hover{transform:translateY(-7px)}
.life-card::after{
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(to top,rgba(5,19,37,.86),transparent 60%);
}
.life-card .tag{z-index:2;padding:26px}
.life-card .tag h3{font-size:1.25rem}

.gallery-grid{gap:12px;grid-auto-rows:125px}
.gallery-grid a{
  border-radius:14px;
  box-shadow:0 8px 25px rgba(11,31,58,.07);
}
.gallery-grid img{transition:transform .45s ease,filter .45s ease}
.gallery-grid a:hover img{transform:scale(1.08);filter:saturate(1.1)}

.faculty-grid{gap:22px}
.faculty-card{
  background:#fff;
  padding:10px 10px 18px;
  border:1px solid #e6eaf0;
  border-radius:17px;
  box-shadow:0 10px 30px rgba(11,31,58,.055);
  overflow:hidden;
  transition:transform .25s ease,box-shadow .25s ease;
}
.faculty-card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}
.faculty-photo{border-radius:12px;box-shadow:none}
.faculty-card h4{padding:0 7px;margin-top:14px}
.faculty-card .subj{padding:0 7px}

.toppers{
  background:
    radial-gradient(circle at 90% 15%,rgba(213,163,59,.13),transparent 28%),
    #0b1f3a;
}
.topper-row{
  gap:16px;
  background:transparent;
  border:0;
}
.topper-card{
  border:1px solid rgba(255,255,255,.09);
  border-radius:16px;
  background:rgba(255,255,255,.055);
  padding:30px 26px;
  backdrop-filter:blur(8px);
  transition:transform .25s ease,background .25s ease;
}
.topper-card:hover{transform:translateY(-5px);background:rgba(255,255,255,.085)}
.topper-card .pct{font-size:1.7rem}

.testi-row{gap:20px}
.testi-card{
  border-radius:17px;
  padding:30px;
  box-shadow:0 10px 30px rgba(11,31,58,.05);
  transition:transform .25s ease;
}
.testi-card:hover{transform:translateY(-4px)}
.testi-card .quote{font-size:1.05rem;line-height:1.7}

.split2{
  border:0;background:transparent;
  gap:20px;
}
.cal-card,.principal-card{
  border-radius:18px;
  box-shadow:0 12px 35px rgba(11,31,58,.07);
}
.cal-card{border:1px solid #e6eaf0}
.cal-item{padding:20px 0}
.cal-date{font-weight:700}
.principal-card{
  background:linear-gradient(145deg,#0b1f3a,#173d69);
  padding:42px;
}
.principal-photo{border:3px solid rgba(255,255,255,.15)}
.principal-card .quote{font-size:1.18rem;line-height:1.7}

.contact-grid{gap:70px}
.contact-list{gap:20px}
.contact-ico{
  width:46px;height:46px;
  border-radius:12px;
  background:#fff;
  border-color:#e6eaf0;
  box-shadow:0 7px 20px rgba(11,31,58,.06);
}
.contact-list .d{line-height:1.65}
form.contact-form{
  padding:34px;
  border-radius:18px;
  box-shadow:var(--shadow);
}
form.contact-form input,form.contact-form textarea{
  border-radius:10px;
  border-color:#dce2ea;
  background:#fbfcfe;
  min-height:48px;
}
form.contact-form input:focus,form.contact-form textarea:focus{
  border-color:var(--maroon);
  box-shadow:0 0 0 4px rgba(143,32,51,.08);
}

.cta-band{
  background:linear-gradient(120deg,#8f2033,#ad2d45);
  padding:62px 0;
}
.cta-band h2{font-size:clamp(1.65rem,3vw,2.3rem)}
.cta-band .btn{
  box-shadow:none;
}
.cta-band .btn:hover{transform:translateY(-2px)}

footer{padding:76px 0 28px}
.foot-brand .brand-mark{box-shadow:none}
.foot-social a{transition:.2s}
.foot-social a:hover{transform:translateY(-2px)}

.wa-fab{
  width:60px;height:60px;
  right:22px;bottom:22px;
  border:4px solid #fff;
  box-shadow:0 12px 30px rgba(0,0,0,.22);
  transition:transform .2s ease;
}
.wa-fab:hover{transform:scale(1.08)}

@media (max-width:960px){
  .hero-grid{grid-template-columns:1fr;gap:48px}
  .hero-copy{order:2}
  .hero-visual{order:1;max-width:520px;width:100%;margin:auto}
  nav.primary{
    border-left:1px solid #e6eaf0;
    padding:90px 30px 30px;
  }
}
@media (max-width:860px){
  .about-grid{gap:70px}
  .contact-grid{gap:40px}
}
@media (max-width:700px){
  .wrap{padding-left:18px;padding-right:18px}
  .section{padding:68px 0}
  .topstrip .wrap{padding-left:18px;padding-right:18px}
  .topstrip-left{gap:8px 16px}
  .topstrip-right{display:none}
  .hero-grid{padding:56px 0 62px}
  .hero h1{font-size:clamp(2.35rem,11vw,3.25rem)}
  .hero .lede{font-size:1rem}
  .hero-stats{gap:24px;margin-top:38px}
  .hero-badge{left:8px;bottom:-18px;font-size:.88rem}
  .pillars{grid-template-columns:1fr}
  .pillar{padding:27px}
  .gallery-grid{gap:8px;grid-auto-rows:75px}
  .faculty-grid{gap:12px}
  .faculty-card{padding:7px 7px 14px}
  .faculty-card h4{font-size:.92rem}
  .faculty-card .subj{font-size:.76rem}
  .topper-row{grid-template-columns:1fr 1fr}
  .topper-card{padding:22px 17px}
  .topper-card h4{font-size:.95rem}
  .principal-card,.cal-card,form.contact-form{padding:27px}
}
@media (max-width:480px){
  .brand-text .name{font-size:.9rem}
  .brand-text .sub{font-size:.6rem}
  .brand-mark{width:42px;height:42px}
  .hero-photo{border-width:5px}
  .hero-stats{display:grid;grid-template-columns:1fr 1fr;gap:18px}
  .hero-stats div:last-child{grid-column:1/-1}
  .hero .actions .btn{width:100%;justify-content:center}
  .about-photos .float{right:-5px;bottom:-25px;width:48%}
  .topper-row{grid-template-columns:1fr}
  .principal-contacts{grid-template-columns:1fr}
  .cal-item{grid-template-columns:65px 1fr;gap:12px}
  .cta-band .wrap{align-items:flex-start}
  .cta-band .actions{width:100%;flex-direction:column}
  .cta-band .actions .btn{width:100%;justify-content:center}
  .wa-fab{width:54px;height:54px;right:15px;bottom:15px}
}

/* subtle reveal */
@media (prefers-reduced-motion:no-preference){
  .hero-copy{animation:heroIn .7s ease both}
  .hero-visual{animation:visualIn .8s .08s ease both}
  @keyframes heroIn{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
  @keyframes visualIn{from{opacity:0;transform:translateY(25px) scale(.98)}to{opacity:1;transform:none}}
}

/* school-logo-theme */
/* ===== Official school logo integration ===== */
  :root{
    --brand-blue:#0756a6;
    --brand-blue-deep:#063c7a;
    --brand-purple:#4c1677;
    --brand-yellow:#f4d000;
    --brand-sky:#eaf4ff;
  }

  .topstrip{
    background:linear-gradient(90deg,var(--brand-blue-deep),var(--brand-blue));
  }

  .site{
    background:rgba(255,255,255,.96);
    border-bottom:1px solid rgba(7,86,166,.12);
  }

  .nav-row{
    min-height:82px;
  }

  .brand{
    gap:14px;
    min-width:0;
  }

  .school-logo{
    display:block;
    width:184px;
    height:auto;
    max-height:60px;
    object-fit:contain;
    object-position:left center;
    flex:0 0 auto;
  }

  .brand-text{
    border-left:1px solid rgba(7,86,166,.18);
    padding-left:14px;
  }

  .brand-text .name{
    color:var(--brand-blue-deep);
    font-weight:800;
  }

  .brand-text .sub{
    color:#64748b;
  }

  .primary a:hover,
  .primary a.active{
    color:var(--brand-blue);
  }

  .btn-primary{
    background:linear-gradient(135deg,var(--brand-blue),var(--brand-blue-deep));
  }

  .btn-primary:hover{
    background:linear-gradient(135deg,var(--brand-blue-deep),var(--brand-blue));
  }

  .btn-ghost{
    border-color:rgba(7,86,166,.28);
    color:var(--brand-blue-deep);
  }

  .btn-ghost:hover{
    background:var(--brand-blue);
    border-color:var(--brand-blue);
    color:#fff;
  }

  .hero{
    background:
      radial-gradient(circle at 90% 12%, rgba(244,208,0,.25), transparent 25%),
      radial-gradient(circle at 8% 80%, rgba(76,22,119,.18), transparent 28%),
      linear-gradient(135deg,#f7fbff 0%,#eef6ff 55%,#fffdf1 100%);
  }

  .hero h1{
    color:var(--brand-blue-deep);
  }

  .hero h1::after{
    background:linear-gradient(90deg,var(--brand-yellow),var(--brand-purple),var(--brand-blue));
  }

  .eyebrow{
    color:var(--brand-purple);
  }

  .stat strong{
    color:var(--brand-blue);
  }

  .section-head h2{
    color:var(--brand-blue-deep);
  }

  .section-head h2::after{
    background:linear-gradient(90deg,var(--brand-yellow),var(--brand-purple));
  }

  .pillar-card:hover,
  .life-card:hover,
  .faculty-card:hover,
  .testimonial:hover{
    border-color:rgba(7,86,166,.18);
    box-shadow:0 18px 45px rgba(7,60,122,.13);
  }

  .pillar-icon,
  .feature-icon{
    background:linear-gradient(135deg,#fff9c9,#eef6ff);
    color:var(--brand-blue);
    border-color:rgba(7,86,166,.12);
  }

  .about-tag,
  .badge,
  .calendar .tag{
    background:linear-gradient(135deg,#fff9c9,#f8f0ff);
    border-color:rgba(76,22,119,.15);
  }

  .quote-mark{
    color:var(--brand-purple);
  }

  .cta{
    background:
      radial-gradient(circle at 85% 20%,rgba(244,208,0,.25),transparent 25%),
      linear-gradient(135deg,var(--brand-blue-deep),var(--brand-purple));
  }

  .footer{
    background:#062f61;
  }

  .whatsapp{
    box-shadow:0 12px 30px rgba(7,86,166,.28);
  }

  @media (max-width:960px){
    .school-logo{width:168px}
    .brand-text{display:none}
  }

  @media (max-width:700px){
    .nav-row{min-height:72px}
    .school-logo{width:158px;max-height:52px}
    .brand{gap:8px}
  }

  @media (max-width:480px){
    .school-logo{width:145px;max-height:48px}
  }

/* complete-school-navigation */
header.site { background:#fff; box-shadow:0 8px 28px #14213d0a; backdrop-filter:none; }
  header.site .nav-row { display:grid; grid-template-columns:1fr auto; gap:0 24px; padding-top:17px; padding-bottom:0; }
  header.site .brand { grid-column:1; grid-row:1; justify-self:start; margin-bottom:17px; }
  header.site .nav-cta { grid-column:2; grid-row:1; align-self:center; margin-bottom:17px; }
  header.site .header-admission { font-size:13px; padding:12px 20px; border-radius:8px; background:#12365b; color:#fff; box-shadow:0 5px 14px #0756a61a; }
  header.site .header-admission:hover { background:#0756a6; }
  header.site nav.primary { grid-column:1 / -1; grid-row:2; width:100%; position:relative; inset:auto; padding:0 10px; margin-bottom:12px; transform:none; max-width:none; background:#12365b; box-shadow:0 6px 16px #12365b18; border:1px solid #23496f; border-radius:10px; }
  header.site nav.primary .menu-list { display:flex; flex-direction:row; align-items:center; justify-content:space-between; gap:2px; padding:7px 0; }
  header.site nav.primary .menu-list>li { position:relative; flex-shrink:0; }
  header.site nav.primary .menu-list>li>a, header.site .menu-item-row>a { display:block; padding:13px 10px; font-size:12px; font-weight:600; line-height:1.5; color:#eef4fc; white-space:nowrap; border:0; border-radius:6px; }
  header.site nav.primary a:hover { color:#fff; background:#254b72; border-color:transparent; }
  header.site nav.primary a.active { color:#12365b; background:#f5d77c; }
  header.site .menu-item-row { display:flex; align-items:center; gap:0; border-radius:7px; transition:background .18s ease; }
  header.site .menu-item-row:hover,header.site .expanded .menu-item-row { background:#254b72; }
  header.site .menu-item-row>a { padding-right:2px; }
  header.site .submenu-toggle>span { display:block; width:7px; height:7px; font-size:0; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:translateY(-2px) rotate(45deg); transition:transform .18s ease; }
  header.site .submenu-toggle { display:grid; place-items:center; flex:0 0 30px; width:30px; height:44px; padding:0; border:0; border-radius:7px; background:transparent; color:#d0e0f1; cursor:pointer; }
  header.site .submenu-toggle:hover,header.site .submenu-toggle[aria-expanded=true] { background:#355e85; color:#fff; }
  header.site .submenu-toggle[aria-expanded=true]>span { transform:translateY(2px) rotate(225deg); }
  header.site nav.primary .submenu { position:absolute; top:calc(100% + 8px); left:0; min-width:255px; display:flex; flex-direction:column; align-items:stretch; gap:4px; padding:10px; background:#fff; border:1px solid #e3eaf2; border-top:3px solid #d4ae48; border-radius:8px; box-shadow:0 18px 45px -8px #14213d40; }
  header.site nav.primary .submenu::before { content:""; position:absolute; left:0; right:0; top:-10px; height:10px; }
  header.site nav.primary .submenu[hidden],.menu-backdrop[hidden] { display:none; }
  header.site nav.primary .submenu a { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:44px; padding:12px 14px; font-size:13px; font-weight:500; line-height:1.5; color:#344054; border:0; border-radius:7px; white-space:normal; transition:background .18s ease,color .18s ease; }
  header.site nav.primary .submenu a::after { content:""; width:6px; height:6px; flex-shrink:0; border-top:1.5px solid currentColor; border-right:1.5px solid currentColor; transform:rotate(45deg); opacity:.5; }
  header.site nav.primary .submenu a:hover,header.site nav.primary .submenu a:focus-visible { background:#edf4fc; color:var(--brand-blue-deep); }
  .mobile-menu-heading,header.site .mobile-admission,.menu-backdrop { display:none; }
  header.site .burger { display:none; }
  header.site a:focus-visible,header.site button:focus-visible { outline:3px solid var(--brand-blue); outline-offset:3px; }
  header.site nav.primary a:focus-visible,header.site nav.primary button:focus-visible { outline-color:#d4ae48; outline-offset:1px; }
  @media(max-width:1100px) {
    header.site .nav-row { display:flex; justify-content:space-between; padding-top:14px; padding-bottom:14px; gap:15px; min-height:80px; }
    header.site .brand,header.site .nav-cta { margin-bottom:0; }
    header.site .brand-text { display:none; }
    header.site nav.primary { visibility:hidden; position:fixed; inset:0 0 0 auto; grid-column:auto; width:min(390px,92vw); height:100vh; height:100dvh; max-height:none; padding:24px 20px max(24px,env(safe-area-inset-bottom)); overflow:auto; overscroll-behavior:contain; transform:translateX(100%); transition:transform .2s ease,visibility .2s; z-index:80; border:0; border-top:4px solid var(--brand-blue); box-shadow:-15px 0 45px #14213d26; }
    header.site nav.primary.open { visibility:visible; transform:translateX(0); }
    header.site nav.primary { border-radius:0; margin-bottom:0; border-top-color:#f5d77c; }
    header.site .mobile-menu-heading { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:20px; padding-bottom:20px; border-bottom:1px solid #ffffff26; font-size:18px; color:#fff; font-weight:700; }
    header.site .menu-close { border:1px solid #dbe4ee; border-radius:5px; background:#f4f7fb; color:var(--brand-blue-deep); font:600 12px/1.5 Inter,system-ui,sans-serif; padding:10px 12px; cursor:pointer; }
    header.site .menu-close span { font-size:18px; margin-left:5px; }
    header.site nav.primary .menu-list { flex-direction:column; align-items:stretch; gap:5px; padding:0; }
    header.site nav.primary .menu-list>li { border-bottom:0; }
    header.site nav.primary .menu-list>li>a,header.site .menu-item-row>a { padding:14px 12px; border:0; font-size:14px; }
    header.site .menu-item-row { justify-content:space-between; gap:12px; }
    header.site .menu-item-row>a { flex:1; }
    header.site .submenu-toggle { width:44px; height:44px; background:#254b72; flex:0 0 44px; }
    header.site nav.primary .submenu::before { display:none; }
    header.site nav.primary .submenu { position:static; min-width:0; width:100%; padding:6px 10px; margin-bottom:12px; background:#f3f7fc; border:0; border-left:2px solid var(--brand-blue); border-radius:0 5px 5px 0; box-shadow:none; gap:0; }
    header.site nav.primary .submenu a { padding:12px 10px; font-size:13px; }
    header.site .mobile-admission { display:flex; margin-top:24px; justify-content:center; font-size:13px; border-radius:8px; background:#f5d77c; color:#12365b; }
    header.site .mobile-admission:hover { background:#ffe5a0; color:#12365b; }
    header.site .burger { display:flex; align-items:center; gap:10px; border:1px solid #d8e2ee; border-radius:5px; background:#f6f9fc; color:var(--brand-blue-deep); padding:10px 12px; min-height:44px; }
    header.site .burger .burger-label { display:inline; width:auto; height:auto; margin:0; background:none; font:600 12px/1.5 Inter,system-ui,sans-serif; }
    header.site .burger .burger-lines { display:flex; flex-direction:column; gap:4px; width:19px; height:auto; margin:0; background:none; }
    header.site .burger i { display:block; height:2px; width:19px; background:var(--brand-blue-deep); }
    .menu-backdrop:not([hidden]) { display:block; position:fixed; inset:0; z-index:49; background:#10243a99; backdrop-filter:blur(3px); }
    body.menu-open { overflow:hidden; }
    body.menu-open header.site { backdrop-filter:none; }
  }
  @media(max-width:580px) { header.site .header-admission { display:none; } header.site .nav-row { padding-inline:20px; min-height:74px; } header.site .school-logo { width:154px; } }
  @media(prefers-reduced-motion:reduce) { header.site nav.primary { transition:none; } }

/* school-banner */
.hero { background:linear-gradient(110deg,#fcfaf5 0%,#f8f9fa 56%,#e8eff5 100%); color:#12365b; border-bottom:1px solid #e1e8ef; }
  .hero::before { background:none; }
  .hero .hero-grid { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:54px; padding:54px 28px 60px; align-items:center; }
  .hero .hero-copy { order:0; min-width:0; }
  .hero-kicker { display:inline-flex; align-items:center; gap:9px; margin-bottom:22px; padding:8px 12px; border:1px solid #d9e2eb; border-radius:30px; background:#ffffffb3; color:#476079; font-size:.65rem; font-weight:700; letter-spacing:.045em; text-transform:uppercase; }
  .hero-kicker>span { width:8px; height:8px; flex-shrink:0; border-radius:50%; background:#b58a28; box-shadow:0 0 0 4px #b58a2814; }
  .hero h1 { max-width:16ch; color:#12365b; font-size:clamp(2.7rem,4.4vw,4.1rem); line-height:1.1; letter-spacing:-.04em; text-wrap:balance; }
  .hero h1 em { color:#956d18; font-weight:500; }
  .hero h1::after { display:none; }
  .hero .lede { max-width:46ch; margin-top:20px; font-size:.98rem; line-height:1.8; color:#536477; }
  .hero-school-name { margin-bottom:12px; font-size:.8rem; font-weight:600; color:#536477; }
  .hero .actions { gap:12px; margin-top:30px; }
  .hero .actions .btn { min-height:50px; padding:13px 18px; border-radius:7px; font-size:.85rem; justify-content:center; }
  .hero .btn-primary { background:#12365b; color:#fff; box-shadow:0 6px 16px #12365b18; }
  .hero .btn-primary:hover { background:#0756a6; }
  .hero .btn-ghost-light { background:transparent; border-color:#c8d3de; color:#12365b; }
  .hero .btn-ghost-light:hover { background:#fff; border-color:#12365b; }
  .hero .hero-stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin-top:30px; padding:20px 0 0; border-top:1px solid #dce4ec; }
  .hero .hero-stats div { border:0; padding:0; }
  .hero .hero-stats .num { font-family:'Inter',sans-serif; font-size:.88rem; font-weight:700; color:#12365b; }
  .hero .hero-stats .lbl { font-size:.72rem; color:#607185; margin-top:5px; }
  .hero .hero-stats>div:last-child { grid-column:auto; }
  .hero .hero-visual { order:0; min-width:0; width:100%; max-width:none; padding:12px 12px 0; margin:0; background:#fff; border:1px solid #dce5ed; border-radius:22px; box-shadow:0 24px 55px -25px #12365b40; }
  .hero .hero-photo { aspect-ratio:1.12; border:0; border-radius:13px; box-shadow:none; background:#274563; }
  .hero .hero-photo img { object-position:center; }
  .hero .hero-photo::after { background:linear-gradient(180deg,transparent 40%,#0a203ad9 100%); }
  .hero-photo-caption { position:absolute; z-index:1; bottom:24px; left:26px; right:24px; color:#fff; }
  .hero-photo-caption>span { color:#f5d77c; font-size:.65rem; letter-spacing:.15em; font-weight:700; }
  .hero-photo-caption strong { display:block; margin-top:10px; font-family:'Fraunces',serif; font-size:clamp(1.3rem,2.2vw,1.8rem); font-weight:500; line-height:1.35; }
  .hero .hero-badge { position:relative; display:flex; align-items:center; gap:14px; left:auto; right:auto; bottom:auto; max-width:none; padding:20px 10px; border:0; border-radius:10px; background:#fff; color:#12365b; box-shadow:none; font-family:'Inter',sans-serif; }
  .hero .hero-badge::after { content:'→'; margin-left:auto; font-size:1.4rem; color:#12365b; }
  .hero-badge-icon { display:grid; place-items:center; flex:0 0 42px; height:42px; border-radius:50%; background:#f9efd3; color:#876117; font-size:1.4rem; }
  .hero-badge small { display:block; font-size:.68rem; color:#607185; font-weight:400; margin-bottom:5px; }
  .hero-badge strong { font-size:.95rem; }
  .hero .hero-badge:hover { border-color:#b58a28; }
  .hero::before { inset:-160px -100px auto auto; width:520px; height:520px; border-radius:50%; background:radial-gradient(circle,#d7e8f5 0%,#e4edf580 45%,transparent 70%); opacity:.8; pointer-events:none; }
  .hero::after { content:""; position:absolute; width:210px; height:210px; left:-130px; bottom:15px; border:1px solid #bd943338; border-radius:50%; box-shadow:0 0 0 30px #bd943308,0 0 0 60px #bd943305; pointer-events:none; }
  .hero .hero-copy,.hero .hero-visual { animation:none; }
  .hero-motion-control { display:inline-flex; align-items:center; gap:7px; margin-top:18px; padding:7px 10px; border:1px solid #dce4ec; border-radius:20px; background:#ffffffb3; color:#536477; font:500 .68rem/1.4 'Inter',sans-serif; cursor:pointer; }
  .hero-motion-control:hover { background:#fff; border-color:#8da5ba; }
  .hero-motion-control[hidden] { display:none; }
  .hero .actions .btn { transition:transform .2s ease,background .2s ease,box-shadow .2s ease; }
  .hero .actions .btn:hover { transform:translateY(-3px); box-shadow:0 9px 20px #12365b20; }
  @media all {
    .hero.motion-enabled .hero-copy>*:not(.hero-motion-control) { animation:banner-reveal .8s both; }
    .hero .hero-copy h1 { animation-delay:.1s; }
    .hero .hero-copy .lede { animation-delay:.2s; }
    .hero .hero-copy .actions { animation-delay:.3s; }
    .hero .hero-copy .hero-stats { animation-delay:.4s; }
    .hero.motion-enabled .hero-visual { animation:banner-reveal 1s .2s both; }
    .hero.motion-enabled::before { animation:banner-glow 7s ease-in-out infinite alternate; }
    .hero.motion-enabled::after { animation:banner-float 5s ease-in-out infinite; }
    .hero.motion-enabled .hero-photo img { animation:banner-photo 7s ease-in-out infinite alternate; }
    .hero.motion-enabled .hero-badge-icon { animation:banner-float 3s ease-in-out infinite; }
    .hero.motion-enabled .hero-kicker>span { animation:banner-pulse 2s ease-in-out infinite; }
    .hero.motion-paused .hero-photo img, .hero.motion-paused .hero-badge-icon, .hero.motion-paused .hero-kicker>span, .hero.motion-paused::before, .hero.motion-paused::after { animation-play-state:paused !important; }
    @keyframes banner-reveal { from { opacity:0; transform:translateY(20px); } to { opacity:1; transform:translateY(0); } }
    @keyframes banner-float { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-8px); } }
    @keyframes banner-photo { from { transform:scale(1); } to { transform:scale(1.12); } }
    @keyframes banner-glow { from { transform:translate(0,0) scale(1); } to { transform:translate(-90px,60px) scale(1.15); } }
    @keyframes banner-pulse { 0%,100% { box-shadow:0 0 0 4px #b58a2814; } 50% { box-shadow:0 0 0 9px #b58a2808; } }
  }
  @media(prefers-reduced-motion:reduce) { .hero .actions .btn:hover { transform:none; } }
  /* Explicit playback remains available when the visitor requests it. */
  @media(prefers-reduced-motion:reduce) {
    .hero.motion-enabled .hero-photo img { animation-duration:7s !important; }
    .hero.motion-enabled .hero-badge-icon { animation-duration:3s !important; }
    .hero.motion-enabled .hero-kicker>span { animation-duration:2s !important; }
  }
  @media(max-width:960px) {
    .hero .hero-grid { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:28px; padding:42px 24px 48px; }
    .hero h1 { font-size:clamp(2.4rem,4.8vw,3.4rem); }
    .hero .hero-photo { aspect-ratio:4/5; border-top-left-radius:13px; }
    .hero .hero-stats { gap:10px; }
    .hero .hero-stats .num { font-size:.75rem; }
  }
  @media(max-width:760px) {
    .hero .hero-grid { grid-template-columns:minmax(0,1fr); gap:28px; padding:32px 20px 40px; }
    .hero-kicker { font-size:.62rem; letter-spacing:.045em; margin-bottom:20px; }
    .hero h1 { font-size:clamp(2.6rem,9vw,3.5rem); }
    .hero .lede { margin-top:20px; font-size:.95rem; }
    .hero .actions .btn { flex:1 1 190px; width:auto; }
    .hero .hero-stats { margin-top:28px; }
    .hero .hero-visual { max-width:560px; margin:auto; padding:8px 8px 0; border-radius:17px; }
    .hero .hero-photo { aspect-ratio:4/3; border-top-left-radius:13px; }
    .hero-photo-caption { left:20px; bottom:20px; }
    .hero .hero-badge { left:auto; right:auto; padding:16px 8px; }
  }
  @media(max-width:380px) {
    .hero .hero-grid { padding-inline:16px; }
    .hero-kicker { font-size:.56rem; }
    .hero .hero-stats { gap:8px; }
    .hero .hero-stats .num { font-size:.7rem; }
    .hero .hero-stats .lbl { font-size:.65rem; }
    .hero-badge strong { font-size:.85rem; }
  }

/* school-hero-slider */
.hero .hero-photo{position:relative;overflow:hidden}
  .hero .hero-photo .slide-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .65s ease}
  .hero .hero-photo .slide-image.is-active{opacity:1}
  .hero .slider-controls{position:absolute;z-index:4;left:50%;bottom:22px;transform:translateX(-50%);display:flex;gap:9px;padding:7px 10px;border-radius:30px;background:#10243aaa;backdrop-filter:blur(5px)}
  .hero .slider-dot{width:12px;height:12px;padding:0;border:2px solid #fff;border-radius:50%;background:transparent;cursor:pointer}
  .hero .slider-dot[aria-current="true"]{background:#f5d77c;border-color:#f5d77c}
  .hero .slider-dot:focus-visible{outline:3px solid #f5d77c;outline-offset:3px}
  @media(prefers-reduced-motion:reduce){.hero .hero-photo .slide-image{transition:none}}

/* gallery-refresh */
#gallery { background:#f5f8fb; }
  #gallery .section-head { max-width:680px; margin-bottom:32px; }
  #gallery .gallery-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); grid-auto-rows:auto; gap:22px; background:none; }
  #gallery .gallery-grid a { position:relative; display:block; grid-column:auto; grid-row:auto; aspect-ratio:4/3; border:6px solid #fff; border-radius:16px; background:#e5edf5; box-shadow:0 6px 24px #12365b0d; isolation:isolate; }
  #gallery .gallery-grid img { width:100%; height:100%; object-fit:cover; object-position:center; transition:transform .4s ease; }
  #gallery .gallery-grid a::after { content:"View photo ↗"; position:absolute; right:14px; bottom:14px; padding:8px 12px; border:1px solid #ffffff55; border-radius:30px; background:#12365be6; color:#fff; font-size:.72rem; font-weight:600; pointer-events:none; }
  #gallery .gallery-grid a:hover img,#gallery .gallery-grid a:focus-visible img { transform:scale(1.05); }
  #gallery .gallery-grid a:focus-visible { outline:3px solid #0756a6; outline-offset:4px; }
  .gallery-viewer { width:min(1000px,94vw); max-width:94vw; max-height:92vh; max-height:92dvh; padding:16px; border:1px solid #dce4ec; border-radius:16px; background:#fff; color:#12365b; box-shadow:0 30px 100px #0005; }
  .gallery-viewer::backdrop { background:#071a30d9; backdrop-filter:blur(5px); }
  .gallery-viewer-bar,.gallery-viewer-footer { display:flex; align-items:center; justify-content:space-between; gap:12px; }
  .gallery-viewer-bar { margin-bottom:14px; }
  .gallery-viewer-bar h2 { font-size:1.15rem; }
  .gallery-viewer button { min-width:44px; min-height:44px; padding:10px 15px; border:1px solid #dbe4ee; border-radius:8px; background:#f2f6fa; color:#12365b; font:600 .8rem 'Inter',sans-serif; cursor:pointer; }
  .gallery-viewer button:hover { background:#e3edf8; }
  .gallery-viewer-image { display:block; width:100%; height:min(65vh,650px); height:min(65dvh,650px); object-fit:contain; background:#edf2f7; border-radius:9px; }
  .gallery-viewer-footer { margin-top:14px; font-size:.8rem; }
  body.gallery-open { overflow:hidden; }
  @media(max-width:900px) { #gallery .gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; } }
  @media(max-width:540px) { #gallery .gallery-grid { grid-template-columns:1fr; gap:18px; } .gallery-viewer { padding:12px; } .gallery-viewer-bar h2 { font-size:1rem; } .gallery-viewer-image { height:58vh; height:58dvh; } }

/* management-cards */
#about { padding-bottom:44px; }
  #management { padding-top:24px; padding-bottom:32px; background:linear-gradient(180deg,#f5f8fb,#fff); }
  #life { padding-top:42px; }
  #management .section-head { max-width:none; margin:0 auto 40px; text-align:center; }
  #management .section-head h2 { white-space:nowrap; }
  #management .eyebrow { justify-content:center; }
  #management .section-head h2::after { margin-inline:auto; }
  #management .messages { grid-template-columns:repeat(2,minmax(0,1fr)); gap:26px; border:0; background:transparent; }
  #management .msg-card { position:relative; overflow:hidden; gap:0; padding:0; background:#fff; border:1px solid #dfe7ef; border-radius:18px; box-shadow:0 12px 36px #12365b09; transition:transform .25s ease,box-shadow .25s ease; }
  #management .msg-card:hover { transform:translateY(-4px); box-shadow:0 20px 40px #12365b14; }
  #management .msg-top { position:relative; gap:20px; padding:30px; border-top:4px solid #12365b; border-bottom:1px solid #e3eaf1; background:linear-gradient(120deg,#eef4fa,#fafcfe); }
  #management .msg-card:nth-child(2) .msg-top { border-top-color:#b58a28; background:linear-gradient(120deg,#faf5e9,#fefdf9); }
  #management .msg-photo { width:96px; height:112px; border:4px solid #fff; border-radius:12px; box-shadow:0 5px 14px #12365b14; background:#e2eaf1; }
  #management .msg-photo img { object-fit:cover; object-position:center top; }
  #management .msg-role { display:inline-block; padding:5px 9px; background:#fff; border:1px solid #dce5ee; border-radius:5px; font-size:.62rem; font-weight:700; letter-spacing:.09em; color:#476079; }
  #management .msg-name { margin-top:12px; color:#12365b; font-size:clamp(1.2rem,2vw,1.55rem); line-height:1.25; }
  #management .msg-quote { padding:15px 30px 0; color:#ba9138; font-family:Georgia,serif; font-size:3.2rem; height:54px; line-height:1; }
  #management .msg-card p.body { display:block; padding:12px 30px 28px; color:#536477; font-size:.92rem; line-height:1.85; overflow:visible; }
  #management .msg-footer { display:flex; align-items:center; justify-content:space-between; gap:14px; margin: auto 30px 0; padding:20px 0; border-top:1px solid #e5ebf1; }
  #management .msg-footer>span { color:#65758a; font-size:.72rem; }
  #management .msg-card .more { padding:0; color:#12365b; font-size:.76rem; font-weight:700; white-space:nowrap; }
  #management .msg-card .more:hover { color:#0756a6; text-decoration:underline; text-underline-offset:4px; }
  @media(max-width:800px) { #management .section-head h2 { white-space:normal; } #management .messages { grid-template-columns:1fr; max-width:600px; margin:auto; gap:22px; } #life { padding-top:32px; } }
  @media(max-width:480px) {
    #management .section-head { text-align:left; margin-bottom:28px; }
    #management .eyebrow { justify-content:flex-start; }
    #management .section-head h2::after { margin-left:0; }
    #management .msg-top { gap:14px; padding:22px 20px; }
    #management .msg-photo { width:78px; height:94px; }
    #management .msg-name { font-size:1.18rem; }
    #management .msg-role { font-size:.56rem; letter-spacing:.05em; }
    #management .msg-quote { padding-left:20px; }
    #management .msg-card p.body { padding:12px 20px 24px; font-size:.88rem; }
    #management .msg-footer { margin-inline:20px; flex-wrap:wrap; gap:8px; }
  }
  @media(prefers-reduced-motion:reduce) { #management .msg-card:hover { transform:none; } }

/* faculty-refresh */
#faculty { padding:56px 0; background:#fff; }
  #faculty .section-head { display:grid; grid-template-columns:1fr 1fr; gap:10px 48px; max-width:none; margin-bottom:30px; align-items:end; }
  #faculty .eyebrow { grid-column:1 / -1; margin:0; }
  #faculty .section-head .desc { margin:0; max-width:46ch; font-size:.94rem; line-height:1.7; }
  #faculty .faculty-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:22px; }
  #faculty .faculty-card { --faculty-accent:#12365b; padding:0; border:1px solid #e0e7ee; border-radius:16px; background:#fff; box-shadow:0 5px 20px #12365b06; transition:transform .25s ease,box-shadow .25s ease; }
  #faculty .faculty-card:nth-child(2) { --faculty-accent:#34695d; }
  #faculty .faculty-card:nth-child(3) { --faculty-accent:#796035; }
  #faculty .faculty-card:nth-child(4) { --faculty-accent:#655281; }
  #faculty .faculty-card:hover { transform:translateY(-5px); box-shadow:0 16px 32px #12365b14; border-color:#c7d5e2; }
  #faculty .faculty-photo { position:relative; aspect-ratio:4/5; margin:10px 10px 0; border-radius:10px; overflow:hidden; background:linear-gradient(145deg,#eef3f8,#dce6ee); box-shadow:none; }
  #faculty .faculty-photo img { width:100%; height:100%; object-fit:cover; object-position:center top; transition:transform .4s ease; }
  #faculty .faculty-card:hover img { transform:scale(1.035); }
  #faculty .faculty-photo::after { content:attr(data-subject); position:absolute; bottom:12px; left:12px; right:12px; width:fit-content; max-width:calc(100% - 24px); padding:6px 10px; background:#fffffff2; color:var(--faculty-accent); border:1px solid #ffffff80; border-radius:6px; font-size:.65rem; font-weight:700; letter-spacing:.025em; }
  #faculty .faculty-details { padding:20px; border-bottom:3px solid var(--faculty-accent); }
  #faculty .faculty-card h3 { padding:0; margin:0; font-size:1.2rem; line-height:1.3; color:#12365b; }
  #faculty .faculty-card .subj { margin-top:7px; padding:0; font-size:.78rem; line-height:1.5; color:#607185; }
  #faculty .faculty-label { display:flex; align-items:center; gap:7px; margin-top:16px; padding-top:13px; border-top:1px solid #e8edf2; color:#65758a; font-size:.65rem; letter-spacing:.035em; }
  #faculty .faculty-label::before { content:''; width:6px; height:6px; border-radius:50%; background:var(--faculty-accent); }
  @media(max-width:960px) { #faculty .faculty-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; } #faculty .faculty-photo { aspect-ratio:1; } }
  @media(max-width:600px) { #faculty { padding:40px 0; } #faculty .section-head { grid-template-columns:1fr; gap:12px; } #faculty .faculty-grid { gap:12px; } #faculty .faculty-details { padding:15px 12px; } #faculty .faculty-card h3 { font-size:1rem; } #faculty .faculty-photo { margin:7px 7px 0; aspect-ratio:4/5; } #faculty .faculty-photo::after { left:7px; bottom:7px; padding:5px 7px; font-size:.58rem; max-width:calc(100% - 14px); } }
  @media(max-width:360px) { #faculty .faculty-grid { grid-template-columns:1fr; } #faculty .faculty-photo { aspect-ratio:1; } }
  @media(prefers-reduced-motion:reduce) { #faculty .faculty-card:hover,#faculty .faculty-card:hover img { transform:none; } }
  #faculty .faculty-carousel { overflow:hidden; padding:8px 0 24px; }
  #faculty .faculty-track { display:flex; width:max(100%,900px); animation:faculty-scroll 32s linear infinite; will-change:transform; }
  #faculty .faculty-track .faculty-grid { flex:0 0 100%; width:100%; min-width:0; grid-template-columns:repeat(4,minmax(0,1fr)); gap:22px; padding-right:22px; }
  #faculty .faculty-track .faculty-photo { aspect-ratio:4/5; }
  #faculty .faculty-track.is-paused { animation-play-state:paused; }
  @media(hover:hover) { #faculty .faculty-carousel:hover .faculty-track { animation-play-state:paused; } }
  #faculty .faculty-scroll-control { display:block; margin:0 0 0 auto; padding:9px 14px; min-height:40px; border:1px solid #dce4ec; border-radius:7px; background:#fff; color:#12365b; font:500 .75rem 'Inter',sans-serif; cursor:pointer; }
  @keyframes faculty-scroll { from { transform:translateX(0); } to { transform:translateX(-100%); } }
  @media(prefers-reduced-motion:reduce) {
    #faculty .faculty-track { display:block; width:100%; animation:none; transform:none; will-change:auto; }
    #faculty .faculty-track .faculty-grid { padding-right:0; }
    #faculty .faculty-track .faculty-grid[aria-hidden=true],#faculty .faculty-scroll-control { display:none; }
  }
  @media(prefers-reduced-motion:reduce) and (max-width:960px) { #faculty .faculty-track .faculty-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
  @media(prefers-reduced-motion:reduce) and (max-width:360px) { #faculty .faculty-track .faculty-grid { grid-template-columns:1fr; } }

/* header-notice-bar */
:root { --notice-height:58px; }
  .notice-bar { position:relative; display:flex; align-items:stretch; min-width:0; height:46px; background:#f2f6fa; color:#12365b; border:1px solid #dce5ed; border-radius:9px; overflow:hidden; }
  .notice-label { display:flex; align-items:center; gap:7px; flex-shrink:0; padding:0 14px; background:#f5d77c; color:#12365b; font-size:.68rem; font-weight:800; letter-spacing:.07em; }
  .notice-label svg { width:20px; height:20px; }
  .notice-window { min-width:0; flex:1; overflow:hidden; display:flex; align-items:center; }
  .notice-track { display:flex; width:max-content; flex-shrink:0; animation:notice-scroll 38s linear infinite; }
  .notice-items { display:flex; flex-shrink:0; align-items:center; gap:38px; padding:0 38px 0 0; }
  .notice-items li { display:flex; align-items:center; gap:12px; white-space:nowrap; font-size:.76rem; font-weight:600; }
  .notice-items li::before { content:''; width:5px; height:5px; border-radius:50%; background:#f5d77c; }
  .notice-items a:hover { text-decoration:underline; text-underline-offset:4px; }
  .notice-bar a:focus-visible,.notice-bar button:focus-visible { outline:2px solid #f5d77c; outline-offset:3px; }
  .notice-pause { align-self:center; flex-shrink:0; width:30px; height:30px; margin:0 8px; border:1px solid #cbd9e6; border-radius:6px; color:#12365b; background:#fff; font-size:13px; cursor:pointer; }
  .notice-bar.is-paused .notice-track,.notice-bar:has(.notice-items a:focus-visible) .notice-track { animation-play-state:paused; }
  .notice-bar:focus-within .notice-window { overflow-x:auto; }
  .wa-fab { width:58px; height:58px; right:22px; bottom:calc(env(safe-area-inset-bottom) + 18px); z-index:41; background:#25d366; border:3px solid #fff; box-shadow:0 6px 22px #075e5433; }
  .wa-fab svg { width:32px; height:32px; fill:#fff; }
  @keyframes notice-scroll { from { transform:translateX(0); } to { transform:translateX(-50%); } }
  @media(max-width:600px) { :root { --notice-height:50px; } .notice-label { padding:0 12px; font-size:.65rem; gap:6px; } .notice-label svg { width:16px; height:16px; } .notice-items li { font-size:.75rem; } .notice-pause { margin-inline:7px; width:32px; height:32px; } .wa-fab { right:14px; width:52px; height:52px; } }
  @media(prefers-reduced-motion:reduce) { .notice-track { animation:none; } .notice-window { overflow-x:auto; } .notice-items[aria-hidden=true],.notice-pause { display:none; } }

/* footer-social-icons */
footer .foot-social { gap:12px; }
  footer .foot-social a { width:44px; height:44px; flex-shrink:0; border:1px solid #ffffff45; border-radius:11px; background:#ffffff12; color:#fff; }
  footer .foot-social svg { display:block; width:23px; height:23px; }
  footer .foot-social a[aria-label="Facebook"]:hover { background:#1877f2; border-color:#1877f2; color:#fff; }
  footer .foot-social a[aria-label="YouTube"]:hover { background:#c90000; border-color:#c90000; color:#fff; }
  footer .foot-social a[aria-label="Instagram"]:hover { background:#b32e79; border-color:#b32e79; color:#fff; }
  footer .foot-social a:focus-visible { outline:3px solid #f5d77c; outline-offset:4px; }

/* immersive-school-banner */
.hero.hero-immersive { background:#0b223d; color:#fff; border:0; }
  .hero.hero-immersive::before,.hero.hero-immersive::after { display:none; }
  .hero-immersive .hero-grid { display:block; position:relative; z-index:2; padding:72px 28px 40px; }
  .hero-immersive .hero-copy { max-width:650px; }
  .hero-immersive .hero-school-name { display:flex; align-items:center; gap:12px; color:#e0e9f2; font-size:.72rem; font-weight:600; letter-spacing:.07em; text-transform:uppercase; margin-bottom:24px; }
  .hero-immersive .hero-school-name::before { content:''; width:28px; height:2px; flex-shrink:0; background:#f5d77c; }
  .hero.hero-immersive h1 { max-width:15ch; font-size:clamp(2.8rem,5.2vw,4.6rem); color:#fff; line-height:1.07; letter-spacing:-.035em; }
  .hero.hero-immersive h1 em { color:#f5d77c; }
  .hero.hero-immersive .lede { max-width:46ch; color:#e0e8f1; font-size:1rem; line-height:1.8; margin-top:24px; }
  .hero.hero-immersive .actions { margin-top:30px; }
  .hero.hero-immersive .btn-primary { background:#f5d77c; color:#102e4c; border-color:#f5d77c; }
  .hero.hero-immersive .btn-primary:hover { background:#ffe8a6; }
  .hero.hero-immersive .btn-ghost-light { border-color:#ffffff65; background:#ffffff08; color:#fff; }
  .hero.hero-immersive .btn-ghost-light:hover { background:#ffffff20; border-color:#fff; }
  .hero.hero-immersive .hero-visual { position:absolute; inset:0; z-index:0; width:100%; height:100%; max-width:none; padding:0; margin:0; border:0; border-radius:0; background:#0b223d; box-shadow:none; animation:none; }
  .hero.hero-immersive .hero-photo { height:100%; width:100%; aspect-ratio:auto; border-radius:0; box-shadow:none; }
  .hero.hero-immersive .hero-photo img { object-position:center 35%; }
  .hero.hero-immersive .hero-photo::after { background:linear-gradient(90deg,#071c34f5 0%,#071c34df 30%,#071c3480 62%,#071c3433 100%),linear-gradient(0deg,#071c34d9,transparent 50%); }
  .hero-immersive .hero-motion-control { color:#e0e8f1; background:#102b4599; border-color:#ffffff40; margin-top:22px; }
  .hero-immersive .hero-motion-control:hover { background:#214563; }
  .hero-immersive .hero-bottom { position:relative; z-index:2; background:#0b223dc9; border-top:1px solid #ffffff26; }
  .hero-immersive .hero-bottom-inner { display:flex; align-items:center; justify-content:space-between; gap:32px; padding-top:24px; padding-bottom:24px; }
  .hero.hero-immersive .hero-stats { flex:1; max-width:680px; margin:0; padding:0; border:0; gap:28px; }
  .hero.hero-immersive .hero-stats>div { border-left:2px solid #b8954e; padding-left:16px; }
  .hero.hero-immersive .hero-stats .num { color:#fff; font-size:.93rem; }
  .hero.hero-immersive .hero-stats .lbl { color:#bfcddd; font-size:.75rem; }
  .hero.hero-immersive .hero-badge { flex-shrink:0; background:none; padding:0; color:#fff; gap:12px; }
  .hero.hero-immersive .hero-badge small { color:#bfcddd; }
  .hero.hero-immersive .hero-badge::after { display:none; }
  .hero-immersive a:focus-visible,.hero-immersive button:focus-visible { outline-color:#f5d77c; }
  @media(max-width:900px) {
    .hero-immersive .hero-grid { padding:56px 24px 32px; }
    .hero-immersive .hero-bottom-inner { flex-wrap:wrap; gap:22px; }
    .hero.hero-immersive .hero-stats { flex-basis:100%; max-width:none; }
    .hero.hero-immersive .hero-badge { border-top:1px solid #ffffff26; padding-top:18px; width:100%; }
  }
  @media(max-width:600px) {
    .hero-immersive .hero-grid { padding:40px 20px 28px; }
    .hero-immersive .hero-school-name { font-size:.6rem; line-height:1.7; gap:8px; margin-bottom:20px; }
    .hero.hero-immersive h1 { font-size:clamp(2.65rem,10vw,3.7rem); }
    .hero.hero-immersive .lede { font-size:.92rem; margin-top:20px; }
    .hero.hero-immersive .hero-photo img { object-position:65% center; }
    .hero.hero-immersive .hero-photo::after { background:linear-gradient(90deg,#071c34ed,#071c34b8),linear-gradient(0deg,#071c34,transparent); }
    .hero-immersive .hero-bottom-inner { padding:20px; }
    .hero.hero-immersive .hero-stats { gap:10px; }
    .hero.hero-immersive .hero-stats>div { padding-left:9px; }
    .hero.hero-immersive .hero-stats .num { font-size:.73rem; }
    .hero.hero-immersive .hero-stats .lbl { font-size:.65rem; }
  }

/* full-width-page-layout */
:root { --page-gutter:clamp(16px,2vw,32px); }
  body .wrap { width:100%; max-width:none; }
  body .wrap, .topstrip .wrap, header.site .wrap.nav-row,
  .hero.hero-immersive .wrap { padding-inline:var(--page-gutter); }

/* header-notice-layout */
header.site .nav-row { grid-template-columns:auto minmax(0,1fr) auto; gap:0 28px; }
  header.site .notice-bar { grid-column:2; grid-row:1; align-self:center; margin-bottom:17px; }
  header.site .nav-cta { grid-column:3; }
  header.site .notice-bar a:focus-visible,header.site .notice-bar button:focus-visible { outline-color:#0756a6; outline-offset:-3px; }
  @media(max-width:1100px) {
    header.site .nav-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px 16px; }
    header.site .nav-cta { grid-column:2; grid-row:1; }
    header.site .notice-bar { grid-column:1 / -1; grid-row:2; margin:0; height:42px; }
  }

/* Former element styles, kept at the end of the cascade. */
.section.home-pillars{margin-top:-1px}
.home-gallery-action{text-align:center;margin-top:28px}
.form-note.home-form-note{margin-top:14px;font-size:.85rem;color:var(--maroon)}
.btn.home-apply-button{background:#fff;color:var(--maroon)}
/* Shared header icons and footer styling. */
.topstrip .topstrip-left svg{width:15px;height:15px;flex:none;vertical-align:-2px;margin-right:5px}
  .topstrip-right svg,.header-admission svg,.mobile-admission svg{width:15px;height:15px;vertical-align:-2px;margin-left:4px}
  .notice-pause svg{width:16px;height:16px;display:block}
  .notice-pause .icon-play,.notice-bar.is-paused .notice-pause .icon-pause{display:none}
  .notice-bar.is-paused .notice-pause .icon-play{display:block}
.foot-brand .foot-brand-name{color:#fff;font-family:'Fraunces',serif;font-weight:600}
.foot-social.foot-social-spacing{margin-top:22px}
