@import url('https://fonts.googleapis.com/css2?family=Anek+Bangla:wght@400;500;600;700;800&family=Tiro+Bangla:ital@0;1&family=Hind+Siliguri:wght@400;500;600;700&family=Outfit:wght@400;500;600;700&display=swap');

/* ==========================================================================
   Bengali Digits Override: Use SutonnyMJ ONLY for Bengali numbers (০-৯)
   Unicode Range U+09E6-09EF specifically covers the Bengali digits 0 through 9
   ========================================================================== */
@font-face {
  font-family: 'SutonnyBanglaNumber';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: local('SutonnyMJ'), local('Sutonny MJ'), local('SutonnyOMJ'), local('Sutonny OMJ'), local('Sutonny'), local('Sutonny_MJ'),
       url('../fonts/SutonnyOMJ.ttf') format('truetype');
  unicode-range: U+09E6-09EF;
}
@font-face {
  font-family: 'SutonnyBanglaNumber';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: local('SutonnyMJ'), local('Sutonny MJ'), local('SutonnyOMJ'), local('Sutonny OMJ'), local('Sutonny'), local('Sutonny_MJ'),
       url('../fonts/SutonnyOMJ.ttf') format('truetype');
  unicode-range: U+09E6-09EF;
}
@font-face {
  font-family: 'SutonnyBanglaNumber';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: local('SutonnyMJ Bold'), local('SutonnyMJ'), local('Sutonny MJ'), local('SutonnyOMJ'), local('Sutonny OMJ'), local('Sutonny'), local('Sutonny_MJ'),
       url('../fonts/SutonnyOMJ.ttf') format('truetype');
  unicode-range: U+09E6-09EF;
}
@font-face {
  font-family: 'SutonnyBanglaNumber';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: local('SutonnyMJ Bold'), local('SutonnyMJ'), local('Sutonny MJ'), local('SutonnyOMJ'), local('Sutonny OMJ'), local('Sutonny'), local('Sutonny_MJ'),
       url('../fonts/SutonnyOMJ.ttf') format('truetype');
  unicode-range: U+09E6-09EF;
}
@font-face {
  font-family: 'SutonnyBanglaNumber';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: local('SutonnyMJ Bold'), local('SutonnyMJ'), local('Sutonny MJ'), local('SutonnyOMJ'), local('Sutonny OMJ'), local('Sutonny'), local('Sutonny_MJ'),
       url('../fonts/SutonnyOMJ.ttf') format('truetype');
  unicode-range: U+09E6-09EF;
}

/* Backward-compatible alias for AnekBanglaNumber mapping directly to SutonnyMJ */
@font-face {
  font-family: 'AnekBanglaNumber';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: local('SutonnyMJ'), local('Sutonny MJ'), local('SutonnyOMJ'), local('Sutonny OMJ'), local('Sutonny'), local('Sutonny_MJ'),
       url('../fonts/SutonnyOMJ.ttf') format('truetype');
  unicode-range: U+09E6-09EF;
}
@font-face {
  font-family: 'AnekBanglaNumber';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: local('SutonnyMJ'), local('Sutonny MJ'), local('SutonnyOMJ'), local('Sutonny OMJ'), local('Sutonny'), local('Sutonny_MJ'),
       url('../fonts/SutonnyOMJ.ttf') format('truetype');
  unicode-range: U+09E6-09EF;
}
@font-face {
  font-family: 'AnekBanglaNumber';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: local('SutonnyMJ Bold'), local('SutonnyMJ'), local('Sutonny MJ'), local('SutonnyOMJ'), local('Sutonny OMJ'), local('Sutonny'), local('Sutonny_MJ'),
       url('../fonts/SutonnyOMJ.ttf') format('truetype');
  unicode-range: U+09E6-09EF;
}
@font-face {
  font-family: 'AnekBanglaNumber';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: local('SutonnyMJ Bold'), local('SutonnyMJ'), local('Sutonny MJ'), local('SutonnyOMJ'), local('Sutonny OMJ'), local('Sutonny'), local('Sutonny_MJ'),
       url('../fonts/SutonnyOMJ.ttf') format('truetype');
  unicode-range: U+09E6-09EF;
}
@font-face {
  font-family: 'AnekBanglaNumber';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: local('SutonnyMJ Bold'), local('SutonnyMJ'), local('Sutonny MJ'), local('SutonnyOMJ'), local('Sutonny OMJ'), local('Sutonny'), local('Sutonny_MJ'),
       url('../fonts/SutonnyOMJ.ttf') format('truetype');
  unicode-range: U+09E6-09EF;
}

:root{
  --green-dark:#123c26;
  --green:#1c6b3f;
  --green-light:#e7f0e8;
  --red:#c1272d;
  --navy:#1b3a63;
  --cream:#f8f1dc;
  --gold:#b8862e;
  --gold-vibrant:#f4c430;
  --ink:#1b1b16;
  --ink-soft:#4a4a3f;
  --line:#dcd3b6;
  --white:#ffffff;
  --radius:4px;
  --shadow:0 6px 18px rgba(18,60,38,.12);
  --maxw:1260px;
}

*{box-sizing:border-box}
html{
  scroll-behavior:smooth;
  overflow-x:hidden;
  width:100%;
}
body{
  margin:0;
  overflow-x:hidden;
  width:100%;
  max-width:100%;
  font-family:'SutonnyBanglaNumber','AnekBanglaNumber','Hind Siliguri','Outfit',system-ui,sans-serif;
  color:var(--ink);
  background:var(--white);
  line-height:1.65;
}
h1,h2,h3,h4,.brand-name,.section-title{
  font-family:'SutonnyBanglaNumber','AnekBanglaNumber','Tiro Bangla',Georgia,serif;
  font-weight:400;
  color:var(--green-dark);
  line-height:1.25;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
ul{margin:0;padding:0;list-style:none}
button{font-family:inherit;cursor:pointer}
.container{max-width:var(--maxw);margin:0 auto;padding:0 20px}
:focus-visible{outline:3px solid var(--gold-vibrant);outline-offset:2px}

/* ---------- Top utility bar ---------- */
.topbar{display:none !important;}

/* ---------- Header ---------- */
.site-header{
  background:var(--white);
  position:relative;
  z-index:40;
  border-bottom:1px solid rgba(0,0,0,0.06);
}
.header-inner{
  display:flex;
  align-items:center;
  gap:20px;
  max-width:var(--maxw);
  margin:0 auto;
  padding:14px 20px;
}
.header-inner .logo{
  width:76px;
  height:76px;
  flex-shrink:0;
  border-radius:50%;
  box-shadow:0 4px 14px rgba(18,60,38,0.15);
  border:2px solid #eef3ed;
  background:#ffffff;
}
.header-text{
  flex:1;
  min-width:0;
}
.header-text .school-name-primary{
  font-family:'SutonnyBanglaNumber','AnekBanglaNumber','Tiro Bangla','Hind Siliguri','Outfit',serif;
  font-size:1.44rem;
  font-weight:700;
  color:var(--green-dark);
  margin:0;
  line-height:1.24;
  white-space:normal;
  word-break:normal;
  overflow-wrap:break-word;
  letter-spacing:0.012em;
}
.header-text .school-name-secondary{
  font-family:'SutonnyBanglaNumber','AnekBanglaNumber','Hind Siliguri','Tiro Bangla','Outfit',sans-serif;
  font-size:1.06rem;
  font-weight:600;
  color:var(--green);
  margin:3px 0 0;
  line-height:1.24;
  white-space:normal;
  word-break:normal;
  overflow-wrap:break-word;
  letter-spacing:0.01em;
}
.header-text .school-meta-line{
  font-family:'SutonnyBanglaNumber','AnekBanglaNumber','Hind Siliguri','Outfit',system-ui,sans-serif;
  font-size:0.83rem;
  color:#4a6554;
  margin:5px 0 0;
  line-height:1.35;
  white-space:normal;
  word-break:normal;
  overflow-wrap:break-word;
  font-weight:500;
  letter-spacing:0.015em;
}

/* Backward compatibility classes if needed */
.header-text .school-name-bn{font-family:'AnekBanglaNumber','Tiro Bangla',serif;font-size:1.35rem;color:var(--green-dark);margin:0;line-height:1.3}
.header-text .school-name-en{font-size:.8rem;letter-spacing:.03em;color:var(--ink-soft);margin:2px 0 0}
.header-text .school-address{font-size:.78rem;color:var(--gold);margin:2px 0 0}

/* Menu Language item hidden on desktop with high specificity */
nav.main-nav ul.nav-links li.menu-lang-item,
.menu-lang-item{
  display:none !important;
}

/* Header Sticky Wrapper:
   On laptop & desktop (> 820px), the wrapper sticks with a negative top offset equal
   to the white header height. The white header scrolls away, and the green navigation
   bar sticks permanently at top: 0 for the entire rest of the page!
   On phone/mobile (<= 820px), top is 0!important so the entire header block remains visible.
*/
.header-sticky-wrapper{
  position:-webkit-sticky;
  position:sticky;
  top:var(--header-offset, -105px);
  z-index:1000;
  width:100%;
}

/* ---------- Navigation & Action Bar ---------- */
nav.main-nav{
  background:var(--green-dark);
  position:relative;
  z-index:1001;
  border-top:3.5px solid var(--gold-vibrant);
  border-bottom:1px solid rgba(0,0,0,0.25);
  box-shadow:0 4px 18px rgba(0,0,0,0.28);
}
.nav-container{
  display:flex;
  align-items:stretch;
  justify-content:space-between;
  max-width:var(--maxw);
  margin:0 auto;
  padding:0 20px;
  position:relative;
  min-height:50px;
}
nav.main-nav ul.nav-links{
  display:flex;
  align-items:stretch;
  margin:0;
  padding:0;
  list-style:none;
}
nav.main-nav ul.nav-links li{
  display:flex;
  align-items:stretch;
}
nav.main-nav ul.nav-links a{
  display:flex;
  align-items:center;
  color:#ffffff;
  padding:0 11px;
  font-size:.87rem;
  font-weight:600;
  text-decoration:none;
  transition:all .2s ease;
  white-space:nowrap;
  border-bottom:none;
}
nav.main-nav ul.nav-links a:hover{
  color:#ffd859;
  background:rgba(255,255,255,0.08);
}
nav.main-nav ul.nav-links a.active{
  background:rgba(0,0,0,0.32);
  color:#ffd859;
  font-weight:700;
  box-shadow:inset 0 2px 4px rgba(0,0,0,0.28);
}

/* Nav Actions (Right side: Capsule Language, Apply Online, Log In) */
.nav-actions{
  display:flex;
  align-items:center;
  gap:10px;
  margin-left:auto;
  padding:6px 0;
  flex-shrink:0;
}

/* Capsule Language Switcher */
.lang-capsule{
  background:rgba(0,0,0,0.38);
  border:1px solid rgba(255,255,255,0.24);
  border-radius:24px;
  padding:2px 3px;
  display:inline-flex;
  align-items:center;
  gap:2px;
}
.lang-capsule button{
  background:transparent;
  border:none;
  color:#d6e8dc;
  padding:3px 9px;
  border-radius:18px;
  font-size:0.78rem;
  font-weight:600;
  cursor:pointer;
  transition:all 0.2s ease;
  line-height:1.2;
}
.lang-capsule button.active{
  background:var(--gold);
  color:#0e2a18;
  font-weight:700;
  box-shadow:0 1px 4px rgba(0,0,0,0.3);
}
.lang-capsule button:hover:not(.active){
  color:#ffffff;
  background:rgba(255,255,255,0.08);
}

/* Apply Online Button (Pill Shape) */
.btn-apply-online,
.btn-online-admission{
  background:var(--gold-vibrant);
  color:#0e2a18 !important;
  font-weight:700;
  font-size:0.84rem;
  padding:6px 15px;
  border-radius:22px;
  display:inline-flex;
  align-items:center;
  gap:6px;
  text-decoration:none;
  transition:all 0.2s ease;
  white-space:nowrap;
  box-shadow:0 2px 8px rgba(244,196,48,0.3);
  border:none;
  line-height:1.2;
}
.btn-apply-online:hover,
.btn-online-admission:hover{
  background:#ffd54f;
  box-shadow:0 4px 14px rgba(244,196,48,0.5);
  transform:translateY(-1px);
}

/* Log In Button (Pill Shape Outline) */
.btn-nav-login{
  background:rgba(255,255,255,0.08);
  border:1.5px solid rgba(255,255,255,0.42);
  color:#ffffff !important;
  font-weight:600;
  font-size:0.84rem;
  padding:6px 14px;
  border-radius:22px;
  display:inline-flex;
  align-items:center;
  gap:6px;
  text-decoration:none;
  transition:all 0.2s ease;
  white-space:nowrap;
  cursor:pointer;
  line-height:1.2;
  box-shadow:none;
}
.btn-nav-login:hover{
  background:rgba(255,255,255,0.2);
  border-color:#ffffff;
  transform:translateY(-1px);
  box-shadow:0 4px 12px rgba(0,0,0,0.25);
}
.btn-apply-online .btn-icon,
.btn-nav-login .btn-icon,
.nav-action-btn .btn-icon{
  font-size:0.92rem;
  display:inline-flex;
  align-items:center;
  line-height:1;
}

/* Mobile menu toggle */
.menu-toggle{
  display:none;
  align-items:center;
  gap:6px;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.25);
  border-radius:4px;
  padding:6px 12px;
  color:#f2efdf;
  font-size:0.88rem;
  font-weight:600;
  cursor:pointer;
  transition:all .2s ease;
}
.menu-toggle:hover,.menu-toggle.active{
  background:var(--green);
  border-color:var(--red);
  color:#ffffff;
}
.menu-toggle .toggle-icon{
  font-size:1.15rem;
  line-height:1;
}

