:root{
  --navy: #0d2447;
  --navy-2: #123168;
  --blue: #1f5fbf;
  --red: #e6394a;
  --gold: #f0a634;
  --green: #2fa84f;
  --yellow: #f4b400;
  --bg-soft: #eef3fb;
  --text-muted: #6c7a90;
}
body{ font-family: 'Segoe UI', Roboto, Arial, sans-serif; color:#1c2b3a; background:#fff; }
a{ color: var(--blue); }

/* ---- Top contact bar ---- */
.topbar{ background: var(--navy); color:#cfe0ff; font-size:.82rem; padding:.4rem 0; }
.topbar a{ color:#cfe0ff; text-decoration:none; }
.topbar .divider{ opacity:.3; margin:0 .6rem; }
.topbar .social-icons a{ display:inline-flex; align-items:center; justify-content:center; width:26px; height:26px; border-radius:50%; background:rgba(255,255,255,.12); color:#fff; margin-left:.4rem; font-size:.75rem; }

/* ---- Header ---- */
.site-header{ background:#fff; padding:.75rem 0; }
.site-header .brand-logo{ width:58px; height:58px; }
.site-header .brand-name{ color: var(--navy); font-weight:800; font-size:1.35rem; margin-bottom:0; line-height:1.1; }
.site-header .brand-tagline{ color: var(--text-muted); font-size:.78rem; }
.site-header .header-quote{ color: var(--navy-2); font-style:italic; font-size:.92rem; text-align:center; line-height:1.35; }
.btn-student-login{ background: var(--red); border-color: var(--red); color:#fff; font-weight:600; border-radius:.4rem; }
.btn-student-login:hover{ background:#c72c3b; border-color:#c72c3b; color:#fff; }

/* ---- Nav ---- */
.main-nav{ background: var(--bg-soft); }
.main-nav .nav-link{ color: var(--navy-2); font-weight:600; padding:.85rem 1.1rem; border-radius:0; }
.main-nav .nav-link.active{ background: var(--blue); color:#fff; }
.main-nav .nav-link:hover{ color: var(--blue); }

/* ---- Hero ---- */
.hero-slide{ position:relative; height:62vh; min-height:420px; background-size:cover; background-position:center; overflow:hidden; }
.hero-slide::after{ content:''; position:absolute; inset:0; background:linear-gradient(90deg, rgba(10,20,40,.72) 0%, rgba(10,20,40,.45) 55%, rgba(10,20,40,.15) 100%); }
.hero-caption{ position:relative; z-index:2; color:#fff; height:100%; display:flex; flex-direction:column; justify-content:center; max-width:640px; }
.hero-caption h1{ font-weight:800; font-size:2.6rem; line-height:1.15; text-transform:uppercase; }
.hero-caption h1 .highlight{ color: var(--gold); }
.hero-caption .lead{ font-size:1.1rem; color:#e8edf6; }
.hero-icons{ display:flex; gap:1.6rem; margin:1.1rem 0; flex-wrap:wrap; }
.hero-icons span{ font-size:.85rem; font-weight:600; color:#f2f5fb; }
.hero-icons i{ margin-right:.35rem; color: var(--gold); }
.btn-admission-open{ background: var(--red); border-color: var(--red); color:#fff; font-weight:700; border-radius:.4rem; padding:.65rem 1.4rem; }
.btn-admission-open:hover{ background:#c72c3b; color:#fff; }
.hero-quote-box{ position:absolute; right:2.5rem; bottom:2.2rem; z-index:3; background:rgba(10,20,40,.72); color:#fff; padding:1rem 1.3rem; border-radius:.5rem; max-width:280px; font-style:italic; font-size:.88rem; }
.hero-arrow{ position:absolute; top:50%; transform:translateY(-50%); z-index:3; width:42px; height:42px; border-radius:50%; background:rgba(255,255,255,.85); display:flex; align-items:center; justify-content:center; color: var(--navy); border:0; }
.hero-arrow.prev{ left:1.2rem; } .hero-arrow.next{ right:1.2rem; }
.hero-dots{ position:absolute; bottom:1rem; left:50%; transform:translateX(-50%); z-index:3; display:flex; gap:.4rem; }
.hero-dots button{ width:9px; height:9px; border-radius:50%; background:rgba(255,255,255,.55); border:0; padding:0; }
.hero-dots button.active{ background:#fff; width:22px; border-radius:5px; }

/* ---- Notice ticker bar ---- */
.notice-bar{ background:#fff; border-bottom:1px solid #e7ecf5; padding:.7rem 0; }
.notice-tag{ background: var(--red); color:#fff; font-weight:700; font-size:.8rem; border-radius:2rem; padding:.45rem 1rem; white-space:nowrap; }
.notice-item{ font-size:.82rem; color:#1c2b3a; }
.notice-item .n-title{ font-weight:600; }
.notice-item .n-date{ color: var(--text-muted); font-size:.75rem; display:block; }
.badge-new{ background: var(--gold); color:#3a2a00; font-size:.62rem; vertical-align:middle; }
.btn-view-all{ background: var(--navy); color:#fff; border-radius:.4rem; font-size:.82rem; font-weight:600; white-space:nowrap; }
.btn-view-all:hover{ background: var(--navy-2); color:#fff; }

/* ---- Quick action cards ---- */
.quick-card{ border:0; border-radius:.6rem; padding:1.1rem; display:flex; gap:.9rem; align-items:flex-start; box-shadow:0 2px 10px rgba(0,0,0,.05); height:100%; }
.quick-card .qc-icon{ width:46px; height:46px; border-radius:.5rem; display:flex; align-items:center; justify-content:center; color:#fff; font-size:1.2rem; flex-shrink:0; }
.quick-card .qc-title{ font-weight:700; font-size:.95rem; margin-bottom:.15rem; }
.quick-card .qc-sub{ color: var(--text-muted); font-size:.78rem; }
.quick-card .qc-arrow{ margin-left:auto; width:32px; height:32px; border-radius:50%; display:flex; align-items:center; justify-content:center; color:#fff; flex-shrink:0; align-self:center; }
.qc-blue .qc-icon, .qc-blue .qc-arrow{ background: var(--blue); } .qc-blue .qc-title{ color: var(--blue); }
.qc-green .qc-icon, .qc-green .qc-arrow{ background: var(--green); } .qc-green .qc-title{ color: var(--green); }
.qc-yellow .qc-icon, .qc-yellow .qc-arrow{ background: var(--yellow); } .qc-yellow .qc-title{ color:#a87c00; }
.qc-red .qc-icon, .qc-red .qc-arrow{ background: var(--red); } .qc-red .qc-title{ color: var(--red); }

/* ---- Section headers ---- */
.section-title{ font-weight:800; color: var(--navy); margin-bottom:.15rem; }
.section-sub{ color: var(--text-muted); font-size:.85rem; }
.section-head-row{ display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:1.25rem; }
.btn-view-all-outline{ border:1px solid var(--blue); color: var(--blue); border-radius:2rem; font-size:.8rem; font-weight:600; padding:.35rem 1rem; white-space:nowrap; }
.btn-view-all-outline:hover{ background: var(--blue); color:#fff; }

/* ---- Topper / faculty cards ---- */
.people-card{ border:0; border-radius:.6rem; overflow:hidden; box-shadow:0 2px 10px rgba(0,0,0,.06); text-align:center; position:relative; transition:transform .15s ease; height:100%; }
.people-card:hover{ transform:translateY(-4px); }
.people-card img{ width:100%; height:170px; object-fit:cover; }
.people-card .p-body{ padding:.8rem; }
.people-card .p-name{ font-weight:700; font-size:.9rem; margin-bottom:.1rem; }
.people-card .p-sub{ color: var(--text-muted); font-size:.78rem; margin-bottom:.15rem; }
.people-card .p-score{ color: var(--red); font-weight:800; font-size:.95rem; }
.rank-badge{ position:absolute; top:10px; left:10px; width:30px; height:30px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-weight:800; font-size:.78rem; color:#fff; z-index:2; }
.rank-1{ background: var(--gold); } .rank-2{ background:#9aa4b2; } .rank-3{ background:#c8783a; } .rank-4{ background: var(--blue); }

/* ---- Message cards ---- */
.message-card{ background: var(--bg-soft); border-radius:.6rem; padding:1.3rem; display:flex; gap:1.1rem; height:100%; }
.message-card img{ width:84px; height:84px; border-radius:50%; object-fit:cover; flex-shrink:0; }
.message-card h5{ color: var(--navy); font-weight:700; margin-bottom:.5rem; }
.message-card p{ font-size:.86rem; color:#3a4657; }
.message-card .m-name{ font-weight:700; margin-bottom:0; }
.message-card .m-role{ color: var(--text-muted); font-size:.8rem; }
.btn-read-more{ background: var(--blue); color:#fff; border-radius:.4rem; font-size:.8rem; font-weight:600; padding:.35rem .9rem; white-space:nowrap; }
.btn-read-more:hover{ background: var(--navy-2); color:#fff; }

/* ---- Gallery preview ---- */
.gallery-preview img{ width:100%; height:150px; object-fit:cover; border-radius:.5rem; transition:transform .15s ease; }
.gallery-preview a:hover img{ transform:scale(1.03); }

/* ---- Stats bar ---- */
.stats-bar{ background: var(--bg-soft); padding:2rem 0; }
.stat-item{ text-align:center; }
.stat-item .s-icon{ width:56px; height:56px; border-radius:50%; background:#fff; display:flex; align-items:center; justify-content:center; margin:0 auto .6rem; color: var(--blue); font-size:1.4rem; box-shadow:0 2px 8px rgba(0,0,0,.06); }
.stat-item .s-num{ font-weight:800; font-size:1.6rem; color: var(--navy); }
.stat-item .s-label{ color: var(--text-muted); font-size:.82rem; }

/* ---- Footer ---- */
footer.site-footer{ background: var(--navy); color:#c3d0e6; }
footer.site-footer h6{ color:#fff; font-weight:700; margin-bottom:1rem; }
footer.site-footer a{ color:#c3d0e6; text-decoration:none; font-size:.85rem; }
footer.site-footer a:hover{ color:#fff; }
footer.site-footer .footer-brand{ color:#fff; font-weight:800; }
footer.site-footer .footer-social a{ display:inline-flex; align-items:center; justify-content:center; width:32px; height:32px; border-radius:50%; background:rgba(255,255,255,.1); margin-right:.5rem; }
footer.site-footer hr{ border-color:rgba(255,255,255,.15); }

.card-hover{ transition: transform .15s ease, box-shadow .15s ease; }
.card-hover:hover{ transform: translateY(-4px); box-shadow: 0 10px 24px rgba(0,0,0,.08); }
