/* ═══════════════════════════════════════════════════════════
   MK GN PUBLIC SCHOOL — SHARED STYLESHEET
   Mobile-first responsive design system
   ═══════════════════════════════════════════════════════════ */

/* ── Variables & Reset ── */
:root {
  --ink:#0b1d35;--ink-mid:#14325a;--ink-light:#1c4478;
  --amber:#c8922c;--amber-light:#dbb25c;--amber-pale:#fdf4de;
  --ruby:#942639;--emerald:#167d6a;--emerald-light:#dff5f0;
  --cream:#faf6ef;--ivory:#f4f0e8;
  --txt:#252537;--txt-mid:#5c5c70;--txt-soft:#8c8c9e;--white:#fff;
  --glass:rgba(255,255,255,.92);
  --sh-sm:0 2px 12px rgba(11,29,53,.06);--sh-md:0 8px 30px rgba(11,29,53,.08);
  --sh-lg:0 20px 50px rgba(11,29,53,.11);
  --r-lg:20px;--r-md:14px;--r-sm:10px;--r-xs:7px;
  --ease:cubic-bezier(.25,.46,.45,.94);--ease-spring:cubic-bezier(.34,1.56,.64,1);
  --nav-h:64px;--safe-bottom:env(safe-area-inset-bottom,0px);
}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--nav-h)+10px);}
body{font-family:'Nunito Sans',sans-serif;color:var(--txt);background:var(--white);overflow-x:hidden;line-height:1.7;-webkit-font-smoothing:antialiased;}
img{max-width:100%;display:block;height:auto;}
a{text-decoration:none;color:inherit;-webkit-tap-highlight-color:transparent;}
ul{list-style:none;}
button{-webkit-tap-highlight-color:transparent;}
h1,h2,h3,h4,h5{font-family:'Fraunces',serif;line-height:1.2;letter-spacing:-.01em;}
.container{width:100%;max-width:1280px;margin:0 auto;padding:0 20px;}
@media(min-width:768px){.container{padding:0 28px;}}
@media(min-width:1024px){.container{padding:0 36px;}}

/* ── Preloader ── */
#loader{position:fixed;inset:0;background:var(--ink);z-index:100000;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;transition:opacity .5s,visibility .5s;}
#loader.hide{opacity:0;visibility:hidden;pointer-events:none;}
#loader img{width:80px;height:80px;object-fit:contain;filter:drop-shadow(0 4px 20px rgba(200,146,44,.4));animation:lspin 2s linear infinite;}
#loader .l-name{font-family:'Fraunces',serif;font-size:1.3rem;font-weight:700;color:var(--amber);letter-spacing:2px;}
@keyframes lspin{to{transform:rotate(360deg)}}

