@import url('https://fonts.googleapis.com/css2?family=Playfair:ital,opsz,wght@0,5..1200,300..900;1,5..1200,300..900&family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&family=Work+Sans:ital,wght@0,100..900;1,100..900&display=swap');


@font-face {
    font-family: 'Graphik Semibold';
    src: url('../fonts/Graphik-Semibold.eot');
    src: url('../fonts/Graphik-Semibold.eot?#iefix') format('embedded-opentype'),
         url('../fonts/Graphik-Semibold.woff2') format('woff2'),
         url('../fonts/Graphik-Semibold.woff') format('woff'),
         url('../fonts/Graphik-Semibold.ttf')  format('truetype'),
         url('../fonts/Graphik-Semibold.svg#Graphik Semibold') format('svg');
}
@font-face {
    font-family: 'Graphik Medium';
    src: url('../fonts/Graphik-Medium.eot');
    src: url('../fonts/Graphik-Medium.eot?#iefix') format('embedded-opentype'),
         url('../fonts/Graphik-Medium.woff2') format('woff2'),
         url('../fonts/Graphik-Medium.woff') format('woff'),
         url('../fonts/Graphik-Medium.ttf')  format('truetype'),
         url('../fonts/Graphik-Medium.svg#Graphik Medium') format('svg');
}
@font-face {
    font-family: 'Graphik Bold';
    src: url('../fonts/Graphik-Bold.eot');
    src: url('../fonts/Graphik-Bold.eot?#iefix') format('embedded-opentype'),
         url('../fonts/Graphik-Bold.woff2') format('woff2'),
         url('../fonts/Graphik-Bold.woff') format('woff'),
         url('../fonts/Graphik-Bold.ttf')  format('truetype'),
         url('../fonts/Graphik-Bold.svg#Graphik Bold') format('svg');
}
:root {
    /* Brand palette (from the theme colour #00466E). Red is kept for the crest only.
       Contrast (WCAG AA needs 4.5:1): white on navy 10:1, white on ocean 5.9:1,
       navy on gold 5.3:1, link on white 4.9:1, sky on footer 8.6:1, grey text 5.2:1+ */
    --brand-navy:#00466E;
    --brand-ocean:#0A6AA1;
    --brand-gold:#F2B233;
    --brand-gold-ink:#2A1D00;          /* text on gold buttons */
    --brand-sky:#15B9F9;               /* links/accents on dark backgrounds only */
    --brand-link:#0077B6;              /* sky shade for links on white/light backgrounds */
    --brand-deep:#001C2E;

    --grad-bar: linear-gradient(90deg, var(--brand-navy) 0%, var(--brand-ocean) 100%);
    --grad-hero: linear-gradient(120deg, var(--brand-navy) 0%, #05578A 55%, var(--brand-ocean) 100%);
    --grad-band: linear-gradient(110deg, var(--brand-deep) 0%, var(--brand-navy) 45%, var(--brand-ocean) 100%);
    --grad-footer: linear-gradient(180deg, #002A44 0%, var(--brand-deep) 100%);
    --grad-overlay: linear-gradient(180deg, rgba(0, 28, 46, 0) 30%, rgba(0, 28, 46, .88) 100%);
    --grad-gold: linear-gradient(90deg, var(--brand-gold) 0%, #F7C95E 100%);

    /* Older names used across the stylesheet, now mapped onto the brand palette */
    --theme: var(--brand-ocean);
    --primary: var(--brand-navy);
    --secondary:#000F1F;
    --black: #000;
    --gray: #5F6973;
    --gray-secondary:#555C63;
    --light-gray:#F6F7FB;
    --white: #ffffff;
    --rounded-20: 1.25rem;
    --rounded-10: 0.625rem;
    --rounded-6: 0.375rem;
    --rounded-16: 1rem;
}


/*--------------------------------------*/

/*Element Base
/*--------------------------------------*/
body {
    font-size: 1rem;
    font-family: 'Graphik Medium';
    font-style: 400;
    background: #fff;
    color: var(--black);

}

/*--------------------------------------*/

/*Typography
/*--------------------------------------*/
h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: 'Graphik Semibold';
}

h1 {
    font-size: 3.563rem;
}

h2 {
    font-size: 2.75rem;
    color: var(--black);

}

h3 {
    font-size: 2.25rem;
}

h4 {
    font-size: 1.4rem;
    margin-bottom: 1rem;
}

h5 {
    font-size: 1.25rem;
    line-height: 1.5;
}



.font-size-14 {
    font-size: .875rem;
    line-height: 1.25;
}

a {
    color: var(--black);
    text-decoration: none;
}

a:hover {
    color: var(--theme);
}

.sub-title {
    color: #000;
    font-size: .875rem;
    text-transform: uppercase;
}

.pb-20 {
    padding-bottom: 20px;
}

.pb-30 {
    padding-bottom: 30px;
}

.pb-50 {
    padding-bottom: 50px;
}

.pt-20 {
    padding-top: 20px;
}

.pt-30 {
    padding-top: 30px;
}

.pt-50 {
    padding-top: 50px;
}

.pt-100 {
    padding-top: 100px;
}

.mb-10 {
    margin-bottom: 10px;
}

.mb-20 {
    margin-bottom: 20px;
}

.mb-30 {
    margin-bottom: 30px;
}

.mb-50 {
    margin-bottom: 50px;
}

.mt-30 {
    margin-top: 30px;
}

.mt-50 {
    margin-top: 50px;
}

.w-16 {
    width: 16px !important;
}

.h-16 {
    height: 16px !important;
}

p {
    font-family: 'Graphik Medium';
    font-size: 0.938rem;
    line-height: 1.5;
    margin-bottom: 1.5rem;
    color: var(--gray);
}

ul {
    padding: 0;
    list-style: none;
    margin-bottom: 0 !important;
}

ul li a {
    text-decoration: none;
}

.table td{
    font-size: .875rem!important;
}

#scrollTop {
    z-index: 99;
    cursor: pointer;
    border: none;
    position: fixed;
    bottom: 1rem;
    right: 1rem;
    width: 3rem;
    height: 3rem;
    font-size: 2rem;
    font-weight: bold;
    text-align: center;
    color: #FFFFFF;
    background: var(--theme);
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=75)";
    display: none;
    transition: 0.6s all ease-in-out;
    -moz-transition: 0.6s all ease-in-out;
    -ms-transition: 0.6s all ease-in-out;
    -webkit-transition: 0.6s all ease-in-out;
    border-radius: 50%;
}

#scrollTop i {
    display: flex;
    align-items: center;
    justify-content: center;
}

#scrollTop:hover {
    background-color: var(--black);
}

/*--------------------------------------*/

/*Buttton
/*--------------------------------------*/
.btn {
    font-family: 'Graphik Semibold';
    font-weight: 500;
    padding: .75rem 1.5rem;
    border-radius: 3rem;
    border: none;
    display: inline-flex;
    align-items: center;
    transition: all .5s;
    font-size: .875rem;
    line-height: 1.5;
    
}
.btn i{
    margin-left: .75rem;
    transition: all .4s;
}

.btn.btn-primary {
    background: var(--theme);
    color: var(--white);

}

.btn.btn-primary:hover {
    background: var(--primary);
}

/* Admission enquiry call-to-action (header, mobile menu, enquiry form) */
.btn.btn-enquire {
    background: var(--brand-gold);
    color: #2a1d00;
}

.btn.btn-enquire:hover,
.btn.btn-enquire:focus-visible {
    background: var(--brand-navy);
    color: var(--white);
}

.navbar-nav .nav-link.nav-enquire {
    background: var(--brand-gold);
    color: #2a1d00;
}

.btn.btn-white {
    background: var(--white);
    color: var(--theme);
}

.btn.btn-white:hover {
    background: var(--black);
    color: var(--white);
}

.btn.btn-sm {
    font-weight: 300;
    padding: .5rem 1.25rem;
    font-size: .9rem;
}

.btn-close {
    position: absolute;
    z-index: 1;
    opacity: 1;
    color: #fff;
    right: 1rem;
    top: 1rem;
    padding: .75rem;
    background: url(../images/close-icon.svg) no-repeat center;
    background-color: var(--primary);
    top: 1rem;
    right: 1rem;
}

.btn img {
    transition: all .4s;
}

.btn.btn-outline-primary {
    border: 1px solid var(--theme);
    color: var(--theme) !important;
}

.btn.btn-outline-primary:hover {
    background-color: var(--theme);
    color: var(--white) !important;
}

.btn-close:hover {
    opacity: .8;
}
.form-control{
 padding: .75rem 2rem;
 border-radius: 4rem;   
}
.sepraion {
    padding-top: 90px;
}
.sepraion-y {
    padding: 90px 0;
}

.z-index-9 {
    z-index: 9;
}

.text-justify {
    text-align: justify;
}



date {
    font-size: .875rem;
    color: var(--gray-secondary);
}
date .icon{
    font-size: 1.25rem;
}
.modal-content {
    border-radius: var(--rounded-20);
    box-shadow: 0px 0px 20px 1px rgba(255, 255, 255, .3);
    overflow: hidden;
    border:4px solid var(--white);
}


.rounded-10 {
    border-radius: var(--rounded-10);
}

.rounded-6 {
    border-radius: var(--rounded-6);
}
.rounded-16 {
    border-radius: var(--rounded-16);
}


.social-widget{
    display: flex;
    justify-content: end;
}

.social-widget li {
    display: inline-block;
}

.social-widget li a {
    display: flex;   
    align-items: center;
    justify-content: center;
    transition: all .4s;
}

.social-widget li a:hover {
    background-color: #dadada;
}

.bg-theme {
    background: var(--theme);
}
.text-red{
    color: var(--primary);
}
.text-gold{
    color: var(--brand-gold);
}
.text-blue{
    color: var(--theme);
}
.bg-light-gray {
    background: var(--light-gray);
}

.call-widget .needtxt{
    font-size: .875rem;
}
.call-widget .call-icon{
    background: var(--primary);
    width: 50px;
    height: 50px;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    font-size: 1rem;
}
/* Header call buttons: tel: links, navy instead of red */
a.call-widget {
    color: var(--secondary);
    text-decoration: none;
}
.header-bottom .call-widget .call-icon,
.header-bottom .call-icon-sm {
    background: var(--brand-navy);
}
.call-icon-sm {
    width: 40px;
    height: 40px;
    flex: none;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    font-size: .95rem;
}
.call-icon-sm:hover {
    color: #fff;
}
/* Header redesign: crest + text name, pill actions, gold Admission tab */
.top-social {
    display: inline-flex;
    gap: .4rem;
    padding: .25rem 0;
}
.top-social a {
    width: 26px;
    height: 26px;
    border-radius: 7px;
    background: rgba(255, 255, 255, .16);
    color: var(--white);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: .85rem;
    transition: background .3s;
}
.top-social a:hover {
    background: rgba(255, 255, 255, .32);
    color: var(--white);
}
.navbar-brand.brand-lockup {
    display: flex;
    align-items: center;
    gap: .9rem;
    height: auto;
    margin: 0;
    padding: 0;
    white-space: normal;
    text-decoration: none;
    min-width: 0;
}
.navbar-brand .brand-crest {
    flex: none;
    width: auto;
}
.fixed-top.sticky .navbar-brand .brand-crest {
    height: 70px;
}
.brand-text {
    display: flex;
    flex-direction: column;
    min-width: 0;
}
.brand-name {
    font-family: 'Graphik Bold', 'Graphik Semibold', sans-serif;
    font-size: clamp(1.05rem, .7rem + 1.1vw, 1.6rem);
    line-height: 1.15;
    color: var(--secondary);
    letter-spacing: -.01em;
}
.brand-hs {
    color: var(--brand-navy);
    white-space: nowrap;
}
.brand-sub {
    font-size: .8rem;
    color: var(--gray);
    margin-top: .2rem;
}
.header-actions {
    gap: .6rem;
}
.header-actions .btn {
    padding: .7rem 1.25rem;
}
.btn.btn-call {
    background: #F3F7FA;
    color: var(--brand-navy);
    border: 1px solid #d5e4ee;
}
.btn.btn-call i {
    margin: 0 .5rem 0 0;
}
.btn.btn-call:hover {
    background: var(--brand-navy);
    color: var(--white);
}
.btn.btn-erp {
    background: transparent;
    color: var(--brand-navy);
    border: 1.5px solid var(--brand-navy);
}
.btn.btn-erp:hover {
    background: var(--brand-navy);
    color: var(--white);
}
.navbar .nav-item.nav-admission > .nav-link {
    background: var(--brand-gold);
    color: #2a1d00;
}
.navbar .nav-item.nav-admission > .nav-link:hover,
.navbar .nav-item.nav-admission > .nav-link.show {
    color: #2a1d00;
    background: #f5c04f;
}
@media (max-width: 1199px) {
    .navbar-brand .brand-crest,
    .fixed-top.sticky .navbar-brand .brand-crest {
        height: 50px;
    }
}
@media (max-width: 575px) {
    .navbar-brand.brand-lockup {
        gap: .55rem;
    }
}

@media (max-width: 575px) {
    /* Give the logo as much width as possible next to the call and menu buttons */
    .header-bottom .row {
        --bs-gutter-x: .5rem;
    }
    .header-bottom .call-icon-sm {
        width: 36px;
        height: 36px;
        margin-right: .25rem !important;
    }
    .header-bottom .navbar-toggler {
        padding-left: .25rem;
        padding-right: 0;
    }
}
@media (min-width: 1400px) {
    .container {
        max-width: 1340px;
    }
}
.max-width-900 {
    max-width: 900px;
}
.max-width-1024 {
    max-width: 1024px;
}
.navbar-nav .dropdown:hover > .dropdown-menu {
    display: block;
    margin-top: 0;
  }

.dropdown-menu .dropend:hover > .dropdown-menu {
display: block;
top: 0;
left: 100%;
margin-top: -1px;
}

.dropdown-toggle::after {
transition: 0.3s ease;
}

/*--------------------------------------*/

/*Header
/*--------------------------------------*/


.navbar-brand img {
    height: 70px;
    width: auto;
    max-width: 100%;
    object-fit: contain;
    object-position: left center;
    transition: all .4s linear;
}

.header-top {
    background: var(--grad-bar);
    padding: .5rem 0;

}

.header-bottom {
    transition: all .5s;
}


.header-top,
.header-bottom {
    transition: all .4s linear;
}


.sticky {
    position: fixed;
    width: 100%;
    top: 0;
    z-index: 105;
}

.header-top ul {
    display: flex;
    padding: 0;
    list-style: none;
    margin-bottom: 0 !important;
    grid-gap: 8px;
    align-items: center;
}

.header-top li {
    color: var(--white);
    font-size: .85rem;
    font-weight: 400;
    line-height: 0;
}

.header-top li a {
    color: var(--white);
    font-size: 0.875rem;
    font-weight: 300;
    display: inline-flex;
    align-items: center;
    grid-gap: 10px;
    transition: all .3s;
    font-weight: 500;

}

.header-top li a:hover {
    text-decoration: underline;
}

.header-top svg {
    height: 18px;
    width: 18px;
    transition: all .3s;
}

.navbar-brand {
    height: 80px;
    width: auto;
}

.navbar {
    padding: 0rem 0;
    background: var(--secondary);
    justify-content: center;
}

.navbar-nav.primary-menu {
    flex-direction: row;
}

.navbar-nav.primary-menu .nav-link {
    padding: .5rem .9rem !important;
}

.navbar.navbar-expand-lg.bg-light {
    background-color: #F2EFED !important;
    padding: 20px 0;
}

.navbar .nav-link {
    font-family: 'Graphik Medium';
    color: var(--white);
    font-size: .875rem;
    opacity: 1;
    font-weight: 400;
    padding: .75rem .65rem !important;
    transition: all .5s;
    margin: 0 .65rem;
    text-transform: uppercase;
}

.navbar .nav-link:hover {
    color: var(--black);
}

.navbar .nav-link.active {
    font-weight: 600;
    color: var(--black);
}

.navbar-nav .nav-link.show {
    color: var(--white);
}

.fixed-top.sticky .header-top {
    opacity: 0;
}

