/* ==========================================================================
   GSVS 2026 theme layer
   Loaded after style.css. Builds on the existing maroon/cream identity
   (--bs-sky #450601, --bs-mute rgb(247,243,231), --bs-tertiary #fe5900)
   and the gold of the official poster. All new classes are prefixed gs-.
   ========================================================================== */

:root {
	/* colour */
	--gs-maroon: #450601;          /* primary (existing --bs-sky) */
	--gs-maroon-deep: #2c0401;     /* footer / dark bands */
	--gs-maroon-hover: #820d04;    /* existing .btn-sky hover */
	--gs-maroon-tint: #f4e6e1;
	--gs-gold: #b8862f;            /* poster frame gold, decorative */
	--gs-gold-light: #e9c877;      /* gold on maroon */
	--gs-saffron: #fe5900;         /* existing --bs-tertiary, accents only */
	--gs-cream: #f7f3e7;           /* existing --bs-mute */
	--gs-cream-soft: #fbf8f1;
	--gs-white: #ffffff;
	--gs-ink: #2b1a16;             /* body text */
	--gs-muted: #6a5751;           /* secondary text, 6.6:1 on white */
	--gs-border: #e6dccb;

	/* type */
	--gs-font-head: "Baloo Bhai 2", myFirstFont, "Noto Sans Gujarati", system-ui, sans-serif;
	--gs-font-body: "Noto Sans Gujarati", "Baloo Bhai 2", myFirstFont, system-ui, sans-serif;
	--gs-fs-hero: clamp(2.1rem, 1.35rem + 3.2vw, 3.6rem);
	--gs-fs-h2: clamp(1.65rem, 1.3rem + 1.5vw, 2.4rem);
	--gs-fs-h3: clamp(1.18rem, 1.08rem + 0.45vw, 1.4rem);
	--gs-fs-body: 1.0625rem;
	--gs-fs-small: 0.9375rem;
	--gs-lh-body: 1.8;             /* Gujarati needs generous leading */
	--gs-lh-head: 1.35;

	/* shape & motion */
	--gs-radius: 10px;
	--gs-radius-sm: 6px;
	--gs-shadow-sm: 0 1px 2px rgba(69, 6, 1, 0.06), 0 2px 8px rgba(69, 6, 1, 0.05);
	--gs-shadow-md: 0 6px 24px rgba(69, 6, 1, 0.10);
	--gs-ease: cubic-bezier(0.2, 0.7, 0.2, 1);
	--gs-dur: 0.25s;
	--gs-section-y: clamp(3.5rem, 2.5rem + 4vw, 3rem);
	--gs-header-offset: 84px;
}

html { scroll-padding-top: var(--gs-header-offset); }

/* ---------- shared ---------- */

#main:focus { outline: none; }

.gs-header :focus-visible,
.gs-home :focus-visible,
.gs-footer :focus-visible,
.back-top:focus-visible {
	outline: 3px solid var(--gs-saffron);
	outline-offset: 2px;
}

.gs-home,
.gs-footer,
.gs-header {
	font-family: var(--gs-font-body);
	color: var(--gs-ink);
	font-size: var(--gs-fs-body);
	line-height: var(--gs-lh-body);
}
.gs-home a:not(.gs-btn) { color: var(--gs-maroon); text-decoration: underline; text-decoration-color: rgba(69, 6, 1, 0.3); text-underline-offset: 3px; }
.gs-home a:not(.gs-btn):hover { color: var(--gs-maroon-hover); text-decoration-color: currentColor; }

.gs-home h1, .gs-home h2, .gs-home h3,
.gs-footer h2 {
	font-family: var(--gs-font-head);
	line-height: var(--gs-lh-head);
	color: var(--gs-maroon);
	margin: 0;
}

.gs-section { padding: var(--gs-section-y) 0; }
.gs-section--cream { background: var(--gs-cream); }

.gs-section__head { max-width: 46rem; margin-bottom: clamp(2rem, 1.5rem + 1.5vw, 3rem); }
.gs-section__title {
	font-size: var(--gs-fs-h2);
	font-weight: 700;
	position: relative;
	padding-bottom: 0.9rem;
	margin-bottom: 1rem !important; /* style.css sets h2 margin with higher weight */
}
.gs-section__title::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 56px;
	height: 3px;
	border-radius: 2px;
	background: linear-gradient(90deg, var(--gs-maroon) 0 60%, var(--gs-gold) 60% 100%);
}
.gs-section__lead { color: var(--gs-muted); font-size: 1.1rem; margin: 0; }

.gs-eyebrow {
	font-family: var(--gs-font-head);
	font-weight: 600;
	font-size: 0.95rem;
	letter-spacing: 0.02em;
	color: var(--gs-gold);
	color: #8a5d12; /* darker gold for 4.5:1 on white/cream */
	margin: 0 0 0.35rem;
	display: flex;
	align-items: center;
	gap: 0.55rem;
}
.gs-eyebrow::before {
	content: "";
	width: 18px;
	height: 2px;
	background: currentColor;
	border-radius: 2px;
}
.gs-eyebrow--light { color: var(--gs-gold-light); }

.gs-list { padding-left: 1.15rem; margin: 0; }
.gs-list li { margin-bottom: 0.4rem; }
.gs-list li::marker { color: var(--gs-gold); }