/* ---------- Hero Section (Modern Academic Campus Showcase) ---------- */
.hero{
  position:relative;
  overflow:hidden;
  color:#f8f6ed;
  background:linear-gradient(135deg, rgba(8, 30, 18, 0.94) 0%, rgba(14, 46, 29, 0.88) 50%, rgba(8, 30, 18, 0.93) 100%), url('../images/campus-hero.jpg') center center / cover no-repeat;
  border-bottom:1px solid rgba(0,0,0,0.2);
}
.hero::after{
  content:'';
  position:absolute;
  inset:0;
  background:radial-gradient(circle at 82% 24%, rgba(244,196,48,0.12) 0%, transparent 65%);
  pointer-events:none;
}
.hero .container{
  display:grid;
  grid-template-columns:1.22fr 0.78fr;
  gap:44px;
  align-items:center;
  padding:54px 20px 60px;
  position:relative;
  z-index:2;
}

/* Left Column: School Identity, Headings & CTAs */
.hero-content{
  position:relative;
  z-index:2;
}
.hero-trust-badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  background:rgba(255,255,255,0.1);
  border:1px solid rgba(244,196,48,0.42);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  padding:6px 14px;
  border-radius:22px;
  font-size:0.84rem;
  font-weight:600;
  color:#fff9e6;
  margin-bottom:16px;
  box-shadow:0 3px 10px rgba(0,0,0,0.18);
  letter-spacing:0.015em;
}
.hero h1{
  font-family:'AnekBanglaNumber','Tiro Bangla','Hind Siliguri','Outfit',serif;
  font-size:clamp(1.9rem, 3.4vw, 2.65rem);
  font-weight:700;
  color:#ffffff;
  margin:0 0 10px;
  line-height:1.22;
  text-shadow:0 2px 8px rgba(0,0,0,0.45);
  letter-spacing:0.01em;
}
.hero .motto{
  color:#ffd859;
  font-size:1.1rem;
  margin:0 0 14px;
  font-style:italic;
  font-weight:500;
  text-shadow:0 1px 4px rgba(0,0,0,0.3);
  line-height:1.4;
}
.hero .hero-lead{
  color:#e4efe7;
  font-size:0.96rem;
  max-width:560px;
  line-height:1.65;
  margin:0 0 24px;
}
.hero-ctas{
  display:flex;
  gap:14px;
  flex-wrap:wrap;
  margin-bottom:20px;
  align-items:center;
}
.btn-hero-primary{
  background:linear-gradient(135deg, #f4c430 0%, #dfa212 100%);
  color:#0b2514 !important;
  font-weight:700;
  font-size:0.95rem;
  padding:12px 26px;
  border-radius:26px;
  display:inline-flex;
  align-items:center;
  gap:8px;
  text-decoration:none;
  box-shadow:0 4px 16px rgba(244,196,48,0.35);
  transition:all 0.25s cubic-bezier(0.34, 1.56, 0.64, 1);
  border:none;
}
.btn-hero-primary:hover{
  transform:translateY(-2px);
  background:linear-gradient(135deg, #ffd752 0%, #f4c430 100%);
  box-shadow:0 6px 22px rgba(244,196,48,0.55);
}
.btn-hero-outline{
  background:rgba(255,255,255,0.08);
  color:#ffffff !important;
  border:1.5px solid rgba(255,255,255,0.45);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
  font-weight:600;
  font-size:0.95rem;
  padding:11px 24px;
  border-radius:26px;
  display:inline-flex;
  align-items:center;
  gap:8px;
  text-decoration:none;
  transition:all 0.2s ease;
}
.btn-hero-outline:hover{
  background:rgba(255,255,255,0.2);
  border-color:#ffffff;
  transform:translateY(-2px);
  box-shadow:0 4px 14px rgba(0,0,0,0.25);
}
.hero-feature-tags{
  display:flex;
  gap:16px;
  flex-wrap:wrap;
  font-size:0.84rem;
  color:#d4e5d8;
}
.hero-feature-tags span{
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.hero-feature-tags .tag-check{
  color:#f4c430;
  font-weight:bold;
}

/* Right Column: Glassmorphic Academic Showcase Card */
.hero-academic-card{
  background:rgba(12, 42, 26, 0.72);
  border:1.5px solid rgba(255,255,255,0.22);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border-radius:16px;
  padding:26px 22px;
  box-shadow:0 16px 36px rgba(0,0,0,0.36);
  position:relative;
  overflow:hidden;
}
.hero-academic-card::before{
  content:'';
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:4px;
  background:linear-gradient(90deg, var(--gold-vibrant), var(--red));
}
.hero-card-head{
  display:flex;
  align-items:center;
  gap:16px;
  margin-bottom:18px;
  padding-bottom:14px;
  border-bottom:1px solid rgba(255,255,255,0.12);
}
.hero-card-head .card-logo{
  width:64px;
  height:64px;
  border-radius:50%;
  box-shadow:0 4px 12px rgba(0,0,0,0.25);
  border:2px solid var(--gold-vibrant);
  background:#ffffff;
  flex-shrink:0;
}
.hero-status-pill{
  display:inline-flex;
  align-items:center;
  gap:7px;
  background:rgba(46,204,113,0.18);
  border:1px solid rgba(46,204,113,0.45);
  color:#a9dfbf;
  font-size:0.77rem;
  font-weight:700;
  padding:4px 12px;
  border-radius:14px;
  letter-spacing:0.02em;
}
.pulse-dot{
  width:8px;
  height:8px;
  border-radius:50%;
  background:#2ecc71;
  box-shadow:0 0 0 0 rgba(46,204,113,0.7);
  animation:pulseGreen 2s infinite;
}
@keyframes pulseGreen{
  0%{box-shadow:0 0 0 0 rgba(46,204,113,0.7);}
  70%{box-shadow:0 0 0 8px rgba(46,204,113,0);}
  100%{box-shadow:0 0 0 0 rgba(46,204,113,0);}
}
.hero-card-highlights{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.hero-card-item{
  display:flex;
  align-items:flex-start;
  gap:12px;
  padding:10px 12px;
  background:rgba(255,255,255,0.05);
  border-radius:8px;
  border:1px solid rgba(255,255,255,0.08);
  transition:background 0.2s ease, transform 0.2s ease;
}
.hero-card-item:hover{
  background:rgba(255,255,255,0.09);
  transform:translateX(3px);
}
.hero-card-icon{
  font-size:1.25rem;
  line-height:1;
  flex-shrink:0;
  margin-top:2px;
}
.hero-card-item h4{
  margin:0;
  font-size:0.92rem;
  color:#ffffff;
  font-weight:600;
  font-family:'AnekBanglaNumber','Hind Siliguri','Outfit',sans-serif;
}
.hero-card-item p{
  margin:2px 0 0;
  font-size:0.8rem;
  color:#bdd5c4;
  line-height:1.35;
}

/* ---------- Announcement Notice Ticker Bar ---------- */
.hero-notice-ticker{
  background:#092617;
  border-top:1px solid rgba(255,255,255,0.12);
  border-bottom:2.5px solid var(--gold-vibrant);
  color:#f5f2e6;
  position:relative;
  z-index:10;
}
.hero-notice-ticker .container{
  display:flex;
  align-items:center;
  gap:16px;
  padding:10px 20px;
  font-size:0.88rem;
}
.ticker-badge{
  background:var(--red);
  color:#ffffff;
  font-weight:700;
  font-size:0.78rem;
  padding:4px 12px;
  border-radius:4px;
  display:inline-flex;
  align-items:center;
  gap:6px;
  flex-shrink:0;
  letter-spacing:0.02em;
  box-shadow:0 2px 6px rgba(193,39,45,0.3);
}
.ticker-content{
  flex:1;
  min-width:0;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  color:#e4efe7;
  font-weight:500;
}
.ticker-link{
  color:var(--gold-vibrant);
  font-weight:700;
  text-decoration:none;
  flex-shrink:0;
  white-space:nowrap;
  transition:color 0.2s ease;
  font-size:0.84rem;
}
.ticker-link:hover{
  color:#ffffff;
  text-decoration:underline;
}

/* ---------- Buttons ---------- */
.btn{
  display:inline-block;padding:11px 22px;border-radius:2px;font-weight:600;font-size:.92rem;
  border:2px solid transparent;transition:.2s;
}
.btn-primary{background:var(--red);color:#fff;border-color:var(--red)}
.btn-primary:hover{background:#a01f24}
.btn-outline{background:transparent;color:var(--cream);border-color:var(--cream)}
.btn-outline:hover{background:var(--cream);color:var(--green-dark)}
.btn-green{background:var(--green);color:#fff;border-color:var(--green)}
.btn-green:hover{background:var(--green-dark)}
.btn-block{display:block;width:100%;text-align:center}

/* ---------- Sections ---------- */
section{padding:52px 0}
section.alt{background:var(--green-light)}
.section-head{margin-bottom:30px;text-align:left}
.section-head .eyebrow-line{width:56px;height:4px;background:var(--red);margin-bottom:10px}
.section-title{font-size:1.7rem;margin:0 0 6px}
.section-sub{color:var(--ink-soft);max-width:640px}

/* ---------- Stats strip ---------- */
.stats-strip{background:var(--cream);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.stats-strip .container{display:flex;flex-wrap:wrap;justify-content:space-around;padding:26px 20px;gap:20px;max-width:600px;margin:0 auto;}
.stat{text-align:center;flex:1;min-width:140px}
.stat .num{font-family:'SutonnyBanglaNumber','AnekBanglaNumber','Tiro Bangla',serif;font-size:2rem;color:var(--green-dark);display:block}
.stat .label{font-size:.88rem;color:var(--ink-soft)}

/* ---------- Cards & Homepage Portals Grid ---------- */
.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.card{
  background:#fff;border:1px solid var(--line);border-top:4px solid var(--green);
  padding:24px;box-shadow:var(--shadow);border-radius:6px;
}
.card .icon{font-size:1.8rem;margin-bottom:10px}
.card h3{margin:0 0 8px;font-size:1.1rem}
.card p{margin:0 0 12px;color:var(--ink-soft);font-size:.92rem}

/* ---------- Home: Portals & Page Preview Grid ---------- */
.portal-card-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  margin-top: 10px;
}
.portal-card {
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 24px 20px;
  box-shadow: 0 4px 14px rgba(0,0,0,0.05);
  display: flex;
  flex-direction: column;
  transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  position: relative;
  overflow: hidden;
}
.portal-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--green-dark), var(--gold-vibrant));
  transition: height 0.2s ease;
}
.portal-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 10px 24px rgba(18,60,38,0.12);
  border-color: #bcd0bf;
}
.portal-card:hover::before {
  height: 6px;
}
.portal-card-icon {
  width: 52px;
  height: 52px;
  border-radius: 12px;
  background: #eef5f0;
  color: var(--green-dark);
  font-size: 1.6rem;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 14px;
  border: 1px solid #d2e4d6;
  transition: all 0.25s ease;
}
.portal-card:hover .portal-card-icon {
  background: var(--green-dark);
  color: #ffffff;
  transform: scale(1.05);
}
.portal-card h3 {
  margin: 0 0 8px;
  font-size: 1.15rem;
  color: var(--green-dark);
  font-weight: 700;
}
.portal-card p {
  margin: 0 0 18px;
  color: var(--ink-soft);
  font-size: 0.88rem;
  line-height: 1.5;
  flex-grow: 1;
}
.portal-card-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--green-dark);
  font-weight: 700;
  font-size: 0.88rem;
  text-decoration: none;
  transition: all 0.2s ease;
  margin-top: auto;
}
.portal-card-btn:hover {
  color: var(--red);
  transform: translateX(4px);
}

/* Home About Us & Campus Facilities Preview */
.home-about-preview {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 32px;
  align-items: center;
}
.about-preview-card {
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 30px 28px;
  box-shadow: var(--shadow);
}
.about-preview-pills {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin: 16px 0 20px;
}
.about-pill {
  background: #f0f7f2;
  color: var(--green-dark);
  border: 1px solid #c9decb;
  border-radius: 16px;
  padding: 3px 12px;
  font-size: 0.78rem;
  font-weight: 600;
}
.facility-mini-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
.facility-mini-card {
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 16px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.04);
  transition: all 0.2s ease;
}
.facility-mini-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(0,0,0,0.08);
  border-color: var(--green);
}
.facility-mini-card .fac-icon {
  font-size: 1.5rem;
  margin-bottom: 8px;
  display: block;
}
.facility-mini-card h4 {
  margin: 0 0 4px;
  font-size: 0.95rem;
  color: var(--ink);
}
.facility-mini-card p {
  margin: 0;
  font-size: 0.80rem;
  color: var(--ink-soft);
  line-height: 1.35;
}