.fixed-top.sticky .header-bottom {
    margin-top: -43px;
    position: fixed;
    width: 100%;
    box-shadow: 5px 0px 10px 1px rgba(0, 0, 0, .1);
}

.fixed-top.sticky .navbar-brand img {
    height: 80px;
}

.offcanvas {
    background: var(--theme);
}


.offcanvas .nav-link:hover {
    background: var(--theme);
    color: var(--white);
}

.dropdown-toggle::after {
    background: url(../images/arrow-down.svg) no-repeat;
    width: 10px;
    height: 8px;
    background-position: center;
    background-size: 14px;
    position: relative;
    top: 3px;
    border: 0;
    left: 2px;
}

.dropdown-menu {
    border: 0;
    padding: 0;
    border-radius: var(--rounded-16);
    font-family: 'Graphik Medium';
    border-radius: var(--rounded-6);
    box-shadow: 0 0 10px rgba(0, 0, 0, .3);
    -webkit-transition: all 0.3s;
    -moz-transition: all 0.3s;
    -ms-transition: all 0.3s;
    -o-transition: all 0.3s;
    transition: all 0.3s;
    box-shadow: 0 0 1.25rem rgba(0, 0, 0, .1);
    animation: growDown 300ms ease-in-out forwards;
    transform-origin: top center;
    margin: 0;
 /*   min-width: 15rem;  */
 min-width: 10rem !important;
}

.dropend .dropdown-toggle::after{
    background: none;
    top: -1px;
}
.dropdown-item {
    padding: .5rem 0.5rem;
    font-size: .850rem;
    text-transform: uppercase;

}

.dropdown-item:hover,
.dropdown-item.active,
.dropdown-item:active {
    color: var(--bs-dropdown-link-active-color);
    text-decoration: none;
    background-color: var(--theme);
}

.navbar-toggler {
    border: 0;
    padding: 0;
    margin-left: 1rem;
}

.navbar-toggler:focus {
    box-shadow: none;
    padding: 0;
}

.navbar-toggler-icon {
    background: url(../images/toggler-icon.svg) no-repeat center;
}

/*--------------------------------------*/

/*Latest News Section
/*--------------------------------------*/
.update-news {
    padding: 1rem 0;
}

.update-news .update-widget {
    box-shadow: 5px 0px 10px 1px rgba(0, 0, 0, .1);
    background: var(--white);
    line-height: 1.4;
    font-size: 1.125rem;
    color: var(--black);
}

.update-news .update-title {
    background: var(--theme);
    color: var(--white);
    padding: .75rem 2rem;
    min-width: fit-content;
    font-size: 1.125rem;
}

/*--------------------------------------*/

/*Hero Banner Section
/*--------------------------------------*/
main {
    margin-top: 182px;
}


/* Hero slider: each banner fills the full width and is shown whole (never cropped);
   the slider height follows the banner's own shape (autoHeight in footer.php) */
.hero-slider .item {
    position: relative;
    background: var(--white);
}
.hero-slider .owl-item .item img.hero-img {
    display: block;
    width: 100%;
    height: auto;
}
.hero-slider .owl-dots {
    /* dots sit in a slim strip under the banner so they never cover banner text */
    position: static;
    display: flex;
    justify-content: center;
    gap: .5rem;
    padding: .85rem 0;
    background: var(--white);
}
.hero-slider .owl-dots .owl-dot {
    width: 10px;
    height: 10px;
    padding: 0;
    border-radius: 10px;
    background: #c9d3dc;
    transition: width .35s, background .35s;
}
.hero-slider .owl-dots .owl-dot.active {
    width: 30px;
    background: var(--brand-gold);
}
.hero-slider .owl-dots .owl-dot span {
    display: none;
}
.hero-slider .owl-nav {
    position: absolute;
    z-index: 3;
    top: 50%;
    left: 0;
    right: 0;
    margin: 0;
    padding: 0 1.25rem;
    transform: translateY(-50%);
    display: flex;
    justify-content: space-between;
    pointer-events: none;
}
.hero-slider .owl-nav.disabled {
    display: none;
}
.hero-slider .owl-nav button.owl-prev,
.hero-slider .owl-nav button.owl-next {
    pointer-events: auto;
    width: 48px;
    height: 48px;
    margin: 0;
    border: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, .9);
    color: var(--brand-navy);
    font-size: 1.15rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 6px 18px rgba(0, 0, 0, .25);
    opacity: 0;
    transition: opacity .3s, background .2s, color .2s, transform .2s;
}
.hero-slider:hover .owl-nav button.owl-prev,
.hero-slider:hover .owl-nav button.owl-next,
.hero-slider .owl-nav button:focus-visible {
    opacity: 1;
}
.hero-slider .owl-nav button.owl-prev:hover,
.hero-slider .owl-nav button.owl-next:hover {
    background: var(--brand-navy);
    color: var(--white);
    transform: scale(1.06);
}
@media (hover: none), (max-width: 767px) {
    /* touch screens: swipe and use the dots instead of arrows */
    .hero-slider .owl-nav {
        display: none;
    }
}
@media (max-width: 767px) {
    .hero-slider .owl-dots {
        padding: .6rem 0;
    }
}

/*--------------------------------------*/

/*Facilites Section
/*--------------------------------------*/
.facilitie-section {
    background: url(../images/facality-bg.png) no-repeat;
    background-position: top;
    background-size: cover;
    padding: 5rem 0 6rem;

}

.facilitie-section .img-frame {
    max-width: 100%;
    margin: auto;
}

.facilitie-section .img-frame img {  
    border-radius: 1.25rem;
    object-fit: cover;
    width: 100%;
}
.facilitie-section h2 span{
    color: var(--primary);
}
.facilitie-nav{
    display: grid;
    grid-template-columns: auto auto;
    gap: 10px;

}
.facilitie-nav li{
    display: inline-block;
    width: 100%;
}
.facilitie-nav li a{
    display: block;
    border-radius: var(--rounded-16);
    background-color: var(--white);
    color: var(--secondary);
    text-align: center;
    padding: 1.5rem;
    cursor: pointer;
}
.facilitie-nav li p{
    color: var(--secondary);
}
.facilitie-nav li svg path{
    fill: var(--theme);
}
.facilitie-nav li a:hover{
    background-color:var(--theme);
}
.facilitie-nav li a:hover p{
    color: var(--white);
} 
.facilitie-nav li a:hover svg path{
    fill: var(--white);
}
.facilitie-nav li p{
    margin-bottom: 0;
}
/*--------------------------------------*/

/*About Section
/*--------------------------------------*/
.about-widget {
    border-radius: var(--rounded-16);
    overflow: hidden;
    position: relative;
}

.about-widget img.about-img {
    border-radius: var(--rounded-16);
    width: 100%;
    object-fit: cover;
    height: 382px;
    
}
.about-widget .about-info{
    position: absolute;
    bottom: 0;
    left: 0;
    z-index: 1;
    width: 100%;
    transition: all .2s linear;
    display: flex;
    align-items: center;
    min-height: 60px;
    /* keeps the white title readable on light photos */
    background: var(--grad-overlay);
    padding-top: 3rem !important;
}
.about-widget .about-info h5{
    color: var(--white);
}
.about-widget .about-info .short-discription{
    display: none;
  
}
.about-widget:hover .about-info{
    min-height: 100%;
    background: rgba(0, 70, 110, .92);
}
.about-widget:hover .about-info .short-discription{
    display: block;
}
.about-widget .about-info .short-discription p{
    font-size: 14px;
    color: #fff;
    font-family: "Poppins", sans-serif;
    font-weight: 400;
}
.about-widget .about-info .short-discription span{
    color: #fff;
    font-size: 1rem;
}

/*--------------------------------------*/

/*Mission Section
/*--------------------------------------*/
.mission-section{
    background: url(../images/mission-vector.png) no-repeat center;
    position: relative;
    margin-top:5rem;
    padding: 4rem 0 3rem;

}
.mission-section::after,
.mission-section::before{   
    content: '';   
    position: absolute;
    top: 0;
    display: block;
    width: 50%;
    height: 100%;
    z-index: -1;
}
.mission-section::before{
    background: var(--grad-band);
    left: 0;
    width: 100%;
}
.mission-section::after{
    display: none;
}


/*--------------------------------------*/

/*News & Event Section
/*--------------------------------------*/

.news-widget .card{
    border-radius: var(--rounded-20);
}
.news-widget .card p,
.news-widget .card h2{
    display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
}
.news-widget .card .card-img-top{
    object-fit: cover;
}
.news-widget .card.card-f .card-img-top{
    border-top-left-radius: var(--rounded-20);
    border-top-right-radius: var(--rounded-20);
    height: 314px;
    object-fit: cover;
}
.news-widget .card .card-body{
    padding: 1.75rem 2.5rem;
}
.news-widget .card.card-s{
    flex-direction: row;
    height: 290px;
    overflow: hidden;
}
.news-widget .card.card-s .card-img-top{
    max-width:200px;
    height: 290px;
    border-radius: 0;
    border-top-left-radius: var(--rounded-20);
    border-bottom-left-radius: var(--rounded-20);
}
.news-widget .card.card-s .card-body{
    padding: 1.75rem;
} 
.news-widget .card .card-body a i{
    color: var(--theme);
}


.news-detail-widget .card-img-top{
    border-top-left-radius: var(--rounded-16);
    border-top-right-radius: var(--rounded-16);
    height: 450px;
}
/*--------------------------------------*/

/*Gallery Section
/*--------------------------------------*/
.gallery-widget img.gallery-img{
    height: 272px;
    width: 100%;
    object-fit: cover;
}
.about-widget.gallery-widget .about-info h5{
    color: var(--white);
    font-size: 1.125rem;
}


/*--------------------------------------*/

/*About Pages
/*--------------------------------------*/
.about-img{
    height: 25rem;
}
.content-area{
    padding: 60px 0!important;
}
.content-area ul li{
    list-style:disc;
    margin-left: 1.5rem;
    margin-bottom: 1rem;
    color: var(--gray);
    line-height: 1.8rem;
}
.content-area ul li li{
    list-style:circle;
}
.content-area ul li li li{
    list-style:disc;
}
.content-area p:last-child{
    margin-bottom: 0;
}
.avatar-img-lg{
    width: 10rem;
    height: 10rem;
    object-fit: cover;
}
.img-fluid{
    object-fit: cover;
}
/*--------------------------------------*/

/*Footer
/*--------------------------------------*/


footer {
    background: var(--grad-footer);
    border-top: 4px solid var(--brand-gold);
    font-size:.875rem;
    color: var(--white);
}
footer p{
    font-size: .875rem;
}
footer ul{
    margin-top: 1rem;
}
footer li{
    line-height: 3;

}
footer a{
    color: var(--white);
}
footer .footer-last{
    padding: 2rem 0 1rem;
    border-top:1px solid rgba(255, 255, 255, .1);
    margin-top:3rem
}
footer .footer-last a{
    color: var(--brand-sky);
}
/*--------------------------------------*/

/*Responsive
/*--------------------------------------*/

@media all and (max-width: 1439.98px) {
    .navbar .nav-link {
        font-size: .875rem;
        padding: .75rem .50rem !important;
        margin: 0 .10rem;
    }

}

@media all and (max-width: 1199px) {
    .navbar-brand img {
        height: 50px;
    }

    .navbar .nav-link {
        font-size: 1.15rem;
        padding: .50rem 1rem
    }

    .fixed-top.sticky .navbar-brand img {
        height: 45px;
    }

    .navbar-toggler {
        top: 50%;
    }


    main {
        margin-top: 120px;
    }

    h2 {
        font-size: 2.5rem;
        line-height: 3rem;
    }

    h3 {
        font-size: 2rem;
        line-height: 2.5rem;
    }

    h4 {
        font-size: 1.2rem;
        line-height: 1.7rem;
    }
    footer .footer-block {
        padding: 1.75rem 1rem;
        min-height: auto;
    }
    .header-top li {
        font-size: .75rem;
    }
}

@media all and (max-width: 991px) {
    .social-widget{
        position: fixed;
        z-index: 999;
        right: 0;
        display: grid;
        top:50%;
        margin-top: -40px;
    }

    .sepraion {
        padding-top: 60px;
    }
    .mission-section::after,
    .mission-section::before{   
        width: 100%;
        height: 50%;   
        left: 0;
        top: inherit;
    }
    .mission-section::before{  
        top:0
    }
    .mission-section::after{
        bottom: 0;
    }
    .news-widget .card.card-s {
        flex-direction: column;
        height: auto;
        overflow: inherit;
    }
    .news-widget .card.card-s .card-img-top {
        max-width: 100%;
        height: 300px;
        border-top-left-radius: var(--rounded-20);
        border-top-right-radius: var(--rounded-20);
        border-bottom-left-radius: 0;
    }
    .header-top {
        padding:1rem;
    }
    .header-top li {
        line-height: 1.1;
    }
    .navbar-nav .dropdown-menu{
        border-radius: 0;
    }
    .fixed-top.sticky .header-bottom {
        margin-top: -37px;
    }
    .navbar-nav .dropdown-menu{
        border-radius: 0;
    }
}

@media all and (max-width: 767px) {

    .header-top ul {
        display: block;
        list-style: none;
        margin-bottom: 0 !important;
        grid-gap: 20px;
        align-items: center;
    }

    .header-top ul li {
        padding-bottom: 10px;
    }

    .header-top ul li:last-child {
        padding-bottom: 0;
    }

    .fixed-top.sticky .header-bottom {
        margin-top: -52px;
    }

    main {
        margin-top: 128px;
    }
    .sepraion-y {
        padding: 50px 0;
    }
    .avatar-img-lg{
        width: 7rem;
        height: 7rem;
    }
}

