/* ═══════════════════════════════════
   DESIGN TOKENS — TRUSTED SCHOOL PALETTE
═══════════════════════════════════ */
:root {
  --primary: #1a3a5c;
  --secondary: #1e5799;
  --accent: #d4a017;
  --navy:    var(--primary);
  --royal:   var(--secondary);
  --blue-lt: #2d7dd2;
  --gold:    #b8860b;
  --gold-lt: var(--accent);
  --green:   #2d7a3a;
  --green-lt:#38a047;
  --cream:   #faf8f3;
  --off-white:#f4f2ed;
  --warm-bg: #fffef9;
  --border:  #e8e3d8;
  --text:    #1c2b3a;
  --text-mid:#3d5166;
  --text-muted:#6b7e90;
  --red:     #c0392b;

  --font-bn:   'Hind Siliguri', sans-serif;
  --font-body: 'Lora', Georgia, serif;
  --font-heading: 'Tiro Bangla', serif;

  --r-sm:  8px;
  --r-md:  12px;
  --r-lg:  18px;
  --r-xl:  24px;

  --sh-card: 0 2px 12px rgba(26,58,92,.08);
  --sh-lift: 0 6px 24px rgba(26,58,92,.12);
}

/* ─── Reset ─── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;font-size:16px}
body{font-family:var(--font-bn);color:var(--text);background:var(--warm-bg);overflow-x:hidden;-webkit-font-smoothing:antialiased;line-height:1.7}
img{display:block;max-width:100%;height:auto}
a{text-decoration:none;color:inherit}
ul{list-style:none}
button{cursor:pointer;border:none;background:none;font-family:inherit}

/* ─── Simple fade-in on scroll ─── */
.reveal{opacity:0;transform:translateY(20px);transition:opacity .5s ease,transform .5s ease}
.reveal.visible{opacity:1;transform:none}

/* ─── Section Layout ─── */
.section{padding:60px 0}
.section.bg-cream{background:var(--cream)}
.section.bg-off{background:var(--off-white)}
.container{max-width:1100px;margin:0 auto;padding:0 20px}

/* ─── Section Headers ─── */
.sec-label{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--gold);margin-bottom:10px;font-family:var(--font-bn)}
.sec-label i{font-size:11px}
.sec-title{font-family:var(--font-heading);font-size:clamp(24px,4vw,36px);font-weight:700;color:var(--navy);line-height:1.3;margin-bottom:12px}
.sec-title span{color:var(--royal)}
.sec-sub{font-size:15px;color:var(--text-muted);line-height:1.8;max-width:580px}
.sec-header-center{text-align:center;margin-bottom:40px}
.sec-header-center .sec-sub{margin:0 auto}