/* ---------- buttons ---------- */
.gs-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	min-height: 48px;
	padding: 0.7rem 1.5rem;
	border: 2px solid transparent;
	border-radius: var(--gs-radius-sm);
	font-family: var(--gs-font-head);
	font-weight: 600;
	font-size: 1.05rem;
	line-height: 1.3;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	transition: background-color var(--gs-dur) var(--gs-ease), color var(--gs-dur) var(--gs-ease),
		border-color var(--gs-dur) var(--gs-ease), transform var(--gs-dur) var(--gs-ease), box-shadow var(--gs-dur) var(--gs-ease);
}
.gs-btn:hover { transform: translateY(-1px); }
.gs-btn:active { transform: translateY(0); }
.gs-btn--primary { background: var(--gs-maroon); color: var(--gs-white); border-color: var(--gs-maroon); }
.gs-btn--primary:hover, .gs-btn--primary:focus { background: var(--gs-maroon-hover); border-color: var(--gs-maroon-hover); color: var(--gs-white); box-shadow: var(--gs-shadow-md); }
.gs-btn--outline { background: transparent; color: var(--gs-maroon); border-color: var(--gs-maroon); }
.gs-btn--outline:hover, .gs-btn--outline:focus { background: var(--gs-maroon); color: var(--gs-white); }
.gs-btn--light { background: var(--gs-cream); color: var(--gs-maroon); border-color: var(--gs-cream); }
.gs-btn--light:hover, .gs-btn--light:focus { background: var(--gs-white); color: var(--gs-maroon-hover); }
/* gold: e.g. "એડમીન રજીસ્ટ્રેશન" in the navbar – maroon text on gold (7:1 contrast) */
.gs-btn--gold {
	background: linear-gradient(180deg, #f3d98f 0%, var(--gs-gold-light) 45%, #d4a64a 100%);
	color: var(--gs-maroon);
	border-color: #c9973c;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5);
}
.gs-btn--gold:hover, .gs-btn--gold:focus {
	background: linear-gradient(180deg, #f0cf74 0%, #deb458 50%, #c08a2e 100%);
	color: var(--gs-maroon-deep);
	border-color: var(--gs-gold);
	box-shadow: var(--gs-shadow-md);
}
.gs-btn--sm { min-height: 40px; padding: 0.45rem 1.1rem; font-size: 0.975rem; }
.gs-btn--block { display: flex; width: 100%; }

/* ---------- header ---------- */
/* Navbar pinned to the top once the topbar has scrolled away.
   Uses position:fixed (toggled by gsvs-theme.js) rather than position:sticky,
   so it keeps working even if a parent element gets overflow set. */
.gs-header {
	position: relative;
	z-index: 1030;
	background: var(--gs-white);
}
.gs-header.is-fixed { padding-bottom: var(--gs-nav-h, 78px); } /* reserves the nav's space: no jump */
.gs-header.is-fixed .gs-nav.navbar {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 1030;
}
@media (prefers-reduced-motion: no-preference) {
	.gs-header.is-fixed .gs-nav.navbar { animation: gs-nav-in 0.25s var(--gs-ease); }
}
@keyframes gs-nav-in { from { transform: translateY(-100%); } to { transform: none; } }
.gs-topbar {
	background: var(--gs-maroon);
	color: var(--gs-cream);
	height: 36px;
	display: flex;
	align-items: center;
	font-size: 0.875rem;
	overflow: hidden;
}
.gs-topbar__inner { display: flex; justify-content: space-between; align-items: center; gap: 1rem; height: 100%; }
.gs-topbar__left { display: flex; align-items: center; min-width: 0; white-space: nowrap; }
.gs-topbar__dept { overflow: hidden; text-overflow: ellipsis; font-family: "DM Sans", system-ui, sans-serif; letter-spacing: 0.01em; }
.gs-topbar__sep { color: rgba(233, 200, 119, 0.6); margin: 0 0.6rem; }
.gs-header .gs-topbar__skip { color: var(--gs-gold-light); text-decoration: none; font-family: "DM Sans", system-ui, sans-serif; }
.gs-header .gs-topbar__skip:hover, .gs-header .gs-topbar__skip:focus { color: var(--gs-white); text-decoration: underline; text-underline-offset: 3px; }

/* language switcher */
.gs-topbar__right { display: flex; align-items: center; gap: 0.45rem; flex: 0 0 auto; }
.gs-lang__icon { color: var(--gs-gold-light); font-size: 0.95rem; }
.gs-lang { display: inline-flex; border: 1px solid rgba(233, 200, 119, 0.4); border-radius: 999px; overflow: hidden; }
.gs-lang__btn {
	border: 0;
	margin: 0;
	padding: 0.1rem 0.7rem;
	background: transparent;
	color: var(--gs-cream);
	font-size: 0.82rem;
	line-height: 1.6;
	cursor: pointer;
	transition: background-color var(--gs-dur) var(--gs-ease), color var(--gs-dur) var(--gs-ease);
}
.gs-lang__btn + .gs-lang__btn { border-left: 1px solid rgba(233, 200, 119, 0.4); }
.gs-lang__btn:hover { background: rgba(255, 255, 255, 0.1); color: var(--gs-white); }
.gs-lang__btn[aria-pressed="true"] { background: var(--gs-gold-light); color: var(--gs-maroon); font-weight: 600; }
.gs-lang__short { display: none; }

/* Google Translate: keep the gadget off-screen and suppress its injected banner/tooltips */
.gs-gt-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
body > .skiptranslate, iframe.skiptranslate, .goog-te-banner-frame, #goog-gt-tt, .goog-te-balloon-frame,
.VIpgJd-ZVi9od-ORHb-OEVmcd, .VIpgJd-ZVi9od-aZ2wEe-wOHMyf { display: none !important; }
body { top: 0 !important; } /* Google shifts <body> down for its banner */
font.goog-text-highlight, .VIpgJd-yAWNEb-VIpgJd-fmcmS-sn54Q { background: none !important; box-shadow: none !important; }

.gs-nav.navbar {
	padding: 0.65rem 0;
	background: var(--gs-white);
	border-bottom: 1px solid var(--gs-border);
	box-shadow: none;
	transition: box-shadow var(--gs-dur) var(--gs-ease);
}
.gs-header.is-fixed .gs-nav.navbar { box-shadow: var(--gs-shadow-md); }

.gs-brand.navbar-brand {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin: 0;
	padding: 0;
	text-decoration: none;
	min-width: 0;
	white-space: normal;
}
.gs-nav a.gs-brand img.gs-brand__mark { /* beats style.css ".navbar a.navbar-brand img { width:125px }" */
	flex: 0 0 auto;
	width: 56px;
	height: 56px;
	object-fit: contain;
	filter: drop-shadow(0 2px 4px rgba(69, 6, 1, 0.2));
}
.gs-brand__text { display: flex; flex-direction: column; min-width: 0; }
.gs-brand__title {
	font-family: var(--gs-font-head);
	font-weight: 700;
	font-size: clamp(1.05rem, 0.9rem + 0.6vw, 1.35rem);
	line-height: 1.25;
	color: var(--gs-maroon);
}
.gs-brand__sub { font-size: 0.85rem; line-height: 1.4; color: var(--gs-muted); }

.gs-nav__toggle.navbar-toggler {
	border: 1px solid var(--gs-border);
	border-radius: var(--gs-radius-sm);
	width: 46px;
	height: 46px;
	padding: 0;
	color: var(--gs-maroon);
	font-size: 1.4rem;
}

.gs-menu .nav-link {
	font-family: var(--gs-font-head);
	font-weight: 600;
	font-size: 1.02rem;
	color: var(--gs-ink);
	text-transform: none;
	position: relative;
	transition: color var(--gs-dur) var(--gs-ease);
}
.gs-menu .nav-link:hover,
.gs-menu .nav-link:focus,
.gs-menu .nav-link.active { color: var(--gs-maroon); }

.gs-offcanvas__title { font-family: var(--gs-font-head); font-weight: 700; font-size: 1.25rem; color: var(--gs-maroon); margin: 0; }

/* desktop menu from 1200px (navbar-expand-xl): two CTAs + 7 links need the room */
@media (min-width: 1200px) {
	.gs-nav .offcanvas-body { display: flex; align-items: center; gap: 0.6rem; }
	.gs-menu .nav-link, .gs-nav__cta { white-space: nowrap; }
	.gs-menu { margin-right: 0.6rem; }
	.gs-menu { gap: 0.1rem; margin-left: auto; }
	.gs-menu .nav-link { padding: 0.5rem 0.7rem !important; }
	.gs-menu .nav-link::after {
		content: "";
		position: absolute;
		left: 0.7rem;
		right: 0.7rem;
		bottom: 0.2rem;
		height: 2px;
		background: var(--gs-gold);
		transform: scaleX(0);
		transform-origin: left;
		transition: transform var(--gs-dur) var(--gs-ease);
	}
	.gs-menu .nav-link:hover::after,
	.gs-menu .nav-link.active::after { transform: scaleX(1); }
}
/* 8 links + 2 CTAs: tighten step by step so the brand stays on one line */
@media (min-width: 1200px) { .gs-brand__title { white-space: nowrap; } }
@media (min-width: 1400px) and (max-width: 1599.98px) {
	.gs-menu .nav-link { padding: 0.5rem 0.45rem !important; }
	.gs-menu .nav-link::after { left: 0.45rem; right: 0.45rem; }
	.gs-nav__cta.gs-btn { padding-left: 1rem; padding-right: 1rem; }
}
@media (min-width: 1200px) and (max-width: 1399.98px) {
	.gs-brand__sub { display: none; }
	.gs-nav a.gs-brand img.gs-brand__mark { width: 46px; height: 46px; }
	.gs-brand.navbar-brand { gap: 0.5rem; }
	.gs-brand__title { font-size: 1.05rem; }
	.gs-nav .offcanvas-body { gap: 0.45rem; }
	.gs-menu { margin-right: 0.3rem; }
	.gs-menu .nav-link { padding: 0.5rem 0.3rem !important; font-size: 0.93rem; }
	.gs-menu .nav-link::after { left: 0.3rem; right: 0.3rem; }
	.gs-nav__cta.gs-btn { padding: 0.5rem 0.75rem; font-size: 0.93rem; }
}
@media (max-width: 1199.98px) {
	.gs-offcanvas.offcanvas { width: min(340px, 86vw); }
	.gs-offcanvas .offcanvas-header { border-bottom: 1px solid var(--gs-border); }
	.gs-menu .nav-link { padding: 0.8rem 0.25rem !important; border-bottom: 1px solid var(--gs-border); font-size: 1.08rem; }
	.gs-nav__cta { width: 100%; margin-top: 1.5rem; }
	.gs-nav__cta + .gs-nav__cta { margin-top: 0.6rem; }
}
@media (max-width: 575.98px) {
	.gs-nav a.gs-brand img.gs-brand__mark { width: 46px; height: 46px; }
	.gs-brand__sub { font-size: 0.78rem; }
	.gs-topbar { font-size: 0.8rem; }
	.gs-topbar__sep { display: none; }
	.gs-header .gs-topbar__skip:not(:focus) { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
	.gs-lang__full { display: none; }
	.gs-lang__short { display: inline; }
	.gs-lang__btn { padding: 0.05rem 0.6rem; }
}
/* skip link stays reachable by keyboard on small screens */
@media (max-width: 575.98px) {
	.gs-header .gs-topbar__skip:focus { position: absolute; left: 0.75rem; top: 6px; z-index: 5; background: var(--gs-maroon); padding: 0 0.4rem; }
}

/* ---------- hero ---------- */
.gs-hero {
	position: relative;
	padding: clamp(2.5rem, 1.5rem + 4vw, 5rem) 0 calc(clamp(2.5rem, 2rem + 2vw, 3.5rem) + 14px);
	background:
		radial-gradient(1200px 500px at 85% 10%, rgba(233, 200, 119, 0.22), transparent 60%),
		linear-gradient(180deg, var(--gs-cream-soft) 0%, var(--gs-cream) 100%);
	overflow: hidden;
}
/* scalloped trim – echoes the existing hero-bg artwork */
.gs-hero::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 14px;
	background: radial-gradient(circle at 12px 14px, var(--gs-maroon) 11px, transparent 12px) 0 0 / 24px 14px repeat-x;
}
.gs-hero__kicker {
	display: inline-block;
	font-size: 0.975rem;
	font-weight: 500;
	color: var(--gs-maroon);
	background: rgba(69, 6, 1, 0.06);
	border-left: 3px solid var(--gs-gold);
	padding: 0.35rem 0.85rem;
	border-radius: 0 var(--gs-radius-sm) var(--gs-radius-sm) 0;
	margin-bottom: 1.25rem;
}
.gs-hero__title {
	font-size: var(--gs-fs-hero);
	font-weight: 800;
	line-height: 1.22 !important;
	color: var(--gs-maroon);
	margin-bottom: 0.75rem !important;
}
.gs-hero__title span { color: var(--gs-maroon-hover); }
.gs-hero__title small {
	display: block;
	font-size: 0.5em;
	font-weight: 700;
	color: var(--gs-gold);
	color: #8a5d12;
	margin-top: 0.35rem;
	letter-spacing: 0.01em;
}
.gs-hero__tagline {
	font-family: var(--gs-font-head);
	font-weight: 600;
	font-size: clamp(1.2rem, 1.05rem + 0.6vw, 1.5rem);
	color: var(--gs-ink);
	margin-bottom: 1rem;
}
.gs-hero__lead { font-size: 1.1rem; color: var(--gs-muted); max-width: 38rem; margin-bottom: 2rem; }
.gs-hero__cta { display: flex; flex-wrap: wrap; gap: 0.75rem; }

/* right side: ornamental arch + logo, prize seal, registration card */
.gs-hero__stage {
	position: relative;
	max-width: 470px;
	margin: 0 auto;
	padding: 0 0 4.5rem;
}
.gs-hero__media {
	position: relative;
	margin: 0;
	aspect-ratio: 1 / 1.08;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 999px 999px 22px 22px;
	background:
		radial-gradient(circle at 50% 38%, #fffdf8 0, #fbf4e3 45%, #f1e1bd 100%);
	border: 2px solid var(--gs-gold);
	box-shadow:
		0 0 0 9px var(--gs-maroon),
		0 0 0 11px rgba(184, 134, 47, 0.7),
		0 24px 50px rgba(69, 6, 1, 0.22);
}
/* faint concentric "mandala" rings inside the arch */
.gs-hero__media::before {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	background:
		repeating-radial-gradient(circle at 50% 40%, rgba(184, 134, 47, 0.13) 0 1px, transparent 1px 26px);
	-webkit-mask-image: radial-gradient(circle at 50% 40%, #000 30%, transparent 72%);
	mask-image: radial-gradient(circle at 50% 40%, #000 30%, transparent 72%);
}
/* thin inner gold line following the arch */
.gs-hero__media::after {
	content: "";
	position: absolute;
	inset: 12px;
	border-radius: 999px 999px 14px 14px;
	border: 1px solid rgba(184, 134, 47, 0.45);
	pointer-events: none;
}
.gs-hero__media img {
	position: relative;
	z-index: 1;
	display: block;
	width: 118%;
	max-width: none;
	height: auto;
	margin: -4% -9% 0%;
	filter: drop-shadow(0 14px 22px rgba(69, 6, 1, 0.22));
}

/* prize seal */
.gs-hero__seal {
	position: absolute;
	z-index: 2;
	top: 6%;
	left: -5%;
	display: grid;
	place-content: center;
	width: 112px;
	height: 112px;
	margin: 0;
	border-radius: 50%;
	text-align: center;
	background: radial-gradient(circle at 35% 30%, #6b0c04, var(--gs-maroon) 70%);
	color: var(--gs-cream);
	box-shadow: 0 0 0 4px var(--gs-cream), 0 0 0 5px var(--gs-gold), var(--gs-shadow-md);
	transform: rotate(-8deg);
}
.gs-hero__seal::before {
	content: "";
	position: absolute;
	inset: 6px;
	border-radius: 50%;
	border: 1px dashed rgba(233, 200, 119, 0.7);
}
.gs-hero__seal-label { font-size: 0.72rem; line-height: 1.25; padding: 0 0.9rem; }
.gs-hero__seal strong {
	font-family: "DM Sans", system-ui, sans-serif;
	font-size: 1.15rem;
	font-weight: 700;
	color: var(--gs-gold-light);
	line-height: 1.2;
}

/* registration card */
.gs-hero__reg {
	position: absolute;
	z-index: 3;
	left: 4%;
	right: 4%;
	bottom: 0;
	display: grid;
	grid-template-columns: 1fr auto;
	grid-template-areas: "info btn" "timer timer";
	gap: 0.75rem 1rem;
	align-items: center;
	padding: 1rem 1.15rem 1.1rem;
	border-radius: var(--gs-radius);
	background: linear-gradient(135deg, var(--gs-maroon-deep), var(--gs-maroon));
	color: var(--gs-cream);
	border-top: 3px solid var(--gs-gold-light);
	box-shadow: 0 18px 40px rgba(44, 4, 1, 0.35);
}
.gs-hero__reg-info { grid-area: info; min-width: 0; }
.gs-hero__reg-info[hidden] { display: none; }
.gs-hero__reg-label {
	margin: 0;
	display: flex;
	align-items: center;
	gap: 0.4rem;
	font-size: 0.85rem;
	color: rgba(247, 243, 231, 0.85);
}
.gs-hero__reg-label i { color: var(--gs-gold-light); }
.gs-hero__reg-date { margin: 0.1rem 0 0; font-family: var(--gs-font-head); font-weight: 700; font-size: 1.05rem; line-height: 1.35; color: var(--gs-white); }
.gs-hero__reg-btn { grid-area: btn; white-space: nowrap; }
.gs-hero__timer { grid-area: timer; display: grid; grid-template-columns: repeat(4, 1fr); gap: 0.5rem; }
.gs-hero__timer span {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 0.35rem 0 0.3rem;
	border-radius: var(--gs-radius-sm);
	background: rgba(255, 255, 255, 0.08);
	box-shadow: inset 0 0 0 1px rgba(233, 200, 119, 0.25);
}
.gs-hero__timer b { font-family: var(--gs-font-head); font-weight: 700; font-size: 1.35rem; line-height: 1.2; color: var(--gs-gold-light); font-variant-numeric: tabular-nums; }
.gs-hero__timer small { font-size: 0.72rem; color: rgba(247, 243, 231, 0.75); }
.gs-hero__reg.is-done .gs-hero__timer { display: none; }

/* hero entrance (above the fold, CSS only) */
@media (prefers-reduced-motion: no-preference) {
	.gs-hero__text > * { animation: gs-fade-up 0.6s var(--gs-ease) both; }
	.gs-hero__text > *:nth-child(2) { animation-delay: 0.06s; }
	.gs-hero__text > *:nth-child(3) { animation-delay: 0.12s; }
	.gs-hero__text > *:nth-child(4) { animation-delay: 0.18s; }
	.gs-hero__text > *:nth-child(5) { animation-delay: 0.24s; }
	.gs-hero__media { animation: gs-reveal-img 0.8s var(--gs-ease) 0.15s both; }
	.gs-hero__seal { animation: gs-seal-in 0.7s var(--gs-ease) 0.45s both; }
	.gs-hero__reg { animation: gs-fade-up 0.6s var(--gs-ease) 0.35s both; }
	.gs-facts { animation: gs-fade-up 0.6s var(--gs-ease) 0.3s both; }
}
@keyframes gs-fade-up { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@keyframes gs-seal-in { from { opacity: 0; transform: rotate(-30deg) scale(0.6); } to { opacity: 1; transform: rotate(-8deg); } }
@keyframes gs-reveal-img { from { opacity: 0; transform: translateY(18px) scale(0.97); } to { opacity: 1; transform: none; } }

/* key facts strip */
.gs-facts {
	list-style: none;
	margin: clamp(2.5rem, 2rem + 2vw, 3.5rem) 0 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	background: var(--gs-white);
	border: 1px solid var(--gs-border);
	border-radius: var(--gs-radius);
	box-shadow: var(--gs-shadow-sm);
}
.gs-fact {
	display: grid;
	grid-template-columns: auto 1fr;
	grid-template-rows: auto auto;
	column-gap: 0.85rem;
	align-items: center;
	padding: 1.1rem 1.25rem;
}
.gs-fact + .gs-fact { border-left: 1px solid var(--gs-border); }
.gs-fact__icon {
	grid-row: span 2;
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	background: var(--gs-maroon-tint);
	color: var(--gs-maroon);
	font-size: 1.1rem;
}
.gs-fact__label { font-size: 0.875rem; color: var(--gs-muted); line-height: 1.5; }
.gs-fact__value { font-family: var(--gs-font-head); font-weight: 700; font-size: 1.08rem; color: var(--gs-maroon); line-height: 1.4; }

@media (max-width: 991.98px) {
	.gs-facts { grid-template-columns: repeat(2, 1fr); }
	.gs-fact:nth-child(3) { border-left: 0; }
	.gs-fact:nth-child(n+3) { border-top: 1px solid var(--gs-border); }
	.gs-hero__stage { max-width: 440px; }
}
@media (max-width: 575.98px) {
	.gs-facts { grid-template-columns: 1fr; }
	.gs-fact + .gs-fact { border-left: 0; border-top: 1px solid var(--gs-border); }
	.gs-hero__cta .gs-btn { flex: 1 1 100%; }
	.gs-hero__stage { max-width: 340px; padding-bottom: 0; }
	.gs-hero__seal { width: 88px; height: 88px; left: -3%; top: 2%; }
	.gs-hero__seal-label { font-size: 0.62rem; padding: 0 0.6rem; }
	.gs-hero__seal strong { font-size: 0.95rem; }
	.gs-hero__reg { position: relative; left: auto; right: auto; margin: -2.25rem -0.5rem 0; }
}

/* ---------- about + video ---------- */
.gs-prose p { margin-bottom: 1.1rem; }
.gs-prose p:last-child { margin-bottom: 0; }
.gs-prose strong { color: var(--gs-maroon); font-weight: 600; }

.gs-video { margin: 0; }
/* Drive intro video: poster + play button, replaced by the Drive iframe on click */
.gs-video__frame {
	position: relative;
	display: block;
	width: 100%;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: var(--gs-maroon-deep);
	border-radius: var(--gs-radius);
	box-shadow: var(--gs-shadow-md);
	border: 1px solid var(--gs-border);
}
.gs-video__frame img, .gs-video__frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.gs-video__frame img { object-fit: cover; transition: transform 0.4s var(--gs-ease); }
.gs-video__poster::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 40%, rgba(44, 4, 1, 0.45)); }
.gs-video__play {
	position: absolute;
	z-index: 1;
	left: 50%;
	top: 50%;
	width: 4.5rem;
	height: 4.5rem;
	margin: -2.25rem 0 0 -2.25rem;
	display: grid;
	place-items: center;
	border-radius: 50%;
	background: var(--gs-maroon);
	color: var(--gs-gold-light);
	font-size: 1.8rem;
	box-shadow: 0 0 0 6px rgba(255, 255, 255, 0.35), 0 10px 26px rgba(0, 0, 0, 0.35);
	transition: transform var(--gs-dur) var(--gs-ease), background-color var(--gs-dur) var(--gs-ease);
}
.gs-video__play i { margin-left: 0.2rem; }
.gs-video__poster:hover img { transform: scale(1.03); }
.gs-video__poster:hover .gs-video__play, .gs-video__poster:focus-visible .gs-video__play { transform: scale(1.08); background: var(--gs-maroon-hover); }
.gs-video__poster:focus-visible { outline: 3px solid var(--gs-saffron); outline-offset: 3px; }
.gs-video video {
	display: block;
	width: 100%;
	aspect-ratio: 848 / 480;
	background: var(--gs-maroon-deep);
	border-radius: var(--gs-radius);
	box-shadow: var(--gs-shadow-md);
	border: 1px solid var(--gs-border);
}
.gs-video figcaption {
	margin-top: 0.75rem;
	font-size: var(--gs-fs-small);
	color: var(--gs-muted);
	display: flex;
	align-items: center;
	gap: 0.5rem;
}
.gs-video figcaption i { color: var(--gs-maroon); }

.gs-training {
	margin-top: clamp(2.5rem, 2rem + 2vw, 4rem);
	padding: clamp(1.5rem, 1.2rem + 1.5vw, 2.25rem);
	background: var(--gs-cream-soft);
	border: 1px solid var(--gs-border);
	border-left: 4px solid var(--gs-maroon);
	border-radius: var(--gs-radius);
}
.gs-training__head { display: flex; gap: 1rem; align-items: flex-start; margin-bottom: 0.75rem; }
.gs-training__head p { margin: 0; color: var(--gs-muted); }
.gs-training__icon {
	flex: 0 0 auto;
	display: grid;
	place-items: center;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: var(--gs-maroon);
	color: var(--gs-gold-light);
	font-size: 1.25rem;
}
.gs-training__title { font-size: var(--gs-fs-h3) !important; font-weight: 700; margin-bottom: 0.2rem !important; }
.gs-training__body { margin-bottom: 1.1rem; }

.gs-chips { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 0.5rem; }
.gs-chips li {
	font-size: var(--gs-fs-small);
	font-weight: 500;
	padding: 0.3rem 0.9rem;
	border: 1px solid rgba(69, 6, 1, 0.2);
	border-radius: 999px;
	background: var(--gs-white);
	color: var(--gs-maroon);
}

/* ---------- levels / stepper ---------- */
.gs-steps {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1.25rem;
	position: relative;
	counter-reset: none;
}
/* connecting rail */
.gs-steps::before {
	content: "";
	position: absolute;
	top: 26px;
	left: 12.5%;
	right: 12.5%;
	height: 2px;
	background: repeating-linear-gradient(90deg, var(--gs-gold) 0 8px, transparent 8px 14px);
}
.gs-step { position: relative; display: flex; flex-direction: column; align-items: center; }
.gs-step__marker {
	position: relative;
	z-index: 1;
	display: grid;
	place-items: center;
	width: 54px;
	height: 54px;
	border-radius: 50%;
	background: var(--gs-white);
	border: 2px solid var(--gs-maroon);
	color: var(--gs-maroon);
	font-family: var(--gs-font-head);
	font-weight: 700;
	font-size: 1.4rem;
	margin-bottom: 1rem;
	box-shadow: 0 0 0 6px var(--gs-cream);
}
.gs-step--final .gs-step__marker { background: var(--gs-maroon); color: var(--gs-gold-light); }
.gs-step__card {
	flex: 1;
	width: 100%;
	display: flex;
	flex-direction: column;
	padding: 1.4rem 1.3rem 1.2rem;
	background: var(--gs-white);
	border: 1px solid var(--gs-border);
	border-top: 3px solid var(--gs-maroon);
	border-radius: var(--gs-radius);
	box-shadow: var(--gs-shadow-sm);
	transition: transform var(--gs-dur) var(--gs-ease), box-shadow var(--gs-dur) var(--gs-ease);
}
.gs-step__card:hover { transform: translateY(-3px); box-shadow: var(--gs-shadow-md); }
.gs-step--final .gs-step__card { border-top-color: var(--gs-gold); }
.gs-step__stage { font-size: 0.875rem; font-weight: 600; color: #8a5d12; margin: 0 0 0.15rem; }
.gs-step__title { font-size: var(--gs-fs-h3) !important; font-weight: 700; margin-bottom: 0.75rem !important; }
.gs-step__meta { list-style: none; padding: 0; margin: 0 0 0.85rem; display: flex; flex-wrap: wrap; gap: 0.4rem; }
.gs-step__meta li {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	font-size: 0.85rem;
	font-weight: 500;
	padding: 0.15rem 0.65rem;
	border-radius: 999px;
	background: var(--gs-maroon-tint);
	color: var(--gs-maroon);
}
.gs-step .gs-list { font-size: 0.975rem; line-height: 1.7; margin-bottom: 1rem; }
.gs-step__next {
	margin: auto 0 0;
	padding-top: 0.85rem;
	border-top: 1px dashed var(--gs-border);
	font-size: 0.95rem;
	line-height: 1.6;
	color: var(--gs-ink);
}
.gs-step__next i { color: var(--gs-maroon); margin-right: 0.25rem; }
.gs-step__next strong { color: var(--gs-maroon); }
.gs-step__eg { display: block; font-size: 0.85rem; color: var(--gs-muted); margin-top: 0.2rem; }

@media (max-width: 1199.98px) {
	.gs-steps { grid-template-columns: repeat(2, 1fr); gap: 2rem 1.25rem; }
	.gs-steps::before { display: none; }
}
@media (max-width: 767.98px) {
	.gs-steps { grid-template-columns: 1fr; gap: 0; }
	.gs-steps::before {
		display: block;
		top: 27px;
		bottom: 27px;
		left: 26px;
		right: auto;
		width: 2px;
		height: auto;
		background: repeating-linear-gradient(180deg, var(--gs-gold) 0 8px, transparent 8px 14px);
	}
	.gs-step { flex-direction: row; align-items: flex-start; gap: 1rem; padding-bottom: 1.25rem; }
	.gs-step__marker { flex: 0 0 54px; margin: 0; }
}

/* ---------- subjects ---------- */
.gs-carousel.gs-topics { align-items: start; padding-bottom: 1.5rem; }
.gs-topic {
	background: var(--gs-white);
	border: 1px solid var(--gs-border);
	border-radius: var(--gs-radius);
	box-shadow: var(--gs-shadow-sm);
	overflow: hidden;
	transition: box-shadow var(--gs-dur) var(--gs-ease), border-color var(--gs-dur) var(--gs-ease);
}
.gs-topic:hover { box-shadow: var(--gs-shadow-md); border-color: rgba(69, 6, 1, 0.25); }
.gs-topic__head {
	display: flex;
	gap: 1rem;
	align-items: flex-start;
	padding: 1.4rem 1.4rem 1.1rem;
	min-height: 118px;
}
.gs-topic__num {
	flex: 0 0 auto;
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border-radius: var(--gs-radius-sm);
	background: var(--gs-maroon);
	color: var(--gs-gold-light);
	font-family: var(--gs-font-head);
	font-weight: 700;
	font-size: 1.3rem;
}
.gs-topic__title { font-size: var(--gs-fs-h3) !important; font-weight: 700; padding-top: 0.25rem; }

.gs-topic__details { border-top: 1px solid var(--gs-border); }
.gs-topic__details summary {
	list-style: none;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 0.8rem 1.4rem;
	font-family: var(--gs-font-head);
	font-weight: 600;
	font-size: 1rem;
	color: var(--gs-maroon);
	cursor: pointer;
	background: var(--gs-cream-soft);
	transition: background-color var(--gs-dur) var(--gs-ease);
}
.gs-topic__details summary::-webkit-details-marker { display: none; }
.gs-topic__details summary:hover { background: var(--gs-cream); }
.gs-topic__details summary i { transition: transform var(--gs-dur) var(--gs-ease); }
.gs-topic__details[open] summary i { transform: rotate(180deg); }
.gs-topic__details[open] summary { border-bottom: 1px solid var(--gs-border); }

.gs-outline { list-style: none; margin: 0; padding: 1rem 1.4rem 1.3rem; font-size: 0.975rem; line-height: 1.75; }
.gs-outline li { position: relative; padding-left: 1.15rem; margin-bottom: 0.5rem; }
.gs-outline li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.72em;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--gs-gold);
}
.gs-outline li.gs-outline__cap { font-weight: 600; color: var(--gs-maroon); padding-left: 0; }
.gs-outline li.gs-outline__cap::before { display: none; }
.gs-outline li:last-child { margin-bottom: 0; }

@media (prefers-reduced-motion: no-preference) {
	.gs-topic__details[open] .gs-outline { animation: gs-fade-up 0.3s var(--gs-ease); }
}


/* ---------- prizes (dark band) ---------- */
.gs-prizes {
	background:
		radial-gradient(900px 400px at 50% -10%, rgba(233, 200, 119, 0.14), transparent 70%),
		var(--gs-maroon);
	color: var(--gs-cream);
}
.gs-prizes .gs-section__head { margin-left: auto; margin-right: auto; text-align: center; }
.gs-section__head--light .gs-eyebrow { color: var(--gs-gold-light); justify-content: center; }
.gs-section__head--light .gs-section__title { color: var(--gs-white); }
.gs-section__head--light .gs-section__title::after { left: 50%; transform: translateX(-50%); background: var(--gs-gold-light); }
.gs-section__head--light .gs-section__lead { color: rgba(247, 243, 231, 0.85); }

.gs-tiers { display: grid; grid-template-columns: 1fr 1fr 1.25fr; gap: 1.25rem; align-items: start; }
.gs-tier {
	display: flex;
	flex-direction: column;
	padding: 1.75rem 1.5rem;
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid rgba(233, 200, 119, 0.28);
	border-radius: var(--gs-radius);
	transition: transform var(--gs-dur) var(--gs-ease), background-color var(--gs-dur) var(--gs-ease);
}
.gs-tier:hover { transform: translateY(-3px); background: rgba(255, 255, 255, 0.09); }
.gs-tier__level {
	font-family: "DM Sans", system-ui, sans-serif;
	font-weight: 700;
	font-size: 0.8rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--gs-gold-light);
	margin: 0 0 0.35rem;
}
.gs-home .gs-tier__award { font-size: 1.2rem !important; font-weight: 700; color: var(--gs-white); margin-bottom: 1.25rem !important; font-family: "DM Sans", var(--gs-font-head); }
.gs-tier__list { margin: 0 0 1rem; }
.gs-tier__list > div { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; padding: 0.6rem 0; border-bottom: 1px solid rgba(233, 200, 119, 0.2); }
.gs-tier__list > div:first-child { padding-top: 0; }
.gs-tier__list dt { font-weight: 500; font-size: 0.95rem; color: rgba(247, 243, 231, 0.85); }
.gs-tier__list dd { margin: 0; font-family: "DM Sans", system-ui, sans-serif; font-weight: 700; font-size: 1.5rem; color: var(--gs-white); white-space: nowrap; }
.gs-tier__note { margin: 0; font-size: 0.9rem; color: rgba(247, 243, 231, 0.8); line-height: 1.6; }

.gs-tier--state { background: var(--gs-cream); border: 2px solid var(--gs-gold); color: var(--gs-ink); }
.gs-tier--state:hover { background: var(--gs-white); }
.gs-tier--state .gs-tier__level { color: #8a5d12; }
.gs-home .gs-tier--state .gs-tier__award { color: var(--gs-maroon); }
.gs-tier--state .gs-tier__list > div { border-bottom-color: var(--gs-border); }
.gs-tier--state .gs-tier__list dt { color: var(--gs-muted); }
.gs-tier--state .gs-tier__list dd { color: var(--gs-maroon); font-size: 1.35rem; }
.gs-tier--state .gs-tier__first dd { font-size: 2rem; }
.gs-tier--state .gs-tier__note { color: var(--gs-muted); }

@media (max-width: 991.98px) {
	.gs-tiers { grid-template-columns: 1fr 1fr; }
	.gs-tier--state { grid-column: 1 / -1; }
}
@media (max-width: 575.98px) {
	.gs-tiers { grid-template-columns: 1fr; }
}

/* ---------- zones table ---------- */
.gs-table-wrap {
	background: var(--gs-white);
	border: 1px solid var(--gs-border);
	border-radius: var(--gs-radius);
	box-shadow: var(--gs-shadow-sm);
	overflow: hidden;
}
.gs-table { width: 100%; border-collapse: collapse; font-size: 1rem; line-height: 1.65; }
.gs-table thead th {
	background: var(--gs-maroon);
	color: var(--gs-white);
	font-family: var(--gs-font-head);
	font-weight: 600;
	text-align: left;
	padding: 0.85rem 1.25rem;
}
.gs-table tbody th,
.gs-table tbody td { padding: 0.85rem 1.25rem; border-top: 1px solid var(--gs-border); vertical-align: top; }
.gs-table tbody th { width: 5rem; font-family: var(--gs-font-head); font-weight: 700; color: var(--gs-maroon); }
.gs-table tbody td:last-child { font-weight: 500; color: var(--gs-maroon); }
.gs-table tbody tr:nth-child(even) { background: var(--gs-cream-soft); }
.gs-table tbody tr { transition: background-color var(--gs-dur) var(--gs-ease); }
.gs-table tbody tr:hover { background: var(--gs-maroon-tint); }

@media (max-width: 767.98px) {
	.gs-table-wrap { background: transparent; border: 0; box-shadow: none; overflow: visible; }
	.gs-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
	.gs-table, .gs-table tbody, .gs-table tr, .gs-table th, .gs-table td { display: block; width: 100%; }
	.gs-table tbody tr {
		position: relative;
		margin-bottom: 0.75rem;
		padding: 0.9rem 1rem 0.9rem 4rem;
		background: var(--gs-white) !important;
		border: 1px solid var(--gs-border);
		border-radius: var(--gs-radius);
	}
	.gs-table tbody th {
		position: absolute;
		left: 1rem;
		top: 0.9rem;
		width: 2.2rem;
		height: 2.2rem;
		padding: 0;
		border: 0;
		display: grid;
		place-items: center;
		border-radius: 50%;
		background: var(--gs-maroon);
		color: var(--gs-gold-light);
	}
	.gs-table tbody td { padding: 0; border: 0; }
	.gs-table tbody td::before {
		content: attr(data-label);
		display: block;
		font-size: 0.8rem;
		font-weight: 600;
		color: #8a5d12;
	}
	.gs-table tbody td + td { margin-top: 0.5rem; }
}

/* ---------- guidelines & dates ---------- */
.gs-dates {
	position: sticky;
	top: calc(var(--gs-header-offset) + 1rem);
	padding: 2rem 1.75rem;
	border-radius: var(--gs-radius);
	background: var(--gs-maroon);
	color: var(--gs-cream);
	box-shadow: var(--gs-shadow-md);
	overflow: hidden;
}
.gs-dates::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	height: 4px;
	background: linear-gradient(90deg, var(--gs-gold-light), var(--gs-gold));
}
.gs-home .gs-dates__title { font-size: 1.6rem !important; color: var(--gs-white); margin-bottom: 1.25rem !important; }
.gs-dates__list { list-style: none; padding: 0; margin: 0 0 1.75rem; }
.gs-dates__list li { padding: 0.9rem 0; border-top: 1px solid rgba(233, 200, 119, 0.25); }
.gs-dates__label { display: block; font-size: 0.9rem; color: rgba(247, 243, 231, 0.8); }
.gs-dates__value { display: block; font-family: var(--gs-font-head); font-weight: 700; font-size: 1.3rem; color: var(--gs-white); line-height: 1.45; }
.gs-dates__value--tba { font-size: 1.05rem; color: var(--gs-gold-light); }

.gs-guide { list-style: none; counter-reset: gs-guide; padding: 0; margin: 0.5rem 0 1.75rem; }
.gs-guide li {
	counter-increment: gs-guide;
	position: relative;
	padding: 0 0 1.4rem 3.4rem;
}
.gs-guide li::before {
	content: counter(gs-guide, gujarati);
	position: absolute;
	left: 0;
	top: 0;
	display: grid;
	place-items: center;
	width: 2.3rem;
	height: 2.3rem;
	border-radius: 50%;
	border: 2px solid var(--gs-maroon);
	color: var(--gs-maroon);
	font-family: var(--gs-font-head);
	font-weight: 700;
	font-size: 1.05rem;
	background: var(--gs-white);
}
.gs-guide li::after {
	content: "";
	position: absolute;
	left: calc(1.15rem - 1px);
	top: 2.5rem;
	bottom: 0.3rem;
	width: 2px;
	background: var(--gs-border);
}
.gs-guide li:last-child::after { display: none; }
.gs-guide h3 { font-size: 1.15rem !important; font-weight: 700; margin-bottom: 0.25rem !important; padding-top: 0.2rem; }
.gs-guide p { margin: 0; color: var(--gs-ink); }

.gs-notice {
	display: flex;
	gap: 0.85rem;
	align-items: flex-start;
	margin: 0;
	padding: 1rem 1.25rem;
	background: #fff7e8;
	border: 1px solid #f0d9a8;
	border-radius: var(--gs-radius);
}
.gs-notice i { color: #8a5d12; font-size: 1.3rem; line-height: 1.6; }
.gs-notice strong { color: var(--gs-maroon); }

@media (max-width: 991.98px) {
	.gs-dates { position: static; }
}

/* ---------- footer ---------- */
.gs-footer {
	position: relative;
	background: var(--gs-maroon-deep);
	color: rgba(247, 243, 231, 0.82);
	padding-top: calc(clamp(3rem, 2.5rem + 2vw, 4.5rem) + 14px);
	font-size: 0.975rem;
}
.gs-footer__border {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 14px;
	background:
		radial-gradient(circle at 12px 0, var(--gs-white) 11px, transparent 12px) 0 0 / 24px 14px repeat-x;
}
.gs-footer a { color: var(--gs-cream); text-decoration: none; transition: color var(--gs-dur) var(--gs-ease); }
.gs-footer a:hover, .gs-footer a:focus { color: var(--gs-gold-light); text-decoration: underline; text-underline-offset: 3px; }
.gs-footer__brand { font-family: var(--gs-font-head); font-weight: 700; font-size: 1.5rem; line-height: 1.3; color: var(--gs-white); margin: 0 0 0.25rem; }
.gs-footer__tag { color: var(--gs-gold-light); font-weight: 500; margin-bottom: 1rem; }
.gs-footer__about { max-width: 26rem; margin: 0; }
.gs-footer h2.gs-footer__title {
	font-size: 1.1rem;
	font-weight: 700;
	color: var(--gs-white);
	margin-bottom: 1rem;
	padding-bottom: 0.6rem;
	border-bottom: 1px solid rgba(233, 200, 119, 0.25);
}
.gs-footer__links, .gs-footer__contact { list-style: none; padding: 0; margin: 0; }
.gs-footer__links li { margin-bottom: 0.45rem; }
.gs-footer__contact li { display: flex; gap: 0.75rem; align-items: flex-start; margin-bottom: 0.8rem; line-height: 1.6; }
.gs-footer__contact i { color: var(--gs-gold-light); margin-top: 0.3rem; flex: 0 0 auto; }
.gs-footer__bottom {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 0.5rem 2rem;
	margin-top: clamp(2.5rem, 2rem + 2vw, 3.5rem);
	padding: 1.25rem 0 1.5rem;
	border-top: 1px solid rgba(233, 200, 119, 0.2);
	font-family: "DM Sans", system-ui, sans-serif;
	font-size: 0.875rem;
}
.gs-footer__bottom p { margin: 0; }
.gs-footer__bottom a { text-decoration: underline; text-underline-offset: 3px; }

/* ---------- back to top (now a <button>) ---------- */
button.back-top {
	border: 0;
	padding: 0;
	background: var(--gs-maroon);
	color: var(--gs-white);
	border-radius: 50%;
	width: 48px;
	height: 48px;
	line-height: 48px;
	box-shadow: var(--gs-shadow-md);
}
button.back-top:hover { background: var(--gs-maroon-hover); }

/* ---------- scroll reveal (enabled by gsvs-theme.js) ---------- */
@media (prefers-reduced-motion: no-preference) {
	.gs-ready [data-gs-reveal] {
		opacity: 0;
		transform: translateY(18px);
		transition: opacity 0.55s var(--gs-ease), transform 0.55s var(--gs-ease);
	}
	.gs-ready [data-gs-reveal].is-visible { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.gs-home *, .gs-header *, .gs-footer * { transition: none !important; animation: none !important; }
}

/* offcanvas close button – replace template lime with theme tint */
.gs-offcanvas .btn-close {
	background-color: var(--gs-maroon-tint);
	border-radius: 50%;
	opacity: 1;
	padding: 0.6rem;
}
.gs-offcanvas .btn-close:hover { background-color: var(--gs-cream); }
/* style.css draws the close icon in a lime circle via ::before */
.gs-offcanvas .btn-close::before { background-color: var(--gs-maroon-tint); color: var(--gs-maroon); }
.gs-offcanvas .btn-close:hover::before { background-color: var(--gs-maroon); color: var(--gs-white); }

/* ---------- registration "coming soon" ---------- */
.gs-soon {
	position: relative;
	padding: clamp(3rem, 2rem + 4vw, 6rem) 0;
	background:
		radial-gradient(1000px 420px at 50% 0%, rgba(233, 200, 119, 0.25), transparent 65%),
		linear-gradient(180deg, var(--gs-cream) 0%, var(--gs-cream-soft) 70%, var(--gs-white) 100%);
}
.gs-soon__card {
	max-width: 760px;
	margin: 0 auto;
	text-align: center;
	padding: clamp(2rem, 1.5rem + 2.5vw, 3.25rem) clamp(1.25rem, 1rem + 2vw, 3rem);
	background: var(--gs-white);
	border: 1px solid var(--gs-border);
	border-top: 4px solid var(--gs-maroon);
	border-radius: var(--gs-radius);
	box-shadow: var(--gs-shadow-md);
}
.gs-soon__badge {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	margin: 0 0 1rem;
	padding: 0.25rem 0.9rem;
	border-radius: 999px;
	background: var(--gs-maroon-tint);
	color: var(--gs-maroon);
	font-family: var(--gs-font-head);
	font-weight: 600;
	font-size: 0.95rem;
}
.gs-home .gs-soon__title {
	font-size: clamp(1.6rem, 1.2rem + 1.8vw, 2.4rem) !important;
	font-weight: 800;
	margin-bottom: 0.75rem !important;
}
.gs-soon__when { color: var(--gs-muted); margin-bottom: 2rem; }
.gs-soon__when time { display: block; font-family: var(--gs-font-head); font-weight: 700; font-size: 1.2rem; color: var(--gs-maroon); }

.gs-countdown {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: clamp(0.5rem, 0.3rem + 1vw, 1rem);
	max-width: 560px;
	margin: 0 auto 2rem;
}
.gs-countdown__unit {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 1rem 0.25rem 0.75rem;
	border-radius: var(--gs-radius);
	background: var(--gs-maroon);
	box-shadow: inset 0 0 0 1px rgba(233, 200, 119, 0.35);
}
.gs-countdown__num {
	font-family: var(--gs-font-head);
	font-weight: 700;
	font-size: clamp(2rem, 1.4rem + 2.6vw, 3.25rem);
	line-height: 1.1;
	color: var(--gs-gold-light);
	font-variant-numeric: tabular-nums;
}
.gs-countdown__label { margin-top: 0.3rem; font-size: 0.9rem; color: rgba(247, 243, 231, 0.85); }
.gs-countdown.is-done .gs-countdown__unit { background: var(--gs-maroon-hover); }

.gs-soon__open {
	display: flex;
	gap: 0.6rem;
	justify-content: center;
	align-items: flex-start;
	margin: -0.75rem auto 2rem;
	max-width: 560px;
	padding: 0.85rem 1rem;
	border-radius: var(--gs-radius);
	background: #eef7ee;
	border: 1px solid #b9dcb9;
	color: #1f5a28;
	font-weight: 500;
}
.gs-soon__open[hidden] { display: none; }
.gs-soon__open i { margin-top: 0.3rem; }

.gs-soon__info {
	text-align: left;
	margin: 0 auto 2rem;
	max-width: 560px;
	padding: 1rem 1.25rem;
	background: var(--gs-cream-soft);
	border: 1px solid var(--gs-border);
	border-left: 4px solid var(--gs-gold);
	border-radius: var(--gs-radius-sm);
	font-size: 0.975rem;
}
.gs-soon__info p { margin: 0 0 0.4rem; }
.gs-soon__info p:last-child { margin-bottom: 0; }
.gs-soon__info strong { color: var(--gs-maroon); }
.gs-soon__cta { display: flex; flex-wrap: wrap; gap: 0.75rem; justify-content: center; }

@media (max-width: 575.98px) {
	.gs-countdown__unit { padding: 0.75rem 0.1rem 0.6rem; }
	.gs-countdown__label { font-size: 0.8rem; }
	.gs-soon__cta .gs-btn { flex: 1 1 100%; }
}
@media (prefers-reduced-motion: no-preference) {
	.gs-soon__card { animation: gs-fade-up 0.6s var(--gs-ease) both; }
}

/* ---------- footer emblem ---------- */
.gs-footer__emblem {
	display: block;
	width: 72px;
	height: 72px;
	object-fit: contain;
	margin-bottom: 0.9rem;
	filter: drop-shadow(0 4px 12px rgba(0, 0, 0, 0.35));
}

/* ---------- highlights carousel ---------- */
.gs-highlights { background: var(--gs-white); overflow: hidden; }
.gs-carousel__head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: 1.75rem;
}
.gs-highlights .gs-carousel__head .gs-section__title { margin-bottom: 0 !important; }
.gs-carousel__head .gs-section__head { margin-bottom: 0; }
.gs-carousel__nav { display: flex; gap: 0.5rem; flex: 0 0 auto; }
.gs-carousel__btn {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	border: 1px solid rgba(69, 6, 1, 0.25);
	background: var(--gs-white);
	color: var(--gs-maroon);
	font-size: 1.2rem;
	cursor: pointer;
	transition: background-color var(--gs-dur) var(--gs-ease), color var(--gs-dur) var(--gs-ease), opacity var(--gs-dur);
}
.gs-carousel__btn:hover { background: var(--gs-maroon); color: var(--gs-white); }
.gs-carousel__btn:disabled { opacity: 0.35; cursor: default; background: var(--gs-white); color: var(--gs-maroon); }
.gs-carousel {
	position: relative; /* keeps absolutely positioned children (e.g. visually-hidden text) inside the scroller */
	list-style: none;
	margin: 0;
	padding: 0.25rem 0 1.25rem;
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: calc((100% - 2 * 1.25rem) / 3);
	gap: 1.25rem;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scrollbar-width: thin;
	scrollbar-color: rgba(69, 6, 1, 0.3) transparent;
	overscroll-behavior-x: contain;
}
.gs-carousel:focus-visible { outline: 3px solid var(--gs-saffron); outline-offset: 4px; }
.gs-carousel > * { position: relative; scroll-snap-align: start; min-width: 0; }
.gs-home a.gs-slide__link {
	display: block;
	height: 100%;
	text-decoration: none;
	border-radius: var(--gs-radius);
	overflow: hidden;
	background: var(--gs-white);
	border: 1px solid var(--gs-border);
	box-shadow: var(--gs-shadow-sm);
	transition: transform var(--gs-dur) var(--gs-ease), box-shadow var(--gs-dur) var(--gs-ease);
}
.gs-home a.gs-slide__link:hover { transform: translateY(-3px); box-shadow: var(--gs-shadow-md); }
.gs-slide__link img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }
.gs-slide__cap {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	padding: 0.8rem 1rem;
	font-family: var(--gs-font-head);
	font-weight: 600;
	font-size: 1rem;
	line-height: 1.4;
	color: var(--gs-maroon);
}
.gs-slide__num {
	display: grid;
	place-items: center;
	flex: 0 0 auto;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: var(--gs-maroon-tint);
	font-size: 0.9rem;
}
@media (max-width: 991.98px) {
	.gs-carousel { grid-auto-columns: calc((100% - 1.25rem) / 2); }
}
@media (max-width: 575.98px) {
	.gs-carousel { grid-auto-columns: 86%; gap: 0.9rem; }
	.gs-carousel__nav { display: none; }
}

/* ---------- topic images ---------- */
.gs-home a.gs-topic__media {
	position: relative;
	display: block;
	overflow: hidden;
	text-decoration: none;
	border-bottom: 1px solid var(--gs-border);
}
.gs-topic__media img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	transition: transform 0.5s var(--gs-ease);
}
.gs-topic__media:hover img, .gs-topic__media:focus-visible img { transform: scale(1.035); }
.gs-topic__zoom {
	position: absolute;
	right: 0.6rem;
	bottom: 0.6rem;
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	padding: 0.2rem 0.7rem;
	border-radius: 999px;
	background: rgba(44, 4, 1, 0.82);
	color: var(--gs-white);
	font-size: 0.82rem;
	opacity: 0;
	transform: translateY(4px);
	transition: opacity var(--gs-dur) var(--gs-ease), transform var(--gs-dur) var(--gs-ease);
}
.gs-topic__media:hover .gs-topic__zoom, .gs-topic__media:focus-visible .gs-topic__zoom { opacity: 1; transform: none; }
@media (hover: none) { .gs-topic__zoom { opacity: 1; transform: none; } }
.gs-topic__head { min-height: 6.6rem; }
@media (max-width: 575.98px) { .gs-topic__head { min-height: 0; } }
.gs-home a.gs-topic__points {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	margin: 0 1.4rem 1.2rem;
	font-weight: 600;
	font-size: 0.95rem;
}

/* ---------- lightbox ---------- */
.gs-lightbox {
	width: min(1200px, 94vw);
	max-width: none;
	max-height: 94vh;
	padding: 0;
	border: 0;
	border-radius: var(--gs-radius);
	background: var(--gs-maroon-deep);
	color: var(--gs-cream);
	overflow: hidden;
	font-family: var(--gs-font-body);
}
.gs-lightbox::backdrop { background: rgba(20, 3, 1, 0.82); }
.gs-lightbox[open] { display: flex; flex-direction: column; }
@media (prefers-reduced-motion: no-preference) {
	.gs-lightbox[open] { animation: gs-fade-up 0.25s var(--gs-ease); }
}
.gs-lightbox__bar { display: flex; align-items: center; gap: 1rem; padding: 0.6rem 0.75rem 0.6rem 1.25rem; }
.gs-lightbox__caption { margin: 0; flex: 1; font-family: var(--gs-font-head); font-weight: 600; font-size: 1.05rem; color: var(--gs-white); }
.gs-lightbox__count { font-size: 0.85rem; color: var(--gs-gold-light); }
.gs-lightbox__stage { margin: 0; flex: 1; min-height: 0; display: grid; place-items: center; background: #000; }
.gs-lightbox__stage img { display: block; max-width: 100%; max-height: calc(94vh - 60px); width: auto; height: auto; object-fit: contain; }
.gs-lightbox__btn {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.12);
	color: var(--gs-white);
	font-size: 1.25rem;
	cursor: pointer;
	transition: background-color var(--gs-dur) var(--gs-ease);
}
.gs-lightbox__btn:hover { background: rgba(255, 255, 255, 0.25); }
.gs-lightbox__btn:focus-visible { outline: 3px solid var(--gs-saffron); outline-offset: 2px; }
.gs-lightbox__prev, .gs-lightbox__next { position: absolute; top: 50%; transform: translateY(-50%); background: rgba(44, 4, 1, 0.7); }
.gs-lightbox__prev { left: 0.75rem; }
.gs-lightbox__next { right: 0.75rem; }
.gs-lightbox__prev[hidden], .gs-lightbox__next[hidden] { display: none; }

/* ==========================================================================
   Animated section backgrounds
   Soft gold ornaments behind the content: a slowly turning mandala and a
   drifting glow. Decorative only (pseudo-elements), static when the visitor
   prefers reduced motion. Hero + /studRegCS also get rising gold motes.
   ========================================================================== */
.gs-section,
.gs-hero,
.gs-soon {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	overflow: clip;
}
.gs-section > .container,
.gs-hero > .container,
.gs-soon > .container { position: relative; z-index: 1; }

/* mandala (drawn with a mask so each band can recolour it).
   Sits half-visible on a side edge, vertically centred; sides alternate. */
.gs-section::before,
.gs-hero::before,
.gs-soon::before {
	--m: clamp(300px, 36vw, 540px);
	content: "";
	position: absolute;
	z-index: 0;
	width: var(--m);
	height: var(--m);
	top: calc(50% - var(--m) / 2);
	left: calc(var(--m) * -0.5);
	background-color: var(--gs-gold);
	-webkit-mask: url("../images/web/gsvs-mandala.svg") center / contain no-repeat;
	mask: url("../images/web/gsvs-mandala.svg") center / contain no-repeat;
	opacity: 0.2;
	pointer-events: none;
}
/* drifting glow on the opposite side */
.gs-section::after,
.gs-soon::after {
	content: "";
	position: absolute;
	z-index: 0;
	width: clamp(280px, 40vw, 560px);
	aspect-ratio: 1;
	bottom: -200px;
	right: -180px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(233, 200, 119, 0.26), rgba(233, 200, 119, 0) 65%);
	pointer-events: none;
}

/* alternate sides so neighbouring bands don't look repeated */
.gs-highlights::before,
.gs-subjects::before,
.gs-guidelines::before,
.gs-prizes::before { left: auto; right: calc(var(--m) * -0.5); }
.gs-highlights::after,
.gs-subjects::after,
.gs-guidelines::after,
.gs-prizes::after { right: auto; left: -180px; }
.gs-section--cream::before { opacity: 0.24; }
.gs-hero::before { opacity: 0.16; }
.gs-soon::before { --m: clamp(340px, 44vw, 640px); }
/* on the maroon prize band */
.gs-prizes::before { background-color: var(--gs-gold-light); opacity: 0.12; --m: clamp(340px, 42vw, 620px); }
.gs-prizes::after { background: radial-gradient(circle, rgba(233, 200, 119, 0.14), rgba(233, 200, 119, 0) 65%); }
/* small screens: smaller, further out, so text stays clean */
@media (max-width: 767.98px) {
	.gs-section::before, .gs-hero::before, .gs-soon::before { --m: 300px; top: -110px; opacity: 0.14; }
}

/* rising gold motes (markup: .gs-motes > span × n) */
.gs-motes { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.gs-motes span {
	position: absolute;
	bottom: -12px;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: radial-gradient(circle, var(--gs-gold-light), rgba(184, 134, 47, 0.2));
	box-shadow: 0 0 10px rgba(233, 200, 119, 0.7);
	opacity: 0;
}
.gs-motes span:nth-child(1) { left: 6%;  --d: 13s; --w: 0s;   }
.gs-motes span:nth-child(2) { left: 18%; --d: 17s; --w: -6s;  width: 5px; height: 5px; }
.gs-motes span:nth-child(3) { left: 34%; --d: 15s; --w: -11s; }
.gs-motes span:nth-child(4) { left: 52%; --d: 19s; --w: -3s;  width: 4px; height: 4px; }
.gs-motes span:nth-child(5) { left: 67%; --d: 14s; --w: -9s;  width: 6px; height: 6px; }
.gs-motes span:nth-child(6) { left: 81%; --d: 18s; --w: -14s; }
.gs-motes span:nth-child(7) { left: 93%; --d: 16s; --w: -5s;  width: 5px; height: 5px; }

@media (prefers-reduced-motion: no-preference) {
	.gs-section::before,
	.gs-hero::before,
	.gs-soon::before { animation: gs-bg-spin 150s linear infinite; }
	.gs-subjects::before,
	.gs-guidelines::before,
	.gs-soon::before { animation-direction: reverse; }
	.gs-section::after,
	.gs-soon::after { animation: gs-bg-drift 22s ease-in-out infinite alternate; }
	.gs-motes span { animation: gs-bg-rise var(--d, 16s) linear var(--w, 0s) infinite; }
}
@media (prefers-reduced-motion: reduce) {
	.gs-motes { display: none; }
}
@media (max-width: 575.98px) {
	.gs-motes span:nth-child(n+5) { display: none; }
}
@keyframes gs-bg-spin { to { transform: rotate(360deg); } }
@keyframes gs-bg-drift {
	from { transform: translate(0, 0) scale(1); }
	to   { transform: translate(90px, -70px) scale(1.18); }
}
@keyframes gs-bg-rise {
	0%   { transform: translate(0, 0); opacity: 0; }
	12%  { opacity: 0.9; }
	50%  { transform: translate(18px, -45vh); }
	85%  { opacity: 0.6; }
	100% { transform: translate(-10px, -90vh); opacity: 0; }
}
@media print {
	.gs-section::before, .gs-section::after, .gs-hero::before,
	.gs-soon::before, .gs-soon::after, .gs-motes { display: none; }
}

/* ==========================================================================
   Sample-data note (only while gsvs.sample-data=true)
   ========================================================================== */
.gs-sample-note {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	margin: 0.9rem 0 0;
	padding: 0.3rem 0.85rem;
	border: 1px dashed var(--gs-gold);
	border-radius: 999px;
	background: rgba(233, 200, 119, 0.18);
	color: #7a4f0c;
	font-size: 0.875rem;
	font-weight: 500;
}

/* ==========================================================================
   Live statistics – one compact band of 4 cards
   ========================================================================== */
.gs-section.gs-stats { padding: clamp(1.5rem, 1rem + 1.5vw, 2.25rem) 0; }
.gs-stats::before, .gs-stats::after { display: none; }      /* no mandala in this slim band */
.gs-stats__head {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.4rem 1rem;
	margin-bottom: 1rem;
}
.gs-stats__title {
	display: flex;
	align-items: center;
	gap: 0.55rem;
	margin: 0;
	font-family: var(--gs-font-head);
	font-size: clamp(1.15rem, 1rem + 0.5vw, 1.4rem);
	font-weight: 700;
	color: var(--gs-maroon);
}
.gs-stats__live {                                           /* small "live" dot */
	width: 0.6rem;
	height: 0.6rem;
	border-radius: 50%;
	background: #2e8b57;
	box-shadow: 0 0 0 0 rgba(46, 139, 87, 0.5);
}
@media (prefers-reduced-motion: no-preference) {
	.gs-stats__live { animation: gs-live 2s ease-out infinite; }
}
@keyframes gs-live { 70% { box-shadow: 0 0 0 7px rgba(46, 139, 87, 0); } 100% { box-shadow: 0 0 0 0 rgba(46, 139, 87, 0); } }
.gs-stats .gs-sample-note { margin: 0; }
.gs-stats__updated { margin: 0; font-size: 0.85rem; color: var(--gs-muted); }
.gs-stats__grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1rem;
}
.gs-stat {
	display: flex;
	align-items: center;
	gap: 0.85rem;
	padding: 0.85rem 1rem;
	background: var(--gs-white);
	border: 1px solid var(--gs-border);
	border-left: 4px solid var(--gs-maroon);
	border-radius: var(--gs-radius);
	box-shadow: var(--gs-shadow-sm);
	transition: transform var(--gs-dur) var(--gs-ease), box-shadow var(--gs-dur) var(--gs-ease);
}
.gs-stat:nth-child(2) { border-left-color: var(--gs-gold); }
.gs-stat:nth-child(3) { border-left-color: var(--gs-saffron); }
.gs-stat:nth-child(4) { border-left-color: #2e8b57; }
.gs-stat:hover { transform: translateY(-2px); box-shadow: var(--gs-shadow-md); }
.gs-stat__icon {
	flex: 0 0 auto;
	display: grid;
	place-items: center;
	width: 2.6rem;
	height: 2.6rem;
	border-radius: 50%;
	background: var(--gs-maroon-tint);
	color: var(--gs-maroon);
	font-size: 1.1rem;
}
.gs-stat__text { display: flex; flex-direction: column; min-width: 0; }
.gs-stat__num {
	font-family: var(--gs-font-head);
	font-size: clamp(1.4rem, 1.1rem + 0.8vw, 1.8rem);
	font-weight: 800;
	line-height: 1.15;
	color: var(--gs-maroon);
	font-variant-numeric: tabular-nums;
}
.gs-stat__label { font-size: 0.875rem; line-height: 1.35; color: var(--gs-muted); font-weight: 500; }
.gs-stat__pct { font-size: 0.8rem; font-weight: 600; color: #8a5d12; }
@media (max-width: 991.98px) {
	.gs-stats__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; }
}
@media (max-width: 399.98px) {
	.gs-stat { padding: 0.7rem 0.75rem; gap: 0.6rem; }
	.gs-stat__icon { width: 2.2rem; height: 2.2rem; font-size: 0.95rem; }
	.gs-stat__label { font-size: 0.8rem; }
}

/* ==========================================================================
   Event gallery (college-wise)
   ========================================================================== */
.gs-carousel.gs-events { grid-auto-columns: calc((100% - 2 * 1.25rem) / 3); align-items: stretch; padding-bottom: 1rem; }
.gs-event__card {
	height: 100%;
	display: flex;
	flex-direction: column;
	background: var(--gs-white);
	border: 1px solid var(--gs-border);
	border-radius: var(--gs-radius);
	box-shadow: var(--gs-shadow-sm);
	overflow: hidden;
}
.gs-event__photos {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 3px;
	background: var(--gs-border);
}
.gs-event__photos--1 { grid-template-columns: 1fr; }
.gs-event__photos--3 .gs-event__photo:first-child { grid-column: span 2; }
.gs-event__photo { position: relative; display: block; overflow: hidden; background: var(--gs-cream); }
.gs-event__photo img {
	display: block;
	width: 100%;
	height: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	transition: transform 0.4s var(--gs-ease);
}
.gs-event__photos--1 .gs-event__photo img,
.gs-event__photos--3 .gs-event__photo:first-child img { aspect-ratio: 16 / 9; }
.gs-event__photo::after {
	content: "\f217";                     /* feather icon-zoom-in */
	font-family: "feather-icons" !important;
	font-size: 1.5rem;
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
	color: var(--gs-white);
	background: rgba(44, 4, 1, 0.45);
	opacity: 0;
	transition: opacity var(--gs-dur) var(--gs-ease);
}
.gs-event__photo:hover img, .gs-event__photo:focus-visible img { transform: scale(1.06); }
.gs-event__photo:hover::after, .gs-event__photo:focus-visible::after { opacity: 1; }
.gs-event__photo:focus-visible { outline: 3px solid var(--gs-saffron); outline-offset: -3px; }
.gs-event__empty { grid-column: 1 / -1; display: grid; place-items: center; aspect-ratio: 16 / 9; color: var(--gs-gold); font-size: 2rem; background: var(--gs-cream); }
.gs-event__body { padding: 1rem 1.15rem 1.15rem; display: flex; flex-direction: column; gap: 0.7rem; flex: 1; }
.gs-event__college { margin: 0; font-family: var(--gs-font-head); font-size: 1.1rem; font-weight: 700; line-height: 1.4; color: var(--gs-maroon); }
.gs-event__meta { margin: auto 0 0; display: flex; flex-wrap: wrap; gap: 0.5rem 1.25rem; padding-top: 0.7rem; border-top: 1px dashed var(--gs-border); }
.gs-event__meta > div { display: flex; flex-direction: column; }
.gs-event__meta dt { font-size: 0.8rem; font-weight: 500; color: var(--gs-muted); display: flex; align-items: center; gap: 0.3rem; }
.gs-event__meta dd { margin: 0; font-weight: 700; color: var(--gs-ink); }
@media (max-width: 991.98px) { .gs-carousel.gs-events { grid-auto-columns: calc((100% - 1.25rem) / 2); } }
@media (max-width: 575.98px) { .gs-carousel.gs-events { grid-auto-columns: 88%; } }

/* ==========================================================================
   Inner page heading + reference documents
   ========================================================================== */
.gs-page-head {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	overflow: clip;
	padding: clamp(2rem, 1.5rem + 2.5vw, 3.5rem) 0 clamp(1.75rem, 1.25rem + 2vw, 3rem);
	background:
		radial-gradient(900px 300px at 90% 0%, rgba(233, 200, 119, 0.22), transparent 65%),
		linear-gradient(180deg, var(--gs-cream-soft), var(--gs-cream));
	border-bottom: 1px solid var(--gs-border);
}
.gs-page-head::before {
	content: "";
	position: absolute;
	z-index: -1;
	width: 360px;
	height: 360px;
	right: -120px;
	top: -120px;
	background-color: var(--gs-gold);
	-webkit-mask: url("../images/web/gsvs-mandala.svg") center / contain no-repeat;
	mask: url("../images/web/gsvs-mandala.svg") center / contain no-repeat;
	opacity: 0.18;
}
.gs-crumbs { list-style: none; margin: 0 0 0.6rem; padding: 0; display: flex; flex-wrap: wrap; gap: 0.4rem; font-size: 0.9rem; color: var(--gs-muted); }
.gs-crumbs li + li::before { content: "/"; margin-right: 0.4rem; color: var(--gs-gold); }
.gs-crumbs a { color: var(--gs-maroon); text-decoration: none; font-weight: 500; }
.gs-crumbs a:hover { text-decoration: underline; }
.gs-page-head__title { margin: 0; font-family: var(--gs-font-head); font-size: clamp(1.8rem, 1.3rem + 2vw, 2.6rem); font-weight: 800; color: var(--gs-maroon); line-height: var(--gs-lh-head); }
.gs-page-head__lead { margin: 0.5rem 0 0; max-width: 44rem; color: var(--gs-muted); }
@media (prefers-reduced-motion: no-preference) {
	.gs-page-head::before { animation: gs-bg-spin 150s linear infinite; }
}

.gs-docs__table thead th:first-child { width: 4.5rem; }
.gs-docs__table thead th:nth-child(3) { width: 9rem; }
.gs-docs__table thead th:last-child { width: 10rem; }
.gs-docs__table tbody td { vertical-align: middle; }
.gs-docs__name { font-weight: 500; color: var(--gs-ink); }
.gs-docs__date { white-space: nowrap; color: var(--gs-muted); font-variant-numeric: tabular-nums; }
.gs-table tbody td.gs-docs__link { font-weight: 500; }
.gs-doc-link {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	padding: 0.35rem 0.8rem;
	border: 1px solid var(--gs-maroon);
	border-radius: var(--gs-radius-sm);
	color: var(--gs-maroon) !important;
	text-decoration: none;
	font-weight: 600;
	line-height: 1.4;
	transition: background-color var(--gs-dur) var(--gs-ease), color var(--gs-dur) var(--gs-ease);
}
.gs-doc-link:hover, .gs-doc-link:focus-visible { background: var(--gs-maroon); color: var(--gs-white) !important; }
.gs-doc-link:focus-visible { outline: 3px solid var(--gs-saffron); outline-offset: 2px; }
.gs-doc-link__type {
	padding: 0 0.35rem;
	border-radius: 3px;
	background: var(--gs-maroon-tint);
	color: var(--gs-maroon);
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.04em;
}
.gs-doc-link:hover .gs-doc-link__type { background: rgba(255, 255, 255, 0.2); color: var(--gs-white); }
.gs-empty {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.75rem;
	padding: 3rem 1.5rem;
	text-align: center;
	color: var(--gs-muted);
	background: var(--gs-white);
	border: 1px dashed var(--gs-border);
	border-radius: var(--gs-radius);
}
.gs-empty i { font-size: 2rem; color: var(--gs-gold); }
.gs-empty p { margin: 0; }
@media (max-width: 767.98px) {
	.gs-docs__date { white-space: normal; }
	.gs-doc-link { margin-top: 0.25rem; }
}

/* ==========================================================================
   Navbar dropdown ("સ્પર્ધા" → section links)
   style.css (template) forces .navbar .dropdown-menu to display:block/opacity:0
   from 992px and adds its own caret; everything below replaces that.
   ========================================================================== */
.gs-nav.navbar .gs-menu .dropdown-toggle {
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
	background: none;
	border: 0;
	cursor: pointer;
}
.gs-nav.navbar .gs-menu .dropdown-toggle::after {          /* chevron (feather icon-chevron-down) */
	content: "\f12f";
	font-family: "feather-icons" !important;
	float: none;
	margin: 0;
	border: 0;
	font-size: 0.85em;
	line-height: 1;
	vertical-align: 0;
	position: static;                                         /* undo the gold underline bar of .nav-link::after */
	width: auto;
	height: auto;
	background: none;
	transform: none;
	transition: transform var(--gs-dur) var(--gs-ease);
}
.gs-nav.navbar .gs-menu .dropdown-toggle.active { color: var(--gs-maroon); }
.gs-nav.navbar .gs-menu .dropdown-toggle.show::after { transform: rotate(180deg); }
.gs-nav.navbar .gs-menu .dropdown-toggle:focus-visible { outline: 3px solid var(--gs-saffron); outline-offset: 2px; border-radius: 4px; }

.gs-nav.navbar .gs-menu .gs-menu__sub {
	margin: 0;
	padding: 0.4rem;
	min-width: 15rem;
	list-style: none;
	background: var(--gs-white);
	border: 1px solid var(--gs-border);
	border-top: 3px solid var(--gs-gold);
	border-radius: var(--gs-radius);
	box-shadow: var(--gs-shadow-md);
}
.gs-nav.navbar .gs-menu .gs-menu__sub .dropdown-item {
	display: flex;
	align-items: center;
	gap: 0.65rem;
	padding: 0.55rem 0.8rem;
	border-radius: var(--gs-radius-sm);
	font-family: var(--gs-font-head);
	font-weight: 600;
	font-size: 0.98rem;
	color: var(--gs-ink);
	white-space: nowrap;
	transition: background-color var(--gs-dur) var(--gs-ease), color var(--gs-dur) var(--gs-ease);
}
.gs-nav.navbar .gs-menu .gs-menu__sub .dropdown-item i {
	width: 1.9rem;
	height: 1.9rem;
	display: grid;
	place-items: center;
	flex: 0 0 auto;
	border-radius: 50%;
	background: var(--gs-maroon-tint);
	color: var(--gs-maroon);
	font-size: 0.9rem;
}
.gs-nav.navbar .gs-menu .gs-menu__sub .dropdown-item:hover,
.gs-nav.navbar .gs-menu .gs-menu__sub .dropdown-item:focus {
	padding-left: 0.8rem;                                        /* template slides items on hover */
	background: var(--gs-cream);
	color: var(--gs-maroon);
}
.gs-nav.navbar .gs-menu .gs-menu__sub .dropdown-item.active {
	background: var(--gs-maroon);
	color: var(--gs-white);
}
.gs-nav.navbar .gs-menu .gs-menu__sub .dropdown-item.active i { background: rgba(255, 255, 255, 0.18); color: var(--gs-gold-light); }

/* desktop: floating panel, opens on hover or click/keyboard (.show) */
@media (min-width: 1200px) {
	.gs-nav.navbar .gs-menu .gs-menu__sub {
		display: block;
		position: absolute;
		top: 100%;
		left: 0;
		z-index: 1040;
		opacity: 0;
		visibility: hidden;
		transform: translateY(8px);
		transition: opacity 0.2s var(--gs-ease), transform 0.2s var(--gs-ease), visibility 0.2s;
	}
	.gs-nav.navbar .gs-menu .gs-menu__drop:hover > .gs-menu__sub,
	.gs-nav.navbar .gs-menu .gs-menu__sub.show {
		opacity: 1;
		visibility: visible;
		transform: none;
	}
	.gs-nav.navbar .gs-menu .gs-menu__drop:hover > .dropdown-toggle::after { transform: rotate(180deg); }
	.gs-nav.navbar .gs-menu .gs-menu__drop::after {          /* hover bridge over the gap */
		content: "";
		position: absolute;
		left: 0;
		right: 0;
		top: 100%;
		height: 10px;
	}
}
/* mobile / tablet menu: expands in place */
@media (max-width: 1199.98px) {
	.gs-nav.navbar .gs-menu .dropdown-toggle { width: 100%; justify-content: space-between; text-align: left; }
	.gs-nav.navbar .gs-menu .gs-menu__sub {
		display: none;
		position: static;
		opacity: 1;
		visibility: visible;
		transform: none;
		min-width: 0;
		margin: 0.35rem 0 0.6rem;
		padding: 0.3rem;
		border: 0;
		border-left: 3px solid var(--gs-gold);
		border-radius: 0 var(--gs-radius-sm) var(--gs-radius-sm) 0;
		background: var(--gs-cream-soft);
		box-shadow: none;
	}
	.gs-nav.navbar .gs-menu .gs-menu__sub.show { display: block; }
	.gs-nav.navbar .gs-menu .gs-menu__sub .dropdown-item { white-space: normal; font-size: 1rem; }
}
@media (prefers-reduced-motion: reduce) {
	.gs-nav.navbar .gs-menu .gs-menu__sub,
	.gs-nav.navbar .gs-menu .dropdown-toggle::after { transition: none; }
}

/* ==========================================================================
   Student registration form (templates/pages/Registration/studentRegistration.html)
   Compact controls (38px), 3 per row, grouped in numbered sections.
   style.css gives every input/select 16px 20px padding – reset here.
   ========================================================================== */
.gs-page-head--compact { padding: clamp(1.5rem, 1rem + 1.5vw, 2.25rem) 0; }
.gs-page-head--compact .gs-page-head__title { font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2.1rem); }
.gs-page-head--compact .gs-page-head__lead { font-size: 0.95rem; }

.gs-reg { --gs-ctl-h: 38px; padding: 1.75rem 0 3rem; background: var(--gs-cream-soft); }
.gs-reg__otp { max-width: 460px; margin: 0 auto; }
.gs-reg__form { max-width: 1140px; margin: 0 auto; }

/* step indicator */
.gs-reg__steps { list-style: none; margin: 0 0 1rem; padding: 0; display: flex; justify-content: center; gap: 0.4rem; font-size: 0.85rem; font-weight: 600; color: var(--gs-muted); }
.gs-reg__steps li { display: flex; align-items: center; gap: 0.4rem; }
.gs-reg__steps li + li::before { content: ""; width: 1.75rem; height: 2px; background: var(--gs-border); margin-right: 0.2rem; }
.gs-reg__steps span {
	display: grid; place-items: center; width: 1.6rem; height: 1.6rem; border-radius: 50%;
	border: 2px solid var(--gs-border); background: var(--gs-white); font-size: 0.8rem;
}
.gs-reg__steps .is-current { color: var(--gs-maroon); }
.gs-reg__steps .is-current span { border-color: var(--gs-maroon); background: var(--gs-maroon); color: var(--gs-white); }
.gs-reg__steps .is-done span { border-color: #2e8b57; background: #2e8b57; color: var(--gs-white); }

.gs-reg__card {
	background: var(--gs-white);
	border: 1px solid var(--gs-border);
	border-top: 4px solid var(--gs-maroon);
	border-radius: var(--gs-radius);
	box-shadow: var(--gs-shadow-sm);
	padding: 1.5rem;
}
.gs-reg__card--wide { padding: 0.5rem 1.5rem 1.5rem; }
.gs-reg__card-title { margin: 0; font-family: var(--gs-font-head); font-size: 1.25rem; font-weight: 700; color: var(--gs-maroon); }
.gs-reg__muted, .gs-reg__intro { margin: 0.2rem 0 0; font-size: 0.9rem; color: var(--gs-muted); }
.gs-reg__intro { margin: 0 0 0.9rem; text-align: center; }
.gs-reg #sendOTPdiv, .gs-reg #verifyOTPdiv { margin: 0; }
.gs-reg #sendOTPdiv > *, .gs-reg #verifyOTPdiv > * { margin-top: 0.85rem; }
.gs-reg #sendOTPdiv > :first-child, .gs-reg #verifyOTPdiv > :first-child { margin-top: 0; }

/* sections */
.gs-reg__section { margin: 0; padding: 1.1rem 0 1.25rem; border: 0; border-bottom: 1px dashed var(--gs-border); min-width: 0; }
.gs-reg__section--last { border-bottom: 0; padding-bottom: 0.5rem; }
.gs-reg__legend {
	float: none;
	width: 100%;
	display: flex;
	align-items: baseline;
	gap: 0.5rem;
	margin: 0;
	padding: 0;
	font-family: var(--gs-font-head);
	font-size: 1.05rem;
	font-weight: 700;
	color: var(--gs-maroon);
}
.gs-reg__section > .row { --bs-gutter-y: 0.85rem; margin-top: 0; }   /* legend → first row: 0.85rem */
.gs-reg__legend small { font-size: 0.85rem; font-weight: 500; color: var(--gs-muted); }
.gs-reg__num {
	align-self: center;
	display: grid; place-items: center; flex: 0 0 auto;
	width: 1.6rem; height: 1.6rem; border-radius: 50%;
	background: var(--gs-maroon-tint); color: var(--gs-maroon); font-size: 0.85rem;
}

/* fields */
/* block layout: JS toggles some field wrappers with style.display = "block" */
.gs-reg .gs-field > * + * { margin-top: 0.25rem; }
.gs-reg .gs-field > small { display: block; }
.gs-reg .gs-field__label { display: block; margin: 0; font-size: 0.85rem; font-weight: 600; color: var(--gs-ink); line-height: 1.35; }
.gs-reg .gs-field__sent { display: block; font-weight: 400; color: var(--gs-muted); }
.gs-reg .gs-req { color: #b3261e; }
.gs-reg .gs-field__hint { font-size: 0.78rem; color: var(--gs-muted); line-height: 1.4; }
.gs-reg .gs-field small.text-danger { font-size: 0.78rem; line-height: 1.3; }
.gs-reg .gs-field small.text-danger:empty { display: none; }

.gs-reg input.gs-input,
.gs-reg textarea.gs-input,
.gs-reg select {
	width: 100%;
	height: var(--gs-ctl-h);
	padding: 0.35rem 0.75rem;
	font-size: 0.94rem;
	line-height: 1.4;
	color: var(--gs-ink);
	background: var(--gs-white);
	border: 1px solid #d9cdb8;
	border-radius: var(--gs-radius-sm);
	box-shadow: none;
	transition: border-color var(--gs-dur) var(--gs-ease), box-shadow var(--gs-dur) var(--gs-ease);
}
.gs-reg textarea.gs-input { height: auto; min-height: calc(var(--gs-ctl-h) * 1.6); resize: vertical; }
.gs-reg input.gs-input::placeholder, .gs-reg textarea.gs-input::placeholder { color: #9a8b83; }
.gs-reg input.gs-input:focus, .gs-reg textarea.gs-input:focus {
	outline: 0;
	border-color: var(--gs-maroon);
	box-shadow: 0 0 0 3px rgba(69, 6, 1, 0.12);
}
.gs-reg input.gs-input:disabled, .gs-reg textarea.gs-input:disabled { background: var(--gs-cream-soft); color: var(--gs-muted); cursor: not-allowed; }
.gs-reg .gs-field__control { position: relative; }
.gs-reg .gs-field__control > i {
	position: absolute; left: 0.7rem; top: 50%; transform: translateY(-50%);
	font-size: 0.95rem; color: var(--gs-muted); pointer-events: none;
}
.gs-reg .gs-field__control > i.text-success { color: #2e8b57 !important; }
.gs-reg .gs-field__control > .gs-input { padding-left: 2.1rem; }

/* select2 (the selects are enhanced by select2 on page load) */
.gs-reg .select2-container { width: 100% !important; }
.gs-reg .select2-container--default .select2-selection--single {
	height: var(--gs-ctl-h);
	border: 1px solid #d9cdb8;
	border-radius: var(--gs-radius-sm);
	background: var(--gs-white);
}
.gs-reg .select2-container--default .select2-selection--single .select2-selection__rendered {
	line-height: calc(var(--gs-ctl-h) - 2px);
	padding-top: 0;                                            /* style.css adds 16px */
	padding-bottom: 0;
	padding-left: 0.75rem;
	padding-right: 1.75rem;
	font-size: 0.94rem;
	color: var(--gs-ink);
}
.gs-reg .select2-container--default .select2-selection--single .select2-selection__placeholder { color: #9a8b83; }
.gs-reg .select2-container--default .select2-selection--single .select2-selection__arrow { top: 0; height: calc(var(--gs-ctl-h) - 2px); right: 4px; }
.gs-reg .select2-container--default.select2-container--focus .select2-selection--single,
.gs-reg .select2-container--default.select2-container--open .select2-selection--single {
	border-color: var(--gs-maroon);
	box-shadow: 0 0 0 3px rgba(69, 6, 1, 0.12);
}
.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable { background: var(--gs-maroon); color: var(--gs-white); }
.select2-dropdown { border-color: #d9cdb8; font-size: 0.92rem; }
.select2-search--dropdown .select2-search__field { padding: 0.35rem 0.6rem; border-radius: 4px; }

/* radios / checkboxes */
.gs-reg__radio { display: flex; flex-wrap: wrap; align-items: center; gap: 0.25rem 0.75rem; margin-top: 0.5rem; font-size: 0.88rem; color: var(--gs-muted); }
.gs-reg__radio .form-check-inline { margin: 0; }
.gs-reg .form-check-input { width: 1.05rem; height: 1.05rem; margin-top: 0.2rem; background-color: var(--gs-white); border: 1px solid #b9a88e; cursor: pointer; }
.gs-reg .form-check-input:checked { background-color: var(--gs-maroon); border-color: var(--gs-maroon); }
.gs-reg .form-check-input:focus { box-shadow: 0 0 0 3px rgba(69, 6, 1, 0.15); }
.gs-reg .form-check-label { font-size: 0.9rem; cursor: pointer; }
.gs-reg__checks { display: grid; gap: 0.5rem; }
.gs-reg__checks a { color: var(--gs-maroon); font-weight: 600; }

.gs-reg__actions { margin-top: 1rem; }
.gs-reg__submit { display: flex; justify-content: center; padding-top: 1rem; border-top: 1px solid var(--gs-border); }
.gs-reg__submit .gs-btn { min-width: 14rem; gap: 0.5rem; }

@media (max-width: 575.98px) {
	.gs-reg__card, .gs-reg__card--wide { padding-left: 1rem; padding-right: 1rem; }
	.gs-reg__submit .gs-btn { width: 100%; }
	.gs-reg__legend { flex-wrap: wrap; }
}

/* ==========================================================================
   In-site video player (<dialog class="gs-vplayer">) – Google Drive / YouTube iframe
   ========================================================================== */
.gs-vplayer {
	width: min(960px, 94vw);
	max-width: none;
	max-height: 94vh;
	padding: 0;
	border: 0;
	border-radius: var(--gs-radius);
	background: #120201;
	color: var(--gs-cream);
	box-shadow: 0 24px 60px rgba(0, 0, 0, 0.45);
	overflow: hidden;
}
.gs-vplayer::backdrop { background: rgba(20, 3, 1, 0.82); }
.gs-vplayer__bar {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 0.6rem 0.6rem 0.6rem 1rem;
	background: var(--gs-maroon);
	border-bottom: 2px solid var(--gs-gold);
}
.gs-vplayer__title {
	flex: 1;
	min-width: 0;
	margin: 0;
	font-family: var(--gs-font-head);
	font-weight: 600;
	font-size: 1rem;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.gs-vplayer__ext { display: inline-flex; align-items: center; gap: 0.35rem; font-size: 0.85rem; color: var(--gs-gold-light) !important; text-decoration: none; white-space: nowrap; }
.gs-vplayer__ext:hover { text-decoration: underline; }
.gs-vplayer__close {
	display: grid;
	place-items: center;
	width: 2.25rem;
	height: 2.25rem;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.12);
	color: var(--gs-white);
	font-size: 1.1rem;
	cursor: pointer;
}
.gs-vplayer__close:hover { background: rgba(255, 255, 255, 0.24); }
.gs-vplayer__close:focus-visible, .gs-vplayer__ext:focus-visible { outline: 3px solid var(--gs-saffron); outline-offset: 2px; }
.gs-vplayer__frame { position: relative; aspect-ratio: 16 / 9; max-height: calc(94vh - 3.5rem); background: #000; }
.gs-vplayer__frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
@media (max-width: 575.98px) {
	.gs-vplayer__ext span, .gs-vplayer__ext { font-size: 0; gap: 0; }
	.gs-vplayer__ext i { font-size: 1.1rem; }
}

/* ==========================================================================
   Dignitaries – slim band: small round photo beside name and designation
   ========================================================================== */
.gs-section.gs-dignitaries { padding: clamp(1.25rem, 1rem + 1vw, 1.75rem) 0; background: var(--gs-white); }
.gs-dignitaries::before, .gs-dignitaries::after { display: none; }      /* no mandala in this slim band */
.gs-dignitaries__title {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin: 0 0 0.9rem;
	font-family: var(--gs-font-head);
	font-size: clamp(1.1rem, 1rem + 0.4vw, 1.3rem);
	font-weight: 700;
	color: var(--gs-maroon);
}
.gs-dignitaries__title::after { content: ""; flex: 1; height: 1px; background: linear-gradient(90deg, var(--gs-gold), transparent); }
.gs-dignitaries__grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0.9rem;
}
.gs-dignitary {
	display: grid;
	grid-template-columns: auto 1fr;
	grid-template-rows: auto auto;
	align-content: center;
	column-gap: 0.9rem;
	padding: 0.8rem 0.9rem;
	background: var(--gs-cream-soft);
	border: 1px solid var(--gs-border);
	border-left: 3px solid var(--gs-gold);
	border-radius: var(--gs-radius);
}
.gs-dignitary__photo {
	grid-row: 1 / span 2;
	align-self: center;
	width: 88px;
	height: 88px;
	border-radius: 50%;
	object-fit: cover;
	object-position: center top;
	background: var(--gs-white);
	border: 3px solid var(--gs-white);
	box-shadow: 0 0 0 2px var(--gs-gold), 0 4px 12px rgba(69, 6, 1, 0.15);
}
.gs-dignitary__name {
	align-self: end;
	margin: 0;
	font-family: var(--gs-font-head);
	font-size: 0.92rem;
	font-weight: 700;
	line-height: 1.3;
	color: var(--gs-maroon);
}
.gs-dignitary__role {
	align-self: start;
	margin: 0.1rem 0 0;
	font-size: 0.74rem;
	line-height: 1.4;
	color: var(--gs-muted);
}
@media (max-width: 1199.98px) { .gs-dignitaries__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 575.98px) {
	.gs-dignitaries__grid { grid-template-columns: 1fr; gap: 0.5rem; }
	.gs-dignitary { padding: 0.55rem 0.7rem; }
	.gs-dignitary__photo { width: 72px; height: 72px; }
}

/* ==========================================================================
   Participation band – highlighted: maroon band, gold accents, white cards
   ========================================================================== */
.gs-section.gs-stats {
	padding: clamp(1.75rem, 1.25rem + 1.5vw, 2.5rem) 0;
	background:
		radial-gradient(700px 260px at 15% 0%, rgba(233, 200, 119, 0.22), transparent 70%),
		radial-gradient(600px 240px at 90% 100%, rgba(254, 89, 0, 0.14), transparent 70%),
		linear-gradient(135deg, var(--gs-maroon-deep), var(--gs-maroon) 55%, #5e0a03);
	border-top: 3px solid var(--gs-gold);
	border-bottom: 3px solid var(--gs-gold);
	color: var(--gs-cream);
}
.gs-stats .gs-stats__title { color: var(--gs-white); font-size: clamp(1.25rem, 1.05rem + 0.7vw, 1.6rem); }
.gs-stats .gs-stats__updated { color: rgba(247, 243, 231, 0.8); }
.gs-stats .gs-sample-note { background: rgba(233, 200, 119, 0.16); border-color: var(--gs-gold-light); color: var(--gs-gold-light); }
.gs-stats .gs-stat {
	border: 0;
	border-top: 4px solid var(--gs-gold);
	box-shadow: 0 10px 28px rgba(0, 0, 0, 0.25);
}
.gs-stats .gs-stat:nth-child(2) { border-top-color: var(--gs-gold-light); }
.gs-stats .gs-stat:nth-child(3) { border-top-color: var(--gs-saffron); }
.gs-stats .gs-stat:nth-child(4) { border-top-color: #2e8b57; }
.gs-stats .gs-stat:hover { transform: translateY(-3px); box-shadow: 0 14px 32px rgba(0, 0, 0, 0.32); }
.gs-stats .gs-stat__icon { background: var(--gs-maroon); color: var(--gs-gold-light); }
.gs-stats .gs-stat__num { font-size: clamp(1.6rem, 1.2rem + 1vw, 2.1rem); }