/* ── Top Bar ── */
.topbar{background:var(--ink);color:rgba(255,255,255,.75);font-size:.72rem;padding:6px 0;display:none;border-bottom:1px solid rgba(255,255,255,.05);}
@media(min-width:768px){.topbar{display:block;}}
.topbar .container{display:flex;justify-content:space-between;align-items:center;}
.tb-left{display:flex;gap:18px;align-items:center;}
.tb-left a{color:rgba(255,255,255,.75);display:flex;align-items:center;gap:5px;transition:color .25s;font-size:.72rem;}
.tb-left a:hover{color:var(--amber);}
.tb-left i{color:var(--amber);font-size:.62rem;}
.tb-right{display:flex;gap:7px;}
.tb-right a{width:24px;height:24px;border-radius:50%;border:1px solid rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.5);font-size:.62rem;transition:all .3s var(--ease);}
.tb-right a:hover{background:var(--amber);border-color:var(--amber);color:#fff;transform:translateY(-1px);}

/* ── Navbar ── */
.navbar{position:sticky;top:0;z-index:9999;background:var(--glass);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);height:var(--nav-h);display:flex;align-items:center;border-bottom:1px solid rgba(0,0,0,.04);transition:box-shadow .35s var(--ease);}
.navbar.scrolled{box-shadow:0 4px 24px rgba(0,0,0,.07);}
.navbar .container{display:flex;justify-content:space-between;align-items:center;width:100%;}
.logo{display:flex;align-items:center;gap:10px;cursor:pointer;flex-shrink:0;}
.logo-badge{width:48px;height:48px;border-radius:50%;overflow:hidden;flex-shrink:0;}
.logo-badge img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 2px 6px rgba(11,29,53,.15));}
.logo-txt h2{font-size:1rem;font-weight:800;color:var(--ink);line-height:1.1;}
.logo-txt span{font-size:.55rem;font-weight:700;text-transform:uppercase;letter-spacing:2px;color:var(--amber);}
@media(min-width:768px){.logo-badge{width:54px;height:54px;}.logo-txt h2{font-size:1.15rem;}.logo-txt span{font-size:.6rem;}}
.ft-brand .logo-badge{width:60px;height:60px;}
@media(min-width:768px){.ft-brand .logo-badge{width:68px;height:68px;}}
.nav-list{display:none;list-style:none;align-items:center;gap:1px;}
@media(min-width:1024px){.nav-list{display:flex;}}
.nav-list>li{position:relative;}
.nav-list>li>a{padding:8px 13px;font-size:.82rem;font-weight:600;color:var(--txt);border-radius:var(--r-xs);transition:all .25s var(--ease);display:flex;align-items:center;gap:3px;white-space:nowrap;}
.nav-list>li>a:hover,.nav-list>li>a.on{color:var(--ink);background:rgba(11,29,53,.04);}
.nav-list>li>a.on{position:relative;}
.nav-list>li>a.on::after{content:'';position:absolute;bottom:1px;left:50%;transform:translateX(-50%);width:16px;height:2.5px;background:var(--amber);border-radius:3px;}
.nav-cta{background:linear-gradient(135deg,var(--amber),var(--amber-light))!important;color:#fff!important;padding:9px 20px!important;border-radius:9px!important;box-shadow:0 3px 12px rgba(200,146,44,.25);}
.nav-cta:hover{transform:translateY(-1px);box-shadow:0 5px 18px rgba(200,146,44,.35)!important;}
.has-dd .dropdown{position:absolute;top:calc(100% + 4px);left:0;min-width:210px;background:var(--white);border-radius:var(--r-md);box-shadow:var(--sh-lg);padding:6px;opacity:0;visibility:hidden;transform:translateY(8px);transition:all .25s var(--ease);z-index:100;border:1px solid rgba(0,0,0,.04);}
.has-dd:hover .dropdown{opacity:1;visibility:visible;transform:translateY(0);}
.dropdown a{display:flex;align-items:center;gap:9px;padding:9px 12px;border-radius:var(--r-xs);font-size:.8rem;font-weight:500;color:var(--txt);transition:all .2s;}
.dropdown a:hover{background:var(--cream);color:var(--ink);}
.dropdown a i{color:var(--amber);font-size:.7rem;width:18px;text-align:center;}
.hamburger{display:flex;flex-direction:column;gap:5px;cursor:pointer;padding:10px;z-index:10001;min-width:44px;min-height:44px;align-items:center;justify-content:center;border-radius:var(--r-sm);transition:background .2s;}
.hamburger:active{background:rgba(0,0,0,.04);}
@media(min-width:1024px){.hamburger{display:none;}}
.hamburger span{width:22px;height:2px;background:var(--ink);border-radius:2px;transition:all .3s var(--ease);}
.hamburger.open span:nth-child(1){transform:rotate(45deg) translate(5px,5px);}
.hamburger.open span:nth-child(2){opacity:0;transform:scaleX(0);}
.hamburger.open span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px);}