/* ═══════════════════════════════════
   TOPBAR — Announcement strip
═══════════════════════════════════ */
#topbar{background:var(--navy);color:#fff;font-family:var(--font-bn);font-size:13px;padding:7px 20px;display:flex;align-items:center;justify-content:center;gap:12px;text-align:center}
.topbar-badge{background:var(--gold);color:#fff;font-size:11px;font-weight:700;padding:2px 10px;border-radius:50px;letter-spacing:.5px;white-space:nowrap;flex-shrink:0}

/* ═══════════════════════════════════
   NAVBAR
═══════════════════════════════════ */
#navbar{position:sticky;top:0;z-index:200;background:#fff;border-bottom:1px solid var(--border);transition:box-shadow .3s}
#navbar.scrolled{box-shadow:0 2px 16px rgba(26,58,92,.10)}
.nav-inner{max-width:1100px;margin:0 auto;padding:0 20px;height:64px;display:flex;align-items:center;justify-content:space-between;gap:12px}

/* Logo */
.nav-logo{display:flex;align-items:center;gap:12px;min-width:0;flex:1 1 auto}
/* ৫২px + সাদা ফ্রেম + হালকা বর্ডার/শ্যাডো: কালো বা গাঢ় লোগোও পরিষ্কার ব্যাজের মতো দেখায়।
   object-fit:contain তাই কখনো কাটা পড়ে না, overflow:hidden গোল কোণা বাঁচায়। */
.nav-logo-emblem{width:52px;height:52px;background:var(--navy);border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden}
.nav-logo-emblem img{width:100%;height:100%;object-fit:contain;border-radius:inherit}
.nav-logo-emblem:has(img){background:#fff;border:1px solid rgba(26,58,92,.12);box-shadow:0 1px 4px rgba(26,58,92,.10)}
.nav-logo-emblem i{color:var(--gold-lt);font-size:22px}
/* লম্বা স্কুলের নাম মোবাইলে লেআউট ভেঙে না ফেলে — এক লাইনেই কেটে ছোট হয় */
.nav-logo-text{line-height:1.2;min-width:0;overflow:hidden}
.nav-logo-text .en{display:block;font-family:var(--font-body);font-size:15px;font-weight:700;color:var(--navy);letter-spacing:-.2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nav-logo-text .bn{display:block;font-family:var(--font-bn);font-size:11px;color:var(--gold);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Nav links */
.nav-links{display:flex;align-items:center;gap:4px}
.nav-links a{font-size:13.5px;font-weight:500;color:var(--text-mid);padding:7px 12px;border-radius:var(--r-sm);transition:color .2s,background .2s;font-family:var(--font-bn);white-space:nowrap}
.nav-links a:hover{color:var(--navy);background:var(--off-white)}
.nav-links a.active{color:var(--royal);font-weight:600}

/* Admission button in nav */
.btn-admission-nav{display:flex;align-items:center;gap:8px;padding:9px 18px;border-radius:var(--r-md);background:var(--royal);color:#fff;font-size:13.5px;font-weight:700;font-family:var(--font-bn);white-space:nowrap;transition:background .2s,transform .15s}
.btn-admission-nav:hover{background:var(--navy);transform:translateY(-1px)}

/* Hamburger */
.nav-burger{display:none;width:38px;height:38px;border-radius:var(--r-sm);background:var(--off-white);align-items:center;justify-content:center;color:var(--navy);font-size:17px}
.mobile-menu{display:none;border-top:1px solid var(--border);background:#fff;padding:8px 20px 16px}
.mobile-menu.open{display:block}
.mobile-menu a{display:block;padding:11px 0;color:var(--text-mid);font-weight:500;border-bottom:1px solid var(--border);font-size:15px;font-family:var(--font-bn)}
.mobile-menu a:last-child{border-bottom:none}
.mobile-btn-admit{display:block;margin-top:12px;padding:12px;border-radius:var(--r-md);background:var(--royal);color:#fff;font-weight:700;text-align:center;font-size:15px;font-family:var(--font-bn)}
.mobile-btn-erp{display:block;margin-top:8px;padding:10px;border-radius:var(--r-md);border:1.5px solid var(--border);color:var(--text-mid);font-weight:500;text-align:center;font-size:13px;font-family:var(--font-bn)}

/* ═══════════════════════════════════
   HERO — Warm, Real, Emotional
═══════════════════════════════════ */
#hero{background:linear-gradient(150deg, var(--primary) 0%, var(--secondary) 55%, var(--primary) 100%);position:relative;overflow:hidden;padding:60px 0 56px}
/* Subtle texture overlay */
#hero::before{content:'';position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.04) 1px,transparent 1px);background-size:28px 28px;pointer-events:none}
.hero-inner{position:relative;z-index:2;max-width:1100px;margin:0 auto;padding:0 20px;display:grid;grid-template-columns:1fr 340px;gap:48px;align-items:center}
.hero-trust-badge{display:inline-flex;align-items:center;gap:8px;background:rgba(184,134,11,.15);border:1px solid rgba(212,160,23,.35);color:#d4a017;font-size:12px;font-weight:700;padding:6px 16px;border-radius:50px;letter-spacing:.8px;margin-bottom:18px;font-family:var(--font-bn)}
.hero-trust-badge-dot{width:7px;height:7px;background:#4ade80;border-radius:50%}
.hero-h1{font-family:var(--font-heading);font-size:clamp(28px,4.5vw,48px);font-weight:700;color:#fff;line-height:1.2;margin-bottom:10px}
.hero-bn{font-family:var(--font-bn);font-size:clamp(17px,2.5vw,22px);color:rgba(255,255,255,.82);font-weight:500;margin-bottom:20px;line-height:1.6}
.hero-desc{font-family:var(--font-bn);font-size:14.5px;color:rgba(255,255,255,.6);line-height:1.9;margin-bottom:32px;max-width:520px}
.hero-ctas{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.btn-hero-primary{display:inline-flex;align-items:center;gap:9px;padding:13px 26px;background:#fff;color:var(--navy);border-radius:var(--r-md);font-size:15px;font-weight:700;font-family:var(--font-bn);transition:transform .15s,box-shadow .15s}
.btn-hero-primary:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.2)}
.btn-hero-secondary{display:inline-flex;align-items:center;gap:9px;padding:12px 22px;border:1.5px solid rgba(255,255,255,.4);color:#fff;border-radius:var(--r-md);font-size:14.5px;font-weight:600;font-family:var(--font-bn);transition:background .2s,border-color .2s}
.btn-hero-secondary:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.65)}

/* Hero trust card panel */
.hero-panel{display:flex;flex-direction:column;gap:12px}
.hero-trust-card{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);border-radius:var(--r-lg);padding:16px 18px;display:flex;align-items:center;gap:14px}
.hero-trust-icon{width:40px;height:40px;border-radius:var(--r-sm);background:rgba(212,160,23,.15);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.hero-trust-icon i{color:var(--gold-lt);font-size:17px}
.hero-trust-card p{font-family:var(--font-bn);font-size:13.5px;color:rgba(255,255,255,.9);font-weight:600;line-height:1.4}
.hero-trust-card span{font-family:var(--font-bn);font-size:12px;color:rgba(255,255,255,.5);display:block;margin-top:2px}

/* Hero bottom bar — quick stats */
.hero-stats-bar{background:rgba(255,255,255,.06);border-top:1px solid rgba(255,255,255,.10);margin-top:48px;padding:18px 20px}
.hero-stats-bar-inner{max-width:1100px;margin:0 auto;display:flex;justify-content:space-around;flex-wrap:wrap;gap:16px}
.hero-stat{text-align:center}
.hero-stat-num{font-family:var(--font-heading);font-size:28px;font-weight:700;color:#fff;line-height:1}
.hero-stat-num sup{font-size:16px;color:var(--gold-lt)}
.hero-stat-label{font-family:var(--font-bn);font-size:12px;color:rgba(255,255,255,.55);margin-top:3px}

/* ═══════════════════════════════════
   TRUST SECTION — অভিভাবকের নিশ্চয়তা
═══════════════════════════════════ */
.trust-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:20px;margin-top:36px}
.trust-card{background:#fff;border:1px solid var(--border);border-radius:var(--r-lg);padding:24px 20px;text-align:center;transition:box-shadow .25s,transform .25s}
.trust-card:hover{box-shadow:var(--sh-lift);transform:translateY(-3px)}
.trust-card-icon{width:52px;height:52px;border-radius:50%;background:var(--off-white);display:flex;align-items:center;justify-content:center;margin:0 auto 14px;font-size:22px}
.trust-card h3{font-family:var(--font-bn);font-size:14.5px;font-weight:700;color:var(--navy);margin-bottom:6px}
.trust-card p{font-family:var(--font-bn);font-size:13px;color:var(--text-muted);line-height:1.7}

/* ═══════════════════════════════════
   NOTICE BOARD
═══════════════════════════════════ */
.notice-layout{display:grid;grid-template-columns:1fr 340px;gap:32px;align-items:start}
.notice-board{background:#fff;border:1px solid var(--border);border-radius:var(--r-xl);overflow:hidden}
.notice-board-header{background:var(--navy);padding:16px 22px;display:flex;align-items:center;justify-content:space-between}
.notice-board-header h3{font-family:var(--font-bn);font-size:16px;font-weight:700;color:#fff;display:flex;align-items:center;gap:8px}
.notice-board-header a{font-family:var(--font-bn);font-size:12px;color:rgba(255,255,255,.65);transition:color .2s}
.notice-board-header a:hover{color:#fff}
#web-notice-list{padding:8px 0}
.notice-item{display:flex;align-items:center;gap:14px;padding:13px 22px;border-bottom:1px solid var(--border);transition:background .2s;cursor:default}
.notice-item:last-child{border-bottom:none}
.notice-item:hover{background:var(--off-white)}
.notice-date-box{width:50px;height:46px;border-radius:var(--r-sm);display:flex;flex-direction:column;align-items:center;justify-content:center;flex-shrink:0;font-family:var(--font-bn)}
.notice-date-box.red{background:#fde8e8;color:var(--red)}
.notice-date-box.amber{background:#fef3cd;color:#92600a}
.notice-date-box.teal{background:#e0f2f1;color:#0d7377}
.notice-date-box .d{font-size:15px;font-weight:800;line-height:1}
.notice-date-box .m{font-size:9px;font-weight:600;line-height:1.25;white-space:nowrap}
.notice-body{flex:1;min-width:0}
.notice-title{font-family:var(--font-bn);font-size:14px;font-weight:600;color:var(--text);line-height:1.5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.notice-meta{font-family:var(--font-bn);font-size:11px;color:var(--text-muted);display:flex;align-items:center;gap:4px;margin-top:3px}
.notice-chevron{color:var(--border);font-size:12px;flex-shrink:0}

/* ─── নোটিশ: পড়ার জন্য (প্রিমিয়াম) ─── */
.notice-item.is-read{cursor:pointer}
.notice-item.is-pinned{background:#fffdf5}
.notice-item.is-pinned:hover{background:#fffaea}
.notice-read{font-family:var(--font-bn);font-size:11.5px;font-weight:700;color:var(--royal);display:inline-flex;align-items:center;gap:5px;flex-shrink:0;opacity:.85;transition:opacity .2s}
.notice-item.is-read:hover .notice-read{opacity:1}
.notice-layout{align-items:start}
.notice-board #web-notice-list{max-height:322px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#cfdcea transparent}
.notice-board #web-notice-list::-webkit-scrollbar{width:6px}
.notice-board #web-notice-list::-webkit-scrollbar-track{background:transparent}
.notice-board #web-notice-list::-webkit-scrollbar-thumb{background:#cfdcea;border-radius:50px}

.notice-modal{position:fixed;inset:0;background:rgba(16,32,51,.5);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:none;align-items:center;justify-content:center;padding:22px;z-index:900}
.notice-modal.open{display:flex;animation:nmFade .18s ease}
@keyframes nmFade{from{opacity:0}to{opacity:1}}
@keyframes nmRise{from{opacity:0;transform:translateY(16px) scale(.985)}to{opacity:1;transform:none}}
.notice-modal-card{position:relative;background:#fff;width:100%;max-width:640px;max-height:84vh;overflow:auto;border-radius:var(--r-xl);padding:30px 32px 32px;box-shadow:0 28px 70px rgba(16,32,51,.3);animation:nmRise .24s cubic-bezier(.2,.8,.3,1)}
.notice-modal-close{position:absolute;top:16px;right:16px;width:36px;height:36px;border-radius:11px;background:#f2f6fa;color:#5a6b7c;font-size:14px;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s}
.notice-modal-close:hover{background:#e5edf6;color:#16233a}
.notice-modal-meta{display:flex;align-items:center;gap:10px;font-family:var(--font-bn);font-size:12px;color:var(--text-muted);margin-bottom:12px;padding-right:44px}
.notice-modal-cat{background:#eaf3fb;color:#1e5799;font-weight:700;padding:3px 11px;border-radius:50px}
.notice-modal-title{font-family:var(--font-heading);font-size:clamp(19px,2.6vw,23px);line-height:1.5;color:var(--navy);margin:0 0 14px;padding-right:36px}
.notice-modal-body{font-family:var(--font-bn);font-size:15px;line-height:1.95;color:#3b4d61;white-space:pre-wrap;overflow-wrap:anywhere}
@media(max-width:640px){
  .notice-modal{padding:14px}
  .notice-modal-card{padding:24px 20px 26px;max-height:88vh}
  .notice-modal-title{padding-right:30px}
}

/* ── “সব নোটিশ” পেজ (notices.html) ── */
.np-head{background:var(--navy)}
.np-head-inner{max-width:1000px;margin:0 auto;padding:13px 20px;display:flex;align-items:center;justify-content:space-between;gap:14px}
.np-brand{display:flex;align-items:center;gap:11px;text-decoration:none}
.np-emblem{width:44px;height:44px;border-radius:11px;overflow:hidden;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid rgba(255,255,255,.25);color:var(--navy);font-size:18px}
.np-emblem img{width:100%;height:100%;object-fit:contain}
.np-logo-text{display:flex;flex-direction:column;line-height:1.25;min-width:0}
.np-logo-text .en{font-family:var(--font-heading);font-size:15px;font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.np-logo-text .bn{font-family:var(--font-bn);font-size:11.5px;color:rgba(255,255,255,.68)}
.np-back{font-family:var(--font-bn);font-size:12.5px;font-weight:600;color:rgba(255,255,255,.85);border:1px solid rgba(255,255,255,.28);padding:8px 14px;border-radius:50px;display:inline-flex;align-items:center;gap:7px;text-decoration:none;transition:background .2s,color .2s}
.np-back:hover{background:rgba(255,255,255,.14);color:#fff}
.np-main{max-width:900px;margin:0 auto;padding:34px 20px 56px}
.np-title{font-family:var(--font-heading);font-size:clamp(23px,3.2vw,30px);line-height:1.4;color:var(--navy);margin:0 0 7px}
.np-sub{font-family:var(--font-bn);font-size:13.5px;color:var(--text-muted);margin:0 0 22px}
.np-list{list-style:none;margin:0;padding:0;background:#fff;border:1px solid var(--border);border-radius:var(--r-xl);overflow:hidden}
.np-list .notice-item{padding:15px 22px}
.np-year{font-family:var(--font-bn);font-size:12px;font-weight:700;letter-spacing:.3px;color:#7d8fa1;background:var(--off-white);padding:12px 22px 7px;border-bottom:1px solid var(--border)}
.np-empty{list-style:none;font-family:var(--font-bn);font-size:14px;color:var(--text-muted);text-align:center;padding:38px 16px}
.np-more-wrap{text-align:center;margin-top:24px}
.np-more{font-family:var(--font-bn);font-size:14px;font-weight:700;color:#fff;background:var(--navy);border:none;padding:13px 28px;border-radius:50px;cursor:pointer;display:inline-flex;align-items:center;gap:8px;box-shadow:0 8px 20px rgba(26,58,92,.18);transition:transform .15s,box-shadow .2s,opacity .2s}
.np-more:hover{transform:translateY(-1px);box-shadow:0 12px 26px rgba(26,58,92,.24)}
.np-more:disabled{opacity:.6;cursor:default;transform:none;box-shadow:none}
.np-foot{background:var(--navy);color:rgba(255,255,255,.7);font-family:var(--font-bn);font-size:12.5px;line-height:1.8;text-align:center;padding:22px 16px}
.np-foot strong{color:#fff}
@media(max-width:640px){
  .np-head-inner{padding:11px 14px}
  .np-emblem{width:38px;height:38px}
  .np-logo-text .en{font-size:13.5px;max-width:186px}
  .np-back{padding:9px 11px;font-size:12px}
  .np-back-t{display:none}
  .np-main{padding:24px 14px 44px}
  .np-list .notice-item{padding:13px 15px;gap:11px}
}


/* Admission quick card */
.quick-admit{background:var(--royal);border-radius:var(--r-xl);padding:28px 24px;color:#fff}
.quick-admit h3{font-family:var(--font-bn);font-size:18px;font-weight:700;margin-bottom:6px}
.quick-admit p{font-family:var(--font-bn);font-size:13.5px;color:rgba(255,255,255,.75);line-height:1.7;margin-bottom:20px}
.quick-admit-steps{display:flex;flex-direction:column;gap:10px;margin-bottom:22px}
.quick-admit-step{display:flex;align-items:center;gap:10px;font-family:var(--font-bn);font-size:13px;color:rgba(255,255,255,.85)}
.quick-admit-step i{width:24px;height:24px;background:rgba(255,255,255,.12);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;flex-shrink:0}
.btn-full-admit{display:block;width:100%;padding:13px;background:#fff;color:var(--royal);border-radius:var(--r-md);font-family:var(--font-bn);font-size:15px;font-weight:700;text-align:center;transition:background .2s,transform .15s}
.btn-full-admit:hover{background:var(--off-white);transform:translateY(-1px)}
.btn-wa-admit{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:11px;border:1.5px solid rgba(255,255,255,.3);color:#fff;border-radius:var(--r-md);font-family:var(--font-bn);font-size:13.5px;font-weight:600;margin-top:10px;transition:background .2s}
.btn-wa-admit:hover{background:rgba(255,255,255,.1)}

/* ═══════════════════════════════════
   ACHIEVEMENTS — Academic Excellence
═══════════════════════════════════ */
.achieve-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:36px}
.achieve-main{background:var(--navy);border-radius:var(--r-xl);padding:36px 32px;color:#fff;display:flex;flex-direction:column;justify-content:flex-end;min-height:260px;position:relative;overflow:hidden}
.achieve-main::before{content:'\f559';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;top:-10px;right:-10px;font-size:120px;color:rgba(255,255,255,.04)}
.achieve-main h3{font-family:var(--font-heading);font-size:22px;font-weight:700;margin-bottom:8px;position:relative;z-index:1}
.achieve-main p{font-family:var(--font-bn);font-size:13.5px;color:rgba(255,255,255,.7);line-height:1.8;position:relative;z-index:1}
.achieve-result-row{display:flex;gap:12px;margin-top:18px;flex-wrap:wrap;position:relative;z-index:1}
.achieve-result-pill{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);border-radius:50px;padding:6px 16px;font-family:var(--font-bn);font-size:13px;color:#fff;font-weight:600;white-space:nowrap}
.achieve-sub-grid{display:grid;grid-template-columns:1fr;gap:16px}
.achieve-card{background:#fff;border:1px solid var(--border);border-radius:var(--r-lg);padding:22px 20px;transition:box-shadow .2s}
.achieve-card:hover{box-shadow:var(--sh-lift)}
.achieve-card-num{font-family:var(--font-heading);font-size:34px;font-weight:800;color:var(--royal);line-height:1}
.achieve-card-num span{font-size:18px;color:var(--gold)}
.achieve-card h4{font-family:var(--font-bn);font-size:14px;font-weight:700;color:var(--navy);margin-top:4px}
.achieve-card p{font-family:var(--font-bn);font-size:12.5px;color:var(--text-muted);line-height:1.6;margin-top:4px}

/* ═══════════════════════════════════
   CAMPUS LIFE — Photo Grid
═══════════════════════════════════ */
.campus-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:auto auto;gap:12px;margin-top:36px}
.campus-item{border-radius:var(--r-md);overflow:hidden;position:relative;background:var(--off-white)}
.campus-item.big{grid-column:span 2;grid-row:span 1}
.campus-placeholder{width:100%;aspect-ratio:4/3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:linear-gradient(135deg,var(--primary),var(--secondary));color:rgba(255,255,255,.4);font-family:var(--font-bn);font-size:12px;text-align:center;padding:16px}
.campus-placeholder.green{background:linear-gradient(135deg,#2d7a3a,#38a047)}
.campus-placeholder.warm{background:linear-gradient(135deg,#7c5c1a,#b8860b)}
.campus-placeholder.teal{background:linear-gradient(135deg,#0d7377,#14a085)}
.campus-placeholder.deep{background:linear-gradient(135deg,#2c3e6b,#3d5298)}
.campus-placeholder.rust{background:linear-gradient(135deg,#8b2635,#c0392b)}
.campus-placeholder i{font-size:36px;opacity:.35}
.campus-item-label{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(to top,rgba(0,0,0,.65),transparent);padding:20px 14px 12px;font-family:var(--font-bn);font-size:13px;font-weight:600;color:#fff}

/* ═══════════════════════════════════
   PRINCIPAL MESSAGE
═══════════════════════════════════ */
.principal-wrap{display:grid;grid-template-columns:260px 1fr;gap:48px;align-items:start;background:#fff;border:1px solid var(--border);border-radius:var(--r-xl);padding:40px}
.principal-photo-area{text-align:center}
.principal-photo{width:200px;height:200px;border-radius:var(--r-xl);background:var(--off-white);border:3px solid var(--border);margin:0 auto 16px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.principal-photo i{font-size:64px;color:var(--border)}
.principal-name{font-family:var(--font-bn);font-size:16px;font-weight:700;color:var(--navy)}
.principal-title{font-family:var(--font-bn);font-size:12px;color:var(--text-muted);margin-top:4px}
.principal-role-badge{display:inline-flex;align-items:center;gap:6px;background:var(--off-white);border:1px solid var(--border);color:var(--navy);font-family:var(--font-bn);font-size:12px;font-weight:600;padding:5px 14px;border-radius:50px;margin-top:10px}
.principal-msg-body{}
.principal-quote-mark{font-family:Georgia,serif;font-size:80px;line-height:.7;color:var(--gold-lt);opacity:.4;display:block;margin-bottom:8px}
.principal-msg-text{font-family:var(--font-bn);font-size:15px;color:var(--text-mid);line-height:1.9;margin-bottom:14px}
.principal-msg-text strong{color:var(--navy);font-weight:700}
.principal-years{display:inline-flex;align-items:center;gap:8px;background:var(--off-white);border:1px solid var(--border);padding:8px 18px;border-radius:50px;font-family:var(--font-bn);font-size:13px;color:var(--navy);font-weight:600;margin-top:8px}
.principal-years i{color:var(--gold)}

/* ═══════════════════════════════════
   TEACHER SECTION
═══════════════════════════════════ */
.teacher-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:20px;margin-top:36px}
.teacher-card{background:#fff;border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;transition:box-shadow .25s,transform .25s}
.teacher-card:hover{box-shadow:var(--sh-lift);transform:translateY(-3px)}
.teacher-photo{height:160px;display:flex;align-items:center;justify-content:center;position:relative}
.teacher-avatar{width:80px;height:80px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-bn);font-size:28px;font-weight:800;color:#fff;margin:0 auto}
.teacher-dept-badge{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);white-space:nowrap;background:rgba(0,0,0,.45);color:#fff;font-family:var(--font-bn);font-size:10px;font-weight:700;padding:3px 10px;border-radius:50px}
.teacher-info{padding:16px;text-align:center}
.teacher-name{font-family:var(--font-bn);font-size:14.5px;font-weight:700;color:var(--navy)}
.teacher-subject{font-family:var(--font-bn);font-size:12px;color:var(--text-muted);margin-top:3px}
.teacher-tags{display:flex;justify-content:center;gap:6px;margin-top:10px;flex-wrap:wrap}
.teacher-tag{background:var(--off-white);border:1px solid var(--border);border-radius:50px;padding:3px 10px;font-family:var(--font-bn);font-size:11px;color:var(--text-mid);font-weight:600}

/* Faculty filter */
.faculty-filter{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:28px}
.faculty-filter-btn{padding:7px 18px;border-radius:50px;border:1.5px solid var(--border);font-family:var(--font-bn);font-size:13px;font-weight:600;color:var(--text-mid);transition:all .2s}
.faculty-filter-btn.active,.faculty-filter-btn:hover{background:var(--navy);color:#fff;border-color:var(--navy)}

/* ═══════════════════════════════════
   PARENT TESTIMONIALS
═══════════════════════════════════ */
.testi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;margin-top:36px}
.testi-card{background:#fff;border:1px solid var(--border);border-radius:var(--r-xl);padding:24px;position:relative}
.testi-quote-mark{font-family:Georgia,serif;font-size:60px;line-height:.6;color:var(--gold-lt);opacity:.35;position:absolute;top:16px;right:20px}
.testi-stars{display:flex;gap:3px;color:var(--gold-lt);font-size:13px;margin-bottom:12px}
.testi-text{font-family:var(--font-bn);font-size:14px;color:var(--text-mid);line-height:1.8;margin-bottom:16px}
.testi-author{display:flex;align-items:center;gap:12px}
.testi-avatar{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-bn);font-size:16px;font-weight:800;color:#fff;flex-shrink:0}
.testi-name{font-family:var(--font-bn);font-size:14px;font-weight:700;color:var(--navy)}
.testi-role{font-family:var(--font-bn);font-size:12px;color:var(--text-muted);margin-top:1px}

/* ═══════════════════════════════════
   GALLERY
═══════════════════════════════════ */
.gallery-filter{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:24px}
.gallery-filter-btn{padding:6px 16px;border-radius:50px;border:1.5px solid var(--border);font-family:var(--font-bn);font-size:13px;font-weight:600;color:var(--text-mid);transition:all .2s}
.gallery-filter-btn.active,.gallery-filter-btn:hover{background:var(--navy);color:#fff;border-color:var(--navy)}
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.gallery-item{position:relative;overflow:hidden;border-radius:var(--r-md);aspect-ratio:4/3;cursor:pointer}
.gallery-ph{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;font-family:var(--font-bn);font-size:12px;color:rgba(255,255,255,.5)}
.gallery-ph i{font-size:28px;opacity:.4}
.gallery-overlay{position:absolute;inset:0;background:rgba(26,58,92,.0);transition:background .25s;display:flex;align-items:flex-end}
.gallery-item:hover .gallery-overlay{background:rgba(26,58,92,.6)}
.gallery-overlay-text{color:#fff;font-family:var(--font-bn);font-size:13px;font-weight:600;padding:12px;transform:translateY(8px);opacity:0;transition:all .25s;line-height:1.4}
.gallery-item:hover .gallery-overlay-text{transform:none;opacity:1}
.gallery-type-tag{position:absolute;top:8px;right:8px;background:rgba(0,0,0,.5);color:#fff;font-family:var(--font-bn);font-size:10px;padding:3px 9px;border-radius:50px;display:flex;align-items:center;gap:4px}

/* Lightbox */
.lightbox{display:none;position:fixed;inset:0;background:rgba(0,0,0,.9);z-index:500;align-items:center;justify-content:center}
.lightbox.open{display:flex}
.lightbox-inner{position:relative;max-width:90vw;max-height:90vh;display:flex;flex-direction:column;align-items:center;gap:12px}
.lightbox-close{position:fixed;top:20px;right:20px;width:40px;height:40px;background:rgba(255,255,255,.15);border-radius:50%;color:#fff;font-size:18px;display:flex;align-items:center;justify-content:center;transition:background .2s}
.lightbox-close:hover{background:rgba(255,255,255,.3)}
.lightbox-img-wrap{max-width:80vw;max-height:75vh;display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.3);font-size:64px}
.lightbox-title{color:rgba(255,255,255,.8);font-family:var(--font-bn);font-size:14px;text-align:center}
.lightbox-nav{position:fixed;top:50%;transform:translateY(-50%);width:44px;height:44px;background:rgba(255,255,255,.15);border-radius:50%;color:#fff;font-size:18px;display:flex;align-items:center;justify-content:center;transition:background .2s}
.lightbox-nav:hover{background:rgba(255,255,255,.3)}
.lightbox-nav.prev{left:20px}
.lightbox-nav.next{right:20px}

/* ═══════════════════════════════════
   CTA BAND
═══════════════════════════════════ */
#cta-band{background:linear-gradient(135deg,var(--primary),var(--secondary));padding:52px 20px;text-align:center}
.cta-band-tag{display:inline-block;background:rgba(212,160,23,.2);color:var(--gold-lt);font-family:var(--font-bn);font-size:12px;font-weight:700;padding:5px 18px;border-radius:50px;letter-spacing:.8px;margin-bottom:14px;border:1px solid rgba(212,160,23,.3)}
.cta-band-title{font-family:var(--font-heading);font-size:clamp(24px,4vw,38px);font-weight:700;color:#fff;margin-bottom:10px;line-height:1.3}
.cta-band-title span{color:var(--gold-lt)}
.cta-band-sub{font-family:var(--font-bn);font-size:15px;color:rgba(255,255,255,.7);margin-bottom:28px;line-height:1.8;max-width:560px;margin-left:auto;margin-right:auto}
.cta-band-btns{display:flex;justify-content:center;flex-wrap:wrap;gap:12px}
.btn-cta-white{display:inline-flex;align-items:center;gap:9px;padding:13px 28px;background:#fff;color:var(--navy);border-radius:var(--r-md);font-family:var(--font-bn);font-size:15px;font-weight:700;transition:transform .15s,box-shadow .15s}
.btn-cta-white:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.2)}
.btn-cta-outline{display:inline-flex;align-items:center;gap:9px;padding:12px 24px;border:1.5px solid rgba(255,255,255,.4);color:#fff;border-radius:var(--r-md);font-family:var(--font-bn);font-size:14.5px;font-weight:600;transition:background .2s}
.btn-cta-outline:hover{background:rgba(255,255,255,.1)}

/* ═══════════════════════════════════
   TRUST SIGNALS ROW
═══════════════════════════════════ */
.trust-signals{display:flex;flex-wrap:wrap;gap:16px;justify-content:center;margin-top:36px}
.trust-signal{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--border);border-radius:var(--r-md);padding:12px 18px}
.trust-signal i{font-size:18px;color:var(--royal);flex-shrink:0}
.trust-signal-text{font-family:var(--font-bn);font-size:13px}
.trust-signal-text strong{display:block;color:var(--navy);font-weight:700;font-size:14px}
.trust-signal-text span{color:var(--text-muted)}

/* ═══════════════════════════════════
   CONTACT & MAP
═══════════════════════════════════ */
.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:start}
.contact-info{display:flex;flex-direction:column;gap:16px}
.contact-item{display:flex;align-items:flex-start;gap:14px;background:#fff;border:1px solid var(--border);border-radius:var(--r-md);padding:16px 18px}
.contact-item i{font-size:18px;color:var(--royal);margin-top:2px;flex-shrink:0;width:20px;text-align:center}
.contact-item-body p{font-family:var(--font-bn);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--text-muted);margin-bottom:4px}
.contact-item-body a,.contact-item-body span{font-family:var(--font-bn);font-size:14px;color:var(--text);font-weight:500}
.contact-item-body a:hover{color:var(--royal)}
.map-wrap{border-radius:var(--r-xl);overflow:hidden;border:1px solid var(--border);height:300px;background:var(--off-white);display:flex;align-items:center;justify-content:center}
.map-placeholder{text-align:center;font-family:var(--font-bn);color:var(--text-muted)}
.map-placeholder i{font-size:40px;color:var(--border);display:block;margin-bottom:10px}

/* ═══════════════════════════════════
   FOOTER
═══════════════════════════════════ */
footer{background:var(--navy);color:#fff;padding:48px 0 0}
.footer-inner{max-width:1100px;margin:0 auto;padding:0 20px}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:36px;padding-bottom:36px;border-bottom:1px solid rgba(255,255,255,.08)}
.footer-brand-logo{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.footer-brand-logo .emblem{width:52px;height:52px;background:rgba(255,255,255,.08);border-radius:12px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.footer-brand-logo .emblem i{color:var(--gold-lt);font-size:20px}
.footer-brand-logo .emblem img{width:100%;height:100%;object-fit:contain;border-radius:inherit}
.footer-brand-logo .emblem:has(img){background:#fff}
.footer-brand-logo .name{font-family:var(--font-body);font-size:14px;font-weight:700;color:#fff}
.footer-brand-logo .sub{font-family:var(--font-bn);font-size:11px;color:rgba(255,255,255,.5)}
.footer-about{font-family:var(--font-bn);font-size:13px;color:rgba(255,255,255,.55);line-height:1.8;margin-bottom:16px}
.footer-socials{display:flex;gap:8px}
.social-btn{width:34px;height:34px;border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;font-size:14px;background:rgba(255,255,255,.08);color:rgba(255,255,255,.7);transition:background .2s,color .2s}
.social-btn:hover{background:rgba(255,255,255,.18);color:#fff}
.footer-col-title{font-family:var(--font-bn);font-size:13px;font-weight:700;color:#fff;margin-bottom:14px;text-transform:uppercase;letter-spacing:.8px}
.footer-links li{margin-bottom:8px}
.footer-links a{font-family:var(--font-bn);font-size:13px;color:rgba(255,255,255,.55);transition:color .2s;display:flex;align-items:center;gap:6px}
.footer-links a:hover{color:#fff}
.footer-links a i{font-size:10px;color:rgba(255,255,255,.3)}
.footer-contact-item{display:flex;align-items:flex-start;gap:10px;margin-bottom:10px;font-family:var(--font-bn);font-size:12.5px;color:rgba(255,255,255,.55)}
.footer-contact-item i{font-size:13px;color:var(--gold-lt);margin-top:2px;flex-shrink:0;width:14px;text-align:center}
.footer-contact-item a{color:rgba(255,255,255,.55);transition:color .2s}
.footer-contact-item a:hover{color:#fff}
.footer-bottom{padding:16px 0;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px}
.footer-copy{font-family:var(--font-bn);font-size:12px;color:rgba(255,255,255,.4)}
.footer-powered{font-family:var(--font-bn);font-size:12px;color:rgba(255,255,255,.4);display:flex;align-items:center;gap:6px}
.footer-powered span{background:rgba(212,160,23,.15);color:var(--gold-lt);padding:3px 10px;border-radius:50px;font-size:11px;font-weight:600}

/* ═══════════════════════════════════
   SLIDER — Campus Tour
═══════════════════════════════════ */
.slider-wrap{position:relative;border-radius:var(--r-xl);overflow:hidden;margin-top:36px}
.slide-main{position:relative;height:420px;overflow:hidden}
.slide-img{position:absolute;inset:0;width:100%;height:100%;transition:opacity .5s ease;opacity:0;display:flex;align-items:center;justify-content:center}
.slide-img.active{opacity:1;z-index:1}
.slide-img i{font-size:100px;opacity:.06;color:#fff}
.slide-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.7) 0%,rgba(0,0,0,.1) 60%,transparent 100%);z-index:2}
.slide-caption{position:absolute;bottom:0;left:0;right:0;z-index:3;padding:24px 28px;opacity:0;transition:opacity .4s;pointer-events:none}
.slide-caption.active{opacity:1}
.slide-caption-tag{display:inline-flex;align-items:center;gap:6px;background:rgba(212,160,23,.25);color:var(--gold-lt);font-family:var(--font-bn);font-size:11px;font-weight:700;padding:4px 12px;border-radius:50px;margin-bottom:8px;border:1px solid rgba(212,160,23,.3)}
.slide-caption-title{font-family:var(--font-bn);font-size:18px;font-weight:700;color:#fff;margin-bottom:4px}
.slide-caption-sub{font-family:var(--font-bn);font-size:12.5px;color:rgba(255,255,255,.7)}
.slide-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:4;width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.18);color:#fff;font-size:16px;display:flex;align-items:center;justify-content:center;transition:background .2s;border:none;cursor:pointer}
.slide-arrow:hover{background:rgba(255,255,255,.35)}
.slide-arrow.prev{left:14px}
.slide-arrow.next{right:14px}
.slide-dots{display:flex;justify-content:center;gap:7px;padding:14px 0}
.slide-dot{width:8px;height:8px;border-radius:50%;background:var(--border);cursor:pointer;transition:background .2s,transform .2s}
.slide-dot.active{background:var(--royal);transform:scale(1.3)}

/* ═══════════════════════════════════
   ADMISSION MODAL
═══════════════════════════════════ */
#admissionModal{border:none;border-radius:var(--r-xl);padding:0;max-width:520px;width:90%;box-shadow:0 20px 60px rgba(0,0,0,.25);background:var(--warm-bg);outline:none;overflow:hidden;font-family:var(--font-bn)}
#schoolSetupModal{border:none;border-radius:var(--r-xl);padding:0;max-width:760px;width:92%;box-shadow:0 20px 60px rgba(0,0,0,.25);background:var(--warm-bg);outline:none;overflow:hidden;font-family:var(--font-bn)}
#admissionModal::backdrop,#schoolSetupModal::backdrop{background:rgba(0,0,0,.65)}
.modal-hd{background:var(--navy);padding:20px 24px;display:flex;align-items:center;justify-content:space-between}
.modal-hd h3{font-family:var(--font-bn);font-size:17px;font-weight:700;color:#fff}
.modal-hd p{font-family:var(--font-bn);font-size:11.5px;color:rgba(255,255,255,.5);margin-top:2px}
.modal-close{width:32px;height:32px;background:rgba(255,255,255,.1);border-radius:var(--r-sm);color:rgba(255,255,255,.7);font-size:17px;display:flex;align-items:center;justify-content:center;cursor:pointer;line-height:1;transition:background .2s}
.modal-close:hover{background:rgba(255,255,255,.2);color:#fff}
.modal-progress{height:3px;background:linear-gradient(90deg,var(--gold),var(--gold-lt));transform-origin:left;transform:scaleX(0);transition:transform .4s}
.modal-body{padding:24px;display:flex;flex-direction:column;gap:14px;max-height:70vh;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--border) transparent}
.modal-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.modal-field{display:flex;flex-direction:column;gap:5px}
.modal-label{font-family:var(--font-bn);font-size:12.5px;font-weight:700;color:var(--text);display:flex;align-items:center;gap:5px}
.modal-label i{font-size:11px;color:var(--gold)}
.modal-label .req{color:#c0392b;font-size:13px}
.modal-input,.modal-select,.modal-textarea{width:100%;height:42px;border:1.5px solid var(--border);border-radius:var(--r-md);padding:0 12px;font-family:var(--font-bn);font-size:14px;color:var(--text);background:#fff;outline:none;transition:border-color .2s,box-shadow .2s}
.modal-textarea{height:76px;padding:10px 12px;resize:none}
.modal-input:focus,.modal-select:focus,.modal-textarea:focus{border-color:var(--royal);box-shadow:0 0 0 3px rgba(30,87,153,.1)}
.photo-upload{display:grid;grid-template-columns:92px 1fr;gap:14px;align-items:center;border:1.5px dashed var(--border);border-radius:var(--r-lg);padding:12px;background:var(--warm-bg)}
.photo-preview{width:92px;height:112px;border-radius:var(--r-md);background:#fff;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;overflow:hidden;color:var(--text-muted)}
.photo-preview i{font-size:30px;opacity:.45}
.photo-preview img{width:100%;height:100%;object-fit:cover}
.photo-upload-body{min-width:0}
.photo-upload-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px}
.photo-upload-btn{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border-radius:var(--r-md);background:var(--royal);color:#fff;font-family:var(--font-bn);font-size:13px;font-weight:700;cursor:pointer;transition:background .2s,transform .15s}
.photo-upload-btn:hover{background:var(--navy);transform:translateY(-1px)}
.photo-upload input[type="file"]{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.photo-upload-note{font-family:var(--font-bn);font-size:11.5px;color:var(--text-muted);line-height:1.5;margin-top:6px}
.photo-upload-status{font-family:var(--font-bn);font-size:12px;color:var(--green);font-weight:700}
.modal-file-input{height:auto;padding:8px 12px}
.modal-hint{font-family:var(--font-bn);font-size:11px;color:var(--text-muted);margin-top:-2px}
.modal-radio-group{display:flex;gap:16px;align-items:center;font-family:var(--font-bn);font-size:14px;color:var(--text-mid)}
.modal-radio-group label{display:flex;align-items:center;gap:5px;cursor:pointer}
.modal-divider{height:1px;background:var(--border);margin:4px 0}
.modal-checkbox-label{display:flex;align-items:flex-start;gap:9px;font-family:var(--font-bn);font-size:13px;color:var(--text-mid);line-height:1.5;cursor:pointer}
.modal-checkbox-label input{margin-top:3px;flex-shrink:0;accent-color:var(--royal);width:15px;height:15px}
.modal-submit{width:100%;padding:13px;background:var(--royal);color:#fff;border-radius:var(--r-md);font-family:var(--font-bn);font-size:15px;font-weight:700;transition:background .2s,transform .15s;display:flex;align-items:center;justify-content:center;gap:8px}
.modal-submit:hover:not(:disabled){background:var(--navy);transform:translateY(-1px)}
.modal-submit:disabled{opacity:.6;cursor:not-allowed}
.modal-success{padding:36px 24px;text-align:center;display:none}
.modal-success.show{display:block}
.modal-success-icon{width:68px;height:68px;border-radius:50%;background:var(--green);display:flex;align-items:center;justify-content:center;font-size:30px;color:#fff;margin:0 auto 18px;box-shadow:0 8px 24px rgba(45,122,58,.3)}
.modal-success-title{font-family:var(--font-heading);font-size:22px;font-weight:700;color:var(--navy);margin-bottom:8px}
.modal-success-sub{font-family:var(--font-bn);font-size:14px;color:var(--text-muted);line-height:1.7;margin-bottom:20px}
.modal-ref-box{display:inline-flex;align-items:center;gap:8px;background:var(--off-white);border:1px solid var(--border);padding:8px 18px;border-radius:var(--r-md);font-size:13.5px;font-weight:700;color:var(--navy);font-family:var(--font-bn)}
.setup-actions{display:flex;gap:10px;flex-wrap:wrap}
.setup-actions .modal-submit{flex:1;min-width:160px}
.setup-muted-btn{background:#fff;color:var(--navy);border:1.5px solid var(--border)}
.setup-muted-btn:hover:not(:disabled){background:var(--off-white);color:var(--navy)}
.setup-float{position:fixed;right:18px;bottom:18px;z-index:210;width:44px;height:44px;border-radius:50%;background:var(--navy);color:#fff;box-shadow:var(--sh-lift);display:none;align-items:center;justify-content:center;font-size:16px}
.setup-float.show{display:flex}
.notice-composer{border:1px solid var(--border);border-radius:var(--r-lg);background:#fff;padding:16px;box-shadow:var(--sh-card)}
.notice-composer-title{font-family:var(--font-bn);font-size:14px;font-weight:800;color:var(--navy);display:flex;align-items:center;gap:8px;margin-bottom:12px}
.notice-preview{border:1px solid var(--border);border-radius:var(--r-md);background:var(--off-white);padding:12px;margin-top:10px;font-family:var(--font-bn)}
.notice-preview strong{display:block;color:var(--text);font-size:14px;line-height:1.5}
.notice-preview span{display:block;color:var(--text-muted);font-size:12px;margin-top:4px}

/* ═══════════════════════════════════
   RESPONSIVE
═══════════════════════════════════ */
@media (max-width:900px){
  .hero-inner{grid-template-columns:1fr;gap:32px}
  .hero-panel{display:none}
  .notice-layout{grid-template-columns:1fr}
  .quick-admit{order:-1}
  .achieve-grid{grid-template-columns:1fr}
  .contact-layout{grid-template-columns:1fr}
  .principal-wrap{grid-template-columns:1fr;gap:24px}
  .principal-photo-area{max-width:200px}
  .footer-grid{grid-template-columns:1fr 1fr;gap:24px}
  .campus-grid{grid-template-columns:1fr 1fr}
  .campus-item.big{grid-column:span 2}
  .gallery-grid{grid-template-columns:repeat(2,1fr)}
  }
@media (max-width:600px){
  .nav-links,.btn-admission-nav{display:none}
  .nav-burger{display:flex;flex-shrink:0}
  .nav-logo-emblem{width:44px;height:44px}
  .nav-logo-text .bn{display:none}
  .nav-logo-text .en{font-size:14px}
  .section{padding:44px 0}
  .hero-inner{padding-top:8px;padding-bottom:8px}
  .hero-stats-bar-inner{gap:24px}
  .hero-stat-num{font-size:22px}
  .trust-grid{grid-template-columns:1fr 1fr}
  .achieve-grid{grid-template-columns:1fr}
  .teacher-grid{grid-template-columns:repeat(2,1fr)}
  .testi-grid{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr}
  .campus-grid{grid-template-columns:1fr 1fr}
  .campus-item.big{grid-column:span 2}
  .gallery-grid{grid-template-columns:1fr 1fr}
  .principal-wrap{padding:24px 18px}
  .modal-row{grid-template-columns:1fr}
  .slide-main{height:280px}
}

/* ═══════════════════════════════════
   EDUMIN PARENT PORTAL — auth + dashboard (dynamic per-school)
═══════════════════════════════════ */
.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(150deg,var(--primary),var(--secondary));padding:24px;position:relative;overflow:hidden}
.auth-wrap::before{content:'';position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.05) 1px,transparent 1px);background-size:26px 26px;pointer-events:none}
.auth-card{background:var(--warm-bg);border-radius:var(--r-xl);padding:36px 32px;width:100%;max-width:420px;box-shadow:var(--sh-lift);position:relative;z-index:1}
.auth-logo{width:66px;height:66px;border-radius:16px;background:var(--navy);color:var(--gold-lt);display:flex;align-items:center;justify-content:center;margin:0 auto 14px;overflow:hidden;font-size:28px}
.auth-logo img{width:100%;height:100%;object-fit:contain}
.auth-card h1{font-family:var(--font-heading);font-size:24px;font-weight:700;color:var(--navy);text-align:center}
.auth-card .sub{text-align:center;color:var(--text-muted);font-size:13.5px;margin:8px 0 24px}
.auth-back{display:block;text-align:center;margin-top:18px;font-size:13px;color:var(--royal);font-weight:600}
.auth-back:hover{text-decoration:underline}
.field{margin-bottom:15px}
.field label{display:block;font-size:13px;font-weight:700;color:var(--text);margin-bottom:6px}
.field input,.field select{width:100%;padding:12px 14px;border:1.5px solid var(--border);border-radius:var(--r-md);font-size:15px;font-family:inherit;background:#fff;color:var(--text);outline:none;transition:border-color .2s,box-shadow .2s}
.field input:focus,.field select:focus{border-color:var(--royal);box-shadow:0 0 0 3px rgba(30,87,153,.1)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;border-radius:var(--r-md);font-weight:700;font-size:15px;font-family:inherit;transition:background .2s,transform .15s;cursor:pointer;border:none}
.btn-gold{background:var(--gold);color:#fff}
.btn-gold:hover{background:var(--gold-lt);transform:translateY(-1px)}
.btn-ghost{background:rgba(255,255,255,.12);color:#fff;border:1.5px solid rgba(255,255,255,.35)}
.btn-ghost:hover{background:rgba(255,255,255,.2)}
.btn-block{width:100%}
.err{background:#fdecea;color:var(--red);border:1px solid #f5c6c0;border-radius:var(--r-md);padding:11px 14px;font-size:13.5px;margin-bottom:14px;display:none}
.ok{background:#eaf6ec;color:var(--green);border:1px solid #c4e6ca;border-radius:var(--r-md);padding:11px 14px;font-size:13.5px;margin-bottom:14px;display:none}

/* ── dashboard ── */
.dash-head{background:#fff;border-bottom:1px solid var(--border);position:sticky;top:0;z-index:50}
.dash-head .inner{max-width:1100px;margin:0 auto;padding:12px 20px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.dash-head .brand{display:flex;align-items:center;gap:10px;min-width:0}
.dash-head .brand .emblem{width:38px;height:38px;border-radius:10px;background:var(--navy);color:var(--gold-lt);display:flex;align-items:center;justify-content:center;font-size:16px;overflow:hidden}
.dash-head .brand .emblem img{width:100%;height:100%;object-fit:contain}
.dash-head .brand .bn{font-weight:800;color:var(--navy);font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dash-head .brand .tag{font-size:11px;color:var(--text-muted)}
.dash-head .who{margin-left:auto;text-align:right}
.dash-head .who b{display:block;color:var(--navy);font-size:14px}
.dash-head .who span{font-size:12px;color:var(--text-muted)}
.dash-body{max-width:1100px;margin:28px auto;padding:0 20px;display:grid;gap:20px}
.dash-tabs{display:flex;gap:8px;flex-wrap:wrap}
.tab-btn{background:#fff;border:1px solid var(--border);border-radius:50px;padding:9px 20px;font-weight:700;font-size:14px;color:var(--text);font-family:inherit;transition:all .2s}
.tab-btn.active{background:var(--navy);color:#fff;border-color:var(--navy)}
.panel{background:#fff;border:1px solid var(--border);border-radius:var(--r-xl);padding:24px;box-shadow:var(--sh-card)}
.panel h2{font-family:var(--font-heading);font-size:20px;font-weight:700;color:var(--navy);margin-bottom:16px}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin-bottom:20px}
.kpi{background:var(--cream);border:1px solid var(--border);border-radius:var(--r-lg);padding:16px 18px}
.kpi .n{font-size:24px;font-weight:800;color:var(--navy);line-height:1.2}
.kpi .l{font-size:12.5px;color:var(--text-muted)}

/* ── dues checklist ── */
.due-item{display:flex;align-items:center;gap:12px;border:1px solid var(--border);border-radius:var(--r-md);padding:13px 15px;margin-bottom:9px;background:#fff;transition:border-color .2s,box-shadow .2s;cursor:pointer}
.due-item:hover{border-color:var(--royal);box-shadow:var(--sh-card)}
.due-item input{width:18px;height:18px;accent-color:var(--royal);flex-shrink:0}
.due-item .lbl{flex:1;min-width:0}
.due-item .lbl b{color:var(--navy);font-size:14.5px}
.due-item .lbl small{font-size:12px;color:var(--text-muted)}
.due-item .amt{font-weight:800;color:var(--navy);font-size:15px}
.pay-summary{background:var(--cream);border:1px solid var(--border);border-radius:var(--r-lg);padding:16px 18px;margin-top:16px}
.pay-summary b{color:var(--navy)}
.pay-summary table{width:100%;border-collapse:collapse;font-size:13.5px;margin-top:10px}
.pay-summary th,.pay-summary td{padding:8px 10px;text-align:left;border-bottom:1px solid var(--border)}
.pay-summary th{color:var(--text-muted);font-size:12px;font-weight:700}

/* ── result report card ── */
.result-card{border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;margin-bottom:18px;box-shadow:var(--sh-card)}
.result-card .rh{background:var(--navy);color:#fff;padding:13px 18px;font-weight:800;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px}
.result-card .rh .g{background:var(--gold);color:#fff;border-radius:50px;padding:3px 14px;font-size:13px}
.result-card table{width:100%;border-collapse:collapse;font-size:14px}
.result-card th,.result-card td{padding:10px 14px;text-align:left;border-bottom:1px solid var(--border)}
.result-card th{background:var(--off-white);color:var(--navy);font-size:12px;text-transform:uppercase;letter-spacing:.5px}
.result-card tfoot th{background:var(--cream)}
.grade-badge{display:inline-block;min-width:36px;text-align:center;padding:2px 10px;border-radius:6px;font-weight:800;font-size:13px;color:#fff;background:var(--royal)}
.grade-F{background:var(--red)}.grade-Aplus{background:var(--green)}

/* ── payment status badges ── */
.badge{display:inline-block;padding:3px 12px;border-radius:50px;font-size:11.5px;font-weight:800}
.badge-pending{background:#fef3c7;color:#92400e}
.badge-approved{background:#eaf6ec;color:var(--green)}
.badge-rejected{background:#fdecea;color:var(--red)}

.hidden{display:none!important}


/* ── payment history table ── */
#payHistory table{width:100%;border-collapse:collapse;font-size:13.5px}
#payHistory th,#payHistory td{padding:9px 12px;text-align:left;border-bottom:1px solid var(--border)}
#payHistory th{background:var(--off-white);color:var(--navy);font-size:12px;text-transform:uppercase;letter-spacing:.5px}
#payHistory .badge{white-space:nowrap}

.principal-photo img{width:100%;height:100%;object-fit:cover;border-radius:inherit}

/* ── gallery images (URL-based, lazy-loaded) ── */
.gallery-ph{overflow:hidden}
.gallery-ph img{width:100%;height:100%;object-fit:cover;display:block}
.lightbox-img-wrap .gallery-ph{width:auto;height:auto;max-width:80vw;max-height:75vh}
.lightbox-img-wrap img{max-width:80vw;max-height:75vh;width:auto;height:auto;object-fit:contain;border-radius:var(--r-md)}

/* ── fail-safe: content must never stay hidden if JS/IntersectionObserver fails ── */
@keyframes eduminRevealFallback{to{opacity:1;transform:none}}
.reveal{animation:eduminRevealFallback .01s linear 2s forwards}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none;animation:none}
}

/* ── payment guide (bKash / Nagad) ── */
.pay-guide{border:1px solid var(--border);border-left:4px solid var(--accent);border-radius:var(--r-lg);background:linear-gradient(135deg,rgba(212,160,23,.07),rgba(20,184,166,.03));padding:16px 18px;margin-top:16px}
.pg-head{font-family:var(--font-bn);font-size:14.5px;font-weight:800;color:var(--navy);display:flex;align-items:center;gap:8px;margin-bottom:11px}
.pg-head i{color:var(--accent)}
.pg-numbers{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:13px}
.pg-num{display:flex;align-items:center;gap:9px;background:#fff;border:1px solid var(--border);border-radius:var(--r-md);padding:9px 13px;cursor:pointer;font-family:var(--font-bn);transition:box-shadow .2s,transform .15s}
.pg-num:hover{box-shadow:var(--sh-card);transform:translateY(-1px)}
.pg-brand{font-size:11px;font-weight:800;color:#fff;padding:2px 10px;border-radius:50px;letter-spacing:.2px}
.pg-brand.bkash{background:#e2136e}
.pg-brand.nagad{background:#ec1c24}
.pg-num-v{font-size:15.5px;font-weight:800;color:var(--navy);letter-spacing:.4px}
.pg-num small{font-size:11px;color:var(--text-muted)}
.pg-num i{font-size:12px;color:var(--royal)}
.pg-steps{margin:0 0 0 19px;padding:0;font-family:var(--font-bn);font-size:13.5px;color:var(--text-mid);line-height:1.9}
.pg-steps li{margin-bottom:2px}
.pg-steps b{color:var(--navy)}
.pg-note{margin-top:11px;background:rgba(30,87,153,.06);border:1px solid rgba(30,87,153,.18);border-radius:var(--r-md);padding:10px 13px;font-family:var(--font-bn);font-size:12.5px;color:var(--text-mid);line-height:1.7}
.pg-empty{font-family:var(--font-bn);font-size:12.5px;color:var(--text-muted);background:var(--cream);border:1px dashed var(--border);border-radius:var(--r-md);padding:12px 14px;line-height:1.7}
