:root{
    --school-primary:#0a4f98;
    --school-primary-2:#0d6bb8;
    --school-dark:#082c5a;
    --school-accent:#e31d2b;
    --school-gold:#f3b61f;
    --school-light:#f5f9fd;
    --school-soft:#eef6fc;
    --school-text:#24364b;
}

html{scroll-behavior:smooth}
body{color:var(--school-text);background:#fff;font-family:"Segoe UI Variable Text","Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:16px;font-weight:400;line-height:1.7;letter-spacing:.012em;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,h5,h6,.school-name,.navbar{font-family:"Segoe UI Variable Display","Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-style:normal}
p,li,td,th,label,input,textarea,select,button{letter-spacing:.012em}
a{transition:.2s ease}

/* Header */
.topbar{background:#07549a;color:#fff;padding:.38rem 0;font-size:.86rem}
.topbar a{color:#fff;text-decoration:none}
.topbar a:hover{color:#ffe47a}
.topbar-info i{margin-right:.25rem}
.topbar-link{font-weight:600}
.brandbar{background:#fff;border-bottom:1px solid #e8edf4}
.school-logo{width:80px;height:80px;object-fit:contain;flex:0 0 auto}
.school-name{font-weight:800;font-size:clamp(1.55rem,3vw,2.5rem);line-height:1.12;color:#dc1e2d;text-decoration:none;text-transform:uppercase;letter-spacing:.015em}
.school-name:hover{color:#b61925}
.school-tagline{color:#0b4d90;font-weight:500;margin-top:.3rem;letter-spacing:.015em}

/* Navigation */
.school-navbar{background:#fff!important;z-index:1030;border-bottom:1px solid #e7ebf0;box-shadow:0 4px 18px rgba(8,44,90,.06)}
.school-navbar .navbar-toggler{border-color:#0a4f98}
.school-navbar .navbar-toggler-icon{filter:invert(23%) sepia(60%) saturate(1657%) hue-rotate(180deg) brightness(84%)}
.school-navbar .nav-link{color:#0a376e!important;padding:.82rem .62rem;font-size:.94rem;font-weight:600;line-height:1.35;letter-spacing:.018em;position:relative;white-space:nowrap}
.school-navbar .nav-link:hover,.school-navbar .nav-link:focus{color:var(--school-accent)!important}
.school-navbar .navbar-nav>.nav-item>.nav-link:after,.school-navbar .navbar-nav>.nav-item>.nav-link-wrap>.nav-link:after{content:"";position:absolute;left:.75rem;right:.75rem;bottom:.45rem;height:2px;background:var(--school-accent);transform:scaleX(0);transition:.2s;transform-origin:left}
.school-navbar .navbar-nav>.nav-item>.nav-link:hover:after,.school-navbar .navbar-nav>.nav-item>.nav-link-wrap>.nav-link:hover:after{transform:scaleX(1)}
.nav-link-wrap{display:flex;align-items:center;position:relative}
.submenu-toggle{border:0;background:transparent;color:#0a376e;padding:.5rem .35rem}
.dropdown-menu{border:0;box-shadow:0 14px 36px rgba(8,44,90,.14);padding:.55rem;border-radius:.6rem}
.dropdown-menu .nav-link{color:#20344d!important;padding:.68rem .85rem;white-space:nowrap;border-radius:.35rem;font-weight:500;letter-spacing:.01em}
.dropdown-menu .nav-link:hover{background:#eff6fd;color:var(--school-accent)!important}
.nested-menu{min-width:240px}
.dropdown-menu .submenu-toggle{color:#333;margin-left:auto}
.school-navbar form .form-control{border-color:#d7e1ed}

/* News ticker */
.ticker-wrap{background:#fff8dd;border-bottom:1px solid #f1df9c;overflow:hidden}
.ticker-label{background:var(--school-gold);font-weight:800;padding:.55rem .9rem;margin-right:1rem;color:#4d3a00;flex:0 0 auto}
.ticker-track{overflow:hidden;flex:1}
.ticker-move{display:inline-flex;gap:2.5rem;white-space:nowrap;animation:ticker 34s linear infinite;padding:.45rem 0}
.ticker-item a{color:#24364b;text-decoration:none;font-weight:600}
.ticker-item a:hover{color:var(--school-accent)}
@keyframes ticker{from{transform:translateX(100%)}to{transform:translateX(-100%)}}

/* Hero */
.school-hero{position:relative;background:#0a376e;isolation:isolate;background-image:var(--hero-image);background-position:center;background-size:cover;color:#fff}
.school-hero-overlay{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(5,44,90,.95) 0%,rgba(5,54,105,.84) 36%,rgba(5,54,105,.22) 70%,rgba(5,54,105,.08) 100%)}
.min-vh-hero{min-height:560px}
.hero-kicker{text-transform:uppercase;letter-spacing:.08em;color:#ffdf62;font-weight:700;font-size:.9rem}
.school-hero h1{font-size:clamp(2.7rem,6vw,5rem);font-weight:800;line-height:1.05;letter-spacing:0;max-width:750px;margin:.75rem 0 1.25rem;text-shadow:0 2px 18px rgba(0,0,0,.12)}
.hero-copy{font-size:1.15rem;line-height:1.7;max-width:700px;color:#eff7ff;font-weight:500}
.school-hero .btn{font-weight:700;border-width:2px}

/* Feature strip */
.feature-strip{background:linear-gradient(180deg,#fff,#f7fbff);border-bottom:1px solid #e6eff7}
.feature-stat{background:#fff;border:1px solid #e6eef7;border-radius:.85rem;padding:1.1rem;display:flex;align-items:center;gap:.9rem;box-shadow:0 6px 18px rgba(8,44,90,.05)}
.feature-icon{width:52px;height:52px;border-radius:.8rem;background:#eaf4ff;color:var(--school-primary);display:grid;place-items:center;font-size:1.55rem;flex:0 0 auto}
.feature-stat strong{display:block;color:var(--school-accent);font-size:1.45rem;line-height:1.1}
.feature-stat span{display:block;font-size:.9rem;color:#36516f;margin-top:.2rem}

/* Sections */
.section{padding:4.6rem 0}
.eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:.78rem;font-weight:700;color:var(--school-accent);margin-bottom:.55rem}
.display-section{font-size:clamp(2rem,4vw,3rem);font-weight:800;color:var(--school-dark);line-height:1.15;letter-spacing:0;margin-bottom:1.2rem}
.lead-sm{font-size:1.06rem;line-height:1.78;color:#4d6178}
.school-quote{border-left:4px solid var(--school-accent);padding:.9rem 1rem;background:#f8fbff;border-radius:0 .55rem .55rem 0;color:#0a376e;font-weight:800;font-size:1.05rem}
.about-photo-wrap{position:relative}
.about-photo{width:100%;height:420px;object-fit:cover;border-radius:1rem;box-shadow:0 18px 50px rgba(8,44,90,.14)}
.about-photo-badge{position:absolute;right:-12px;bottom:22px;background:var(--school-accent);color:#fff;border-radius:.75rem;padding:1rem 1.15rem;display:flex;gap:.7rem;align-items:center;max-width:265px;box-shadow:0 12px 28px rgba(179,20,32,.22);font-weight:700}
.about-photo-badge i{font-size:1.4rem}

.vision-section{background:linear-gradient(135deg,#073f7d,#0b69b4);color:#fff}
.vision-card{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(5px);border-radius:1rem;padding:2rem}
.vision-card h3{font-weight:900;margin:.7rem 0 1rem}
.vision-card p{margin:0;line-height:1.8;color:#e8f4ff}
.vision-icon{width:56px;height:56px;border-radius:50%;background:#fff;color:#0a4f98;display:grid;place-items:center;font-size:1.5rem}
.mission-card .vision-icon{color:#d92131}

.facilities-section{background:#fff}
.section-heading{display:flex;justify-content:space-between;align-items:end;gap:1rem;margin-bottom:1.5rem}
.section-heading h2{margin:0;font-weight:800;color:var(--school-dark);letter-spacing:0}
.modern-heading a{text-decoration:none;font-weight:700;color:var(--school-accent)}
.modern-heading a:hover{color:#a80f1b}
.facility-card{background:#fff;border:1px solid #e1ebf5;border-radius:.9rem;padding:1.55rem;box-shadow:0 7px 20px rgba(8,44,90,.045);transition:.2s ease}
.facility-card:hover{transform:translateY(-3px);box-shadow:0 15px 30px rgba(8,44,90,.09);border-color:#c4dff5}
.facility-icon{width:54px;height:54px;border-radius:.75rem;background:#edf6ff;color:#0a4f98;display:grid;place-items:center;font-size:1.45rem;margin-bottom:1rem}
.facility-card h4{font-size:1.08rem;font-weight:900;color:#0a376e}
.facility-card p{font-size:.93rem;line-height:1.6;color:#62758b;margin:0}

.bg-soft-blue{background:#f2f8fd}
.message-modern{display:flex;gap:1rem;padding:1.15rem;border-radius:.85rem;border:1px solid #dbe8f3;background:#fff;box-shadow:0 7px 20px rgba(8,44,90,.04)}
.message-modern:hover{transform:translateY(-2px);box-shadow:0 12px 25px rgba(8,44,90,.08)}
.message-avatar{width:64px;height:72px;border-radius:.7rem;background:#e9f1fa;display:grid;place-items:center;color:#6c8198;font-size:2rem;flex:0 0 auto;overflow:hidden}
.message-avatar img{width:100%;height:100%;object-fit:cover}
.message-modern h5{color:#0a376e;font-size:1rem;font-weight:900;margin-bottom:.5rem}
.read-more{display:block;margin-top:.65rem;color:var(--school-accent);font-weight:800;font-size:.84rem}
.notice-list-modern{display:flex;flex-direction:column;gap:.7rem}
.notice-modern{display:flex;gap:1rem;align-items:flex-start;background:#fff;border:1px solid #dbe8f3;border-radius:.8rem;padding:1rem}
.notice-date{width:58px;flex:0 0 auto;border-radius:.6rem;background:#fff1f2;color:#cb1725;text-align:center;padding:.45rem .2rem}
.notice-date strong{display:block;font-size:1.35rem;line-height:1}
.notice-date span{font-size:.72rem;text-transform:uppercase;font-weight:900}
.notice-meta{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:#0a5ca6;font-weight:900;margin-bottom:.15rem}

.gallery-card-modern{display:block;position:relative;height:100%;min-height:315px;border-radius:1rem;overflow:hidden;background:#123;text-decoration:none;box-shadow:0 12px 28px rgba(8,44,90,.12)}
.gallery-card-modern img{width:100%;height:100%;min-height:315px;object-fit:cover;transition:.4s ease}
.gallery-card-modern:hover img{transform:scale(1.04)}
.gallery-overlay{position:absolute;inset:auto 0 0 0;padding:1.3rem;color:#fff;background:linear-gradient(transparent,rgba(3,24,52,.9));display:flex;align-items:end;justify-content:space-between}
.gallery-overlay h4{font-weight:900;margin:.1rem 0 0}
.gallery-overlay>i{font-size:1.7rem}
.campus-collage{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem;min-height:315px}
.campus-collage img{width:100%;height:100%;object-fit:cover;border-radius:.8rem;min-height:315px}

.event-thumb,.gallery-cover{height:220px;object-fit:cover}
.topper-photo{width:110px;height:110px;border-radius:50%;object-fit:cover}

.admission-cta{background:linear-gradient(110deg,#07529a,#0b69b4);color:#fff}
.admission-cta h2{font-weight:900;margin-bottom:.35rem}
.admission-cta p{color:#dceeff}
.cta-icon{width:74px;height:74px;border-radius:1rem;background:#fff;color:#0a4f98;display:grid;place-items:center;font-size:2rem;flex:0 0 auto}

/* Inner pages */
.page-title,.page-banner{background:linear-gradient(115deg,var(--school-dark),var(--school-primary));color:#fff;padding:3rem 0}
.page-banner{min-height:280px;background-size:cover;background-position:center;display:flex;align-items:end;position:relative}
.page-banner:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,34,69,.82),rgba(4,34,69,.25))}
.page-banner>.container{position:relative}
.content-area{font-size:1.02rem;line-height:1.78;letter-spacing:.012em}
.content-area h2,.content-area h3,.content-area h4{color:var(--school-dark);font-weight:700;letter-spacing:0;margin-top:1.6rem;margin-bottom:.8rem}
.content-area img{max-width:100%;height:auto;border-radius:.65rem}
.content-area table{width:100%;border-collapse:collapse}
.content-area table td,.content-area table th{border:1px solid #ddd;padding:.55rem}
.gallery-image{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:.55rem}
.map-embed iframe{width:100%;border:0;border-radius:.75rem;min-height:360px}

/* Footer */
.site-footer{background:#061e3b;color:#c9d8e7;margin-top:0}
.footer-logo{width:74px;height:74px;object-fit:contain;background:#fff;border-radius:.55rem;padding:.25rem}
.site-footer h5{color:#fff;font-weight:700;text-transform:uppercase;letter-spacing:.01em}
.site-footer h6{color:#fff;font-weight:700;margin-bottom:1rem;letter-spacing:.01em}
.footer-tagline{color:#a9c7e2;font-size:.92rem}
.footer-links li{margin:.45rem 0}
.site-footer a{color:#fff;text-decoration:none}
.site-footer a:hover{color:#ffd75a}
.footer-contact{display:flex;gap:.65rem;margin:.7rem 0;align-items:flex-start}
.footer-contact i{color:#ffcf3f;margin-top:.15rem}
.footer-bottom{border-top:1px solid rgba(255,255,255,.12);padding:1rem 0;background:#04172e}

@media(min-width:1200px){
    .school-navbar .dropdown:hover>.nested-menu{display:block}
    .school-navbar .dropdown-menu .has-submenu>.nested-menu{position:absolute;top:0;left:100%;margin-left:.1rem}
    .school-navbar .dropdown-menu .has-submenu{position:relative}
    .school-navbar>.container>.navbar-collapse>.navbar-nav>.dropdown>.submenu-toggle{display:none}
    .school-navbar>.container>.navbar-collapse>.navbar-nav>.dropdown>.nav-link-wrap>.submenu-toggle{display:none}
}

@media(max-width:991.98px){
    .topbar .container{align-items:flex-start!important}
    .topbar-info{font-size:.8rem}
    .school-logo{width:64px;height:64px}
    .school-name{font-size:1.5rem}
    .school-navbar .navbar-collapse{max-height:75vh;overflow-y:auto;padding:.5rem 0}
    .school-navbar .nav-link-wrap{width:100%}
    .school-navbar .nav-link{flex:1;padding:.75rem .5rem}
    .school-navbar .dropdown-menu{position:static!important;transform:none!important;border:0;border-radius:0;margin:0;background:#f2f7fc;padding-left:.7rem;box-shadow:none}
    .school-navbar .dropdown-menu .nav-link{color:#0a376e!important}
    .school-navbar .dropdown-menu .submenu-toggle{color:#0a376e}
    .school-navbar .dropdown-toggle::after{display:none}
    .nested-menu{display:none}
    .has-submenu.open>.nested-menu{display:block}
    .has-submenu.open>.nav-link-wrap>.submenu-toggle i{transform:rotate(180deg);display:inline-block}
    .min-vh-hero{min-height:500px}
    .school-hero-overlay{background:linear-gradient(90deg,rgba(5,44,90,.93),rgba(5,54,105,.62))}
    .section{padding:3.5rem 0}
    .about-photo{height:340px}
    .about-photo-badge{right:12px}
    .campus-collage{grid-template-columns:repeat(3,1fr);min-height:240px}
    .campus-collage img{min-height:240px}
}

@media(max-width:767.98px){
    .brandbar .container{align-items:center!important}
    .school-name{font-size:1.25rem}
    .school-tagline{font-size:.85rem}
    .school-hero h1{font-size:2.55rem}
    .hero-copy{font-size:1rem}
    .min-vh-hero{min-height:470px}
    .feature-stat{padding:.9rem;align-items:flex-start}
    .feature-icon{width:42px;height:42px;font-size:1.15rem}
    .feature-stat strong{font-size:1.1rem}
    .feature-stat span{font-size:.78rem}
    .display-section{font-size:2rem}
    .section-heading{align-items:flex-start;flex-direction:column}
    .about-photo{height:280px}
    .about-photo-badge{position:static;margin-top:.7rem;max-width:none}
    .vision-card{padding:1.5rem}
    .campus-collage{grid-template-columns:1fr;min-height:auto}
    .campus-collage img{min-height:210px;height:210px}
    .cta-icon{width:58px;height:58px;font-size:1.5rem}
    .admission-cta .btn{width:100%}
}

/* Touch-capable tablets can use tap-to-expand even when Bootstrap navbar is visually expanded. */
.touch-nav .school-navbar .dropdown:hover>.nested-menu{display:none}
.touch-nav .school-navbar .has-submenu.open>.nested-menu{display:block;position:static!important;transform:none!important;margin:0;border:0;border-radius:0;background:#f2f7fc;padding-left:.7rem}
.touch-nav .school-navbar .has-submenu.open>.nav-link-wrap>.submenu-toggle i{transform:rotate(180deg);display:inline-block}
.touch-nav .school-navbar .submenu-toggle{display:block}
.touch-nav .school-navbar .dropdown-menu .nav-link{color:#0a376e!important}
.touch-nav .school-navbar .dropdown-menu .submenu-toggle{color:#0a376e}


/* Readable navigation and homepage slider */
.school-navbar .navbar-nav{align-items:stretch;gap:.08rem}
.school-navbar .nav-item{display:flex;align-items:stretch}
.school-navbar .nav-link-wrap{width:100%}
.school-navbar .nav-link.active,.school-navbar .nav-link[aria-current="page"]{color:var(--school-accent)!important}
.school-navbar .nav-link.active:after,.school-navbar .nav-link[aria-current="page"]:after{transform:scaleX(1)!important}
.school-navbar .nav-public-disclosure>.nav-link-wrap>.nav-link{background:#fff5d8;border-radius:.45rem;color:#724d00!important;margin:.35rem .08rem;padding:.47rem .62rem}
.school-navbar .nav-public-disclosure>.nav-link-wrap>.nav-link:hover{background:#ffefbb;color:#9d1b24!important}
.school-navbar .nav-public-disclosure>.nav-link-wrap>.nav-link:after{display:none}
.nav-search-form{min-width:175px;max-width:210px}
.nav-search-form .form-control{font-size:.86rem;letter-spacing:.01em}

.school-slider-section{background:#082c5a}
.school-slider-slide{position:relative;min-height:590px;background-position:center;background-size:cover;color:#fff;isolation:isolate}
.school-slider-overlay{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(4,34,69,.94) 0%,rgba(4,45,88,.78) 42%,rgba(4,45,88,.24) 74%,rgba(4,45,88,.12) 100%)}
.school-slider-slide h1{font-size:clamp(2.55rem,5.4vw,4.7rem);font-weight:800;line-height:1.08;letter-spacing:.005em;max-width:780px;margin:.8rem 0 1.15rem;text-shadow:0 2px 18px rgba(0,0,0,.16)}
.school-slider-section .carousel-indicators{margin-bottom:1.25rem}
.school-slider-section .carousel-indicators [data-bs-target]{width:28px;height:4px;border:0;border-radius:10px}
.school-slider-section .carousel-control-prev,.school-slider-section .carousel-control-next{width:5%}
.school-slider-section .btn{font-weight:600;letter-spacing:.01em}

.simple-captcha-box{display:flex;gap:1rem;align-items:flex-start;background:#f5f9fd;border:1px solid #dce8f4;border-radius:.75rem;padding:1rem}
.captcha-icon{width:46px;height:46px;display:grid;place-items:center;flex:0 0 auto;border-radius:.65rem;background:#e6f2ff;color:#0a4f98;font-size:1.25rem}
.captcha-question{font-size:1.02rem;line-height:1.45;color:#173a60;letter-spacing:.01em}

@media(max-width:1199.98px){
    .school-navbar .navbar-collapse{max-height:78vh;overflow-y:auto;padding:.55rem 0}
    .school-navbar .navbar-nav{align-items:stretch}
    .school-navbar .nav-item{display:block}
    .school-navbar .nav-link-wrap{display:flex;width:100%;align-items:center}
    .school-navbar .nav-link{flex:1;padding:.74rem .65rem;white-space:normal}
    .school-navbar .submenu-toggle{display:block;min-width:44px;min-height:42px;border-radius:.35rem}
    .school-navbar .dropdown-menu{position:static!important;transform:none!important;border:0;border-radius:.45rem;margin:.15rem 0 .35rem;background:#f2f7fc;padding:.35rem 0 .35rem .7rem;box-shadow:none}
    .school-navbar .dropdown-toggle::after{display:none}
    .nested-menu{display:none}
    .has-submenu.open>.nested-menu{display:block}
    .has-submenu.open>.nav-link-wrap>.submenu-toggle i{transform:rotate(180deg);display:inline-block}
    .nav-search-form{max-width:none;width:100%;padding:.55rem .45rem .2rem}
    .school-navbar .nav-public-disclosure>.nav-link-wrap>.nav-link{margin:.2rem 0;padding:.7rem .65rem}
}

@media(max-width:767.98px){
    body{font-size:15.5px;line-height:1.6}
    .school-slider-slide{min-height:500px;background-position:center}
    .school-slider-overlay{background:linear-gradient(90deg,rgba(4,34,69,.95),rgba(4,45,88,.68))}
    .school-slider-slide h1{font-size:2.45rem;line-height:1.08}
    .school-slider-section .carousel-control-prev,.school-slider-section .carousel-control-next{display:none}
}

/* =========================================================
   UI polish patch: readable typography, visible inner pages,
   subtle motion, forms and accessibility improvements.
   ========================================================= */

body{
    letter-spacing:.018em;
}

h1{
    font-weight:400 !important;
    letter-spacing:.025em;
}

h2,h3,h4,h5,h6{
    letter-spacing:.012em;
}

::selection{
    background:#cfe7ff;
    color:#052b55;
}

.inner-page main{
    background:
        radial-gradient(circle at 8% 8%,rgba(10,79,152,.07),transparent 28rem),
        radial-gradient(circle at 92% 28%,rgba(227,29,43,.045),transparent 24rem),
        linear-gradient(180deg,#f5f9fd 0%,#fbfdff 42%,#f3f8fc 100%);
    min-height:520px;
}

.inner-page-section,
.inner-page main>.container{
    position:relative;
}

.page-title{
    position:relative;
    overflow:hidden;
    isolation:isolate;
    box-shadow:inset 0 -1px 0 rgba(255,255,255,.12);
}

.page-title::before,
.page-title::after{
    content:"";
    position:absolute;
    z-index:-1;
    border-radius:50%;
    background:rgba(255,255,255,.07);
    pointer-events:none;
}

.page-title::before{
    width:260px;
    height:260px;
    right:7%;
    top:-160px;
}

.page-title::after{
    width:150px;
    height:150px;
    right:24%;
    bottom:-115px;
}

.page-title-copy{
    max-width:720px;
    color:rgba(255,255,255,.82);
}

.inner-page .card,
.contact-panel,
.content-area,
.map-embed,
.contact-map-placeholder{
    transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease,background-color .28s ease;
}

.inner-page .card:hover,
.contact-panel:hover{
    transform:translateY(-3px);
    box-shadow:0 18px 42px rgba(8,44,90,.10)!important;
}

.btn{
    transition:transform .18s ease,box-shadow .18s ease,background-color .18s ease,border-color .18s ease,color .18s ease;
}

.btn:hover{
    transform:translateY(-1px);
}

.btn:active{
    transform:translateY(0);
}

.form-control,
.form-select{
    min-height:46px;
    border-color:#cfdae6;
    border-radius:.7rem;
    transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease;
}

textarea.form-control{
    min-height:unset;
}

.form-control:focus,
.form-select:focus{
    border-color:#4c8ac8;
    box-shadow:0 0 0 .22rem rgba(10,79,152,.12);
}

.contact-section{
    overflow:hidden;
}

.contact-panel{
    background:rgba(255,255,255,.96);
    border:1px solid #e2ebf4;
    border-radius:1.15rem;
    padding:clamp(1.4rem,3vw,2.35rem);
    box-shadow:0 14px 38px rgba(8,44,90,.07);
}

.contact-info-panel{
    background:linear-gradient(155deg,#ffffff 0%,#f5faff 100%);
}

.contact-form-panel{
    background:#fff;
}

.contact-panel-icon{
    width:54px;
    height:54px;
    border-radius:.9rem;
    display:grid;
    place-items:center;
    background:#e9f4ff;
    color:#0a4f98;
    font-size:1.4rem;
    margin-bottom:1.2rem;
}

.contact-panel-icon.form-icon{
    margin-bottom:0;
    flex:0 0 auto;
    background:#fff0f1;
    color:#d4202d;
}

.contact-detail{
    display:flex;
    gap:.9rem;
    align-items:flex-start;
    padding:1rem 0;
    border-bottom:1px solid #e8eef5;
    transition:padding-left .2s ease,border-color .2s ease;
}

.contact-detail:hover{
    padding-left:.3rem;
    border-color:#cbdceb;
}

.contact-detail>i{
    width:38px;
    height:38px;
    flex:0 0 auto;
    display:grid;
    place-items:center;
    border-radius:.7rem;
    background:#eaf4ff;
    color:#0a4f98;
}

.contact-detail strong{
    display:block;
    color:#0b376a;
    margin-bottom:.1rem;
}

.contact-detail span,
.contact-detail a{
    color:#566b80;
    text-decoration:none;
}

.contact-detail a:hover{
    color:#0a4f98;
}

.contact-socials{
    display:flex;
    flex-wrap:wrap;
    gap:.6rem;
}

.social-pill{
    min-height:42px;
    display:inline-flex;
    align-items:center;
    gap:.45rem;
    padding:.55rem .85rem;
    border:1px solid #d8e3ee;
    border-radius:999px;
    text-decoration:none;
    color:#1b3653;
    background:#fff;
    transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}

.social-pill:hover{
    transform:translateY(-2px);
    box-shadow:0 8px 18px rgba(8,44,90,.08);
}

.simple-captcha-box{
    position:relative;
    overflow:hidden;
    background:linear-gradient(145deg,#f5f9fd,#eef6ff);
    border:1px solid #d6e6f5;
    padding:1rem 1.1rem;
}

.simple-captcha-box::after{
    content:"";
    position:absolute;
    width:95px;
    height:95px;
    border-radius:50%;
    right:-55px;
    top:-55px;
    background:rgba(10,79,152,.07);
}

.simple-captcha-box.captcha-error{
    border-color:#dc3545;
    background:#fff7f8;
}

.captcha-question{
    font-weight:600;
}

.contact-map-card{
    overflow:hidden;
    border:1px solid #dce7f1;
    border-radius:1rem;
    background:#fff;
    box-shadow:0 12px 30px rgba(8,44,90,.07);
}

.contact-map-placeholder{
    min-height:180px;
    display:flex;
    gap:1rem;
    align-items:center;
    justify-content:center;
    padding:2rem;
    text-align:left;
    border:1px dashed #abc4dc;
    border-radius:1rem;
    background:#fff;
    color:#4d6278;
}

.contact-map-placeholder>i{
    font-size:2rem;
    color:#0a4f98;
}

/* Gentle entrance motion. It is decorative and disabled for reduced motion. */
@keyframes schoolFadeUp{
    from{opacity:0;transform:translateY(12px)}
    to{opacity:1;transform:translateY(0)}
}

.inner-page .page-title .container,
.inner-page .card,
.inner-page .contact-panel,
.inner-page .content-area,
.inner-page .map-embed,
.home-page .facility-card,
.home-page .message-modern,
.home-page .notice-modern{
    animation:schoolFadeUp .48s ease both;
}

@media (prefers-reduced-motion: reduce){
    *,*::before,*::after{
        scroll-behavior:auto!important;
        animation-duration:.001ms!important;
        animation-iteration-count:1!important;
        transition-duration:.001ms!important;
    }
}

@media(max-width:767.98px){
    .contact-panel{padding:1.25rem}
    .contact-detail:hover{padding-left:0}
    .page-title{padding:2.4rem 0}
}

/* Mandatory Public Disclosure */
.public-disclosure-page {
    background: linear-gradient(180deg, #f7faff 0%, #ffffff 45%, #f8fbff 100%);
}

.public-disclosure-page .content-card {
    background: #fff;
    border: 1px solid rgba(25, 74, 140, .10);
    border-radius: 18px;
    box-shadow: 0 12px 34px rgba(20, 55, 100, .07);
    overflow: hidden;
}

.public-disclosure-page .content-card:not(.disclosure-section) {
    padding: clamp(1.2rem, 3vw, 2rem);
}

.disclosure-section-header {
    padding: 1rem 1.25rem;
    background: linear-gradient(135deg, rgba(19, 74, 140, .08), rgba(255, 255, 255, 1));
    border-bottom: 1px solid rgba(25, 74, 140, .10);
}

.disclosure-table thead th {
    background: #153f73;
    color: #fff;
    font-weight: 500;
    letter-spacing: .02em;
    border: 0;
}

.disclosure-table tbody td {
    padding: 1rem 1.1rem;
    border-color: #edf1f6;
    vertical-align: top;
}

.disclosure-table tbody tr {
    transition: background-color .2s ease, transform .2s ease;
}

@media (hover: hover) and (pointer: fine) {
    .disclosure-table tbody tr:hover {
        background: #f8fbff;
    }
}

.disclosure-content > :last-child,
.cms-content > :last-child {
    margin-bottom: 0;
}

.disclosure-content table,
.cms-content table {
    width: 100%;
    border-collapse: collapse;
    margin: 1rem 0;
}

.disclosure-content table th,
.disclosure-content table td,
.cms-content table th,
.cms-content table td {
    border: 1px solid #dfe6ee;
    padding: .65rem .75rem;
}

@media (max-width: 767.98px) {
    .public-disclosure-page .content-card {
        border-radius: 14px;
    }

    .disclosure-table {
        min-width: 760px;
    }
}

/* =========================================================
   FINAL DESKTOP DROPDOWN POSITIONING FIX
   Top-level menus open below the navbar; nested menus open right.
   ========================================================= */
@media (min-width:1200px){
    .school-navbar .navbar-nav > .nav-item.has-submenu{
        position:relative!important;
        display:block;
    }
    .school-navbar .navbar-nav > .nav-item.has-submenu > .nav-link-wrap{
        display:flex;
        align-items:center;
        height:100%;
    }
    .school-navbar .navbar-nav > .nav-item.has-submenu > .nested-menu{
        position:absolute!important;
        top:100%!important;
        left:0!important;
        right:auto!important;
        transform:none!important;
        margin:0!important;
        min-width:265px;
        z-index:1085;
        border-radius:0 0 .7rem .7rem;
    }
    .school-navbar .navbar-nav > .nav-item.has-submenu:hover > .nested-menu,
    .school-navbar .navbar-nav > .nav-item.has-submenu:focus-within > .nested-menu{
        display:block;
    }
    .school-navbar .dropdown-menu .has-submenu{
        position:relative!important;
        display:block;
    }
    .school-navbar .dropdown-menu .has-submenu > .nested-menu{
        position:absolute!important;
        top:-.55rem!important;
        left:100%!important;
        right:auto!important;
        transform:none!important;
        margin-left:.15rem!important;
        min-width:255px;
        border-radius:.65rem;
    }
}


/* =========================================================
   SCHOOL HEADER BANNER + SINGLE MOBILE MENU CONTROL
   ========================================================= */
.school-banner-shell{
    background:#fff;
    border-bottom:1px solid #e7ebf0;
}

.school-banner-link{
    display:block;
    text-decoration:none;
    text-align:center;
    line-height:0;
}

.school-header-banner{
    display:block;
    width:100%;
    height:auto;
    max-height:205px;
    object-fit:contain;
    object-position:center;
    margin:0 auto;
    padding:10px 0;
}

.school-menu-toggler{
    align-items:center;
    justify-content:center;
    gap:.45rem;
    min-height:44px;
    min-width:96px;
    padding:.45rem .75rem;
    border:1px solid #a8bfd8!important;
    border-radius:.65rem;
    color:#0a4f98;
    background:#fff;
    font-weight:600;
    line-height:1;
}

.school-menu-toggler i{
    font-size:1.45rem;
    line-height:1;
}

.school-menu-toggler:focus{
    box-shadow:0 0 0 .22rem rgba(10,79,152,.14);
}

@media(max-width:1199.98px){
    .school-navbar>.container{
        justify-content:flex-start;
    }

    .school-menu-toggler{
        display:inline-flex!important;
        margin:.42rem 0;
    }
}

@media(max-width:767.98px){
    .school-header-banner{
        max-height:125px;
        padding:8px 0;
    }
}


/* =========================================================
   COMPLETE RESPONSIVE SYSTEM — PUBLIC WEBSITE
   Mobile-first safety layer for all public pages.
   ========================================================= */

/* ---------- Global overflow / media safety ---------- */
*,
*::before,
*::after{
    box-sizing:border-box;
}

html,
body{
    max-width:100%;
    overflow-x:hidden;
}

img,
svg,
video,
canvas,
iframe{
    max-width:100%;
}

img{
    height:auto;
}

main,
section,
.container,
.row,
[class*="col-"]{
    min-width:0;
}

a,
button,
input,
select,
textarea{
    -webkit-tap-highlight-color:transparent;
}

/* Prevent iOS/Android zoom and cramped form controls. */
.form-control,
.form-select,
textarea,
input{
    max-width:100%;
}

@media (max-width:767.98px){
    .form-control,
    .form-select,
    textarea,
    input{
        font-size:16px!important;
    }
}

/* ---------- Responsive buttons ---------- */
.btn{
    min-height:42px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:.4rem;
    padding:.55rem 1rem;
    border-radius:.6rem;
    line-height:1.25;
    white-space:normal;
    text-align:center;
    font-size:.95rem;
    font-weight:600;
}

.btn-sm{
    min-height:36px;
    padding:.4rem .72rem;
    font-size:.86rem;
}

.btn-lg{
    min-height:48px;
    padding:.72rem 1.2rem;
    font-size:1rem;
}

/* Desktop/tablet buttons remain content-sized. */
@media (min-width:768px){
    .btn:not(.w-100){
        width:auto;
    }
}

/* Mobile CTA groups become clean full-width stacks only where helpful. */
@media (max-width:575.98px){
    .hero-actions,
    .school-slider-slide .d-flex.flex-wrap.gap-2.mt-4,
    .school-hero .d-flex.flex-wrap.gap-2.mt-4,
    .admission-cta .cta-actions{
        display:grid!important;
        grid-template-columns:1fr;
        gap:.7rem!important;
        width:100%;
    }

    .hero-actions .btn,
    .school-slider-slide .d-flex.flex-wrap.gap-2.mt-4 .btn,
    .school-hero .d-flex.flex-wrap.gap-2.mt-4 .btn,
    .admission-cta .cta-actions .btn{
        width:100%;
        max-width:none;
        margin:0!important;
    }

    /* Ordinary inline controls should not become oversized. */
    .table .btn,
    .pagination .page-link,
    .input-group .btn,
    .card .btn-sm{
        width:auto;
    }
}

/* ---------- Top bar ---------- */
@media (max-width:991.98px){
    .topbar .container{
        display:flex;
        flex-direction:column;
        align-items:stretch!important;
        gap:.55rem!important;
    }

    .topbar-info,
    .topbar .container > .d-flex:last-child{
        display:flex;
        flex-wrap:wrap;
        justify-content:center;
        gap:.45rem .9rem!important;
        width:100%;
        text-align:center;
    }

    .topbar{
        font-size:.8rem;
        line-height:1.45;
    }

    .topbar .btn{
        min-height:34px;
        padding:.35rem .7rem;
    }
}

@media (max-width:575.98px){
    .topbar{
        padding:.45rem 0;
    }

    .topbar-info a{
        width:100%;
    }

    .topbar-link{
        font-size:.78rem;
    }
}

/* ---------- School banner / brand ---------- */
.school-banner-shell{
    overflow:hidden;
}

.school-header-banner{
    width:100%;
    height:auto;
    object-fit:contain;
    object-position:center;
}

@media (max-width:767.98px){
    .brandbar .container{
        gap:.7rem!important;
        padding-top:.8rem!important;
        padding-bottom:.8rem!important;
    }

    .school-logo{
        width:54px;
        height:54px;
    }

    .school-name{
        font-size:clamp(1.05rem,5vw,1.35rem);
        line-height:1.2;
        word-break:break-word;
    }

    .school-tagline{
        font-size:.8rem;
        line-height:1.4;
    }

    .school-header-banner{
        max-height:130px;
        padding:6px 0;
    }
}

/* ---------- Navigation ---------- */
@media (max-width:1199.98px){
    .school-navbar>.container{
        display:flex;
        flex-wrap:wrap;
        align-items:center;
    }

    .school-menu-toggler,
    .school-navbar .navbar-toggler{
        min-height:44px;
        min-width:auto;
        width:auto;
        padding:.5rem .8rem;
        margin:.35rem 0;
        border-radius:.6rem;
    }

    .school-navbar .navbar-collapse{
        width:100%;
        max-height:min(78vh,620px);
        overflow-y:auto;
        overflow-x:hidden;
        padding:.45rem 0 .7rem;
    }

    .school-navbar .navbar-nav{
        width:100%;
        gap:0;
    }

    .school-navbar .nav-item,
    .school-navbar .nav-link-wrap{
        width:100%;
    }

    .school-navbar .nav-link{
        display:flex;
        align-items:center;
        min-height:44px;
        padding:.7rem .75rem!important;
        white-space:normal!important;
        overflow-wrap:anywhere;
    }

    .submenu-toggle{
        flex:0 0 44px;
        width:44px;
        height:44px;
        padding:0!important;
        display:grid!important;
        place-items:center;
    }

    .dropdown-menu{
        width:100%;
        min-width:0!important;
        max-width:100%;
        overflow:hidden;
    }

    .dropdown-menu .nav-link,
    .dropdown-menu .dropdown-item{
        white-space:normal!important;
        overflow-wrap:anywhere;
        min-height:42px;
    }

    .nav-search-form{
        width:100%!important;
        max-width:none!important;
        min-width:0!important;
        padding:.55rem .5rem .15rem;
    }
}

/* ---------- News ticker ---------- */
@media (max-width:575.98px){
    .ticker-wrap .container{
        padding-left:0;
        padding-right:0;
    }

    .ticker-label{
        padding:.5rem .65rem;
        margin-right:.55rem;
        font-size:.78rem;
    }

    .ticker-move{
        gap:1.5rem;
        font-size:.82rem;
    }
}

/* ---------- Hero / slider ---------- */
.school-slider-slide,
.school-hero{
    overflow:hidden;
}

@media (max-width:991.98px){
    .school-slider-slide{
        min-height:520px;
    }

    .school-slider-slide h1,
    .school-hero h1{
        font-size:clamp(2rem,7vw,3.2rem);
        line-height:1.1;
        max-width:680px;
    }

    .hero-copy{
        font-size:1rem;
        max-width:620px;
    }
}

@media (max-width:575.98px){
    .school-slider-slide{
        min-height:500px;
        background-position:center;
    }

    .school-slider-overlay,
    .school-hero-overlay{
        background:linear-gradient(
            90deg,
            rgba(4,34,69,.94) 0%,
            rgba(4,45,88,.83) 55%,
            rgba(4,45,88,.55) 100%
        );
    }

    .school-slider-slide .container,
    .school-hero .container{
        padding-top:2.2rem;
        padding-bottom:2.2rem;
    }

    .school-slider-slide h1,
    .school-hero h1{
        font-size:clamp(1.85rem,9vw,2.55rem);
        line-height:1.12;
        margin:.55rem 0 .9rem;
    }

    .hero-copy{
        font-size:.95rem;
        line-height:1.6;
    }

    .hero-kicker{
        font-size:.78rem;
    }

    .school-slider-section .carousel-control-prev,
    .school-slider-section .carousel-control-next{
        width:9%;
    }
}

/* ---------- Highlight / statistic cards ---------- */
.feature-stat{
    height:100%;
    min-width:0;
}

.feature-stat > div:last-child{
    min-width:0;
    flex:1 1 auto;
}

.feature-stat span{
    overflow-wrap:anywhere;
}

@media (max-width:767.98px){
    .feature-strip .row{
        row-gap:.75rem!important;
    }

    .feature-stat{
        padding:.9rem;
        gap:.75rem;
        align-items:center;
    }

    .feature-icon{
        flex:0 0 44px;
        width:44px;
        height:44px;
        font-size:1.15rem;
    }

    .feature-stat strong{
        font-size:1.12rem;
    }

    .feature-stat span{
        font-size:.82rem;
        line-height:1.45;
    }
}

@media (max-width:575.98px){
    .feature-strip .row > .col-6{
        flex:0 0 100%;
        width:100%;
    }

    .feature-stat{
        min-height:84px;
        padding:1rem 1.05rem;
    }
}

/* ---------- General sections / headings ---------- */
@media (max-width:767.98px){
    .section{
        padding:2.8rem 0;
    }

    .page-title,
    .page-banner{
        padding:2rem 0;
    }

    .page-title h1,
    .page-banner h1,
    h1{
        font-size:clamp(1.65rem,7vw,2.2rem);
        line-height:1.2;
        overflow-wrap:anywhere;
    }

    .display-section{
        font-size:clamp(1.65rem,7vw,2.15rem);
    }

    .section-heading{
        gap:.35rem;
        margin-bottom:1.1rem;
    }

    .section-heading h2{
        font-size:1.55rem;
    }

    .lead-sm,
    .content-area{
        font-size:.96rem;
        line-height:1.7;
    }
}

/* ---------- Images / about / cards ---------- */
@media (max-width:767.98px){
    .about-photo{
        height:250px;
    }

    .about-photo-badge{
        position:static!important;
        right:auto!important;
        bottom:auto!important;
        margin-top:.7rem;
        max-width:none;
        width:100%;
    }

    .facility-card,
    .vision-card,
    .message-modern,
    .content-card,
    .card{
        max-width:100%;
    }

    .facility-card{
        padding:1.15rem;
    }

    .message-modern{
        align-items:flex-start;
    }

    .message-avatar{
        width:56px;
        height:64px;
    }
}

@media (max-width:420px){
    .message-modern{
        flex-direction:column;
    }

    .message-avatar{
        width:64px;
        height:72px;
    }
}

/* ---------- Gallery / events ---------- */
@media (max-width:767.98px){
    .gallery-card-modern,
    .gallery-card-modern img{
        min-height:230px;
    }

    .campus-collage{
        grid-template-columns:1fr;
        min-height:auto;
    }

    .campus-collage img{
        height:210px;
        min-height:210px;
    }

    .event-thumb,
    .gallery-cover{
        height:190px;
    }
}

/* ---------- Admission CTA ---------- */
@media (max-width:767.98px){
    .admission-cta .row{
        text-align:center;
    }

    .admission-cta .col-lg-8 > .d-flex{
        flex-direction:column;
        align-items:center!important;
        justify-content:center;
        text-align:center;
        gap:.9rem!important;
    }

    .admission-cta h2{
        font-size:1.55rem;
        line-height:1.2;
    }

    .admission-cta p{
        font-size:.95rem;
        line-height:1.6;
        max-width:520px;
        margin-left:auto;
        margin-right:auto;
    }

    .cta-icon{
        width:60px;
        height:60px;
        font-size:1.5rem;
        margin:0 auto;
    }

    .admission-cta .col-lg-4{
        text-align:center!important;
    }

    .admission-cta .btn{
        width:auto;
        min-width:180px;
        max-width:100%;
    }
}

@media (max-width:575.98px){
    .admission-cta .btn{
        width:100%;
        min-width:0;
    }
}

/* ---------- Contact / admission / TC forms ---------- */
@media (max-width:767.98px){
    .card-body.p-4,
    .card-body.p-md-5{
        padding:1.15rem!important;
    }

    .simple-captcha-box{
        flex-direction:column;
        gap:.65rem;
        padding:.9rem;
    }

    .captcha-icon{
        width:42px;
        height:42px;
    }

    .captcha-question{
        font-size:.95rem;
    }

    .input-group{
        flex-wrap:wrap;
    }

    .input-group > .form-control,
    .input-group > .form-select{
        min-width:0;
    }
}

@media (max-width:480px){
    .input-group > .btn{
        flex:0 0 auto;
    }

    .input-group .form-control-lg{
        font-size:16px;
    }
}

/* ---------- Tables / disclosures / faculty ---------- */
.table-responsive{
    width:100%;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
}

.table{
    margin-bottom:0;
}

.table th,
.table td{
    vertical-align:middle;
    overflow-wrap:anywhere;
}

@media (max-width:767.98px){
    .table{
        font-size:.86rem;
    }

    .table th,
    .table td{
        padding:.65rem .55rem;
    }

    .public-disclosure-page .content-card,
    .disclosure-section{
        border-radius:.7rem;
        overflow:hidden;
    }

    .disclosure-section-header{
        padding:.9rem 1rem;
    }

    .disclosure-section-header h2{
        font-size:1.15rem;
    }

    .disclosure-table{
        min-width:680px;
    }

    .faculty-table,
    .notice-table{
        min-width:620px;
    }
}

/* ---------- Pagination ---------- */
.pagination{
    flex-wrap:wrap;
    gap:.25rem;
}

.page-link{
    min-width:38px;
    min-height:38px;
    display:grid;
    place-items:center;
    border-radius:.4rem!important;
}

/* ---------- Footer ---------- */
@media (max-width:767.98px){
    .site-footer .container.py-5{
        padding-top:2.4rem!important;
        padding-bottom:2.4rem!important;
    }

    .site-footer .row{
        row-gap:1.7rem!important;
    }

    .footer-logo{
        width:62px;
        height:62px;
    }

    .footer-contact{
        gap:.5rem;
        overflow-wrap:anywhere;
    }

    .footer-bottom .container{
        flex-direction:column;
        text-align:center;
        align-items:center;
    }
}

/* ---------- Utility safety for long content ---------- */
.cms-content,
.content-area,
.card-body,
.alert,
.form-text,
.footer-contact,
.school-tagline,
.school-name,
.notice-modern,
.message-modern{
    overflow-wrap:anywhere;
    word-break:normal;
}

/* ---------- Motion: attractive but respectful ---------- */
@media (prefers-reduced-motion: reduce){
    *,
    *::before,
    *::after{
        animation-duration:.01ms!important;
        animation-iteration-count:1!important;
        scroll-behavior:auto!important;
        transition-duration:.01ms!important;
    }
}

/* === RESPONSIVE OVERFLOW / CARD SAFETY PATCH === */

/* Prevent any responsive column/card from growing wider than its viewport. */
html,
body{
    max-width:100%;
    overflow-x:clip;
}

*,
*::before,
*::after{
    box-sizing:border-box;
}

.container,
.container-fluid,
.row,
.row > *,
[class*="col-"],
.card,
.card-body,
.card-header,
.card-footer,
section,
.cms-content,
.content-area{
    min-width:0;
    max-width:100%;
}

/* Long text, links, filenames and generated CMS content must stay inside cards. */
.card,
.card-body,
.card-header,
.card-footer,
.cms-content,
.content-area,
.alert,
.list-group-item,
.accordion-body,
.dropdown-menu,
.modal-content,
.offcanvas,
.footer-contact,
.notice-modern,
.message-modern{
    overflow-wrap:anywhere;
    word-break:normal;
}

.cms-content p,
.cms-content li,
.cms-content a,
.cms-content span,
.cms-content strong,
.cms-content td,
.cms-content th,
.content-area p,
.content-area li,
.content-area a,
.card-body p,
.card-body a,
.card-body span{
    max-width:100%;
    overflow-wrap:anywhere;
}

/* Media uploaded through CMS can never escape its parent. */
img,
video,
canvas,
svg{
    max-width:100%;
}

.cms-content img,
.content-area img,
.card img{
    max-width:100%!important;
    height:auto!important;
}

iframe,
embed,
object{
    display:block;
    width:100%;
    max-width:100%;
}

/* Rich content such as pasted code/URLs remains readable without stretching cards. */
pre{
    max-width:100%;
    overflow-x:auto;
    white-space:pre-wrap;
    overflow-wrap:anywhere;
}

code{
    overflow-wrap:anywhere;
    word-break:break-word;
}

/* Flex/grid children often cause hidden mobile overflow unless min-width is reset. */
.d-flex > *,
.d-inline-flex > *,
[class*="d-flex"] > *{
    min-width:0;
}

.card-header.d-flex,
.card-footer.d-flex,
.section-head,
.page-header,
.page-actions{
    flex-wrap:wrap;
    gap:.5rem;
}

/* Buttons adapt to content instead of pushing outside their card. */
.btn,
.nav-link,
.dropdown-item{
    max-width:100%;
}

.btn{
    white-space:normal;
    overflow-wrap:anywhere;
    line-height:1.3;
}

.btn-group{
    max-width:100%;
    flex-wrap:wrap;
}

/* Forms remain within the available card width. */
.form-control,
.form-select,
.input-group,
.input-group > .form-control,
.input-group > .form-select{
    min-width:0;
    max-width:100%;
}

textarea.form-control{
    width:100%;
    resize:vertical;
}

/* Tables scroll inside their own container rather than making the whole page overflow. */
.table-responsive{
    width:100%;
    max-width:100%;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
}

.table-responsive > .table{
    margin-bottom:0;
}

.table td,
.table th{
    overflow-wrap:anywhere;
    word-break:normal;
    vertical-align:middle;
}

/* Avoid unusable fixed widths from editor-generated HTML. */
.cms-content table,
.content-area table{
    max-width:100%!important;
}

@media (max-width:767.98px){
    /* Cards and sections get safe mobile spacing. */
    .card-body{
        padding:1rem;
    }

    .card-header,
    .card-footer{
        padding-left:1rem;
        padding-right:1rem;
    }

    /* Action areas stack naturally when there is not enough room. */
    .card-header .d-flex,
    .card-footer .d-flex,
    .page-actions,
    .form-actions{
        flex-wrap:wrap!important;
    }

    .card-header .btn,
    .card-footer .btn,
    .page-actions .btn,
    .form-actions .btn{
        max-width:100%;
    }

    /* Very long headings should not escape the screen. */
    h1,h2,h3,h4,h5,h6{
        max-width:100%;
        overflow-wrap:anywhere;
    }

    /* File/URL fields can wrap to a new line. */
    .input-group{
        flex-wrap:wrap;
        gap:.4rem;
    }

    .input-group > .form-control,
    .input-group > .form-select{
        flex:1 1 180px;
        width:auto;
    }

    .input-group > .btn,
    .input-group > .input-group-text{
        flex:0 0 auto;
    }

    /* Keep CMS tables usable: horizontal scrolling happens only within the table block. */
    .cms-content .table-responsive,
    .content-area .table-responsive{
        margin-left:0;
        margin-right:0;
    }
}

@media (max-width:399.98px){
    .card-body{
        padding:.85rem;
    }

    .btn{
        font-size:.92rem;
    }

    .input-group > .form-control,
    .input-group > .form-select,
    .input-group > .btn{
        flex:1 1 100%;
        width:100%;
        border-radius:.45rem!important;
    }
}

/* =========================================================
   FINAL HOME SLIDER DISPLAY FIX
   ========================================================= */

/* Give hero text enough desktop width so normal titles do not wrap too early. */
.school-slider-content{
    min-width:0;
    max-width:860px;
}

.school-slider-slide .row{
    min-width:0;
}

.school-slider-slide h1{
    max-width:820px;
    font-size:clamp(2.8rem,4.4vw,4.35rem);
    line-height:1.04;
    margin:.7rem 0 1rem;
    text-wrap:balance;
    overflow-wrap:normal;
    word-break:normal;
}

/* Always keep the subtitle readable between the heading and CTA buttons. */
.school-slider-slide .hero-copy{
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
    width:100%;
    max-width:760px;
    margin:0;
    color:#f4f8ff;
    font-size:1.08rem;
    line-height:1.65;
    overflow-wrap:break-word;
}

.school-slider-slide .hero-actions{
    align-items:center;
    max-width:100%;
}

.school-slider-slide .hero-actions .btn{
    flex:0 1 auto;
    max-width:100%;
}

/* Keep controls visually clear but away from the text block. */
.school-slider-section .carousel-control-prev,
.school-slider-section .carousel-control-next{
    width:4.25%;
}

.school-slider-section .carousel-indicators{
    max-width:calc(100% - 2rem);
    margin-left:auto;
    margin-right:auto;
    flex-wrap:wrap;
    gap:2px;
}

/* Large tablets/smaller laptops */
@media (max-width:1199.98px){
    .school-slider-content{
        max-width:760px;
    }

    .school-slider-slide h1{
        max-width:720px;
        font-size:clamp(2.5rem,5vw,3.75rem);
    }

    .school-slider-slide .hero-copy{
        max-width:690px;
        font-size:1.02rem;
    }
}

/* Tablet */
@media (max-width:991.98px){
    .school-slider-slide{
        min-height:540px;
    }

    .school-slider-content{
        max-width:680px;
    }

    .school-slider-slide h1{
        max-width:650px;
        font-size:clamp(2.25rem,6vw,3.2rem);
        line-height:1.08;
    }

    .school-slider-slide .hero-copy{
        max-width:620px;
        font-size:1rem;
        line-height:1.58;
    }

    .school-slider-section .carousel-control-prev,
    .school-slider-section .carousel-control-next{
        width:6%;
    }
}

/* Phone */
@media (max-width:575.98px){
    .school-slider-slide{
        min-height:520px;
    }

    .school-slider-content{
        width:100%;
        max-width:100%;
        padding-left:.35rem;
        padding-right:.35rem;
    }

    .school-slider-slide h1{
        max-width:100%;
        font-size:clamp(2rem,10vw,2.65rem);
        line-height:1.08;
        margin:.5rem 0 .8rem;
        overflow-wrap:anywhere;
    }

    .school-slider-slide .hero-copy{
        max-width:100%;
        font-size:.94rem;
        line-height:1.5;
    }

    .school-slider-slide .hero-actions{
        display:grid!important;
        grid-template-columns:1fr!important;
        width:100%;
        gap:.65rem!important;
        margin-top:1rem!important;
    }

    .school-slider-slide .hero-actions .btn{
        width:100%!important;
        min-width:0;
        margin:0!important;
        white-space:normal;
    }

    .school-slider-section .carousel-control-prev,
    .school-slider-section .carousel-control-next{
        display:none!important;
    }

    .school-slider-section .carousel-indicators [data-bs-target]{
        width:20px;
        height:3px;
    }
}

/* Very small phone */
@media (max-width:359.98px){
    .school-slider-slide h1{
        font-size:1.85rem;
    }

    .school-slider-slide .hero-copy{
        font-size:.9rem;
    }

    .school-slider-slide .hero-actions .btn{
        font-size:.9rem;
        padding:.65rem .8rem;
    }
}

/* =========================================================
   MOBILE / TABLET NAVBAR MENU BUTTON — CLEAN FINAL FIX
   ========================================================= */
@media (max-width:1199.98px){

    /* Keep the mobile menu control neatly on the right side. */
    .school-navbar > .container{
        min-height:56px;
        justify-content:flex-end!important;
        align-items:center!important;
    }

    .school-menu-toggler,
    .school-navbar .school-menu-toggler{
        display:inline-flex!important;
        align-items:center!important;
        justify-content:center!important;
        gap:.5rem!important;

        width:auto!important;
        min-width:0!important;
        min-height:40px!important;
        height:40px;

        margin:.4rem 0 .4rem auto!important;
        padding:.5rem .82rem!important;

        border:0!important;
        border-radius:.55rem!important;
        background:#0a4f98!important;
        color:#fff!important;

        font-size:1rem!important;
        font-weight:600!important;
        line-height:1!important;
        white-space:nowrap!important;

        box-shadow:0 3px 10px rgba(10,79,152,.15)!important;
        transition:
            background-color .18s ease,
            box-shadow .18s ease,
            transform .18s ease!important;
    }

    .school-menu-toggler:hover{
        background:#083f7a!important;
        color:#fff!important;
    }

    .school-menu-toggler:focus,
    .school-menu-toggler:focus-visible{
        color:#fff!important;
        outline:0!important;
        box-shadow:
            0 0 0 .2rem rgba(10,79,152,.18),
            0 3px 10px rgba(10,79,152,.15)!important;
    }

    .school-menu-toggler:active{
        transform:translateY(1px);
    }

    /* Icon container keeps both hamburger and close icons perfectly aligned. */
    .school-menu-icon{
        position:relative;
        display:inline-flex;
        align-items:center;
        justify-content:center;
        width:1.35rem;
        height:1.35rem;
        flex:0 0 1.35rem;
    }

    .school-menu-icon i{
        position:absolute;
        inset:0;
        display:flex;
        align-items:center;
        justify-content:center;
        margin:0!important;
        font-size:1.35rem!important;
        line-height:1!important;
        transition:
            opacity .15s ease,
            transform .18s ease;
    }

    .school-menu-label{
        display:inline-block;
        line-height:1;
    }

    /* Closed state: hamburger. */
    .school-menu-toggler[aria-expanded="false"] .menu-icon-open{
        opacity:1;
        transform:rotate(0deg) scale(1);
    }

    .school-menu-toggler[aria-expanded="false"] .menu-icon-close{
        opacity:0;
        transform:rotate(-45deg) scale(.7);
    }

    /* Open state: close icon. */
    .school-menu-toggler[aria-expanded="true"]{
        background:#083f7a!important;
    }

    .school-menu-toggler[aria-expanded="true"] .menu-icon-open{
        opacity:0;
        transform:rotate(45deg) scale(.7);
    }

    .school-menu-toggler[aria-expanded="true"] .menu-icon-close{
        opacity:1;
        transform:rotate(0deg) scale(1);
    }

    /*
     * The expanded menu always starts on its own row.
     * This prevents the Menu button and links/search from squeezing each other.
     */
    .school-navbar .navbar-collapse{
        flex-basis:100%!important;
        width:100%!important;
        margin-top:0!important;
        padding-top:.35rem!important;
        border-top:1px solid rgba(10,79,152,.09);
    }
}

@media (max-width:575.98px){
    .school-navbar > .container{
        min-height:52px;
    }

    .school-menu-toggler,
    .school-navbar .school-menu-toggler{
        height:38px;
        min-height:38px!important;
        padding:.45rem .72rem!important;
        font-size:.96rem!important;
        border-radius:.5rem!important;
    }

    .school-menu-icon{
        width:1.2rem;
        height:1.2rem;
        flex-basis:1.2rem;
    }

    .school-menu-icon i{
        font-size:1.2rem!important;
    }
}

/* =========================================================
   MOBILE PHONE LINE + PREMIUM HOME SLIDER VISUAL FIX
   ========================================================= */

/* ---------- Top contact bar ---------- */
.topbar-address,
.topbar-phone{
    display:inline-flex;
    align-items:center;
    gap:.25rem;
}

.topbar-phones{
    display:inline-flex;
    align-items:center;
    gap:.8rem;
    white-space:nowrap;
}

.topbar-phones .topbar-phone{
    width:auto!important;
    flex:0 0 auto;
}

@media (max-width:575.98px){
    .topbar .container{
        gap:.35rem!important;
    }

    .topbar-info{
        gap:.3rem!important;
    }

    /* Address occupies its own row. */
    .topbar-info .topbar-address{
        width:100%!important;
        justify-content:center;
        text-align:center;
        font-size:.75rem;
        line-height:1.35;
    }

    /* BOTH mobile numbers stay together on ONE line. */
    .topbar-phones{
        width:100%;
        justify-content:center;
        flex-wrap:nowrap!important;
        gap:.65rem;
        line-height:1.2;
    }

    .topbar-phones .topbar-phone{
        width:auto!important;
        display:inline-flex!important;
        justify-content:center;
        white-space:nowrap;
        font-size:.75rem;
        line-height:1.2;
    }

    .topbar-phones .topbar-phone:first-child{
        padding-right:.65rem;
        border-right:1px solid rgba(255,255,255,.34);
    }

    .topbar-phones .bi-telephone-fill{
        font-size:.72rem;
    }

    /* Social/TC/enquiry row stays centered and compact. */
    .topbar .container > .d-flex:last-child{
        justify-content:center!important;
        gap:.65rem!important;
    }
}

@media (max-width:374.98px){
    .topbar-phones{
        gap:.42rem;
    }

    .topbar-phones .topbar-phone{
        font-size:.69rem;
        letter-spacing:0;
    }

    .topbar-phones .topbar-phone:first-child{
        padding-right:.42rem;
    }
}

/* ---------- Premium home slider ---------- */
.school-slider-section{
    position:relative;
    overflow:hidden;
    background:#06294f;
}

.school-slider-section .carousel,
.school-slider-section .carousel-inner,
.school-slider-section .carousel-item{
    overflow:hidden;
}

.school-slider-slide{
    position:relative;
    min-height:clamp(560px,65vh,690px);
    background-position:center 42%;
    background-repeat:no-repeat;
    background-size:cover;
    isolation:isolate;
}

/* Layered cinematic overlay: readable text without hiding the school photo. */
.school-slider-overlay{
    position:absolute;
    inset:0;
    z-index:-1;
    background:
        linear-gradient(
            90deg,
            rgba(3,27,57,.94) 0%,
            rgba(4,42,82,.84) 31%,
            rgba(4,48,91,.56) 55%,
            rgba(3,32,65,.16) 79%,
            rgba(3,28,55,.08) 100%
        ),
        linear-gradient(
            0deg,
            rgba(3,24,50,.50) 0%,
            rgba(3,24,50,.06) 48%,
            rgba(3,24,50,.16) 100%
        );
}

/* Gentle light accent gives depth without covering the image. */
.school-slider-slide::after{
    content:"";
    position:absolute;
    z-index:-1;
    width:420px;
    height:420px;
    left:-150px;
    bottom:-205px;
    border-radius:50%;
    background:radial-gradient(
        circle,
        rgba(243,182,31,.18) 0%,
        rgba(243,182,31,.06) 38%,
        transparent 72%
    );
    pointer-events:none;
}

.school-slider-content{
    position:relative;
    max-width:820px;
    padding-left:1.35rem!important;
    border-left:4px solid rgba(243,182,31,.95);
}

/* Premium kicker instead of plain text floating above heading. */
.school-slider-slide .hero-kicker{
    display:inline-flex;
    align-items:center;
    width:max-content;
    max-width:100%;
    padding:.4rem .72rem;
    border:1px solid rgba(255,255,255,.22);
    border-radius:999px;
    background:rgba(5,49,94,.42);
    backdrop-filter:blur(5px);
    -webkit-backdrop-filter:blur(5px);
    color:#ffd352;
    font-size:.78rem;
    font-weight:800;
    letter-spacing:.09em;
    line-height:1.2;
    text-transform:uppercase;
    box-shadow:0 6px 18px rgba(0,0,0,.10);
}

.school-slider-slide h1{
    max-width:810px;
    margin:.85rem 0 .9rem;
    color:#fff;
    font-size:clamp(2.8rem,4.5vw,4.5rem);
    font-weight:700;
    line-height:1.04;
    letter-spacing:-.018em;
    text-wrap:balance;
    text-shadow:0 3px 20px rgba(0,0,0,.24);
}

.school-slider-slide .hero-copy{
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
    max-width:700px;
    color:rgba(255,255,255,.90);
    font-size:1.07rem;
    line-height:1.65;
    text-shadow:0 2px 10px rgba(0,0,0,.18);
}

/* More polished CTA treatment. */
.school-slider-slide .hero-actions{
    align-items:center;
    gap:.7rem!important;
    margin-top:1.35rem!important;
}

.school-slider-slide .hero-actions .btn{
    min-height:48px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:.65rem;
    padding:.72rem 1.25rem!important;
    font-size:.94rem;
    font-weight:700;
    line-height:1.2;
    box-shadow:0 10px 24px rgba(0,0,0,.14);
    transition:
        transform .18s ease,
        box-shadow .18s ease,
        background-color .18s ease,
        border-color .18s ease;
}

.school-slider-slide .hero-actions .btn-danger{
    border-color:#e92f40;
    background:linear-gradient(135deg,#ef3348,#db1e31);
}

.school-slider-slide .hero-actions .btn-light{
    border:1px solid rgba(255,255,255,.76);
    background:rgba(255,255,255,.94);
    color:#0755ae!important;
}

.school-slider-slide .hero-actions .btn:hover{
    transform:translateY(-2px);
    box-shadow:0 14px 30px rgba(0,0,0,.20);
}

/* Modern slider indicators. */
.school-slider-section .carousel-indicators{
    align-items:center;
    gap:.3rem;
    margin-bottom:1.05rem;
}

.school-slider-section .carousel-indicators [data-bs-target]{
    width:26px;
    height:4px;
    margin:0;
    border:0;
    border-radius:999px;
    background-color:rgba(255,255,255,.55);
    opacity:1;
    transition:
        width .2s ease,
        background-color .2s ease;
}

.school-slider-section .carousel-indicators .active{
    width:42px;
    background-color:#fff;
}

/* Desktop arrows with subtle circular treatment. */
@media (min-width:992px){
    .school-slider-section .carousel-control-prev,
    .school-slider-section .carousel-control-next{
        width:4.5%;
        opacity:.9;
    }

    .school-slider-section .carousel-control-prev-icon,
    .school-slider-section .carousel-control-next-icon{
        width:42px;
        height:42px;
        border-radius:50%;
        background-size:17px 17px;
        background-color:rgba(5,42,79,.32);
        border:1px solid rgba(255,255,255,.25);
        backdrop-filter:blur(4px);
        -webkit-backdrop-filter:blur(4px);
    }
}

/* Tablet */
@media (max-width:991.98px){
    .school-slider-slide{
        min-height:560px;
        background-position:center center;
    }

    .school-slider-content{
        max-width:690px;
        padding-left:1.1rem!important;
    }

    .school-slider-slide h1{
        font-size:clamp(2.4rem,6vw,3.45rem);
    }
}

/* Mobile */
@media (max-width:575.98px){
    .school-slider-slide{
        min-height:545px;
        background-position:center center;
    }

    .school-slider-overlay{
        background:
            linear-gradient(
                180deg,
                rgba(3,32,63,.40) 0%,
                rgba(3,35,69,.58) 30%,
                rgba(3,31,63,.90) 72%,
                rgba(2,25,52,.96) 100%
            );
    }

    .school-slider-slide::after{
        width:300px;
        height:300px;
        left:-125px;
        bottom:-165px;
    }

    .school-slider-content{
        width:100%;
        max-width:100%;
        margin-top:auto;
        margin-bottom:auto;
        padding-left:.85rem!important;
        padding-right:.15rem!important;
        border-left:3px solid rgba(243,182,31,.95);
    }

    .school-slider-slide .hero-kicker{
        padding:.32rem .58rem;
        font-size:.68rem;
        letter-spacing:.075em;
    }

    .school-slider-slide h1{
        max-width:100%;
        margin:.65rem 0 .7rem;
        font-size:clamp(2rem,10.5vw,2.75rem);
        font-weight:650;
        line-height:1.08;
        letter-spacing:-.015em;
        overflow-wrap:normal;
        word-break:normal;
    }

    .school-slider-slide .hero-copy{
        max-width:100%;
        font-size:.92rem;
        line-height:1.5;
        color:rgba(255,255,255,.88);
    }

    .school-slider-slide .hero-actions{
        display:grid!important;
        grid-template-columns:1fr!important;
        width:100%;
        gap:.6rem!important;
        margin-top:1rem!important;
    }

    .school-slider-slide .hero-actions .btn{
        width:100%!important;
        min-height:46px;
        margin:0!important;
        border-radius:.62rem;
        padding:.68rem .9rem!important;
        font-size:.91rem;
    }

    .school-slider-section .carousel-indicators{
        margin-bottom:.75rem;
    }

    .school-slider-section .carousel-indicators [data-bs-target]{
        width:18px;
        height:3px;
    }

    .school-slider-section .carousel-indicators .active{
        width:30px;
    }
}

/* Extra-small phones */
@media (max-width:359.98px){
    .school-slider-slide{
        min-height:530px;
    }

    .school-slider-slide h1{
        font-size:1.9rem;
    }

    .school-slider-slide .hero-copy{
        font-size:.87rem;
    }
}

/* =========================================================
   PREMIUM SPACING / CONTAINER / SECTION RHYTHM FIX
   =========================================================
   IMPORTANT:
   A previous overflow-safety rule set .container max-width:100%,
   which made desktop content stretch almost edge-to-edge.
   These rules restore a premium centered layout while retaining
   all mobile overflow protection.
   ========================================================= */

/* ---------- Premium centered page width ---------- */
.container{
    width:100%;
    margin-left:auto!important;
    margin-right:auto!important;
    padding-left:clamp(1rem,2vw,1.75rem)!important;
    padding-right:clamp(1rem,2vw,1.75rem)!important;
}

/* Restore deliberate Bootstrap-like content widths. */
@media (min-width:576px){
    .container{max-width:560px!important;}
}
@media (min-width:768px){
    .container{max-width:750px!important;}
}
@media (min-width:992px){
    .container{max-width:980px!important;}
}
@media (min-width:1200px){
    .container{max-width:1180px!important;}
}
@media (min-width:1400px){
    .container{max-width:1380px!important;}
}
@media (min-width:1700px){
    .container{max-width:1460px!important;}
}

/* Full-width areas stay full-bleed; only their content is centered. */
.topbar,
.school-banner-shell,
.school-navbar,
.ticker-wrap,
.school-slider-section,
.feature-strip,
.section,
.page-title,
.page-banner,
.admission-cta,
.site-footer{
    width:100%;
}

/* ---------- Header spacing ---------- */
@media (min-width:992px){
    .topbar{
        padding:.48rem 0;
    }

    .school-banner-shell{
        padding:.55rem 0 .7rem;
    }

    .school-header-banner{
        max-height:180px;
        width:auto;
        max-width:100%;
        margin:0 auto;
        display:block;
    }

    .school-navbar .nav-link{
        padding-top:.95rem;
        padding-bottom:.95rem;
    }

    .ticker-wrap .container{
        min-height:46px;
    }
}

/* ---------- Page title / inner pages ---------- */
.page-title,
.page-banner{
    padding:clamp(3.2rem,5vw,4.6rem) 0;
}

.page-title h1,
.page-banner h1{
    margin:0;
    line-height:1.12;
    letter-spacing:-.015em;
}

.inner-page main > .container.py-5{
    padding-top:clamp(3.5rem,5vw,5rem)!important;
    padding-bottom:clamp(3.75rem,5.5vw,5.4rem)!important;
}

/* Message pages: better image/content balance. */
.inner-page main > .container.py-5 > .row{
    --bs-gutter-x:clamp(1.75rem,3vw,3.25rem);
    --bs-gutter-y:2rem;
    align-items:flex-start;
}

.inner-page main > .container.py-5 .col-lg-3 > img{
    width:100%;
    max-width:330px;
    display:block;
    margin-inline:auto;
    border-radius:1rem!important;
    box-shadow:0 16px 40px rgba(8,44,90,.12)!important;
}

.inner-page main > .container.py-5 .col-lg-3 h4{
    margin-top:1.15rem!important;
    color:var(--school-dark);
    font-size:1.25rem;
}

.content-area{
    max-width:100%;
    line-height:1.82;
    font-size:1.01rem;
}

.content-area > :first-child{
    margin-top:0;
}

.content-area p{
    margin-bottom:1.2rem;
}

.content-area h2,
.content-area h3,
.content-area h4{
    color:var(--school-dark);
    margin-top:1.75rem;
    margin-bottom:.8rem;
    line-height:1.28;
}

.content-area ul,
.content-area ol{
    padding-left:1.35rem;
    margin-bottom:1.35rem;
}

.content-area li + li{
    margin-top:.4rem;
}

/* ---------- Home section rhythm ---------- */
.section{
    padding:clamp(4.75rem,6vw,6.5rem) 0;
}

.feature-strip .container{
    padding-top:.5rem!important;
    padding-bottom:.5rem!important;
}

.feature-strip .row{
    --bs-gutter-x:1rem;
    --bs-gutter-y:1rem;
    padding-top:1.35rem!important;
    padding-bottom:1.35rem!important;
}

.feature-stat{
    padding:1.25rem 1.15rem;
    border-radius:1rem;
}

.home-about .row{
    --bs-gutter-x:clamp(2rem,4.5vw,4.75rem);
}

.home-about .lead-sm{
    max-width:650px;
}

.home-about .school-quote{
    margin-top:1.6rem!important;
    margin-bottom:1.65rem!important;
    padding:1rem 1.2rem;
}

.about-photo-wrap{
    margin:0 auto;
    max-width:670px;
}

.about-photo{
    height:clamp(340px,29vw,430px);
}

.vision-section{
    padding-top:clamp(4.8rem,6vw,6rem);
    padding-bottom:clamp(4.8rem,6vw,6rem);
}

.vision-section .row{
    --bs-gutter-x:1.5rem;
    --bs-gutter-y:1.5rem;
}

.vision-card{
    padding:clamp(1.8rem,3vw,2.45rem);
    border-radius:1.15rem;
}

.facilities-section .section-heading,
.section-heading{
    margin-bottom:2rem;
}

.facility-card{
    padding:1.8rem;
    border-radius:1rem;
}

/* ---------- Generic premium cards ---------- */
.content-card,
.card,
.contact-panel,
.message-modern,
.notice-modern,
.facility-card{
    border-radius:1rem;
}

.content-card{
    padding:clamp(1.35rem,2.5vw,2rem);
}

.card-body{
    padding:clamp(1.2rem,2vw,1.65rem);
}

/* ---------- Contact page / map ---------- */
.contact-section{
    padding-top:clamp(4rem,5vw,5.25rem)!important;
    padding-bottom:clamp(4.5rem,6vw,6rem)!important;
}

.contact-section .row.g-4{
    --bs-gutter-x:1.75rem;
    --bs-gutter-y:1.75rem;
}

.contact-section .mt-5{
    margin-top:clamp(3.5rem,5vw,5rem)!important;
}

.contact-section .section-heading{
    margin-bottom:1.35rem!important;
    padding-bottom:.35rem;
}

.contact-map-card,
.map-embed{
    border-radius:1.15rem!important;
    overflow:hidden;
    box-shadow:0 18px 48px rgba(8,44,90,.10);
}

.map-embed iframe{
    min-height:420px;
}

/* ---------- Admission CTA ---------- */
.admission-cta .container{
    padding-top:clamp(3.5rem,5vw,4.75rem)!important;
    padding-bottom:clamp(3.5rem,5vw,4.75rem)!important;
}

/* ---------- Footer ---------- */
.site-footer .container.py-5{
    padding-top:clamp(3.75rem,5vw,5rem)!important;
    padding-bottom:clamp(3.75rem,5vw,5rem)!important;
}

.site-footer .row{
    --bs-gutter-x:clamp(2rem,4vw,4rem);
    --bs-gutter-y:2.5rem;
}

.site-footer h5{
    margin-bottom:.35rem!important;
}

.site-footer h6{
    margin-bottom:1.25rem;
    padding-bottom:.65rem;
    position:relative;
}

.site-footer h6::after{
    content:"";
    position:absolute;
    left:0;
    bottom:0;
    width:38px;
    height:2px;
    border-radius:999px;
    background:var(--school-gold);
}

.site-footer .footer-links li{
    margin:.65rem 0;
}

.site-footer .footer-contact{
    margin:.85rem 0;
    line-height:1.55;
}

.site-footer .footer-logo{
    width:78px;
    height:78px;
}

.footer-bottom{
    padding:1.15rem 0;
}

.footer-bottom .container{
    min-height:28px;
    align-items:center;
}

/* ---------- Desktop breathing room ---------- */
@media (min-width:1200px){
    .school-slider-content{
        padding-left:1.65rem!important;
    }

    .school-slider-slide .hero-actions{
        margin-top:1.55rem!important;
    }

    .page-title + .container,
    .page-banner + .container{
        position:relative;
    }
}

/* ---------- Tablet ---------- */
@media (max-width:991.98px){
    .container{
        padding-left:1.25rem!important;
        padding-right:1.25rem!important;
    }

    .section{
        padding:4rem 0;
    }

    .inner-page main > .container.py-5{
        padding-top:3.5rem!important;
        padding-bottom:4rem!important;
    }

    .inner-page main > .container.py-5 .col-lg-3 > img{
        max-width:300px;
        margin-left:0;
    }

    .site-footer .container.py-5{
        padding-top:3.5rem!important;
        padding-bottom:3.5rem!important;
    }
}

/* ---------- Mobile ---------- */
@media (max-width:767.98px){
    .container{
        max-width:100%!important;
        padding-left:1rem!important;
        padding-right:1rem!important;
    }

    .page-title,
    .page-banner{
        padding:2.6rem 0;
    }

    .section{
        padding:3.3rem 0;
    }

    .feature-strip .row{
        padding-top:1rem!important;
        padding-bottom:1rem!important;
    }

    .feature-stat{
        padding:1.05rem;
    }

    .home-about .row{
        --bs-gutter-y:2.25rem;
    }

    .vision-section{
        padding-top:3.4rem;
        padding-bottom:3.4rem;
    }

    .vision-card{
        padding:1.45rem;
    }

    .inner-page main > .container.py-5{
        padding-top:2.75rem!important;
        padding-bottom:3.25rem!important;
    }

    .inner-page main > .container.py-5 .col-lg-3 > img{
        max-width:260px;
        margin-inline:auto;
    }

    .content-area{
        font-size:.96rem;
        line-height:1.72;
    }

    .contact-section{
        padding-top:3rem!important;
        padding-bottom:3.75rem!important;
    }

    .contact-section .mt-5{
        margin-top:3rem!important;
    }

    .map-embed iframe{
        min-height:300px;
    }

    .site-footer .container.py-5{
        padding-top:3rem!important;
        padding-bottom:3rem!important;
    }

    .site-footer .row{
        --bs-gutter-y:2.1rem;
    }

    .footer-bottom{
        padding:1rem 0;
    }
}

/* Small-phone edge breathing room. */
@media (max-width:399.98px){
    .container{
        padding-left:.85rem!important;
        padding-right:.85rem!important;
    }

    .section{
        padding:2.85rem 0;
    }

    .page-title,
    .page-banner{
        padding:2.25rem 0;
    }

    .content-area{
        font-size:.94rem;
    }
}

/* =========================================================
   HOME SLIDER — TITLE ONLY, CENTERED
   ========================================================= */

/*
 * The slider intentionally displays ONLY the slide title.
 * Subtitle, kicker and CTA buttons are removed from the Blade markup.
 */
.school-slider-slide{
    display:flex;
    align-items:center;
    justify-content:center;
}

.school-slider-slide .container,
.school-slider-slide .row{
    height:100%;
}

.school-slider-title-only{
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    max-width:100%!important;
    min-height:100%;
    padding:2rem 4.5rem!important;
    margin:0!important;
    border-left:0!important;
}

/* Softer centered overlay suitable for a single title. */
.school-slider-overlay{
    background:
        linear-gradient(
            180deg,
            rgba(3,27,57,.42) 0%,
            rgba(3,34,70,.56) 48%,
            rgba(3,27,57,.48) 100%
        ),
        radial-gradient(
            circle at center,
            rgba(8,64,119,.18) 0%,
            rgba(3,31,64,.22) 46%,
            rgba(2,24,50,.42) 100%
        )!important;
}

/* Remove decorative accent from previous left-aligned layout. */
.school-slider-title-only::before,
.school-slider-title-only::after{
    display:none!important;
}

.school-slider-title-only h1{
    width:auto;
    max-width:1050px!important;
    margin:0 auto!important;
    padding:.15em .3em;
    color:#fff;
    font-size:clamp(3rem,5.2vw,5.4rem)!important;
    font-weight:650!important;
    line-height:1.08!important;
    letter-spacing:-.025em!important;
    text-align:center!important;
    text-wrap:balance;
    text-shadow:
        0 3px 10px rgba(0,0,0,.30),
        0 12px 36px rgba(0,0,0,.24)!important;
}

/* Keep indicators comfortably below the centered title. */
.school-slider-section .carousel-indicators{
    margin-bottom:1.15rem!important;
}

/* Tablet */
@media (max-width:991.98px){
    .school-slider-title-only{
        padding:2rem 3rem!important;
    }

    .school-slider-title-only h1{
        max-width:780px!important;
        font-size:clamp(2.65rem,7vw,4.15rem)!important;
    }
}

/* Mobile */
@media (max-width:575.98px){
    .school-slider-slide{
        min-height:500px!important;
    }

    .school-slider-title-only{
        padding:1.5rem 1.15rem 3rem!important;
    }

    .school-slider-title-only h1{
        max-width:100%!important;
        font-size:clamp(2.1rem,10.5vw,3rem)!important;
        line-height:1.1!important;
        letter-spacing:-.018em!important;
        overflow-wrap:normal;
        word-break:normal;
    }

    .school-slider-section .carousel-indicators{
        margin-bottom:.75rem!important;
    }
}

@media (max-width:359.98px){
    .school-slider-slide{
        min-height:470px!important;
    }

    .school-slider-title-only h1{
        font-size:1.95rem!important;
    }
}

/* =========================================================
   PREMIUM MOBILE NAVBAR — INTEGRATED, NOT CTA-LIKE
   ========================================================= */
@media (max-width:1199.98px){

    /* Compact clean navigation strip */
    .school-navbar{
        background:#fff!important;
        border-top:1px solid #edf2f7;
        border-bottom:1px solid #e8eef5;
        box-shadow:0 4px 14px rgba(8,44,90,.035);
    }

    .school-navbar > .container{
        min-height:54px!important;
        display:flex!important;
        align-items:center!important;
        justify-content:flex-end!important;
        padding-top:.35rem!important;
        padding-bottom:.35rem!important;
    }

    /*
     * Menu control behaves like a navigation control,
     * not a prominent CTA button.
     */
    .school-menu-toggler,
    .school-navbar .school-menu-toggler{
        display:inline-flex!important;
        align-items:center!important;
        justify-content:center!important;
        gap:.45rem!important;

        width:auto!important;
        min-width:0!important;
        height:38px!important;
        min-height:38px!important;

        margin:0 0 0 auto!important;
        padding:.42rem .72rem!important;

        border:1px solid #d9e4ef!important;
        border-radius:.55rem!important;
        background:#f8fbfe!important;
        color:#0b4f91!important;

        font-size:.95rem!important;
        font-weight:650!important;
        line-height:1!important;
        letter-spacing:.01em;
        white-space:nowrap!important;

        box-shadow:none!important;
        transition:
            background-color .18s ease,
            border-color .18s ease,
            color .18s ease!important;
    }

    .school-menu-toggler:hover,
    .school-menu-toggler:focus,
    .school-menu-toggler:focus-visible{
        background:#eef6fd!important;
        border-color:#bfd4e9!important;
        color:#083f78!important;
        outline:0!important;
        box-shadow:none!important;
    }

    .school-menu-toggler[aria-expanded="true"]{
        background:#eef6fd!important;
        border-color:#bfd4e9!important;
        color:#083f78!important;
    }

    .school-menu-icon{
        position:relative;
        display:inline-flex;
        align-items:center;
        justify-content:center;
        width:1.15rem;
        height:1.15rem;
        flex:0 0 1.15rem;
    }

    .school-menu-icon i{
        position:absolute;
        inset:0;
        display:flex;
        align-items:center;
        justify-content:center;
        margin:0!important;
        font-size:1.08rem!important;
        line-height:1!important;
        transition:
            opacity .15s ease,
            transform .18s ease;
    }

    .school-menu-label{
        display:inline-block;
        line-height:1;
    }

    .school-menu-toggler[aria-expanded="false"] .menu-icon-open{
        opacity:1;
        transform:rotate(0deg) scale(1);
    }

    .school-menu-toggler[aria-expanded="false"] .menu-icon-close{
        opacity:0;
        transform:rotate(-45deg) scale(.75);
    }

    .school-menu-toggler[aria-expanded="true"] .menu-icon-open{
        opacity:0;
        transform:rotate(45deg) scale(.75);
    }

    .school-menu-toggler[aria-expanded="true"] .menu-icon-close{
        opacity:1;
        transform:rotate(0deg) scale(1);
    }

    /* Expanded navigation opens as a clean full-width panel */
    .school-navbar .navbar-collapse{
        flex-basis:100%!important;
        width:100%!important;
        margin-top:.35rem!important;
        padding:.65rem 0 .8rem!important;
        border-top:1px solid #edf2f7;
        background:#fff;
    }

    .school-navbar .navbar-nav{
        gap:.15rem!important;
    }

    .school-navbar .navbar-nav .nav-link{
        display:flex!important;
        align-items:center!important;
        justify-content:space-between!important;
        min-height:42px;
        padding:.62rem .75rem!important;
        border-radius:.45rem;
        color:#173b61!important;
        font-size:.95rem;
        font-weight:560;
    }

    .school-navbar .navbar-nav .nav-link:hover,
    .school-navbar .navbar-nav .nav-link:focus,
    .school-navbar .navbar-nav .nav-link.active{
        background:#f4f8fc!important;
        color:#0a4f98!important;
    }

    .school-navbar .submenu-toggle{
        width:38px!important;
        height:38px!important;
        min-width:38px!important;
        border:0!important;
        border-radius:.4rem!important;
        background:#f5f8fb!important;
        color:#0a4f98!important;
        box-shadow:none!important;
    }

    .school-navbar .submenu-toggle:hover{
        background:#eaf2fa!important;
    }

    /* Search should fit neatly below menu items on mobile/tablet */
    .school-navbar .nav-search,
    .school-navbar form{
        width:100%;
        max-width:100%;
        margin-top:.55rem;
    }
}

@media (max-width:575.98px){
    .school-navbar > .container{
        min-height:50px!important;
        padding-left:.85rem!important;
        padding-right:.85rem!important;
    }

    .school-menu-toggler,
    .school-navbar .school-menu-toggler{
        height:36px!important;
        min-height:36px!important;
        padding:.38rem .64rem!important;
        font-size:.9rem!important;
        border-radius:.5rem!important;
    }

    .school-menu-icon{
        width:1.05rem;
        height:1.05rem;
        flex-basis:1.05rem;
    }

    .school-menu-icon i{
        font-size:1rem!important;
    }

    .school-navbar .navbar-collapse{
        padding-top:.55rem!important;
        padding-bottom:.7rem!important;
    }

    .school-navbar .navbar-nav .nav-link{
        min-height:40px;
        padding:.58rem .65rem!important;
        font-size:.92rem;
    }
}

/* =========================================================
   SLIDER TITLE LEFT-ALIGNED + NORMAL STYLE
   ========================================================= */
.school-slider-slide .container{
    display:flex;
    align-items:center;
}

.school-slider-title-only,
.school-slider-title-only.text-start{
    text-align:left!important;
    margin-left:0;
    margin-right:auto;
}

.school-slider-content.school-slider-title-only{
    max-width:720px;
}

.school-slider-title-only h1,
.school-slider-slide .school-slider-title-only h1{
    max-width:680px;
    margin:0;
    text-align:left!important;
    font-size:clamp(2.15rem,4.8vw,3.9rem);
    font-weight:600!important;
    line-height:1.12;
    letter-spacing:0;
    text-wrap:pretty;
    overflow-wrap:break-word;
    word-break:normal;
    text-shadow:0 2px 10px rgba(0,0,0,.12);
}

@media (max-width:1199.98px){
    .school-slider-content.school-slider-title-only{
        max-width:640px;
    }

    .school-slider-title-only h1,
    .school-slider-slide .school-slider-title-only h1{
        max-width:620px;
        font-size:clamp(2rem,5vw,3.35rem);
    }
}

@media (max-width:991.98px){
    .school-slider-slide{
        min-height:500px;
    }

    .school-slider-content.school-slider-title-only{
        max-width:560px;
    }

    .school-slider-title-only h1,
    .school-slider-slide .school-slider-title-only h1{
        max-width:540px;
        font-size:clamp(1.9rem,5.5vw,2.9rem);
        line-height:1.14;
    }
}

@media (max-width:575.98px){
    .school-slider-slide{
        min-height:440px;
    }

    .school-slider-slide .container{
        padding-left:1rem;
        padding-right:1rem;
    }

    .school-slider-content.school-slider-title-only{
        max-width:100%;
        padding-left:0!important;
        padding-right:2.4rem!important;
    }

    .school-slider-title-only h1,
    .school-slider-slide .school-slider-title-only h1{
        max-width:100%;
        font-size:clamp(1.7rem,9vw,2.35rem);
        line-height:1.16;
        margin:0;
    }
}

/* =========================================================
   SLIDER TITLE — MORE LEFT + NORMAL TEXT
   ========================================================= */

/* Push the title area closer to the left edge of the hero. */
.school-slider-slide .container{
    max-width:none!important;
    width:100%!important;
    padding-left:clamp(1rem,2.2vw,2.25rem)!important;
    padding-right:clamp(1rem,2.2vw,2.25rem)!important;
}

.school-slider-content.school-slider-title-only{
    max-width:620px!important;
    margin-left:0!important;
    margin-right:auto!important;
    padding-left:0!important;
    padding-right:1rem!important;
    border-left:0!important;
}

/* Plain text treatment — not a heading style. */
.slider-title-text{
    display:block;
    max-width:600px;
    margin:0;
    color:#fff;
    font-size:clamp(1.8rem,3vw,2.65rem);
    font-weight:400;
    line-height:1.2;
    letter-spacing:0;
    text-align:left;
    text-wrap:balance;
    text-shadow:0 2px 8px rgba(0,0,0,.18);
}

@media (min-width:1400px){
    .school-slider-slide .container{
        padding-left:1.75rem!important;
    }
}

@media (max-width:991.98px){
    .school-slider-content.school-slider-title-only{
        max-width:540px!important;
    }

    .slider-title-text{
        max-width:520px;
        font-size:clamp(1.65rem,4vw,2.2rem);
    }
}

@media (max-width:575.98px){
    .school-slider-slide .container{
        padding-left:.8rem!important;
        padding-right:.8rem!important;
    }

    .school-slider-content.school-slider-title-only{
        max-width:100%!important;
        padding-right:2rem!important;
    }

    .slider-title-text{
        max-width:100%;
        font-size:1.55rem;
        font-weight:400;
        line-height:1.22;
    }
}

@media (max-width:359.98px){
    .slider-title-text{
        font-size:1.4rem;
    }
}

/* =========================================================
   ADVANCED PREMIUM SLIDER — LEFT NORMAL TITLE
   ========================================================= */

/* Better hero proportions */
.school-slider-section{
    position:relative;
    overflow:hidden;
    background:#06284d;
}

.school-slider-slide{
    position:relative;
    min-height:clamp(500px,62vh,650px);
    background-position:center center;
    background-size:cover;
    background-repeat:no-repeat;
    isolation:isolate;
}

/* Premium layered overlay: readable left side, visible image on right */
.school-slider-overlay{
    position:absolute;
    inset:0;
    z-index:-1;
    background:
        linear-gradient(
            90deg,
            rgba(3,27,57,.86) 0%,
            rgba(3,36,72,.70) 34%,
            rgba(3,38,75,.42) 58%,
            rgba(3,31,63,.18) 78%,
            rgba(3,25,51,.08) 100%
        ),
        linear-gradient(
            180deg,
            rgba(0,0,0,.08) 0%,
            rgba(0,0,0,.02) 45%,
            rgba(0,0,0,.22) 100%
        );
}

/* Subtle depth layer */
.school-slider-slide::after{
    content:"";
    position:absolute;
    inset:0;
    z-index:-1;
    pointer-events:none;
    background:
        radial-gradient(
            circle at 18% 50%,
            rgba(18,92,160,.14) 0%,
            rgba(18,92,160,.04) 28%,
            transparent 55%
        );
}

/* Title position */
.school-slider-slide .container{
    width:100%!important;
    max-width:none!important;
    display:flex;
    align-items:center;
    padding-left:clamp(2rem,3.3vw,4.25rem)!important;
    padding-right:clamp(1.25rem,2.5vw,3rem)!important;
}

.school-slider-content.school-slider-title-only{
    width:100%;
    max-width:650px!important;
    margin:0 auto 0 0!important;
    padding:0!important;
    border:0!important;
}

/* Plain, normal title — intentionally NOT heading-like */
.slider-title-text{
    display:block;
    max-width:620px;
    margin:0;
    padding:0;
    color:#fff;
    font-size:clamp(1.9rem,3vw,2.75rem);
    font-weight:400;
    line-height:1.2;
    letter-spacing:0;
    text-align:left;
    text-wrap:balance;
    text-shadow:0 2px 10px rgba(0,0,0,.22);
}

/* Smooth slide transition */
.school-slider-section .carousel-item{
    transition:opacity .65s ease-in-out;
}

.school-slider-section .carousel-item .school-slider-slide{
    transform:scale(1.015);
    transition:transform 5.5s ease;
}

.school-slider-section .carousel-item.active .school-slider-slide{
    transform:scale(1);
}

/* Premium navigation arrows */
.school-slider-section .carousel-control-prev,
.school-slider-section .carousel-control-next{
    width:4.6%;
    opacity:1;
}

.school-slider-section .carousel-control-prev-icon,
.school-slider-section .carousel-control-next-icon{
    width:42px;
    height:42px;
    border-radius:50%;
    background-size:16px 16px;
    background-color:rgba(4,38,73,.34);
    border:1px solid rgba(255,255,255,.30);
    box-shadow:0 6px 20px rgba(0,0,0,.12);
    backdrop-filter:blur(5px);
    -webkit-backdrop-filter:blur(5px);
    transition:
        background-color .2s ease,
        transform .2s ease,
        border-color .2s ease;
}

.school-slider-section .carousel-control-prev:hover .carousel-control-prev-icon,
.school-slider-section .carousel-control-next:hover .carousel-control-next-icon{
    background-color:rgba(4,49,96,.65);
    border-color:rgba(255,255,255,.55);
    transform:scale(1.06);
}

/* Elegant indicators */
.school-slider-section .carousel-indicators{
    align-items:center;
    justify-content:center;
    gap:.34rem;
    margin-bottom:1.05rem;
}

.school-slider-section .carousel-indicators [data-bs-target]{
    width:24px;
    height:3px;
    margin:0;
    border:0;
    border-radius:999px;
    background:#fff;
    opacity:.48;
    transition:
        width .2s ease,
        opacity .2s ease;
}

.school-slider-section .carousel-indicators .active{
    width:40px;
    opacity:1;
}

/* Desktop */
@media (min-width:1400px){
    .school-slider-slide .container{
        padding-left:3rem!important;
    }

    .slider-title-text{
        font-size:2.6rem;
        max-width:650px;
    }
}

/* Tablet */
@media (max-width:991.98px){
    .school-slider-slide{
        min-height:500px;
    }

    .school-slider-slide .container{
        padding-left:1.75rem!important;
        padding-right:1.75rem!important;
    }

    .school-slider-content.school-slider-title-only{
        max-width:560px!important;
    }

    .slider-title-text{
        max-width:540px;
        font-size:clamp(1.75rem,4.6vw,2.35rem);
    }

    .school-slider-section .carousel-control-prev,
    .school-slider-section .carousel-control-next{
        width:6%;
    }

    .school-slider-section .carousel-control-prev-icon,
    .school-slider-section .carousel-control-next-icon{
        width:36px;
        height:36px;
        background-size:14px 14px;
    }
}

/* Mobile */
@media (max-width:575.98px){
    .school-slider-slide{
        min-height:430px;
        background-position:center center;
    }

    .school-slider-overlay{
        background:
            linear-gradient(
                90deg,
                rgba(3,29,59,.82) 0%,
                rgba(3,34,68,.64) 55%,
                rgba(3,30,60,.34) 100%
            ),
            linear-gradient(
                180deg,
                rgba(0,0,0,.05) 0%,
                rgba(0,0,0,.18) 100%
            );
    }

    .school-slider-slide .container{
        padding-left:1rem!important;
        padding-right:1rem!important;
    }

    .school-slider-content.school-slider-title-only{
        max-width:100%!important;
        padding-right:2.4rem!important;
    }

    .slider-title-text{
        max-width:100%;
        font-size:1.5rem;
        font-weight:400;
        line-height:1.25;
        text-shadow:0 2px 8px rgba(0,0,0,.24);
    }

    .school-slider-section .carousel-control-prev,
    .school-slider-section .carousel-control-next{
        display:none!important;
    }

    .school-slider-section .carousel-indicators{
        margin-bottom:.72rem;
        gap:.25rem;
    }

    .school-slider-section .carousel-indicators [data-bs-target]{
        width:18px;
        height:3px;
    }

    .school-slider-section .carousel-indicators .active{
        width:28px;
    }
}

@media (max-width:359.98px){
    .school-slider-slide{
        min-height:410px;
    }

    .slider-title-text{
        font-size:1.38rem;
    }
}

/* Respect reduced-motion preference */
@media (prefers-reduced-motion:reduce){
    .school-slider-section .carousel-item,
    .school-slider-section .carousel-item .school-slider-slide,
    .school-slider-section .carousel-control-prev-icon,
    .school-slider-section .carousel-control-next-icon{
        transition:none!important;
    }
}

/* =========================================================
   SLIDER IMAGE LAYER + TITLE FALLBACK DISPLAY FIX
   ========================================================= */

/*
 * Slider images now render as actual media layers rather than inline
 * CSS backgrounds. This gives predictable sizing across browsers,
 * better loading behavior, and prevents malformed/empty background URLs.
 */
.school-slider-slide{
    position:relative;
    overflow:hidden;
    background:#082f59;
}

.school-slider-media{
    position:absolute;
    inset:0;
    z-index:0;
    overflow:hidden;
    background:#082f59;
}

.school-slider-image{
    display:block;
    width:100%;
    height:100%;
    max-width:none!important;
    object-fit:cover;
    object-position:center center;
    transform:scale(1.002);
}

/* Layer ordering: photo -> overlay -> title */
.school-slider-overlay{
    z-index:1!important;
}

.school-slider-slide::after{
    z-index:1!important;
}

.school-slider-slide > .container{
    position:relative!important;
    z-index:2!important;
}

/* Stable image crop on wide desktop screens */
@media (min-width:1200px){
    .school-slider-image{
        object-position:center 48%;
    }
}

/* Tablet */
@media (max-width:991.98px){
    .school-slider-image{
        object-position:center center;
    }
}

/* Mobile: preserve the important central area of the photograph */
@media (max-width:575.98px){
    .school-slider-image{
        object-position:center center;
    }
}

/* =========================================================
   FRESH SLIDER DISPLAY — CLEAN CINEMATIC LEFT-LOWER LAYOUT
   ========================================================= */

/* Main slider frame */
.school-slider-section{
    position:relative;
    overflow:hidden;
    background:#062b51;
}

.school-slider-slide{
    position:relative;
    min-height:620px;
    overflow:hidden;
    isolation:isolate;
    background:#062b51;
}

/* Full-bleed image */
.school-slider-media{
    position:absolute;
    inset:0;
    z-index:0;
    overflow:hidden;
}

.school-slider-image{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center center;
    display:block;
    transform:scale(1.015);
    transition:transform 6s ease;
}

.carousel-item.active .school-slider-image{
    transform:scale(1);
}

/* Natural darkening only where text needs readability */
.school-slider-overlay{
    position:absolute;
    inset:0;
    z-index:1!important;
    background:
        linear-gradient(
            90deg,
            rgba(2,21,43,.68) 0%,
            rgba(2,25,50,.48) 30%,
            rgba(2,29,57,.22) 55%,
            rgba(2,29,57,.08) 76%,
            rgba(2,29,57,.02) 100%
        ),
        linear-gradient(
            180deg,
            rgba(0,0,0,.02) 0%,
            rgba(0,0,0,.05) 58%,
            rgba(0,0,0,.30) 100%
        )!important;
}

/* Remove older decorative layer */
.school-slider-slide::after{
    content:none!important;
}

/* Fresh content positioning */
.fresh-slider-shell{
    z-index:2;
    display:flex;
    align-items:flex-end;
    padding:
        0
        clamp(2rem,4.6vw,5.25rem)
        clamp(4.6rem,8vh,6.5rem)!important;
}

.fresh-slider-content{
    width:min(680px,72vw);
    display:flex;
    align-items:flex-start;
    gap:1rem;
}

/* Small premium accent, not a button/card */
.fresh-slider-accent{
    width:3px;
    min-width:3px;
    height:52px;
    margin-top:.24rem;
    border-radius:999px;
    background:rgba(255,196,65,.94);
    box-shadow:0 0 16px rgba(255,196,65,.18);
}

/* Normal title text — intentionally not a heading style */
.fresh-slider-content .slider-title-text{
    margin:0;
    padding:0;
    max-width:640px;
    color:#fff;
    font-size:clamp(1.9rem,2.8vw,2.85rem);
    font-weight:400!important;
    line-height:1.18;
    letter-spacing:0;
    text-align:left!important;
    text-wrap:balance;
    text-shadow:0 2px 12px rgba(0,0,0,.24);
}

/* Fade movement */
.school-slider-section .carousel-item{
    transition:opacity .7s ease-in-out;
}

/* Slim premium arrows */
.school-slider-section .carousel-control-prev,
.school-slider-section .carousel-control-next{
    width:4.25%;
    opacity:1;
}

.school-slider-section .carousel-control-prev-icon,
.school-slider-section .carousel-control-next-icon{
    width:38px;
    height:38px;
    border-radius:50%;
    background-size:14px 14px;
    background-color:rgba(7,37,69,.24);
    border:1px solid rgba(255,255,255,.24);
    backdrop-filter:blur(5px);
    -webkit-backdrop-filter:blur(5px);
    transition:
        background-color .18s ease,
        transform .18s ease,
        border-color .18s ease;
}

.school-slider-section .carousel-control-prev:hover .carousel-control-prev-icon,
.school-slider-section .carousel-control-next:hover .carousel-control-next-icon{
    background-color:rgba(7,45,86,.60);
    border-color:rgba(255,255,255,.45);
    transform:scale(1.06);
}

/* Refined indicators */
.school-slider-section .carousel-indicators{
    gap:.35rem;
    margin-bottom:1.15rem;
    align-items:center;
}

.school-slider-section .carousel-indicators [data-bs-target]{
    width:22px;
    height:3px;
    margin:0;
    border:0;
    border-radius:999px;
    background:#fff;
    opacity:.42;
    transition:width .2s ease,opacity .2s ease;
}

.school-slider-section .carousel-indicators .active{
    width:38px;
    opacity:1;
}

/* Wide desktop */
@media (min-width:1500px){
    .school-slider-slide{
        min-height:650px;
    }

    .fresh-slider-shell{
        padding-left:4.5rem!important;
        padding-bottom:6rem!important;
    }

    .fresh-slider-content .slider-title-text{
        font-size:2.75rem;
    }
}

/* Tablet */
@media (max-width:991.98px){
    .school-slider-slide{
        min-height:510px;
    }

    .fresh-slider-shell{
        padding:
            0
            1.75rem
            4.5rem!important;
    }

    .fresh-slider-content{
        width:min(590px,82vw);
        gap:.85rem;
    }

    .fresh-slider-accent{
        height:44px;
    }

    .fresh-slider-content .slider-title-text{
        font-size:clamp(1.7rem,4.5vw,2.35rem);
        max-width:540px;
    }

    .school-slider-section .carousel-control-prev,
    .school-slider-section .carousel-control-next{
        width:6%;
    }
}

/* Mobile */
@media (max-width:575.98px){
    .school-slider-slide{
        min-height:430px;
    }

    .school-slider-image{
        object-position:center center;
    }

    .school-slider-overlay{
        background:
            linear-gradient(
                90deg,
                rgba(2,23,47,.58) 0%,
                rgba(2,26,53,.36) 58%,
                rgba(2,26,53,.14) 100%
            ),
            linear-gradient(
                180deg,
                rgba(0,0,0,.02) 0%,
                rgba(0,0,0,.04) 48%,
                rgba(0,0,0,.36) 100%
            )!important;
    }

    .fresh-slider-shell{
        padding:
            0
            1rem
            3.8rem!important;
    }

    .fresh-slider-content{
        width:92%;
        gap:.7rem;
    }

    .fresh-slider-accent{
        width:2px;
        min-width:2px;
        height:36px;
        margin-top:.15rem;
    }

    .fresh-slider-content .slider-title-text{
        max-width:100%;
        font-size:1.48rem;
        font-weight:400!important;
        line-height:1.22;
    }

    .school-slider-section .carousel-control-prev,
    .school-slider-section .carousel-control-next{
        display:none!important;
    }

    .school-slider-section .carousel-indicators{
        margin-bottom:.72rem;
        gap:.25rem;
    }

    .school-slider-section .carousel-indicators [data-bs-target]{
        width:17px;
        height:3px;
    }

    .school-slider-section .carousel-indicators .active{
        width:28px;
    }
}

@media (max-width:359.98px){
    .school-slider-slide{
        min-height:400px;
    }

    .fresh-slider-content .slider-title-text{
        font-size:1.34rem;
    }
}

/* Accessibility */
@media (prefers-reduced-motion:reduce){
    .school-slider-image,
    .school-slider-section .carousel-item,
    .school-slider-section .carousel-control-prev-icon,
    .school-slider-section .carousel-control-next-icon{
        transition:none!important;
    }
}

/* =========================================================
   FINAL HOME STATS + NAV CONSISTENCY FIX
   ========================================================= */

/* ---------------------------------------------------------
   1. HOME STAT CARDS
   Keep words intact and give all six desktop cards enough
   horizontal room. Do not split words such as:
   development / represented / responsibility.
   --------------------------------------------------------- */
.feature-strip .container{
    width:100%;
    max-width:1500px!important;
}

.feature-stat{
    min-width:0;
    gap:.72rem!important;
    padding:1.15rem 1rem!important;
    align-items:center!important;
}

.feature-stat .feature-icon{
    flex:0 0 46px;
    width:46px;
    height:46px;
}

.feature-stat > div:last-child{
    min-width:0;
    flex:1 1 auto;
}

.feature-stat strong{
    font-size:1.28rem!important;
    line-height:1.08;
    white-space:nowrap;
}

.feature-stat span{
    display:block;
    font-size:.82rem!important;
    line-height:1.5!important;
    overflow-wrap:normal!important;
    word-break:normal!important;
    hyphens:none!important;
}

/* Slightly tighter treatment only where six cards share one row. */
@media (min-width:1200px) and (max-width:1399.98px){
    .feature-strip .container{
        max-width:1320px!important;
    }

    .feature-stat{
        gap:.58rem!important;
        padding:1.05rem .8rem!important;
    }

    .feature-stat .feature-icon{
        flex-basis:42px;
        width:42px;
        height:42px;
    }

    .feature-stat strong{
        font-size:1.18rem!important;
    }

    .feature-stat span{
        font-size:.77rem!important;
        line-height:1.45!important;
    }
}

/* Keep the existing stacked mobile behavior clean. */
@media (max-width:575.98px){
    .feature-stat{
        gap:.8rem!important;
        padding:1rem 1.05rem!important;
    }

    .feature-stat span{
        font-size:.82rem!important;
    }
}

/* ---------------------------------------------------------
   2. MANDATORY PUBLIC DISCLOSURE NAV ITEM
   Remove the special yellow pill. It must look exactly like
   every other primary navigation item.
   --------------------------------------------------------- */
.school-navbar .nav-public-disclosure > .nav-link-wrap > .nav-link{
    background:transparent!important;
    color:#0a376e!important;
    margin:0!important;
    padding:.82rem .62rem!important;
    border-radius:0!important;
    box-shadow:none!important;
}

.school-navbar .nav-public-disclosure > .nav-link-wrap > .nav-link:hover,
.school-navbar .nav-public-disclosure > .nav-link-wrap > .nav-link:focus{
    background:transparent!important;
    color:var(--school-accent)!important;
}

/* Restore the same underline interaction used by normal nav items. */
.school-navbar .nav-public-disclosure > .nav-link-wrap > .nav-link::after{
    display:block!important;
    content:""!important;
    position:absolute;
    left:.75rem;
    right:.75rem;
    bottom:.45rem;
    height:2px;
    background:var(--school-accent);
    transform:scaleX(0);
    transform-origin:left;
    transition:.2s;
}

.school-navbar .nav-public-disclosure > .nav-link-wrap > .nav-link:hover::after,
.school-navbar .nav-public-disclosure > .nav-link-wrap > .nav-link:focus::after,
.school-navbar .nav-public-disclosure > .nav-link-wrap > .nav-link.active::after,
.school-navbar .nav-public-disclosure > .nav-link-wrap > .nav-link[aria-current="page"]::after{
    transform:scaleX(1)!important;
}

/* Mobile/tablet: exactly the same cardless nav-link style as siblings. */
@media (max-width:1199.98px){
    .school-navbar .nav-public-disclosure > .nav-link-wrap > .nav-link{
        min-height:42px!important;
        padding:.62rem .75rem!important;
        border-radius:.45rem!important;
        background:transparent!important;
        color:#173b61!important;
    }

    .school-navbar .nav-public-disclosure > .nav-link-wrap > .nav-link:hover,
    .school-navbar .nav-public-disclosure > .nav-link-wrap > .nav-link:focus,
    .school-navbar .nav-public-disclosure > .nav-link-wrap > .nav-link.active{
        background:#f4f8fc!important;
        color:#0a4f98!important;
    }

    .school-navbar .nav-public-disclosure > .nav-link-wrap > .nav-link::after{
        display:none!important;
    }
}