@media (max-width: 567px) {
    .header-top{
        padding: 0;
    }
    h2 {
        font-size: 1.8rem;
        line-height: 2.3rem;
    }

    h3 {
        font-size: 1.5rem;
        line-height: 1.8rem;
    }

    h4 {
        font-size: 1.1rem;
        line-height: 1.4rem;
    }


   
}
/*--------------------------------------*/
/* CCA (Co-Curricular Activities): cca.php and cca-activity.php */
/*--------------------------------------*/
.page-hero {
    background: var(--grad-hero);
    color: var(--white);
    padding: 2.25rem 0;
}
.page-hero h1 {
    color: var(--white);
    font-size: 2.25rem;
    line-height: 1.2;
    margin-bottom: .5rem;
}
.page-hero p {
    color: rgba(255, 255, 255, .9);
    max-width: 65ch;
    margin: 0;
}
.page-hero .crumbs {
    font-size: .85rem;
    margin-bottom: .5rem;
    color: rgba(255, 255, 255, .8);
}
.page-hero .crumbs a {
    color: var(--white);
}
.cca-filters {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin-bottom: 1.75rem;
}
.cca-filters button {
    border: 1px solid #d5e4ee;
    background: var(--white);
    color: var(--brand-navy);
    border-radius: 2rem;
    padding: .5rem 1.1rem;
    font-family: 'Graphik Semibold', sans-serif;
    font-size: .875rem;
    transition: background .2s, color .2s;
}
.cca-filters button:hover,
.cca-filters button.active {
    background: var(--brand-navy);
    border-color: var(--brand-navy);
    color: var(--white);
}
.cca-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    background: var(--white);
    border: 1px solid #e3ecf2;
    border-radius: 16px;
    overflow: hidden;
    color: inherit;
    text-decoration: none;
    transition: transform .25s, box-shadow .25s;
}
.cca-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 14px 30px rgba(0, 70, 110, .14);
    color: inherit;
}
.cca-card .cca-cover {
    aspect-ratio: 3 / 2;
    width: 100%;
    object-fit: cover;
    display: block;
}
.cca-ph {
    aspect-ratio: 3 / 2;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: rgba(255, 255, 255, .9);
    font-size: 3rem;
}
.cca-card .cca-body {
    padding: 1.1rem 1.25rem 1.25rem;
    display: flex;
    flex-direction: column;
    gap: .4rem;
    flex: 1;
}
.cca-tag {
    align-self: flex-start;
    font-family: 'Graphik Semibold', sans-serif;
    font-size: .72rem;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: #0a6aa1;
    background: #eaf4fb;
    border-radius: 2rem;
    padding: .2rem .65rem;
}
.cca-card h3 {
    font-size: 1.25rem;
    line-height: 1.3;
    margin: 0;
    color: var(--secondary);
}
.cca-card p {
    color: var(--gray-secondary);
    font-size: .95rem;
    margin: 0;
    flex: 1;
    text-align: left !important;
}
.cca-card .more {
    font-family: 'Graphik Semibold', sans-serif;
    color: var(--brand-navy);
    font-size: .9rem;
    margin-top: .35rem;
}
.cca-detail-cover {
    width: 100%;
    border-radius: 16px;
    display: block;
    margin-bottom: 1.5rem;
}
.cca-detail-cover.cca-ph {
    display: flex;
    aspect-ratio: 21 / 8;
    border-radius: 16px;
    margin-bottom: 1.5rem;
    font-size: 3.5rem;
}
.cca-detail p {
    color: var(--gray-secondary);
    line-height: 1.75;
    text-align: left !important;
}
.cca-highlights {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: .6rem;
}
.cca-highlights li {
    display: flex;
    gap: .65rem;
    align-items: baseline;
    color: var(--secondary);
}
.cca-highlights i {
    color: #17794a;
}
.cca-side {
    background: var(--white);
    border: 1px solid #e3ecf2;
    border-radius: 16px;
    padding: 1.4rem;
    margin-bottom: 1.25rem;
}
.cca-side h4 {
    font-size: 1.1rem;
    margin-bottom: .85rem;
}
.cca-side ul {
    list-style: none;
    padding: 0;
    margin: 0;
}
.cca-side li a {
    display: flex;
    justify-content: space-between;
    padding: .55rem 0;
    border-bottom: 1px solid #eef2f5;
    color: var(--secondary);
    text-decoration: none;
}
.cca-side li:last-child a {
    border-bottom: 0;
}
.cca-side li a:hover,
.cca-side li a.current {
    color: var(--brand-navy);
    font-family: 'Graphik Semibold', sans-serif;
}
.cca-gallery {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: .85rem;
}
.cca-gallery a {
    display: block;
    border-radius: 12px;
    overflow: hidden;
}
.cca-gallery img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    display: block;
    transition: transform .3s;
}
.cca-gallery a:hover img {
    transform: scale(1.05);
}
@media (max-width: 575px) {
    .page-hero h1 {
        font-size: 1.75rem;
    }
}
/* Club page: "Activities conducted" as a simple timeline */
.club-timeline {
    list-style: none;
    margin: 0 0 0 .6rem;
    padding: 0 0 0 1.5rem;
    border-left: 3px solid #d5e4ee;
    display: grid;
    gap: 1rem;
}
.club-timeline li {
    position: relative;
    color: var(--secondary);
    line-height: 1.6;
}
.club-timeline li::before {
    content: "";
    position: absolute;
    left: calc(-1.5rem - 8px);
    top: .45rem;
    width: 13px;
    height: 13px;
    border-radius: 50%;
    background: var(--brand-gold);
    border: 3px solid var(--white);
    box-shadow: 0 0 0 2px var(--brand-gold);
}

/*--------------------------------------*/

/*Visual makeover: admission band, CCA highlights, footer social, inner-page heroes
/*--------------------------------------*/
.admission-band {
    background: var(--grad-band);
    color: var(--white);
    padding: 2.25rem 0;
    position: relative;
    overflow: hidden;
}
.admission-band::after {
    /* soft gold glow on the right, decorative only */
    content: "";
    position: absolute;
    right: -120px;
    top: -120px;
    width: 340px;
    height: 340px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(242, 178, 51, .22) 0%, rgba(242, 178, 51, 0) 70%);
    pointer-events: none;
}
.admission-band .container {
    position: relative;
    z-index: 1;
}
.admission-band .band-kicker {
    display: inline-block;
    background: var(--brand-gold);
    color: var(--brand-gold-ink);
    font-size: .75rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    padding: .3rem .8rem;
    border-radius: 2rem;
    margin-bottom: .75rem;
}
.admission-band h2 {
    color: var(--white);
    font-size: 1.9rem;
    margin-bottom: .4rem;
}
.admission-band p {
    color: rgba(255, 255, 255, .92);
    margin: 0;
    text-align: left !important;
}
.admission-band .band-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
}
.btn.btn-outline-light-band {
    border: 1.5px solid rgba(255, 255, 255, .85);
    color: var(--white);
    background: transparent;
}
.btn.btn-outline-light-band:hover,
.btn.btn-outline-light-band:focus-visible {
    background: var(--white);
    color: var(--brand-navy);
}
.admission-band .btn.btn-enquire:hover,
.admission-band .btn.btn-enquire:focus-visible {
    background: var(--white);
    color: var(--brand-navy);
}
@media (max-width: 991.98px) {
    .admission-band { text-align: center; }
    .admission-band p { text-align: center !important; }
    .admission-band .band-actions { justify-content: center; margin-top: 1.25rem; }
}

/* Small section label above homepage headings */
.section-kicker {
    display: inline-block;
    color: var(--brand-link);
    font-size: .8rem;
    letter-spacing: .1em;
    text-transform: uppercase;
    margin-bottom: .5rem;
}
.home-cca .cca-card .cca-body p {
    text-align: left !important;
}

/* Inner-page title bars use the hero gradient */
.page-hero.page-hero--sm {
    padding: 1.75rem 0;
}
.page-hero.page-hero--sm h1 {
    font-size: 2rem;
    margin: 0;
}

/* Footer social links */
.footer-social {
    display: flex;
    gap: .6rem;
    margin-top: 1.25rem;
}
.footer-social a {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, .1);
    color: var(--white);
    font-size: 1.1rem;
    transition: background .2s, color .2s;
}
.footer-social a:hover,
.footer-social a:focus-visible {
    background: var(--brand-gold);
    color: var(--brand-gold-ink);
}

/* Leadership and Mission/Vision on About Us */
.about-leaders .about-widget img.about-img {
    height: 340px;
}
.mission-section.mission-about {
    margin-top: 0;
    z-index: 0;
    isolation: isolate;
}
@media (max-width: 767.98px) {
    .admission-band h2 { font-size: 1.5rem; }
    .page-hero.page-hero--sm h1 { font-size: 1.6rem; }
}

/* Footer text on the dark gradient (the global grey <p> colour is for light backgrounds) */
footer p {
    color: rgba(255, 255, 255, .78);
}
/* Calendar header: brand gradient instead of red (red is kept for the crest) */
footer .calander-header {
    background: var(--grad-bar);
    border-bottom: 3px solid var(--brand-gold);
}

/*--------------------------------------*/

/*Results ticker (homepage, under the slider). CSS only: each list is printed twice and
  the track slides by -50% in a loop. Data: admin > School Toppers. See inc/results_ticker.php
/*--------------------------------------*/
.results-ticker {
    background: var(--brand-deep);
    color: var(--white);
    font-size: .95rem;
    border-bottom: 3px solid var(--brand-gold);
}
.rt-groups {
    display: grid;
}
.rt-group {
    grid-area: 1 / 1;          /* Class X and Class XII share one row and take turns */
    display: flex;
    align-items: stretch;
    min-width: 0;
}
.rt-label {
    flex: 0 0 auto;
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: .45rem 1.75rem .45rem 1.25rem;
    background: var(--grad-gold);
    color: var(--brand-gold-ink);
    line-height: 1.15;
    clip-path: polygon(0 0, calc(100% - 14px) 0, 100% 50%, calc(100% - 14px) 100%, 0 100%);
}
.rt-exam {
    font-size: .68rem;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.rt-class {
    font-family: 'Graphik Semibold';
    font-size: 1rem;
    white-space: nowrap;
}
.rt-viewport {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 28px, #000 calc(100% - 28px), transparent 100%);
            mask-image: linear-gradient(90deg, transparent 0, #000 28px, #000 calc(100% - 28px), transparent 100%);
}
.rt-track {
    display: flex;
    width: max-content;
    animation: rt-scroll var(--rt-dur, 40s) linear infinite;
}
.rt-list {
    display: flex;
    margin: 0;
    padding: 0;
    list-style: none;
}
.rt-item {
    display: flex;
    align-items: center;
    gap: .55rem;
    padding: .55rem 1.5rem;
    white-space: nowrap;
    border-right: 1px solid rgba(255, 255, 255, .14);
}
.rt-item img {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid rgba(255, 255, 255, .7);
    background: #fff;
}
.rt-name {
    color: var(--white);
}
.rt-pct {
    color: #4ADE80;             /* NSE-style green, 9:1 on the deep navy */
    font-family: 'Graphik Semibold';
}
.rt-up {
    font-size: .7em;
    margin-right: .3rem;
    position: relative;
    top: -.1em;
}
@keyframes rt-scroll {
    to { transform: translateX(-50%); }
}
/* Two classes: swap the label and list every 18 seconds */
.rt-n2 .rt-group {
    animation: rt-swap 36s linear infinite;
}
.rt-n2 .rt-g1 {
    animation-delay: -18s;
}
@keyframes rt-swap {
    0%, 47% { opacity: 1; visibility: visible; }
    50%, 97% { opacity: 0; visibility: hidden; }
    100% { opacity: 1; visibility: visible; }
}
/* Pause while the visitor reads (mouse over, or keyboard focus inside) */
.results-ticker:hover .rt-track,
.results-ticker:hover .rt-group,
.results-ticker:focus-within .rt-track,
.results-ticker:focus-within .rt-group {
    animation-play-state: paused;
}
/* Reduced motion: no movement; each class becomes a static row that can be scrolled sideways */
@media (prefers-reduced-motion: reduce) {
    .rt-track,
    .rt-n2 .rt-group {
        animation: none !important;
    }
    .rt-groups {
        display: block;
    }
    .rt-n2 .rt-group {
        opacity: 1;
        visibility: visible;
    }
    .rt-group + .rt-group {
        border-top: 1px solid rgba(255, 255, 255, .14);
    }
    .rt-copy {
        display: none;
    }
    .rt-viewport {
        overflow-x: auto;
        -webkit-mask-image: none;
                mask-image: none;
    }
}
@media (max-width: 767.98px) {
    .results-ticker { font-size: .875rem; }
    .rt-label { padding: .4rem 1.4rem .4rem .8rem; }
    .rt-class { font-size: .875rem; }
    .rt-item { padding: .5rem 1rem; }
    .rt-item img { width: 28px; height: 28px; }
}

/*--------------------------------------*/

/*Footer (brief 4.6): contact list, map, School Updates sub-list, compact academic calendar
/*--------------------------------------*/
footer h4 {
    color: var(--white);
}
.footer-contact {
    margin: 0 0 .25rem;
}
.footer-contact li {
    display: flex;
    gap: .65rem;
    align-items: flex-start;
    line-height: 1.5;
    margin-bottom: .7rem;
    color: rgba(255, 255, 255, .85);
}
.footer-contact i {
    color: var(--brand-gold);
    margin-top: .1rem;
}
.footer-contact a:hover,
footer ul a:hover {
    color: var(--brand-gold);
}
.footer-subhead {
    color: var(--brand-gold);
    font-size: .8rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    margin: 1.5rem 0 0;
}
footer .footer-sublist {
    margin-top: .25rem;
}
footer .footer-sublist li {
    line-height: 2.4;
}
.footer-map {
    position: relative;
    margin-top: 1.25rem;
    border-radius: var(--rounded-10);
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .15);
    background: #0b2f47;
}
.footer-map iframe {
    display: block;
    width: 100%;
    height: 170px;
    border: 0;
}
.footer-directions {
    position: absolute;
    right: .5rem;
    bottom: .5rem;
    background: var(--brand-gold);
    color: var(--brand-gold-ink) !important;
    font-family: 'Graphik Semibold';
    font-size: .8rem;
    padding: .35rem .8rem;
    border-radius: 2rem;
    box-shadow: 0 2px 8px rgba(0, 0, 0, .25);
}
.footer-directions:hover,
.footer-directions:focus-visible {
    background: var(--white);
    color: var(--brand-navy) !important;
}

/* Compact academic calendar */
.mini-cal {
    --t-exam: #FBBF24;
    --t-holiday: #34D399;
    --t-occasion: #38BDF8;
    background: rgba(255, 255, 255, .05);
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: var(--rounded-10);
    overflow: hidden;
    max-width: 380px;
    margin-left: auto;
}
.mc-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: .6rem 1rem;
    background: var(--grad-bar);
    border-bottom: 2px solid var(--brand-gold);
    font-family: 'Graphik Semibold';
}
.mc-head a {
    font-size: .8rem;
    color: var(--white);
}
.mc-head a:hover {
    color: var(--brand-gold);
}
.mc-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: .5rem .75rem .25rem;
}
.mc-nav strong {
    font-size: .9rem;
}
.mc-nav button {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    border: 0;
    background: rgba(255, 255, 255, .1);
    color: var(--white);
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.mc-nav button:hover:not(:disabled) {
    background: var(--brand-gold);
    color: var(--brand-gold-ink);
}
.mc-nav button:disabled {
    opacity: .3;
}
.mc-grid {
    width: calc(100% - 1rem);
    margin: 0 .5rem;
    table-layout: fixed;
    border-collapse: separate;
    border-spacing: 2px;
    text-align: center;
    font-size: .8rem;
}
.mc-grid th {
    font-weight: normal;
    color: rgba(255, 255, 255, .6);
    padding: .2rem 0;
    font-size: .72rem;
}
.mc-grid td {
    padding: 0;
    height: 32px;
}
.mc-day {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 32px;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: rgba(255, 255, 255, .9);
    font: inherit;
    line-height: 1;
    padding: 0;
}
button.mc-day {
    cursor: pointer;
    background: rgba(255, 255, 255, .08);
}
button.mc-day:hover,
button.mc-day:focus-visible {
    background: rgba(255, 255, 255, .2);
    outline: 2px solid var(--brand-gold);
    outline-offset: -2px;
}
.mc-grid td.is-today .mc-day {
    background: var(--brand-gold);
    color: var(--brand-gold-ink);
    font-family: 'Graphik Semibold';
}
.mc-dots {
    display: flex;
    gap: 2px;
    margin-top: 3px;
}
.mc-dots i,
.mc-legend i {
    display: inline-block;
    width: 6px;
    height: 6px;
    border-radius: 50%;
}
.mini-cal .t-exam { --c: var(--t-exam); }
.mini-cal .t-holiday { --c: var(--t-holiday); }
.mini-cal .t-occasion { --c: var(--t-occasion); }
.mc-dots i,
.mc-legend i {
    background: var(--c);
}
.is-today .mc-dots i {
    box-shadow: 0 0 0 1px var(--brand-gold-ink);
}
.mc-selected {
    margin: .5rem .75rem 0;
    padding: .5rem .65rem;
    border-radius: 6px;
    background: rgba(255, 255, 255, .08);
    font-size: .8rem;
    line-height: 1.45;
    color: var(--white);
}
.mc-selected span {
    color: var(--c);
}
.mc-legend {
    display: flex;
    gap: 1rem;
    justify-content: center;
    margin: .6rem 0 0 !important;
    font-size: .75rem;
    color: rgba(255, 255, 255, .75);
}
footer .mc-legend li {
    line-height: 1.5;
    display: flex;
    align-items: center;
    gap: .35rem;
}
.mc-upcoming {
    margin-top: .6rem;
    padding: .65rem .9rem .8rem;
    border-top: 1px solid rgba(255, 255, 255, .12);
}
.mc-upcoming h5 {
    font-size: .8rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--brand-gold);
    margin: 0 0 .5rem;
}
footer .mc-upcoming ul {
    margin: 0;
}
footer .mc-upcoming li {
    display: flex;
    gap: .7rem;
    align-items: center;
    line-height: 1.3;
    padding: .3rem 0;
}
.mc-date {
    flex: 0 0 44px;
    text-align: center;
    border-radius: 6px;
    padding: .2rem 0;
    font-size: .68rem;
    text-transform: uppercase;
    background: rgba(255, 255, 255, .08);
    border-left: 3px solid var(--c);
}
.mc-date b {
    display: block;
    font-size: 1rem;
    font-family: 'Graphik Semibold';
}
.mc-ev {
    display: flex;
    flex-direction: column;
    min-width: 0;
}
.mc-ev-title {
    font-size: .85rem;
}
.mc-ev-meta {
    font-size: .72rem;
    color: rgba(255, 255, 255, .65);
}
footer .mc-empty {
    font-size: .8rem;
    margin: 0;
    color: rgba(255, 255, 255, .7);
}
footer .mc-empty a {
    color: var(--brand-sky);
}
@media (max-width: 991.98px) {
    .mini-cal {
        margin: 0 auto;
    }
}