/* ── Mobile Menu ── */
.mob-menu{position:fixed;inset:0;background:var(--white);z-index:10000;display:flex;flex-direction:column;transform:translateX(100%);transition:transform .4s var(--ease);overflow-y:auto;-webkit-overflow-scrolling:touch;padding:var(--nav-h) 0 calc(40px + var(--safe-bottom));}
.mob-menu.open{transform:translateX(0);}
.mob-menu-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid rgba(0,0,0,.05);}
.mob-close{width:44px;height:44px;border:none;background:var(--cream);border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.1rem;color:var(--txt);cursor:pointer;}
.mob-nav{padding:12px 20px;flex:1;}
.mob-nav a{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;font-size:.95rem;font-weight:600;color:var(--txt);border-radius:var(--r-sm);transition:background .2s;min-height:48px;}
.mob-nav a:active{background:var(--cream);}
.mob-nav .mob-sub{padding-left:16px;display:none;}
.mob-nav .mob-sub.show{display:block;}
.mob-nav .mob-sub a{font-size:.88rem;font-weight:500;color:var(--txt-mid);padding:12px 16px;min-height:44px;}
.mob-nav .mob-sub a i{color:var(--amber);font-size:.7rem;margin-right:8px;}
.mob-nav .mob-divider{height:1px;background:rgba(0,0,0,.05);margin:8px 0;}
.mob-cta{margin:16px 20px;padding:15px;background:linear-gradient(135deg,var(--amber),var(--amber-light));color:#fff;text-align:center;border-radius:var(--r-md);font-weight:700;font-size:.95rem;box-shadow:0 4px 16px rgba(200,146,44,.3);display:block;}
.mob-contact{padding:20px;border-top:1px solid rgba(0,0,0,.05);margin-top:auto;}
.mob-contact a{display:flex;align-items:center;gap:10px;padding:10px 0;font-size:.85rem;color:var(--txt-mid);}
.mob-contact a i{color:var(--amber);width:18px;text-align:center;}

/* ── Section Helpers ── */
.sec{padding:60px 0;position:relative;}
@media(min-width:768px){.sec{padding:80px 0;}}
@media(min-width:1024px){.sec{padding:100px 0;}}
.sec-tag{font-family:'Caveat',cursive;color:var(--amber);font-size:1.1rem;font-weight:700;display:flex;align-items:center;gap:8px;margin-bottom:5px;}
.sec-tag::before{content:'';width:24px;height:2px;background:var(--amber);border-radius:2px;}
.sec-tag.ctr{justify-content:center;}
.sec-title{font-size:clamp(1.6rem,4.5vw,2.7rem);font-weight:800;color:var(--ink);margin-bottom:12px;}
.sec-sub{color:var(--txt-mid);font-size:clamp(.9rem,2vw,1.02rem);max-width:580px;line-height:1.8;}
.sec-hdr{margin-bottom:40px;}
@media(min-width:768px){.sec-hdr{margin-bottom:52px;}}
.sec-hdr.ctr{text-align:center;}
.sec-hdr.ctr .sec-sub{margin:0 auto;}

/* ── Page Banner ── */
.p-banner{padding:50px 0 40px;position:relative;overflow:hidden;background:linear-gradient(140deg,var(--ink) 0%,var(--ink-mid) 60%,var(--ink-light) 100%);}
@media(min-width:768px){.p-banner{padding:70px 0 55px;}}
.p-banner .p-dots{position:absolute;inset:0;opacity:.03;background:radial-gradient(var(--amber) 1px,transparent 1px);background-size:28px 28px;}
.p-banner .p-ring1{position:absolute;top:-60px;right:-40px;width:250px;height:250px;border-radius:50%;border:1px solid rgba(200,146,44,.06);}
.p-banner .p-ring2{position:absolute;bottom:-80px;left:-50px;width:300px;height:300px;border-radius:50%;border:1px solid rgba(255,255,255,.03);}
@media(min-width:768px){.p-banner .p-ring1{width:350px;height:350px;}.p-banner .p-ring2{width:400px;height:400px;}}
.p-banner .container{position:relative;z-index:2;}
.p-banner .crumbs{display:flex;align-items:center;gap:7px;font-size:.76rem;color:rgba(255,255,255,.45);margin-bottom:14px;flex-wrap:wrap;}
.p-banner .crumbs a{color:var(--amber-light);transition:color .25s;}
.p-banner .crumbs a:hover{color:var(--amber);}
.p-banner .crumbs i{font-size:.5rem;}
.p-banner h1{font-size:clamp(1.8rem,5vw,3.2rem);font-weight:800;color:#fff;margin-bottom:10px;}
.p-banner h1 em{color:var(--amber);font-style:normal;}
.p-banner .container>p{color:rgba(255,255,255,.58);font-size:clamp(.88rem,2vw,1.02rem);max-width:560px;line-height:1.8;}

/* ── Buttons ── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:12px 26px;border-radius:10px;font-weight:700;font-size:.86rem;font-family:'Nunito Sans',sans-serif;transition:all .35s var(--ease);cursor:pointer;border:none;white-space:nowrap;min-height:46px;}
.btn-primary{background:linear-gradient(135deg,var(--ink),var(--ink-mid));color:#fff;box-shadow:0 4px 16px rgba(11,29,53,.2);}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 24px rgba(11,29,53,.3);}
.btn-amber{background:linear-gradient(135deg,var(--amber),var(--amber-light));color:#fff;box-shadow:0 4px 16px rgba(200,146,44,.25);}
.btn-amber:hover{transform:translateY(-2px);box-shadow:0 6px 24px rgba(200,146,44,.35);}
.btn-outline{background:transparent;border:2px solid rgba(11,29,53,.12);color:var(--ink);}
.btn-outline:hover{border-color:var(--ink);background:rgba(11,29,53,.02);transform:translateY(-2px);}
.btn-white{background:#fff;color:var(--ink);box-shadow:0 3px 12px rgba(0,0,0,.06);}
.btn-white:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(0,0,0,.1);}
.btn-sm{padding:9px 20px;font-size:.8rem;min-height:40px;border-radius:8px;}
.btn-lg{padding:15px 34px;font-size:.94rem;}
.btn-block{width:100%;}
@media(max-width:480px){.btn{padding:11px 22px;font-size:.84rem;}}

/* ── Scroll Reveal ── */
.rv{opacity:0;transform:translateY(30px);transition:opacity .65s var(--ease),transform .65s var(--ease);}
.rv.vis{opacity:1;transform:translateY(0);}

/* ── Testimonials Slider ── */
.ts-sec{background:linear-gradient(135deg,var(--ink),var(--ink-mid));overflow:hidden;position:relative;}
.ts-sec .ts-glow{position:absolute;inset:0;background:radial-gradient(circle at 20% 30%,rgba(200,146,44,.06),transparent 50%),radial-gradient(circle at 80% 70%,rgba(255,255,255,.02),transparent 50%);pointer-events:none;}
.ts-wrap{position:relative;overflow:hidden;}
.ts-track{display:flex;transition:transform .55s var(--ease);will-change:transform;}
.ts-slide{min-width:100%;padding:0 4px;display:grid;grid-template-columns:1fr;gap:16px;}
@media(min-width:640px){.ts-slide{grid-template-columns:1fr 1fr;padding:0;}}
@media(min-width:1024px){.ts-slide{grid-template-columns:repeat(3,1fr);gap:22px;}}
.ts-card{background:rgba(255,255,255,.07);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.08);border-radius:var(--r-md);padding:24px;transition:all .35s var(--ease);}
@media(min-width:768px){.ts-card{padding:28px;}}
.ts-card:hover{background:rgba(255,255,255,.11);transform:translateY(-3px);}
.ts-stars{color:var(--amber);font-size:.75rem;margin-bottom:12px;display:flex;gap:2px;}
.ts-card blockquote{color:rgba(255,255,255,.8);font-size:.86rem;line-height:1.8;margin-bottom:16px;font-style:italic;}
.ts-auth{display:flex;align-items:center;gap:10px;}
.ts-av{width:42px;height:42px;border-radius:11px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.82rem;color:#fff;flex-shrink:0;}
.ts-auth h4{color:#fff;font-weight:700;font-size:.84rem;}
.ts-auth p{color:rgba(255,255,255,.4);font-size:.72rem;}
/* Rating badge */
.ts-rating-badge{display:inline-flex;align-items:center;gap:6px;background:rgba(200,146,44,.12);border:1px solid rgba(200,146,44,.1);padding:5px 14px;border-radius:8px;color:var(--amber-light);font-size:.78rem;font-weight:700;margin-bottom:10px;}
/* Slider Controls */
.ts-controls{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:30px;}
@media(min-width:768px){.ts-controls{margin-top:38px;}}
.ts-arrow{width:44px;height:44px;border-radius:12px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.06);display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.7);font-size:.85rem;cursor:pointer;transition:all .25s var(--ease);}
.ts-arrow:hover{background:rgba(255,255,255,.14);color:#fff;border-color:rgba(255,255,255,.2);}
.ts-arrow:active{transform:scale(.92);}
.ts-dots{display:flex;gap:6px;}
.ts-dot{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.15);cursor:pointer;transition:all .3s var(--ease);}
.ts-dot.active{width:28px;border-radius:4px;background:var(--amber);}
.ts-dot:hover:not(.active){background:rgba(255,255,255,.3);}
/* Autoplay progress */
.ts-progress{width:60px;height:3px;border-radius:2px;background:rgba(255,255,255,.08);overflow:hidden;margin-left:6px;}
.ts-progress-bar{height:100%;background:var(--amber);border-radius:2px;width:0;transition:width .1s linear;}

/* ── Footer ── */
.footer{background:var(--ink);color:rgba(255,255,255,.65);padding:60px 0 0;position:relative;}
@media(min-width:768px){.footer{padding:80px 0 0;}}
.footer::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--amber),var(--emerald),var(--ink-light),var(--ruby),var(--amber));}
.ft-grid{display:grid;grid-template-columns:1fr;gap:32px;padding-bottom:36px;border-bottom:1px solid rgba(255,255,255,.06);}
@media(min-width:480px){.ft-grid{grid-template-columns:1fr 1fr;}}
@media(min-width:1024px){.ft-grid{grid-template-columns:1.5fr 1fr 1fr 1fr;gap:40px;padding-bottom:44px;}}
.ft-brand>p{font-size:.84rem;line-height:1.75;color:rgba(255,255,255,.5);margin:14px 0 16px;}
.ft-social{display:flex;gap:8px;}
.ft-social a{width:36px;height:36px;border-radius:9px;border:1px solid rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.5);font-size:.82rem;transition:all .3s var(--ease);min-height:36px;}
.ft-social a:hover{background:var(--amber);border-color:var(--amber);color:#fff;transform:translateY(-2px);}
.footer h4{color:#fff;font-weight:700;margin-bottom:16px;font-size:.92rem;position:relative;padding-bottom:9px;font-family:'Nunito Sans',sans-serif;}
.footer h4::after{content:'';position:absolute;bottom:0;left:0;width:24px;height:2px;background:var(--amber);border-radius:2px;}
.ft-links li{margin-bottom:8px;}
.ft-links a{color:rgba(255,255,255,.5);font-size:.82rem;transition:all .25s;display:flex;align-items:center;gap:6px;padding:2px 0;min-height:32px;}
.ft-links a::before{content:'';width:4px;height:4px;border-radius:50%;background:rgba(255,255,255,.15);transition:all .25s;}
.ft-links a:hover{color:var(--amber);padding-left:4px;}
.ft-links a:hover::before{background:var(--amber);}
.ft-bottom{padding:18px 0;display:flex;flex-direction:column;gap:8px;align-items:center;text-align:center;}
@media(min-width:768px){.ft-bottom{flex-direction:row;justify-content:space-between;text-align:left;}}
.ft-bottom p{font-size:.76rem;color:rgba(255,255,255,.35);}
.ft-bottom a{color:var(--amber);}

/* ── Scroll-to-Top ── */
.stt{position:fixed;bottom:20px;right:20px;width:44px;height:44px;border-radius:12px;background:linear-gradient(135deg,var(--ink),var(--ink-mid));color:#fff;border:none;cursor:pointer;font-size:.95rem;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 16px rgba(11,29,53,.25);opacity:0;visibility:hidden;transform:translateY(14px);transition:all .35s var(--ease);z-index:998;}
@media(min-width:768px){.stt{bottom:28px;right:28px;}}
.stt.vis{opacity:1;visibility:visible;transform:translateY(0);}
.stt:hover{transform:translateY(-3px);box-shadow:0 6px 24px rgba(11,29,53,.35);}

/* ── Mobile Bottom CTA ── */
.mob-bottom-bar{position:fixed;bottom:0;left:0;right:0;background:var(--white);border-top:1px solid rgba(0,0,0,.06);padding:8px 16px calc(8px + var(--safe-bottom));display:flex;gap:10px;z-index:997;box-shadow:0 -4px 20px rgba(0,0,0,.06);}
@media(min-width:768px){.mob-bottom-bar{display:none;}}
.mob-bottom-bar a{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:10px;border-radius:var(--r-xs);font-size:.8rem;font-weight:700;min-height:44px;}
.mbb-call{background:var(--ink);color:#fff;}
.mbb-wa{background:var(--emerald);color:#fff;}
.mbb-apply{background:var(--amber);color:#fff;}
@media(max-width:767px){.footer{padding-bottom:70px;}}

/* ── SEO Schema / Structured Data (hidden) ── */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
