/* ============================================================
   style.css — Sankalpa Academy Dharwad
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@600;700;800&family=DM+Sans:wght@300;400;500;600&family=Noto+Sans+Kannada:wght@400;600&display=swap');

:root {
  --blue-dark:   #0B3A67;
  --blue-mid:    #0E4D8A;
  --blue-light:  #1A6BB5;
  --gold:        #D6A944;
  --gold-light:  #F6E86D;
  --teal:        #48B8C8;
  --teal-dark:   #2E9AAE;
  --white:       #FFFFFF;
  --off-white:   #F8F9FB;
  --gray-light:  #F0F2F5;
  --gray-mid:    #D1D5DB;
  --gray-text:   #6B7280;
  --dark-text:   #111827;
  --success:     #16A34A;
  --error:       #DC2626;
  --font-display:'Playfair Display', Georgia, serif;
  --font-body:   'DM Sans', sans-serif;
  --font-kannada:'Noto Sans Kannada', sans-serif;
  --shadow-sm:   0 2px 8px rgba(11,58,103,0.08);
  --shadow-md:   0 8px 24px rgba(11,58,103,0.14);
  --shadow-lg:   0 20px 50px rgba(11,58,103,0.18);
  --shadow-gold: 0 4px 20px rgba(216,160,75,0.30);
  --radius-sm:   6px;
  --radius-md:   12px;
  --radius-lg:   20px;
  --radius-xl:   32px;
  --transition:  all 0.3s cubic-bezier(0.4,0,0.2,1);
  --nav-height:  72px;
}

html, body { box-sizing: border-box; margin: 0; padding: 0; overflow-x: hidden; max-width: 100%; }
*, *::before, *::after { box-sizing: border-box; }
body { font-family: var(--font-body); color: var(--dark-text); background: var(--white); line-height: 1.65; }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
ul { list-style: none; margin: 0; padding: 0; }
button { cursor: pointer; border: none; background: none; font-family: var(--font-body); }
input, textarea, select { font-family: var(--font-body); }

h1,h2,h3,h4 { font-family: var(--font-display); line-height: 1.2; margin: 0; }
h1 { font-size: clamp(2rem,5vw,3.6rem); font-weight: 800; }
h2 { font-size: clamp(1.7rem,3.5vw,2.6rem); font-weight: 700; }
h3 { font-size: clamp(1.1rem,2vw,1.5rem); font-weight: 600; }
h4 { font-size: 1rem; font-weight: 600; }
p  { font-size: 1rem; color: var(--gray-text); margin: 0; }
.kannada { font-family: var(--font-kannada); }

.container { max-width: 1180px; margin: 0 auto; padding: 0 24px; }
.section { padding: 80px 0; }
.section-sm { padding: 56px 0; }

.section-header { text-align: center; margin-bottom: 52px; }
.section-header h2 { color: var(--blue-dark); margin-bottom: 10px; }
.section-header p  { max-width: 540px; margin: 0 auto; font-size: 1rem; }
.section-label {
  display: inline-block; font-size: 0.72rem; font-weight: 600;
  letter-spacing: 0.15em; text-transform: uppercase;
  color: var(--blue-dark); background: rgba(216, 160, 75, 0.18);
  padding: 4px 14px; border-radius: 100px; margin-bottom: 10px;
}
.divider { width: 48px; height: 3px; background: linear-gradient(90deg, var(--gold), var(--teal)); border-radius: 2px; margin: 14px auto 0; }

/* BUTTONS */
.btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 13px 28px; border-radius: var(--radius-md);
  font-size: 0.95rem; font-weight: 600;
  transition: var(--transition); white-space: nowrap;
  position: relative; overflow: hidden;
}
.btn-primary { background: linear-gradient(135deg, var(--gold), #C8892F); color: var(--white); box-shadow: var(--shadow-gold); }
.btn-primary:hover { transform: translateY(-2px); box-shadow: 0 8px 28px rgba(216,160,75,0.45); }
.btn-outline { background: linear-gradient(135deg, var(--gold), #C8892F); color: #08243f; border: 2px solid rgba(246,232,109,0.9); box-shadow: var(--shadow-gold); backdrop-filter: blur(6px); }
.btn-outline:hover { background: linear-gradient(135deg, var(--gold-light), var(--gold)); color: #08243f; border-color: var(--gold-light); transform: translateY(-2px); box-shadow: 0 8px 28px rgba(216,160,75,0.45); }
.btn-blue { background: var(--blue-dark); color: var(--white); box-shadow: var(--shadow-md); }
.btn-blue:hover { background: var(--blue-mid); transform: translateY(-2px); }
.btn-teal { background: var(--teal); color: var(--white); }
.btn-teal:hover { background: var(--teal-dark); transform: translateY(-2px); }
.btn-sm { padding: 8px 18px; font-size: 0.82rem; }
.btn::after {
  content:''; position:absolute; top:0; left:-100%; width:100%; height:100%;
  background: linear-gradient(120deg, transparent, rgba(255,255,255,0.22), transparent);
  transition: left 0.55s ease;
}
.btn:hover::after { left: 100%; }

/* NAVBAR */
.navbar { position: fixed; top:0; left:0; right:0; height: var(--nav-height); z-index: 1000; transition: var(--transition); }
.navbar.scrolled { background: rgba(11,58,103,0.97); backdrop-filter: blur(12px); box-shadow: 0 2px 20px rgba(0,0,0,0.2); }
.navbar.solid    { background: var(--blue-dark); box-shadow: 0 2px 20px rgba(0,0,0,0.2); }
.nav-inner { max-width:1180px; margin:0 auto; padding:0 24px; height:100%; display:flex; align-items:center; justify-content:space-between; }
.nav-brand { display:flex; align-items:center; gap:12px; }
.nav-logo  { width:44px; height:44px; object-fit:contain; border-radius:50%; background:var(--white); padding:3px; }
.nav-brand-name { font-family:var(--font-display); font-size:1.05rem; font-weight:700; color:var(--white); display:block; }
.nav-brand-sub  { font-size:0.62rem; color:#F6E86D; letter-spacing:0.1em; text-transform:uppercase; }
.nav-links { display:flex; align-items:center; gap:4px; }
.nav-links a { color:rgba(255,255,255,0.85); font-size:0.88rem; font-weight:500; padding:6px 11px; border-radius:var(--radius-sm); transition:var(--transition); }
.nav-links a:hover, .nav-links a.active { color:var(--white); background:rgba(255,255,255,0.1); }
.nav-cta { background:linear-gradient(135deg,#F6E86D,#D6A944) !important; color:#08243f !important; padding:7px 16px !important; border-radius:var(--radius-md) !important; }
.nav-cta:hover { background:#C8892F !important; transform:translateY(-1px); }
.hamburger { display:none; flex-direction:column; gap:5px; padding:6px; }
.hamburger span { display:block; width:24px; height:2px; background:var(--white); border-radius:2px; transition:var(--transition); }
.hamburger.open span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.hamburger.open span:nth-child(2) { opacity:0; }
.hamburger.open span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }
.mobile-nav { display:none; position:fixed; top:var(--nav-height); left:0; right:0; background:var(--blue-dark); padding:18px 20px 24px; z-index:999; flex-direction:column; gap:3px; box-shadow:0 8px 30px rgba(0,0,0,0.3); animation:slideDown 0.25s ease; }
.mobile-nav.open { display:flex; }
.mobile-nav a { color:rgba(255,255,255,0.88); font-size:0.95rem; font-weight:500; padding:11px 14px; border-radius:var(--radius-sm); transition:var(--transition); }
.mobile-nav a:hover { background:rgba(255,255,255,0.1); color:var(--white); }
@keyframes slideDown { from{opacity:0;transform:translateY(-8px)} to{opacity:1;transform:translateY(0)} }

/* PAGE HEADER */
.page-header { background:linear-gradient(135deg, var(--blue-dark) 0%, #0E4D8A 60%, var(--teal-dark) 100%); padding:110px 0 56px; position:relative; overflow:hidden; }
.page-header::after { content:''; position:absolute; bottom:-1px; left:0; right:0; height:56px; background:var(--white); clip-path:ellipse(55% 100% at 50% 100%); }
.page-header-content { position:relative; z-index:1; text-align:center; }
.page-header h1 { color:var(--white); margin-bottom:10px; }
.page-header p  { color:rgba(255,255,255,0.72); font-size:1rem; max-width:480px; margin:0 auto; }
.breadcrumb { display:flex; align-items:center; justify-content:center; gap:8px; margin-top:14px; font-size:0.82rem; }
.breadcrumb a { color:var(--gold-light); }
.breadcrumb a:hover { color:var(--gold); }
.breadcrumb span { color:rgba(255,255,255,0.35); }
.breadcrumb .current { color:rgba(255,255,255,0.65); }

/* CARDS */
.card { background:var(--white); border-radius:var(--radius-lg); box-shadow:var(--shadow-sm); border:1px solid rgba(11,58,103,0.07); transition:var(--transition); overflow:hidden; }
.card:hover { transform:translateY(-5px); box-shadow:var(--shadow-lg); border-color:rgba(216,160,75,0.2); }

/* COURSE CARDS */
.courses-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:24px; }
.course-card { background:var(--white); border-radius:var(--radius-lg); padding:28px 24px; box-shadow:var(--shadow-sm); border:1px solid rgba(11,58,103,0.08); transition:var(--transition); position:relative; overflow:hidden; }
.course-card::before { content:''; position:absolute; top:0;left:0;right:0; height:4px; background:linear-gradient(90deg,var(--blue-dark),var(--teal)); }
.course-card:hover { transform:translateY(-7px); box-shadow:var(--shadow-lg); }
.course-card:hover::before { background:linear-gradient(90deg,var(--gold),var(--teal)); }
.course-icon { width:52px; height:52px; border-radius:var(--radius-md); display:flex; align-items:center; justify-content:center; font-size:1.5rem; margin-bottom:16px; background:linear-gradient(135deg,rgba(11,58,103,0.07),rgba(72,184,200,0.1)); }
.course-card h3 { color:var(--blue-dark); margin-bottom:8px; }
.course-card p  { font-size:0.88rem; margin-bottom:16px; }
.course-tag { display:inline-block; background:rgba(72,184,200,0.1); color:var(--teal-dark); font-size:0.72rem; font-weight:600; padding:3px 11px; border-radius:100px; border:1px solid rgba(72,184,200,0.22); }

/* FACILITY CARDS */
.facilities-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:20px; }
.facility-card { background:var(--white); border-radius:var(--radius-lg); padding:26px 22px; box-shadow:var(--shadow-sm); border:1px solid rgba(11,58,103,0.07); transition:var(--transition); text-align:center; }
.facility-card:hover { transform:translateY(-5px); box-shadow:var(--shadow-md); border-color:rgba(216,160,75,0.25); }
.facility-icon { width:64px; height:64px; border-radius:50%; background:linear-gradient(135deg,var(--blue-dark),var(--blue-mid)); color:var(--white); display:flex; align-items:center; justify-content:center; font-size:1.7rem; margin:0 auto 16px; box-shadow:0 6px 20px rgba(11,58,103,0.22); transition:var(--transition); }
.facility-card:hover .facility-icon { background:linear-gradient(135deg,var(--gold),#C8892F); box-shadow:var(--shadow-gold); transform:scale(1.08); }
.facility-card h4 { color:var(--blue-dark); margin-bottom:7px; }
.facility-card p  { font-size:0.86rem; }

/* SECTION DARK */
.section-dark { background:linear-gradient(135deg,var(--blue-dark) 0%,#0E4D8A 100%); position:relative; overflow:hidden; }
.section-dark::before { content:''; position:absolute; inset:0; background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23ffffff' fill-opacity='0.03'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4z'/%3E%3C/g%3E%3C/svg%3E"); }
.section-dark .section-header h2  { color:var(--white); }
.section-dark .section-header p   { color:rgba(255,255,255,0.68); }
.section-dark .section-label      { background:rgba(216,160,75,0.18); color:var(--gold-light); }

/* GALLERY */
.gallery-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.gallery-item { border-radius:var(--radius-md); overflow:hidden; position:relative; aspect-ratio:4/3; cursor:pointer; }
.gallery-item img { width:100%; height:100%; object-fit:cover; transition:transform 0.5s ease; }
.gallery-overlay { position:absolute; inset:0; background:linear-gradient(to top,rgba(11,58,103,0.8),transparent); opacity:0; transition:var(--transition); display:flex; align-items:flex-end; padding:16px; }
.gallery-item:hover .gallery-overlay { opacity:1; }
.gallery-item:hover img { transform:scale(1.06); }
.gallery-overlay span { color:var(--white); font-weight:600; font-size:0.86rem; }
.gallery-item.large { grid-column:span 2; }

/* LIGHTBOX */
.lightbox { display:none; position:fixed; inset:0; background:rgba(0,0,0,0.92); z-index:9999; align-items:center; justify-content:center; }
.lightbox.open { display:flex; }
.lightbox-img { max-width:90vw; max-height:88vh; border-radius:var(--radius-md); }
.lightbox-close { position:absolute; top:20px; right:20px; color:var(--white); font-size:2rem; cursor:pointer; width:42px; height:42px; display:flex; align-items:center; justify-content:center; background:rgba(255,255,255,0.1); border-radius:50%; transition:var(--transition); }
.lightbox-close:hover { background:rgba(255,255,255,0.22); }

/* NOTIFICATIONS */
.notification-list { display:flex; flex-direction:column; gap:14px; }
.notification-item { background:var(--white); border-radius:var(--radius-md); padding:20px 24px; box-shadow:var(--shadow-sm); border:1px solid rgba(11,58,103,0.07); border-left:4px solid var(--blue-dark); transition:var(--transition); display:flex; gap:16px; align-items:flex-start; }
.notification-item:hover { transform:translateX(4px); box-shadow:var(--shadow-md); border-left-color:var(--gold); }
.notif-icon { width:42px; height:42px; border-radius:var(--radius-sm); background:linear-gradient(135deg,var(--blue-dark),var(--teal)); display:flex; align-items:center; justify-content:center; color:var(--white); font-size:1rem; flex-shrink:0; }
.notif-content h4 { color:var(--blue-dark); margin-bottom:5px; }
.notif-content p  { font-size:0.88rem; margin-bottom:8px; }
.notif-date  { font-size:0.75rem; color:var(--gray-mid); }
.notif-new   { display:inline-block; background:var(--teal); color:var(--white); font-size:0.65rem; font-weight:700; padding:2px 8px; border-radius:100px; margin-left:8px; vertical-align:middle; }

/* MINI NOTIFICATION */
.notif-mini { display:flex; align-items:flex-start; gap:10px; background:var(--white); border-radius:10px; padding:11px 13px; box-shadow:0 2px 8px rgba(11,58,103,0.07); border:1px solid rgba(11,58,103,0.06); border-left:3px solid var(--blue-dark); transition:all 0.25s ease; }
.notif-mini:hover { transform:translateX(3px); border-left-color:var(--gold); }
.notif-mini-icon { width:28px; height:28px; border-radius:6px; flex-shrink:0; background:linear-gradient(135deg,var(--blue-dark),var(--teal)); display:flex; align-items:center; justify-content:center; color:#fff; font-size:0.75rem; }
.notif-mini h5 { font-size:0.82rem; color:var(--blue-dark); margin-bottom:1px; font-weight:600; line-height:1.3; }
.notif-mini p  { font-size:0.72rem; color:var(--gray-text); margin:0; line-height:1.3; display:-webkit-box; -webkit-line-clamp:1; -webkit-box-orient:vertical; overflow:hidden; }
.notif-mini-date { font-size:0.65rem; color:var(--gray-mid); margin-top:2px; }

/* FORMS */
.form-group { margin-bottom:18px; }
.form-group label { display:block; font-size:0.86rem; font-weight:600; color:var(--blue-dark); margin-bottom:6px; }
.form-group .required { color:var(--error); }
.form-control { width:100%; padding:11px 14px; border:1.5px solid var(--gray-mid); border-radius:var(--radius-sm); font-size:0.92rem; color:var(--dark-text); background:var(--white); transition:var(--transition); outline:none; }
.form-control:focus { border-color:var(--blue-light); box-shadow:0 0 0 3px rgba(11,58,103,0.08); }
.form-control::placeholder { color:var(--gray-mid); }
textarea.form-control { resize:vertical; min-height:110px; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.form-success { display:none; background:rgba(22,163,74,0.1); border:1px solid rgba(22,163,74,0.3); color:var(--success); padding:14px 18px; border-radius:var(--radius-md); text-align:center; font-weight:600; margin-top:14px; }
.form-error-msg { display:none; background:rgba(220,38,38,0.07); border:1px solid rgba(220,38,38,0.2); color:var(--error); padding:10px 14px; border-radius:var(--radius-sm); font-size:0.86rem; margin-top:8px; }

/* CONTACT */
.contact-grid { display:grid; grid-template-columns:1fr 1.5fr; gap:44px; align-items:start; }
.contact-info-block { display:flex; flex-direction:column; gap:16px; }
.contact-item { display:flex; gap:14px; align-items:flex-start; background:var(--white); border-radius:var(--radius-md); padding:18px; box-shadow:var(--shadow-sm); border:1px solid rgba(11,58,103,0.07); transition:var(--transition); }
.contact-item:hover { transform:translateY(-3px); box-shadow:var(--shadow-md); }
.contact-item-icon { width:44px; height:44px; border-radius:var(--radius-sm); background:linear-gradient(135deg,var(--blue-dark),var(--teal)); display:flex; align-items:center; justify-content:center; color:var(--white); font-size:1rem; flex-shrink:0; }
.contact-item h4 { color:var(--blue-dark); font-size:0.88rem; margin-bottom:3px; }
.contact-item p  { font-size:0.86rem; }
.contact-item a  { color:var(--blue-mid); }
.contact-item a:hover { color:var(--gold); }
.contact-form-wrap { background:var(--white); border-radius:var(--radius-lg); padding:36px; box-shadow:var(--shadow-md); border:1px solid rgba(11,58,103,0.08); }
.contact-form-wrap h3 { color:var(--blue-dark); margin-bottom:5px; }
.contact-form-wrap > p { font-size:0.88rem; margin-bottom:24px; }

/* SUCCESS BANNER */
.success-banner { background:linear-gradient(135deg,var(--gold) 0%,#C8892F 100%); padding:52px 0; position:relative; overflow:hidden; }
.success-banner::before { content:'"'; position:absolute; top:-20px; right:60px; font-family:var(--font-display); font-size:14rem; color:rgba(255,255,255,0.07); line-height:1; }
.success-banner-content { display:grid; grid-template-columns:1fr auto; gap:36px; align-items:center; }
.success-banner blockquote { font-family:var(--font-display); font-size:clamp(1.2rem,2.5vw,1.8rem); font-weight:600; color:var(--white); line-height:1.4; }
.success-banner cite { display:block; font-family:var(--font-body); font-size:0.86rem; color:rgba(255,255,255,0.78); font-style:normal; margin-top:10px; }
.success-stats { display:flex; gap:28px; flex-shrink:0; }
.success-stat { text-align:center; color:var(--white); }
.success-stat-num   { font-family:var(--font-display); font-size:2.2rem; font-weight:800; line-height:1; }
.success-stat-label { font-size:0.76rem; opacity:0.8; margin-top:3px; }

/* FACILITIES CAROUSEL */
.fac-carousel { overflow:hidden; }
.fac-track { display:flex; gap:14px; animation:facScroll 22s linear infinite; width:max-content; }
.fac-track:hover { animation-play-state:paused; }
.fac-card-s { flex-shrink:0; width:200px; background:rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.12); border-radius:var(--radius-md); padding:22px 18px; text-align:center; transition:all 0.25s ease; }
.fac-card-s:hover { background:rgba(255,255,255,0.14); transform:translateY(-4px); border-color:rgba(216,160,75,0.5); }
.fac-card-s .fi { font-size:2rem; margin-bottom:10px; }
.fac-card-s h4  { color:#fff; font-size:0.86rem; margin-bottom:5px; }
.fac-card-s p   { color:rgba(255,255,255,0.58); font-size:0.75rem; }
@keyframes facScroll { from{transform:translateX(0)} to{transform:translateX(-50%)} }

/* TICKER */
.ticker-wrap { background:var(--gold); padding:9px 0; overflow:hidden; position:relative; z-index:10; }
.ticker-label { position:absolute; left:0; top:0; bottom:0; background:var(--blue-dark); color:var(--white); display:flex; align-items:center; padding:0 18px; font-size:0.75rem; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; z-index:2; white-space:nowrap; }
.ticker-track { display:flex; animation:ticker 16s linear infinite; gap:52px; padding-left:150px; padding-right:110px; }
.ticker-track:hover { animation-play-state:paused; }
.ticker-track span { white-space:nowrap; font-size:0.86rem; font-weight:600; color:var(--blue-dark); display:flex; align-items:center; gap:7px; }
.ticker-track span::before { content:'★'; opacity:0.65; }
@keyframes ticker { from{transform:translateX(0)} to{transform:translateX(-50%)} }
.ticker-view-all { position:absolute; right:12px; top:50%; transform:translateY(-50%); background:var(--blue-dark); color:var(--white); padding:5px 14px; border-radius:100px; font-size:0.74rem; font-weight:700; z-index:3; box-shadow:0 4px 12px rgba(11,58,103,0.18); transition:var(--transition); }
.ticker-view-all:hover { background:var(--blue-mid); transform:translateY(-50%) scale(1.04); }

/* ADMIN */
.admin-wrap { min-height:100vh; display:flex; background:var(--gray-light); }
.admin-sidebar { width:256px; background:var(--blue-dark); min-height:100vh; position:fixed; top:0; left:0; bottom:0; z-index:100; display:flex; flex-direction:column; }
.admin-sidebar-logo { padding:24px 20px; border-bottom:1px solid rgba(255,255,255,0.1); display:flex; align-items:center; gap:10px; }
.admin-sidebar-logo img { width:38px; height:38px; object-fit:contain; background:var(--white); border-radius:50%; padding:3px; }
.admin-sidebar-logo span { font-family:var(--font-display); color:var(--white); font-size:0.9rem; font-weight:700; }
.admin-nav { flex:1; padding:16px 0; }
.admin-nav-item { display:flex; align-items:center; gap:11px; padding:11px 20px; color:rgba(255,255,255,0.68); font-size:0.88rem; font-weight:500; transition:var(--transition); cursor:pointer; border-left:3px solid transparent; }
.admin-nav-item:hover, .admin-nav-item.active { color:var(--white); background:rgba(255,255,255,0.08); border-left-color:var(--gold); }
.admin-nav-item .icon { font-size:1rem; }
.admin-signout { padding:18px 20px; border-top:1px solid rgba(255,255,255,0.1); }
.admin-main { flex:1; margin-left:256px; padding:28px; }
.admin-topbar { display:flex; align-items:center; justify-content:space-between; margin-bottom:28px; }
.admin-topbar h2 { color:var(--blue-dark); }
.admin-cards { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; margin-bottom:28px; }
.admin-card { background:var(--white); border-radius:var(--radius-md); padding:24px; box-shadow:var(--shadow-sm); display:flex; align-items:center; gap:18px; border:1px solid rgba(11,58,103,0.07); }
.admin-card-icon { width:52px; height:52px; border-radius:var(--radius-md); display:flex; align-items:center; justify-content:center; font-size:1.4rem; }
.admin-card-icon.blue { background:rgba(11,58,103,0.1); }
.admin-card-icon.gold { background:rgba(216,160,75,0.12); }
.admin-card-num   { font-family:var(--font-display); font-size:1.9rem; font-weight:800; color:var(--blue-dark); line-height:1; }
.admin-card-label { font-size:0.82rem; color:var(--gray-text); margin-top:3px; }
.admin-panel { background:var(--white); border-radius:var(--radius-lg); padding:24px; box-shadow:var(--shadow-sm); border:1px solid rgba(11,58,103,0.07); margin-bottom:24px; }
.admin-panel-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:20px; padding-bottom:14px; border-bottom:1px solid var(--gray-light); }
.admin-panel-header h3 { color:var(--blue-dark); font-size:1rem; }
.data-table { width:100%; border-collapse:collapse; font-size:0.86rem; }
.data-table th { text-align:left; padding:9px 12px; background:var(--gray-light); color:var(--blue-dark); font-weight:600; font-size:0.76rem; text-transform:uppercase; letter-spacing:0.05em; }
.data-table td { padding:11px 12px; border-bottom:1px solid var(--gray-light); vertical-align:top; }
.data-table tr:last-child td { border-bottom:none; }
.data-table tr:hover td { background:rgba(11,58,103,0.02); }
.badge { display:inline-block; padding:3px 9px; border-radius:100px; font-size:0.72rem; font-weight:600; }
.badge-blue { background:rgba(11,58,103,0.1); color:var(--blue-dark); }
.badge-teal { background:rgba(72,184,200,0.12); color:var(--teal-dark); }
.badge-gold { background:rgba(216,160,75,0.12); color:#996B1A; }
.search-bar { display:flex; align-items:center; gap:9px; background:var(--gray-light); border:1.5px solid var(--gray-mid); border-radius:var(--radius-sm); padding:8px 12px; margin-bottom:16px; transition:var(--transition); }
.search-bar:focus-within { border-color:var(--blue-light); background:var(--white); }
.search-bar input { border:none; outline:none; background:transparent; font-size:0.88rem; width:100%; color:var(--dark-text); }

/* MODALS */
.modal-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,0.5); z-index:2000; align-items:center; justify-content:center; }
.modal-overlay.open { display:flex; }
.modal { background:var(--white); border-radius:var(--radius-lg); padding:32px; width:100%; max-width:500px; margin:20px; box-shadow:var(--shadow-lg); }
.modal-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:22px; }
.modal-header h3 { color:var(--blue-dark); }
.modal-close { font-size:1.4rem; color:var(--gray-text); cursor:pointer; }
.modal-close:hover { color:var(--blue-dark); }

/* ADMIN LOGIN */
.admin-login-page { min-height:100vh; background:linear-gradient(135deg,var(--blue-dark) 0%,#0E4D8A 60%,var(--teal-dark) 100%); display:flex; align-items:center; justify-content:center; padding:20px; }
.login-card { background:var(--white); border-radius:var(--radius-xl); padding:44px 40px; width:100%; max-width:400px; box-shadow:0 30px 80px rgba(0,0,0,0.28); }
.login-card-logo { text-align:center; margin-bottom:28px; }
.login-card-logo img { width:68px; height:68px; object-fit:contain; margin:0 auto 12px; }
.login-card-logo h2 { color:var(--blue-dark); font-size:1.35rem; }
.login-card-logo p  { font-size:0.82rem; color:var(--gray-text); margin-top:3px; }

/* FOOTER */
.footer { background:var(--blue-dark); color:rgba(255,255,255,0.78); padding:64px 0 0; }
.footer-grid { display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:44px; margin-bottom:44px; }
.footer-brand img { width:64px; height:64px; object-fit:contain; background:rgba(255,255,255,0.1); border-radius:50%; padding:5px; margin-bottom:14px; }
.footer-brand h3  { font-family:var(--font-display); font-size:1rem; color:var(--white); margin-bottom:4px; }
.footer-brand .tagline { font-family:var(--font-kannada); font-size:0.8rem; color:var(--gold-light); margin-bottom:10px; }
.footer-brand p   { font-size:0.84rem; line-height:1.65; }
.footer-col h4 { color:var(--white); font-size:0.82rem; font-weight:700; letter-spacing:0.05em; text-transform:uppercase; margin-bottom:16px; padding-bottom:9px; border-bottom:1px solid rgba(255,255,255,0.1); }
.footer-col ul li { margin-bottom:9px; }
.footer-col ul li a { font-size:0.84rem; color:rgba(255,255,255,0.62); transition:var(--transition); display:inline-flex; align-items:center; gap:5px; }
.footer-col ul li a::before { content:'›'; color:var(--gold); font-weight:700; font-size:1rem; }
.footer-col ul li a:hover { color:var(--gold-light); padding-left:3px; }
.footer-contact-item { display:flex; gap:9px; align-items:flex-start; margin-bottom:10px; font-size:0.84rem; }
.footer-contact-item .icon { color:var(--gold); font-size:0.95rem; flex-shrink:0; margin-top:1px; }
.footer-bottom { border-top:1px solid rgba(255,255,255,0.1); padding:18px 0; display:flex; align-items:center; justify-content:space-between; font-size:0.78rem; color:rgba(255,255,255,0.38); }
.footer-bottom a { color:var(--gold-light); }
.footer-bottom a:hover { color:var(--gold); }

/* SCROLL TOP */
.scroll-top { position:fixed; bottom:26px; right:26px; width:44px; height:44px; background:var(--blue-dark); color:var(--white); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:1.1rem; box-shadow:var(--shadow-md); cursor:pointer; z-index:500; opacity:0; transform:translateY(18px); transition:var(--transition); border:2px solid rgba(255,255,255,0.18); }
.scroll-top.visible { opacity:1; transform:translateY(0); }
.scroll-top:hover { background:var(--gold); transform:translateY(-3px) scale(1.05); }

/* WHATSAPP */
.whatsapp-float { position:fixed; bottom:82px; right:26px; width:50px; height:50px; background:#25D366; border-radius:50%; display:flex; align-items:center; justify-content:center; box-shadow:0 4px 18px rgba(37,211,102,0.4); z-index:500; transition:var(--transition); animation:floatWA 3.5s ease-in-out infinite; }
.whatsapp-float:hover { transform:scale(1.1); box-shadow:0 8px 28px rgba(37,211,102,0.5); }
.whatsapp-float svg { width:26px; height:26px; fill:var(--white); }
@keyframes floatWA { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-7px)} }

/* ANIMATIONS */
@keyframes fadeUp { from{opacity:0;transform:translateY(28px)} to{opacity:1;transform:translateY(0)} }
@keyframes fadeIn { from{opacity:0} to{opacity:1} }
.reveal       { opacity:0; transform:translateY(36px); transition:opacity 0.65s ease,transform 0.65s ease; }
.reveal-left  { opacity:0; transform:translateX(-36px); transition:opacity 0.65s ease,transform 0.65s ease; }
.reveal-right { opacity:0; transform:translateX(36px); transition:opacity 0.65s ease,transform 0.65s ease; }
.reveal.revealed, .reveal-left.revealed, .reveal-right.revealed { opacity:1; transform:translate(0); }
.delay-1{transition-delay:0.1s} .delay-2{transition-delay:0.2s} .delay-3{transition-delay:0.3s} .delay-4{transition-delay:0.4s} .delay-5{transition-delay:0.5s}
.spinner { width:34px; height:34px; border:3px solid var(--gray-mid); border-top-color:var(--blue-dark); border-radius:50%; animation:spin 0.7s linear infinite; margin:20px auto; }
@keyframes spin{to{transform:rotate(360deg)}}
.loading-state{text-align:center;padding:32px 20px;color:var(--gray-text)}

/* SOCIAL */
.social-bar { display:flex; gap:9px; margin-top:18px; flex-wrap:wrap; }
.social-btn { width:36px; height:36px; border-radius:9px; display:flex; align-items:center; justify-content:center; text-decoration:none; transition:all 0.25s ease; flex-shrink:0; }
.social-btn:hover { transform:translateY(-3px) scale(1.12); }
.social-btn svg { width:17px; height:17px; }
.s-insta { background:linear-gradient(135deg,#833ab4,#fd1d1d,#fcb045); }
.s-fb    { background:#1877F2; }
.s-tw    { background:#111827; }
.s-tg    { background:#229ED9; }
.s-yt    { background:#FF0000; }

/* ════════════════════════
   RESPONSIVE
════════════════════════ */

/* ── TABLET (≤1024px) ── */
@media (max-width:1024px) {
  .hero-content { grid-template-columns:1fr; padding-top:calc(var(--nav-height)+36px); padding-bottom:52px; gap:28px; text-align:center; }
  .hero-image-col { max-width:480px; margin:0 auto; }
  .hero-actions { justify-content:center; }
  .social-bar { justify-content:center; }
  .footer-grid { grid-template-columns:1fr 1fr; gap:28px; }
  .contact-grid { grid-template-columns:1fr; }
  .success-banner-content { grid-template-columns:1fr; }
  .success-stats { justify-content:center; }

  /* About page two-col grids */
  .container [style*="grid-template-columns:1fr 1fr"],
  .container [style*="grid-template-columns:280px 1fr"] {
    grid-template-columns: 1fr !important;
  }
}

/* ── MOBILE (≤768px) ── */
@media (max-width:768px) {
  :root { --nav-height:60px; }

  /* NAV */
  .nav-links { display:none; }
  .hamburger { display:flex; }
  .nav-brand-sub { display:none; }
  .nav-inner { padding:0 14px; }
  .mobile-nav a { font-size:1rem; padding:13px 14px; }

  /* GLOBAL LAYOUT */
  .container { padding:0 14px !important; }
  .section { padding:36px 0 !important; }
  .section-sm { padding:24px 0 !important; }
  .section-header { margin-bottom:22px !important; }
  .section-header h2 { font-size:1.3rem !important; }
  .section-label { font-size:0.65rem !important; padding:3px 10px !important; }
  .divider { margin:10px auto 0; }
  h2 { font-size:1.3rem !important; }
  h3 { font-size:1.05rem !important; }

  /* PAGE HEADER */
  .page-header { padding:86px 0 44px; }
  .page-header h1 { font-size:1.65rem !important; }
  .page-header p  { font-size:0.88rem; }
  .page-header::after { height:36px; }

  /* ── INDEX: HERO (handled in index.html inline styles) ── */

  /* ── INDEX: WHY GRID ── */
  .why-grid,
  div[style*="grid-template-columns:repeat(4,1fr)"] {
    grid-template-columns: 1fr 1fr !important;
    gap: 10px !important;
  }
  .why-card { padding:14px 11px !important; }

  /* ── INDEX: COURSES GRID ── */
  .courses-grid { grid-template-columns:1fr 1fr; gap:10px; }
  .course-card  { padding:14px 12px; }
  .course-icon  { width:36px; height:36px; font-size:1rem; margin-bottom:8px; }
  .course-card h3 { font-size:0.88rem; }
  .course-card p  { font-size:0.74rem; }
  .course-tag     { font-size:0.63rem; }

  /* ── INDEX: STATS BAND ── */
  .stats-band,
  div.stats-band { padding:18px 0 !important; }
  .stats-inner { flex-wrap:wrap !important; gap:0 !important; }
  .stats-inner > div { flex:1; min-width:50%; padding:10px 4px !important; text-align:center; }
  .sep { display:none !important; }
  .snum { font-size:1.4rem !important; }
  .slbl { font-size:0.64rem !important; }

  /* ── INDEX: FACILITIES CAROUSEL ── */
  .fac-card-s { width:148px !important; padding:14px 11px !important; }
  .fac-card-s .fi { font-size:1.5rem !important; }
  .fac-card-s h4  { font-size:0.76rem !important; }
  .fac-card-s p   { font-size:0.66rem !important; }

  /* ── INDEX: NOTIFICATION MINI ── */
  .notif-mini { padding:9px 10px !important; gap:8px !important; }
  .notif-mini h5 { font-size:0.78rem !important; }
  .notif-mini p  { font-size:0.68rem !important; }

  /* ── INDEX: CTA ── */
  .cta-section { padding:36px 0 !important; }
  .cta-section h2,
  .cta-section [style*="color:#fff"] { font-size:1.2rem !important; }

  /* ── TICKER ── */
  .ticker-wrap  { padding:6px 0 !important; }
  .ticker-label { font-size:0.63rem !important; padding:0 9px !important; }
  .ticker-track { padding-left:90px !important; padding-right:80px !important; gap:32px !important; animation-duration:7s !important; }
  .ticker-track span { font-size:0.76rem !important; }
  .ticker-view-all { right:6px !important; padding:4px 8px !important; font-size:0.63rem !important; }

  /* ── ABOUT PAGE ── */
  /* Story section: two-col → single col */
  .container > .section > .container > div[style*="grid-template-columns:1fr 1fr"],
  div[style*="grid-template-columns:1fr 1fr"],
  div[style*="grid-template-columns:280px 1fr"],
  div[style*="grid-template-columns:1fr 1.5fr"] {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }
  /* Image floating badge positioning fix on mobile */
  div[style*="position:absolute;bottom:-20px;right:-20px"] {
    position: relative !important;
    bottom: auto !important;
    right: auto !important;
    margin-top: 12px !important;
    display: inline-block !important;
  }
  /* Float badges on image frame */
  .float-badge.fb1,
  .float-badge.fb2 { display:none !important; }

  /* Mission/Vision grid */
  div[style*="grid-template-columns:1fr 1fr;gap:24px"] {
    grid-template-columns: 1fr !important;
  }
  /* Achievements grid */
  div[style*="grid-template-columns:repeat(auto-fill,minmax(180px,1fr))"] {
    grid-template-columns: 1fr 1fr !important;
    gap: 12px !important;
  }

  /* ── COURSES PAGE ── */
  .cdc {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
    padding: 18px !important;
  }
  .cdc > div:last-child { text-align: left !important; }

  /* ── FACILITIES PAGE ── */
  .facilities-grid { grid-template-columns:1fr 1fr; gap:12px; }
  .facility-card  { padding:18px 14px; }
  .facility-icon  { width:52px; height:52px; font-size:1.4rem; }
  /* Inside-campus two-col grid */
  div[style*="grid-template-columns:1fr 1fr;gap:20px"] {
    grid-template-columns: 1fr !important;
    gap: 14px !important;
  }
  /* Library feature two-col */
  div[style*="grid-template-columns:1fr 1fr;gap:52px"],
  div[style*="grid-template-columns:1fr 1fr;gap:44px"] {
    grid-template-columns: 1fr !important;
    gap: 20px !important;
  }
  /* Stats sub-grid inside library section */
  div[style*="grid-template-columns:1fr 1fr;gap:12px"] {
    grid-template-columns: 1fr 1fr !important;
    gap: 8px !important;
  }
  /* Boys/Girls PG cards */
  div[style*="grid-template-columns:1fr 1fr;gap:24px"] {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }

  /* ── GALLERY PAGE ── */
  .gallery-grid { grid-template-columns:1fr 1fr; gap:8px; }
  .gallery-item.large { grid-column:span 1; }

  /* ── NOTIFICATIONS ── */
  .notification-item { flex-direction:column; gap:10px; padding:14px 12px; }
  .notif-icon { width:36px; height:36px; font-size:0.9rem; }

  /* ── CONTACT PAGE ── */
  .contact-grid { grid-template-columns:1fr !important; gap:20px !important; }
  .contact-form-wrap { padding:22px 16px; }
  .form-row { grid-template-columns:1fr; gap:0; }
  .contact-info-block { gap:12px; }

  /* ── SUCCESS BANNER ── */
  .success-banner-content { grid-template-columns:1fr; }
  .success-stats { flex-wrap:wrap; gap:14px; justify-content:center; }
  .success-banner blockquote { font-size:1.05rem; }
  .success-stat-num { font-size:1.6rem; }

  /* ── FOOTER ── */
  .footer { padding:36px 0 0 !important; }
  .footer-grid { grid-template-columns:1fr 1fr !important; gap:20px !important; }
  .footer-brand img { width:48px; height:48px; }
  .footer-brand h3  { font-size:0.9rem; }
  .footer-brand > p { display:none; }
  .footer-col h4    { font-size:0.73rem; margin-bottom:10px; padding-bottom:6px; }
  .footer-col ul li a { font-size:0.76rem; }
  .footer-col ul li { margin-bottom:6px; }
  .footer-contact-item { font-size:0.76rem; }
  .footer-bottom { flex-direction:column; gap:5px; text-align:center; padding:14px 0; font-size:0.7rem; }

  /* ── ADMIN ── */
  .admin-wrap { flex-direction:column; }
  .admin-sidebar { width:100%; min-height:auto; position:relative; }
  .admin-main { margin-left:0; padding:14px; }
  .admin-cards { grid-template-columns:1fr 1fr; gap:12px; }
  .admin-card { padding:16px; }
  .data-table { display:block; overflow-x:auto; font-size:0.78rem; -webkit-overflow-scrolling:touch; }
  .admin-panel { padding:16px; }
  .admin-topbar { flex-direction:column; align-items:flex-start; gap:6px; }

  /* ── MODALS ── */
  .modal { padding:22px 16px; margin:12px; max-width:calc(100vw - 24px) !important; }
  .login-card { padding:28px 18px; }

  /* ── FIXED BUTTONS ── */
  .scroll-top { bottom:14px; right:14px; width:38px; height:38px; font-size:0.9rem; }
  .whatsapp-float { bottom:62px; right:14px; width:44px; height:44px; }

  /* Buttons full-width on very small forms */
  .contact-form-wrap .btn { width:100%; justify-content:center; }
}

/* ── SMALL MOBILE (≤480px) ── */
@media (max-width:480px) {
  .courses-grid { grid-template-columns:1fr 1fr !important; gap:8px !important; }
  .facilities-grid { grid-template-columns:1fr 1fr !important; gap:9px !important; }
  .gallery-grid { grid-template-columns:1fr 1fr !important; gap:6px !important; }
  .admin-cards { grid-template-columns:1fr !important; }
  .page-header h1 { font-size:1.4rem !important; }
  .gsc .num { font-size:0.9rem !important; }
  .gsc .lbl { font-size:0.55rem !important; }
}

/* ── EXTRA SMALL (≤380px) ── */
@media (max-width:380px) {
  .courses-grid { grid-template-columns:1fr !important; }
  .footer-grid  { grid-template-columns:1fr !important; }
  .admin-cards  { grid-template-columns:1fr !important; }
  .section-header h2 { font-size:1.15rem !important; }
  div[style*="grid-template-columns:repeat(auto-fill,minmax(180px,1fr))"] {
    grid-template-columns: 1fr 1fr !important;
  }
  .facilities-grid { grid-template-columns:1fr !important; }
  .nav-brand-name { font-size:0.9rem; }
}


/* Premium hero polish override */
.navbar{
  background:linear-gradient(180deg,rgba(6,24,45,0.58),rgba(6,24,45,0.12));
  backdrop-filter:blur(12px);
}
.nav-links a.active{
  background:rgba(255,255,255,0.14);
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.12);
}
.hero-actions .btn-primary{
  background:linear-gradient(135deg,#F6E86D 0%,#D6A944 100%);
  color:#08243f;
  box-shadow:0 14px 30px rgba(214,169,68,0.34);
}
.hero-actions .btn-outline{
  background:linear-gradient(135deg,var(--gold),#C8892F) !important;
  color:#08243f !important;
  border:2px solid rgba(246,232,109,0.9) !important;
  box-shadow:var(--shadow-gold) !important;
}
.hero-actions .btn-outline:hover{
  background:linear-gradient(135deg,var(--gold-light),var(--gold)) !important;
  color:#08243f !important;
  border-color:var(--gold-light) !important;
}
.social-bar{
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:20px;
}
.social-btn{
  width:40px;
  height:40px;
  border-radius:12px;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:all .28s ease;
  box-shadow:0 12px 24px rgba(0,0,0,.18);
}
.social-btn:hover{
  transform:translateY(-4px) scale(1.04);
  filter:brightness(1.08);
}
.social-btn svg{width:18px;height:18px;}
.s-yt{background:#FF0000;}
.s-tg{background:#229ED9;}
.s-insta{background:linear-gradient(135deg,#833AB4,#FD1D1D,#FCAF45);}
.s-fb{background:#1877F2;}
.s-tw{background:#111827;}