/* Mobile: keep button labels and the phone number on one line */
.welcome-actions .btn,
.section-head .btn,
.home-cca .btn {
    white-space: nowrap;
}
@media (max-width: 575.98px) {
    .section-head h2 {
        font-size: 2rem;
    }
}

/* Body text is left-aligned everywhere (justified text leaves uneven gaps, worst on phones).
   Also overrides justify pasted into CMS content through the editor. */
.text-justify,
[style*="justify"],
[align="justify"] {
    text-align: left !important;
}

/*--------------------------------------*/

/*Parents' testimonials (homepage)
/*--------------------------------------*/
.testi-section {
    background:
        radial-gradient(circle at 10% 0%, rgba(10, 106, 161, .08), transparent 45%),
        radial-gradient(circle at 90% 100%, rgba(242, 178, 51, .12), transparent 40%),
        var(--light-gray);
}
.testi-slider .owl-stage {
    display: flex;
}
.testi-slider .owl-item {
    display: flex;
    padding: 6px 0 14px;      /* room for the card shadow */
}
.testi-card {
    position: relative;
    display: flex;
    flex-direction: column;
    width: 100%;
    margin: 0;
    padding: 2.25rem 1.75rem 1.5rem;
    background: var(--white);
    border-radius: var(--rounded-20);
    box-shadow: 0 10px 30px rgba(0, 40, 70, .08);
    border-top: 4px solid var(--brand-gold);
    transition: transform .25s, box-shadow .25s;
}
.testi-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 16px 36px rgba(0, 40, 70, .14);
}
.testi-quote {
    position: absolute;
    top: .5rem;
    right: 1.4rem;
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 5.5rem;
    line-height: 1;
    color: var(--brand-gold);
    opacity: .35;
}
.testi-text {
    margin: 0;
    position: relative;
    max-height: 13.5em;           /* about 9 lines, the rest opens with "Read more" */
    overflow: hidden;
    font-size: .95rem;
}
.testi-text::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 3em;
    background: linear-gradient(rgba(255, 255, 255, 0), var(--white));
}
.testi-text p {
    font-size: .95rem;
    line-height: 1.5;
    margin-bottom: .75rem;
    color: #3d4852;
    text-align: left !important;
}
.testi-card.is-open .testi-text {
    max-height: none;
}
.testi-card.is-open .testi-text::after,
.testi-card.no-more .testi-text::after,
.testi-card.no-more .testi-more {
    display: none;
}
.testi-more {
    align-self: flex-start;
    border: 0;
    background: none;
    padding: .25rem 0;
    margin-top: .25rem;
    color: var(--brand-link);
    font-family: 'Graphik Semibold';
    font-size: .875rem;
}
.testi-more:hover,
.testi-more:focus-visible {
    text-decoration: underline;
}
.testi-author {
    display: flex;
    align-items: center;
    gap: .85rem;
    margin-top: auto;
    padding-top: 1.25rem;
    border-top: 1px solid #e8eef3;
}
.testi-text + .testi-more + .testi-author {
    margin-top: auto;
}
.testi-card .testi-more {
    margin-bottom: 1rem;
}
.testi-avatar {
    flex: 0 0 48px;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--grad-hero);
    color: var(--white);
    font-family: 'Graphik Semibold';
    letter-spacing: .03em;
}
.testi-author b {
    display: block;
    color: var(--brand-navy);
    font-family: 'Graphik Semibold';
    font-weight: normal;
}
.testi-author small {
    display: block;
    color: var(--gray);
    font-size: .8rem;
    line-height: 1.35;
}
.testi-slider .owl-nav {
    display: flex;
    justify-content: center;
    gap: .5rem;
    margin-top: 1rem;
}
.testi-slider .owl-dots {
    margin-top: .75rem;
    text-align: center;
}
.testi-slider .owl-dots .owl-dot span {
    width: 10px;
    height: 10px;
    margin: 4px;
    background: #c9d6e0;
    display: block;
    border-radius: 10px;
    transition: width .2s;
}
.testi-slider .owl-dots .owl-dot.active span {
    width: 26px;
    background: var(--brand-gold);
}
.testi-card .testi-text {
    margin-top: 1.6rem;           /* clear the quote mark */
}
/* While a quote is opened, the other cards keep their own height */
.testi-slider.has-open .owl-item {
    align-items: flex-start;
}

/*--------------------------------------*/

/*Contact Us page
/*--------------------------------------*/
.contact-page {
    padding-top: 0;
}
.contact-cards {
    position: relative;
    margin-top: -1.75rem;          /* cards overlap the bottom of the hero */
}
.contact-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 1.5rem;
    background: var(--white);
    border-radius: var(--rounded-16);
    box-shadow: 0 10px 28px rgba(0, 40, 70, .1);
    color: var(--black);
    transition: transform .2s, box-shadow .2s;
}
.contact-card:hover,
.contact-card:focus-visible {
    transform: translateY(-4px);
    box-shadow: 0 16px 34px rgba(0, 40, 70, .16);
    color: var(--black);
}
.cc-icon {
    width: 48px;
    height: 48px;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--grad-hero);
    color: var(--white);
    font-size: 1.3rem;
    margin-bottom: 1rem;
}
.cc-icon.cc-wa {
    background: linear-gradient(135deg, #128C4B, #1FAF5F);
}
.contact-card h2 {
    font-size: 1.15rem;
    margin-bottom: .4rem;
}
.contact-card p {
    font-size: .9rem;
    margin-bottom: 1rem;
    line-height: 1.5;
}
.contact-card .cc-big {
    font-family: 'Graphik Semibold';
    font-size: 1.1rem;
    color: var(--brand-navy);
}
.contact-card .cc-mail {
    font-family: 'Graphik Semibold';
    color: var(--brand-navy);
    overflow-wrap: anywhere;
}
.cc-link {
    margin-top: auto;
    font-size: .85rem;
    font-family: 'Graphik Semibold';
    color: var(--brand-link);
}
.contact-main {
    padding: 2.5rem 0 5rem;
}
.contact-panel {
    background: var(--white);
    border-radius: var(--rounded-16);
    box-shadow: 0 6px 22px rgba(0, 40, 70, .07);
    padding: 1.5rem;
}
.contact-panel + .contact-panel {
    margin-top: 1.5rem;
}
.contact-panel h3 {
    font-size: 1.25rem;
    margin-bottom: 1rem;
    display: flex;
    align-items: center;
    gap: .5rem;
}
.contact-panel h3 i {
    color: var(--brand-ocean);
}
.contact-map {
    padding: .5rem;
    height: 100%;
    display: flex;
    flex-direction: column;
}
.contact-map iframe {
    display: block;
    width: 100%;
    flex: 1 1 auto;
    min-height: 380px;
    border: 0;
    border-radius: var(--rounded-10);
}
.contact-map-foot {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: 1rem .75rem .5rem;
}
.contact-map-foot b {
    display: block;
    color: var(--brand-navy);
}
.contact-map-foot span {
    font-size: .85rem;
    color: var(--gray);
}
.contact-map-foot .btn {
    white-space: nowrap;
}
.timings-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    font-size: .92rem;
    border: 1px solid #e3eaf0;
    border-radius: var(--rounded-10);
    overflow: hidden;
}
.timings-table th {
    background: var(--brand-navy);
    color: var(--white);
    font-family: 'Graphik Semibold';
    font-weight: normal;
    padding: .65rem 1rem;
    text-align: left;
}
.timings-table td {
    padding: .6rem 1rem;
    border-top: 1px solid #e3eaf0;
}
.timings-table td:last-child,
.timings-table th:last-child {
    text-align: right;
    white-space: nowrap;
}
.timings-table tbody tr:nth-child(even) td {
    background: #f6f9fc;
}
.contact-admission {
    background: var(--grad-band);
    color: var(--white);
}
.contact-admission h3 {
    color: var(--white);
}
.contact-admission p {
    color: rgba(255, 255, 255, .9);
    font-size: .92rem;
}
.contact-facts {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
    margin: 2.5rem 0 0;
}
.contact-facts li {
    display: flex;
    gap: .75rem;
    align-items: flex-start;
    padding: 1rem;
    border-radius: var(--rounded-10);
    background: var(--white);
    border: 1px solid #e3eaf0;
}
.contact-facts i {
    color: var(--brand-gold);
    font-size: 1.4rem;
    line-height: 1;
}
.contact-facts span {
    font-size: .85rem;
    color: var(--gray);
    line-height: 1.4;
}
.contact-facts b {
    display: block;
    color: var(--brand-navy);
    font-family: 'Graphik Semibold';
    font-weight: normal;
    font-size: .95rem;
}
@media (max-width: 991.98px) {
    .contact-facts { grid-template-columns: repeat(2, 1fr); }
    .contact-map iframe { min-height: 300px; }
}
@media (max-width: 575.98px) {
    .contact-facts { grid-template-columns: 1fr; }
    .contact-cards { margin-top: -1rem; }
}
/* Contact cards: overlap the hero (transform, so Bootstrap's row gutters don't cancel it) */
.contact-page .contact-cards {
    margin-top: 0;
    transform: translateY(-1.75rem);
    margin-bottom: -1.75rem;
}
.contact-page + .contact-main {
    padding-top: 3.5rem;
}
@media (max-width: 575.98px) {
    .contact-page .contact-cards { transform: translateY(-1rem); margin-bottom: -1rem; }
    /* compact cards on phones: icon beside the text */
    .contact-card {
        display: grid;
        grid-template-columns: 44px 1fr;
        column-gap: 1rem;
        padding: 1.1rem 1.25rem;
    }
    .contact-card .cc-icon { grid-row: span 3; width: 44px; height: 44px; margin: 0; }
    .contact-card h2 { margin-bottom: .2rem; }
    .contact-card p { margin-bottom: .4rem; }
}

/*--------------------------------------*/

/*Yearly Planner page (colours match the footer calendar: inc/calendar.php types)
/*--------------------------------------*/
.yp-section {
    padding: 3rem 0 5rem;
    --t-exam: #B45309;
    --t-holiday: #047857;
    --t-occasion: #0369A1;
}
.yp-section .t-exam { --c: var(--t-exam); --c-bg: #FEF3C7; }
.yp-section .t-holiday { --c: var(--t-holiday); --c-bg: #D1FAE5; }
.yp-section .t-occasion { --c: var(--t-occasion); --c-bg: #E0F2FE; }
.yp-card {
    background: var(--white);
    border-radius: var(--rounded-16);
    box-shadow: 0 6px 22px rgba(0, 40, 70, .07);
    padding: 1.5rem;
}
.yp-side + .yp-side {
    margin-top: 1.5rem;
}
.yp-card h3 {
    font-size: 1.1rem;
    margin-bottom: 1rem;
}
.yp-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    margin-bottom: 1.25rem;
}
.yp-nav {
    display: flex;
    align-items: center;
    gap: .5rem;
}
.yp-nav button {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    border: 1px solid #d5e2ec;
    background: var(--white);
    color: var(--brand-navy);
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.yp-nav button:hover:not(:disabled) {
    background: var(--brand-navy);
    border-color: var(--brand-navy);
    color: var(--white);
}
.yp-nav button:disabled {
    opacity: .35;
}
.yp-title {
    font-size: 1.5rem;
    margin: 0 0 0 .5rem;
}
.btn.yp-today {
    border: 1px solid var(--brand-navy);
    color: var(--brand-navy);
    background: var(--white);
}
.btn.yp-today:hover {
    background: var(--brand-navy);
    color: var(--white);
}
.yp-grid {
    width: 100%;
    table-layout: fixed;
    border-collapse: collapse;
}
.yp-grid th {
    font-family: 'Graphik Semibold';
    font-weight: normal;
    font-size: .8rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--gray);
    padding: .5rem;
    text-align: left;
    border-bottom: 2px solid #e3eaf0;
}
.yp-grid td {
    vertical-align: top;
    height: 96px;
    padding: .4rem;
    border: 1px solid #edf1f5;
    overflow: hidden;
}
.yp-grid td.yp-empty {
    background: #fafbfd;
}
.yp-grid td.is-sun .yp-day {
    color: #9a3412;
}
.yp-day {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 28px;
    height: 28px;
    border-radius: 50%;
    font-size: .85rem;
    color: #2b3640;
}
.yp-grid td.is-today {
    background: #fffaf0;
}
.yp-grid td.is-today .yp-day {
    background: var(--brand-gold);
    color: var(--brand-gold-ink);
    font-family: 'Graphik Semibold';
}
.yp-chip {
    display: block;
    margin-top: .25rem;
    padding: .15rem .4rem;
    border-radius: 4px;
    font-size: .72rem;
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    background: var(--c-bg);
    color: var(--c);
    border-left: 3px solid var(--c);
}
.yp-more {
    display: block;
    font-size: .7rem;
    color: var(--gray);
    margin-top: .15rem;
}
.yp-dots {
    display: none;
    gap: 3px;
    justify-content: center;
    margin-top: 2px;
}
.yp-dots i,
.yp-legend i {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--c);
}
.yp-legend {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem 1.25rem;
    margin: 0;
}
.yp-legend li {
    display: flex;
    align-items: center;
    gap: .45rem;
    font-size: .9rem;
}
.yp-legend i {
    width: 12px;
    height: 12px;
    border-radius: 3px;
}
.yp-month-list {
    margin-top: 1.75rem;
    padding-top: 1.25rem;
    border-top: 1px solid #e3eaf0;
}
.yp-events,
.yp-month-list ul {
    margin: 0;
}
.yp-events li,
.yp-month-list li {
    display: flex;
    align-items: center;
    gap: .9rem;
    padding: .6rem 0;
    border-bottom: 1px dashed #e3eaf0;
}
.yp-events li:last-child,
.yp-month-list li:last-child {
    border-bottom: 0;
}
.yp-date {
    flex: 0 0 52px;
    text-align: center;
    padding: .3rem 0;
    border-radius: 8px;
    font-size: .7rem;
    text-transform: uppercase;
    color: var(--c);
    background: var(--c-bg);
}
.yp-date b {
    display: block;
    font-size: 1.15rem;
    font-family: 'Graphik Semibold';
    line-height: 1.1;
}
.yp-ev {
    display: flex;
    flex-direction: column;
    min-width: 0;
}
.yp-ev-title {
    font-family: 'Graphik Semibold';
    color: #1f2a33;
    font-size: .95rem;
}
.yp-ev-meta {
    font-size: .8rem;
    color: var(--gray);
}
.yp-none {
    color: var(--gray);
    font-size: .9rem;
}
.yp-help p {
    font-size: .9rem;
}
@media (max-width: 767.98px) {
    .yp-card { padding: 1rem; }
    .yp-title { font-size: 1.2rem; }
    .yp-grid th { text-align: center; padding: .4rem 0; font-size: .7rem; }
    .yp-grid td { height: 52px; padding: .2rem; text-align: center; }
    .yp-chip, .yp-more { display: none; }   /* phones: dots in the grid, details in the list below */
    .yp-dots { display: flex; }
    .yp-day { min-width: 24px; height: 24px; font-size: .8rem; }
}

/*--------------------------------------*/

/*Admission Procedure page
/*--------------------------------------*/
.adm-hero p {
    max-width: 70ch;
}
.adm-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    margin-top: 1.5rem;
}
.adm-hero-actions .btn,
.adm-section .btn {
    white-space: nowrap;
}
.adm-section {
    padding: 4rem 0;
}
.adm-h2 {
    font-size: 2rem;
    margin-bottom: 1.75rem;
}
/* Numbered timeline of steps */
.adm-steps {
    list-style: none;
    margin: 0;
    padding: 0;
    position: relative;
}
.adm-steps::before {
    content: "";
    position: absolute;
    left: 23px;
    top: 24px;
    bottom: 24px;
    width: 2px;
    background: linear-gradient(var(--brand-gold), var(--brand-ocean));
    opacity: .5;
}
.adm-steps li {
    position: relative;
    display: flex;
    gap: 1.25rem;
    padding-bottom: 1rem;
}
.adm-num {
    position: relative;
    z-index: 1;
    flex: 0 0 48px;
    height: 48px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--grad-hero);
    color: var(--white);
    font-family: 'Graphik Semibold';
    font-size: 1.1rem;
    box-shadow: 0 0 0 5px var(--light-gray);
}
.adm-steps li:first-child .adm-num {
    background: var(--brand-gold);
    color: var(--brand-gold-ink);
}
.adm-step-body {
    flex: 1;
    background: var(--white);
    border-radius: var(--rounded-16);
    padding: 1rem 1.25rem;
    box-shadow: 0 4px 16px rgba(0, 40, 70, .06);
}
.adm-step-body h3 {
    font-size: 1.05rem;
    margin-bottom: .35rem;
    color: var(--brand-navy);
}
.adm-step-body h3 i {
    color: var(--brand-ocean);
    margin-right: .25rem;
}
.adm-step-body p {
    margin: 0;
    font-size: .92rem;
}
/* Cards */
.adm-card {
    background: var(--white);
    border-radius: var(--rounded-16);
    box-shadow: 0 6px 22px rgba(0, 40, 70, .07);
    padding: 1.5rem;
}
.adm-card h3 {
    font-size: 1.15rem;
    margin-bottom: .75rem;
    display: flex;
    align-items: center;
    gap: .5rem;
}
.adm-card h3 i {
    color: var(--brand-ocean);
}
.adm-side {
    position: sticky;
    top: 170px;
}
.adm-side .adm-card + .adm-card {
    margin-top: 1.5rem;
}
.adm-card--cta {
    background: var(--grad-band);
    color: var(--white);
}
.adm-card--cta h3 {
    color: var(--white);
}
.adm-card--cta p {
    color: rgba(255, 255, 255, .9);
    font-size: .92rem;
}
.adm-wa {
    display: block;
    text-align: center;
    margin-top: .85rem;
    font-size: .88rem;
    color: var(--white);
}
.adm-wa:hover {
    color: var(--brand-gold);
}
.adm-note {
    font-size: .85rem;
    margin-bottom: .75rem;
}
.adm-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    font-size: .92rem;
    border: 1px solid #e3eaf0;
    border-radius: var(--rounded-10);
    overflow: hidden;
}
.adm-table th {
    background: var(--brand-navy);
    color: var(--white);
    font-weight: normal;
    font-family: 'Graphik Semibold';
    padding: .6rem 1rem;
}
.adm-table td {
    padding: .55rem 1rem;
    border-top: 1px solid #e3eaf0;
}
.adm-table th:last-child,
.adm-table td:last-child {
    text-align: right;
}
.adm-table tbody tr:nth-child(even) td {
    background: #f6f9fc;
}
/* Assessment cards */
.adm-assess {
    background: var(--white);
}
.adm-assess-card {
    height: 100%;
    border: 1px solid #e3eaf0;
    box-shadow: none;
    border-top: 4px solid var(--brand-gold);
    transition: transform .2s, box-shadow .2s;
}
.adm-assess-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 14px 30px rgba(0, 40, 70, .1);
}
.adm-assess-icon {
    width: 52px;
    height: 52px;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #e8f2f9;
    color: var(--brand-ocean);
    font-size: 1.5rem;
    margin-bottom: 1rem;
}
.adm-assess-card h3 {
    display: block;
}
.adm-tag {
    display: inline-block;
    font-size: .75rem;
    font-family: 'Graphik Semibold';
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--brand-navy);
    background: #fdf1d6;
    padding: .25rem .7rem;
    border-radius: 2rem;
    margin-bottom: .75rem;
}
.adm-assess-card p {
    margin: 0;
    font-size: .92rem;
}
.adm-checklist {
    margin: 0;
}
.adm-checklist li {
    position: relative;
    padding: .55rem 0 .55rem 2rem;
    border-bottom: 1px dashed #e3eaf0;
    color: #2b3640;
}
.adm-checklist li:last-child {
    border-bottom: 0;
}
.adm-checklist li::before {
    content: "\F26A";                 /* bootstrap-icons check-circle-fill */
    font-family: "bootstrap-icons";
    position: absolute;
    left: 0;
    top: .5rem;
    color: #047857;
}
.adm-rights {
    border-left: 5px solid var(--brand-navy);
}
@media (max-width: 991.98px) {
    .adm-side { position: static; }
}
@media (max-width: 575.98px) {
    .adm-section { padding: 2.75rem 0; }
    .adm-h2 { font-size: 1.6rem; }
    .adm-steps li { gap: .85rem; }
    .adm-num { flex-basis: 40px; height: 40px; font-size: 1rem; }
    .adm-steps::before { left: 19px; }
}