/* Home Faculty & Committee Split Showcase */
.team-preview-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 30px;
}
.team-preview-col {
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 24px;
  box-shadow: var(--shadow);
}
.team-mini-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin: 16px 0 20px;
}
.team-mini-card {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 10px 14px;
  border: 1px solid #edf1ee;
  border-radius: 6px;
  background: #fbfdfb;
  transition: all 0.2s ease;
}
.team-mini-card:hover {
  background: #f1f8f3;
  border-color: #c0dbc4;
  transform: translateX(3px);
}
.team-mini-avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--green-dark);
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.05rem;
  font-weight: 700;
  flex-shrink: 0;
  border: 1.5px solid var(--gold);
}
.team-mini-info h4 {
  margin: 0 0 2px;
  font-size: 0.95rem;
  color: var(--ink);
}
.team-mini-info .designation {
  font-size: 0.80rem;
  color: var(--red);
  font-weight: 600;
  margin-right: 6px;
}
.team-mini-info .extra {
  font-size: 0.76rem;
  color: var(--ink-soft);
}

/* Home Gallery Preview Grid */
.home-gallery-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 24px;
}
.home-gallery-card {
  position: relative;
  border-radius: 8px;
  overflow: hidden;
  aspect-ratio: 4/3;
  background: linear-gradient(135deg, #123c26 0%, #1e5a39 50%, #2f4034 100%);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: #ffffff;
  text-decoration: none;
  box-shadow: var(--shadow);
  transition: all 0.3s ease;
  border: 1px solid rgba(255,255,255,0.15);
}
.home-gallery-card:hover {
  transform: translateY(-4px) scale(1.02);
  box-shadow: 0 10px 25px rgba(18,60,38,0.25);
  border-color: var(--gold);
}
.home-gallery-icon {
  font-size: 2.4rem;
  margin-bottom: 8px;
  transition: transform 0.3s ease;
}
.home-gallery-card:hover .home-gallery-icon {
  transform: scale(1.15);
}
.home-gallery-caption {
  font-size: 0.88rem;
  font-weight: 600;
  text-align: center;
  padding: 0 10px;
  text-shadow: 0 1px 3px rgba(0,0,0,0.5);
}

/* Responsive adjustments for homepage previews */
@media (max-width: 992px) {
  .portal-card-grid { grid-template-columns: repeat(2, 1fr); }
  .home-about-preview { grid-template-columns: 1fr; }
  .team-preview-split { grid-template-columns: 1fr; }
  .home-gallery-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
  .portal-card-grid { grid-template-columns: 1fr; }
  .facility-mini-grid { grid-template-columns: 1fr; }
  .home-gallery-grid { grid-template-columns: 1fr; }
}

/* ---------- Notice list ---------- */
.notice-list{border:1px solid var(--line)}
.notice-item{
  display:flex;gap:16px;align-items:flex-start;padding:16px 18px;border-bottom:1px solid var(--line);
  background:#fff;
}
.notice-item:last-child{border-bottom:none}
.notice-date{
  background:var(--green-dark);color:#fff;text-align:center;border-radius:4px;
  min-width:58px;padding:6px 4px;flex-shrink:0;
}
.notice-date .d{font-size:1.2rem;font-weight:700;display:block;line-height:1}
.notice-date .m{font-size:.7rem;text-transform:uppercase}
.notice-body h4{margin:0 0 4px;font-size:1rem;color:var(--ink)}
.notice-body p{margin:0;color:var(--ink-soft);font-size:.88rem}
.tag{
  display:inline-block;font-size:.72rem;padding:2px 9px;border-radius:12px;margin-top:6px;
  background:var(--green-light);color:var(--green-dark);border:1px solid var(--green);
}
.tag.red{background:#fbe6e6;color:var(--red);border-color:var(--red)}
.notice-actions{margin-left:auto;flex-shrink:0}
.filter-bar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}
.filter-bar button{
  border:1px solid var(--green);background:#fff;color:var(--green-dark);padding:6px 14px;border-radius:20px;font-size:.85rem;
}
.filter-bar button.active{background:var(--green);color:#fff}

/* ---------- Quote / welcome ---------- */
.welcome-box{display:grid;grid-template-columns:160px 1fr;gap:26px;align-items:center;background:#fff;border:1px solid var(--line);padding:26px;box-shadow:var(--shadow)}
.avatar-circle{
  width:140px;height:140px;border-radius:50%;background:var(--navy);color:#fff;
  display:flex;align-items:center;justify-content:center;font-family:'AnekBanglaNumber','Tiro Bangla',serif;
  font-size:2.1rem;border:4px solid var(--gold);
}
.welcome-box blockquote{margin:0 0 10px;font-style:italic;color:var(--ink)}
.welcome-box cite{font-style:normal;font-weight:600;color:var(--green-dark);display:block}
.welcome-box .role{font-size:.85rem;color:var(--ink-soft)}

/* ---------- Forms ---------- */
.form-panel{background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);padding:30px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 20px}
.form-grid .full{grid-column:1/-1}
.form-grid .col-start-1{grid-column-start:1}
.desktop-only-spacer{display:block}
@media (max-width: 768px){
  .desktop-only-spacer{display:none !important}
}
.field label{display:block;font-size:.85rem;font-weight:600;color:var(--ink);margin-bottom:6px}
.field .req{color:var(--red)}
.field input,.field select,.field textarea{
  width:100%;padding:10px 12px;border:1px solid #c7bfa0;border-radius:3px;font-family:inherit;font-size:.95rem;background:#fffdf7;
}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--green);outline:none;background:#ffffff}
.field small{color:var(--ink-soft);font-size:.78rem;margin-top:3px;display:block}
.form-note{background:var(--green-light);border-left:4px solid var(--green);padding:12px 16px;font-size:.88rem;margin-bottom:22px}

/* Enhanced Admission Form Sections */
.form-section-head {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  background: linear-gradient(90deg, var(--green-light) 0%, #ffffff 100%);
  border-left: 4px solid var(--green);
  border-radius: 4px;
  margin-top: 10px;
}
.form-section-head .section-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--green-dark);
  color: #ffffff;
  font-weight: 700;
  font-size: 0.88rem;
  flex-shrink: 0;
}
.form-section-head h3 {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--green-dark);
  font-family: 'AnekBanglaNumber', 'Hind Siliguri', sans-serif;
}

/* Photo Upload Field */
.photo-upload-container {
  display: flex;
  align-items: center;
  gap: 22px;
  background: #fdfbf7;
  border: 2px dashed #cfc5a6;
  border-radius: 8px;
  padding: 18px;
  transition: border-color 0.2s, background 0.2s;
}
.photo-upload-container:hover, .photo-upload-container.dragover {
  border-color: var(--green);
  background: #f7faf7;
}
.photo-preview-wrapper {
  position: relative;
  flex-shrink: 0;
}
.photo-preview-box {
  width: 110px;
  height: 135px;
  border: 2px solid #b5a985;
  border-radius: 6px;
  background: #f1ebd8;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  box-shadow: 0 4px 10px rgba(0,0,0,0.08);
}
.photo-preview-box img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.photo-placeholder-icon {
  font-size: 2.2rem;
  line-height: 1;
  color: #8c8266;
  margin-bottom: 4px;
}
.photo-placeholder-text {
  font-size: 0.72rem;
  color: #7d7358;
  text-align: center;
  padding: 0 4px;
  font-weight: 500;
}
.photo-remove-btn {
  position: absolute;
  top: -8px;
  right: -8px;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: var(--red);
  color: #ffffff;
  border: 2px solid #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem;
  font-weight: bold;
  cursor: pointer;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  transition: transform 0.2s;
}
.photo-remove-btn:hover {
  transform: scale(1.15);
}
.photo-upload-actions {
  flex: 1;
}
.btn-select-photo {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--green-dark);
  color: #ffffff;
  padding: 10px 18px;
  border-radius: 6px;
  font-weight: 600;
  font-size: 0.92rem;
  cursor: pointer;
  box-shadow: 0 3px 8px rgba(18,60,38,0.2);
  transition: background 0.2s, transform 0.1s;
}
.btn-select-photo:hover {
  background: var(--green);
  transform: translateY(-1px);
}
.photo-hint {
  margin: 8px 0 4px;
  font-size: 0.8rem;
  color: var(--ink-soft);
}
.photo-file-name {
  font-size: 0.78rem;
  color: var(--green);
  font-weight: 600;
}

