@charset "UTF-8";
/* ==========================================================================
   Gurukul Gokhali — theme stylesheet
   Mobile-first. Colours are taken from the institute emblem:
   green ring (#0b6b3a / #0f7a43), gold sun + ribbons (#f5c518 / #ffcc00),
   black sky (#111111), red book (#e01b24).
   All layout starts at phone width and scales up with min-width queries.

   NAVIGATION NOTE
   The slide-out menu (#ggNav) and its scrim are direct children of <body>
   (see base.html), NOT of <header>. The header uses backdrop-filter, which
   would otherwise become the containing block for position:fixed and clip
   the drawer to the header's height. The menu is a hamburger drawer on every
   screen size; all of its rules live in ONE section below ("Slide-out menu").
   ========================================================================== */

:root {
  --gg-green: #0b6b3a;
  --gg-green-dark: #084d2a;
  --gg-green-soft: #e8f5ec;
  --gg-gold: #f5c518;
  --gg-gold-dark: #d9a900;
  --gg-ink: #16181d;
  --gg-body: #333a45;
  --gg-muted: #5f6774;
  --gg-line: #e3e7ec;
  --gg-bg: #ffffff;
  --gg-bg-alt: #f6f8f7;
  --gg-red: #c7161f;
  --gg-wa: #1faa53;
  --gg-radius: 16px;
  --gg-radius-sm: 10px;
  --gg-shadow: 0 6px 24px rgba(15, 40, 25, .10);
  --gg-shadow-lg: 0 18px 44px rgba(15, 40, 25, .16);
  --gg-head: 64px;
  --gg-max: 1180px;
  --gg-font: "Poppins", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}

* { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body.gg-body {
  margin: 0;
  font-family: var(--gg-font);
  color: var(--gg-body);
  background: var(--gg-bg);
  font-size: 16px;
  line-height: 1.65;
  /* keep the sticky bar from covering the footer */
  padding-bottom: 64px;
  overflow-x: hidden;
}

img { max-width: 100%; height: auto; }
a { color: var(--gg-green); text-decoration: none; }
a:hover, a:focus { color: var(--gg-green-dark); }
h1, h2, h3, h4, h5 { color: var(--gg-ink); font-weight: 700; line-height: 1.22; margin: 0 0 .5em; }

.container { width: 100%; max-width: var(--gg-max); margin: 0 auto; padding: 0 16px; }
.gg-narrow { max-width: 820px; }
.gg-center { text-align: center; }
.gg-mt { margin-top: 40px; }
.gg-h2 { font-size: 1.35rem; margin: 32px 0 14px; }
.gg-h3 { font-size: 1.05rem; margin: 22px 0 10px; }
.gg-muted-line { color: var(--gg-muted); font-size: .92rem; }

.gg-skip {
  position: absolute; left: -9999px; top: 0; z-index: 60;
  background: var(--gg-ink); color: #fff; padding: 10px 16px; border-radius: 0 0 8px 0;
}
.gg-skip:focus { left: 0; }

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

/* ── Buttons ─────────────────────────────────────────────────────────── */
.gg-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  font: 600 .95rem/1 var(--gg-font);
  padding: 12px 18px; border-radius: 999px; border: 2px solid transparent;
  cursor: pointer; text-align: center; transition: transform .15s, box-shadow .15s, background .15s, color .15s;
  min-height: 46px;
}
.gg-btn:active { transform: translateY(1px); }
.gg-btn--primary { background: var(--gg-green); color: #fff; box-shadow: 0 6px 18px rgba(11, 107, 58, .28); }
.gg-btn--primary:hover, .gg-btn--primary:focus { background: var(--gg-green-dark); color: #fff; }
.gg-btn--outline { background: transparent; color: var(--gg-green); border-color: var(--gg-green); }
.gg-btn--outline:hover { background: var(--gg-green); color: #fff; }
.gg-btn--ghost { background: var(--gg-bg-alt); color: var(--gg-ink); border-color: var(--gg-line); }
.gg-btn--ghost:hover { border-color: var(--gg-green); color: var(--gg-green); }
.gg-btn--whatsapp { background: var(--gg-wa); color: #fff; }
.gg-btn--whatsapp:hover { background: #178c44; color: #fff; }
.gg-btn--lg { padding: 15px 24px; font-size: 1rem; min-height: 52px; }
.gg-btn--sm { padding: 8px 14px; font-size: .84rem; min-height: 38px; }
.gg-btn--block { width: 100%; }
.gg-link { font-weight: 600; }

/* ── Announcement ticker ─────────────────────────────────────────────── */
.gg-ticker {
  max-width: 100%; overflow-x: hidden;
  display: flex; align-items: stretch; gap: 0;
  background: var(--gg-ink); color: #fff; font-size: .84rem; overflow: hidden;
}
.gg-ticker__badge {
  background: var(--gg-gold); color: var(--gg-ink); font-weight: 700;
  padding: 7px 12px; white-space: nowrap; flex: none; letter-spacing: .3px;
}
.gg-ticker__track { overflow: hidden; flex: 1 1 0%; min-width: 0; display: flex; align-items: center; }
.gg-ticker__run {
  display: flex; gap: 40px; white-space: nowrap;
  animation: gg-ticker 34s linear infinite; padding-left: 16px;
}
.gg-ticker__item a { color: var(--gg-gold); }
.gg-ticker__track:hover .gg-ticker__run { animation-play-state: paused; }
@keyframes gg-ticker { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) {
  .gg-ticker__run { animation: none; overflow-x: auto; }
}

/* ── Header ──────────────────────────────────────────────────────────── */
.gg-header {
  position: sticky; top: 0; z-index: 40;
  background: #ffffff;
  backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--gg-line);
  transition: box-shadow .2s, transform .25s;
}
.gg-header.is-stuck { box-shadow: 0 6px 20px rgba(15, 40, 25, .10); }
.gg-header__inner {
  display: flex; align-items: center; flex-wrap: wrap; gap: 4px 10px;
  min-height: var(--gg-head);
  padding-top: 6px; padding-bottom: 6px;
}
.gg-brand { display: flex; align-items: center; gap: 10px; min-width: 0; }
.gg-brand__logo { height: 46px; width: auto; }
.gg-brand__text { display: flex; flex-direction: column; min-width: 0; }
.gg-brand__text strong {
  font-size: 1.02rem; color: var(--gg-green-dark); letter-spacing: .2px; white-space: nowrap;
}
.gg-brand__text small {
  font-size: .68rem; color: var(--gg-muted); text-transform: uppercase; letter-spacing: .6px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 62vw;
}
.gg-header__actions { margin-left: auto; display: flex; align-items: center; gap: 6px; flex-shrink: 0; }
.gg-icon-btn {
  width: 42px; height: 42px; border-radius: 50%; display: inline-flex;
  align-items: center; justify-content: center; font-size: 1.1rem;
  background: var(--gg-bg-alt); border: 1px solid var(--gg-line); line-height: 1;
}
.gg-icon-btn--wa { background: #e8f8ee; border-color: #bfe6cd; }
.gg-burger {
  width: 44px; height: 42px; border-radius: 12px; border: 1px solid var(--gg-line);
  background: #fff; display: inline-flex; flex-direction: column;
  align-items: center; justify-content: center; gap: 4px; cursor: pointer;
}
.gg-burger span { display: block; width: 20px; height: 2px; background: var(--gg-ink); border-radius: 2px; }

@media (min-width: 992px) {
  body.gg-body { padding-bottom: 0; }
}

/* ==========================================================================
   Slide-out menu (hamburger drawer on EVERY device: phone → laptop → TV)
   --------------------------------------------------------------------------
   - #ggNav and .gg-scrim are children of <body>, so position:fixed resolves
     against the viewport (never against the blurred header).
   - Closed  : translated off-screen + visibility:hidden (no horizontal scroll,
               not focusable).
   - Open    : JS adds .is-open to #ggNav and .gg-nav-open to <body>.
   - Layers  : header 40 · action bar 45 · scrim 90 · drawer 100.
   ========================================================================== */
.gg-scrim {
  position: fixed; inset: 0; z-index: 90;
  background: rgba(10, 20, 14, .5);
}
.gg-scrim[hidden] { display: none; }

.gg-nav {
  position: fixed; top: 0; right: 0; bottom: 0; left: auto;
  width: min(92vw, 400px); max-width: 100%;
  height: 100vh; height: 100dvh; max-height: 100dvh;
  display: flex; flex-direction: column; flex-wrap: nowrap;
  align-items: stretch; justify-content: flex-start;
  overflow: hidden;
  margin: 0; padding: 0;
  background: #fff;
  border-left: 1px solid var(--gg-line);
  box-shadow: none;
  z-index: 100;
  transform: translateX(105%);
  visibility: hidden;
  transition: transform .28s ease, visibility .28s ease;
}
.gg-nav.is-open,
body.gg-nav-open .gg-nav {
  transform: translateX(0);
  visibility: visible;
  box-shadow: -20px 0 44px rgba(16, 24, 32, .22);
}
@media (prefers-reduced-motion: reduce) {
  .gg-nav { transition: none; }
}

/* lock the page behind the open drawer */
html:has(body.gg-nav-open), body.gg-nav-open { overflow: hidden; }

.gg-nav__top {
  flex: 0 0 auto;
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 16px 18px;
  border-bottom: 1px solid var(--gg-line);
  background: var(--gg-green-soft);
}
.gg-nav__welcome { font-weight: 700; color: var(--gg-green-dark); }
.gg-nav__close {
  font-size: 1.8rem; line-height: 1; background: none; border: 0; cursor: pointer;
  color: var(--gg-ink); padding: 0 6px;
}

/* the scrolling middle: takes all remaining height between top and foot */
.gg-nav__scroll {
  flex: 1 1 auto; min-height: 0;
  overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch;
  padding-bottom: 10px;
}

.gg-nav__group {
  margin: 14px 18px 4px;
  font-size: .74rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase;
  color: var(--gg-green-dark);
}
.gg-nav__list { list-style: none; margin: 0; padding: 6px 0; display: block; }
.gg-nav__list > li { display: block; width: 100%; position: static; }
.gg-nav__list > li > a {
  display: block; padding: 14px 18px;
  font-size: 1rem; font-weight: 600; color: var(--gg-ink);
  border-bottom: 1px solid var(--gg-line);
  white-space: normal;
}
.gg-nav__list > li > a:hover,
.gg-nav__list > li > a:focus-visible {
  background: var(--gg-green-soft); color: var(--gg-green-dark);
}
.gg-nav__list--top > li > a { padding-top: 16px; padding-bottom: 16px; }

/* admin-created sub-menus: always expanded and readable inside the drawer */
.gg-nav__has-sub > a { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.gg-nav__sub {
  list-style: none; margin: 0; padding: 4px 0 6px 14px;
  background: var(--gg-bg-alt);
}
.gg-nav__sub a { display: block; padding: 10px 18px; color: var(--gg-body); font-size: .94rem; text-decoration: none; }
.gg-nav__sub a:hover, .gg-nav__sub a:focus-visible { color: var(--gg-green-dark); }
.gg-caret { color: var(--gg-green); font-size: .8rem; }

/* dropdown groups (Explore, Portals, admin menus such as Programmes).
   Native <details>: collapsed by default, no JavaScript needed. */
.gg-acc { border-bottom: 1px solid var(--gg-line); }
.gg-acc > summary {
  list-style: none; cursor: pointer;
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  padding: 14px 18px; font-size: 1rem; font-weight: 700; color: var(--gg-ink);
}
.gg-acc > summary::-webkit-details-marker { display: none; }
.gg-acc > summary::after {
  content: "\25BE"; color: var(--gg-green); font-size: .9rem; transition: transform .2s;
}
.gg-acc > summary:hover, .gg-acc > summary:focus-visible { background: var(--gg-green-soft); }
.gg-acc[open] > summary { background: var(--gg-green-soft); color: var(--gg-green-dark); }
.gg-acc[open] > summary::after { transform: rotate(180deg); }
.gg-acc__list { list-style: none; margin: 0; padding: 4px 0 8px; background: var(--gg-bg-alt); }
.gg-acc__list a {
  display: block; padding: 11px 18px 11px 30px;
  color: var(--gg-body); font-size: .96rem; font-weight: 500; text-decoration: none;
}
.gg-acc__list a:hover, .gg-acc__list a:focus-visible { background: #fff; color: var(--gg-green-dark); }
.gg-acc__list a.gg-acc__all { color: var(--gg-green); font-weight: 700; }
@media (max-width: 600px) {
  .gg-acc > summary { padding: 15px 16px; }
  .gg-acc__list a { padding-left: 26px; }
}

/* footer buttons (Apply / Portals / Call / WhatsApp): pinned at the bottom,
   visible at EVERY width */
.gg-nav__foot {
  flex: 0 0 auto;
  display: block;
  padding: 16px 18px calc(16px + env(safe-area-inset-bottom));
  border-top: 1px solid var(--gg-line);
  background: #fff;
}
.gg-nav__portals { margin-top: 10px; display: grid; gap: 8px; }
.gg-nav__quick { display: flex; gap: 8px; margin-top: 10px; }
.gg-nav__quick .gg-btn { flex: 1; }
.gg-nav__drawer-only { display: block; }

/* phones: drawer fills the screen */
@media (max-width: 600px) {
  .gg-nav { width: 100%; border-left: 0; }
  .gg-nav__list > li > a { padding: 15px 16px; }
  .gg-nav__group { margin-left: 16px; margin-right: 16px; }
}
/* TVs / 4K: roomier type */
@media (min-width: 1920px) {
  .gg-nav { width: 460px; }
  .gg-nav__list > li > a { font-size: 1.06rem; padding: 16px 22px; }
  .gg-nav__group { font-size: .8rem; }
}

/* ── Hero ────────────────────────────────────────────────────────────── */
.gg-hero { position: relative; overflow: hidden; background: var(--gg-green-dark); }
.gg-hero__media { position: absolute; inset: 0; }
.gg-hero__img { width: 100%; height: 100%; object-fit: cover; opacity: .28; }
.gg-hero::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(160deg, rgba(8, 55, 31, .94) 0%, rgba(11, 107, 58, .88) 55%, rgba(8, 45, 26, .95) 100%);
}
.gg-hero__inner {
  position: relative; z-index: 2; display: grid; gap: 26px;
  padding-top: 34px; padding-bottom: 40px;
}
.gg-hero__copy { color: #fff; }
.gg-hero__eyebrow {
  display: inline-block; background: rgba(245, 197, 24, .18); color: var(--gg-gold);
  border: 1px solid rgba(245, 197, 24, .45);
  font-size: .7rem; font-weight: 700; letter-spacing: 1.4px; text-transform: uppercase;
  padding: 6px 12px; border-radius: 999px; margin: 0 0 14px;
}
.gg-hero__title { color: #fff; font-size: clamp(1.9rem, 8vw, 3.1rem); margin: 0 0 12px; }
.gg-hero__lead { color: rgba(255, 255, 255, .92); font-size: 1.02rem; margin: 0 0 16px; }
.gg-hero__points { list-style: none; padding: 0; margin: 0 0 22px; display: grid; gap: 8px; }
.gg-hero__points li {
  color: #fff; font-size: .95rem; padding-left: 26px; position: relative;
}
.gg-hero__points li::before {
  content: "✓"; position: absolute; left: 0; top: 0; color: var(--gg-gold); font-weight: 700;
}
.gg-hero__cta { display: flex; flex-wrap: wrap; gap: 10px; }
.gg-hero__cta .gg-btn { flex: 1 1 150px; }
.gg-hero__wa { display: inline-block; margin-top: 14px; color: var(--gg-gold); font-weight: 600; }
.gg-hero__card { align-self: start; }

@media (min-width: 992px) {
  .gg-hero__inner {
    grid-template-columns: 1.15fr .85fr; align-items: center;
    padding-top: 60px; padding-bottom: 66px; gap: 40px;
  }
  .gg-hero__lead { font-size: 1.12rem; max-width: 34em; }
}

/* ── Section scaffolding ─────────────────────────────────────────────── */
.gg-section { padding: 44px 0; }
.gg-section--tight { padding: 22px 0; }
.gg-section--slim { padding: 30px 0 40px; }
.gg-section--alt { background: var(--gg-bg-alt); }

.gg-head { margin-bottom: 26px; }
.gg-head--left { text-align: left; }
.gg-head:not(.gg-head--left) { text-align: center; }
.gg-head__eyebrow {
  color: var(--gg-green); font-weight: 700; font-size: .74rem;
  letter-spacing: 1.3px; text-transform: uppercase; margin: 0 0 6px;
}
.gg-head__title { font-size: clamp(1.5rem, 5.6vw, 2.1rem); margin: 0 0 8px; }
.gg-head__sub { color: var(--gg-muted); margin: 0; max-width: 46em; }
.gg-head:not(.gg-head--left) .gg-head__sub { margin-inline: auto; }

/* breadcrumbs */
.gg-crumbs {
  background: var(--gg-bg-alt); border-bottom: 1px solid var(--gg-line);
  font-size: .84rem; padding: 10px 0; color: var(--gg-muted);
}
.gg-crumbs a { color: var(--gg-green); }
.gg-crumbs span[aria-hidden] { margin: 0 6px; color: #b6bcc5; }

/* ── Stats ───────────────────────────────────────────────────────────── */
.gg-stats { background: var(--gg-ink); color: #fff; padding: 24px 0; }
.gg-stats__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px 12px; }
.gg-stat { text-align: center; }
.gg-stat__value { font-size: 1.7rem; font-weight: 800; color: var(--gg-gold); line-height: 1.1; }
.gg-stat__label { font-size: .8rem; color: rgba(255, 255, 255, .85); }
@media (min-width: 768px) {
  .gg-stats__grid { grid-template-columns: repeat(4, 1fr); }
  .gg-stat__value { font-size: 2.1rem; }
}

/* ── Quick actions ───────────────────────────────────────────────────── */
.gg-actions-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.gg-action {
  background: #fff; border: 1px solid var(--gg-line); border-radius: var(--gg-radius-sm);
  padding: 14px 8px; text-align: center; display: grid; gap: 6px; justify-items: center;
  box-shadow: 0 2px 10px rgba(15, 40, 25, .05); transition: transform .16s, box-shadow .16s, border-color .16s;
}
.gg-action:hover { transform: translateY(-3px); box-shadow: var(--gg-shadow); border-color: #cfe6d8; }
.gg-action__icon { font-size: 1.5rem; }
.gg-action__label { font-size: .78rem; font-weight: 600; color: var(--gg-ink); line-height: 1.25; }
@media (min-width: 768px) { .gg-actions-grid { grid-template-columns: repeat(6, 1fr); } }

/* ── Cards ───────────────────────────────────────────────────────────── */
.gg-cards { display: grid; gap: 18px; }
.gg-card {
  background: #fff; border: 1px solid var(--gg-line); border-radius: var(--gg-radius);
  overflow: hidden; display: flex; flex-direction: column;
  box-shadow: 0 3px 14px rgba(15, 40, 25, .06); transition: transform .18s, box-shadow .18s;
}
.gg-card:hover { transform: translateY(-4px); box-shadow: var(--gg-shadow); }
.gg-card__media { display: block; aspect-ratio: 16 / 10; background: var(--gg-green-soft); overflow: hidden; }
.gg-card__media img { width: 100%; height: 100%; object-fit: cover; }
.gg-card__ph {
  display: flex; align-items: center; justify-content: center; height: 100%;
  font-weight: 700; color: var(--gg-green); letter-spacing: .5px; text-align: center; padding: 10px;
}
.gg-card__body { padding: 16px; display: flex; flex-direction: column; flex: 1; gap: 8px; }
.gg-card__title { font-size: 1.08rem; margin: 0; }
.gg-card__title a { color: var(--gg-ink); }
.gg-card__title a:hover { color: var(--gg-green); }
.gg-card__text { margin: 0; font-size: .93rem; color: var(--gg-muted); }
.gg-card__meta { list-style: none; margin: auto 0 0; padding: 0; font-size: .84rem; color: var(--gg-body); display: grid; gap: 4px; }
.gg-card__foot { display: flex; gap: 8px; margin-top: 12px; }
.gg-card__foot .gg-btn { flex: 1; }
.gg-chip {
  display: inline-block; align-self: flex-start; background: var(--gg-green-soft); color: var(--gg-green-dark);
  font-size: .72rem; font-weight: 700; letter-spacing: .4px; text-transform: uppercase;
  padding: 4px 10px; border-radius: 999px;
}
.gg-chip--pin { background: #fff4d6; color: #8a6400; }
@media (min-width: 640px) { .gg-cards { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 992px) { .gg-cards { grid-template-columns: repeat(3, 1fr); } }

/* ── Filter pills / search ───────────────────────────────────────────── */
.gg-filter { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 6px; margin-bottom: 18px; -webkit-overflow-scrolling: touch; }
.gg-filter::-webkit-scrollbar { height: 0; }
.gg-pill {
  flex: none; border: 1px solid var(--gg-line); background: #fff; color: var(--gg-body);
  border-radius: 999px; padding: 9px 16px; font: 600 .85rem var(--gg-font); cursor: pointer; white-space: nowrap;
}
.gg-pill.is-active { background: var(--gg-green); border-color: var(--gg-green); color: #fff; }
.gg-search { display: flex; gap: 8px; margin-bottom: 20px; }
.gg-search input {
  flex: 1; min-width: 0; padding: 12px 14px; border: 1px solid var(--gg-line);
  border-radius: 999px; font: inherit; background: #fff;
}

/* ── Why us ──────────────────────────────────────────────────────────── */
.gg-why { display: grid; gap: 14px; }
.gg-why__item {
  background: #fff; border: 1px solid var(--gg-line); border-radius: var(--gg-radius-sm);
  padding: 18px; display: flex; gap: 14px; align-items: flex-start;
}
.gg-why__icon {
  flex: none; width: 46px; height: 46px; border-radius: 12px; background: var(--gg-green-soft);
  display: inline-flex; align-items: center; justify-content: center; font-size: 1.4rem;
}
.gg-why__icon img { width: 28px; height: 28px; object-fit: contain; }
.gg-why__item h3 { font-size: 1rem; margin: 0 0 2px; }
.gg-why__item p { margin: 0; font-size: .9rem; color: var(--gg-muted); }
@media (min-width: 768px) { .gg-why { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 992px) { .gg-why { grid-template-columns: repeat(4, 1fr); } }

/* ── Toppers ─────────────────────────────────────────────────────────── */
.gg-toppers { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
.gg-topper {
  background: #fff; border: 1px solid var(--gg-line); border-radius: var(--gg-radius-sm);
  padding: 16px 12px; text-align: center;
}
.gg-topper img, .gg-topper__ph {
  width: 74px; height: 74px; border-radius: 50%; object-fit: cover; margin: 0 auto 10px;
  display: flex; align-items: center; justify-content: center;
}
.gg-topper__ph { background: var(--gg-green); color: #fff; font-weight: 800; font-size: 1.6rem; }
.gg-topper h2, .gg-topper h3 { font-size: .98rem; margin: 0 0 2px; }
.gg-topper__res { color: var(--gg-red); font-weight: 700; margin: 0; font-size: .92rem; }
.gg-topper__exam, .gg-topper__quote { font-size: .8rem; color: var(--gg-muted); margin: 2px 0 0; }
@media (min-width: 768px) { .gg-toppers { grid-template-columns: repeat(4, 1fr); } }

/* ── News ────────────────────────────────────────────────────────────── */
.gg-news { display: grid; gap: 14px; }
.gg-news__item {
  background: #fff; border: 1px solid var(--gg-line); border-radius: var(--gg-radius-sm);
  overflow: hidden; display: flex; gap: 14px; padding: 14px;
}
.gg-news__item img { width: 92px; height: 92px; object-fit: cover; border-radius: 10px; flex: none; }
.gg-news__date { display: block; font-size: .76rem; color: var(--gg-green); font-weight: 700; letter-spacing: .4px; text-transform: uppercase; }
.gg-news__title { font-size: 1rem; margin: 3px 0 4px; }
.gg-news__title a { color: var(--gg-ink); }
.gg-news__title a:hover { color: var(--gg-green); }
.gg-news__text { margin: 0; font-size: .89rem; color: var(--gg-muted); }
.gg-news__media { flex: none; }
.gg-news__media img { width: 100%; height: 100%; }
@media (min-width: 768px) { .gg-news { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 992px) { .gg-news { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 992px) {
  .gg-news__item { flex-direction: column; }
  .gg-news__item img { width: 100%; height: 170px; }
}
.gg-related { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.gg-related time { color: var(--gg-muted); font-size: .8rem; margin-right: 8px; }

/* ── Gallery ─────────────────────────────────────────────────────────── */
.gg-grid--gallery { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.gg-grid--gallery a, .gg-shot a { display: block; border-radius: 12px; overflow: hidden; background: var(--gg-bg-alt); }
.gg-grid--gallery img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .3s; }
.gg-grid--gallery a:hover img { transform: scale(1.05); }
.gg-shot { margin: 0; }
.gg-shot figcaption { font-size: .78rem; color: var(--gg-muted); padding: 6px 2px 0; }
@media (min-width: 640px) { .gg-grid--gallery { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 992px) { .gg-grid--gallery { grid-template-columns: repeat(4, 1fr); } }

/* ── Testimonials ────────────────────────────────────────────────────── */
.gg-carousel .gg-quote { margin: 0 4px; }
.gg-quote {
  background: #fff; border: 1px solid var(--gg-line); border-radius: var(--gg-radius);
  padding: 22px; display: flex; flex-direction: column; justify-content: space-between; height: 100%;
}
.gg-quote blockquote { margin: 0 0 16px; font-size: .95rem; color: var(--gg-body); position: relative; }
.gg-quote blockquote::before { content: "“"; font-size: 2.6rem; color: var(--gg-gold); line-height: 0; vertical-align: -.35em; margin-right: 4px; }
.gg-quote figcaption { display: flex; align-items: center; gap: 10px; font-size: .9rem; }
.gg-quote figcaption img { width: 46px; height: 46px; border-radius: 50%; object-fit: cover; }
.gg-quote figcaption small { display: block; color: var(--gg-muted); font-size: .78rem; }
.gg-quotes-grid { display: grid; gap: 14px; }
@media (min-width: 768px) { .gg-quotes-grid { grid-template-columns: repeat(2, 1fr); } }

/* ── Visit / map ─────────────────────────────────────────────────────── */
.gg-visit { display: grid; gap: 18px; }
.gg-visit__row { margin: 0 0 10px; display: flex; gap: 10px; font-size: .95rem; }
.gg-visit__btns { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
.gg-map, .gg-visit__map {
  border-radius: var(--gg-radius); overflow: hidden; border: 1px solid var(--gg-line); background: var(--gg-bg-alt);
}
.gg-visit__map iframe, .gg-map iframe, .gg-centre__map iframe {
  display: block; width: 100%; height: 300px; border: 0;
}
.gg-centres { display: grid; gap: 20px; }
.gg-centre {
  background: #fff; border: 1px solid var(--gg-line); border-radius: var(--gg-radius);
  overflow: hidden; box-shadow: 0 3px 14px rgba(15, 40, 25, .06);
}
.gg-centre__info { padding: 20px; }
.gg-centre__info h2 { font-size: 1.15rem; }
.gg-centre__btns { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
@media (min-width: 992px) { .gg-centre { display: grid; grid-template-columns: .9fr 1.1fr; } .gg-centre__map iframe { height: 100%; min-height: 320px; } }

/* ── Two column layouts ──────────────────────────────────────────────── */
.gg-two-col { display: grid; gap: 22px; }
@media (min-width: 992px) {
  .gg-two-col { grid-template-columns: 1.05fr .95fr; align-items: start; gap: 32px; }
  .gg-detail { display: grid; grid-template-columns: 1.25fr .75fr; gap: 32px; align-items: start; }
  .gg-detail__side { position: sticky; top: calc(var(--gg-head) + 20px); }
  .gg-visit { grid-template-columns: .8fr 1.2fr; align-items: center; }
}

/* ── Detail pages ────────────────────────────────────────────────────── */
.gg-detail { display: grid; gap: 24px; }
.gg-detail__title { font-size: clamp(1.5rem, 6vw, 2.1rem); margin: 8px 0 8px; }
.gg-detail__lead { font-size: 1.02rem; color: var(--gg-muted); margin: 0 0 16px; }
.gg-detail__img { width: 100%; border-radius: var(--gg-radius); margin: 0 0 20px; }
.gg-detail__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.gg-facts { list-style: none; margin: 0 0 22px; padding: 0; display: grid; gap: 1px; background: var(--gg-line); border-radius: var(--gg-radius-sm); overflow: hidden; }
.gg-facts li { background: #fff; padding: 12px 16px; display: flex; justify-content: space-between; gap: 12px; font-size: .92rem; }
.gg-facts li span { color: var(--gg-muted); }
.gg-prose { font-size: 1rem; }
.gg-prose p { margin: 0 0 14px; }
.gg-prose h2, .gg-prose h3 { margin-top: 26px; }
.gg-prose ul { padding-left: 20px; }
.gg-prose img { border-radius: 12px; }
.gg-prose table { width: 100%; border-collapse: collapse; display: block; overflow-x: auto; }
.gg-prose iframe { max-width: 100%; border-radius: 12px; }
.gg-checklist { list-style: none; padding: 0; margin: 0 0 18px; display: grid; gap: 9px; }
.gg-checklist li { position: relative; padding-left: 28px; font-size: .94rem; }
.gg-checklist li::before {
  content: "✓"; position: absolute; left: 0; top: 0; width: 19px; height: 19px;
  background: var(--gg-green-soft); color: var(--gg-green); border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center; font-size: .72rem; font-weight: 700;
}

/* ── Accordion / FAQ (details element) ───────────────────────────────── */
.gg-faq { display: grid; gap: 10px; }
.gg-faq__item { background: #fff; border: 1px solid var(--gg-line); border-radius: var(--gg-radius-sm); overflow: hidden; }
.gg-faq__item summary {
  cursor: pointer; padding: 15px 44px 15px 16px; font-weight: 600; color: var(--gg-ink);
  position: relative; list-style: none; font-size: .96rem;
}
.gg-faq__item summary::-webkit-details-marker { display: none; }
.gg-faq__item summary::after {
  content: "+"; position: absolute; right: 16px; top: 50%; transform: translateY(-50%);
  color: var(--gg-green); font-size: 1.35rem; font-weight: 700; line-height: 1;
}
.gg-faq__item[open] summary::after { content: "–"; }
.gg-faq__item[open] summary { background: var(--gg-green-soft); }
.gg-faq__a { padding: 4px 16px 16px; font-size: .93rem; color: var(--gg-body); border-top: 1px solid var(--gg-line); }
.gg-faq__a p:last-child { margin-bottom: 0; }

/* ── Documents ───────────────────────────────────────────────────────── */
.gg-docgroup { margin-bottom: 26px; }
.gg-docgroup__title { font-size: 1.1rem; border-bottom: 2px solid var(--gg-green); display: inline-block; padding-bottom: 4px; }
.gg-docgroup__title span { color: var(--gg-muted); font-weight: 500; font-size: .9rem; }
.gg-doclist { list-style: none; margin: 12px 0 0; padding: 0; display: grid; gap: 10px; }
.gg-doclist li {
  background: #fff; border: 1px solid var(--gg-line); border-radius: var(--gg-radius-sm);
  padding: 14px; display: flex; align-items: center; gap: 12px;
}
.gg-doclist__icon { font-size: 1.5rem; flex: none; }
.gg-doclist__meta { flex: 1; min-width: 0; display: grid; }
.gg-doclist__meta strong { font-size: .96rem; }
.gg-doclist__meta small { color: var(--gg-muted); font-size: .82rem; }
.gg-doclist__date { opacity: .8; }

/* ── Faculty ─────────────────────────────────────────────────────────── */
.gg-faculty { display: grid; gap: 16px; grid-template-columns: repeat(2, 1fr); }
.gg-fac {
  background: #fff; border: 1px solid var(--gg-line); border-radius: var(--gg-radius);
  padding: 18px 14px; text-align: center;
}
.gg-fac__photo img, .gg-fac__initials {
  width: 84px; height: 84px; border-radius: 50%; object-fit: cover; margin: 0 auto 12px;
  display: flex; align-items: center; justify-content: center;
}
.gg-fac__initials { background: var(--gg-green); color: #fff; font-weight: 800; font-size: 1.6rem; letter-spacing: 1px; }
.gg-fac__name { font-size: 1rem; margin: 0 0 2px; }
.gg-fac__subject { color: var(--gg-green); font-weight: 600; font-size: .86rem; margin: 0; }
.gg-fac__qual, .gg-fac__exp { font-size: .82rem; color: var(--gg-muted); margin: 2px 0 0; }
.gg-fac__bio { font-size: .84rem; color: var(--gg-body); margin: 8px 0 0; }
@media (min-width: 768px) { .gg-faculty { grid-template-columns: repeat(4, 1fr); } }

/* ── Forms ───────────────────────────────────────────────────────────── */
.gg-form-card {
  background: #fff; border: 1px solid var(--gg-line); border-radius: var(--gg-radius);
  padding: 20px; box-shadow: var(--gg-shadow);
}
.gg-form-card__title { font-size: 1.15rem; margin: 0 0 6px; }
.gg-form-card__sub { font-size: .88rem; color: var(--gg-muted); margin: 0 0 16px; }
.gg-form__grid { display: grid; gap: 12px; }
.gg-field { display: grid; gap: 5px; }
.gg-field label { font-size: .82rem; font-weight: 600; color: var(--gg-ink); }
.gg-req { color: var(--gg-red); }
.gg-opt { color: var(--gg-muted); font-weight: 400; }
.gg-field input, .gg-field select, .gg-field textarea {
  width: 100%; padding: 12px 14px; border: 1px solid var(--gg-line); border-radius: var(--gg-radius-sm);
  font: inherit; font-size: .95rem; background: #fdfdfd; color: var(--gg-body);
  min-height: 48px; /* comfortable tap target */
}
.gg-field textarea { min-height: 88px; resize: vertical; }
.gg-field input:focus, .gg-field select:focus, .gg-field textarea:focus {
  border-color: var(--gg-green); background: #fff; outline: 3px solid rgba(11, 107, 58, .12);
}
.gg-err { color: var(--gg-red); font-size: .78rem; margin: 0; }
.gg-consent { display: flex; gap: 10px; align-items: flex-start; margin: 14px 0; font-size: .84rem; color: var(--gg-muted); }
.gg-consent input { width: 20px; height: 20px; flex: none; margin-top: 1px; }
.gg-form__note { font-size: .84rem; color: var(--gg-muted); margin: 12px 0 0; text-align: center; }
.gg-alert { border-radius: var(--gg-radius-sm); padding: 12px 14px; font-size: .9rem; margin-bottom: 14px; }
.gg-alert--ok { background: var(--gg-green-soft); color: var(--gg-green-dark); border: 1px solid #bfe0cb; }
@media (min-width: 640px) { .gg-form__grid { grid-template-columns: 1fr 1fr; } .gg-field--full { grid-column: 1 / -1; } }

.gg-note { background: var(--gg-bg-alt); border: 1px solid var(--gg-line); border-radius: var(--gg-radius); padding: 20px; }
.gg-note__foot { font-size: .86rem; color: var(--gg-muted); margin: 0; }
.gg-help { margin-top: 20px; display: grid; gap: 8px; }
.gg-steps__list { list-style: none; counter-reset: s; padding: 0; margin: 0; display: grid; gap: 12px; }
.gg-steps__list li { counter-increment: s; position: relative; padding-left: 40px; font-size: .92rem; }
.gg-steps__list li::before {
  content: counter(s); position: absolute; left: 0; top: 0;
  width: 27px; height: 27px; border-radius: 50%; background: var(--gg-green); color: #fff;
  display: inline-flex; align-items: center; justify-content: center; font-size: .82rem; font-weight: 700;
}
.gg-batch-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.gg-batch-list li {
  background: #fff; border: 1px solid var(--gg-line); border-radius: var(--gg-radius-sm);
  padding: 12px 14px; display: grid; gap: 3px;
}
.gg-batch-list small { color: var(--gg-muted); font-size: .8rem; }
.gg-info-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 14px; }
.gg-info-list li { display: flex; gap: 12px; }
.gg-info-list__icon {
  flex: none; width: 40px; height: 40px; border-radius: 12px; background: var(--gg-green-soft);
  display: inline-flex; align-items: center; justify-content: center; font-size: 1.1rem;
}
.gg-info-list strong { display: block; font-size: .86rem; }
.gg-info-list p { margin: 0; font-size: .92rem; }
.gg-quickbar { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 24px; }
.gg-quickbar--center { justify-content: center; }
.gg-result-list { list-style: none; padding: 0; margin: 0 0 24px; display: grid; gap: 10px; }
.gg-result-list li { background: #fff; border: 1px solid var(--gg-line); border-radius: var(--gg-radius-sm); padding: 12px 14px; display: grid; }
.gg-result-list small { color: var(--gg-muted); font-size: .82rem; }
.gg-empty, .gg-placeholder {
  background: var(--gg-bg-alt); border: 1px dashed #c8d3cb; border-radius: var(--gg-radius);
  padding: 24px; text-align: center; color: var(--gg-muted);
}
.gg-placeholder h2 { font-size: 1.1rem; color: var(--gg-ink); }
.gg-article-foot { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 26px; }
.gg-more { text-align: center; margin: 26px 0 0; }
.gg-404 { font-size: 3.4rem; font-weight: 800; color: var(--gg-green); margin: 0; }

/* ── Final CTA ───────────────────────────────────────────────────────── */
.gg-cta { background: var(--gg-green-dark); color: #fff; padding: 34px 0; }
.gg-cta__inner { display: grid; gap: 16px; }
.gg-cta h2 { color: #fff; font-size: 1.5rem; margin: 0 0 6px; }
.gg-cta p { color: rgba(255, 255, 255, .88); margin: 0; font-size: .95rem; }
.gg-cta__btns { display: flex; flex-wrap: wrap; gap: 10px; }
.gg-cta__btns .gg-btn { flex: 1 1 150px; }
@media (min-width: 768px) { .gg-cta__inner { grid-template-columns: 1fr auto; align-items: center; } }

/* ── Footer ──────────────────────────────────────────────────────────── */
.gg-footer { background: var(--gg-ink); color: rgba(255, 255, 255, .78); padding: 38px 0 20px; font-size: .9rem; }
.gg-footer__grid { display: grid; gap: 26px; }
.gg-footer__logo { height: 52px; width: auto; margin-bottom: 12px; background: #fff; padding: 5px 8px; border-radius: 10px; }
.gg-footer__about { margin: 0 0 14px; max-width: 34em; }
.gg-footer__head { color: #fff; font-size: .95rem; margin: 0 0 12px; letter-spacing: .3px; }
.gg-footer__links, .gg-footer__contact { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.gg-footer a { color: rgba(255, 255, 255, .86); }
.gg-footer a:hover { color: var(--gg-gold); }
.gg-social { display: flex; flex-wrap: wrap; gap: 12px; }
.gg-footer__bottom {
  border-top: 1px solid rgba(255, 255, 255, .14); margin-top: 26px; padding-top: 16px;
  display: flex; flex-wrap: wrap; gap: 8px; justify-content: space-between; font-size: .82rem;
}
.gg-footer__bottom p { margin: 0; }
.gg-footer__motto { font-family: "Noto Sans Devanagari", var(--gg-font); color: var(--gg-gold); }
@media (min-width: 768px) { .gg-footer__grid { grid-template-columns: 1.4fr 1fr 1fr 1.1fr; } }

/* ── Sticky mobile action bar ────────────────────────────────────────── */
.gg-actionbar {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 45;
  display: grid; grid-template-columns: repeat(3, 1fr);
  background: #fff; border-top: 1px solid var(--gg-line);
  box-shadow: 0 -4px 18px rgba(15, 40, 25, .10);
  padding-bottom: env(safe-area-inset-bottom);
}
.gg-actionbar__btn {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
  padding: 8px 4px; font-size: .74rem; font-weight: 600; color: var(--gg-ink); min-height: 56px;
}
.gg-actionbar__btn span { font-size: 1.05rem; }
.gg-actionbar__btn--wa { color: var(--gg-wa); }
.gg-actionbar__btn--apply { background: var(--gg-green); color: #fff; }
.gg-actionbar__btn--apply:hover { color: #fff; }
@media (min-width: 992px) { .gg-actionbar { display: none; } }

/* ── Back to top + toast ─────────────────────────────────────────────── */
.gg-totop {
  position: fixed; right: 14px; bottom: 74px; z-index: 44;
  width: 44px; height: 44px; border-radius: 50%; border: 0; cursor: pointer;
  background: var(--gg-green); color: #fff; font-size: 1.2rem; box-shadow: var(--gg-shadow);
}
@media (min-width: 992px) { .gg-totop { bottom: 22px; } }
.gg-toast {
  position: fixed; left: 50%; bottom: 84px; transform: translateX(-50%);
  z-index: 110; background: var(--gg-ink); color: #fff; padding: 12px 18px;
  border-radius: 999px; font-size: .88rem; box-shadow: var(--gg-shadow-lg); max-width: 90vw; text-align: center;
}
@media (min-width: 992px) { .gg-toast { bottom: 26px; } }

/* ── Scroll reveal (progressive enhancement) ─────────────────────────── */
.gg-body.is-reveal-ready [data-gg-reveal] {
  opacity: 0; transform: translateY(16px);
  transition: opacity .55s ease, transform .55s ease;
}
.gg-body.is-reveal-ready [data-gg-reveal].is-visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .gg-body.is-reveal-ready [data-gg-reveal] { opacity: 1; transform: none; transition: none; }
  .gg-action:hover, .gg-card:hover { transform: none; }
}

/* lightbox tweaks so photos fit a phone screen */
.lb-outerContainer { max-width: 96vw !important; }
.lightbox .lb-image { max-width: 96vw !important; height: auto !important; }

/* visit block column (explicit class so the layout is stable) */
.gg-visit__info { display: grid; align-content: center; gap: 2px; }
.gg-visit__info p { margin: 0 0 8px; }
.gg-visit__row a { font-weight: 600; }

/* ── Overflow guards ─────────────────────────────────────────────────── */
/* Flex/grid children default to min-width:auto which lets long unbreakable
   content (ticker text, tables, map iframes) push the page wider than the
   phone screen. Neutralise it everywhere. */
.gg-ticker, .gg-ticker__track, .gg-ticker__run,
.gg-header__inner, .gg-nav, .gg-nav__list, .gg-nav__list > li,
.gg-hero__inner, .gg-hero__copy, .gg-stats__grid, .gg-actions-grid,
.gg-cards, .gg-card, .gg-card__body, .gg-why, .gg-why__item, .gg-toppers,
.gg-topper, .gg-news, .gg-news__item, .gg-grid--gallery, .gg-faculty, .gg-fac,
.gg-two-col, .gg-detail, .gg-visit, .gg-centres, .gg-centre, .gg-doclist li,
.gg-form__grid, .gg-field, .gg-quote, .gg-cta__inner,
.gg-footer__grid, .gg-quickbar, .gg-search, .gg-filter, .gg-result-list li,
.gg-info-list li, .gg-batch-list li, .gg-steps__list li, .gg-facts li {
  min-width: 0;
}
.gg-header__inner, .gg-ticker, .gg-ticker__track, .gg-hero__inner,
.gg-hero__copy, .gg-section, .gg-footer, .gg-cta, .gg-nav__list {
  max-width: 100%;
}
.gg-prose, .gg-prose p, .gg-prose li, .gg-news__text, .gg-card__text {
  overflow-wrap: anywhere; word-break: break-word;
}
.gg-nav__list > li > a, .gg-brand__text strong { overflow-wrap: anywhere; }
.gg-visit__map, .gg-map, .gg-centre__map, .gg-carousel { max-width: 100%; overflow: hidden; }
.owl-carousel .owl-stage-outer { overflow: hidden; }

/* `overflow-x: clip` (not hidden) keeps position:sticky on the header working. */
html, body.gg-body {
  overflow-x: clip;
  max-width: 100%;
}
.gg-actionbar, .gg-ticker, .gg-header { max-width: 100vw; }

/* Institutions + popup support classes (gg- prefixed, plain CSS) */
.gg-pagehead{padding:34px 0 22px;background:linear-gradient(180deg,#7a1f2b 0%,#5e1721 100%);color:#fff}
.gg-pagehead h1{margin:0 0 6px;color:#fff;font-size:clamp(1.5rem,4.4vw,2.2rem)}
.gg-pagehead p{margin:0;color:rgba(255,255,255,.9);max-width:60ch}
.gg-crumb{font-size:.86rem;margin-bottom:8px}
.gg-crumb a{color:#ffd9a0}
.gg-section{padding:38px 0}
.gg-section--alt{background:#faf7f4}
.gg-section h2{margin:0 0 14px;font-size:clamp(1.2rem,3.4vw,1.6rem)}
.gg-grid{display:grid;gap:18px}
.gg-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:900px){.gg-grid--3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:620px){.gg-grid--3{grid-template-columns:1fr}}
.gg-card{display:flex;flex-direction:column;background:#fff;border:1px solid rgba(0,0,0,.09);border-radius:14px;overflow:hidden;box-shadow:0 6px 18px rgba(20,16,10,.07)}
.gg-card__img{display:block;width:100%;height:auto;max-height:420px;object-fit:cover;background:#f2f0ee}
.gg-card__body{display:flex;flex-direction:column;gap:6px;padding:14px 16px 18px}
.gg-card__title{margin:0;font-size:1.06rem;line-height:1.35}
.gg-card__title a{color:#7a1f2b;text-decoration:none}
.gg-card__title a:hover,.gg-card__title a:focus{text-decoration:underline}
.gg-card__meta{margin:0;font-size:.88rem;color:#5b5860}
.gg-card__text{margin:0;font-size:.94rem;color:#33313a}
.gg-card__actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}
.gg-badge{align-self:flex-start;padding:3px 10px;font-size:.76rem;font-weight:700;letter-spacing:.02em;color:#14603a;background:#e2f5ea;border-radius:999px}
.gg-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 18px;font-weight:700;font-size:.94rem;border-radius:999px;text-decoration:none;border:1px solid transparent}
.gg-btn--call{color:#fff;background:#1b6f3a}
.gg-btn--wa{color:#fff;background:#128c7e}
.gg-btn--primary{color:#fff;background:#7a1f2b}
.gg-btn--ghost{color:#7a1f2b;background:#fff;border-color:rgba(122,31,43,.35)}
.gg-btn:hover,.gg-btn:focus{filter:brightness(1.07)}
.gg-btn:focus-visible{outline:3px solid #7a1f2b;outline-offset:2px}
.gg-split{display:grid;gap:26px;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}
@media (max-width:820px){.gg-split{grid-template-columns:1fr}}
.gg-panel__img{display:block;width:100%;height:auto;border-radius:14px;margin-bottom:14px}
.gg-map{position:relative;width:100%;aspect-ratio:4/3;border-radius:14px;overflow:hidden;border:1px solid rgba(0,0,0,.12);background:#eee}
.gg-map iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.gg-note{padding:16px 18px;background:#fdf6e7;border:1px solid #ecd9a8;border-radius:12px;color:#4a3c14}
.gg-note p{margin:0 0 6px}
.gg-note code{background:rgba(0,0,0,.06);padding:1px 5px;border-radius:5px;font-size:.9em}
.gg-list{margin:0;padding-left:20px}
.gg-list li{margin:6px 0}
.gg-list a{color:#7a1f2b}

/* ===================== feature pack: portals, search bar, tables ===================== */
.ggp-wrap{max-width:760px;margin:0 auto;padding:0 14px}
.ggp-card{background:#ffffff;border:1px solid rgba(15,23,42,.10);border-radius:16px;padding:22px;
  box-shadow:0 10px 30px rgba(15,23,42,.06)}
.ggp-card__title{margin:0 0 6px;font-size:1.5rem;line-height:1.25}
.ggp-card__sub{margin:0 0 18px;color:#475569}
.ggp-form{display:grid;gap:10px}
.ggp-form label{font-weight:600;font-size:.95rem;color:#0f172a}
.ggp-input{width:100%;padding:12px 14px;border:1px solid rgba(15,23,42,.18);border-radius:10px;
  font-size:1rem;background:#fff;color:#0f172a}
.ggp-input:focus{outline:3px solid rgba(37,99,235,.25);border-color:#2563eb}
.ggp-submit{margin-top:6px;width:100%}
.ggp-help{margin-top:14px;font-size:.92rem;color:#475569;line-height:1.9}
.ggp-alert{border-radius:12px;padding:12px 14px;margin:0 0 14px;font-size:.95rem}
.ggp-alert--err{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}
.ggp-alert--ok{background:#f0fdf4;border:1px solid #bbf7d0;color:#166534}
.ggp-err{color:#b91c1c;font-size:.88rem;margin:2px 0 0}
.ggp-grid{display:grid;gap:18px}
@media (min-width:900px){.ggp-grid--2{grid-template-columns:1.12fr .88fr}}
.ggp-panel{background:#fff;border:1px solid rgba(15,23,42,.10);border-radius:14px;padding:18px}
.ggp-panel h2{margin:0 0 12px;font-size:1.15rem}
.ggp-kv{display:grid;grid-template-columns:minmax(120px,40%) 1fr;gap:6px 12px;margin:0}
.ggp-kv dt{color:#64748b;font-size:.9rem}
.ggp-kv dd{margin:0;font-weight:600;color:#0f172a;word-break:break-word}
.ggp-badge{display:inline-block;padding:3px 9px;border-radius:999px;font-size:.78rem;font-weight:700;
  background:#eef2ff;color:#3730a3;text-decoration:none}
a.ggp-badge:hover{background:#e0e7ff}
.ggp-empty{background:#f8fafc;border:1px dashed rgba(15,23,42,.18);border-radius:12px;padding:14px;
  color:#475569;font-size:.94rem}
.ggp-table{width:100%;border-collapse:collapse;font-size:.94rem}
.ggp-table th,.ggp-table td{text-align:left;padding:9px 10px;border-bottom:1px solid rgba(15,23,42,.08)}
.ggp-table th{background:#f1f5f9;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:#475569}
.gg-searchbar{position:relative;align-items:center;margin-left:10px}
.gg-searchbar input{width:180px;padding:9px 38px 9px 12px;border-radius:999px;
  border:1px solid rgba(15,23,42,.18);background:#fff;font-size:.95rem}
.gg-searchbar button{position:absolute;right:4px;top:50%;transform:translateY(-50%);border:0;
  background:transparent;font-size:1rem;cursor:pointer;padding:6px 8px;border-radius:999px}
@media (min-width:1200px){.gg-searchbar input{width:230px}}
.gg-result-list small{display:block;color:#64748b}

/* ===================== header alignment (all devices) ===================== */
.gg-header__apply { min-height: 42px; padding: 9px 20px; white-space: nowrap; }

/* Phones: keep the top bar on a single row */
@media (max-width: 479.98px) {
  .gg-header__inner { gap: 4px 6px; padding-left: 12px; padding-right: 12px; }
  .gg-brand { flex: 0 1 auto; min-width: 0; }
  .gg-brand__logo { height: 40px; }
  .gg-brand__text { overflow: hidden; }
  .gg-brand__text strong { font-size: .95rem; overflow: hidden; text-overflow: ellipsis; }
  .gg-brand__text small { display: none; }
  .gg-header__actions { gap: 4px; }
  .gg-icon-btn { width: 38px; height: 38px; font-size: 1rem; }
  .gg-burger { width: 40px; height: 38px; }
}
@media (min-width: 480px) and (max-width: 767.98px) {
  .gg-brand__text small { max-width: 46vw; }
}
@media (min-width: 768px) and (max-width: 1199.98px) {
  .gg-brand__text small { max-width: 40vw; }
}
@media (max-width: 1199.98px) {
  .gg-header__inner { row-gap: 0; }
}

/* Large laptops, 4K monitors and TVs */
@media (min-width: 1600px) {
  :root { --gg-max: 1400px; }
  .gg-header__inner { min-height: 78px; }
  .gg-brand__logo { height: 54px; }
  .gg-brand__text strong { font-size: 1.15rem; }
  .gg-brand__text small { font-size: .74rem; max-width: none; }
  .gg-searchbar input { width: 230px; }
}
@media (min-width: 1920px) {
  :root { --gg-max: 1560px; }
  .gg-header__inner { min-height: 86px; }
  .gg-brand__logo { height: 60px; }
  .gg-brand__text strong { font-size: 1.28rem; }
  .gg-searchbar input { width: 260px; }
  .gg-header__apply { min-height: 46px; font-size: 1rem; }
}

/* Header items that must show/hide independent of the CSS framework.
   Bootstrap supplies .d-none / .d-xl-*, but if that stylesheet is slow or
   blocked the header must still collapse correctly. */
.gg-header__apply { display: none !important; }
.gg-searchbar { display: none !important; }
.gg-header__actions .gg-icon-btn--search { display: inline-flex !important; }
.gg-header__actions .gg-icon-btn--wa,
.gg-header__actions .gg-icon-btn--call { display: none !important; }
@media (min-width: 768px) {
  .gg-header__actions .gg-icon-btn--wa,
  .gg-header__actions .gg-icon-btn--call { display: inline-flex !important; }
}
@media (min-width: 1200px) {
  .gg-header__apply { display: inline-flex !important; }
  .gg-searchbar { display: flex !important; }
  .gg-header__actions .gg-icon-btn--search { display: none !important; }
}

/* ===================== Our Team (directors + teachers) ===================== */
.gg-team__grid{display:grid;gap:18px;grid-template-columns:repeat(auto-fill,minmax(232px,1fr))}
.gg-mcard{background:#fff;border:1px solid var(--gg-line);border-radius:16px;padding:16px;
  display:flex;flex-direction:column;gap:10px;height:100%}
.gg-mcard__head{display:flex;align-items:center;gap:12px;min-width:0}
.gg-mcard__photo{width:64px;height:64px;flex:0 0 64px;border-radius:50%;overflow:hidden;
  background:var(--gg-green-soft);display:flex;align-items:center;justify-content:center}
.gg-mcard__photo img{width:100%;height:100%;object-fit:cover;display:block}
.gg-mcard__initials{font-weight:800;color:var(--gg-green-dark);font-size:1.15rem}
.gg-mcard__name{margin:0;font-size:1.05rem;line-height:1.3;overflow-wrap:anywhere}
.gg-mcard__name a{color:var(--gg-ink);text-decoration:none}
.gg-mcard__name a:hover,.gg-mcard__name a:focus-visible{color:var(--gg-green-dark);text-decoration:underline}
.gg-mcard__role{color:var(--gg-muted);font-size:.9rem;margin:2px 0 0}
.gg-mcard__meta{margin:0;font-size:.92rem;color:var(--gg-body)}
.gg-mcard__meta span{display:block}
.gg-mcard__contact{display:flex;flex-wrap:wrap;gap:10px;margin-top:auto;padding-top:10px;
  border-top:1px solid var(--gg-line)}
.gg-mcard__contact a{font-size:.88rem;font-weight:600;color:var(--gg-green-dark);text-decoration:none}
.gg-mcard__contact a:hover{text-decoration:underline}
.gg-member{display:grid;gap:22px;align-items:start}
@media (min-width:820px){.gg-member{grid-template-columns:300px minmax(0,1fr)}}
.gg-member__photo{background:var(--gg-green-soft);border-radius:18px;overflow:hidden;
  aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;max-width:300px}
.gg-member__photo img{width:100%;height:100%;object-fit:cover;display:block}
.gg-member__initials{font-size:3rem;font-weight:800;color:var(--gg-green-dark)}
.gg-member__name{margin:0 0 4px;font-size:1.8rem;overflow-wrap:anywhere}
.gg-member__role{color:var(--gg-green-dark);font-weight:700;margin:0 0 12px}
.gg-kv-list{display:grid;grid-template-columns:minmax(110px,32%) minmax(0,1fr);gap:8px 14px;margin:16px 0}
.gg-kv-list dt{color:var(--gg-muted);font-size:.9rem}
.gg-kv-list dd{margin:0;font-weight:600;overflow-wrap:anywhere}
.gg-member__block{margin-top:18px}
.gg-member__block h3{margin:0 0 6px;font-size:1.05rem}
.gg-member__actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.gg-member__back{display:inline-block;margin-top:22px;font-weight:600}
.gg-fac__link{display:inline-block;margin-top:8px;font-weight:600;color:var(--gg-green-dark)}

/* -- Testimonial photo: always a round avatar, never stretched -- */
.gg-quote--card figcaption { display: flex; align-items: center; gap: 12px; }
.gg-quote--card figcaption img {
  width: 56px; height: 56px; flex: 0 0 56px;
  border-radius: 50%; object-fit: cover; object-position: center top;
}
.gg-quote--card figcaption span { display: flex; flex-direction: column; }

/* -- Testimonial photo: always a round avatar, never stretched -- */
.gg-quote--card figcaption { display: flex; align-items: center; gap: 12px; }
.gg-quote--card figcaption img {
  width: 56px; height: 56px; flex: 0 0 56px;
  border-radius: 50%; object-fit: cover; object-position: center top;
}
.gg-quote--card figcaption span { display: flex; flex-direction: column; }

/* -- Testimonial avatar: hard override (beats older rules) -- */
section .gg-quotes-grid--testimonials .gg-quote--card figcaption {
  display: flex !important; align-items: center !important; gap: 12px !important;
}
section .gg-quotes-grid--testimonials .gg-quote--card figcaption > img {
  width: 56px !important; height: 56px !important;
  min-width: 56px !important; max-width: 56px !important;
  flex: 0 0 56px !important; aspect-ratio: 1 / 1 !important;
  border-radius: 50% !important; object-fit: cover !important;
  object-position: center top !important;
}

/* -- Testimonials: plain responsive grid (no Owl) -- */
.gg-quotes-grid--testimonials {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 16px;
}

/* ===== Testimonials: polished centered cards ===== */
.gg-quotes-grid--testimonials {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(300px, 440px)) !important;
  justify-content: center;
  gap: 24px;
}
.gg-quotes-grid--testimonials .gg-quote--card {
  position: relative;
  display: flex; flex-direction: column; justify-content: space-between;
  gap: 22px;
  padding: 28px 26px 24px;
  background: #fff;
  border: 1px solid var(--gg-line, #e8e4de);
  border-top: 4px solid var(--gg-accent, #f5b301);
  border-radius: var(--gg-radius, 18px);
  box-shadow: 0 8px 28px rgba(15, 40, 25, .08);
  transition: transform .25s ease, box-shadow .25s ease;
}
.gg-quotes-grid--testimonials .gg-quote--card:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 36px rgba(15, 40, 25, .14);
}
.gg-quotes-grid--testimonials .gg-quote--card blockquote {
  margin: 0;
  font-size: 1.12rem; line-height: 1.65; font-weight: 500;
  color: #2b2b2b;
}
.gg-quotes-grid--testimonials .gg-quote--card figcaption {
  display: flex !important; align-items: center !important; gap: 14px !important;
  padding-top: 18px;
  border-top: 1px dashed var(--gg-line, #e8e4de);
}
.gg-quotes-grid--testimonials .gg-quote--card figcaption > img {
  width: 64px !important; height: 64px !important;
  min-width: 64px !important; max-width: 64px !important;
  flex: 0 0 64px !important; aspect-ratio: 1 / 1 !important;
  border-radius: 50% !important; object-fit: cover !important;
  object-position: center top !important;
  border: 3px solid #fff;
  box-shadow: 0 0 0 2px var(--gg-accent, #f5b301);
}
.gg-quotes-grid--testimonials .gg-quote--card figcaption span {
  display: flex; flex-direction: column; align-items: flex-start; gap: 4px;
}
.gg-quotes-grid--testimonials .gg-quote--card figcaption strong {
  font-size: 1.05rem; color: #1d1d1d;
}
.gg-quotes-grid--testimonials .gg-quote--card figcaption small {
  display: inline-block;
  padding: 2px 10px; border-radius: 999px;
  background: #fff6d6; color: #8a6400;
  font-size: .78rem; font-weight: 700; letter-spacing: .03em;
}
@media (max-width: 600px) {
  .gg-quotes-grid--testimonials { grid-template-columns: 1fr !important; }
}

/* -- Testimonials: show 2, reveal the rest on demand -- */
.gg-quotes-grid--testimonials .is-extra { display: none !important; }
.gg-quotes-grid--testimonials.is-open .is-extra {
  display: flex !important;
  animation: ggTestiIn .35s ease both;
}
@keyframes ggTestiIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }

/* -- Social links at the very end of the footer -- */
.gg-footer__end { border-top: 1px solid rgba(255, 255, 255, .14); padding: 16px 0 6px; margin-top: 10px; }
.gg-footer__end .gg-social { justify-content: center; flex-wrap: wrap; gap: 10px; }

/* Fix phone number visibility in the hero section */
.gg-hero__cta .gg-btn--outline {
    color: #7f1728 !important;
    background-color: #ffffff !important;
    border: 2px solid #7f1728 !important;
    font-weight: 700;
}

.gg-hero__cta .gg-btn--outline:hover {
    color: #ffffff !important;
    background-color: #7f1728 !important;
}


/* Fix visibility of outline buttons, including Visit a centre */
.gg-btn--outline {
    color: #7f1728 !important;
    background-color: #ffffff !important;
    border: 2px solid #7f1728 !important;
    font-weight: 700;
    opacity: 1 !important;
    text-decoration: none;
}

.gg-btn--outline:hover,
.gg-btn--outline:focus {
    color: #ffffff !important;
    background-color: #7f1728 !important;
    border-color: #7f1728 !important;
}

/* Find Our Centres */
.gg-centres-count {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    width: fit-content;
    margin: 0 auto 32px;
    padding: 18px 30px;
    border: 1px solid #ead8dc;
    border-radius: 16px;
    background: #fffafa;
}

.gg-centres-count__number {
    font-size: 2.6rem;
    font-weight: 800;
    color: #7f1728;
}

.gg-centres-count__label {
    font-weight: 700;
    color: #34252a;
}

.gg-centres-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
    gap: 24px;
}

.gg-centre-card {
    padding: 28px;
    background: #fff;
    border: 1px solid #eadfe1;
    border-radius: 18px;
    box-shadow: 0 8px 24px rgba(65, 20, 30, .08);
    overflow-wrap: anywhere;
}

.gg-centre-card h3 {
    color: #7f1728;
    font-size: 1.25rem;
    margin: 12px 0;
}

.gg-centre-card__icon {
    font-size: 2rem;
}

.gg-centre-card p {
    line-height: 1.7;
}

.gg-centre-card .gg-btn {
    display: inline-flex;
    margin-top: 12px;
}

@media (max-width: 600px) {
    .gg-centres-grid {
        grid-template-columns: 1fr;
    }
}

/* Modern Life at Gurukul section eyebrow */
#main > section:nth-child(7) > div > header > p.gg-head__eyebrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    margin: 0 auto 12px;
    padding: 8px 16px;
    border: 1px solid rgba(11, 107, 58, 0.16);
    border-radius: 999px;
    background: linear-gradient(135deg, #e8f5ec, #fff9e2);
    color: #0b6b3a;
    font-family: "Poppins", sans-serif;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 1.8px;
    line-height: 1.4;
    text-transform: uppercase;
    box-shadow: 0 4px 14px rgba(11, 107, 58, 0.07);
}

#main > section:nth-child(7) > div > header > p.gg-head__eyebrow::before {
    content: "";
    width: 20px;
    height: 3px;
    border-radius: 3px;
    background: #d9a900;
}

#main > section:nth-child(7) > div > header > p.gg-head__eyebrow::after {
    content: "";
    width: 20px;
    height: 3px;
    border-radius: 3px;
    background: #d9a900;
}

@media (max-width: 576px) {
    #main > section:nth-child(7) > div > header > p.gg-head__eyebrow {
        font-size: 0.68rem;
        letter-spacing: 1.3px;
        padding: 7px 12px;
        gap: 7px;
    }

    #main > section:nth-child(7) > div > header > p.gg-head__eyebrow::before,
    #main > section:nth-child(7) > div > header > p.gg-head__eyebrow::after {
        width: 14px;
    }
}

/* ==========================================
   GURUKUL — PREMIUM HOME GALLERY
   ========================================== */

#main .gg-grid--gallery {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
    align-items: stretch;
    margin-top: 32px;
}

#main .gg-grid--gallery > a {
    position: relative;
    display: block;
    min-width: 0;
    overflow: hidden;
    aspect-ratio: 4 / 3;
    border-radius: 20px;
    background: #e8f5ec;
    border: 1px solid rgba(11, 107, 58, 0.10);
    box-shadow: 0 8px 24px rgba(15, 40, 25, 0.09);
    isolation: isolate;
    transform: translateY(0);
    transition:
        transform 280ms ease,
        box-shadow 280ms ease,
        border-color 280ms ease;
}

#main .gg-grid--gallery > a::after {
    content: "";
    position: absolute;
    inset: 45% 0 0;
    z-index: 1;
    background: linear-gradient(
        to bottom,
        rgba(8, 30, 18, 0),
        rgba(8, 30, 18, 0.55)
    );
    opacity: 0.65;
    pointer-events: none;
    transition: opacity 280ms ease;
}

#main .gg-grid--gallery > a img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transition: transform 500ms cubic-bezier(.2, .7, .2, 1);
}

#main .gg-grid--gallery > a:hover {
    transform: translateY(-6px);
    border-color: rgba(11, 107, 58, 0.28);
    box-shadow: 0 18px 38px rgba(15, 40, 25, 0.17);
}

#main .gg-grid--gallery > a:hover img {
    transform: scale(1.055);
}

#main .gg-grid--gallery > a:hover::after {
    opacity: 1;
}

#main .gg-grid--gallery > a:focus-visible {
    outline: 3px solid #d9a900;
    outline-offset: 4px;
}

/* Tablet */
@media (min-width: 768px) {
    #main .gg-grid--gallery {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 26px;
    }
}

/* Desktop */
@media (min-width: 1100px) {
    #main .gg-grid--gallery {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 28px;
    }

    #main .gg-grid--gallery > a {
        aspect-ratio: 4 / 3;
        border-radius: 22px;
    }
}

/* Mobile */
@media (max-width: 575.98px) {
    #main .gg-grid--gallery {
        grid-template-columns: 1fr;
        gap: 18px;
        margin-top: 22px;
    }

    #main .gg-grid--gallery > a {
        aspect-ratio: 4 / 3;
        border-radius: 16px;
    }
}

/* Respect reduced-motion preferences */
@media (prefers-reduced-motion: reduce) {
    #main .gg-grid--gallery > a,
    #main .gg-grid--gallery > a img,
    #main .gg-grid--gallery > a::after {
        transition: none;
    }
}

/* ===== Hero slider (fade, autoplay, dots) ===== */
.gg-hero--slider-only { min-height: 0 !important; padding: 0 !important; background: none !important; }
.gg-hero--slider-only::before, .gg-hero--slider-only::after { display: none !important; }
.gg-hero--slider-only .gg-hero__media { position: relative !important; inset: auto !important; display: block !important; width: 100%; height: auto !important; }
.gg-slides { position: relative; display: grid; overflow: hidden; }
.gg-slide { grid-area: 1 / 1; opacity: 0; visibility: hidden; transition: opacity .8s ease, visibility .8s; }
.gg-slide.is-active { opacity: 1; visibility: visible; }
.gg-slide picture { display: block; width: 100%; }
.gg-slide .gg-hero__img {
  position: static !important; inset: auto !important; opacity: 1 !important; transform: none !important;
  display: block; width: 100% !important; height: clamp(220px, 42vw, 560px) !important; object-fit: cover !important;
}
.gg-slides__dots { position: absolute; left: 0; right: 0; bottom: 12px; display: flex; justify-content: center; gap: 8px; z-index: 5; }
.gg-slides__dot { width: 10px; height: 10px; padding: 0; border: 0; border-radius: 50%; background: rgba(255,255,255,.55); cursor: pointer; }
.gg-slides__dot.is-active { background: #fff; transform: scale(1.25); }
@media (prefers-reduced-motion: reduce) { .gg-slide { transition: none; } }
