/* =========================================================
   NATIONAL SARTHI — Design System
   Palette drawn from the National Sarthi Olympiad identity:
   deep purple field, magenta glow, gold laurel, navy wordmark,
   tricolor thread (saffron / white / green) as the signature rule.
   ========================================================= */

@import url('https://fonts.googleapis.com/css2?family=Ubuntu:ital,wght@0,300;0,400;0,500;0,700;0,800;1,400&family=Ubuntu+Mono:wght@400;700&display=swap');

:root{
  /* ---- color tokens ---- */
  --deep-purple:   #2E1250;
  --royal-purple:  #5B2A86;
  --magenta:       #C42D7D;
  --navy:          #1B2A6E;
  --gold:          #D4AF37;
  --gold-soft:     #E9C766;
  --saffron:       #FF9933;
  --leaf:          #128A4C;
  --paper:         #FAF7FF;
  --paper-dim:     #F1EAFB;
  --ink:           #1F1233;
  --ink-soft:      #4A3D63;
  --white:         #FFFFFF;

  --grad-hero: linear-gradient(135deg, var(--deep-purple) 0%, var(--royal-purple) 55%, var(--magenta) 100%);
  --grad-gold: linear-gradient(90deg, var(--saffron), var(--gold), var(--leaf));

  --font-display: 'Ubuntu', sans-serif;
  --font-body: 'Ubuntu', sans-serif;
  --font-mono: 'Ubuntu Mono', monospace;

  --radius-sm: 8px;
  --radius-md: 16px;
  --radius-lg: 28px;

  --shadow-soft: 0 6px 20px rgba(46,18,80,0.09);
  --shadow-strong: 0 14px 34px rgba(46,18,80,0.16);
  --ease: cubic-bezier(.22,.7,.32,1);

  --container: 1180px;
  --topbar-h: 40px;
  --header-h: 84px;
}

/* ---- reset ---- */
*, *::before, *::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--ink);
  background:var(--paper);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; margin:0; padding:0; }
button{ font-family:inherit; cursor:pointer; }
h1,h2,h3,h4{ font-family:var(--font-display); margin:0 0 .5em; line-height:1.15; font-weight:700; color:var(--navy); }
p{ margin:0 0 1em; }
.container{ width:100%; max-width:var(--container); margin:0 auto; padding:0 20px; }

@media (prefers-reduced-motion: reduce){
  *{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important; }
}

:focus-visible{ outline:3px solid var(--gold); outline-offset:2px; }

/* ---- tricolor thread — signature divider ---- */
.thread{
  height:6px;
  width:100%;
  background:var(--grad-gold);
  background-size:200% 100%;
}
.thread--rule{ height:4px; }

.header-tagline{
  background:var(--navy);
  padding:9px 12px;
}
.header-tagline p{
  margin:0; text-align:center;
  font-family:var(--font-mono);
  font-size:.72rem;
  letter-spacing:.06em;
  color:var(--gold-soft);
}
.header-tagline span{ color:rgba(255,255,255,.3); margin:0 10px; }
@media (max-width:640px){
  .header-tagline p{ font-size:.62rem; letter-spacing:.03em; }
  .header-tagline span{ margin:0 6px; }
}

.footer-tagline{
  font-family:var(--font-mono);
  font-size:.76rem;
  color:var(--gold-soft);
  letter-spacing:.03em;
  margin-top:10px;
}

/* =========================================================
   PULL-QUOTES / FOUNDER MESSAGE
   ========================================================= */
.pull-quote{
  background:var(--paper-dim);
  border-left:4px solid var(--gold);
  border-radius:var(--radius-md);
  padding:30px 32px;
  font-size:1.06rem;
  color:var(--ink);
  font-style:italic;
  position:relative;
}
.pull-quote::before{
  content:'\201C'; position:absolute; top:-4px; left:18px;
  font-family:var(--font-display); font-size:3.4rem; color:var(--gold); opacity:.45; line-height:1;
}
.pull-quote p{ position:relative; z-index:1; margin:0; }
.pull-quote + .pull-quote{ margin-top:20px; }