/*--------------------------------------*/

/*About Us menu pages: leadership messages, Vision & Mission, School Staff, Rules & Regulations
/*--------------------------------------*/
.msg-letter,
.vm-card,
.staff-card,
.rules-card {
    background: var(--white);
    border-radius: var(--rounded-16);
    box-shadow: 0 6px 22px rgba(0, 40, 70, .07);
}

/* Leadership messages */
.msg-section {
    padding: 3.5rem 0 4.5rem;
}
.msg-profile {
    position: sticky;
    top: 170px;
    background: var(--white);
    border-radius: var(--rounded-16);
    overflow: hidden;
    box-shadow: 0 10px 28px rgba(0, 40, 70, .1);
}
.msg-profile img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 5;
    object-fit: cover;
}
.msg-profile-body {
    padding: 1.1rem 1.25rem 1.25rem;
    border-top: 4px solid var(--brand-gold);
}
.msg-profile-body b {
    display: block;
    font-family: 'Graphik Semibold';
    font-weight: normal;
    font-size: 1.15rem;
    color: var(--brand-navy);
}
.msg-profile-body span {
    display: block;
    color: var(--brand-link);
    font-size: .92rem;
}
.msg-profile-body small {
    display: block;
    color: var(--gray);
    margin-top: .35rem;
}
.msg-letter {
    position: relative;
    padding: 2.5rem 2.5rem 2rem;
}
.msg-quote-mark {
    position: absolute;
    top: .25rem;
    right: 1.75rem;
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 7rem;
    line-height: 1;
    color: var(--brand-gold);
    opacity: .3;
}
.msg-letter p {
    font-size: 1rem;
    line-height: 1.75;
    color: #3d4852;
}
.msg-letter .msg-greeting {
    font-family: 'Graphik Semibold';
    color: var(--brand-navy);
    font-size: 1.1rem;
}
.msg-pull {
    margin: 1.75rem 0;
    padding: 1.25rem 1.5rem;
    border-left: 4px solid var(--brand-gold);
    background: #fdf8ec;
    border-radius: 0 var(--rounded-10) var(--rounded-10) 0;
    font-family: 'Graphik Semibold';
    font-size: 1.15rem;
    line-height: 1.6;
    color: var(--brand-navy);
}
.msg-sign {
    margin-top: 2rem;
    padding-top: 1.25rem;
    border-top: 1px solid #e8eef3;
}
.msg-sign span {
    display: block;
    color: var(--gray);
    font-size: .92rem;
}
.msg-sign b {
    display: block;
    font-family: 'Graphik Semibold';
    font-weight: normal;
    font-size: 1.15rem;
    color: var(--brand-navy);
}
.msg-sign small {
    color: var(--brand-link);
}
.msg-others {
    margin-top: 3rem;
}
.msg-others h2 {
    font-size: 1.25rem;
    margin-bottom: 1rem;
}
.msg-other {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: .75rem 1.25rem .75rem .75rem;
    background: var(--white);
    border-radius: var(--rounded-16);
    box-shadow: 0 4px 16px rgba(0, 40, 70, .06);
    color: var(--black);
    transition: transform .2s, box-shadow .2s;
}
.msg-other:hover,
.msg-other:focus-visible {
    transform: translateY(-3px);
    box-shadow: 0 12px 26px rgba(0, 40, 70, .12);
    color: var(--black);
}
.msg-other img {
    width: 64px;
    height: 64px;
    border-radius: 12px;
    object-fit: cover;
    flex: 0 0 64px;
}
.msg-other span {
    flex: 1;
    min-width: 0;
}
.msg-other b {
    display: block;
    font-family: 'Graphik Semibold';
    font-weight: normal;
    color: var(--brand-navy);
}
.msg-other small {
    color: var(--gray);
}
.msg-other i {
    color: var(--brand-ocean);
}

/* Vision & Mission */
.vm-section {
    padding: 3.5rem 0 4.5rem;
}
.vm-motto {
    text-align: center;
    margin-bottom: 2.5rem;
}
.vm-motto p {
    font-family: 'Graphik Semibold';
    font-size: 2rem;
    line-height: 1.3;
    color: var(--brand-navy);
    margin: 0;
    text-align: center !important;
}
.vm-card {
    height: 100%;
    padding: 2rem;
    border-top: 4px solid var(--brand-ocean);
}
.vm-card--mission {
    border-top-color: var(--brand-gold);
}
.vm-icon {
    width: 56px;
    height: 56px;
    border-radius: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--grad-hero);
    color: var(--white);
    font-size: 1.6rem;
    margin-bottom: 1rem;
}
.vm-card--mission .vm-icon {
    background: var(--brand-gold);
    color: var(--brand-gold-ink);
}
.vm-card h2 {
    font-size: 1.6rem;
    margin-bottom: 1rem;
}
.vm-card p {
    font-size: 1rem;
    line-height: 1.75;
    color: #3d4852;
}
.vm-pillars {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
    margin-top: 2rem;
}
.vm-pillars div {
    background: var(--white);
    border: 1px solid #e3eaf0;
    border-radius: var(--rounded-10);
    padding: 1.1rem;
    text-align: center;
}
.vm-pillars i {
    display: block;
    font-size: 1.5rem;
    color: var(--brand-gold);
    margin-bottom: .4rem;
}
.vm-pillars b {
    display: block;
    font-family: 'Graphik Semibold';
    font-weight: normal;
    color: var(--brand-navy);
}
.vm-pillars span {
    font-size: .85rem;
    color: var(--gray);
}
.vm-next {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    margin-top: 2.5rem;
}
.vm-next p {
    margin: 0;
}

/* School Staff */
.staff-section {
    padding: 3.5rem 0 4.5rem;
}
.staff-h2 {
    font-size: 2rem;
}
.staff-card {
    height: 100%;
    padding: 2rem;
    border-top: 4px solid var(--brand-gold);
    transition: transform .2s, box-shadow .2s;
}
.staff-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 14px 30px rgba(0, 40, 70, .12);
}
.staff-icon {
    width: 56px;
    height: 56px;
    border-radius: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #e8f2f9;
    color: var(--brand-ocean);
    font-size: 1.6rem;
    margin-bottom: 1rem;
}
.staff-card h3 {
    font-size: 1.3rem;
    margin-bottom: .75rem;
}
.staff-card p {
    line-height: 1.7;
}
.staff-cta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 2.5rem;
    padding: 1.75rem 2rem;
    border-radius: var(--rounded-16);
    background: var(--grad-band);
    color: var(--white);
}
.staff-cta h3 {
    color: var(--white);
    font-size: 1.4rem;
    margin-bottom: .25rem;
}
.staff-cta p {
    color: rgba(255, 255, 255, .9);
}

/* Rules & Regulations */
.rules-section {
    padding: 3rem 0 4.5rem;
}
.rules-toc {
    position: sticky;
    top: 170px;
    background: var(--white);
    border-radius: var(--rounded-16);
    padding: 1.25rem;
    box-shadow: 0 6px 22px rgba(0, 40, 70, .07);
}
.rules-toc h2 {
    font-size: .8rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--gray);
    margin-bottom: .75rem;
}
.rules-toc ul {
    margin: 0;
}
.rules-toc a {
    display: block;
    padding: .45rem .75rem;
    border-radius: 8px;
    border-left: 3px solid transparent;
    font-size: .9rem;
    color: #2b3640;
}
.rules-toc a:hover,
.rules-toc a:focus-visible {
    background: #f1f6fa;
    border-left-color: var(--brand-gold);
    color: var(--brand-navy);
}
.rules-card {
    padding: 2rem;
    margin-bottom: 1.5rem;
    scroll-margin-top: 170px;      /* lands below the fixed header when jumping from the list */
}
.rules-card h2 {
    display: flex;
    align-items: center;
    gap: .75rem;
    font-size: 1.4rem;
    margin-bottom: 1.25rem;
}
.rules-icon {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    flex: 0 0 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--grad-hero);
    color: var(--white);
    font-size: 1.2rem;
}
.rules-intro {
    font-family: 'Graphik Semibold';
    color: var(--brand-navy) !important;
}
.rules-card p {
    line-height: 1.7;
    color: #3d4852;
}
.rules-list {
    counter-reset: rule;
    list-style: none;
    margin: 0;
    padding: 0;
}
.rules-list li {
    counter-increment: rule;
    position: relative;
    padding: .7rem 0 .7rem 2.75rem;
    border-bottom: 1px dashed #e3eaf0;
    line-height: 1.6;
    color: #2b3640;
}
.rules-list li:last-child {
    border-bottom: 0;
}
.rules-list li::before {
    content: counter(rule);
    position: absolute;
    left: 0;
    top: .65rem;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: #fdf1d6;
    color: var(--brand-gold-ink);
    font-family: 'Graphik Semibold';
    font-size: .8rem;
    display: flex;
    align-items: center;
    justify-content: center;
}
.rules-points {
    margin: 1rem 0 0;
}
.rules-points li {
    position: relative;
    padding: .55rem 0 .55rem 1.75rem;
    line-height: 1.6;
    color: #2b3640;
}
.rules-points li::before {
    content: "\F26A";              /* bootstrap-icons check-circle-fill */
    font-family: "bootstrap-icons";
    position: absolute;
    left: 0;
    top: .55rem;
    color: var(--brand-ocean);
}
.rules-alert {
    display: flex;
    gap: .9rem;
    margin-top: 1.25rem;
    padding: 1.1rem 1.25rem;
    border-radius: var(--rounded-10);
    background: #fff7ed;
    border-left: 4px solid #c2410c;
}
.rules-alert i {
    color: #c2410c;
    font-size: 1.3rem;
    line-height: 1.4;
}
.rules-alert p {
    font-size: .92rem;
}
.rules-foot {
    text-align: center !important;
    margin-top: 2rem;
}
.rules-foot a {
    color: var(--brand-link);
    font-family: 'Graphik Semibold';
}