/* Checkbox style */
.address-copy-row {
  margin: -4px 0 4px;
}
.checkbox-container {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  font-size: 0.92rem;
  color: var(--green-dark);
  font-weight: 600;
  user-select: none;
}
.checkbox-container input {
  width: 18px;
  height: 18px;
  cursor: pointer;
  accent-color: var(--green);
}

.btn-submit-main {
  font-size: 1.1rem;
  padding: 14px 24px;
  background: linear-gradient(135deg, var(--red) 0%, #9e181d 100%);
  box-shadow: 0 6px 16px rgba(193,39,45,0.3);
  letter-spacing: 0.01em;
}
.btn-submit-main:hover {
  box-shadow: 0 8px 20px rgba(193,39,45,0.45);
}

/* Success Box & Actions */
.success-box {
  background: #ffffff;
  border: 2px solid var(--green);
  border-radius: 8px;
  padding: 32px 24px;
  text-align: center;
  display: none;
  box-shadow: 0 12px 30px rgba(18,60,38,0.12);
  margin-top: 10px;
}
.success-box.show {
  display: block;
  animation: slideUp 0.3s ease-out;
}
.success-icon-wrap {
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background: #eaf6ec;
  border: 3px solid var(--green);
  color: var(--green);
  font-size: 2rem;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 16px;
  font-weight: bold;
}
.app-id-card {
  background: #fdfbee;
  border: 2px dashed var(--gold);
  border-radius: 8px;
  padding: 14px 20px;
  max-width: 420px;
  margin: 18px auto 24px;
}
.app-id-label {
  display: block;
  font-size: 0.85rem;
  color: var(--ink-soft);
  margin-bottom: 4px;
}
.app-id-card .app-id {
  font-family: 'AnekBanglaNumber', 'Outfit', 'Tiro Bangla', monospace;
  font-size: 1.6rem;
  font-weight: 700;
  color: var(--green-dark);
  letter-spacing: 0.05em;
  margin: 0;
  padding: 0;
  background: transparent;
  border: none;
}
.success-actions-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  max-width: 680px;
  margin: 0 auto 24px;
}
.success-actions-grid.four-buttons {
  grid-template-columns: repeat(4, 1fr);
  max-width: 820px;
}
@media (max-width: 860px) {
  .success-actions-grid.four-buttons {
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
  }
}
@media (max-width: 520px) {
  .success-actions-grid,
  .success-actions-grid.four-buttons {
    grid-template-columns: 1fr;
    gap: 10px;
  }
}
.btn-success-action {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 13px 16px;
  border-radius: 6px;
  font-weight: 700;
  font-size: 0.95rem;
  border: 2px solid transparent;
  cursor: pointer;
  transition: all 0.2s ease;
  box-shadow: 0 3px 8px rgba(0,0,0,0.1);
  text-decoration: none;
  white-space: nowrap;
}
.btn-print-action {
  background: var(--green);
  color: #ffffff;
  border-color: var(--green);
}
.btn-print-action:hover {
  background: var(--green-dark);
  border-color: var(--green-dark);
  transform: translateY(-2px);
  box-shadow: 0 6px 14px rgba(18,60,38,0.25);
}
.btn-edit-action {
  background: #fff8e1;
  color: #92580a;
  border-color: #f3c467;
}
.btn-edit-action:hover {
  background: #faecbe;
  color: #724203;
  border-color: #e2a832;
  transform: translateY(-2px);
  box-shadow: 0 6px 14px rgba(146,88,10,0.2);
}
.btn-preview-action {
  background: #ffffff;
  color: var(--green-dark);
  border-color: var(--green);
}
.btn-preview-action:hover {
  background: var(--green-light);
  transform: translateY(-2px);
}
.btn-new-action {
  background: #f7f5ec;
  color: var(--ink-soft);
  border-color: #d1c8ac;
}
.btn-new-action:hover {
  background: #eae4d1;
  color: var(--ink);
  transform: translateY(-2px);
}
.admission-next-steps {
  background: #f2f7f3;
  border-left: 4px solid var(--green);
  padding: 14px 18px;
  border-radius: 0 6px 6px 0;
  text-align: left;
  max-width: 640px;
  margin: 0 auto;
}
.admission-next-steps h4 {
  margin: 0 0 6px;
  font-size: 0.96rem;
  color: var(--green-dark);
  font-family: 'AnekBanglaNumber', 'Hind Siliguri', sans-serif;
}

/* Editing Mode Banner */
.editing-notice-banner {
  background: #fff8e1;
  border: 1.5px solid #f9a825;
  border-radius: 6px;
  padding: 10px 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 8px;
  animation: fadeIn 0.3s ease;
}
.edit-banner-content {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 0.9rem;
  color: #795548;
}
.edit-banner-icon {
  font-size: 1.2rem;
}

/* Guardian Quick Helper Row */
.guardian-helper-row {
  background: #f4faf6;
  border: 1px dashed var(--green);
  border-radius: 6px;
  padding: 8px 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px;
}
.guardian-helper-title {
  font-size: 0.86rem;
  color: var(--green-dark);
  font-weight: 600;
}
.guardian-quick-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.guardian-quick-actions .btn-ghost {
  font-size: 0.8rem;
  padding: 4px 10px;
  border: 1px solid var(--green);
  background: #ffffff;
  color: var(--green-dark);
  border-radius: 4px;
  cursor: pointer;
}
.guardian-quick-actions .btn-ghost:hover {
  background: var(--green-light);
}

.admission-printable-wrapper {
  margin-top: 28px;
  width: 100%;
  box-sizing: border-box;
}
.printable-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: var(--green-dark);
  color: #ffffff;
  padding: 10px 16px;
  border-radius: 6px 6px 0 0;
  font-weight: 600;
  font-size: 0.92rem;
  max-width: 800px;
  margin: 0 auto;
  box-sizing: border-box;
}
.printable-toolbar-buttons {
  display: flex;
  gap: 8px;
}
.btn-gold {
  background: var(--gold);
  color: var(--ink);
  border: 1px solid #d49f12;
  font-weight: 700;
}
.btn-gold:hover {
  background: #f7b71d;
}
.btn-sm {
  padding: 6px 12px;
  font-size: 0.84rem;
  border-radius: 4px;
}

/* Admission Sheet Viewport for smooth touch-scrolling on mobile */
.admission-sheet-viewport {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  padding: 0 0 16px;
  box-sizing: border-box;
}

/* The Paper Sheet (Single A4 Page Precision Fit) */
.admission-sheet {
  background: #ffffff;
  border: 1px solid #d4cbb3;
  border-top: none;
  box-shadow: 0 10px 30px rgba(0,0,0,0.15);
  padding: 16px 20px;
  width: 800px;
  min-width: 800px;
  max-width: 800px;
  margin: 0 auto;
  color: #1a1a1a;
  font-family: 'SutonnyBanglaNumber', 'AnekBanglaNumber', 'Hind Siliguri', 'Tiro Bangla', sans-serif;
  line-height: 1.36;
  box-sizing: border-box;
  transform-origin: top center;
  transition: transform 0.25s ease;
}
.sheet-frame {
  border: 1.5px solid var(--green-dark);
  outline: 1px solid var(--green-dark);
  outline-offset: 2px;
  padding: 14px 18px;
  background: #ffffff;
  page-break-inside: avoid !important;
  break-inside: avoid !important;
}
.sheet-header {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
  border-bottom: 2px solid var(--green-dark);
  padding-bottom: 8px;
  margin-bottom: 8px;
}
.sheet-logo-wrap {
  width: 96px;
  flex-shrink: 0;
  text-align: center;
  order: 1 !important;
}
.sheet-logo {
  width: 88px;
  height: 88px;
  border-radius: 50%;
  border: 1.5px solid var(--green-dark);
  display: block;
  margin: 0 auto;
  object-fit: contain;
}
.sheet-title-wrap {
  flex: 1;
  text-align: center;
  order: 2 !important;
}
.sheet-school-primary {
  font-family: 'AnekBanglaNumber', 'Tiro Bangla', serif;
  font-size: 1.3rem;
  font-weight: 700;
  color: var(--green-dark);
  margin: 0;
  line-height: 1.25;
}
.sheet-school-secondary {
  font-size: 0.92rem;
  font-weight: 600;
  color: var(--navy);
  margin: 2px 0 0;
}
.sheet-school-meta {
  font-size: 0.8rem;
  color: #3b3b3b;
  margin: 3px 0 0;
}
.sheet-school-codes {
  font-size: 0.76rem;
  color: #4a4a4a;
  font-weight: 600;
  margin: 2px 0 0;
}
.sheet-form-badge {
  display: inline-block;
  background: var(--green-dark);
  color: #ffffff;
  padding: 3px 14px;
  border-radius: 12px;
  font-size: 0.84rem;
  font-weight: 700;
  margin-top: 5px;
  letter-spacing: 0.02em;
}
.sheet-photo-wrap {
  width: 96px;
  flex-shrink: 0;
  text-align: center;
  order: 3 !important;
}
.sheet-photo-frame {
  width: 90px;
  height: 112px;
  border: 1.5px solid #222222;
  background: #faf8f2;
  margin: 0 auto;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.sheet-student-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.sheet-photo-placeholder {
  font-size: 0.75rem;
  color: #777777;
  text-align: center;
  line-height: 1.3;
}
.sheet-photo-caption {
  font-size: 0.72rem;
  color: #555555;
  margin-top: 3px;
}

/* Meta Strip */
.sheet-meta-strip {
  display: flex;
  justify-content: space-between;
  background: #f2f7f3;
  border: 1px solid #c7dcce;
  padding: 6px 14px;
  font-size: 0.86rem;
  margin-bottom: 8px;
}
.sheet-meta-strip .meta-lbl {
  color: #444444;
}
.sheet-meta-strip .meta-val {
  color: var(--green-dark);
}

/* Sheet Section Header */
.sheet-section-title {
  background: var(--green-dark);
  color: #ffffff;
  font-size: 0.86rem;
  font-weight: 700;
  padding: 4px 12px;
  margin: 7px 0 4px;
  border-radius: 2px;
  letter-spacing: 0.02em;
}

/* Sheet Table */
.sheet-table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 6px;
  font-size: 0.84rem;
}
.sheet-table td {
  border: 1px solid #c8bfab;
  padding: 5.5px 8px;
  vertical-align: middle;
  line-height: 1.35;
}
.sheet-table .td-lbl {
  background: #fbf9f2;
  font-weight: 600;
  color: #333333;
}
.sheet-table .td-val {
  background: #ffffff;
  color: #111111;
}

/* Checklist */
.sheet-checklist-box {
  border: 1px solid #c8bfab;
  background: #fafaf7;
  padding: 6px 12px;
  margin: 6px 0;
  font-size: 0.78rem;
}
.checklist-head {
  font-weight: 700;
  color: var(--green-dark);
  margin-bottom: 3px;
}
.checklist-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3px 12px;
}
.chk-item {
  color: #444444;
}
.chk-item span {
  font-family: monospace;
  font-weight: bold;
}

/* Declaration */
.sheet-declaration {
  margin: 6px 0 10px;
  font-size: 0.76rem;
  color: #2b2b2b;
  line-height: 1.35;
  border-left: 2.5px solid var(--green);
  padding-left: 8px;
}