.founder-card{
  display:flex; gap:32px; align-items:flex-start;
  background:var(--white); border-radius:var(--radius-lg);
  padding:40px; box-shadow:var(--shadow-soft);
}
.founder-avatar{
  width:104px; height:104px; border-radius:50%; flex:none;
  background:linear-gradient(135deg, var(--royal-purple), var(--magenta));
  display:flex; align-items:center; justify-content:center;
  color:var(--white); font-family:var(--font-display); font-weight:800; font-size:1.9rem;
  border:4px solid var(--gold);
}
.founder-card h3{ margin-bottom:2px; font-size:1.2rem; }
.founder-title{
  display:block; font-family:var(--font-mono); font-size:.78rem;
  color:var(--magenta); margin-bottom:14px; letter-spacing:.03em;
}
.founder-card p{ color:var(--ink-soft); }
@media (max-width:640px){
  .founder-card{ flex-direction:column; align-items:center; text-align:center; }
}

.alignment-card{
  border-radius:var(--radius-lg);
  padding:40px 34px;
  color:var(--white);
  background:linear-gradient(150deg, var(--navy), var(--royal-purple));
  position:relative; overflow:hidden;
}
.alignment-card h3{ color:var(--white); font-size:1.3rem; }
.alignment-card p{ color:#e9dffb; font-style:italic; }

.map-link{
  display:inline-flex; align-items:center; gap:8px;
  font-weight:700; color:var(--magenta); margin-top:6px; font-size:.92rem;
}
.map-link svg{ width:16px; height:16px; fill:var(--magenta); }
.map-link:hover{ color:var(--navy); }

/* =========================================================
   TOP UTILITY BAR
   ========================================================= */
.topbar{
  background:var(--deep-purple);
  color:#e7dcf7;
  font-family:var(--font-mono);
  font-size:.78rem;
  border-bottom:1px solid rgba(212,175,55,0.25);
}
.topbar__inner{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  min-height:var(--topbar-h);
  padding:6px 20px;
}
.topbar__contacts{ display:flex; flex-wrap:wrap; gap:18px; align-items:center; }
.topbar__contacts a{ display:inline-flex; align-items:center; gap:6px; color:#e7dcf7; opacity:.92; }
.topbar__contacts a:hover{ color:var(--gold-soft); opacity:1; }
.topbar__contacts svg{ width:14px; height:14px; flex:none; fill:var(--gold-soft); }
.topbar__social{ display:flex; gap:12px; }
.topbar__social a{ width:26px; height:26px; border-radius:50%; border:1px solid rgba(212,175,55,0.4); display:flex; align-items:center; justify-content:center; }
.topbar__social svg{ width:13px; height:13px; fill:#e7dcf7; }
.topbar__social a:hover{ background:var(--gold); border-color:var(--gold); }
.topbar__social a:hover svg{ fill:var(--deep-purple); }

/* =========================================================
   HEADER / NAV  — logo is wide, so nav sits below it on a clean band
   ========================================================= */
.site-header{
  position:sticky; top:0; z-index:100;
  background:var(--deep-purple);
  box-shadow:0 4px 14px rgba(0,0,0,0.14);
}
.site-header__inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  min-height:var(--header-h);
  padding:10px 20px;
}
.brand{ display:flex; align-items:center; gap:10px; flex:none; }
.brand img{ height:56px; width:auto; }
.brand__fallback{ font-family:var(--font-display); font-weight:800; color:var(--white); font-size:1.05rem; letter-spacing:.03em; line-height:1.15; }
.brand__fallback span{ display:block; font-family:var(--font-mono); font-weight:400; font-size:.62rem; color:var(--gold-soft); letter-spacing:.08em; }

.main-nav{ display:flex; align-items:center; gap:2px; }
.main-nav a{
  display:inline-block;
  padding:10px 16px;
  font-size:.92rem;
  font-weight:500;
  color:#f1e9ff;
  border-radius:999px;
  transition:background .3s var(--ease), color .3s var(--ease);
  white-space:nowrap;
}
.main-nav a:hover, .main-nav a:focus-visible{ background:rgba(212,175,55,0.16); color:var(--gold-soft); }
.main-nav a.is-active{ background:var(--gold); color:var(--deep-purple); font-weight:700; }

.nav-cta{
  display:inline-flex; align-items:center; gap:8px;
  padding:10px 20px;
  background:var(--gold);
  color:var(--deep-purple);
  border-radius:999px;
  font-weight:700;
  font-size:.88rem;
  box-shadow:0 8px 18px rgba(212,175,55,0.35);
  transition:transform .3s var(--ease);
  flex:none;
}
.nav-cta:hover{ transform:translateY(-2px); }

.nav-toggle{
  display:none;
  width:44px; height:44px;
  border:none; background:transparent;
  flex-direction:column; justify-content:center; align-items:center; gap:5px;
}
.nav-toggle span{ width:26px; height:3px; background:var(--gold); border-radius:2px; transition:transform .25s ease, opacity .25s ease; }
.nav-toggle.is-open span:nth-child(1){ transform:translateY(8px) rotate(45deg); }
.nav-toggle.is-open span:nth-child(2){ opacity:0; }
.nav-toggle.is-open span:nth-child(3){ transform:translateY(-8px) rotate(-45deg); }

@media (max-width: 960px){
  .main-nav{
    position:fixed; inset:var(--header-h) 0 0 0;
    top:calc(var(--topbar-h) + var(--header-h));
    background:var(--deep-purple);
    flex-direction:column;
    align-items:stretch;
    padding:14px;
    gap:6px;
    transform:translateY(-12px);
    opacity:0;
    pointer-events:none;
    transition:opacity .25s ease, transform .25s ease;
    overflow-y:auto;
  }
  .main-nav.is-open{ opacity:1; transform:translateY(0); pointer-events:auto; }
  .main-nav a{ padding:14px 18px; font-size:1.02rem; border-bottom:1px solid rgba(255,255,255,0.06); border-radius:10px; }
  .nav-cta{ margin:10px 4px 0; justify-content:center; }
  .nav-toggle{ display:flex; }
  .brand img{ height:44px; }
}

/* =========================================================
   HERO SLIDER
   ========================================================= */
.hero-slider{
  position:relative;
  overflow:hidden;
  min-height:min(86vh, 640px);
  background:var(--deep-purple);
}
.hero-slide{
  position:absolute; inset:0;
  opacity:0; visibility:hidden;
  transition:opacity 1100ms var(--ease);
  display:flex; align-items:center;
}
.hero-slide.is-active{ opacity:1; visibility:visible; z-index:2; }
.hero-slide__bg{
  position:absolute; inset:0;
  background-size:cover; background-position:center;
  transform:scale(1.06);
  transition:transform 9s var(--ease);
}
.hero-slide.is-active .hero-slide__bg{ transform:scale(1); }
.hero-slide__scrim{
  position:absolute; inset:0;
  background:linear-gradient(100deg, rgba(28,10,54,.62) 8%, rgba(46,18,80,.42) 45%, rgba(196,45,125,.18) 100%);
}
.hero-slide__content{ position:relative; z-index:2; color:var(--white); max-width:680px; padding:40px 0; }
.eyebrow{
  font-family:var(--font-mono);
  font-size:.78rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--gold-soft);
  display:inline-flex; align-items:center; gap:10px;
  margin-bottom:16px;
}
.eyebrow::before{ content:''; width:28px; height:2px; background:var(--gold); }
.hero-slide__content h1{ color:var(--white); font-size:clamp(2rem, 4.4vw, 3.4rem); font-weight:800; }
.hero-slide__content p{ color:#e9dffb; font-size:1.08rem; max-width:52ch; }
.btn-row{ display:flex; gap:14px; flex-wrap:wrap; margin-top:22px; }

.btn{
  display:inline-flex; align-items:center; gap:8px;
  padding:13px 26px;
  border-radius:999px;
  font-weight:700;
  font-size:.94rem;
  border:2px solid transparent;
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease, color .2s ease;
}
.btn--gold{ background:var(--gold); color:var(--deep-purple); box-shadow:0 10px 24px rgba(212,175,55,.35); }
.btn--gold:hover{ transform:translateY(-3px); }
.btn--ghost{ border-color:rgba(255,255,255,.55); color:var(--white); }
.btn--ghost:hover{ background:rgba(255,255,255,.12); }
.btn--navy{ background:var(--navy); color:var(--white); }
.btn--navy:hover{ transform:translateY(-3px); box-shadow:0 12px 24px rgba(27,42,110,.35); }

.hero-slider__nav{
  position:absolute; z-index:5; top:50%; transform:translateY(-50%);
  width:48px; height:48px; border-radius:50%;
  background:rgba(255,255,255,0.14);
  border:1px solid rgba(255,255,255,0.35);
  color:var(--white);
  display:flex; align-items:center; justify-content:center;
  backdrop-filter:blur(4px);
  transition:background .3s var(--ease);
}
.hero-slider__nav:hover{ background:var(--gold); color:var(--deep-purple); }
.hero-slider__nav--prev{ left:18px; }
.hero-slider__nav--next{ right:18px; }
.hero-slider__nav svg{ width:20px; height:20px; }

.hero-slider__dots{
  position:absolute; z-index:5; bottom:26px; left:50%; transform:translateX(-50%);
  display:flex; gap:10px;
}
.hero-slider__dots button{
  width:10px; height:10px; border-radius:50%;
  background:rgba(255,255,255,.4); border:none;
  transition:background .2s ease, width .2s ease;
}
.hero-slider__dots button.is-active{ background:var(--gold); width:28px; border-radius:6px; }

@media (max-width: 640px){
  .hero-slider{ min-height:78vh; }
  .hero-slider__nav{ width:38px; height:38px; }
}

/* =========================================================
   SECTION UTILITIES
   ========================================================= */
.section{ padding:88px 0; }
.section--tight{ padding:60px 0; }
.section--dark{ background:var(--deep-purple); color:#efe6fa; }
.section--dark h2, .section--dark h3{ color:var(--white); }
.section--paper-dim{ background:var(--paper-dim); }
.section-head{ max-width:720px; margin:0 auto 48px; text-align:center; }
.section-head.is-left{ margin:0 0 40px; text-align:left; }
.section-head h2{ font-size:clamp(1.7rem, 3.2vw, 2.5rem); }
.section-head p{ color:var(--ink-soft); font-size:1.05rem; }
.section--dark .section-head p{ color:#d8c9ee; }

.eyebrow--center{ justify-content:center; }
.eyebrow--dark{ color:var(--gold-soft); }
.eyebrow--ink{ color:var(--magenta); }
.eyebrow--ink::before{ background:var(--magenta); }

/* =========================================================
   CARDS / GRIDS (home highlights, objectives, courses)
   ========================================================= */
.grid{ display:grid; gap:28px; }
.grid--3{ grid-template-columns:repeat(3, 1fr); }
.grid--4{ grid-template-columns:repeat(4, 1fr); }
.grid--2{ grid-template-columns:repeat(2, 1fr); }
@media (max-width:960px){ .grid--3, .grid--4{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px){ .grid--3, .grid--4, .grid--2{ grid-template-columns:1fr; } }

.card{
  background:var(--white);
  border-radius:var(--radius-md);
  padding:30px 26px;
  box-shadow:var(--shadow-soft);
  border:1px solid rgba(91,42,134,0.08);
  transition:transform .35s var(--ease), box-shadow .35s var(--ease);
}
.card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-strong); }
.card__icon{
  width:56px; height:56px; border-radius:16px;
  background:linear-gradient(135deg, var(--royal-purple), var(--magenta));
  display:flex; align-items:center; justify-content:center;
  margin-bottom:18px;
}
.card__icon svg{ width:26px; height:26px; fill:var(--white); }
.card h3{ font-size:1.15rem; margin-bottom:8px; }
.card p{ color:var(--ink-soft); font-size:.96rem; margin-bottom:0; }

.stat-strip{
  display:grid; grid-template-columns:repeat(4,1fr); gap:24px;
  background:var(--navy);
  border-radius:var(--radius-lg);
  padding:40px 20px;
  color:var(--white);
  box-shadow:var(--shadow-strong);
}
.stat{ text-align:center; }
.stat b{ display:block; font-family:var(--font-display); font-size:clamp(1.8rem,4vw,2.6rem); color:var(--gold-soft); }
.stat span{ font-family:var(--font-mono); font-size:.78rem; letter-spacing:.05em; color:#dcd2ee; text-transform:uppercase; }
@media (max-width:768px){ .stat-strip{ grid-template-columns:repeat(2,1fr); } }

/* Numbered objective list */
.numbered-list{ display:grid; gap:18px; }
.numbered-item{
  display:flex; gap:20px; align-items:flex-start;
  background:var(--white); border-radius:var(--radius-md);
  padding:24px; box-shadow:var(--shadow-soft);
  border-left:4px solid var(--gold);
}
.numbered-item b{
  font-family:var(--font-mono); color:var(--magenta);
  font-size:1.3rem; flex:none; width:44px;
}
.numbered-item h3{ font-size:1.08rem; margin-bottom:6px; }
.numbered-item p{ margin:0; color:var(--ink-soft); font-size:.95rem; }

/* Split layout (about / vision) */
.split{ display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; }
@media (max-width:900px){ .split{ grid-template-columns:1fr; gap:32px; } }
.split img{ border-radius:var(--radius-lg); box-shadow:var(--shadow-strong); }
.media-frame{ position:relative; }
.media-frame::before{
  content:''; position:absolute; inset:-14px -14px auto auto; width:120px; height:120px;
  border:4px solid var(--gold); border-radius:var(--radius-lg); z-index:-1;
}
.pill-list{ display:flex; flex-wrap:wrap; gap:10px; margin-top:20px; }
.pill{
  font-family:var(--font-mono); font-size:.78rem;
  padding:8px 14px; border-radius:999px;
  background:var(--paper-dim); color:var(--navy);
  border:1px solid rgba(91,42,134,0.15);
}

/* Vision / mission twin cards */
.twin-card{
  border-radius:var(--radius-lg);
  padding:40px 34px;
  color:var(--white);
  position:relative;
  overflow:hidden;
}
.twin-card--vision{ background:linear-gradient(150deg, var(--royal-purple), var(--deep-purple)); }
.twin-card--mission{ background:linear-gradient(150deg, var(--magenta), var(--royal-purple)); }
.twin-card .thread{ position:absolute; top:0; left:0; }
.twin-card h3{ color:var(--white); font-size:1.5rem; }
.twin-card p{ color:#f0e6ff; }

/* =========================================================
   COURSES
   ========================================================= */
.course-card{
  background:var(--white); border-radius:var(--radius-md);
  overflow:hidden; box-shadow:var(--shadow-soft);
  display:flex; flex-direction:column;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease);
}
.course-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-strong); }
.course-card__top{ position:relative; padding:22px 24px; background:linear-gradient(120deg, var(--navy), var(--royal-purple)); color:var(--white); }
.course-card__top span{ font-family:var(--font-mono); font-size:.72rem; letter-spacing:.08em; color:#fff; text-transform:uppercase; }
.course-card__top h3{ color:var(--white); margin:6px 0 0; font-size:1.2rem; padding-right:78px; }
.course-card__price{
  position:absolute; top:20px; right:18px;
  background:var(--gold); color:var(--ink);
  font-family:var(--font-mono); font-weight:700; font-size:.82rem;
  padding:6px 11px; border-radius:999px; white-space:nowrap;
  box-shadow:0 4px 10px rgba(0,0,0,.18);
}
.course-card__body{ padding:22px 24px; flex:1; display:flex; flex-direction:column; }
.course-card__body p{ color:var(--ink-soft); font-size:.94rem; }
.course-meta{ display:flex; gap:14px; flex-wrap:wrap; margin:10px 0 18px; font-family:var(--font-mono); font-size:.76rem; color:var(--ink-soft); }
.course-meta span{ display:inline-flex; align-items:center; gap:6px; }
.course-card__body .btn{ margin-top:auto; align-self:flex-start; }

/* =========================================================
   GALLERY
   ========================================================= */
.masonry{
  column-count:4; column-gap:18px;
}
@media (max-width:1100px){ .masonry{ column-count:3; } }
@media (max-width:760px){ .masonry{ column-count:2; } }
@media (max-width:480px){ .masonry{ column-count:1; } }

.masonry-item{
  break-inside:avoid;
  margin-bottom:18px;
  border-radius:var(--radius-md);
  overflow:hidden;
  position:relative;
  box-shadow:var(--shadow-soft);
  background:var(--paper-dim);
  cursor:zoom-in;
}
.masonry-item img{
  width:100%; display:block;
  opacity:0; transition:opacity .6s var(--ease), transform .6s var(--ease);
  aspect-ratio:var(--ar, auto);
}
.masonry-item img.is-loaded{ opacity:1; }
.masonry-item:hover img{ transform:scale(1.05); }
.masonry-item__overlay{
  position:absolute; inset:0;
  background:linear-gradient(0deg, rgba(20,8,40,.82) 0%, rgba(20,8,40,0) 55%);
  display:flex; align-items:flex-end; padding:16px;
  opacity:0; transition:opacity .35s var(--ease);
}
.masonry-item:hover .masonry-item__overlay{ opacity:1; }
.masonry-item__overlay span{ color:var(--white); font-size:.86rem; font-weight:600; }
.masonry-item .skeleton{
  position:absolute; inset:0;
  background:linear-gradient(100deg, var(--paper-dim) 30%, #e7d9f7 50%, var(--paper-dim) 70%);
  background-size:200% 100%;
  animation:shimmer 1.4s infinite;
}
.masonry-item img.is-loaded + .skeleton{ display:none; }
@keyframes shimmer{ 0%{background-position:200% 0;} 100%{background-position:-200% 0;} }

.gallery-loadmore{ text-align:center; margin-top:44px; }

.lightbox{
  position:fixed; inset:0; z-index:1000;
  background:rgba(15,6,28,.94);
  display:flex; align-items:center; justify-content:center;
  opacity:0; visibility:hidden; transition:opacity .35s var(--ease);
  padding:24px;
}
.lightbox.is-open{ opacity:1; visibility:visible; }
.lightbox img{ max-width:min(92vw,1100px); max-height:86vh; border-radius:12px; box-shadow:0 20px 60px rgba(0,0,0,.5); }
.lightbox__close, .lightbox__prev, .lightbox__next{
  position:absolute; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.3);
  color:var(--white); border-radius:50%; width:46px; height:46px;
  display:flex; align-items:center; justify-content:center;
}
.lightbox__close{ top:22px; right:22px; }
.lightbox__prev{ left:22px; top:50%; transform:translateY(-50%); }
.lightbox__next{ right:22px; top:50%; transform:translateY(-50%); }
.lightbox__close:hover, .lightbox__prev:hover, .lightbox__next:hover{ background:var(--gold); color:var(--deep-purple); }
.lightbox__caption{ position:absolute; bottom:26px; left:0; right:0; text-align:center; color:#e9dffb; font-family:var(--font-mono); font-size:.85rem; }

/* =========================================================
   CONTACT
   ========================================================= */
.contact-grid{ display:grid; grid-template-columns:1.1fr 1fr; gap:40px; align-items:start; }
@media (max-width:960px){ .contact-grid{ grid-template-columns:1fr; } }

.contact-card{
  background:var(--white); border-radius:var(--radius-lg);
  padding:36px; box-shadow:var(--shadow-soft);
}
.field{ margin-bottom:20px; }
.field label{ display:block; font-size:.86rem; font-weight:600; margin-bottom:8px; color:var(--navy); }
.field input, .field textarea, .field select{
  width:100%; padding:13px 16px; border-radius:10px;
  border:1.5px solid #e0d3f2; font-family:var(--font-body); font-size:.96rem;
  background:var(--paper); transition:border-color .2s ease, box-shadow .2s ease;
}
.field input:focus, .field textarea:focus, .field select:focus{
  border-color:var(--magenta); box-shadow:0 0 0 4px rgba(196,45,125,.12); outline:none;
}
.field-row{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
@media (max-width:560px){ .field-row{ grid-template-columns:1fr; } }
.field .error{ color:#c62828; font-size:.78rem; margin-top:6px; display:none; }
.field.has-error input, .field.has-error textarea{ border-color:#c62828; }
.field.has-error .error{ display:block; }

.form-status{
  display:none; padding:14px 18px; border-radius:10px; font-size:.92rem; margin-bottom:20px;
  font-weight:500; align-items:center; gap:10px;
}
.form-status.is-visible{ display:flex; }
.form-status.success{ background:#e6f6ec; color:#146c3c; border:1px solid #b7e6c9; }
.form-status.error{ background:#fdeaea; color:#a11b1b; border:1px solid #f3bcbc; }

.info-list{ display:grid; gap:16px; margin-bottom:28px; }
.info-item{ display:flex; gap:16px; align-items:flex-start; }
.info-item .icon{
  width:46px; height:46px; border-radius:14px; flex:none;
  background:linear-gradient(135deg, var(--royal-purple), var(--magenta));
  display:flex; align-items:center; justify-content:center;
}
.info-item .icon svg{ width:20px; height:20px; fill:var(--white); }
.info-item h4{ font-size:1rem; margin:0 0 3px; color:var(--navy); }
.info-item p{ margin:0; color:var(--ink-soft); font-size:.92rem; }
.info-item a{ color:var(--magenta); font-weight:600; }

.map-frame{
  border-radius:var(--radius-md); overflow:hidden; box-shadow:var(--shadow-soft);
  border:6px solid var(--white);
}
.map-frame iframe{ width:100%; height:320px; border:0; display:block; }

/* =========================================================
   FOOTER
   ========================================================= */
.site-footer{ background:var(--deep-purple); color:#d7c9ec; padding-top:64px; }
.footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; padding-bottom:40px; }
@media (max-width:900px){ .footer-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .footer-grid{ grid-template-columns:1fr; } }
.footer-grid h4{ color:var(--white); font-size:1rem; margin-bottom:16px; }
.footer-grid ul li{ margin-bottom:10px; }
.footer-grid a:hover{ color:var(--gold-soft); }
.footer-brand img{ height:48px; margin-bottom:14px; }
.footer-brand p{ color:#c3b3dd; font-size:.92rem; max-width:34ch; }
.footer-social{ display:flex; gap:10px; margin-top:16px; }
.footer-social a{ width:36px; height:36px; border-radius:50%; border:1px solid rgba(212,175,55,.4); display:flex; align-items:center; justify-content:center; }
.footer-social svg{ width:16px; height:16px; fill:#e7dcf7; }
.footer-social a:hover{ background:var(--gold); }
.footer-social a:hover svg{ fill:var(--deep-purple); }
.footer-bottom{
  border-top:1px solid rgba(212,175,55,.18);
  padding:20px 0; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;
  font-size:.82rem; color:#b09fd0; font-family:var(--font-mono);
}

/* =========================================================
   PAGE HEADER (inner pages)
   ========================================================= */
.page-header{
  background:var(--grad-hero);
  color:var(--white);
  padding:74px 0 54px;
  position:relative;
  overflow:hidden;
}
.page-header::after{
  content:''; position:absolute; right:-60px; top:-60px; width:280px; height:280px;
  border:3px solid rgba(212,175,55,.3); border-radius:50%;
}
.page-header h1{ color:var(--white); font-size:clamp(1.9rem,4vw,3rem); margin-bottom:10px; }
.breadcrumb{ font-family:var(--font-mono); font-size:.8rem; color:var(--gold-soft); }
.breadcrumb a{ color:#e9dffb; }
.breadcrumb a:hover{ color:var(--gold-soft); }

/* Back to top */
.to-top{
  position:fixed; right:22px; bottom:22px; z-index:60;
  width:48px; height:48px; border-radius:50%;
  background:var(--gold); color:var(--deep-purple);
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 10px 24px rgba(0,0,0,.25);
  opacity:0; visibility:hidden; transform:translateY(10px);
  transition:opacity .25s ease, transform .25s ease, visibility .25s ease;
}
.to-top.is-visible{ opacity:1; visibility:visible; transform:translateY(0); }
.to-top svg{ width:20px; height:20px; fill:currentColor; }

/* Reveal on scroll */
.reveal{ opacity:0; transform:translateY(24px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.reveal.is-visible{ opacity:1; transform:translateY(0); }

/* Text accent */
.text-gold{ color:var(--gold); }
.text-magenta{ color:var(--magenta); }

/* Utility spacing */
.mt-0{ margin-top:0; }
.center{ text-align:center; }

/* Table (courses schedule etc.) */
.table-wrap{ overflow-x:auto; border-radius:var(--radius-md); box-shadow:var(--shadow-soft); }
table{ width:100%; border-collapse:collapse; background:var(--white); min-width:640px; }
th, td{ padding:16px 18px; text-align:left; border-bottom:1px solid var(--paper-dim); font-size:.92rem; }
th{ background:var(--navy); color:var(--white); font-family:var(--font-mono); font-size:.78rem; letter-spacing:.05em; text-transform:uppercase; }
tr:last-child td{ border-bottom:none; }

/* CTA band */
.cta-band{
  background:linear-gradient(120deg, var(--magenta), var(--royal-purple));
  border-radius:var(--radius-lg);
  padding:52px 40px;
  color:var(--white);
  display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap;
  box-shadow:var(--shadow-strong);
}
.cta-band h2{ color:var(--white); margin-bottom:6px; font-size:1.7rem; }
.cta-band p{ color:#f2e6ff; margin:0; }

/* =========================================================
   PANCHTATV PAGE — Hindi content
   Ubuntu (this site's main font) has no Devanagari glyphs, so this
   page pulls in "Hind" (also on Google Fonts) purely for Hindi text
   rendering. Scoped to .panchtatv-page so no other page is affected.
   ========================================================= */
.panchtatv-page,
.panchtatv-page h1,
.panchtatv-page h2,
.panchtatv-page h3,
.panchtatv-page .eyebrow,
.panchtatv-page .pill{
  font-family:'Hind','Noto Sans Devanagari','Nirmala UI','Mangal', var(--font-body);
}
.panchtatv-page .objective-emoji{
  font-size:26px; line-height:1; filter:grayscale(0) drop-shadow(0 1px 1px rgba(0,0,0,.15));
}
.panchtatv-page .closing-pillars{ justify-content:center; margin-top:22px; }
.panchtatv-page .closing-brand{ text-align:center; }
.panchtatv-page .closing-brand h2{ margin-bottom:4px; }
.panchtatv-page .closing-brand p{ color:var(--ink-soft); font-style:italic; font-size:1.05rem; margin-bottom:0; }