@media (max-width: 991.98px) {
    .msg-profile { position: static; display: flex; align-items: stretch; }
    .msg-profile img { width: 40%; aspect-ratio: auto; max-height: 260px; }
    .msg-profile-body { border-top: 0; border-left: 4px solid var(--brand-gold); display: flex; flex-direction: column; justify-content: center; }
    .vm-pillars { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 575.98px) {
    .msg-letter, .vm-card, .staff-card, .rules-card { padding: 1.5rem 1.25rem; }
    .msg-quote-mark { font-size: 5rem; }
    .vm-motto p { font-size: 1.5rem; }
    .rules-card h2 { font-size: 1.2rem; }
    .msg-profile img { width: 42%; }
}

/*--------------------------------------*/

/*Academics pages (inc/academics.php): wings, curriculum, subjects, uniform, timings
/*--------------------------------------*/
.acad-section {
    padding: 3.5rem 0 4.5rem;
}
.acad-badge {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    background: var(--brand-gold);
    color: var(--brand-gold-ink);
    font-family: 'Graphik Semibold';
    font-size: .8rem;
    padding: .3rem .85rem;
    border-radius: 2rem;
    margin-bottom: .75rem;
}
.acad-card,
.acad-side-card {
    background: var(--white);
    border-radius: var(--rounded-16);
    box-shadow: 0 6px 22px rgba(0, 40, 70, .07);
    padding: 2rem;
}
.acad-card p {
    font-size: 1rem;
    line-height: 1.75;
    color: #3d4852;
}
.acad-card > p:last-child {
    margin-bottom: 0;
}
.acad-lead {
    border-left: 5px solid var(--brand-gold);
}
.acad-card-title {
    display: flex;
    align-items: center;
    gap: .5rem;
    font-size: 1.3rem;
    margin-bottom: 1.25rem;
}
.acad-card-title i,
.acad-side-card h3 i {
    color: var(--brand-ocean);
}
.acad-h2 {
    font-size: 1.5rem;
    margin: 2.5rem 0 1.25rem;
}
.acad-h3 {
    font-size: 1.1rem;
    margin: 1.5rem 0 .9rem;
    color: var(--brand-navy);
}
/* "Why choose us" points as a two-column grid of small cards */
.acad-why {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: .85rem;
    margin: 0;
    padding: 0;
    list-style: none;
}
.acad-why--one {
    grid-template-columns: 1fr;
}
.acad-why li {
    display: flex;
    gap: .75rem;
    align-items: flex-start;
    background: var(--white);
    border-radius: var(--rounded-10);
    padding: 1rem 1.1rem;
    border: 1px solid #e3eaf0;
    line-height: 1.55;
    color: #2b3640;
    font-size: .95rem;
}
.acad-note .acad-why li {
    border: 0;
    padding: .4rem 0;
}
.acad-why li i {
    color: #047857;
    font-size: 1.2rem;
    line-height: 1.3;
}
.acad-more {
    margin-top: 1rem;
    font-size: .92rem;
}
.acad-more a {
    color: var(--brand-link);
    font-family: 'Graphik Semibold';
}
/* Link cards */
.acad-next {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: .85rem;
    margin-top: 2rem;
}
.acad-link {
    display: flex;
    align-items: center;
    gap: .9rem;
    padding: 1rem 1.15rem;
    background: var(--white);
    border-radius: var(--rounded-16);
    box-shadow: 0 4px 16px rgba(0, 40, 70, .06);
    color: var(--black);
    transition: transform .2s, box-shadow .2s;
}
.acad-link:hover,
.acad-link:focus-visible {
    transform: translateY(-3px);
    box-shadow: 0 12px 26px rgba(0, 40, 70, .12);
    color: var(--black);
}
.acad-link > i:first-child {
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #e8f2f9;
    color: var(--brand-ocean);
    font-size: 1.2rem;
}
.acad-link span {
    flex: 1;
    min-width: 0;
}
.acad-link b {
    display: block;
    font-family: 'Graphik Semibold';
    font-weight: normal;
    color: var(--brand-navy);
}
.acad-link small {
    color: var(--gray);
}
.acad-link > i:last-child {
    color: var(--brand-ocean);
}
/* Wing cards on the curriculum page */
.acad-wing {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1.25rem;
    height: 100%;
    background: var(--white);
    border-radius: var(--rounded-16);
    border-top: 4px solid var(--brand-gold);
    box-shadow: 0 6px 20px rgba(0, 40, 70, .07);
    color: var(--black);
    transition: transform .2s, box-shadow .2s;
}
.acad-wing:hover,
.acad-wing:focus-visible {
    transform: translateY(-3px);
    box-shadow: 0 14px 30px rgba(0, 40, 70, .13);
    color: var(--black);
}
.acad-wing-icon {
    width: 56px;
    height: 56px;
    flex: 0 0 56px;
    border-radius: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--grad-hero);
    color: var(--white);
    font-size: 1.5rem;
}
.acad-wing-body {
    flex: 1;
}
.acad-wing b {
    display: block;
    font-family: 'Graphik Semibold';
    font-weight: normal;
    font-size: 1.1rem;
    color: var(--brand-navy);
}
.acad-wing small {
    color: var(--gray);
}
.acad-wing > i:last-child {
    color: var(--brand-ocean);
}
/* Side column */
.acad-side {
    position: sticky;
    top: 170px;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}
.acad-facts {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .75rem;
}
.acad-facts div {
    background: var(--grad-hero);
    color: var(--white);
    border-radius: var(--rounded-10);
    padding: .9rem 1rem;
}
.acad-facts span {
    display: block;
    font-size: .72rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    opacity: .85;
}
.acad-facts b {
    font-family: 'Graphik Semibold';
    font-weight: normal;
    font-size: 1.05rem;
}
.acad-side-card {
    padding: 1.25rem;
}
.acad-side-card h3 {
    font-size: 1.05rem;
    display: flex;
    align-items: center;
    gap: .5rem;
    margin-bottom: .9rem;
}
.acad-nav {
    background: var(--white);
    border-radius: var(--rounded-16);
    box-shadow: 0 6px 22px rgba(0, 40, 70, .07);
    padding: 1.1rem;
}
.acad-nav h2 {
    font-size: .78rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--gray);
    margin: 0 0 .6rem .4rem;
}
.acad-nav ul {
    margin: 0;
}
.acad-nav a {
    display: flex;
    align-items: center;
    gap: .65rem;
    padding: .5rem .7rem;
    border-radius: 8px;
    font-size: .92rem;
    color: #2b3640;
}
.acad-nav a i {
    color: var(--brand-ocean);
    width: 18px;
    text-align: center;
}
.acad-nav a:hover,
.acad-nav a:focus-visible {
    background: #f1f6fa;
    color: var(--brand-navy);
}
.acad-nav a.active {
    background: var(--brand-navy);
    color: var(--white);
}
.acad-nav a.active i {
    color: var(--brand-gold);
}
.acad-cta {
    background: var(--grad-band);
    color: var(--white);
    border-radius: var(--rounded-16);
    padding: 1.25rem;
}
.acad-cta h3 {
    color: var(--white);
    font-size: 1.1rem;
}
.acad-cta p {
    color: rgba(255, 255, 255, .9);
    font-size: .9rem;
}
/* Timings table */
.acad-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    font-size: .92rem;
    border: 1px solid #e3eaf0;
    border-radius: var(--rounded-10);
    overflow: hidden;
}
.acad-table thead th {
    background: var(--brand-navy);
    color: var(--white);
    font-family: 'Graphik Semibold';
    font-weight: normal;
    padding: .65rem 1rem;
    text-align: left;
}
.acad-table td,
.acad-table tbody th {
    padding: .6rem 1rem;
    border-top: 1px solid #e3eaf0;
    vertical-align: top;
}
.acad-table thead th:last-child,
.acad-table td:last-child {
    text-align: right;
    white-space: nowrap;
}
.acad-table tbody tr:nth-child(even) td,
.acad-table tbody tr:nth-child(even) th {
    background: #f6f9fc;
}
.acad-table tr.is-hl td {
    background: #fdf1d6 !important;
    font-family: 'Graphik Semibold';
    color: var(--brand-navy);
}
/* Streams (senior wing) */
.acad-streams {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: .75rem;
}
.acad-streams div {
    text-align: center;
    padding: 1rem .5rem;
    border-radius: var(--rounded-10);
    background: #f1f6fa;
}
.acad-streams i {
    display: block;
    font-size: 1.6rem;
    color: var(--brand-ocean);
    margin-bottom: .3rem;
}
.acad-streams b {
    font-family: 'Graphik Semibold';
    font-weight: normal;
    color: var(--brand-navy);
}
/* Subject combination */
.sub-jump {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin-bottom: 1.5rem;
}
.sub-jump a {
    padding: .45rem 1rem;
    border-radius: 2rem;
    background: var(--white);
    border: 1px solid #d5e2ec;
    font-size: .88rem;
    color: var(--brand-navy);
}
.sub-jump a:hover,
.sub-jump a:focus-visible {
    background: var(--brand-navy);
    border-color: var(--brand-navy);
    color: var(--white);
}
.sub-stage {
    margin-bottom: 1.5rem;
    scroll-margin-top: 170px;
}
.sub-head {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1rem;
}
.sub-num {
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--grad-hero);
    color: var(--white);
    font-family: 'Graphik Semibold';
    font-size: 1.1rem;
}
.sub-head h2 {
    font-size: 1.4rem;
    margin: 0;
}
.sub-classes {
    font-size: .88rem;
    color: var(--brand-link);
    font-family: 'Graphik Semibold';
}
.sub-chips {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin: 0;
    padding: 0;
    list-style: none;
}
.sub-chips li {
    padding: .4rem .85rem;
    border-radius: 2rem;
    background: #eef5fa;
    border: 1px solid #dbe7f0;
    font-size: .88rem;
    color: #1f3a4d;
}
.sub-skills th {
    font-family: 'Graphik Semibold';
    font-weight: normal;
    color: var(--brand-navy);
    white-space: nowrap;
    width: 1%;
}
.sub-skills td:last-child {
    text-align: left;
    white-space: normal;
}
.sub-note {
    display: flex;
    gap: .65rem;
    margin: 1.25rem 0 0 !important;
    padding: .9rem 1rem;
    border-radius: var(--rounded-10);
    background: #fdf8ec;
    font-size: .92rem !important;
}
.sub-note i {
    color: var(--brand-gold);
    font-size: 1.15rem;
}
/* Uniforms */
.uni-group {
    margin-bottom: 2.25rem;
}
.uni-head {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: .25rem 1rem;
    margin-bottom: .9rem;
}
.uni-head h2 {
    font-size: 1.35rem;
    margin: 0;
}
.uni-head span {
    font-size: .88rem;
    color: var(--gray);
}
.uni-card {
    display: block;
    background: var(--white);
    border-radius: var(--rounded-16);
    overflow: hidden;
    box-shadow: 0 6px 20px rgba(0, 40, 70, .07);
    color: var(--black);
    transition: transform .2s, box-shadow .2s;
}
.uni-card:hover,
.uni-card:focus-visible {
    transform: translateY(-3px);
    box-shadow: 0 14px 30px rgba(0, 40, 70, .13);
    color: var(--black);
}
.uni-img {
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 4 / 3;
    background: #f6f9fc;
    padding: .75rem;
}
.uni-img img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}
.uni-missing {
    display: none;
    color: var(--gray);
    font-size: .88rem;
    gap: .4rem;
    align-items: center;
}
.uni-card.is-missing img {
    display: none;
}
.uni-card.is-missing .uni-missing {
    display: inline-flex;
}
.uni-card.is-missing .uni-cap i {
    display: none;
}
.uni-cap {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: .8rem 1rem;
    border-top: 1px solid #e8eef3;
    font-family: 'Graphik Semibold';
    color: var(--brand-navy);
    font-size: .92rem;
}
.uni-cap i {
    color: var(--brand-ocean);
}
@media (max-width: 991.98px) {
    .acad-side { position: static; }
}
@media (max-width: 767.98px) {
    .acad-why, .acad-next { grid-template-columns: 1fr; }
}
@media (max-width: 575.98px) {
    .acad-card { padding: 1.4rem 1.2rem; }
    .acad-streams { grid-template-columns: 1fr; }
    .acad-h2 { font-size: 1.3rem; }
}

/*--------------------------------------*/

/*Beyond Academics: Employability Skills, Student Council
/*--------------------------------------*/
.emp-section,
.council-section {
    padding: 3.5rem 0 4.5rem;
}
.emp-why,
.emp-crown {
    height: 100%;
    background: var(--white);
    border-radius: var(--rounded-16);
    box-shadow: 0 6px 22px rgba(0, 40, 70, .07);
    padding: 1.75rem;
}
.emp-why p {
    font-size: 1.05rem;
    line-height: 1.7;
    color: #2b3640;
}
.emp-crown {
    display: flex;
    gap: 1rem;
    background: var(--grad-band);
    color: var(--white);
}
.emp-crown i {
    font-size: 2rem;
    color: var(--brand-gold);
    line-height: 1;
}
.emp-crown b {
    display: block;
    font-family: 'Graphik Semibold';
    font-weight: normal;
    font-size: 1.1rem;
    margin-bottom: .35rem;
}
.emp-crown p {
    color: rgba(255, 255, 255, .9);
    font-size: .92rem;
}
.emp-jump {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin: 2.25rem 0 1.75rem;
}
.emp-jump a {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .45rem .95rem;
    border-radius: 2rem;
    background: var(--white);
    border: 1px solid #d5e2ec;
    font-size: .85rem;
    color: var(--brand-navy);
}
.emp-jump a i {
    color: var(--brand-ocean);
}
.emp-jump a:hover,
.emp-jump a:focus-visible {
    background: var(--brand-navy);
    border-color: var(--brand-navy);
    color: var(--white);
}
.emp-jump a:hover i {
    color: var(--brand-gold);
}
.emp-card {
    height: 100%;
    background: var(--white);
    border-radius: var(--rounded-16);
    box-shadow: 0 6px 22px rgba(0, 40, 70, .07);
    padding: 1.75rem;
    border-top: 4px solid var(--brand-gold);
    scroll-margin-top: 170px;
}
.emp-head {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1rem;
}
.emp-icon {
    width: 52px;
    height: 52px;
    flex: 0 0 52px;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--grad-hero);
    color: var(--white);
    font-size: 1.4rem;
}
.emp-num {
    font-size: .72rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--brand-link);
    font-family: 'Graphik Semibold';
}
.emp-head h2 {
    font-size: 1.25rem;
    margin: 0;
    line-height: 1.3;
}
.emp-quote {
    margin: 0 0 1rem;
    padding: .75rem 1rem;
    border-left: 3px solid var(--brand-gold);
    background: #fdf8ec;
    border-radius: 0 8px 8px 0;
    font-style: italic;
    color: var(--brand-navy);
    font-size: .95rem;
    line-height: 1.55;
}
.emp-quote cite {
    display: block;
    font-style: normal;
    font-size: .82rem;
    color: var(--gray);
    margin-top: .3rem;
}
.emp-card p {
    font-size: .95rem;
    line-height: 1.65;
    color: #3d4852;
}
.emp-list {
    margin: 0 0 1rem;
    padding: 0;
    list-style: none;
}
.emp-list li {
    position: relative;
    padding: .4rem 0 .4rem 1.6rem;
    line-height: 1.55;
    color: #2b3640;
    font-size: .95rem;
}
.emp-list li::before {
    content: "\F26A";              /* bootstrap-icons check-circle-fill */
    font-family: "bootstrap-icons";
    position: absolute;
    left: 0;
    top: .42rem;
    color: #047857;
    font-size: .9rem;
}
.emp-card .emp-highlight {
    display: flex;
    gap: .6rem;
    margin: 0;
    padding: .85rem 1rem;
    border-radius: var(--rounded-10);
    background: #eef5fa;
    color: var(--brand-navy);
}
.emp-highlight i {
    color: var(--brand-gold);
}