/* Signatures */
.sheet-signatures {
  display: flex;
  justify-content: space-between;
  margin-top: 34px;
  margin-bottom: 6px;
  padding: 0 10px;
}
.sig-block {
  text-align: center;
  width: 28%;
}
.sig-line {
  border-top: 1.2px dashed #444444;
  margin-bottom: 4px;
}
.sig-text {
  font-size: 0.80rem;
  font-weight: 600;
  color: #222222;
}

/* Perforation Divider */
.sheet-perforation {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 8px 0 6px;
  color: #666666;
  font-size: 0.76rem;
  border-top: 1.2px dashed #888888;
  padding-top: 4px;
}
.sheet-perforation .cut-icon {
  font-size: 0.95rem;
}
.sheet-perforation .cut-text {
  flex: 1;
  text-align: center;
  font-weight: 600;
}

/* Counterfoil / Receipt */
.sheet-receipt {
  border: 1.2px solid var(--green-dark);
  padding: 6px 12px;
  background: #fbfdfb;
}
.receipt-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 1px solid #c7dcce;
  padding-bottom: 3px;
  margin-bottom: 5px;
}
.receipt-school {
  font-family: 'AnekBanglaNumber', 'Tiro Bangla', serif;
  font-weight: 700;
  font-size: 0.92rem;
  color: var(--green-dark);
}
.receipt-title {
  font-size: 0.80rem;
  font-weight: 600;
  color: var(--navy);
}
.receipt-grid {
  display: grid;
  grid-template-columns: 1.2fr 1.5fr 1fr;
  gap: 3px 10px;
  font-size: 0.78rem;
}

/* Responsive adjustment for Mobile */
@media (max-width: 768px) {
  .photo-upload-container {
    flex-direction: column;
    text-align: center;
  }
  .photo-upload-actions {
    display: flex;
    flex-direction: column;
    align-items: center;
  }
  .checklist-grid {
    grid-template-columns: 1fr;
  }
  .receipt-grid {
    grid-template-columns: 1fr;
  }
}

/* ---------- Steps (admission process) ---------- */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.step{background:#fff;border:1px solid var(--line);padding:20px;position:relative;border-top:4px solid var(--gold)}
.step .num{
  width:34px;height:34px;border-radius:50%;background:var(--green-dark);color:#fff;
  display:flex;align-items:center;justify-content:center;font-weight:700;margin-bottom:10px;
}

/* ---------- Table ---------- */
table.data-table{width:100%;border-collapse:collapse;background:#fff}
table.data-table th,table.data-table td{border:1px solid var(--line);padding:10px 12px;text-align:left;font-size:.92rem}
table.data-table th{background:var(--green-dark);color:#fff;font-weight:600}
table.data-table tr:nth-child(even){background:#faf7ec}

/* ---------- Result card ---------- */
/* ---------- Result Sheet & A4 Marksheet Card ---------- */
#result-output {
  display: none;
  margin-top: 20px;
}
#result-output.show {
  display: block;
  animation: fadeInScale 0.45s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.result-action-bar {
  display: flex;
  gap: 12px;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  margin: 0 auto 20px;
  padding: 12px 18px;
  background: #ffffff;
  border-radius: 8px;
  box-shadow: 0 2px 10px rgba(0,0,0,0.06);
  max-width: 820px;
  border: 1px solid var(--line);
}
.result-action-bar .btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 9px 20px;
  font-size: 0.92rem;
  font-weight: 700;
  cursor: pointer;
  border-radius: 6px;
  transition: all 0.2s ease;
}
.result-action-bar .btn-primary {
  background: #123c26;
  color: #ffffff;
  border: 1px solid #123c26;
}
.result-action-bar .btn-primary:hover {
  background: #1b5436;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(18,60,38,0.25);
}
.result-action-bar .btn-green {
  background: #25603a;
  color: #ffffff;
  border: 1px solid #25603a;
}
.result-action-bar .btn-green:hover {
  background: #1a482b;
  transform: translateY(-1px);
}
.result-action-bar .btn-outline {
  background: #ffffff;
  color: #123c26;
  border: 1.5px solid #123c26;
}
.result-action-bar .btn-outline:hover {
  background: #f0f7f2;
}

.result-sheet-container {
  display: flex;
  justify-content: center;
  padding: 0 0 30px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  width: 100%;
  box-sizing: border-box;
}

.result-sheet {
  background: #ffffff;
  border: 1px solid #d8dcd8;
  border-radius: 4px;
  box-shadow: 0 8px 30px rgba(0,0,0,0.10);
  width: 800px;
  min-width: 800px;
  max-width: 800px;
  box-sizing: border-box;
  padding: 14px;
  color: #111111;
  font-family: 'SutonnyBanglaNumber', 'AnekBanglaNumber', 'Tiro Bangla', 'Noto Sans Bengali', sans-serif;
  margin: 0 auto;
  transform-origin: top center;
  transition: transform 0.25s ease;
}

.result-sheet-frame {
  border: 2px double #123c26;
  padding: 14px 16px;
  background: #ffffff;
  position: relative;
  box-sizing: border-box;
}

/* Header with Logo, School details & NCTB Grade Scale */
.rs-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border-bottom: 2px solid #123c26;
  padding-bottom: 8px;
  margin-bottom: 8px;
}
.rs-logo-box {
  width: 80px;
  flex-shrink: 0;
  text-align: center;
}
.rs-logo-box img {
  width: 76px;
  height: 76px;
  border-radius: 50%;
  border: 1.5px solid #123c26;
  display: block;
  margin: 0 auto;
  object-fit: contain;
}
.rs-school-info {
  flex: 1;
  text-align: center;
}
.rs-school-name {
  font-size: 1.35rem;
  font-weight: 800;
  color: #123c26;
  line-height: 1.2;
  margin: 0;
  letter-spacing: 0.2px;
}
.rs-school-sub {
  font-size: 0.88rem;
  font-weight: 600;
  color: #444444;
  margin: 2px 0 0;
}
.rs-school-meta {
  font-size: 0.76rem;
  color: #555555;
  margin: 2px 0 0;
}
.rs-title-pill {
  display: inline-block;
  background: #123c26;
  color: #ffffff;
  padding: 3px 14px;
  border-radius: 16px;
  font-size: 0.85rem;
  font-weight: 700;
  margin: 4px 0 2px;
  letter-spacing: 0.3px;
}
.rs-exam-pill {
  font-size: 0.82rem;
  font-weight: 700;
  color: #b81414;
}

.rs-grading-matrix {
  width: 142px;
  flex-shrink: 0;
  font-size: 0.64rem;
  border-collapse: collapse;
  border: 1px solid #123c26;
  text-align: center;
}
.rs-grading-matrix th {
  background: #123c26;
  color: #ffffff;
  font-weight: 700;
  padding: 1.5px 2px;
  border: 1px solid #123c26;
}
.rs-grading-matrix td {
  padding: 1px 2px;
  border: 1px solid #123c26;
  line-height: 1.25;
  font-weight: 600;
}
.rs-grading-matrix tr:nth-child(even) {
  background: #f4f8f5;
}

/* Student Information Metadata Grid */
.rs-meta-table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 8px;
  border: 1px solid #123c26;
  font-size: 0.81rem;
}
.rs-meta-table td {
  padding: 3.5px 8px;
  border: 1px solid #ccd9ce;
  line-height: 1.3;
}
.rs-meta-table .rs-lbl {
  background: #eef5f0;
  color: #123c26;
  font-weight: 700;
  width: 16%;
}
.rs-meta-table .rs-val {
  color: #111111;
  font-weight: 600;
  width: 34%;
}