/* Student Council */
.council-meet {
    display: flex;
    align-items: center;
    gap: 1rem;
    background: var(--white);
    border-left: 5px solid var(--brand-gold);
    border-radius: var(--rounded-16);
    box-shadow: 0 6px 22px rgba(0, 40, 70, .07);
    padding: 1.25rem 1.5rem;
    margin-bottom: 2.5rem;
}
.council-meet i {
    font-size: 1.75rem;
    color: var(--brand-ocean);
}
.council-meet p {
    font-size: 1rem;
    color: #2b3640;
}
.council-group {
    margin-bottom: 2.75rem;
}
.council-group h2 {
    display: flex;
    align-items: center;
    gap: .6rem;
    font-size: 1.4rem;
    margin-bottom: 1.25rem;
    padding-bottom: .6rem;
    border-bottom: 2px solid #e3eaf0;
}
.council-group h2 i {
    color: var(--brand-gold);
}
.council-card {
    margin: 0;
    background: var(--white);
    border-radius: var(--rounded-16);
    overflow: hidden;
    box-shadow: 0 6px 20px rgba(0, 40, 70, .08);
    transition: transform .2s, box-shadow .2s;
}
.council-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 14px 30px rgba(0, 40, 70, .14);
}
.council-photo {
    position: relative;
    display: block;
    aspect-ratio: 4 / 5;
    background: var(--grad-hero);
}
.council-photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 50% 20%;
}
.council-photo.is-missing img {
    display: none;
}
.council-photo.is-missing::after {
    /* initials when the photo isn't available */
    content: attr(data-initials);
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'Graphik Semibold';
    font-size: 3rem;
    color: rgba(255, 255, 255, .9);
}
.council-card figcaption {
    padding: 1rem 1.25rem 1.2rem;
    text-align: center;
    border-top: 4px solid var(--brand-gold);
}
.council-role {
    display: inline-block;
    font-size: .72rem;
    letter-spacing: .06em;
    text-transform: uppercase;
    font-family: 'Graphik Semibold';
    color: var(--brand-navy);
    background: #fdf1d6;
    padding: .25rem .7rem;
    border-radius: 2rem;
    margin-bottom: .45rem;
}
.council-card b {
    display: block;
    font-family: 'Graphik Semibold';
    font-weight: normal;
    font-size: 1.1rem;
    color: #1f2a33;
}
@media (max-width: 575.98px) {
    .emp-card, .emp-why, .emp-crown { padding: 1.35rem 1.2rem; }
    .council-photo { aspect-ratio: 1 / 1; }
}
@media (max-width: 575.98px) {
    .council-card figcaption { padding: .8rem .6rem 1rem; }
    .council-card b { font-size: .95rem; }
    .council-role { font-size: .62rem; }
}

/*--------------------------------------*/

/*Page kit (inc/page_kit.php): Facilities, School Updates, Alumni, Contact, Disclosure pages
/*--------------------------------------*/
.kit-section {
    padding: 3.5rem 0 4.5rem;
}
.kit-h2 {
    display: flex;
    align-items: center;
    gap: .6rem;
    font-size: 1.4rem;
    margin: 2.25rem 0 1.1rem;
}
.kit-section .col-lg-8 > .kit-h2:first-child,
.kit-section .col-lg-8 > .acad-card:first-child + .kit-h2 {
    margin-top: 0;
}
.kit-section .col-lg-8 > .acad-card:first-child + .kit-h2 {
    margin-top: 2.25rem;
}
.kit-h2 i {
    color: var(--brand-gold);
}
.kit-feature {
    display: flex;
    gap: 1rem;
    height: 100%;
    background: var(--white);
    border-radius: var(--rounded-16);
    box-shadow: 0 4px 16px rgba(0, 40, 70, .06);
    padding: 1.25rem;
    transition: transform .2s, box-shadow .2s;
}
.kit-feature:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 26px rgba(0, 40, 70, .11);
}
.kit-feature-icon {
    width: 46px;
    height: 46px;
    flex: 0 0 46px;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--grad-hero);
    color: var(--white);
    font-size: 1.25rem;
}
.kit-feature b {
    display: block;
    font-family: 'Graphik Semibold';
    font-weight: normal;
    color: var(--brand-navy);
    font-size: 1.02rem;
    line-height: 1.35;
    margin-top: .1rem;
}
.kit-feature p {
    margin: .35rem 0 0;
    font-size: .92rem;
    line-height: 1.6;
    color: #3d4852;
}
/* Gallery */
.kit-photo {
    display: block;
    background: var(--white);
    border-radius: var(--rounded-16);
    overflow: hidden;
    box-shadow: 0 6px 20px rgba(0, 40, 70, .08);
    color: var(--black);
    transition: transform .2s, box-shadow .2s;
}
.kit-photo:hover,
.kit-photo:focus-visible {
    transform: translateY(-3px);
    box-shadow: 0 14px 30px rgba(0, 40, 70, .14);
    color: var(--black);
}
.kit-photo-img {
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 4 / 3;
    background: #eef3f7;
}
.kit-photo-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.kit-photo-missing {
    display: none;
    align-items: center;
    gap: .4rem;
    color: var(--gray);
    font-size: .88rem;
}
.kit-photo.is-missing img {
    display: none;
}
.kit-photo.is-missing .kit-photo-missing {
    display: inline-flex;
}
.kit-photo-cap {
    display: block;
    padding: .75rem 1rem;
    font-family: 'Graphik Semibold';
    font-size: .92rem;
    color: var(--brand-navy);
    border-top: 3px solid var(--brand-gold);
}
/* Call-out row: icon, text, button */
.kit-apply {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem 1.25rem;
    margin-top: 2.25rem;
    padding: 1.5rem;
    border-radius: var(--rounded-16);
    background: var(--white);
    border-left: 5px solid var(--brand-gold);
    box-shadow: 0 6px 22px rgba(0, 40, 70, .07);
}
.kit-apply > div {
    flex: 1 1 260px;
}
.kit-apply h2 {
    font-size: 1.2rem;
    margin-bottom: .3rem;
}
.kit-apply p {
    font-size: .95rem;
    color: #3d4852;
}
.kit-apply-icon {
    width: 52px;
    height: 52px;
    flex: 0 0 52px;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #fdf1d6;
    color: var(--brand-gold-ink);
    font-size: 1.4rem;
}
.kit-apply .btn {
    white-space: nowrap;
}
.kit-more-link {
    margin-top: 1.75rem;
}
@media (max-width: 575.98px) {
    .kit-h2 { font-size: 1.2rem; }
    .kit-apply .btn { width: 100%; justify-content: center; }
}

/*--------------------------------------*/

/*School Updates: news, photo albums, videos, testimonials page
/*--------------------------------------*/
.news-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    background: var(--white);
    border-radius: var(--rounded-16);
    overflow: hidden;
    box-shadow: 0 6px 20px rgba(0, 40, 70, .08);
    transition: transform .2s, box-shadow .2s;
}
.news-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 16px 34px rgba(0, 40, 70, .14);
}
.news-card-img {
    display: block;
    aspect-ratio: 16 / 10;
    background: #eef3f7;
    overflow: hidden;
}
.news-card-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .4s;
}
.news-card:hover .news-card-img img {
    transform: scale(1.04);
}
.news-card-body {
    display: flex;
    flex-direction: column;
    flex: 1;
    padding: 1.25rem 1.4rem 1.4rem;
}
.news-card time {
    font-size: .8rem;
    color: var(--brand-link);
    font-family: 'Graphik Semibold';
}
.news-card h2 {
    font-size: 1.1rem;
    line-height: 1.4;
    margin: .5rem 0 .6rem;
}
.news-card h2 a {
    color: #1f2a33;
}
.news-card h2 a:hover {
    color: var(--brand-ocean);
}
.news-card p {
    font-size: .9rem;
    line-height: 1.6;
    margin-bottom: 1rem;
    color: #4a5560;
}
.news-more {
    margin-top: auto;
    font-family: 'Graphik Semibold';
    font-size: .88rem;
    color: var(--brand-link);
}
.news-pages {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .4rem;
    margin-top: 2.5rem;
}
.news-pages a {
    min-width: 40px;
    height: 40px;
    padding: 0 .6rem;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--white);
    border: 1px solid #d5e2ec;
    color: var(--brand-navy);
    font-family: 'Graphik Semibold';
}
.news-pages a:hover,
.news-pages a.active {
    background: var(--brand-navy);
    border-color: var(--brand-navy);
    color: var(--white);
}
.news-article {
    padding: 0;
    overflow: hidden;
}
.news-article-img {
    display: block;
    background: #eef3f7;
}
.news-article-img img {
    display: block;
    width: 100%;
    max-height: 520px;
    object-fit: contain;
}
.news-article-body {
    padding: 2rem;
    font-size: 1rem;
    line-height: 1.75;
    color: #3d4852;
}
.news-article-body img {
    max-width: 100%;
    height: auto;
}
.news-back {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    margin-top: 1.5rem;
    font-family: 'Graphik Semibold';
    color: var(--brand-link);
}
.news-recent ul li + li {
    border-top: 1px solid #edf1f5;
}
.news-recent a {
    align-items: flex-start !important;
    gap: .75rem !important;
    padding: .7rem .4rem !important;
}
.news-recent img {
    width: 64px;
    height: 48px;
    flex: 0 0 64px;
    border-radius: 8px;
    object-fit: cover;
}
.news-recent b {
    display: block;
    font-family: 'Graphik Semibold';
    font-weight: normal;
    font-size: .88rem;
    line-height: 1.35;
    color: #1f2a33;
}
.news-recent small {
    color: var(--gray);
    font-size: .78rem;
}
/* Photo albums */
.album-card {
    display: block;
    height: 100%;
    background: var(--white);
    border-radius: var(--rounded-16);
    overflow: hidden;
    box-shadow: 0 6px 20px rgba(0, 40, 70, .08);
    color: var(--black);
    transition: transform .2s, box-shadow .2s;
}
.album-card:hover,
.album-card:focus-visible {
    transform: translateY(-4px);
    box-shadow: 0 16px 34px rgba(0, 40, 70, .14);
    color: var(--black);
}
.album-cover {
    position: relative;
    display: block;
    aspect-ratio: 4 / 3;
    background: #eef3f7;
    overflow: hidden;
}
.album-cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .4s;
}
.album-card:hover .album-cover img {
    transform: scale(1.05);
}
.album-count {
    position: absolute;
    right: .6rem;
    bottom: .6rem;
    padding: .25rem .6rem;
    border-radius: 2rem;
    background: rgba(0, 28, 46, .8);
    color: var(--white);
    font-size: .8rem;
}
.album-body {
    display: block;
    padding: 1rem 1.15rem 1.15rem;
    border-top: 3px solid var(--brand-gold);
}
.album-body b {
    display: block;
    font-family: 'Graphik Semibold';
    font-weight: normal;
    font-size: .98rem;
    line-height: 1.4;
    color: #1f2a33;
    text-transform: none;
}
.album-body small {
    color: var(--gray);
    font-size: .8rem;
}
.album-photo {
    position: relative;
    display: block;
    aspect-ratio: 1 / 1;
    border-radius: var(--rounded-10);
    overflow: hidden;
    background: #eef3f7;
}
.album-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .4s;
}
.album-zoom {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 28, 46, .45);
    color: var(--white);
    font-size: 1.4rem;
    opacity: 0;
    transition: opacity .2s;
}
.album-photo:hover img {
    transform: scale(1.05);
}
.album-photo:hover .album-zoom,
.album-photo:focus-visible .album-zoom {
    opacity: 1;
}
/* Videos */
.video-card {
    height: 100%;
    background: var(--white);
    border-radius: var(--rounded-16);
    overflow: hidden;
    box-shadow: 0 6px 20px rgba(0, 40, 70, .08);
}
.video-frame {
    position: relative;
    aspect-ratio: 16 / 9;
    background: #000;
}
.video-frame iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
}
.video-body {
    padding: 1.1rem 1.35rem 1.3rem;
    border-top: 3px solid var(--brand-gold);
}
.video-body h2 {
    font-size: 1.1rem;
    margin: 0;
}
.video-desc {
    margin-top: .5rem;
    font-size: .9rem;
    color: #4a5560;
}
.video-desc p:last-child {
    margin-bottom: 0;
}
/* Testimonials page: full quotes in a two-column wall */
.testi-wall {
    columns: 2 420px;
    column-gap: 1.5rem;
}
.testi-card.testi-card--full {
    break-inside: avoid;
    margin-bottom: 1.5rem;
    display: block;
}
.testi-card--full .testi-text {
    max-height: none;
}
.testi-card--full .testi-text::after {
    display: none;
}
.testi-card--full .testi-author {
    margin-top: 1rem;
}

/*--------------------------------------*/

/*Alumni registration, alumni stories, careers
/*--------------------------------------*/
/* Long alumni stories: show the start, "Read full story" opens the rest */
.testi-card--full.is-long:not(.is-open) .testi-text {
    max-height: 15em;
}
.testi-card--full.is-long:not(.is-open) .testi-text::after {
    display: block;
}
.testi-card--full .testi-more {
    margin-bottom: 0;
}
/* Forms */
.alumni-form .form-label em,
.alumni-form .form-label + em {
    color: #b42318;
    font-style: normal;
}
.alumni-form .form-control,
.alumni-form .form-select {
    border-radius: 10px;
    padding: .65rem .9rem;
}
.alumni-legend {
    font-size: 1.05rem;
    color: var(--brand-navy);
    margin: 1.75rem 0 1rem;
    padding-bottom: .5rem;
    border-bottom: 1px solid #e3eaf0;
}
.alumni-form .alumni-legend:first-of-type {
    margin-top: 0;
}
.alumni-hp {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}
.alumni-choice {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
}
.alumni-choice label {
    flex: 1 1 200px;
    display: flex;
    gap: .65rem;
    align-items: flex-start;
    padding: .85rem 1rem;
    border: 1px solid #d5e2ec;
    border-radius: 10px;
    cursor: pointer;
}
.alumni-choice label:has(input:checked) {
    border-color: var(--brand-ocean);
    background: #f1f6fa;
}
.alumni-choice input {
    margin-top: .3rem;
}
.alumni-choice b {
    display: block;
    font-family: 'Graphik Semibold';
    font-weight: normal;
    color: var(--brand-navy);
}
.alumni-choice small {
    color: var(--gray);
}
.enq-captcha {
    display: flex;
    align-items: center;
    gap: .75rem;
    flex-wrap: wrap;
}
.enq-captcha .sum {
    font-weight: 700;
    font-size: 1.1rem;
    background: #F3F7FA;
    border-radius: 8px;
    padding: .45rem .9rem;
    white-space: nowrap;
}
.enq-captcha input {
    max-width: 110px;
}
.alumni-done {
    text-align: center;
    padding: 3rem 2rem;
}
.alumni-done-icon {
    display: inline-flex;
    width: 72px;
    height: 72px;
    border-radius: 50%;
    align-items: center;
    justify-content: center;
    background: #d1fae5;
    color: #047857;
    font-size: 2.2rem;
    margin-bottom: 1rem;
}
.alumni-done h2 {
    font-size: 1.6rem;
}
.alumni-done p {
    text-align: center !important;
}
.alumni-steps {
    margin: 0;
    padding-left: 1.2rem;
    font-size: .92rem;
    color: #3d4852;
    line-height: 1.6;
}
.alumni-steps li {
    margin-bottom: .4rem;
}
/* Careers */
.career-empty {
    display: flex;
    gap: 1.25rem;
    align-items: flex-start;
}
.career-empty > i {
    font-size: 2.2rem;
    color: var(--brand-ocean);
}
.career-empty h3 {
    font-size: 1.2rem;
    margin-bottom: .4rem;
}
.career-empty a {
    color: var(--brand-link);
    font-family: 'Graphik Semibold';
}
.career-card + .career-card {
    margin-top: 1.25rem;
}
.career-card {
    border-left: 5px solid var(--brand-gold);
}
.career-head {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: baseline;
    gap: .5rem;
}
.career-head h3 {
    font-size: 1.3rem;
    margin: 0;
}
.career-ref {
    font-size: .82rem;
    color: var(--gray);
}
.career-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem 1.25rem;
    margin: .75rem 0 1rem;
    padding: 0;
    list-style: none;
    font-size: .9rem;
    color: #3d4852;
}
.career-meta i {
    color: var(--brand-ocean);
    margin-right: .35rem;
}
.career-desc {
    font-size: .95rem;
    color: #3d4852;
}
.career-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .75rem;
    margin-top: 1rem;
}
.career-contact {
    font-size: .88rem;
    color: var(--gray);
}
.meet-ways .contact-card {
    height: 100%;
}

/*--------------------------------------*/