/* Subject Marks Table */
.rs-marks-table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 8px;
  border: 1.5px solid #123c26;
  font-size: 0.80rem;
}
.rs-marks-table th {
  background: #123c26;
  color: #ffffff;
  font-weight: 700;
  padding: 5px 4px;
  border: 1px solid #123c26;
  text-align: center;
  line-height: 1.25;
}
.rs-marks-table th.col-sub {
  text-align: left;
  padding-left: 8px;
}
.rs-marks-table td {
  padding: 4px 5px;
  border: 1px solid #cad6cc;
  text-align: center;
  line-height: 1.3;
  font-weight: 600;
}
.rs-marks-table td.col-sub {
  text-align: left;
  padding-left: 8px;
}
.rs-marks-table tr:nth-child(even) {
  background: #f8faf8;
}
.rs-sub-code {
  color: #555555;
  font-size: 0.74rem;
  margin-right: 4px;
  font-family: monospace;
}
.rs-grade-badge {
  display: inline-block;
  font-weight: 800;
  padding: 0 4px;
  border-radius: 3px;
}
.rs-grade-aplus { color: #0b6623; }
.rs-grade-a { color: #1e7e34; }
.rs-grade-aminus { color: #28a745; }
.rs-grade-b { color: #0056b3; }
.rs-grade-c { color: #e07000; }
.rs-grade-d { color: #d35400; }
.rs-grade-f { color: #dc3545; font-weight: 900; }

.rs-marks-table tfoot td {
  background: #eaf3ed;
  font-weight: 800;
  font-size: 0.84rem;
  border-top: 1.5px solid #123c26;
}

/* KPI Summary Badges */
.rs-summary-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 6px;
  margin-bottom: 8px;
}
.rs-summary-card {
  background: #f2f7f3;
  border: 1px solid #bcd0bf;
  border-radius: 4px;
  padding: 5px 6px;
  text-align: center;
}
.rs-summary-card .rs-sum-lbl {
  font-size: 0.70rem;
  color: #444444;
  font-weight: 700;
  display: block;
  margin-bottom: 2px;
}
.rs-summary-card .rs-sum-val {
  font-size: 0.95rem;
  font-weight: 800;
  color: #123c26;
  line-height: 1.2;
}
.rs-sum-val.promoted {
  color: #0c6727;
  font-size: 0.85rem;
}
.rs-sum-val.failed {
  color: #b81414;
  font-size: 0.85rem;
}

/* Remarks Box */
.rs-remarks-box {
  border: 1px dashed #123c26;
  background: #fcfffd;
  border-radius: 3px;
  padding: 4px 10px;
  margin-bottom: 12px;
  font-size: 0.78rem;
  display: flex;
  align-items: center;
  gap: 8px;
}
.rs-remarks-box strong {
  color: #123c26;
  white-space: nowrap;
}
.rs-remarks-text {
  color: #222222;
  font-style: italic;
}

/* Signatures */
.rs-signatures {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-top: 24px;
  margin-bottom: 6px;
  padding: 0 10px;
}
.rs-sig-block {
  text-align: center;
  width: 140px;
}
.rs-sig-line {
  border-top: 1px dashed #222222;
  margin-bottom: 3px;
}
.rs-sig-title {
  font-size: 0.76rem;
  font-weight: 700;
  color: #222222;
}
.rs-seal-area {
  width: 60px;
  height: 60px;
  border: 1px dashed #999;
  border-radius: 50%;
  margin: 0 auto -20px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.60rem;
  color: #888;
  opacity: 0.5;
}

.rs-footnote {
  border-top: 1px solid #d5ded7;
  padding-top: 4px;
  margin-top: 6px;
  font-size: 0.68rem;
  color: #555555;
  text-align: center;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

/* ---------- People grid (teachers/committee) ---------- */
.people-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.person-card{background:#fff;border:1px solid var(--line);text-align:center;padding:22px 14px;box-shadow:var(--shadow)}
.person-card .avatar-circle{width:88px;height:88px;font-size:1.3rem;margin:0 auto 12px}
.person-card h4{margin:0 0 2px;font-size:1rem;color:var(--ink)}
.person-card .designation{color:var(--red);font-size:.85rem;font-weight:600;margin-bottom:4px}
.person-card .meta{font-size:.8rem;color:var(--ink-soft)}

/* ---------- Gallery ---------- */
.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.gallery-tile{
  aspect-ratio:4/3;background:linear-gradient(135deg,var(--green) 0%,var(--navy) 100%);
  display:flex;align-items:center;justify-content:center;color:#fff;font-size:2rem;border-radius:2px;
}

/* ---------- Contact ---------- */
.contact-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:32px;align-items:start}
.contact-card-box{
  background:#ffffff;
  border-radius:8px;
  box-shadow:var(--shadow);
  padding:28px 24px;
  border-top:4px solid var(--green);
}
.contact-card-title{
  color:var(--green-dark);
  font-family:'AnekBanglaNumber','Tiro Bangla',serif;
  font-size:1.25rem;
  margin:0 0 20px;
  font-weight:700;
}
.contact-info{
  list-style:none;
  padding:0;
  margin:0;
}
.contact-info li{display:flex;gap:12px;margin-bottom:16px;align-items:flex-start}
.contact-info .ic{font-size:1.25rem;flex-shrink:0;margin-top:2px}
.contact-note-card{
  background:#f4f9f5;
  border-left:4px solid var(--green);
  padding:13px 16px;
  border-radius:0 6px 6px 0;
  margin-top:18px;
  font-size:0.86rem;
  color:#22442d;
  line-height:1.55;
}

/* ---------- Footer ---------- */
footer.site-footer{
  background:#092617;
  color:#dfe8de;
  padding:48px 0 0;
  border-top:3px solid var(--gold);
}
.footer-grid{
  display:grid;
  grid-template-columns:1.55fr 1fr 1.05fr 1.25fr;
  gap:32px;
  padding-bottom:38px;
}
.footer-col h5{
  color:#ffffff;
  font-family:'AnekBanglaNumber','Tiro Bangla',Georgia,serif;
  font-size:1.15rem;
  margin:0 0 6px;
  font-weight:600;
  letter-spacing:0.01em;
}
.footer-heading-line{
  width:36px;
  height:3px;
  background:var(--gold);
  margin-bottom:16px;
  border-radius:2px;
}

/* Brand Column */
.footer-brand-wrap{
  display:flex;
  align-items:center;
  gap:14px;
  margin-bottom:10px;
}
.footer-brand-wrap .footer-logo{
  width:58px;
  height:58px;
  border-radius:50%;
  border:2px solid rgba(248,241,220,0.85);
  box-shadow:0 4px 10px rgba(0,0,0,0.3);
  flex-shrink:0;
  background:#ffffff;
}
.footer-brand-text{
  min-width:0;
  flex:1;
}
.footer-school-primary{
  font-family:'AnekBanglaNumber','Tiro Bangla',serif;
  font-size:1.08rem;
  font-weight:700;
  color:#ffffff;
  margin:0;
  line-height:1.25;
  white-space:nowrap;
}
.footer-school-secondary{
  font-size:0.76rem;
  color:#b5c7b7;
  margin:2px 0 0;
  line-height:1.25;
  white-space:nowrap;
  letter-spacing:0.01em;
}
.footer-motto{
  font-size:0.84rem;
  color:#f4c430;
  margin:4px 0 0;
  font-weight:500;
  line-height:1.3;
}
.footer-desc{
  font-size:0.85rem;
  line-height:1.65;
  color:#c5d6c8;
  margin:12px 0 14px;
}
.footer-eiin-badge{
  font-size:0.8rem;
  font-weight:600;
  color:#f8f1dc;
  background:rgba(255,255,255,0.08);
  border:1px solid rgba(255,255,255,0.18);
  padding:5px 12px;
  border-radius:4px;
  display:inline-block;
  letter-spacing:0.02em;
}

/* Links lists */
.footer-links-list{
  list-style:none;
  padding:0;
  margin:0;
}
.footer-links-list li{
  margin-bottom:9px;
  font-size:0.88rem;
}
.footer-links-list a{
  color:#d1e2d4;
  display:inline-flex;
  align-items:center;
  gap:6px;
  text-decoration:none;
  transition:all 0.2s ease;
}
.footer-links-list a:hover{
  color:#f4c430;
  transform:translateX(4px);
}
.footer-links-list .link-bullet{
  color:#f4c430;
  font-weight:700;
  font-size:0.95rem;
  line-height:1;
}

/* Contact items */
.footer-contact-list{
  list-style:none;
  padding:0;
  margin:0 0 18px;
}
.footer-contact-list li{
  display:flex;
  align-items:flex-start;
  gap:10px;
  margin-bottom:11px;
  font-size:0.88rem;
  color:#d1e2d4;
  line-height:1.45;
}
.footer-contact-list .contact-ic{
  font-size:1rem;
  color:#f4c430;
  flex-shrink:0;
  margin-top:2px;
}
/* Bottom Bar */
.footer-bottom{
  border-top:1px solid rgba(255,255,255,0.1);
  background:#051a0e;
  padding:16px 0;
}
.footer-bottom-inner{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  font-size:0.82rem;
  color:#9cb5a0;
  flex-wrap:wrap;
}

/* ---------- Utility ---------- */
.text-center{text-align:center}
.mt-0{margin-top:0}
.badge-soft{background:var(--green-light);color:var(--green-dark);padding:2px 10px;border-radius:12px;font-size:.75rem}
.print-hint{font-size:.8rem;color:var(--ink-soft);text-align:center;margin-top:10px}

/* ---------- Responsive ---------- */
@media (max-width: 900px){
  .hero .container{grid-template-columns:1fr;text-align:center;gap:36px;padding:42px 20px}
  .hero .hero-lead{margin:0 auto 24px}
  .hero-ctas{justify-content:center}
  .hero-feature-tags{justify-content:center}
  .hero-academic-card{max-width:480px;margin:0 auto;text-align:left}
  .hero-notice-ticker .container{flex-direction:column;align-items:flex-start;gap:8px}
  .ticker-content{white-space:normal;overflow:visible}
  .card-grid,.people-grid,.gallery-grid{grid-template-columns:repeat(2,1fr)}
  .steps{grid-template-columns:repeat(2,1fr)}
  .contact-grid{grid-template-columns:1fr}
  .welcome-box{grid-template-columns:1fr;text-align:center}
  .welcome-box .avatar-circle{margin:0 auto}
  .footer-grid{grid-template-columns:1fr 1fr}
}

/* Intermediate Desktop & Laptop Screen Scaling (981px - 1200px) */
@media (min-width: 981px) and (max-width: 1200px){
  nav.main-nav ul.nav-links a{
    padding:0 8px;
    font-size:.82rem;
  }
  .nav-actions{
    gap:6px;
  }
  .btn-apply-online,
  .btn-online-admission{
    padding:6px 11px;
    font-size:0.79rem;
  }
  .btn-nav-login{
    padding:6px 11px;
    font-size:0.79rem;
  }
  .header-text .school-name-primary{
    font-size:1.32rem;
  }
  .header-text .school-name-secondary{
    font-size:0.98rem;
  }
  .header-text .school-meta-line{
    font-size:0.78rem;
  }
}

/* Tablet & Mobile Navigation Drawer (<= 980px) */
@media (max-width: 980px){
  .menu-toggle{display:inline-flex}
  .nav-container{
    padding:8px 16px;
    min-height:50px;
  }
  nav.main-nav ul.nav-links{
    display:none;
    flex-direction:column;
    position:absolute;
    top:100%;
    left:0;
    right:0;
    background:var(--green-dark);
    border-top:1px solid rgba(255,255,255,.12);
    box-shadow:0 14px 30px rgba(0,0,0,.45);
    max-height:calc(100vh - 56px);
    overflow-y:auto;
    z-index:1001;
  }
  nav.main-nav ul.nav-links.open{
    display:flex;
  }
  nav.main-nav ul.nav-links li{
    width:100%;
  }
  nav.main-nav ul.nav-links li.menu-lang-item,
  .menu-lang-item{
    display:block !important;
    padding:10px 18px;
    background:rgba(0,0,0,0.25);
    border-bottom:1px solid rgba(255,255,255,0.14);
  }
  .menu-lang-wrap{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
  }
  .menu-lang-title{
    color:#e5f0e7;
    font-size:0.86rem;
    font-weight:600;
  }
  .menu-lang-wrap .lang-switch{
    display:flex;
    gap:6px;
  }
  .menu-lang-wrap .lang-switch button{
    background:transparent;
    border:1px solid #7ea88d;
    color:#eee9d6;
    padding:4px 12px;
    border-radius:16px;
    font-size:0.82rem;
    font-weight:600;
    transition:0.2s ease;
    cursor:pointer;
  }
  .menu-lang-wrap .lang-switch button.active{
    background:var(--gold-vibrant);
    border-color:var(--gold-vibrant);
    color:#122b1c;
    font-weight:700;
  }
  nav.main-nav ul.nav-links a{
    width:100%;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    padding:14px 20px;
    border-bottom:1px solid rgba(255,255,255,.08);
    font-size:.96rem;
    font-weight:600;
    color:#ffffff;
    transition:all .2s ease;
  }
  nav.main-nav ul.nav-links a:hover{
    background:rgba(255,255,255,0.08);
    color:#ffd859;
  }
  nav.main-nav ul.nav-links a.active{
    background:rgba(0,0,0,0.28);
    color:#ffd859;
    font-weight:700;
    box-shadow:none;
    border-bottom-color:rgba(244,196,48,0.4);
  }
  .desktop-only-capsule{
    display:none !important;
  }
  .nav-actions{
    gap:8px;
    padding-left:0;
  }
  .btn-apply-online,
  .btn-online-admission{
    padding:6px 12px;
    font-size:0.8rem;
    border-radius:18px;
  }
  .btn-nav-login{
    padding:5px 12px;
    font-size:0.8rem;
    border-radius:18px;
  }
}

/* Phone Sticky Header (<= 820px) — keeps entire header sticky only on phone */
@media (max-width: 820px){
  .header-sticky-wrapper{
    position:-webkit-sticky;
    position:sticky;
    top:0;
    z-index:1000;
    box-shadow:0 4px 18px rgba(0,0,0,0.18);
  }
  nav.main-nav{
    position:relative;
    top:auto;
    box-shadow:none;
  }
  .topbar{
    display:none !important;
  }
  .header-text .school-name-primary,
  .header-text .school-name-secondary,
  .header-text .school-meta-line {
    white-space: normal;
    word-break: normal;
    overflow-wrap: break-word;
  }
}

@media (max-width: 640px){
  .header-inner{
    padding:8px 12px;
    gap:10px;
    align-items:center;
  }
  .header-inner .logo{
    width:48px;
    height:48px;
    flex-shrink:0;
    border-width:1.5px;
  }
  .header-text{
    flex:1;
    min-width:0;
    overflow:hidden;
  }
  .header-text .school-name-primary{
    font-size:clamp(0.92rem, 3.8vw, 1.15rem);
    line-height:1.22;
    white-space:normal;
    word-break:normal;
    overflow-wrap:break-word;
  }
  .header-text .school-name-secondary{
    font-size:clamp(0.72rem, 2.7vw, 0.85rem);
    line-height:1.2;
    margin-top:2px;
    white-space:normal;
    word-break:normal;
    overflow-wrap:break-word;
  }
  .header-text .school-meta-line{
    font-size:clamp(0.62rem, 2.1vw, 0.72rem);
    white-space:normal;
    word-break:normal;
    overflow-wrap:break-word;
    line-height:1.32;
    margin-top:2px;
  }
  .header-text .school-name-bn{font-size:1.05rem}
  .header-text .school-name-en{font-size:.72rem}
  .header-text .school-address{font-size:.72rem}
  .nav-container{
    padding:5px 8px;
    min-height:44px;
  }
  .menu-toggle{
    padding:4px 8px;
    font-size:0.80rem;
    gap:4px;
  }
  .nav-actions{
    gap:5px;
  }
  .btn-apply-online,
  .btn-online-admission{
    padding:4px 8px;
    font-size:0.72rem;
  }
  .btn-nav-login{
    padding:4px 8px;
    font-size:0.72rem;
  }
  .btn-apply-online .btn-icon,
  .btn-nav-login .btn-icon{
    font-size:0.78rem;
  }
  .hero .container{padding:26px 14px 34px}
  .hero-ctas{flex-direction:column;width:100%;gap:10px}
  .btn-hero-primary,.btn-hero-outline{width:100%;justify-content:center;text-align:center}
  .hero-academic-card{padding:18px 14px}
  .form-grid{grid-template-columns:1fr}
  .card-grid,.people-grid,.gallery-grid,.steps{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr;gap:24px}
  .footer-school-primary{
    font-size:clamp(0.85rem, 3.8vw, 1.05rem);
    white-space:normal;
    word-break:normal;
    overflow-wrap:break-word;
  }
  .footer-school-secondary{
    font-size:clamp(0.68rem, 3vw, 0.76rem);
    white-space:normal;
    word-break:normal;
    overflow-wrap:break-word;
  }
}

@media (max-width: 420px){
  .header-inner{
    padding:6px 8px;
    gap:8px;
  }
  .header-inner .logo{
    width:40px;
    height:40px;
  }
  .header-text .school-name-primary{
    font-size:0.90rem;
    line-height:1.2;
  }
  .header-text .school-name-secondary{
    font-size:0.68rem;
    line-height:1.15;
  }
  .header-text .school-meta-line{
    font-size:0.58rem;
    line-height:1.22;
  }
  .nav-container{
    padding:3px 6px;
    min-height:40px;
  }
}

/* Mobile Preview Helper Banner and Fit Controls */
.mobile-preview-hint {
  display: none;
  align-items: center;
  justify-content: space-between;
  background: #eaf4ed;
  border: 1px solid #b7dcbe;
  border-radius: 6px;
  padding: 8px 12px;
  margin: 10px auto 14px;
  max-width: 800px;
  font-size: 0.82rem;
  color: var(--green-dark);
  font-weight: 600;
  box-sizing: border-box;
}
@media (max-width: 860px) {
  .mobile-preview-hint {
    display: flex;
  }
}
.mobile-preview-hint .hint-content {
  display: flex;
  align-items: center;
  gap: 6px;
}
.mobile-preview-hint .btn-fit-toggle {
  background: var(--green);
  color: #ffffff;
  border: 1px solid var(--green-dark);
  padding: 4px 10px;
  border-radius: 4px;
  font-size: 0.78rem;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  cursor: pointer;
  white-space: nowrap;
  transition: all 0.2s ease;
}
.mobile-preview-hint .btn-fit-toggle:hover {
  background: var(--green-dark);
}
.admission-sheet-viewport.fit-mode,
.result-sheet-container.fit-mode {
  overflow-x: hidden !important;
  display: flex !important;
  justify-content: center !important;
  width: 100% !important;
}

  .footer-bottom-inner{
    flex-direction:column;
    text-align:center;
    gap:6px;
  }
  .result-meta{grid-template-columns:1fr}
}

/* ---------- Portal Login Modal ---------- */
.login-modal-overlay{
  position:fixed;
  top:0;left:0;right:0;bottom:0;
  background:rgba(18,60,38,.75);
  backdrop-filter:blur(4px);
  display:none;
  align-items:center;
  justify-content:center;
  z-index:2000;
  padding:16px;
  animation:fadeIn .2s ease-out;
}
.login-modal-overlay.show{
  display:flex;
}
.login-modal{
  background:#ffffff;
  border:2px solid var(--green);
  border-radius:8px;
  width:100%;
  max-width:480px;
  box-shadow:0 16px 36px rgba(0,0,0,.35);
  overflow:hidden;
  position:relative;
  animation:slideUp .25s ease-out;
}
.login-modal-head{
  background:linear-gradient(135deg,var(--green-dark),var(--navy));
  color:#f8f1dc;
  padding:18px 22px;
  position:relative;
}
.login-modal-head h3{
  margin:0;
  font-size:1.25rem;
  color:#f8f1dc;
}
.login-modal-head p{
  margin:4px 0 0;
  font-size:.8rem;
  color:#dcd3b6;
}
.login-modal-close{
  position:absolute;
  top:14px;
  right:14px;
  background:rgba(255,255,255,.15);
  border:none;
  color:#ffffff;
  width:32px;
  height:32px;
  border-radius:50%;
  font-size:1.2rem;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  transition:all .2s ease;
}
.login-modal-close:hover{
  background:var(--red);
  transform:scale(1.05);
}
.login-tabs{
  display:flex;
  border-bottom:2px solid var(--line);
  background:#faf7ec;
}
.login-tab-btn{
  flex:1;
  padding:12px 8px;
  border:none;
  background:transparent;
  font-weight:600;
  font-size:.88rem;
  color:var(--ink-soft);
  border-bottom:3px solid transparent;
  cursor:pointer;
  transition:all .2s ease;
  text-align:center;
}
.login-tab-btn.active{
  color:var(--green-dark);
  border-bottom-color:var(--red);
  background:#ffffff;
  font-weight:700;
}
.login-modal-body{
  padding:22px;
}
.login-form-pane{
  display:none;
}
.login-form-pane.active{
  display:block;
}
.login-demo-box{
  background:var(--green-light);
  border-left:3px solid var(--green);
  padding:8px 12px;
  font-size:.78rem;
  color:var(--green-dark);
  margin-top:14px;
  border-radius:2px;
}
.login-status-msg{
  padding:10px 14px;
  border-radius:4px;
  font-size:.85rem;
  margin-bottom:12px;
  display:none;
}
.login-status-msg.success{
  display:block;
  background:#eaf6ec;
  color:#145a32;
  border:1px solid #a9dfbf;
}
.login-status-msg.error{
  display:block;
  background:#fbe6e6;
  color:#78281f;
  border:1px solid #f5b7b1;
}

@keyframes fadeIn{
  from{opacity:0}
  to{opacity:1}
}
@keyframes slideUp{
  from{opacity:0;transform:translateY(20px)}
  to{opacity:1;transform:translateY(0)}
}

/* ---------- Scroll to Top Button (All Devices) ---------- */
.scroll-to-top{
  position:fixed;
  bottom:24px;
  right:24px;
  width:46px;
  height:46px;
  border-radius:50%;
  background:var(--green-dark);
  color:var(--gold);
  border:2px solid var(--gold);
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  z-index:9999;
  box-shadow:0 4px 16px rgba(0,0,0,0.35);
  opacity:0;
  visibility:hidden;
  transform:translateY(14px) scale(0.9);
  transition:opacity 0.3s ease, transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1), visibility 0.3s ease, background 0.2s ease, box-shadow 0.2s ease;
}
.scroll-to-top svg{
  width:20px;
  height:20px;
  stroke:currentColor;
  transition:transform 0.2s ease;
}
.scroll-to-top.visible{
  opacity:1;
  visibility:visible;
  transform:translateY(0) scale(1);
}
.scroll-to-top:hover{
  background:var(--gold);
  color:#092617;
  transform:translateY(-3px) scale(1.08);
  box-shadow:0 6px 22px rgba(244,196,48,0.5);
}
.scroll-to-top:hover svg{
  transform:translateY(-2px);
}
.scroll-to-top:active{
  transform:translateY(0) scale(0.95);
}
@media (max-width: 640px){
  .scroll-to-top{
    bottom:18px;
    right:18px;
    width:42px;
    height:42px;
  }
}

@media print{
  @page {
    size: A4 portrait;
    margin: 6mm 8mm !important;
  }
  html, body {
    background: #ffffff !important;
    color: #000000 !important;
    margin: 0 !important;
    padding: 0 !important;
    font-size: 10pt !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
  .topbar, .site-header, nav.main-nav, footer.site-footer, .hero, .hero-sunburst, section.alt, .section-head, .steps, .form-panel > form, .form-panel > .form-note, .success-box, .printable-toolbar, .scroll-to-top, .no-print {
    display: none !important;
  }
  section {
    padding: 0 !important;
    margin: 0 !important;
  }
  .container {
    max-width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
  }
  .form-panel {
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 !important;
  }
  .admission-printable-wrapper {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
  }
  .admission-sheet {
    box-shadow: none !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
    max-width: 100% !important;
    width: 100% !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
    page-break-inside: avoid !important;
    break-inside: avoid !important;
  }
  .sheet-frame {
    border: 1.5px solid #000000 !important;
    outline: none !important;
    padding: 12px 16px !important;
    page-break-inside: avoid !important;
    break-inside: avoid !important;
  }
  .sheet-header {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    justify-content: space-between !important;
    align-items: center !important;
    border-bottom: 2px solid #123c26 !important;
    padding-bottom: 6px !important;
    margin-bottom: 6px !important;
  }
  .sheet-logo-wrap {
    order: 1 !important;
    width: 92px !important;
    flex-shrink: 0 !important;
    text-align: center !important;
  }
  .sheet-logo {
    width: 86px !important;
    height: 86px !important;
    border-radius: 50% !important;
    border: 1.5px solid #123c26 !important;
    display: block !important;
    margin: 0 auto !important;
    object-fit: contain !important;
  }
  .sheet-title-wrap {
    order: 2 !important;
    flex: 1 !important;
    text-align: center !important;
  }
  .sheet-school-primary {
    font-size: 1.28rem !important;
    line-height: 1.22 !important;
  }
  .sheet-school-secondary {
    font-size: 0.90rem !important;
    margin: 1px 0 0 !important;
  }
  .sheet-school-meta {
    font-size: 0.80rem !important;
    margin: 2px 0 0 !important;
  }
  .sheet-school-codes {
    font-size: 0.76rem !important;
    margin: 1px 0 0 !important;
  }
  .sheet-photo-wrap {
    order: 3 !important;
    width: 92px !important;
    flex-shrink: 0 !important;
    text-align: center !important;
  }
  .sheet-photo-frame {
    width: 86px !important;
    height: 108px !important;
  }
  .sheet-photo-caption {
    font-size: 0.70rem !important;
  }
  .sheet-meta-strip {
    background: #f0f4f1 !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
    font-size: 0.85rem !important;
    padding: 5px 12px !important;
    margin-bottom: 6px !important;
  }
  .sheet-section-title {
    background: #123c26 !important;
    color: #ffffff !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
    font-size: 0.85rem !important;
    margin: 6px 0 3px !important;
    padding: 3.5px 10px !important;
  }
  .sheet-form-badge {
    background: #123c26 !important;
    color: #ffffff !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
    font-size: 0.82rem !important;
    padding: 3px 12px !important;
    margin-top: 4px !important;
  }
  .sheet-table {
    margin-bottom: 5px !important;
    font-size: 0.83rem !important;
  }
  .sheet-table td {
    border-color: #555555 !important;
    padding: 5px 8px !important;
    line-height: 1.34 !important;
  }
  .sheet-table .td-lbl {
    background: #f5f3eb !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
  .sheet-checklist-box {
    padding: 6px 12px !important;
    margin: 5px 0 !important;
    font-size: 0.76rem !important;
  }
  .checklist-grid {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 2px 10px !important;
  }
  .sheet-declaration {
    margin: 5px 0 6px !important;
    font-size: 0.75rem !important;
    line-height: 1.34 !important;
    padding-left: 8px !important;
  }
  .sheet-signatures {
    margin-top: 36px !important;
    margin-bottom: 5px !important;
    padding: 0 8px !important;
  }
  .sig-line {
    margin-bottom: 3px !important;
  }
  .sig-text {
    font-size: 0.80rem !important;
  }
  .sheet-perforation {
    margin: 7px 0 4px !important;
    padding-top: 3px !important;
    font-size: 0.74rem !important;
  }
  .sheet-receipt {
    padding: 7px 12px !important;
    font-size: 0.80rem !important;
  }
  .receipt-school {
    font-size: 0.90rem !important;
  }
  .receipt-title {
    font-size: 0.80rem !important;
  }
  .receipt-grid {
    display: grid !important;
    grid-template-columns: 1.2fr 1.5fr 1fr !important;
    gap: 3px 8px !important;
    font-size: 0.78rem !important;
  }
  /* Result Sheet Single A4 Print Rules */
  #result-output {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  .result-action-bar, #result-not-found {
    display: none !important;
  }
  .result-sheet-container {
    display: block !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
  }
  .result-sheet {
    box-shadow: none !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
    max-width: 100% !important;
    width: 100% !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
    page-break-inside: avoid !important;
    break-inside: avoid !important;
  }
  .result-sheet-frame {
    border: 1.5px solid #000000 !important;
    padding: 10px 14px !important;
    page-break-inside: avoid !important;
    break-inside: avoid !important;
  }
  .rs-header {
    border-bottom: 1.5px solid #000000 !important;
    padding-bottom: 6px !important;
    margin-bottom: 6px !important;
  }
  .rs-logo-box img {
    border-color: #000000 !important;
    width: 72px !important;
    height: 72px !important;
  }
  .rs-school-name {
    font-size: 1.25rem !important;
    color: #000000 !important;
  }
  .rs-title-pill {
    background: #123c26 !important;
    color: #ffffff !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
    font-size: 0.80rem !important;
    padding: 2px 12px !important;
  }
  .rs-grading-matrix {
    border-color: #000000 !important;
    font-size: 0.62rem !important;
  }
  .rs-grading-matrix th {
    background: #123c26 !important;
    color: #ffffff !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
  .rs-grading-matrix td, .rs-grading-matrix th {
    border-color: #555555 !important;
  }
  .rs-meta-table {
    border-color: #000000 !important;
    margin-bottom: 6px !important;
    font-size: 0.78rem !important;
  }
  .rs-meta-table td {
    padding: 3px 6px !important;
    border-color: #666666 !important;
  }
  .rs-meta-table .rs-lbl {
    background: #f0f4f1 !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
  .rs-marks-table {
    border-color: #000000 !important;
    margin-bottom: 6px !important;
    font-size: 0.77rem !important;
  }
  .rs-marks-table th {
    background: #123c26 !important;
    color: #ffffff !important;
    padding: 4px 3px !important;
    border-color: #000000 !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
  .rs-marks-table td {
    padding: 3.5px 4px !important;
    border-color: #666666 !important;
  }
  .rs-marks-table tfoot td {
    background: #f0f4f1 !important;
    border-top: 1.5px solid #000000 !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
  .rs-summary-grid {
    gap: 4px !important;
    margin-bottom: 6px !important;
  }
  .rs-summary-card {
    background: #f4f7f4 !important;
    border-color: #888888 !important;
    padding: 4px !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
  .rs-summary-card .rs-sum-lbl {
    font-size: 0.68rem !important;
  }
  .rs-summary-card .rs-sum-val {
    font-size: 0.88rem !important;
  }
  .rs-remarks-box {
    padding: 3px 8px !important;
    margin-bottom: 8px !important;
    font-size: 0.74rem !important;
    border-color: #444444 !important;
  }
  .rs-signatures {
    margin-top: 26px !important;
    margin-bottom: 4px !important;
    padding: 0 6px !important;
  }
  .rs-sig-line {
    border-color: #000000 !important;
  }
  .rs-sig-title {
    font-size: 0.74rem !important;
  }
  .rs-footnote {
    margin-top: 4px !important;
    padding-top: 3px !important;
    font-size: 0.65rem !important;
  }
}

/* ==========================================================================
   INTERACTIVE ANIMATIONS & ENHANCEMENTS
   ========================================================================== */

/* Designer Hyperlink in Footer */
.designer-link {
  color: #a7f3d0;
  text-decoration: none;
  font-weight: 700;
  position: relative;
  display: inline-block;
  transition: color 0.3s ease, text-shadow 0.3s ease, transform 0.2s ease;
  padding: 0 4px;
}
.designer-link:hover {
  color: #ffffff;
  text-shadow: 0 0 12px rgba(110, 231, 183, 0.9);
  transform: translateY(-1.5px);
}
.designer-link::after {
  content: "";
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 100%;
  height: 2px;
  background: linear-gradient(90deg, #10b981, #34d399);
  border-radius: 2px;
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}
.designer-link:hover::after {
  transform: scaleX(1);
  transform-origin: left;
}

/* Keyframe Definitions */
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(28px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes fadeInDown {
  from {
    opacity: 0;
    transform: translateY(-20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes fadeInScale {
  from {
    opacity: 0;
    transform: scale(0.93) translateY(14px);
  }
  to {
    opacity: 1;
    transform: scale(1) translateY(0);
  }
}

@keyframes floatSlow {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-6px);
  }
}

@keyframes pulseDotGlow {
  0% {
    box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.7);
  }
  70% {
    box-shadow: 0 0 0 10px rgba(16, 185, 129, 0);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(16, 185, 129, 0);
  }
}

@keyframes subtleSunburst {
  0% {
    transform: rotate(0deg) scale(1);
    opacity: 0.16;
  }
  50% {
    transform: rotate(180deg) scale(1.08);
    opacity: 0.28;
  }
  100% {
    transform: rotate(360deg) scale(1);
    opacity: 0.16;
  }
}

/* Subtle Hero & Header Animations */
.site-header .logo {
  transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.site-header .logo:hover {
  transform: scale(1.08) rotate(3deg);
}

.hero-sunburst {
  animation: subtleSunburst 40s linear infinite !important;
  pointer-events: none;
}

.hero-trust-badge {
  animation: floatSlow 4s ease-in-out infinite;
  display: inline-flex;
  align-items: center;
}

.pulse-dot {
  animation: pulseDotGlow 2s infinite !important;
}

/* Buttons micro-interactions */
.btn-apply-online,
.btn-hero-primary,
.btn-green,
.btn-primary {
  transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.25s ease !important;
}
.btn-apply-online:hover,
.btn-hero-primary:hover,
.btn-green:hover {
  transform: translateY(-2.5px) scale(1.02);
  box-shadow: 0 8px 20px -4px rgba(18, 60, 38, 0.35) !important;
}
.btn-apply-online:active,
.btn-hero-primary:active,
.btn-green:active {
  transform: translateY(0) scale(0.98);
}

/* Navigation Link hover slide underline */
.main-nav a {
  position: relative;
  transition: color 0.25s ease;
}
.main-nav a::after {
  content: "";
  position: absolute;
  bottom: 4px;
  left: 50%;
  width: 0;
  height: 2px;
  background: var(--gold-accent, #c9a84e);
  transition: width 0.3s cubic-bezier(0.16, 1, 0.3, 1), left 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  border-radius: 2px;
}
.main-nav a:hover::after,
.main-nav a.active::after {
  width: 60%;
  left: 20%;
}

/* Scroll Triggered Animations */
.reveal-on-scroll {
  opacity: 0;
  transform: translateY(26px);
  transition: opacity 0.65s cubic-bezier(0.16, 1, 0.3, 1), transform 0.65s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}

.reveal-on-scroll.is-revealed {
  opacity: 1;
  transform: translateY(0);
}

/* Stagger Delays for Grid Children */
.stagger-1 { transition-delay: 0.07s !important; }
.stagger-2 { transition-delay: 0.14s !important; }
.stagger-3 { transition-delay: 0.21s !important; }
.stagger-4 { transition-delay: 0.28s !important; }
.stagger-5 { transition-delay: 0.35s !important; }
.stagger-6 { transition-delay: 0.42s !important; }

/* Enhanced Interactive Hover on Cards */
.portal-card {
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.35s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.3s ease !important;
}
.portal-card:hover {
  transform: translateY(-8px) scale(1.01);
  box-shadow: 0 20px 35px -10px rgba(18, 60, 38, 0.22), 0 8px 16px -6px rgba(0, 0, 0, 0.08) !important;
  border-color: #2e7d32 !important;
}
.portal-card:hover .portal-card-icon {
  transform: scale(1.18) rotate(6deg);
  transition: transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.portal-card:hover .portal-card-link {
  color: #1b5e20 !important;
  padding-left: 4px;
  transition: color 0.2s ease, padding-left 0.2s ease;
}

.team-mini-card,
.teacher-card {
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.35s cubic-bezier(0.16, 1, 0.3, 1) !important;
}
.team-mini-card:hover,
.teacher-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 16px 30px -8px rgba(18, 60, 38, 0.18) !important;
}
.team-mini-card:hover .team-mini-avatar,
.teacher-card:hover .teacher-avatar {
  transform: scale(1.08);
  transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.facility-mini-card {
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.3s ease, border-color 0.3s ease !important;
}
.facility-mini-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 12px 24px -6px rgba(18, 60, 38, 0.16) !important;
  border-color: #2e7d32 !important;
}
.facility-mini-card:hover .fac-icon {
  transform: scale(1.22);
  transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
  display: inline-block;
}

.home-gallery-card,
.gallery-card {
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.35s ease !important;
}
.home-gallery-card:hover,
.gallery-card:hover {
  transform: translateY(-7px);
  box-shadow: 0 20px 35px -8px rgba(0, 0, 0, 0.2) !important;
}
.home-gallery-card:hover .home-gallery-img,
.gallery-card:hover img {
  transform: scale(1.08);
  transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.notice-preview-item {
  transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.25s ease, border-color 0.25s ease !important;
}
.notice-preview-item:hover {
  transform: translateX(6px);
  background-color: #f2fbf5 !important;
  border-color: #2e7d32 !important;
}
.notice-preview-item:hover .notice-preview-title {
  color: #1b5e20;
}

/* Modal Popup Spring Entrance */
.login-modal-overlay.show .login-modal-card {
  animation: fadeInScale 0.35s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}

/* Result Card Container entrance */
#result-card-container.rs-animated {
  animation: fadeInScale 0.45s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

/* Scroll to top smooth pulse */
.scroll-to-top {
  transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1), background 0.3s ease !important;
}
.scroll-to-top:hover {
  transform: translateY(-5px) scale(1.1);
  box-shadow: 0 8px 20px rgba(18, 60, 38, 0.4) !important;
}

/* Accessibility & Print Safeguards */
@media (prefers-reduced-motion: reduce) {
  *, ::before, ::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  .reveal-on-scroll {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

@media print {
  .reveal-on-scroll {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
    animation: none !important;
  }
}