/*Mandatory Public Disclosure (CBSE format tables, restyled)
/*--------------------------------------*/
.mpd-jump {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    padding-top: 1.5rem;
    padding-bottom: .25rem;
}
.mpd-jump a {
    padding: .45rem 1rem;
    border-radius: 2rem;
    background: var(--white);
    border: 1px solid #d5e2ec;
    font-size: .85rem;
    color: var(--brand-navy);
}
.mpd-jump a:hover,
.mpd-jump a:focus-visible {
    background: var(--brand-navy);
    border-color: var(--brand-navy);
    color: var(--white);
}
.mpd-section {
    padding: 2rem 0 4.5rem;
}
.mpd .mpd-h {
    display: flex;
    align-items: center;
    gap: .75rem;
    font-size: 1.35rem;
    margin: 2.5rem 0 1rem;
    scroll-margin-top: 170px;
}
.mpd .mpd-h:first-child {
    margin-top: 0;
}
.mpd .mpd-h span {
    width: 40px;
    height: 40px;
    flex: 0 0 40px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--grad-hero);
    color: var(--white);
    font-size: 1rem;
}
.mpd .mpd-sub {
    font-size: 1.05rem;
    color: var(--brand-navy);
    margin: 1.5rem 0 .75rem;
}
.mpd .table-responsive {
    background: var(--white);
    border-radius: var(--rounded-16);
    box-shadow: 0 6px 22px rgba(0, 40, 70, .07);
    padding: 0;
    margin-bottom: 0;
    overflow-x: auto;
}
.mpd table.table {
    margin: 0;
    border-collapse: separate;
    border-spacing: 0;
    font-size: .92rem;
}
.mpd table.table td {
    border: 0;
    border-bottom: 1px solid #edf1f5;
    padding: .75rem 1rem;
    vertical-align: top;
    color: #2b3640;
}
/* The first row of each CBSE table is its header row */
.mpd table.table tr:first-child td {
    background: var(--brand-navy);
    color: var(--white);
    font-family: 'Graphik Semibold';
    border-bottom: 0;
}
.mpd table.table tr:first-child td b {
    font-weight: normal;
}
.mpd table.table tr:nth-child(even):not(:first-child) td {
    background: #f8fafc;
}
.mpd table.table td:first-child {
    width: 70px;
    color: var(--gray);
}
.mpd table.table tr:first-child td:first-child {
    color: var(--white);
}
/* VIEW document links as small buttons; links with no document show "Not uploaded" */
.mpd table.table a[target="_blank"] {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    padding: .3rem .85rem;
    border-radius: 2rem;
    background: #e8f2f9;
    color: var(--brand-navy);
    font-family: 'Graphik Semibold';
    font-size: .8rem;
    white-space: nowrap;
}
.mpd table.table a[target="_blank"]::before {
    content: "\F38B";               /* bootstrap-icons file-earmark-text */
    font-family: "bootstrap-icons";
}
.mpd table.table a[target="_blank"]:hover {
    background: var(--brand-navy);
    color: var(--white);
}
.mpd table.table a[href^="javascript"] {
    font-size: 0;
    pointer-events: none;
}
.mpd table.table a[href^="javascript"]::after {
    content: "Not uploaded";
    font-size: .8rem;
    color: var(--gray);
}
.mpd .kit-gallery {
    margin-top: .25rem;
}


/*--------------------------------------*/
/*Home page: welcome, facts, facilities, leadership, news, gallery, visit band
/*--------------------------------------*/
.home h2 {
    font-size: 2.4rem;
    line-height: 1.2;
}
/* Shared section heading: kicker + title + one line, button on the right */
.home-head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1.25rem 2rem;
    margin-bottom: 2.5rem;
}
.home-head hgroup {
    max-width: 680px;
    margin: 0;
}
.home-head h2 {
    margin-bottom: .6rem;
}
.home-head p {
    margin: 0;
    color: var(--gray);
    text-align: left !important;
}
.home-head--center {
    justify-content: center;
    text-align: center;
}
.home-head--center p {
    text-align: center !important;
}
.home .section-kicker {
    font-family: 'Graphik Semibold';
    position: relative;
    padding-left: 2.1rem;
}
.home .section-kicker::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    width: 1.6rem;
    height: 2px;
    background: var(--brand-gold);
}
.home .home-head--center .section-kicker {
    padding: 0 2.1rem;
}
.home .home-head--center .section-kicker::after {
    content: "";
    position: absolute;
    right: 0;
    top: 50%;
    width: 1.6rem;
    height: 2px;
    background: var(--brand-gold);
}

/* Welcome */
.home-welcome {
    padding: 90px 0 0;
}
.hw-media {
    position: relative;
    margin: 0 0 2rem;
    isolation: isolate;
}
.hw-media img {
    display: block;
    width: 100%;
    aspect-ratio: 3 / 2;
    object-fit: cover;
    object-position: 22% 50%;
    border-radius: var(--rounded-20);
    box-shadow: 0 24px 50px rgba(0, 40, 70, .18);
}
.hw-media::before {
    /* gold frame offset behind the photo */
    content: "";
    position: absolute;
    inset: 1.25rem -1.25rem -1.25rem 1.25rem;
    border: 3px solid var(--brand-gold);
    border-radius: var(--rounded-20);
    z-index: -1;
}
.hw-badge {
    position: absolute;
    left: -1rem;
    bottom: 1.75rem;
    background: var(--grad-hero);
    color: var(--white);
    border-radius: var(--rounded-16);
    padding: 1rem 1.25rem;
    max-width: 230px;
    box-shadow: 0 14px 30px rgba(0, 40, 70, .3);
}
.hw-badge b {
    display: block;
    font-family: 'Graphik Bold';
    font-weight: normal;
    font-size: 1.5rem;
    color: var(--brand-gold);
    line-height: 1.1;
}
.hw-badge span {
    display: block;
    font-size: .85rem;
    line-height: 1.4;
    margin-top: .25rem;
}
.hw-title {
    margin-bottom: 1.1rem;
}
.hw-title span {
    color: var(--brand-ocean);
}
.hw-lead {
    color: #3d4852;
    line-height: 1.75;
    margin-bottom: 1.25rem;
}
.hw-points {
    list-style: none;
    padding: 0;
    margin: 0 0 1.75rem;
    display: grid;
    gap: .6rem;
}
.hw-points li {
    display: flex;
    gap: .6rem;
    align-items: flex-start;
    color: #1f2a33;
    line-height: 1.5;
}
.hw-points i {
    color: var(--brand-ocean);
    margin-top: .1rem;
}

/* Key facts strip */
.home-facts {
    list-style: none;
    margin: 3.5rem 0 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    background: var(--grad-band);
    border-radius: var(--rounded-20);
    position: relative;
    z-index: 1;
    transform: translateY(50%);
    box-shadow: 0 20px 44px rgba(0, 40, 70, .25);
    overflow: hidden;
}
.home-facts li {
    display: grid;
    grid-template-columns: auto 1fr;
    grid-template-rows: auto auto;
    column-gap: .9rem;
    align-items: center;
    padding: 1.6rem 1.5rem;
    color: var(--white);
}
.home-facts li + li {
    border-left: 1px solid rgba(255, 255, 255, .14);
}
.home-facts i {
    grid-row: span 2;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(242, 178, 51, .16);
    color: var(--brand-gold);
    font-size: 1.3rem;
}
.home-facts b {
    font-family: 'Graphik Bold';
    font-weight: normal;
    font-size: 1.55rem;
    line-height: 1.1;
}
.home-facts span {
    font-size: .85rem;
    color: rgba(255, 255, 255, .85);
}
/* the section after the welcome makes room for the overlapping strip */
.home-welcome + .home-facilities {
    padding-top: calc(90px + 3.5rem);
}

/* Facilities */
.hf-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    background: var(--white);
    border-radius: var(--rounded-16);
    padding: 1.5rem 1.4rem;
    border: 1px solid #e3eaf0;
    color: inherit;
    text-decoration: none;
    transition: transform .2s, box-shadow .2s, border-color .2s;
}
.hf-card:hover,
.hf-card:focus-visible {
    transform: translateY(-4px);
    border-color: transparent;
    box-shadow: 0 16px 34px rgba(0, 40, 70, .13);
}
.hf-icon {
    width: 54px;
    height: 54px;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #e8f2f9;
    color: var(--brand-ocean);
    font-size: 1.5rem;
    margin-bottom: 1rem;
    transition: background .2s, color .2s;
}
.hf-card:hover .hf-icon,
.hf-card:focus-visible .hf-icon {
    background: var(--grad-hero);
    color: var(--white);
}
.hf-card h3 {
    font-size: 1.1rem;
    color: var(--brand-navy);
    margin-bottom: .4rem;
}
.hf-card p {
    font-size: .9rem;
    line-height: 1.55;
    color: #4a5560;
    margin-bottom: 1rem;
    text-align: left !important;
}
.hf-more {
    margin-top: auto;
    font-family: 'Graphik Semibold';
    font-size: .85rem;
    color: var(--brand-link);
}
.hf-more i {
    transition: margin-left .2s;
}
.hf-card:hover .hf-more i {
    margin-left: .25rem;
}

/* Leadership */
.hl-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    background: var(--white);
    border-radius: var(--rounded-20);
    overflow: hidden;
    box-shadow: 0 8px 26px rgba(0, 40, 70, .09);
    color: inherit;
    text-decoration: none;
    transition: transform .2s, box-shadow .2s;
}
.hl-card:hover,
.hl-card:focus-visible {
    transform: translateY(-4px);
    box-shadow: 0 18px 38px rgba(0, 40, 70, .15);
}
.hl-photo {
    display: block;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: #e8eef3;
}
.hl-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .4s;
}
.hl-card:hover .hl-photo img {
    transform: scale(1.04);
}
.hl-body {
    display: flex;
    flex-direction: column;
    flex: 1;
    padding: 1.4rem 1.5rem 1.5rem;
    border-top: 4px solid var(--brand-gold);
}
.hl-desk {
    font-family: 'Graphik Semibold';
    font-size: .8rem;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--brand-link);
}
.hl-quote {
    display: block;
    margin: .7rem 0 1.25rem;
    color: #1f2a33;
    font-size: .98rem;
    line-height: 1.65;
}
.hl-foot {
    margin-top: auto;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    padding-top: 1rem;
    border-top: 1px solid #e8eef3;
}
.hl-foot b {
    display: block;
    font-family: 'Graphik Semibold';
    font-weight: normal;
    color: var(--brand-navy);
}
.hl-foot small {
    display: block;
    font-size: .8rem;
    color: var(--gray);
}
.hl-more {
    font-family: 'Graphik Semibold';
    font-size: .85rem;
    color: var(--brand-link);
    white-space: nowrap;
    text-decoration: none;
}
.hl-more:hover {
    color: var(--brand-navy);
}

/* News on the home page uses the news-card from the News page */
.news-card-title {
    font-size: 1.1rem;
    line-height: 1.4;
    margin: .5rem 0 .6rem;
}
.news-card-title a {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    color: #1f2a33;
    text-decoration: none;
}
.news-card-title a:hover {
    color: var(--brand-ocean);
}

/* Testimonial arrows */
.testi-slider .owl-nav button.owl-prev,
.testi-slider .owl-nav button.owl-next {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: var(--white) !important;
    border: 1.5px solid #c9d6e0 !important;
    color: var(--brand-navy) !important;
    font-size: 1rem !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background .2s, color .2s, border-color .2s;
}
.testi-slider .owl-nav button.owl-prev:hover,
.testi-slider .owl-nav button.owl-next:hover,
.testi-slider .owl-nav button:focus-visible {
    background: var(--brand-navy) !important;
    border-color: var(--brand-navy) !important;
    color: var(--white) !important;
}

/* Gallery: one large photo plus a grid */
.hg-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-auto-rows: 200px;
    gap: 1rem;
}
.hg-item {
    position: relative;
    display: block;
    border-radius: var(--rounded-16);
    overflow: hidden;
    background: #dfe7ee;
}
.hg-item--big {
    grid-column: span 2;
    grid-row: span 2;
}
.hg-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .5s;
}
.hg-item:hover img {
    transform: scale(1.06);
}
.hg-cap {
    position: absolute;
    inset: auto 0 0 0;
    padding: 2.5rem 1rem .9rem;
    background: var(--grad-overlay);
    color: var(--white);
}
.hg-cap b {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    font-family: 'Graphik Semibold';
    font-weight: normal;
    font-size: .92rem;
    line-height: 1.35;
}
.hg-item--big .hg-cap b {
    font-size: 1.15rem;
}
.hg-cap small {
    display: block;
    font-size: .75rem;
    opacity: .85;
    margin-top: .2rem;
}

/* Visit band before the footer */
.home-visit {
    padding: 0 0 90px;
}
.hv-box {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem 2rem;
    background: var(--grad-band);
    color: var(--white);
    border-radius: var(--rounded-20);
    padding: 2.5rem 2.75rem;
    position: relative;
    overflow: hidden;
}
.hv-box::after {
    content: "";
    position: absolute;
    right: -100px;
    bottom: -140px;
    width: 320px;
    height: 320px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(242, 178, 51, .2) 0%, rgba(242, 178, 51, 0) 70%);
    pointer-events: none;
}
.hv-text {
    max-width: 620px;
    position: relative;
    z-index: 1;
}
.hv-box .band-kicker {
    display: inline-block;
    background: var(--brand-gold);
    color: var(--brand-gold-ink);
    font-size: .75rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    padding: .3rem .8rem;
    border-radius: 2rem;
    margin-bottom: .75rem;
}
.hv-box h2 {
    color: var(--white);
    font-size: 1.9rem;
    margin-bottom: .5rem;
}
.hv-box p {
    margin: 0;
    color: rgba(255, 255, 255, .9);
    text-align: left !important;
}
.hv-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    position: relative;
    z-index: 1;
}
.hv-box .btn.btn-enquire:hover,
.hv-box .btn.btn-enquire:focus-visible {
    background: var(--white);
    color: var(--brand-navy);
}
/* the gallery sits on grey; give the visit band the same background so it reads as one block */
.home-gallery + .home-visit {
    background: var(--light-gray);
}

@media (max-width: 1199.98px) {
    .home-facts li {
        padding: 1.4rem 1.1rem;
    }
    .home-facts b {
        font-size: 1.3rem;
    }
}
@media (max-width: 991.98px) {
    .home h2 {
        font-size: 2rem;
    }
    .home-welcome {
        padding-top: 64px;
    }
    .hw-media {
        margin-right: 1.25rem;
    }
    .home-facts {
        grid-template-columns: repeat(2, 1fr);
        transform: none;
        margin-top: 3rem;
    }
    .home-facts li:nth-child(3) {
        border-left: 0;
    }
    .home-facts li:nth-child(n+3) {
        border-top: 1px solid rgba(255, 255, 255, .14);
    }
    .home-welcome {
        padding-bottom: 64px;
    }
    .home-welcome + .home-facilities {
        padding-top: 64px;
    }
    .hg-grid {
        grid-template-columns: repeat(3, 1fr);
        grid-auto-rows: 170px;
    }
    .hv-box {
        padding: 2rem 1.75rem;
    }
}
@media (max-width: 767.98px) {
    .home h2,
    .hv-box h2 {
        font-size: 1.65rem;
    }
    .home-head {
        margin-bottom: 1.75rem;
    }
    .home-head .btn {
        order: 2;
    }
    .hw-badge {
        left: .75rem;
        bottom: .75rem;
        padding: .75rem 1rem;
    }
    .hw-badge b {
        font-size: 1.2rem;
    }
    .home-facts li {
        grid-template-columns: 1fr;
        text-align: center;
        justify-items: center;
        padding: 1.25rem .75rem;
        row-gap: .35rem;
    }
    .home-facts i {
        grid-row: auto;
        width: 40px;
        height: 40px;
        font-size: 1.1rem;
    }
    .home-facts b {
        font-size: 1.15rem;
    }
    .hf-card {
        padding: 1.15rem 1rem;
    }
    .hf-card p {
        font-size: .84rem;
    }
    .hf-icon {
        width: 46px;
        height: 46px;
        font-size: 1.3rem;
    }
    .hg-grid {
        grid-template-columns: repeat(2, 1fr);
        grid-auto-rows: 150px;
        gap: .75rem;
    }
    .hg-item:nth-child(n+8) {
        display: none;
    }
    .home-visit {
        padding-bottom: 64px;
    }
    .hv-box {
        padding: 1.75rem 1.25rem;
    }
    .hv-actions .btn {
        flex: 1 1 auto;
        justify-content: center;
    }
}
@media (prefers-reduced-motion: reduce) {
    .hf-card, .hl-card, .hl-photo img, .hg-item img {
        transition: none;
    }
    .hf-card:hover, .hl-card:hover {
        transform: none;
    }
}
