@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,400;0,500;0,600;0,700;0,800;1,400;1,600;1,700&family=Vesper+Libre:wght@400;500;700;900&display=swap');

/* ==========================================================================
   PHULE FESTIVAL 2026 â€” OFFICIAL STYLESHEET
   Commemorating the Bicentenary of Mahatma Jotiba Phule
   Organiser: Rashtra Seva Dal
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Brand Color System & CSS Custom Properties
   -------------------------------------------------------------------------- */
:root {
  /* Brand Palette */
  --color-maroon: #6B1726;
  --color-maroon-dark: #4F0E1A;
  --color-maroon-light: #832032;
  --color-saffron: #D97732;
  --color-saffron-hover: #BF6221;
  --color-ivory: #FFFFFF;
  --color-ivory-light: #FFFFFF;
  --color-ivory-dark: #F8F9FA;
  --color-charcoal: #22201F;
  --color-charcoal-light: #363331;
  --color-gold: #C7A15A;
  --color-gold-light: #E0C285;
  --color-indigo: #253B65;
  --color-indigo-light: #355187;
  --color-white: #FFFFFF;
  --color-muted: #6B6864;

  /* Typography */
  --font-heading: 'Vesper Libre', Georgia, 'Times New Roman', serif;
  --font-serif: 'Vesper Libre', Georgia, 'Times New Roman', serif;
  --font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  --font-mono: 'SFMono-Regular', Menlo, Monaco, Consolas, monospace;

  /* Elevation & Shadows */
  --shadow-subtle: 0 4px 12px rgba(34, 32, 31, 0.05);
  --shadow-card: 0 8px 24px rgba(34, 32, 31, 0.08);
  --shadow-hover: 0 16px 36px rgba(107, 23, 38, 0.12);
  --shadow-dark: 0 10px 30px rgba(0, 0, 0, 0.25);

  /* Transition Speeds */
  --transition-fast: 0.2s ease;
  --transition-smooth: 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

/* --------------------------------------------------------------------------
   2. Reset & Global Base
   -------------------------------------------------------------------------- */
html {
  scroll-behavior: smooth;
  scroll-padding-top: 80px;
}

body {
  font-family: var(--font-sans);
  background-color: #FFFFFF;
  color: var(--color-charcoal);
  line-height: 1.7;
  font-size: 1.05rem;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Crisp clean white background */
.archival-grain {
  background-color: #FFFFFF;
}

::selection {
  background-color: var(--color-maroon);
  color: var(--color-ivory);
}

a {
  color: var(--color-maroon);
  text-decoration: none;
  transition: color var(--transition-fast);
}

a:hover {
  color: var(--color-saffron);
}

/* --------------------------------------------------------------------------
   3. Typography Hierarchy
   -------------------------------------------------------------------------- */
h1,
h2,
h3,
h4,
h5,
h6,
.font-serif,
.font-heading {
  font-family: var(--font-heading);
  font-weight: 700;
  color: var(--color-maroon);
  line-height: 1.25;
  letter-spacing: -0.015em;
}


.font-sans {
  font-family: var(--font-sans);
}

/* --------------------------------------------------------------------------
   Text Alignment & Justification System
   All left-aligned body, card, and editorial text will be justified
   -------------------------------------------------------------------------- */
p,
.lead,
.lead-editorial,
.about-lead-text-wrap p,
.about-pillar-text,
.objective-text,
.timeline-content-card p,
.activity-desc,
.venue-details p,
.form-text,
.privacy-text,
.privacy-notice-text,
.footer-desc {
  text-align: justify;
  text-justify: inter-word;
  text-align-last: left;
}

/* Explicit left-aligned utility classes */
.text-start,
.text-start p,
.text-lg-start p {
  text-align: justify !important;
  text-justify: inter-word;
  text-align-last: left !important;
}

/* Explicit center-aligned containers & text remain centered */
.text-center,
.text-center p,
.text-center .lead,
.text-center .lead-editorial,
.text-center .section-subtitle,
.final-cta-section p,
.final-cta-details-box p,
.about-photo-meta,
.portrait-caption {
  text-align: center !important;
  text-align-last: center !important;
}

/* Explicit right-aligned elements remain right */
.text-end,
.text-end p {
  text-align: right !important;
  text-align-last: right !important;
}

.text-maroon {
  color: var(--color-maroon) !important;
}

.text-saffron {
  color: var(--color-saffron) !important;
}

.text-ivory {
  color: var(--color-ivory) !important;
}

.text-gold {
  color: var(--color-gold) !important;
}

.text-indigo {
  color: var(--color-indigo) !important;
}

.text-charcoal {
  color: var(--color-charcoal) !important;
}

.bg-maroon {
  background-color: var(--color-maroon) !important;
  color: var(--color-ivory);
}

.bg-maroon-dark {
  background-color: var(--color-maroon-dark) !important;
  color: var(--color-ivory);
}

.bg-ivory {
  background-color: #FFFFFF !important;
}

.bg-ivory-light {
  background-color: #FFFFFF !important;
}

.bg-charcoal {
  background-color: var(--color-charcoal) !important;
  color: var(--color-ivory);
}

.bg-indigo {
  background-color: var(--color-indigo) !important;
  color: var(--color-ivory);
}

/* Eyebrow Label */
.eyebrow {
  display: inline-block;
  font-size: 0.8rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--color-saffron);
  margin-bottom: 0.75rem;
}

.eyebrow-light {
  color: var(--color-gold-light);
}

/* Editorial Section Header */
.section-header {
  margin-bottom: 3.5rem;
  position: relative;
}

.section-header.text-center::after {
  content: '';
  display: block;
  width: 70px;
  height: 2px;
  background-color: var(--color-gold);
  margin: 1.25rem auto 0;
}

.section-header.text-start::after {
  content: '';
  display: block;
  width: 70px;
  height: 2px;
  background-color: var(--color-gold);
  margin: 1.25rem 0 0;
}

.section-title {
  font-size: clamp(2rem, 3.5vw, 2.75rem);
  letter-spacing: -0.01em;
}

.section-subtitle {
  font-size: 1.15rem;
  color: var(--color-muted);
  font-weight: 400;
  max-width: 750px;
  margin-top: 0.5rem;
}

.dark-section .section-subtitle {
  color: rgba(248, 243, 233, 0.8);
}

.lead-editorial {
  font-size: 1.2rem;
  line-height: 1.8;
  color: var(--color-charcoal);
  font-weight: 400;
}

/* Fine Gold Dividers */
.gold-divider {
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--color-gold), transparent);
  border: none;
  margin: 2.5rem 0;
}

.gold-border-top {
  border-top: 1px solid var(--color-gold);
}

.gold-border-bottom {
  border-bottom: 1px solid var(--color-gold);
}

/* --------------------------------------------------------------------------
   4. Buttons & CTAs
   -------------------------------------------------------------------------- */
.btn {
  font-family: var(--font-sans);
  font-weight: 600;
  letter-spacing: 0.03em;
  border-radius: 100px;
  padding: 0.52rem 1.35rem;
  font-size: 0.95rem;
  transition: all var(--transition-fast);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  text-decoration: none;
}

.btn-lg {
  padding: 0.58rem 1.45rem !important;
  font-size: 0.98rem !important;
  font-weight: 600 !important;
}

.btn-hero {
  padding: 0.52rem 1.35rem !important;
  font-size: 0.94rem !important;
  font-weight: 600 !important;
  border-radius: 100px !important;
}

.btn-saffron {
  background-color: var(--color-saffron);
  border: 1px solid var(--color-saffron);
  color: var(--color-white);
  box-shadow: 0 4px 14px rgba(217, 119, 50, 0.3);
}

.btn-saffron:hover,
.btn-saffron:focus {
  background-color: var(--color-saffron-hover);
  border-color: var(--color-saffron-hover);
  color: var(--color-white);
  transform: translateY(-2px);
  box-shadow: 0 6px 18px rgba(217, 119, 50, 0.4);
}

.btn-maroon {
  background-color: var(--color-maroon);
  border: 1px solid var(--color-maroon);
  color: var(--color-ivory);
}

.btn-maroon:hover,
.btn-maroon:focus {
  background-color: var(--color-maroon-light);
  border-color: var(--color-maroon-light);
  color: var(--color-white);
  transform: translateY(-2px);
}

.btn-outline-gold {
  background-color: transparent;
  border: 1px solid var(--color-gold);
  color: var(--color-gold);
}

.btn-outline-gold:hover,
.btn-outline-gold:focus {
  background-color: var(--color-gold);
  color: var(--color-maroon);
  transform: translateY(-2px);
}

.btn-outline-ivory {
  background-color: transparent;
  border: 1px solid rgba(248, 243, 233, 0.6);
  color: var(--color-ivory);
}

.btn-outline-ivory:hover,
.btn-outline-ivory:focus {
  background-color: var(--color-ivory);
  color: var(--color-maroon);
  transform: translateY(-2px);
}

.btn-sm-custom {
  height: 42px;
  padding: 0 1.35rem;
  font-size: 0.9rem;
  line-height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  border-radius: 100px;
}

/* --------------------------------------------------------------------------
   5. Header & Navigation Bar
   -------------------------------------------------------------------------- */
.festival-navbar {
  position: sticky;
  top: 0;
  z-index: 1040;
  transition: all var(--transition-smooth);
  padding: 0.75rem 0;
  background-color: #FFFFFF !important;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border-bottom: 1px solid rgba(199, 161, 90, 0.3);
}

.festival-navbar.scrolled {
  padding: 0.45rem 0;
  background-color: #FFFFFF !important;
  box-shadow: 0 4px 18px rgba(34, 32, 31, 0.08);
  border-bottom: 1px solid var(--color-gold);
}

.navbar-brand-group {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  text-decoration: none;
}

.navbar-brand-img {
  height: 72px;
  width: auto;
  max-width: 220px;
  object-fit: contain;
  transition: height var(--transition-fast), transform var(--transition-fast);
}

.navbar-org-img {
  height: 70px;
  width: auto;
  object-fit: contain;
  transition: height var(--transition-fast), transform var(--transition-fast);
}

.brand-divider {
  display: inline-block;
  width: 1px;
  height: 52px;
  background: rgba(107, 23, 38, 0.25);
  margin: 0 0.15rem;
  transition: height var(--transition-fast);
}

.festival-navbar.scrolled .navbar-brand-img {
  height: 56px;
}

.festival-navbar.scrolled .navbar-org-img {
  height: 54px;
}

.festival-navbar.scrolled .brand-divider {
  height: 40px;
}

@media (max-width: 768px) {
  .navbar-brand-img {
    height: 54px;
  }

  .navbar-org-img {
    height: 52px;
  }

  .brand-divider {
    height: 38px;
  }
}

@media (max-width: 480px) {
  .navbar-brand-img {
    height: 44px;
  }

  .navbar-org-img {
    height: 42px;
  }

  .brand-divider {
    height: 30px;
  }
}

.nav-link {
  font-family: var(--font-sans);
  font-size: 0.95rem;
  font-weight: 500;
  color: var(--color-charcoal);
  padding: 0.5rem 0.85rem !important;
  position: relative;
  transition: color var(--transition-fast), font-weight var(--transition-fast);
}

.nav-link::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0.85rem;
  right: 0.85rem;
  height: 3px;
  background-color: var(--color-saffron);
  border-radius: 2px;
  transform: scaleX(0);
  transition: transform var(--transition-fast);
}

.nav-link:hover,
.nav-link.active {
  color: var(--color-maroon) !important;
  font-weight: 700;
}

.nav-link:hover::after,
.nav-link.active::after {
  transform: scaleX(1);
}

@media (max-width: 991.98px) {
  .navbar-collapse {
    background: #FFFFFF;
    border-top: 1px solid rgba(199, 161, 90, 0.3);
    margin-top: 0.75rem;
    padding: 1.25rem 0.5rem;
    border-radius: 6px;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
  }

  .navbar-nav .nav-link::after {
    display: none;
  }

  .navbar-nav .nav-link.active {
    background-color: rgba(107, 23, 38, 0.1);
    color: var(--color-maroon) !important;
    font-weight: 700;
    border-radius: 100px;
  }
}

.youtube-nav-icon,
.youtube-nav-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  min-width: 42px;
  min-height: 42px;
  border-radius: 50%;
  background-color: #CC181E;
  color: #FFFFFF !important;
  font-size: 1.35rem;
  line-height: 1;
  text-decoration: none;
  box-shadow: 0 2px 8px rgba(204, 24, 30, 0.25);
  transition: all var(--transition-fast);
}

.youtube-nav-icon:hover,
.youtube-nav-btn:hover {
  background-color: #A81217;
  color: #FFFFFF !important;
  transform: translateY(-2px);
  box-shadow: 0 4px 14px rgba(204, 24, 30, 0.4);
}

/* Header Emblem Image (Replaces Header Buttons) */
.header-emblem-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
}

.header-emblem-img {
  height: 90px;
  width: auto;
  max-width: 220px;
  object-fit: contain;
  transition: height var(--transition-fast), transform var(--transition-fast);
  filter: drop-shadow(0 2px 8px rgba(107, 23, 38, 0.1));
}

.festival-navbar.scrolled .header-emblem-img {
  height: 52px;
}

@media (max-width: 991.98px) {
  .header-emblem-wrap {
    display: none !important;
  }
}

/* ==========================================================================
   Sticky Floating Action Dock (Right Side - Vertical Edge Tabs)
   ========================================================================== */
.sticky-action-dock {
  position: fixed;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  z-index: 1045;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  padding: 0;
  background: transparent;
  border: none;
  box-shadow: none;
  pointer-events: auto;
}

.dock-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  padding: 0.95rem 0.6rem 0.85rem;
  border-radius: 10px 0 0 10px;
  text-decoration: none;
  font-family: var(--font-heading);
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  white-space: nowrap;
  box-shadow: -4px 6px 18px rgba(0, 0, 0, 0.22);
  transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s ease, filter 0.25s ease;
  border-right: none;
  cursor: pointer;
}

.dock-btn-register {
  background: linear-gradient(180deg, #D97732 0%, #BF6221 100%);
  color: #FFFFFF !important;
  border: 1px solid rgba(255, 255, 255, 0.4);
  border-right: none;
}

.dock-btn-register:hover {
  background: linear-gradient(180deg, #E0823D 0%, #BF6221 100%);
  transform: translateX(-6px);
  box-shadow: -6px 8px 24px rgba(217, 119, 50, 0.5);
  color: #FFFFFF !important;
}

.dock-btn-youtube {
  background: linear-gradient(180deg, #CC181E 0%, #A81217 100%);
  color: #FFFFFF !important;
  border: 1px solid rgba(255, 255, 255, 0.4);
  border-right: none;
  padding: 0.65rem 0.6rem;
  width: 100%;
}

.dock-btn-youtube .dock-icon {
  font-size: 1.35rem;
}

.dock-btn-youtube .dock-label {
  display: none;
}

.dock-btn-youtube:hover {
  background: linear-gradient(180deg, #D82228 0%, #A81217 100%);
  transform: translateX(-6px);
  box-shadow: -6px 8px 24px rgba(204, 24, 30, 0.55);
  color: #FFFFFF !important;
}

.dock-icon {
  font-size: 1.15rem;
  line-height: 1;
}

.dock-label {
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  line-height: 1;
  text-transform: uppercase;
  font-size: 0.74rem;
  letter-spacing: 0.08em;
}

/* --------------------------------------------------------------------------
   Mobile View (< 768px): Convert to Fixed Bottom Action Bar
   -------------------------------------------------------------------------- */
@media (max-width: 767.98px) {
  body {
    padding-bottom: calc(60px + env(safe-area-inset-bottom, 0px));
  }

  .sticky-action-dock {
    top: auto;
    bottom: 0;
    left: 0;
    right: 0;
    transform: none;
    flex-direction: row;
    align-items: center;
    justify-content: stretch;
    gap: 0.5rem;
    padding: 0.45rem 0.65rem max(0.45rem, env(safe-area-inset-bottom, 0.45rem));
    background: rgba(24, 12, 16, 0.95);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-top: 1.5px solid var(--color-gold);
    box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.5);
    z-index: 1045;
  }

  .dock-btn {
    flex: 1;
    min-width: 0;
    flex-direction: column;
    gap: 0.2rem;
    padding: 0.4rem 0.35rem 0.35rem;
    border-radius: 8px;
    border: 1px solid rgba(255, 255, 255, 0.2);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
    transform: none !important;
  }

  .dock-btn:active {
    transform: scale(0.96) !important;
  }

  .dock-btn-register {
    flex: 1.35;
    background: linear-gradient(135deg, #FF6F00 0%, #D97732 100%);
    box-shadow: 0 2px 10px rgba(217, 119, 50, 0.45);
    border: 1px solid rgba(255, 255, 255, 0.35);
  }

  .dock-btn-youtube {
    width: auto;
    padding: 0.4rem 0.35rem 0.35rem;
    border: 1px solid rgba(255, 255, 255, 0.2);
  }

  .dock-btn-youtube .dock-icon {
    font-size: 1.15rem;
  }

  .dock-btn-youtube .dock-label {
    display: block;
  }

  .dock-icon {
    font-size: 1.05rem;
  }

  .dock-label {
    writing-mode: horizontal-tb;
    transform: none;
    font-size: 0.66rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    line-height: 1.2;
    text-align: center;
  }

  .go-to-top-btn {
    bottom: calc(66px + env(safe-area-inset-bottom, 0px)) !important;
    right: 1rem !important;
    width: 38px !important;
    height: 38px !important;
    font-size: 0.9rem !important;
    z-index: 1040;
  }
}

/* --------------------------------------------------------------------------
   6. Hero Section (Edge-to-Edge Direct Full-Width Banner)
   -------------------------------------------------------------------------- */
.hero-section {
  position: relative;
  background: #2E060D;
  color: var(--color-ivory);
  padding: 0 !important;
  overflow: hidden;
  border-bottom: 3px double var(--color-gold);
}

/* ==========================================================================
   Desktop Hero Graphic Banner & Interactive Hotspots (>= 992px)
   ========================================================================== */
.hero-desktop-banner-wrapper {
  position: relative;
  width: 100%;
  margin: 0;
  border-radius: 0;
  overflow: hidden;
  border: none;
  box-shadow: none;
}

.hero-desktop-banner-img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
  border-radius: 0;
  image-rendering: -webkit-optimize-contrast;
  image-rendering: crisp-edges;
}

/* Interactive Hotspot Buttons */
.hero-hotspot-btn {
  position: absolute;
  cursor: pointer;
  border-radius: 100px;
  transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
  z-index: 10;
  text-decoration: none;
}

/* Register Now Button Hotspot */
.hero-hotspot-register {
  left: 44.5%;
  top: 75.5%;
  width: 16.5%;
  height: 10%;
}

.hero-hotspot-register:hover {
  background: rgba(255, 255, 255, 0.16);
  box-shadow: 0 0 24px rgba(255, 140, 0, 0.7), inset 0 0 14px rgba(255, 255, 255, 0.3);
  transform: translateY(-2px);
}

/* Explore Programme Button Hotspot */
.hero-hotspot-programme {
  left: 62.5%;
  top: 75.5%;
  width: 21.5%;
  height: 10%;
}

.hero-hotspot-programme:hover {
  background: rgba(255, 255, 255, 0.14);
  box-shadow: 0 0 22px rgba(217, 158, 54, 0.6), inset 0 0 12px rgba(255, 255, 255, 0.2);
  transform: translateY(-2px);
}

/* Venue Pill Hotspot */
.hero-hotspot-venue {
  left: 61.5%;
  top: 61.5%;
  width: 32.5%;
  height: 9%;
}

.hero-hotspot-venue:hover {
  background: rgba(255, 255, 255, 0.08);
  box-shadow: 0 0 16px rgba(255, 215, 0, 0.4);
}

/* ==========================================================================
   Mobile Hero Graphic Banner & Interactive Hotspots (< 992px)
   ========================================================================== */
.hero-mobile-banner-wrapper {
  position: relative;
  width: 100%;
  max-width: 100%;
  margin: 0;
  border-radius: 0;
  overflow: hidden;
  border: none;
  box-shadow: none;
}

.hero-mobile-banner-img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
  border-radius: 0;
  image-rendering: -webkit-optimize-contrast;
  image-rendering: crisp-edges;
}

/* Mobile Hotspots */
.hero-mobile-hotspot-register {
  left: 18.5%;
  top: 89.0%;
  width: 29.5%;
  height: 5.5%;
}

.hero-mobile-hotspot-register:active,
.hero-mobile-hotspot-register:hover {
  background: rgba(255, 255, 255, 0.2);
  box-shadow: 0 0 18px rgba(255, 140, 0, 0.75);
}

.hero-mobile-hotspot-programme {
  left: 49.5%;
  top: 89.0%;
  width: 32%;
  height: 5.5%;
}

.hero-mobile-hotspot-programme:active,
.hero-mobile-hotspot-programme:hover {
  background: rgba(255, 255, 255, 0.16);
  box-shadow: 0 0 16px rgba(217, 158, 54, 0.6);
}

.hero-mobile-hotspot-venue {
  left: 18.4%;
  top: 81.0%;
  width: 63.2%;
  height: 5.5%;
}

.hero-mobile-hotspot-venue:active,
.hero-mobile-hotspot-venue:hover {
  background: rgba(255, 255, 255, 0.1);
  box-shadow: 0 0 12px rgba(255, 215, 0, 0.4);
}

.hero-eyebrow-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.35rem 1.1rem;
  background: rgba(22, 10, 14, 0.7);
  border: 1px solid rgba(199, 161, 90, 0.55);
  border-radius: 100px;
  color: var(--color-gold-light);
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.35);
  backdrop-filter: blur(8px);
}

.hero-main-title {
  font-size: clamp(2.8rem, 5.5vw, 4.4rem);
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--color-ivory);
  line-height: 1.1;
  text-shadow: 0 2px 14px rgba(0, 0, 0, 0.5);
}

.hero-supporting-title {
  font-size: clamp(1.2rem, 2.2vw, 1.7rem);
  font-family: var(--font-serif);
  color: var(--color-gold-light);
  font-weight: 500;
  margin-top: 0.75rem;
  margin-bottom: 1.25rem;
  font-style: normal;
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.35);
}

.hero-quote-box {
  position: relative;
  max-width: 620px;
  padding: 0.65rem 1.25rem;
  border-left: 3.5px solid var(--color-gold);
  background: linear-gradient(90deg, rgba(199, 161, 90, 0.12) 0%, transparent 100%);
  border-radius: 0 8px 8px 0;
  margin-top: 0.5rem;
}

.hero-tagline {
  font-size: 1.15rem;
  font-family: var(--font-serif);
  font-style: italic;
  color: var(--color-ivory);
  margin: 0;
  letter-spacing: 0.01em;
  text-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
}

@media (max-width: 991.98px) {
  .hero-quote-box {
    margin: 1.25rem auto 1.75rem;
    border-left: none;
    border-top: 1px solid rgba(199, 161, 90, 0.35);
    border-bottom: 1px solid rgba(199, 161, 90, 0.35);
    border-radius: 0;
    text-align: center;
  }
}

.hero-info-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  background-color: rgba(30, 16, 20, 0.55);
  border: 1px solid rgba(199, 161, 90, 0.45);
  padding: 0.55rem 1.15rem;
  border-radius: 100px;
  font-size: 0.95rem;
  color: var(--color-ivory);
  backdrop-filter: blur(8px);
  transition: transform var(--transition-fast), background-color var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast);
}

.hero-info-badge:hover {
  background-color: rgba(45, 20, 26, 0.85);
  border-color: var(--color-gold);
  box-shadow: 0 4px 18px rgba(107, 23, 38, 0.45);
  transform: translateY(-2px);
}

/* ==========================================================================
   Historical Portrait Visual Composition (Single Archival Portrait)
   ========================================================================== */
.portrait-editorial-card {
  position: relative;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 20px 45px rgba(0, 0, 0, 0.55), 0 0 25px rgba(199, 161, 90, 0.2);
  border: 1.5px solid rgba(199, 161, 90, 0.55);
  background: var(--color-maroon-dark);
  transition: transform var(--transition-medium), box-shadow var(--transition-medium);
}

.portrait-editorial-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 26px 55px rgba(0, 0, 0, 0.65), 0 0 35px rgba(199, 161, 90, 0.3);
  border-color: var(--color-gold);
}

.portrait-editorial-card img {
  width: 100%;
  height: auto;
  border-radius: 2px;
  display: block;
}

.portrait-caption {
  position: absolute;
  bottom: 18px;
  left: 18px;
  right: 18px;
  background: rgba(20, 12, 15, 0.88);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  color: var(--color-ivory);
  padding: 0.75rem 1.15rem;
  border: 1px solid rgba(199, 161, 90, 0.45);
  border-radius: 6px;
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.55);
  text-align: center;
}

.portrait-caption h6 {
  color: var(--color-gold-light);
  font-family: var(--font-serif);
  margin-bottom: 0;
  font-size: 1.18rem;
  font-weight: 700;
  letter-spacing: 0.02em;
}

.portrait-caption p {
  margin: 0;
  font-size: 0.82rem;
  color: rgba(248, 243, 233, 0.9);
  line-height: 1.35;
}

/* ==========================================================================
   Refined Premium Event Info Strip
   ========================================================================== */
.event-info-strip {
  position: relative;
  background: radial-gradient(ellipse at 50% -20%, rgba(131, 32, 50, 0.45) 0%, transparent 70%),
    linear-gradient(180deg, #1A1617 0%, #261B20 50%, #171415 100%);
  color: var(--color-ivory);
  padding: 2.25rem 0;
  border-top: 1px solid rgba(199, 161, 90, 0.35);
  border-bottom: 2px solid var(--color-gold);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.35), inset 0 1px 0 rgba(255, 255, 255, 0.08);
  overflow: hidden;
}

.event-info-strip::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--color-gold), transparent);
}

.info-strip-card {
  height: 100%;
  display: flex;
  align-items: center;
  gap: 1.15rem;
  background: rgba(255, 255, 255, 0.035);
  border: 1px solid rgba(199, 161, 90, 0.25);
  border-radius: 12px;
  padding: 1.15rem 1.35rem;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);
  transition: all var(--transition-smooth);
}

.info-strip-card:hover {
  transform: translateY(-3px);
  background: rgba(255, 255, 255, 0.065);
  border-color: rgba(199, 161, 90, 0.55);
  box-shadow: 0 8px 26px rgba(107, 23, 38, 0.3);
}

.info-strip-icon {
  width: 52px;
  height: 52px;
  border-radius: 12px;
  background: linear-gradient(135deg, rgba(217, 119, 50, 0.22) 0%, rgba(107, 23, 38, 0.35) 100%);
  border: 1.5px solid rgba(199, 161, 90, 0.45);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-gold-light);
  font-size: 1.35rem;
  flex-shrink: 0;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25), inset 0 1px 0 rgba(255, 255, 255, 0.2);
  transition: all var(--transition-fast);
}

.info-strip-card:hover .info-strip-icon {
  background: linear-gradient(135deg, var(--color-saffron) 0%, var(--color-maroon) 100%);
  color: #FFFFFF;
  border-color: var(--color-gold);
  transform: scale(1.05);
}

.info-strip-text {
  flex-grow: 1;
  min-width: 0;
}

.info-strip-label {
  display: block;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--color-gold-light);
  margin-bottom: 0.2rem;
}

.info-strip-value {
  font-size: 1.05rem;
  font-weight: 700;
  color: #FFFDF8;
  margin-bottom: 0.15rem;
  line-height: 1.3;
  letter-spacing: -0.01em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.info-strip-sub {
  display: block;
  font-size: 0.78rem;
  color: rgba(248, 243, 233, 0.65);
  font-weight: 400;
  line-height: 1.2;
}

@media (max-width: 991.98px) {
  .info-strip-value {
    white-space: normal;
  }
}

/* --------------------------------------------------------------------------
   7. About Section
   -------------------------------------------------------------------------- */
.about-lead-text-wrap,
.about-lead-card {
  position: relative;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
}

.lead-editorial {
  font-size: clamp(1.05rem, 1.8vw, 1.25rem);
  line-height: 1.75;
  color: var(--color-maroon);
}

.about-stat-strip {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
  margin-top: 1.5rem;
}

.about-stat-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  background-color: var(--color-ivory);
  border: 1px solid rgba(199, 161, 90, 0.4);
  padding: 0.5rem 1.15rem;
  border-radius: 100px;
  font-size: clamp(0.82rem, 1.6vw, 0.9rem);
  color: var(--color-charcoal);
  font-weight: 500;
  max-width: 100%;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
  transition: all var(--transition-fast);
}

.about-stat-pill:hover {
  border-color: var(--color-gold);
  background-color: #ffffff;
  color: var(--color-maroon);
  transform: translateY(-2px);
  box-shadow: 0 4px 14px rgba(107, 23, 38, 0.1);
}

.about-stat-pill i {
  color: var(--color-saffron);
  font-size: 0.95rem;
  flex-shrink: 0;
}

@media (max-width: 767.98px) {
  #about .section-header {
    margin-bottom: 2rem;
  }

  .about-stat-strip {
    gap: 0.55rem;
    margin-top: 1.25rem;
  }
}

@media (max-width: 575.98px) {
  #about {
    padding-top: 2rem !important;
    padding-bottom: 2rem !important;
  }

  .about-stat-strip {
    flex-direction: column;
    align-items: stretch;
    width: 100%;
    gap: 0.5rem;
  }

  .about-stat-pill {
    width: 100%;
    justify-content: flex-start;
    padding: 0.55rem 0.95rem;
    border-radius: 10px;
    font-size: 0.85rem;
  }
}

.about-archival-grid {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.about-dual-photos {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}

.about-photo-item {
  background: var(--color-white);
  border: 1px solid rgba(199, 161, 90, 0.4);
  border-radius: 6px;
  overflow: hidden;
  box-shadow: var(--shadow-subtle);
}

.about-photo-item img {
  width: 100%;
  height: 185px;
  object-fit: cover;
  display: block;
}

.about-photo-meta {
  padding: 0.65rem 0.75rem;
  background: var(--color-ivory-light);
  border-top: 1px solid rgba(199, 161, 90, 0.25);
  text-align: center;
}

.about-photo-meta h6 {
  font-size: 0.88rem;
  margin-bottom: 0.15rem;
  color: var(--color-maroon);
}

.about-photo-meta span {
  font-size: 0.76rem;
  color: var(--color-muted);
  display: block;
  line-height: 1.2;
}

.about-quote-banner {
  background: linear-gradient(135deg, var(--color-maroon) 0%, var(--color-maroon-dark) 100%);
  color: var(--color-ivory);
  border-radius: 6px;
  padding: 1.25rem 1.5rem;
  border: 1px solid var(--color-gold);
  box-shadow: var(--shadow-subtle);
}

.about-quote-banner q {
  font-family: var(--font-serif);
  font-size: 1.15rem;
  font-style: italic;
  display: block;
  color: var(--color-ivory-light);
  margin-bottom: 0.35rem;
  line-height: 1.4;
}

.about-quote-banner span {
  font-size: 0.82rem;
  color: var(--color-gold-light);
  display: block;
}

.about-pillar-card {
  position: relative;
  background: linear-gradient(180deg, #FFFFFF 0%, #FDFBF7 100%);
  border: 1px solid rgba(199, 161, 90, 0.35);
  border-radius: 14px;
  padding: 2rem 1.75rem 1.85rem;
  height: 100%;
  display: flex;
  flex-direction: column;
  transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
  box-shadow: 0 4px 20px -2px rgba(107, 23, 38, 0.05), 0 2px 8px rgba(0, 0, 0, 0.03);
  overflow: hidden;
}

.about-pillar-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--color-gold) 0%, var(--color-saffron) 50%, var(--color-maroon) 100%);
  opacity: 0.85;
  transition: height 0.35s ease, opacity 0.35s ease;
}

.about-pillar-card:hover {
  transform: translateY(-6px);
  border-color: rgba(199, 161, 90, 0.7);
  box-shadow: 0 16px 36px -4px rgba(107, 23, 38, 0.12), 0 6px 16px rgba(199, 161, 90, 0.15);
}

.about-pillar-card:hover::before {
  height: 4px;
  opacity: 1;
}

.about-pillar-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1.25rem;
}

.about-pillar-icon {
  width: 50px;
  height: 50px;
  border-radius: 12px;
  background: linear-gradient(135deg, rgba(107, 23, 38, 0.08) 0%, rgba(199, 161, 90, 0.18) 100%);
  border: 1px solid rgba(199, 161, 90, 0.45);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-maroon);
  font-size: 1.3rem;
  box-shadow: 0 3px 8px rgba(107, 23, 38, 0.06);
  transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

.about-pillar-card:hover .about-pillar-icon {
  background: linear-gradient(135deg, var(--color-maroon) 0%, var(--color-maroon-dark) 100%);
  color: var(--color-ivory-light);
  border-color: var(--color-gold);
  transform: translateY(-2px) scale(1.05);
  box-shadow: 0 8px 18px rgba(107, 23, 38, 0.25);
}

.about-pillar-num {
  font-family: var(--font-serif);
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--color-gold);
  opacity: 0.6;
  letter-spacing: 0.02em;
  transition: all 0.3s ease;
}

.about-pillar-card:hover .about-pillar-num {
  opacity: 1;
  color: var(--color-maroon);
  transform: scale(1.08);
}

.about-pillar-title {
  font-family: var(--font-serif);
  font-size: 1.25rem;
  color: var(--color-maroon);
  margin-bottom: 0.85rem;
  font-weight: 700;
  line-height: 1.35;
  position: relative;
  padding-bottom: 0.75rem;
}

.about-pillar-title::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 32px;
  height: 2px;
  background: linear-gradient(90deg, var(--color-gold) 0%, rgba(199, 161, 90, 0.2) 100%);
  border-radius: 2px;
  transition: width 0.35s ease;
}

.about-pillar-card:hover .about-pillar-title::after {
  width: 54px;
  background: linear-gradient(90deg, var(--color-maroon) 0%, var(--color-gold) 100%);
}

.about-pillar-text {
  font-size: 0.93rem;
  color: #4A453F;
  line-height: 1.68;
  margin-bottom: 0;
  flex-grow: 1;
}

@media (max-width: 576px) {
  .about-dual-photos {
    grid-template-columns: 1fr;
  }

  .about-photo-item img {
    height: 190px;
  }
}

.editorial-quote-box {
  background-color: var(--color-ivory-dark);
  border-left: 4px solid var(--color-maroon);
  padding: 1.5rem;
  margin: 2rem 0;
  font-style: italic;
  font-family: var(--font-serif);
  font-size: 1.25rem;
  color: var(--color-maroon);
}

.portrait-framed-secondary {
  position: relative;
  padding: 8px;
  background-color: var(--color-white);
  border: 1px solid var(--color-gold);
  box-shadow: var(--shadow-card);
}

/* --------------------------------------------------------------------------
/* --------------------------------------------------------------------------
   8. Objectives Section (Ideas that Inspire Social Transformation)
   -------------------------------------------------------------------------- */
.objectives-editorial-section {
  background: #FFFFFF;
  border-top: 1px solid rgba(199, 161, 90, 0.35);
  border-bottom: 1px solid rgba(199, 161, 90, 0.35);
  position: relative;
}

.objectives-ambient-glow {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-image:
    radial-gradient(circle at 15% 15%, rgba(224, 112, 32, 0.05) 0%, transparent 45%),
    radial-gradient(circle at 85% 85%, rgba(107, 23, 38, 0.05) 0%, transparent 45%);
  pointer-events: none;
}

/* Filter Bar */
.objectives-filter-bar {
  position: relative;
  z-index: 2;
}

.btn-obj-filter {
  background: #FFFFFF;
  border: 1px solid rgba(199, 161, 90, 0.45);
  color: var(--color-charcoal);
  padding: 0.5rem 1.15rem;
  border-radius: 100px;
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  cursor: pointer;
  transition: all 0.25s ease;
  display: inline-flex;
  align-items: center;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.03);
}

.btn-obj-filter:hover {
  background: var(--color-ivory-dark);
  border-color: var(--color-gold);
  color: var(--color-maroon);
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(107, 23, 38, 0.1);
}

.btn-obj-filter.active {
  background: linear-gradient(135deg, var(--color-maroon) 0%, var(--color-maroon-dark) 100%);
  color: var(--color-ivory);
  border-color: var(--color-gold);
  box-shadow: 0 6px 18px rgba(107, 23, 38, 0.28);
  transform: translateY(-2px);
}

.btn-obj-filter.active i {
  color: var(--color-saffron) !important;
}

/* Card Styling */
.objective-grid-item {
  transition: opacity 0.35s ease, transform 0.35s ease;
}

.objective-card-rich {
  background: #FFFFFF;
  border: 1px solid rgba(199, 161, 90, 0.38);
  border-radius: 14px;
  padding: 2rem 1.75rem 1.5rem;
  position: relative;
  transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  box-shadow: 0 4px 16px -2px rgba(107, 23, 38, 0.04), 0 2px 6px rgba(0, 0, 0, 0.02);
}

.objective-card-rich::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--color-gold) 0%, var(--color-saffron) 50%, var(--color-maroon) 100%);
  opacity: 0.6;
  transition: opacity 0.3s ease, height 0.3s ease;
}

.objective-card-rich:hover {
  transform: translateY(-6px);
  border-color: var(--color-gold);
  box-shadow: 0 18px 36px -8px rgba(107, 23, 38, 0.14), 0 6px 16px rgba(0, 0, 0, 0.04);
}

.objective-card-rich:hover::before {
  opacity: 1;
  height: 4px;
}

.objective-watermark {
  position: absolute;
  right: 18px;
  top: 10px;
  font-family: var(--font-serif);
  font-size: 3.8rem;
  font-weight: 800;
  color: rgba(199, 161, 90, 0.14);
  line-height: 1;
  pointer-events: none;
  user-select: none;
  transition: all 0.35s ease;
}

.objective-card-rich:hover .objective-watermark {
  color: rgba(107, 23, 38, 0.16);
  transform: translateY(-2px) scale(1.06);
}

.objective-top-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1.25rem;
  position: relative;
  z-index: 1;
}

.objective-icon-badge {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  background: linear-gradient(135deg, rgba(224, 112, 32, 0.12) 0%, rgba(107, 23, 38, 0.07) 100%);
  border: 1px solid rgba(199, 161, 90, 0.45);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.35rem;
  color: var(--color-maroon);
  transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.03);
}

.objective-card-rich:hover .objective-icon-badge {
  background: linear-gradient(135deg, var(--color-saffron) 0%, var(--color-maroon) 100%);
  color: #FFFFFF;
  border-color: var(--color-gold);
  transform: scale(1.08);
  box-shadow: 0 6px 18px rgba(107, 23, 38, 0.28);
}

.objective-category-pill {
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding: 0.3rem 0.75rem;
  border-radius: 100px;
  background: var(--color-ivory-dark);
  color: var(--color-maroon);
  border: 1px solid rgba(199, 161, 90, 0.3);
  transition: all 0.3s ease;
}

.objective-card-rich:hover .objective-category-pill {
  background: rgba(107, 23, 38, 0.08);
  border-color: var(--color-gold);
}

.objective-title {
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--color-maroon);
  margin-bottom: 0.85rem;
  line-height: 1.38;
  position: relative;
  z-index: 1;
}

.objective-card-rich .objective-text {
  font-size: 0.94rem;
  color: #4A443E;
  line-height: 1.68;
  margin-bottom: 1.35rem;
  flex-grow: 1;
  position: relative;
  z-index: 1;
  text-align: justify;
  text-justify: inter-word;
  text-align-last: left;
}

.objective-card-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 0.9rem;
  border-top: 1px dashed rgba(199, 161, 90, 0.35);
  font-size: 0.74rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--color-muted);
  position: relative;
  z-index: 1;
}

.objective-card-footer i {
  color: var(--color-gold);
  font-size: 0.95rem;
  transition: transform 0.3s ease, color 0.3s ease;
}

.objective-card-rich:hover .objective-card-footer i {
  transform: translate(2px, -2px);
  color: var(--color-saffron);
}

/* --------------------------------------------------------------------------
   9. Festival At a Glance (Stat Highlights & Full-Width Rows)
   -------------------------------------------------------------------------- */
.glance-stat-strip {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.25rem;
  margin-bottom: 2.25rem;
}

.glance-stat-card {
  background: #FFFFFF;
  border: 1px solid rgba(199, 161, 90, 0.4);
  border-radius: 10px;
  padding: 1.25rem 1rem;
  text-align: center;
  box-shadow: 0 4px 14px rgba(107, 23, 38, 0.05);
  transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}

.glance-stat-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 24px rgba(107, 23, 38, 0.12);
  border-color: var(--color-saffron);
}

.glance-stat-number {
  font-family: var(--font-heading);
  font-size: 2.1rem;
  font-weight: 800;
  color: var(--color-maroon);
  line-height: 1.1;
  margin-bottom: 0.25rem;
}

.glance-stat-label {
  font-size: 0.82rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--color-saffron-dark);
}

.glance-stat-desc {
  font-size: 0.78rem;
  color: var(--color-charcoal-muted);
  margin-top: 0.2rem;
}

@media (max-width: 991.98px) {
  .glance-stat-strip {
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
  }
}

@media (max-width: 575.98px) {
  .glance-stat-strip {
    grid-template-columns: repeat(2, 1fr);
    gap: 0.65rem;
    margin-bottom: 1.75rem;
  }

  #glance .glance-stat-card {
    padding: 0.95rem 0.6rem 0.85rem;
    border-radius: 12px;
  }

  #glance .glance-stat-number {
    font-size: 1.6rem;
  }

  #glance .glance-stat-label {
    font-size: 0.7rem;
    letter-spacing: 0.04em;
  }

  #glance .glance-stat-desc {
    font-size: 0.68rem;
    line-height: 1.25;
  }
}

/* --------------------------------------------------------------------------
   9. Festival At a Glance (Luxury Circular Gold-Ring Portals - Reference Image 2)
   -------------------------------------------------------------------------- */
#glance {
  background: radial-gradient(circle at 50% 20%, #5c1818 0%, #4a1414 55%, #240a0a 100%);
  color: #F8F5EE;
  position: relative;
  overflow: hidden;
  border-top: 1px solid rgba(212, 175, 55, 0.25);
  border-bottom: 1px solid rgba(212, 175, 55, 0.25);
}

#glance .section-header .eyebrow {
  color: #E8C35E;
  text-shadow: 0 0 10px rgba(232, 195, 94, 0.3);
}

#glance .section-title {
  color: #FFFFFF;
  text-shadow: 0 2px 14px rgba(0, 0, 0, 0.7);
}

#glance .section-subtitle {
  color: #D2CBBF;
}

/* Stat strip updated for ambient dark mode */
#glance .glance-stat-card {
  background: rgba(255, 255, 255, 0.04);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(220, 180, 80, 0.25);
  border-radius: 14px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

#glance .glance-stat-card:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(232, 195, 94, 0.6);
  transform: translateY(-4px);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.5), 0 0 20px rgba(212, 175, 55, 0.2);
}

#glance .glance-stat-number {
  color: #F7D879;
  text-shadow: 0 0 16px rgba(247, 216, 121, 0.35);
}

#glance .glance-stat-label {
  color: #FFF0B3;
  letter-spacing: 0.08em;
}

#glance .glance-stat-desc {
  color: #C7C0B0;
}

/* Filter Navigation */
.glance-filter-nav {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0.65rem;
  margin-bottom: 2.5rem;
}

.glance-filter-btn {
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(220, 180, 75, 0.32);
  color: #E6DFD3;
  padding: 0.55rem 1.25rem;
  border-radius: 100px;
  font-family: var(--font-sans);
  font-size: 0.85rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.25s ease;
  backdrop-filter: blur(8px);
}

.glance-filter-btn:hover {
  background: rgba(232, 195, 94, 0.16);
  color: #FFFFFF;
  border-color: #E8C35E;
  transform: translateY(-2px);
  box-shadow: 0 4px 14px rgba(232, 195, 94, 0.25);
}

.glance-filter-btn.active {
  background: linear-gradient(135deg, #E8B84B 0%, #B87B14 100%);
  color: #120E05;
  border-color: #FFF2A8;
  font-weight: 700;
  box-shadow: 0 4px 18px rgba(232, 184, 75, 0.45), 0 0 10px rgba(255, 242, 168, 0.4);
}

/* Full-Width Glance Carousel Showcase */
.glance-carousel-fullwidth {
  width: 100%;
  position: relative;
  padding: 1.5rem 0 1rem;
  overflow: hidden;
  user-select: none;
}

/* Track */
.glance-carousel-track {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  gap: 2rem;
  overflow-x: auto;
  scroll-behavior: auto;
  scroll-snap-type: none;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  -ms-overflow-style: none;
  padding: 1.25rem 4.5rem;
  cursor: grab;
  will-change: scroll-position;
}

.glance-carousel-track::-webkit-scrollbar {
  display: none;
}

.glance-carousel-track.is-dragging {
  cursor: grabbing;
}

/* Circular Portal Link */
.glance-circle-portal {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-decoration: none;
  cursor: pointer;
  scroll-snap-align: none;
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.3s ease;
  user-select: none;
}

.glance-circle-portal.is-hidden {
  display: none !important;
}

/* Circular Golden Ring (Matching Reference Image 2) */
.glance-circle-ring {
  width: 146px;
  height: 146px;
  border-radius: 50%;
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2px solid rgba(228, 185, 76, 0.95);
  box-shadow:
    0 0 0 3px rgba(74, 20, 20, 0.9),
    0 0 16px rgba(220, 175, 60, 0.38),
    0 10px 24px rgba(0, 0, 0, 0.65);
  transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
  background: #4a1414;
}

/* Inner Background Photo */
.glance-circle-img {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background-size: cover;
  background-position: center;
  transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}

/* Dark Vignette Overlay */
.glance-circle-overlay {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(74, 20, 20, 0.42) 0%, rgba(36, 10, 10, 0.85) 100%);
  transition: background 0.35s ease, opacity 0.35s ease;
}

/* Content & Label */
.glance-circle-content {
  position: relative;
  z-index: 2;
  padding: 0 12px;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
}

.glance-circle-title {
  font-family: var(--font-serif);
  font-size: 0.98rem;
  font-weight: 500;
  color: #FFFFFF;
  line-height: 1.25;
  letter-spacing: 0.01em;
  text-shadow:
    0 2px 8px rgba(0, 0, 0, 0.95),
    0 0 14px rgba(0, 0, 0, 0.85);
  transition: all 0.3s ease;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Hover States (Radiant Golden Glow & Zoom) */
.glance-circle-portal:hover {
  transform: translateY(-5px);
}

.glance-circle-portal:hover .glance-circle-ring {
  border-color: #FFF2A8;
  transform: scale(1.06);
  box-shadow:
    0 0 0 3px rgba(74, 20, 20, 0.9),
    0 0 28px rgba(255, 220, 115, 0.75),
    0 14px 30px rgba(0, 0, 0, 0.8);
}

.glance-circle-portal:hover .glance-circle-img {
  transform: scale(1.16);
}

.glance-circle-portal:hover .glance-circle-overlay {
  background: radial-gradient(circle, rgba(74, 20, 20, 0.28) 0%, rgba(36, 10, 10, 0.72) 100%);
}

.glance-circle-portal:hover .glance-circle-title {
  color: #FFF8D6;
  text-shadow:
    0 2px 10px rgba(0, 0, 0, 1),
    0 0 16px rgba(232, 195, 94, 0.6);
}

/* Floating Navigation Arrows */
.glance-carousel-nav {
  position: absolute;
  top: 42%;
  transform: translateY(-50%);
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: rgba(74, 20, 20, 0.88);
  border: 1.5px solid rgba(228, 185, 76, 0.8);
  color: #FFF2A8;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.3rem;
  cursor: pointer;
  z-index: 10;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  box-shadow:
    0 4px 20px rgba(0, 0, 0, 0.65),
    0 0 16px rgba(228, 185, 76, 0.35);
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.glance-carousel-nav:hover {
  background: linear-gradient(135deg, rgba(232, 184, 75, 0.95), rgba(184, 123, 20, 0.95));
  color: #120E05;
  border-color: #FFF8D6;
  transform: translateY(-50%) scale(1.1);
  box-shadow:
    0 8px 24px rgba(0, 0, 0, 0.8),
    0 0 24px rgba(255, 220, 115, 0.65);
}

.glance-carousel-prev {
  left: 1.25rem;
}

.glance-carousel-next {
  right: 1.25rem;
}

/* Edge Vignette Fades */
.glance-carousel-fade {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 90px;
  z-index: 6;
  pointer-events: none;
}

.glance-fade-left {
  left: 0;
  background: linear-gradient(to right, rgba(36, 10, 10, 0.95) 0%, rgba(36, 10, 10, 0) 100%);
}

.glance-fade-right {
  right: 0;
  background: linear-gradient(to left, rgba(36, 10, 10, 0.95) 0%, rgba(36, 10, 10, 0) 100%);
}

/* Progress bar & hint */
.glance-carousel-footer {
  position: relative;
  z-index: 8;
  margin-top: 0.75rem;
}

.glance-carousel-progress-wrap {
  width: 160px;
  height: 4px;
  background: rgba(255, 255, 255, 0.12);
  border-radius: 99px;
  overflow: hidden;
  position: relative;
}

.glance-carousel-progress-bar {
  height: 100%;
  width: 15%;
  background: linear-gradient(90deg, #E8B84B 0%, #FFDE73 100%);
  border-radius: 99px;
  box-shadow: 0 0 8px rgba(255, 222, 115, 0.5);
  transition: width 0.15s ease-out;
}

.glance-carousel-hint {
  font-size: 0.76rem;
  color: #A9A296;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  margin-top: 0.45rem;
  font-weight: 500;
}

/* Responsiveness */
@media (max-width: 1199.98px) {
  .glance-circle-ring {
    width: 136px;
    height: 136px;
  }

  .glance-circle-title {
    font-size: 0.92rem;
  }

  .glance-carousel-track {
    gap: 1.6rem;
    padding: 1.25rem 3.5rem;
  }
}

@media (max-width: 767.98px) {
  .glance-circle-ring {
    width: 116px;
    height: 116px;
  }

  .glance-circle-title {
    font-size: 0.82rem;
    line-height: 1.2;
    padding: 0 8px;
  }

  .glance-carousel-track {
    gap: 1.2rem;
    padding: 1rem 2.75rem;
  }

  .glance-carousel-nav {
    width: 42px;
    height: 42px;
    font-size: 1.1rem;
  }

  .glance-carousel-prev {
    left: 0.5rem;
  }

  .glance-carousel-next {
    right: 0.5rem;
  }

  .glance-carousel-fade {
    width: 45px;
  }
}

@media (max-width: 480px) {
  .glance-circle-ring {
    width: 104px;
    height: 104px;
  }

  .glance-circle-title {
    font-size: 0.76rem;
    line-height: 1.18;
  }

  .glance-carousel-track {
    gap: 1rem;
    padding: 0.75rem 2rem;
  }
}

/* --------------------------------------------------------------------------
   10. Three-Day Festival Programme (Capsule Segmented Tabs)
   -------------------------------------------------------------------------- */
.schedule-capsule-wrapper {
  display: flex;
  justify-content: center;
  margin-bottom: 2.75rem;
  overflow-x: auto;
  padding: 4px 6px;
  -webkit-overflow-scrolling: touch;
}

.programme-capsule-nav {
  display: inline-flex;
  align-items: center;
  background-color: #FFFFFF;
  border: 1px solid rgba(199, 161, 90, 0.45);
  border-radius: 100px;
  padding: 6px;
  box-shadow: 0 4px 20px rgba(34, 32, 31, 0.06);
  gap: 4px;
  margin: 0 auto;
  list-style: none;
  flex-wrap: nowrap;
}

.programme-capsule-nav .nav-item {
  margin: 0;
}

.programme-capsule-nav .nav-link {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  padding: 0.65rem 1.4rem !important;
  border-radius: 100px !important;
  border: none !important;
  background-color: transparent !important;
  color: #3B3731 !important;
  font-family: var(--font-sans);
  font-size: 0.95rem;
  font-weight: 600;
  line-height: 1.2;
  transition: all var(--transition-fast);
  cursor: pointer;
  white-space: nowrap;
}

.programme-capsule-nav .nav-link::after {
  display: none !important;
}

.programme-capsule-nav .nav-link:hover:not(.active) {
  background-color: rgba(107, 23, 38, 0.05) !important;
  color: var(--color-maroon) !important;
}

/* Active Segmented Pill - Exact Match to Reference */
.programme-capsule-nav .nav-link.active {
  background-color: #171514 !important;
  color: #FFFFFF !important;
  box-shadow: 0 4px 14px rgba(23, 21, 20, 0.25);
}

/* Circular Count Badges */
.programme-capsule-nav .tab-count-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 24px;
  height: 24px;
  padding: 0 7px;
  border-radius: 100px;
  font-size: 0.8rem;
  font-weight: 700;
  line-height: 1;
  transition: all var(--transition-fast);
  background-color: #EAE5DB;
  color: #555047;
}

.programme-capsule-nav .nav-link.active .tab-count-badge {
  background-color: #38332B;
  color: #E2BF72;
}

.day-divider-banner {
  background: var(--color-white);
  border: 1px solid rgba(199, 161, 90, 0.35);
  border-radius: 100px;
  padding: 0.5rem 1.25rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  box-shadow: var(--shadow-subtle);
  margin: 0 auto 2rem;
  position: relative;
  z-index: 2;
}

.day-divider-banner .badge {
  border-radius: 100px;
  padding: 0.4rem 0.8rem;
  font-weight: 600;
}

@media (max-width: 768px) {
  .schedule-capsule-wrapper {
    justify-content: flex-start;
  }

  .programme-capsule-nav {
    border-radius: 100px;
  }

  .programme-capsule-nav .nav-link {
    padding: 0.55rem 1rem !important;
    font-size: 0.88rem;
    gap: 0.5rem;
  }

  .programme-capsule-nav .tab-count-badge {
    min-width: 20px;
    height: 20px;
    font-size: 0.75rem;
    padding: 0 5px;
  }
}

/* --------------------------------------------------------------------------
   10. Three-Day Festival Programme (Kala Ghoda Cultural Event Cards)
   -------------------------------------------------------------------------- */
.kg-schedule-card {
  position: relative;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.22);
  transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
  background-color: #171113;
  display: flex;
  flex-direction: column;
  height: 100%;
  border: 1px solid rgba(199, 161, 90, 0.3);
}

.kg-schedule-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 22px 48px rgba(0, 0, 0, 0.35);
  border-color: var(--color-gold);
}

.kg-card-bg {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-size: cover;
  background-position: center;
  filter: brightness(0.55) contrast(1.1);
  transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1), filter 0.6s ease;
  z-index: 1;
}

.kg-schedule-card:hover .kg-card-bg {
  transform: scale(1.05);
  filter: brightness(0.48) contrast(1.15);
}

.kg-card-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(180deg, rgba(20, 11, 15, 0.58) 0%, rgba(20, 11, 15, 0.88) 55%, rgba(18, 9, 13, 0.98) 100%);
  z-index: 2;
}

.kg-card-content {
  position: relative;
  z-index: 3;
  padding: 1.5rem 1.65rem 1.25rem;
  display: flex;
  flex-direction: column;
  flex-grow: 1;
}

.kg-card-topbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1.25rem;
}

.kg-time-badge {
  display: inline-flex;
  align-items: center;
  background: rgba(34, 25, 28, 0.88);
  backdrop-filter: blur(6px);
  border: 1px solid rgba(199, 161, 90, 0.5);
  color: var(--color-gold-light);
  padding: 0.35rem 0.85rem;
  border-radius: 100px;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.03em;
}

.kg-session-tag {
  font-size: 0.74rem;
  font-weight: 700;
  color: rgba(248, 243, 233, 0.75);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

/* Center Linocut Woodblock Stamp Plaque */
.kg-stamp-plaque {
  background: #000000;
  border: 2px solid rgba(255, 255, 255, 0.15);
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.65);
  padding: 10px 14px 8px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  margin: 0.25rem auto 1.25rem;
  min-width: 110px;
  border-radius: 4px;
  transition: transform 0.3s ease, border-color 0.3s ease;
}

.kg-schedule-card:hover .kg-stamp-plaque {
  transform: scale(1.05);
  border-color: var(--color-gold);
}

.kg-stamp-art {
  width: 58px;
  height: 58px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.85rem;
  margin-bottom: 6px;
  border-radius: 2px;
  position: relative;
  box-shadow: inset 0 0 0 2px rgba(0, 0, 0, 0.4);
}

/* Linocut color variants */
.kg-stamp-blue {
  background: #5D9CEC;
  color: #000000;
}

.kg-stamp-yellow {
  background: #F6C85F;
  color: #000000;
}

.kg-stamp-cyan {
  background: #4FC1E9;
  color: #000000;
}

.kg-stamp-terracotta {
  background: #ED5565;
  color: #000000;
}

.kg-stamp-gold {
  background: #E6C280;
  color: #000000;
}

.kg-stamp-purple {
  background: #AC92EC;
  color: #000000;
}

.kg-stamp-green {
  background: #A0D468;
  color: #000000;
}

.kg-stamp-maroon {
  background: #C7485B;
  color: #000000;
}

.kg-stamp-label {
  font-family: var(--font-sans);
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  color: #FFFFFF;
  text-transform: uppercase;
  line-height: 1;
}

.kg-event-title {
  font-family: var(--font-sans);
  font-size: 1.3rem;
  font-weight: 700;
  color: var(--color-ivory);
  margin-bottom: 0.65rem;
  line-height: 1.3;
  text-align: center;
}

.kg-short-desc {
  font-size: 0.94rem;
  color: rgba(248, 243, 233, 0.88);
  line-height: 1.6;
  text-align: center;
  margin-bottom: 1.15rem;
}

/* Expanded Full Content */
.kg-full-content {
  border-top: 1px dashed rgba(199, 161, 90, 0.35);
  padding-top: 1.15rem;
  margin-bottom: 1.25rem;
}

.kg-expanded-body {
  font-size: 0.92rem;
  line-height: 1.68;
  color: rgba(248, 243, 233, 0.95);
  text-align: justify;
  text-justify: inter-word;
  text-align-last: left;
}

.kg-speaker-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  background: rgba(199, 161, 90, 0.2);
  border: 1px solid rgba(199, 161, 90, 0.45);
  color: var(--color-gold-light);
  padding: 0.4rem 0.85rem;
  border-radius: 4px;
  font-size: 0.85rem;
  font-weight: 600;
  margin-bottom: 0.85rem;
}

/* Bottom Bar with square plus button */
.kg-card-bottombar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 1rem;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  margin-top: auto;
}

.kg-expand-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  background: transparent;
  border: none;
  padding: 0;
  cursor: pointer;
  color: var(--color-ivory);
  transition: all 0.25s ease;
}

.kg-btn-icon {
  width: 36px;
  height: 36px;
  background: #E8ECEF;
  color: #212529;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.25rem;
  font-weight: 700;
  border-radius: 4px;
  transition: all 0.25s ease;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.25);
}

.kg-expand-btn:hover .kg-btn-icon,
.kg-expand-btn.is-expanded .kg-btn-icon {
  background: var(--color-saffron);
  color: #FFFFFF;
}

.kg-btn-text {
  font-family: var(--font-sans);
  font-size: 0.84rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--color-gold-light);
  transition: color 0.2s ease;
}

.kg-expand-btn:hover .kg-btn-text {
  color: #FFFFFF;
}

.kg-venue-meta {
  font-size: 0.8rem;
  color: rgba(248, 243, 233, 0.75);
  display: inline-flex;
  align-items: center;
}

/* --------------------------------------------------------------------------
   11. Phule@200 & National Youth Conference Section
   -------------------------------------------------------------------------- */
.bicentenary-section {
  background: linear-gradient(140deg, #1f1b1c 0%, #2e1017 50%, #460f19 100%);
  color: var(--color-ivory);
  position: relative;
  border-top: 3px double var(--color-gold);
  border-bottom: 3px double var(--color-gold);
}

.theme-pill {
  background: rgba(248, 243, 233, 0.08);
  border: 1px solid rgba(199, 161, 90, 0.35);
  color: var(--color-ivory);
  padding: 0.6rem 1rem;
  border-radius: 3px;
  font-size: 0.95rem;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  transition: all var(--transition-fast);
}

.theme-pill:hover {
  background: rgba(199, 161, 90, 0.2);
  border-color: var(--color-gold);
  color: var(--color-gold-light);
}

.theme-pill i {
  color: var(--color-gold);
}

.youth-conference-card {
  background: rgba(37, 59, 101, 0.35);
  border: 1px solid rgba(199, 161, 90, 0.4);
  border-radius: 4px;
  padding: 2.25rem;
  backdrop-filter: blur(6px);
}

.youth-core-question {
  background: rgba(217, 119, 50, 0.15);
  border-left: 4px solid var(--color-saffron);
  padding: 1.25rem 1.5rem;
  margin-top: 1.5rem;
  font-family: var(--font-serif);
  font-size: 1.2rem;
  color: var(--color-gold-light);
}

/* --------------------------------------------------------------------------
   12. Activities Throughout the Festival (15 Categories)
   -------------------------------------------------------------------------- */
/* --------------------------------------------------------------------------
   12. Interactive Pavilions & Forums (Philatelic Postage Stamp Cards)
   -------------------------------------------------------------------------- */
.activities-stamp-section {
  position: relative;
  background-color: var(--color-ivory-light);
  overflow: hidden;
}

.stamp-card-outer {
  position: relative;
  background: #FFFFFF;
  padding: 12px;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.08), 0 2px 6px rgba(107, 23, 38, 0.04);
  transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
  display: flex;
  flex-direction: column;
  margin-bottom: 0.5rem;
}

.stamp-card-outer:hover {
  transform: translateY(-8px) scale(1.01);
  box-shadow: 0 22px 45px rgba(107, 23, 38, 0.16), 0 6px 14px rgba(0, 0, 0, 0.06);
}

/* Authentic Scalloped Perforations along all 4 edges */
.stamp-perf-edge {
  position: absolute;
  pointer-events: none;
  z-index: 4;
}

.stamp-perf-top {
  top: -6px;
  left: 0;
  right: 0;
  height: 12px;
  background: radial-gradient(circle, #FAF7F0 5px, transparent 5.5px) center top / 18px 12px repeat-x;
}

.stamp-perf-bottom {
  bottom: -6px;
  left: 0;
  right: 0;
  height: 12px;
  background: radial-gradient(circle, #FAF7F0 5px, transparent 5.5px) center bottom / 18px 12px repeat-x;
}

.stamp-perf-left {
  top: 0;
  bottom: 0;
  left: -6px;
  width: 12px;
  background: radial-gradient(circle, #FAF7F0 5px, transparent 5.5px) left center / 12px 18px repeat-y;
}

.stamp-perf-right {
  top: 0;
  bottom: 0;
  right: -6px;
  width: 12px;
  background: radial-gradient(circle, #FAF7F0 5px, transparent 5.5px) right center / 12px 18px repeat-y;
}

.stamp-card-inner {
  display: flex;
  flex-direction: column;
  height: 100%;
  background: #FFFFFF;
  border: 1px solid rgba(199, 161, 90, 0.28);
  border-radius: 2px;
  overflow: hidden;
}

/* Stamp Canvas Art Area */
.stamp-canvas {
  position: relative;
  padding: 1.15rem 1.25rem 0.95rem;
  color: #FFFFFF;
  min-height: 170px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  overflow: hidden;
}

.stamp-top-bar {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  position: relative;
  z-index: 2;
  gap: 0.75rem;
  margin-bottom: 0.5rem;
}

.stamp-title-bold {
  font-family: var(--font-sans);
  font-size: 0.88rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  line-height: 1.25;
  flex: 1 1 auto;
  max-width: calc(100% - 145px);
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.35);
}

.stamp-art-badge {
  width: 135px;
  height: 92px;
  border-radius: 8px;
  border: 2px solid rgba(255, 255, 255, 0.75);
  background: rgba(255, 255, 255, 0.2);
  backdrop-filter: blur(4px);
  overflow: hidden;
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.32);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.3s ease, border-color 0.3s ease;
}

.stamp-art-badge img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}

.stamp-card-outer:hover .stamp-art-badge {
  transform: scale(1.08);
  border-color: #FFFFFF;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.45);
}

.stamp-card-outer:hover .stamp-art-badge img {
  transform: scale(1.06);
}

.stamp-value-badge {
  display: none !important;
}

.stamp-art-display {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  position: relative;
  z-index: 2;
  margin: 0.4rem 0;
  margin-top: -30px;
}

.stamp-icon-emblem {
  width: 52px;
  height: 52px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.18);
  backdrop-filter: blur(4px);
  border: 1px solid rgba(255, 255, 255, 0.35);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.6rem;
  color: #FFFFFF;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  transition: transform 0.3s ease;
}

.stamp-card-outer:hover .stamp-icon-emblem {
  transform: scale(1.1) rotate(-3deg);
}

/* Postmark Seal (Removed as requested) */
.stamp-postmark-seal {
  display: none !important;
}

@media (max-width: 440px) {
  .stamp-art-badge {
    width: 110px;
    height: 75px;
  }

  .stamp-title-bold {
    max-width: calc(100% - 120px);
    font-size: 0.82rem;
  }
}

.stamp-bottom-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  opacity: 0.85;
  position: relative;
  z-index: 2;
  border-top: 1px solid rgba(255, 255, 255, 0.2);
  padding-top: 0.45rem;
}

/* 15 Theme Color Palettes */
.stamp-theme-1 {
  background: linear-gradient(135deg, #C84B31 0%, #8E2813 100%);
}

.stamp-theme-2 {
  background: linear-gradient(135deg, #1E3D59 0%, #112233 100%);
}

.stamp-theme-3 {
  background: linear-gradient(135deg, #007788 0%, #064E5B 100%);
}

.stamp-theme-4 {
  background: linear-gradient(135deg, #2D5A27 0%, #173814 100%);
}

.stamp-theme-5 {
  background: linear-gradient(135deg, #82142D 0%, #4E0A1A 100%);
}

.stamp-theme-6 {
  background: linear-gradient(135deg, #1F2937 0%, #0F172A 100%);
}

.stamp-theme-7 {
  background: linear-gradient(135deg, #991B1B 0%, #600E0E 100%);
}

.stamp-theme-8 {
  background: linear-gradient(135deg, #0F4C5C 0%, #082D37 100%);
}

.stamp-theme-9 {
  background: linear-gradient(135deg, #9A3412 0%, #5F1F09 100%);
}

.stamp-theme-10 {
  background: linear-gradient(135deg, #3F6212 0%, #243909 100%);
}

.stamp-theme-11 {
  background: linear-gradient(135deg, #831843 0%, #500C27 100%);
}

.stamp-theme-12 {
  background: linear-gradient(135deg, #581C87 0%, #350F54 100%);
}

.stamp-theme-13 {
  background: linear-gradient(135deg, #881337 0%, #4C091D 100%);
}

.stamp-theme-14 {
  background: linear-gradient(135deg, #27272A 0%, #111113 100%);
}

.stamp-theme-15 {
  background: linear-gradient(135deg, #9C4221 0%, #5C2411 100%);
}

/* Content Section Below Canvas */
.stamp-content-area {
  padding: 1.4rem 1.25rem 1.15rem;
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  background: #FFFFFF;
}

.stamp-activity-title {
  font-family: var(--font-sans);
  font-size: 1.12rem;
  font-weight: 700;
  color: var(--color-maroon);
  margin-bottom: 0.75rem;
  line-height: 1.35;
}

.stamp-activity-desc {
  font-size: 0.92rem;
  color: #4A443E;
  line-height: 1.65;
  margin-bottom: 1.25rem;
  flex-grow: 1;
  text-align: justify;
  text-justify: inter-word;
  text-align-last: left;
}

.stamp-card-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 0.85rem;
  border-top: 1px dashed rgba(199, 161, 90, 0.35);
  font-size: 0.78rem;
  font-weight: 600;
}

.stamp-badge-pill {
  color: var(--color-maroon);
  background: var(--color-ivory-dark);
  padding: 0.25rem 0.65rem;
  border-radius: 100px;
  border: 1px solid rgba(199, 161, 90, 0.3);
  display: inline-flex;
  align-items: center;
}

.stamp-badge-pill i {
  color: var(--color-saffron);
}

.stamp-action-hint {
  color: var(--color-gold);
  font-weight: 700;
  transition: all 0.25s ease;
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
}

.stamp-card-outer:hover .stamp-action-hint {
  color: var(--color-maroon);
  transform: translateX(3px);
}

/* ==========================================================================
   Mobile Horizontal Carousel for Festival Activities & Stamp Cards (< 768px)
   ========================================================================== */
.activities-mobile-carousel-controls {
  display: none;
}

@media (max-width: 767.98px) {

  #activities .row,
  #activitiesGrid {
    position: relative !important;
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    scroll-snap-type: x mandatory !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: none !important;
    -ms-overflow-style: none !important;
    padding: 0.75rem 1rem 1.35rem 1rem !important;
    margin-left: -0.75rem !important;
    margin-right: -0.75rem !important;
    gap: 1.15rem !important;
    justify-content: flex-start !important;
  }

  #activities .row::-webkit-scrollbar,
  #activitiesGrid::-webkit-scrollbar {
    display: none !important;
  }

  #activities .row>[class*="col-"],
  #activitiesGrid>[class*="col-"] {
    flex: 0 0 84% !important;
    max-width: 335px !important;
    min-width: 275px !important;
    scroll-snap-align: center !important;
    scroll-snap-stop: normal !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    display: flex !important;
  }

  .stamp-card-outer {
    height: 100% !important;
    width: 100% !important;
    margin-bottom: 0 !important;
  }

  .stamp-card-inner {
    height: 100% !important;
    display: flex !important;
    flex-direction: column !important;
  }

  .stamp-content-area {
    flex-grow: 1 !important;
    display: flex !important;
    flex-direction: column !important;
  }

  .stamp-activity-desc {
    flex-grow: 1 !important;
  }

  /* Activities Mobile Carousel Navigation Controls */
  .activities-mobile-carousel-controls {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-top: 1rem;
    margin-bottom: 0.5rem;
    gap: 0.6rem;
  }

  .activities-carousel-nav-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.85rem;
  }

  .activities-carousel-arrow-btn {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #FFFFFF;
    border: 1.5px solid var(--color-gold);
    color: var(--color-maroon);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.95rem;
    cursor: pointer;
    box-shadow: 0 4px 12px rgba(107, 23, 38, 0.12);
    transition: all var(--transition-fast);
  }

  .activities-carousel-arrow-btn:active {
    background: var(--color-maroon);
    color: var(--color-gold-light);
    transform: scale(0.92);
  }

  .activities-carousel-arrow-btn:disabled,
  .activities-carousel-arrow-btn[aria-disabled="true"] {
    opacity: 0.35;
    pointer-events: none;
  }

  .activities-carousel-progress-track {
    width: 130px;
    height: 6px;
    background: rgba(199, 161, 90, 0.25);
    border-radius: 999px;
    overflow: hidden;
    position: relative;
  }

  .activities-carousel-progress-bar {
    height: 100%;
    width: 15%;
    background: linear-gradient(90deg, var(--color-saffron) 0%, var(--color-gold) 100%);
    border-radius: 999px;
    transition: width 0.2s ease;
  }

  .activities-carousel-counter-badge {
    font-family: var(--font-sans);
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--color-maroon);
    background: rgba(199, 161, 90, 0.18);
    border: 1px solid rgba(199, 161, 90, 0.4);
    padding: 2px 10px;
    border-radius: 12px;
    min-width: 58px;
    text-align: center;
  }

  .activities-carousel-hint {
    font-size: 0.8rem;
    color: #6c757d;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
  }
}

/* --------------------------------------------------------------------------
   13. Who Should Participate (4 Thematic Pillars)
   -------------------------------------------------------------------------- */
.participant-pillar-card {
  background: #FFFFFF;
  border: 1px solid rgba(199, 161, 90, 0.35);
  border-radius: 12px;
  padding: 1.75rem;
  height: 100%;
  display: flex;
  flex-direction: column;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.04);
  transition: transform 0.35s ease, box-shadow 0.35s ease, border-color 0.35s ease;
  position: relative;
  overflow: hidden;
}

.participant-pillar-card:hover {
  transform: translateY(-5px);
  border-color: var(--color-saffron);
  box-shadow: 0 14px 32px rgba(107, 23, 38, 0.12);
}

.participant-pillar-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--color-maroon), var(--color-saffron));
}

.participant-pillar-header {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 0.85rem;
}

.participant-pillar-icon {
  width: 52px;
  height: 52px;
  border-radius: 10px;
  background: rgba(107, 23, 38, 0.08);
  border: 1px solid rgba(107, 23, 38, 0.15);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.45rem;
  color: var(--color-maroon);
  flex-shrink: 0;
}

.participant-pillar-card:hover .participant-pillar-icon {
  background: var(--color-maroon);
  color: var(--color-ivory-light);
}

.participant-pillar-title {
  font-size: 1.18rem;
  font-weight: 700;
  color: var(--color-maroon);
  font-family: var(--font-heading);
  margin-bottom: 0.15rem;
  line-height: 1.3;
}

.participant-pillar-subtitle {
  font-size: 0.78rem;
  color: var(--color-saffron-dark);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.participant-pillar-desc {
  font-size: 0.88rem;
  line-height: 1.55;
  color: var(--color-charcoal-muted);
  margin-bottom: 1.25rem;
}

.participant-tags-wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: auto;
}

.participant-tag {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  background: var(--color-ivory);
  border: 1px solid rgba(199, 161, 90, 0.45);
  padding: 0.4rem 0.8rem;
  border-radius: 6px;
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--color-charcoal);
  transition: all 0.2s ease;
}

.participant-tag i {
  color: var(--color-saffron);
  font-size: 0.9rem;
}

.participant-tag:hover {
  background: var(--color-maroon);
  color: #FFFFFF;
  border-color: var(--color-maroon);
}

.participant-tag:hover i {
  color: var(--color-gold-light);
}

.participant-item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  background-color: var(--color-white);
  border: 1px solid rgba(199, 161, 90, 0.3);
  padding: 0.9rem 1.2rem;
  border-radius: 4px;
  font-size: 0.95rem;
  font-weight: 500;
  color: var(--color-charcoal);
  transition: all var(--transition-fast);
}

.participant-item:hover {
  border-color: var(--color-maroon);
  background-color: var(--color-ivory-light);
  transform: translateX(4px);
}

.participant-item i {
  color: var(--color-saffron);
  font-size: 1.1rem;
  flex-shrink: 0;
}

/* --------------------------------------------------------------------------
   14. Where Ideas Meet Experiences (Redesigned Dialectic Pavilion)
   -------------------------------------------------------------------------- */
.encounters-section {
  background: linear-gradient(135deg, #1b090e 0%, #2b0c14 40%, #17070b 100%);
  color: var(--color-ivory);
  border-top: 3px double var(--color-gold);
  border-bottom: 3px double var(--color-gold);
  position: relative;
}

.encounters-ambient-glow {
  position: absolute;
  top: 25%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 650px;
  height: 420px;
  background: radial-gradient(circle, rgba(217, 119, 50, 0.16) 0%, transparent 70%);
  filter: blur(80px);
  pointer-events: none;
}

.encounter-card {
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(199, 161, 90, 0.28);
  border-radius: 8px;
  padding: 1.5rem;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  backdrop-filter: blur(10px);
  transition: all var(--transition-smooth);
  position: relative;
  overflow: hidden;
}

.encounter-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, transparent, var(--color-gold), transparent);
  opacity: 0;
  transition: opacity var(--transition-fast);
}

.encounter-card:hover {
  transform: translateY(-5px);
  border-color: var(--color-gold);
  background: rgba(255, 255, 255, 0.07);
  box-shadow: 0 16px 36px rgba(0, 0, 0, 0.45), 0 0 20px rgba(199, 161, 90, 0.15);
}

.encounter-card:hover::before {
  opacity: 1;
}

.encounter-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1.25rem;
}

.encounter-num {
  font-family: var(--font-heading);
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--color-gold);
  letter-spacing: 0.05em;
  background: rgba(199, 161, 90, 0.12);
  padding: 0.2rem 0.55rem;
  border-radius: 4px;
  border: 1px solid rgba(199, 161, 90, 0.25);
}

.encounter-theme-badge {
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgba(248, 243, 233, 0.7);
}

.encounter-theme-badge.badge-gold {
  color: var(--color-gold-light);
}

.encounter-nodes {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  margin-bottom: 1.25rem;
}

.node-item {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  background: rgba(0, 0, 0, 0.25);
  border: 1px solid rgba(248, 243, 233, 0.08);
  border-radius: 6px;
  padding: 0.65rem 0.85rem;
  transition: all var(--transition-fast);
}

.encounter-card:hover .node-item {
  border-color: rgba(199, 161, 90, 0.3);
  background: rgba(0, 0, 0, 0.35);
}

.node-icon {
  width: 32px;
  height: 32px;
  border-radius: 6px;
  background: rgba(107, 23, 38, 0.6);
  color: var(--color-gold-light);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  flex-shrink: 0;
  border: 1px solid rgba(199, 161, 90, 0.3);
}

.node-icon.icon-gold {
  background: rgba(217, 119, 50, 0.3);
  color: var(--color-gold-light);
  border-color: var(--color-gold);
}

.node-label {
  font-family: var(--font-heading);
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--color-ivory);
}

.encounter-bridge {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.2rem 0;
}

.bridge-track {
  position: absolute;
  left: 24px;
  top: 0;
  bottom: 0;
  width: 2px;
  background: linear-gradient(180deg, var(--color-saffron), var(--color-gold));
  opacity: 0.45;
  z-index: 1;
}

.bridge-pulse {
  background: var(--color-maroon-dark);
  border: 1px solid var(--color-gold);
  color: var(--color-gold-light);
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding: 0.15rem 0.65rem;
  border-radius: 100px;
  z-index: 2;
  position: relative;
  box-shadow: 0 0 10px rgba(199, 161, 90, 0.2);
}

.bridge-pulse.pulse-gold {
  background: var(--color-saffron);
  color: #fff;
  border-color: var(--color-gold-light);
}

.encounter-footer {
  border-top: 1px solid rgba(248, 243, 233, 0.08);
  padding-top: 0.85rem;
}

.encounter-statement {
  font-family: var(--font-heading);
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--color-gold-light);
  margin: 0;
  line-height: 1.4;
  text-align: left !important;
  text-align-last: left !important;
}

/* Featured 07 Card */
.encounter-card-featured {
  background: linear-gradient(135deg, rgba(107, 23, 38, 0.45) 0%, rgba(34, 32, 31, 0.55) 100%);
  border: 1.5px solid var(--color-gold);
  padding: 2rem;
}

.nodes-horizontal {
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 1.25rem;
  margin-bottom: 0;
}

.nodes-horizontal .node-item {
  flex: 1;
  padding: 0.85rem 1.25rem;
}

.bridge-wide {
  flex-direction: row;
}

.bridge-wide .bridge-track {
  left: 0;
  right: 0;
  top: 50%;
  bottom: auto;
  width: 100%;
  height: 2px;
  background: linear-gradient(90deg, var(--color-saffron), var(--color-gold));
}

.featured-statement-tag {
  display: inline-block;
  font-family: var(--font-heading);
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--color-gold-light);
  font-style: italic;
  padding: 0.75rem 1.25rem;
  border-radius: 6px;
  background: rgba(0, 0, 0, 0.4);
  border: 1px solid rgba(199, 161, 90, 0.35);
}

/* Concluding Quote Pavilion */
.encounters-quote-pavilion {
  background: linear-gradient(145deg, rgba(34, 32, 31, 0.8) 0%, rgba(47, 10, 17, 0.88) 100%);
  border: 1.5px solid rgba(199, 161, 90, 0.45) !important;
  position: relative;
  backdrop-filter: blur(8px);
}

.quote-ornament-icon {
  font-size: 3rem;
  line-height: 1;
  color: var(--color-gold);
  opacity: 0.9;
}

.encounters-quote-text {
  font-family: var(--font-heading);
  font-size: clamp(1.15rem, 2.2vw, 1.45rem);
  font-weight: 600;
  color: var(--color-ivory);
  line-height: 1.6;
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
  text-align: center !important;
  text-align-last: center !important;
}

.quote-author-pill {
  background: rgba(0, 0, 0, 0.4);
  border: 1px solid rgba(199, 161, 90, 0.35);
  border-radius: 100px;
  padding: 0.4rem 1rem;
  font-size: 0.85rem;
  color: var(--color-gold-light);
  font-weight: 600;
  letter-spacing: 0.03em;
}

@media (max-width: 991.98px) {
  .nodes-horizontal {
    flex-direction: column;
  }

  .bridge-wide .bridge-track {
    display: none;
  }
}

/* --------------------------------------------------------------------------
   15. Towards Phule@200 (6 Questions)
   -------------------------------------------------------------------------- */
.question-card-rich {
  background: var(--color-white);
  border: 1px solid rgba(199, 161, 90, 0.35);
  border-left: 4px solid var(--color-maroon);
  border-radius: 8px;
  padding: 1.25rem 1.4rem;
  height: 100%;
  display: flex;
  align-items: center;
  gap: 1.15rem;
  box-shadow: 0 4px 14px rgba(107, 23, 38, 0.04);
  transition: transform 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
}

.question-card-rich:hover {
  transform: translateY(-3px);
  border-left-color: var(--color-saffron);
  border-color: rgba(224, 138, 46, 0.6);
  box-shadow: 0 8px 24px rgba(107, 23, 38, 0.1);
  background-color: var(--color-ivory-light);
}

.question-num-badge {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(107, 23, 38, 0.08);
  color: var(--color-maroon);
  font-weight: 800;
  font-size: 0.85rem;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-family: var(--font-heading);
  transition: all 0.25s ease;
}

.question-card-rich:hover .question-num-badge {
  background: var(--color-maroon);
  color: var(--color-ivory-light);
  transform: scale(1.05);
}

.question-text {
  font-family: var(--font-serif);
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--color-maroon-dark);
  line-height: 1.45;
  margin: 0;
}

/* --------------------------------------------------------------------------
   16. Registration Section Banner & Popup Modal
   -------------------------------------------------------------------------- */
.registration-cta-section {
  background: linear-gradient(180deg, #FDFBF7 0%, #F5EFEB 100%);
  border-top: 1px solid rgba(199, 161, 90, 0.35);
  border-bottom: 1px solid rgba(199, 161, 90, 0.35);
  position: relative;
}

.registration-banner-card {
  background: var(--color-white);
  border: 1px solid rgba(199, 161, 90, 0.5);
  border-radius: 12px;
  box-shadow: 0 15px 40px rgba(107, 23, 38, 0.08);
  overflow: hidden;
  transition: transform var(--transition-smooth), box-shadow var(--transition-smooth);
}

.registration-banner-card:hover {
  box-shadow: 0 20px 45px rgba(107, 23, 38, 0.12);
}

.registration-banner-img-col {
  min-height: 380px;
  background-color: var(--color-maroon-dark);
  position: relative;
  overflow: hidden;
}

.registration-banner-img {
  width: 100%;
  height: 100%;
  min-height: 380px;
  object-fit: cover;
  object-position: center top;
  display: block;
  transition: transform 0.6s ease;
}

.registration-banner-card:hover .registration-banner-img {
  transform: scale(1.03);
}

.registration-banner-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(79, 14, 26, 0.94) 0%, rgba(79, 14, 26, 0.5) 50%, rgba(79, 14, 26, 0.15) 100%);
  pointer-events: none;
}

.registration-banner-badge-wrapper {
  z-index: 2;
}

.registration-info-icon {
  width: 44px;
  height: 44px;
  border-radius: 8px;
  background: rgba(107, 23, 38, 0.08);
  color: var(--color-maroon);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.25rem;
  flex-shrink: 0;
}

/* Registration Modal Popup Styles */
.registration-modal-dialog {
  max-width: 640px;
}

.registration-modal-content {
  border-radius: 14px;
  border: 1px solid rgba(199, 161, 90, 0.5);
  box-shadow: 0 25px 60px rgba(0, 0, 0, 0.4);
  background-color: var(--color-white);
  overflow: hidden;
}

.registration-modal-visual {
  background: linear-gradient(165deg, #4F0E1A 0%, #6B1726 45%, #2B070E 100%);
  color: var(--color-ivory);
  position: relative;
  overflow: hidden;
  border-right: 1px solid rgba(199, 161, 90, 0.3);
}

.registration-visual-overlay {
  position: absolute;
  inset: 0;
  background-image: radial-gradient(rgba(199, 161, 90, 0.15) 1px, transparent 1px);
  background-size: 18px 18px;
  opacity: 0.6;
  pointer-events: none;
}

.modal-brand-mark {
  width: 38px;
  height: auto;
  filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.3));
}

.modal-portrait-card,
.modal-event-card {
  background: rgba(255, 255, 255, 0.07);
  border: 1.5px solid rgba(212, 175, 55, 0.45);
  border-radius: 14px;
  padding: 0.65rem;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.45);
}

.modal-event-frame {
  position: relative;
  border-radius: 10px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.15);
}

.modal-event-img {
  width: 100%;
  height: 190px;
  object-fit: cover;
  object-position: center 35%;
  display: block;
  transition: transform 0.4s ease;
}

.modal-event-card:hover .modal-event-img {
  transform: scale(1.04);
}

.modal-event-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.05) 0%, rgba(20, 5, 8, 0.85) 100%);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 0.85rem 1rem;
}

.modal-event-tag {
  font-family: var(--font-serif);
  font-size: 0.95rem;
  font-weight: 600;
  color: #FFF2A8;
  text-shadow: 0 2px 6px rgba(0, 0, 0, 0.9);
  line-height: 1.25;
}

.modal-event-sub {
  font-size: 0.76rem;
  color: #F0EAE1;
  opacity: 0.9;
  margin-top: 0.15rem;
}

.modal-portrait-frame {
  width: 130px;
  height: 130px;
  border-radius: 50%;
  border: 3px solid var(--color-gold);
  overflow: hidden;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.45);
}

.modal-portrait-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  display: block;
}

.modal-meta-list {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}

.modal-meta-item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  font-size: 0.88rem;
  color: var(--color-ivory);
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.12);
  padding: 0.5rem 0.8rem;
  border-radius: 6px;
}

.modal-meta-item i {
  font-size: 1.05rem;
}

.modal-quote {
  font-family: var(--font-serif);
  font-size: 0.92rem;
  font-style: italic;
  color: var(--color-gold-light);
  line-height: 1.5;
  border-left: 3px solid var(--color-gold);
  padding-left: 0.85rem;
  margin: 0;
}

.modal-org-thumb {
  width: 32px;
  height: 32px;
  object-fit: contain;
  background: white;
  border-radius: 50%;
  padding: 2px;
}

.registration-modal-dialog {
  max-width: 640px;
}

.registration-modal-form-col {
  background-color: var(--color-white);
  overflow-y: visible;
  padding: 1.5rem 1.75rem 1.25rem !important;
}

/* Floating labels for modal form */
.registration-modal-form-col .form-floating {
  position: relative;
}

.registration-modal-form-col .form-floating>.form-control,
.registration-modal-form-col .form-floating>.form-select {
  height: 46px;
  min-height: 46px;
  line-height: 1.25;
  padding: 1rem 0.8rem 0.25rem 0.8rem;
  font-size: 0.88rem;
  border-radius: 8px;
  border: 1px solid rgba(107, 23, 38, 0.22);
  background-color: #FAFAF8;
  color: var(--color-charcoal);
  transition: border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

.registration-modal-form-col .form-floating>.form-control:focus,
.registration-modal-form-col .form-floating>.form-select:focus {
  border-color: var(--color-maroon);
  background-color: #FFFFFF;
  box-shadow: 0 0 0 3px rgba(107, 23, 38, 0.12);
}

.registration-modal-form-col .form-floating>label {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  padding: 0.78rem 0.8rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  pointer-events: none;
  font-size: 0.84rem;
  color: #787168;
  transform-origin: 0 0;
  transition: opacity 0.2s ease-in-out, transform 0.2s ease-in-out, color 0.2s ease-in-out;
}

/* Remove Bootstrap default white label::after rectangle that cuts into the border */
.registration-modal-form-col .form-floating>label::after {
  display: none !important;
  background-color: transparent !important;
}

.registration-modal-form-col .form-floating>.form-control:focus~label,
.registration-modal-form-col .form-floating>.form-control:not(:placeholder-shown)~label,
.registration-modal-form-col .form-floating>.form-select~label {
  opacity: 1;
  color: var(--color-maroon);
  font-weight: 600;
  transform: scale(0.75) translateY(-0.52rem) translateX(0.1rem);
}

.registration-modal-form-col .form-floating>.form-control::placeholder {
  color: transparent;
}

.registration-modal-form-col .form-floating .invalid-feedback {
  font-size: 0.72rem;
  margin-top: 0.1rem;
  padding-left: 0.2rem;
}

@media (max-width: 991.98px) {
  .registration-banner-img-col {
    min-height: 260px;
  }

  .registration-banner-img {
    min-height: 260px;
  }

  .registration-modal-visual {
    border-right: none;
    border-bottom: 1px solid rgba(199, 161, 90, 0.3);
  }

  .modal-portrait-frame {
    width: 96px;
    height: 96px;
  }

  .registration-modal-form-col {
    overflow-y: auto;
    max-height: 85vh;
  }
}

.registration-container {
  background-color: var(--color-white);
  border: 1px solid var(--color-gold);
  box-shadow: 0 15px 40px rgba(107, 23, 38, 0.08);
  border-radius: 6px;
  padding: 2.75rem;
  position: relative;
}

@media (max-width: 767.98px) {
  .registration-container {
    padding: 1.5rem 1.25rem;
  }
}

.form-label {
  font-family: var(--font-sans);
  font-weight: 600;
  font-size: 0.95rem;
  color: var(--color-charcoal);
  margin-bottom: 0.4rem;
}

.form-label .req-star {
  color: #DC3545;
  margin-left: 2px;
}

.form-control,
.form-select {
  border: 1px solid #D5CEBF;
  background-color: var(--color-ivory-light);
  border-radius: 4px;
  padding: 0.75rem 1rem;
  font-size: 1rem;
  color: var(--color-charcoal);
  transition: all var(--transition-fast);
}

.form-control:focus,
.form-select:focus {
  border-color: var(--color-maroon);
  background-color: var(--color-white);
  box-shadow: 0 0 0 3px rgba(107, 23, 38, 0.15);
  outline: none;
}

.form-control.is-invalid,
.form-select.is-invalid {
  border-color: #DC3545;
  background-image: none;
}

.invalid-feedback {
  font-size: 0.85rem;
  font-weight: 500;
  color: #DC3545;
  margin-top: 0.35rem;
}

.form-hint {
  font-size: 0.82rem;
  color: var(--color-muted);
  margin-top: 0.3rem;
}

.privacy-notice-box {
  background-color: var(--color-ivory-dark);
  border: 1px solid rgba(199, 161, 90, 0.5);
  border-radius: 4px;
  padding: 1rem 1.25rem;
  font-size: 0.88rem;
  color: var(--color-charcoal);
  margin-top: 1.5rem;
}

/* --------------------------------------------------------------------------
   17. Official YouTube Media Banner
   -------------------------------------------------------------------------- */
.youtube-media-section {
  background: linear-gradient(135deg, #181717 0%, #2A1117 100%);
  color: var(--color-ivory);
  border-top: 1px solid var(--color-gold);
  border-bottom: 1px solid var(--color-gold);
  padding: 3.5rem 0;
}

.youtube-channel-box {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(199, 161, 90, 0.3);
  border-radius: 6px;
  padding: 2rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  flex-wrap: wrap;
}

/* --------------------------------------------------------------------------
   18. Venue Section
   -------------------------------------------------------------------------- */
.venue-details-card {
  background-color: var(--color-white);
  border: 1px solid var(--color-gold);
  border-radius: 4px;
  padding: 2.25rem;
  height: 100%;
}

.venue-meta-item {
  display: flex;
  gap: 1rem;
  margin-bottom: 1.5rem;
}

.venue-meta-icon {
  width: 44px;
  height: 44px;
  border-radius: 4px;
  background-color: rgba(107, 23, 38, 0.08);
  border: 1px solid var(--color-gold);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-maroon);
  font-size: 1.25rem;
  flex-shrink: 0;
}

/* Venue Map Header & View Switcher */
.venue-map-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 0.65rem;
}

.venue-map-title {
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--color-maroon);
  font-family: var(--font-heading);
  white-space: nowrap;
}

.venue-map-switcher {
  display: inline-flex;
}

.venue-map-switcher .btn {
  white-space: nowrap;
  font-size: 0.82rem;
  padding: 0.35rem 0.85rem;
  font-weight: 600;
}

.btn-outline-maroon {
  background-color: transparent;
  border: 1px solid var(--color-maroon);
  color: var(--color-maroon);
  transition: all var(--transition-fast);
}

.btn-outline-maroon:hover,
.btn-outline-maroon:focus,
.btn-outline-maroon.active {
  background-color: var(--color-maroon);
  border-color: var(--color-maroon);
  color: var(--color-ivory) !important;
}

@media (max-width: 575.98px) {
  .venue-map-header {
    flex-direction: column;
    align-items: stretch !important;
    gap: 0.5rem;
    margin-bottom: 0.65rem;
  }

  .venue-map-title {
    white-space: normal;
    font-size: 0.86rem;
  }

  .venue-map-switcher {
    width: 100%;
    display: flex;
  }

  .venue-map-switcher .btn {
    flex: 1 1 50%;
    text-align: center;
    padding: 0.45rem 0.5rem;
    font-size: 0.78rem;
    white-space: nowrap;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
}

.map-container {
  border-radius: 4px;
  overflow: hidden;
  border: 1px solid var(--color-gold);
  box-shadow: var(--shadow-card);
  height: 100%;
  min-height: 380px;
}

.map-container iframe {
  width: 100%;
  height: 100%;
  min-height: 380px;
  border: 0;
}

/* --------------------------------------------------------------------------
   19. Final CTA
   -------------------------------------------------------------------------- */
.final-cta-section {
  position: relative;
  background:
    linear-gradient(180deg, rgba(27, 8, 14, 0.78) 0%, rgba(79, 14, 26, 0.68) 50%, rgba(20, 5, 10, 0.85) 100%),
    url('../images/festival-cta-bg.jpg') center center / cover no-repeat;
  color: var(--color-ivory);
  padding: 6.5rem 0;
  border-top: 3px double var(--color-gold);
  border-bottom: 3px double var(--color-gold);
  overflow: hidden;
}

.final-cta-section::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at center, rgba(217, 119, 50, 0.15) 0%, rgba(15, 3, 6, 0.55) 100%);
  pointer-events: none;
  z-index: 1;
}

.final-cta-section .container-xl {
  position: relative;
  z-index: 2;
}

.final-cta-details-box {
  max-width: 820px;
  background: rgba(26, 6, 12, 0.72);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 1.5px solid rgba(199, 161, 90, 0.45);
  border-radius: 12px;
  padding: 1.5rem 1.75rem;
  margin: 1.75rem auto;
  box-shadow: 0 16px 36px rgba(0, 0, 0, 0.5);
}


/* --------------------------------------------------------------------------
   20. Footer
   -------------------------------------------------------------------------- */
.festival-footer {
  background-color: #d52b1e;
  color: rgba(255, 255, 255, 0.85);
  padding: 4rem 0 2rem;
  font-size: 0.95rem;
  border-top: 1px solid var(--color-gold);
}

.festival-footer .text-muted {
  color: rgba(255, 255, 255, 0.8) !important;
}

.footer-heading {
  font-family: var(--font-serif);
  color: #FFF2A8;
  font-size: 1.15rem;
  margin-bottom: 1.25rem;
  position: relative;
  padding-bottom: 0.5rem;
}

.footer-heading::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 35px;
  height: 2px;
  background-color: #FFF2A8;
}

.footer-links {
  list-style: none;
  padding: 0;
  margin: 0;
}

.footer-links li {
  margin-bottom: 0.6rem;
}

.footer-links a {
  color: rgba(255, 255, 255, 0.9);
  transition: all var(--transition-fast);
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
}

.footer-links a:hover {
  color: #FFF2A8;
  transform: translateX(3px);
}

.footer-brand-logo {
  height: 64px;
  width: auto;
  background: #ffffff;
  padding: 4px;
  border-radius: 6px;
  object-fit: contain;
}

.footer-brand-divider {
  display: inline-block;
  width: 1px;
  height: 48px;
  background: rgba(255, 255, 255, 0.35);
}

.footer-bottom {
  margin-top: 3rem;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(255, 255, 255, 0.2);
  font-size: 0.88rem;
}

.footer-bottom a {
  color: #FFF2A8;
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: color var(--transition-fast);
}

.footer-bottom a:hover {
  color: #FFFFFF;
}

/* White Outline YouTube Channel Button */
.btn-footer-youtube {
  background-color: transparent;
  border: 1.5px solid rgba(255, 255, 255, 0.9);
  color: #FFFFFF !important;
  border-radius: 100px;
  padding: 0.45rem 1.15rem;
  font-weight: 600;
  font-size: 0.88rem;
  transition: all var(--transition-fast);
}

.btn-footer-youtube i {
  color: #FFFFFF !important;
  transition: color var(--transition-fast);
}

.btn-footer-youtube:hover {
  background-color: #FFFFFF;
  color: #CC181E !important;
  border-color: #FFFFFF;
  transform: translateY(-2px);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.25);
}

.btn-footer-youtube:hover i {
  color: #CC181E !important;
}

/* --------------------------------------------------------------------------
   21. Animations & Micro-interactions (Comprehensive Site Animation Engine)
   -------------------------------------------------------------------------- */

/* Top Reading Scroll Progress Bar */
.scroll-progress-bar {
  position: fixed;
  top: 0;
  left: 0;
  height: 3.5px;
  width: 0%;
  background: linear-gradient(90deg, var(--color-gold) 0%, var(--color-saffron) 50%, var(--color-maroon) 100%);
  z-index: 1060;
  box-shadow: 0 0 10px rgba(226, 92, 39, 0.65), 0 0 4px rgba(199, 161, 90, 0.8);
  transition: width 0.08s ease-out;
  pointer-events: none;
}

/* Base Scroll Reveal Animation */
.site-animate,
.fade-up-element {
  opacity: 0;
  transform: translateY(28px);
  filter: blur(2px);
  transition: opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1),
    transform 0.7s cubic-bezier(0.16, 1, 0.3, 1),
    filter 0.7s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}

.site-animate.in-view,
.fade-up-element.in-view {
  opacity: 1;
  transform: translateY(0);
  filter: blur(0);
}

/* Stagger Utilities */
.stagger-1 {
  transition-delay: 0.08s !important;
}

.stagger-2 {
  transition-delay: 0.16s !important;
}

.stagger-3 {
  transition-delay: 0.24s !important;
}

.stagger-4 {
  transition-delay: 0.32s !important;
}

.stagger-5 {
  transition-delay: 0.40s !important;
}

.stagger-6 {
  transition-delay: 0.48s !important;
}

/* --------------------------------------------------------------------------
   Hero Dynamic Sequence Animations
   -------------------------------------------------------------------------- */
@keyframes heroFadeDown {
  0% {
    opacity: 0;
    transform: translateY(-24px);
    filter: blur(4px);
  }

  100% {
    opacity: 1;
    transform: translateY(0);
    filter: blur(0);
  }
}

@keyframes heroFadeUp {
  0% {
    opacity: 0;
    transform: translateY(32px) scale(0.98);
    filter: blur(4px);
  }

  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
    filter: blur(0);
  }
}

@keyframes heroScaleIn {
  0% {
    opacity: 0;
    transform: scale(0.92);
    filter: blur(6px);
  }

  100% {
    opacity: 1;
    transform: scale(1);
    filter: blur(0);
  }
}

@keyframes portraitFloat {

  0%,
  100% {
    transform: translateY(0);
  }

  50% {
    transform: translateY(-8px);
  }
}

@keyframes ambientPulseGlow {

  0%,
  100% {
    box-shadow: 0 20px 45px rgba(0, 0, 0, 0.4), 0 0 25px rgba(199, 161, 90, 0.25);
  }

  50% {
    box-shadow: 0 24px 55px rgba(0, 0, 0, 0.5), 0 0 45px rgba(226, 92, 39, 0.35);
  }
}

.hero-animate-ready .eyebrow {
  animation: heroFadeDown 0.8s cubic-bezier(0.16, 1, 0.3, 1) both;
}

.hero-animate-ready .hero-main-title {
  animation: heroFadeUp 0.9s cubic-bezier(0.16, 1, 0.3, 1) 0.12s both;
}

.hero-animate-ready .hero-supporting-title {
  animation: heroFadeUp 0.85s cubic-bezier(0.16, 1, 0.3, 1) 0.22s both;
}

.hero-animate-ready .hero-tagline {
  animation: heroFadeUp 0.85s cubic-bezier(0.16, 1, 0.3, 1) 0.32s both;
}

.hero-animate-ready .hero-info-badge {
  animation: heroFadeUp 0.8s cubic-bezier(0.16, 1, 0.3, 1) 0.42s both;
}

.hero-animate-ready .btn-hero {
  animation: heroFadeUp 0.85s cubic-bezier(0.16, 1, 0.3, 1) 0.52s both;
}

.hero-animate-ready .portrait-editorial-card {
  animation: heroScaleIn 1s cubic-bezier(0.16, 1, 0.3, 1) 0.25s both,
    portraitFloat 6s ease-in-out 1.25s infinite alternate,
    ambientPulseGlow 4s ease-in-out 1.25s infinite;
}

/* --------------------------------------------------------------------------
   Button Shimmer & Ripple Micro-interactions
   -------------------------------------------------------------------------- */
.btn-saffron,
.btn-hero,
.kg-btn-register {
  position: relative;
  overflow: hidden;
  transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1),
    box-shadow 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}

.btn-saffron::after,
.btn-hero::after,
.kg-btn-register::after {
  content: '';
  position: absolute;
  top: -50%;
  left: -70%;
  width: 45%;
  height: 200%;
  background: linear-gradient(90deg,
      rgba(255, 255, 255, 0) 0%,
      rgba(255, 255, 255, 0.32) 50%,
      rgba(255, 255, 255, 0) 100%);
  transform: rotate(25deg);
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.2s ease;
}

.btn-saffron:hover::after,
.btn-hero:hover::after,
.kg-btn-register:hover::after {
  opacity: 1;
  animation: buttonSweep 1.1s cubic-bezier(0.16, 1, 0.3, 1);
}

@keyframes buttonSweep {
  0% {
    left: -70%;
  }

  100% {
    left: 140%;
  }
}

.btn-ripple-wave {
  position: absolute;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.5);
  transform: scale(0);
  animation: rippleExpand 0.6s ease-out;
  pointer-events: none;
}

@keyframes rippleExpand {
  to {
    transform: scale(3.5);
    opacity: 0;
  }
}

/* --------------------------------------------------------------------------
   Interactive Elevation & Physics for Cards
   -------------------------------------------------------------------------- */
.about-pillar-card,
.objective-card-rich,
.kg-schedule-card,
.stamp-card-outer,
.encounter-card,
.info-strip-card,
.venue-feature-card {
  transition: transform 0.38s cubic-bezier(0.16, 1, 0.3, 1),
    box-shadow 0.38s cubic-bezier(0.16, 1, 0.3, 1),
    border-color 0.38s cubic-bezier(0.16, 1, 0.3, 1);
}

.about-pillar-card:hover,
.objective-card-rich:hover,
.kg-schedule-card:hover,
.stamp-card-outer:hover,
.encounter-card:hover,
.venue-feature-card:hover {
  transform: translateY(-8px) scale(1.01);
}

.info-strip-card:hover {
  transform: translateY(-4px);
}

/* Icon rotation and scale micro-interaction */
.about-pillar-card:hover .about-pillar-icon,
.objective-card-rich:hover .objective-icon-wrapper,
.info-strip-card:hover .info-strip-icon {
  transform: scale(1.1) rotate(-3deg);
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

/* Section Header Accent Line Expand Animation */
.section-title {
  position: relative;
  transition: transform 0.35s ease;
}

.section-header.in-view .eyebrow {
  animation: heroFadeDown 0.6s cubic-bezier(0.16, 1, 0.3, 1) both;
}

.section-header.in-view .section-title {
  animation: heroFadeUp 0.7s cubic-bezier(0.16, 1, 0.3, 1) 0.08s both;
}

.section-header.in-view .section-subtitle {
  animation: heroFadeUp 0.7s cubic-bezier(0.16, 1, 0.3, 1) 0.16s both;
}

/* Accessibility: Reduced motion */
@media (prefers-reduced-motion: reduce) {

  *,
  ::before,
  ::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* --------------------------------------------------------------------------
   22. Go to Top Button
   -------------------------------------------------------------------------- */
.go-to-top-btn {
  position: fixed;
  bottom: 2rem;
  right: 2rem;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--color-maroon) 0%, var(--color-maroon-dark) 100%);
  color: var(--color-ivory-light);
  border: 2px solid var(--color-gold);
  box-shadow: 0 4px 18px rgba(107, 23, 38, 0.35);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.15rem;
  cursor: pointer;
  z-index: 1040;
  opacity: 0;
  visibility: hidden;
  transform: translateY(18px) scale(0.9);
  transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

.go-to-top-btn.visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0) scale(1);
}

.go-to-top-btn:hover {
  background: linear-gradient(135deg, var(--color-saffron) 0%, var(--color-maroon) 100%);
  color: var(--color-white);
  border-color: var(--color-gold-light);
  transform: translateY(-4px) scale(1.08);
  box-shadow: 0 8px 24px rgba(199, 161, 90, 0.45);
}

.go-to-top-btn:active {
  transform: translateY(-1px) scale(0.98);
}

@media (max-width: 768px) {
  .go-to-top-btn {
    bottom: calc(66px + env(safe-area-inset-bottom, 0px));
    right: 1.25rem;
    width: 42px;
    height: 42px;
    font-size: 1rem;
    z-index: 1040;
  }
}

/* ==========================================================================
   23. Luxury Portrait Framed Schedule Cards (#programme)
       Matching Reference Design: Ambient Midnight Card, Arched Gold-Bordered
       Photo Frame, Floating Top Editorial Serif Title, Central Gold Ribbon Bow,
       Clean Lead Copy & Signature Light Pill CTA Button.
   ========================================================================== */
.kg-schedule-card {
  position: relative;
  background: radial-gradient(130% 100% at 50% 5%, #5e1919 0%, #4a1414 48%, #250a0a 100%);
  border: 1px solid rgba(199, 161, 90, 0.35);
  border-radius: 28px;
  overflow: visible;
  padding: 1.5rem 1.35rem 1.6rem 1.35rem;
  box-shadow: 0 20px 48px rgba(0, 0, 0, 0.55), 0 0 1px rgba(255, 255, 255, 0.1) inset;
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.4s ease, border-color 0.4s ease;
  display: flex;
  flex-direction: column;
  height: 100%;
}

.kg-schedule-card:hover {
  transform: translateY(-6px);
  border-color: rgba(226, 192, 125, 0.75);
  box-shadow: 0 26px 56px rgba(0, 0, 0, 0.7), 0 0 30px rgba(199, 161, 90, 0.22);
}

/* Card Top: Topic centered above the image */
.kg-card-top-topic {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: 0.85rem;
}

.kg-topic-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-sans);
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #F8D89C;
  background: rgba(226, 192, 125, 0.12);
  border: 1px solid rgba(226, 192, 125, 0.4);
  padding: 0.32rem 0.95rem;
  border-radius: 100px;
  backdrop-filter: blur(6px);
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
}

/* Luxury Framed Box with Gold Border Outline (Image 1 Style) */
.kg-frame-box {
  position: relative;
  margin: 0.2rem 0 1.65rem 0;
  width: 100%;
}

.kg-frame-inner {
  border: 1.5px solid rgba(212, 175, 55, 0.85);
  border-radius: 20px;
  position: relative;
  overflow: hidden;
  height: 250px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.5), inset 0 0 25px rgba(0, 0, 0, 0.5);
  display: flex;
  align-items: center;
  justify-content: center;
}

.kg-frame-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center center;
  filter: brightness(0.6) contrast(1.1);
  transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1), filter 0.5s ease;
}

.kg-schedule-card:hover .kg-frame-bg {
  transform: scale(1.06);
  filter: brightness(0.68) contrast(1.15);
}

.kg-frame-overlay {
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 50% 40%, rgba(74, 20, 20, 0.45) 0%, rgba(37, 10, 10, 0.88) 100%);
  pointer-events: none;
}

/* Floating Editorial Display Title & Meta inside Photo Frame */
.kg-frame-header {
  position: relative;
  z-index: 2;
  padding: 1.25rem 1rem;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
}

.kg-event-title {
  font-family: var(--font-serif);
  font-size: 1.55rem;
  font-weight: 500;
  color: #FFFFFF;
  text-shadow: 0 3px 14px rgba(0, 0, 0, 0.95), 0 0 4px rgba(0, 0, 0, 0.8);
  line-height: 1.2;
  margin: 0 0 0.65rem 0;
  letter-spacing: -0.01em;
}

/* Time & Location Meta inside Image */
.kg-frame-meta-strip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0.35rem 0.5rem;
  background: rgba(74, 20, 20, 0.82);
  border: 1px solid rgba(226, 192, 125, 0.4);
  border-radius: 100px;
  padding: 0.28rem 0.85rem;
  backdrop-filter: blur(8px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5);
  max-width: 95%;
}

.kg-frame-meta-item {
  font-size: 0.74rem;
  font-weight: 600;
  color: #F8D89C;
  letter-spacing: 0.02em;
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
}

.kg-frame-meta-sep {
  color: rgba(226, 192, 125, 0.6);
  font-size: 0.74rem;
}

@media (max-width: 575.98px) {
  .kg-event-title {
    font-size: 1.35rem;
  }

  .kg-frame-inner {
    height: 230px;
  }
}

/* Center Golden Ribbon Bow Emblem overlapping bottom edge of frame */
.kg-frame-emblem {
  position: absolute;
  bottom: -18px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 5;
  display: flex;
  align-items: center;
  justify-content: center;
  filter: drop-shadow(0 4px 10px rgba(0, 0, 0, 0.65));
  transition: transform 0.35s ease;
}

.kg-schedule-card:hover .kg-frame-emblem {
  transform: translateX(-50%) scale(1.08);
}

.kg-gold-bow {
  width: 54px;
  height: 42px;
  display: block;
}

/* Card Body below the frame */
.kg-card-body {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  flex-grow: 1;
  text-align: center;
  padding-top: 0.35rem;
}

.kg-short-desc {
  font-size: 0.88rem;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.86);
  margin-bottom: 1.15rem;
  text-align: center;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 2.65rem;
  max-width: 95%;
}

/* Signature Register Now Pill Button (Triggers Registration Modal) */
.kg-register-card-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  background: linear-gradient(180deg, #FDFCF9 0%, #EFEAE2 100%);
  color: #1E1A17;
  border: 1px solid rgba(255, 255, 255, 0.75);
  border-radius: 100px;
  padding: 0.65rem 1.85rem;
  font-family: var(--font-serif);
  font-size: 0.98rem;
  font-weight: 600;
  box-shadow: 0 4px 18px rgba(255, 255, 255, 0.14), 0 8px 24px rgba(0, 0, 0, 0.4);
  cursor: pointer;
  transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
  width: auto;
  min-width: 170px;
  max-width: 250px;
  margin: 0 auto;
  text-decoration: none;
}

.kg-register-card-btn:hover {
  transform: translateY(-2px);
  background: #FFFFFF;
  box-shadow: 0 6px 24px rgba(255, 255, 255, 0.28), 0 12px 30px rgba(0, 0, 0, 0.5);
  color: var(--color-maroon);
}

@keyframes fadeInDown {
  from {
    opacity: 0;
    transform: translateY(-8px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* ==========================================================================
   Mobile Horizontal Swipe Carousel for Programme Schedule Cards (< 768px)
   ========================================================================== */
.programme-mobile-carousel-controls {
  display: none;
}

@media (max-width: 767.98px) {
  #programme .tab-pane>.row {
    position: relative !important;
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    scroll-snap-type: x mandatory !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: none !important;
    -ms-overflow-style: none !important;
    padding: 0.5rem 1rem 1.25rem 1rem !important;
    margin-left: -0.75rem !important;
    margin-right: -0.75rem !important;
    gap: 1.15rem !important;
    justify-content: flex-start !important;
  }

  #programme .tab-pane>.row::-webkit-scrollbar {
    display: none !important;
  }

  #programme .tab-pane>.row>[class*="col-"] {
    flex: 0 0 86% !important;
    max-width: 330px !important;
    min-width: 275px !important;
    scroll-snap-align: center !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .kg-schedule-card {
    height: 100% !important;
    margin: 0 !important;
  }

  .kg-event-title {
    font-size: 1.35rem;
  }

  .kg-frame-inner {
    height: 220px;
  }

  /* Programme Mobile Carousel Navigation Controls */
  .programme-mobile-carousel-controls {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-top: 0.75rem;
    margin-bottom: 1.5rem;
    gap: 0.5rem;
  }

  .programme-carousel-hint {
    font-size: 0.8rem;
    color: #6c757d;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    margin-bottom: 0.25rem;
  }

  .programme-carousel-counter {
    color: var(--color-maroon);
    font-weight: 700;
  }

  .programme-carousel-nav-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
  }

  .programme-carousel-dots {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
  }

  .programme-carousel-arrow-btn {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: #4A0E17;
    border: 1px solid var(--color-gold);
    color: var(--color-gold-light);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.85rem;
    cursor: pointer;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
    transition: all var(--transition-fast);
  }

  .programme-carousel-arrow-btn:active {
    background: var(--color-gold);
    color: var(--color-maroon);
    transform: scale(0.92);
  }

  .programme-carousel-arrow-btn:disabled,
  .programme-carousel-arrow-btn[aria-disabled="true"] {
    opacity: 0.35;
    pointer-events: none;
  }

  .programme-carousel-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    border: 1px solid var(--color-gold);
    background: rgba(74, 14, 23, 0.2);
    padding: 0;
    cursor: pointer;
    transition: all 0.25s ease;
  }

  .programme-carousel-dot.active {
    background: var(--color-gold);
    width: 24px;
    border-radius: 12px;
    box-shadow: 0 0 8px rgba(199, 161, 90, 0.7);
  }
}

/* ==========================================================================
   DISTINGUISHED GUESTS & SPEAKERS SECTION
   ========================================================================== */
.guests-section {
  background: linear-gradient(180deg, #FFFFFF 0%, #FAF7F2 100%);
  position: relative;
  overflow: hidden;
}

.guests-watermark {
  position: absolute;
  right: -60px;
  top: 40px;
  width: 480px;
  height: 480px;
  opacity: 0.035;
  pointer-events: none;
  background-image: url('../images/phule-logo.png');
  background-size: contain;
  background-repeat: no-repeat;
  z-index: 0;
}

/* Guest Cards Grid */
.guest-card-outer {
  height: 100%;
  display: flex;
}

.guest-card {
  width: 100%;
  display: flex;
  flex-direction: column;
  background: #FFFFFF;
  border: 1px solid rgba(199, 161, 90, 0.28);
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 6px 20px rgba(34, 32, 31, 0.05);
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.35s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.35s ease;
  position: relative;
  cursor: default;
}

.guest-card:hover {
  transform: translateY(-7px);
  box-shadow: 0 16px 36px rgba(107, 23, 38, 0.16);
  border-color: var(--color-gold);
}

/* Photo Box */
.guest-photo-box {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;
  max-height: 210px;
  background: #201819;
  overflow: hidden;
}

.guest-card-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 20%;
  transition: transform 0.55s cubic-bezier(0.16, 1, 0.3, 1);
  display: block;
}

.guest-card:hover .guest-card-img {
  transform: scale(1.06);
}

.guest-photo-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 75%, rgba(0, 0, 0, 0.12) 100%);
  pointer-events: none;
}

/* Explicit hide rules for removed card elements */
.guest-honor-badge,
.guest-domain-badge,
.guest-bio-snippet,
.guest-card-footer,
.btn-guest-view,
.guest-title {
  display: none !important;
}

/* Card Body */
.guest-card-content {
  padding: 0.85rem 0.75rem 0.95rem;
  display: flex;
  flex-direction: column;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  width: 100%;
  flex-grow: 1;
}

.guest-card-content * {
  text-align: center !important;
}

.guest-name {
  font-family: var(--font-serif);
  font-size: 1.12rem;
  font-weight: 700;
  color: var(--color-maroon);
  line-height: 1.25;
  margin: 0 auto 0.2rem auto !important;
  text-align: center !important;
  display: block;
  width: 100%;
  transition: color 0.2s ease;
}

.guest-card:hover .guest-name {
  color: var(--color-saffron);
}

.guest-native-name {
  font-size: 0.84rem;
  font-weight: 600;
  color: var(--color-saffron);
  margin: 0 auto !important;
  text-align: center !important;
  display: block;
  width: 100%;
}

.guest-title {
  display: none !important;
}

/* ==========================================================================
   Mobile Horizontal Carousel for Distinguished Guests & Speakers (< 768px)
   ========================================================================== */
.guests-mobile-carousel-controls {
  display: none;
}

@media (max-width: 767.98px) {
  #guestsGrid {
    position: relative !important;
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    scroll-snap-type: x mandatory !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: none !important;
    -ms-overflow-style: none !important;
    padding: 0.5rem 1rem 1.25rem 1rem !important;
    margin-left: -0.75rem !important;
    margin-right: -0.75rem !important;
    gap: 1.15rem !important;
    justify-content: flex-start !important;
  }

  #guestsGrid::-webkit-scrollbar {
    display: none !important;
  }

  #guestsGrid>.guest-item-col {
    flex: 0 0 68% !important;
    max-width: 260px !important;
    min-width: 210px !important;
    scroll-snap-align: center !important;
    scroll-snap-stop: normal !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .guest-card-outer {
    height: 100% !important;
  }

  .guest-card {
    height: 100% !important;
    margin: 0 !important;
  }

  .guest-photo-box {
    aspect-ratio: 1 / 1 !important;
    max-height: 230px !important;
  }

  .guest-card-img {
    object-fit: cover !important;
    object-position: center center !important;
  }

  /* Guests Mobile Carousel Navigation Controls */
  .guests-mobile-carousel-controls {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-top: 1rem;
    margin-bottom: 0.5rem;
    gap: 0.6rem;
  }

  .guests-carousel-nav-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.85rem;
  }

  .guests-carousel-arrow-btn {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #FFFFFF;
    border: 1.5px solid var(--color-gold);
    color: var(--color-maroon);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.95rem;
    cursor: pointer;
    box-shadow: 0 4px 12px rgba(107, 23, 38, 0.12);
    transition: all var(--transition-fast);
  }

  .guests-carousel-arrow-btn:active {
    background: var(--color-maroon);
    color: var(--color-gold-light);
    transform: scale(0.92);
  }

  .guests-carousel-arrow-btn:disabled,
  .guests-carousel-arrow-btn[aria-disabled="true"] {
    opacity: 0.35;
    pointer-events: none;
  }

  .guests-carousel-progress-track {
    width: 130px;
    height: 6px;
    background: rgba(199, 161, 90, 0.25);
    border-radius: 999px;
    overflow: hidden;
    position: relative;
  }

  .guests-carousel-progress-bar {
    height: 100%;
    width: 15%;
    background: linear-gradient(90deg, var(--color-saffron) 0%, var(--color-gold) 100%);
    border-radius: 999px;
    transition: width 0.2s ease;
  }

  .guests-carousel-counter-badge {
    font-family: var(--font-sans);
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--color-maroon);
    background: rgba(199, 161, 90, 0.18);
    border: 1px solid rgba(199, 161, 90, 0.4);
    padding: 2px 10px;
    border-radius: 12px;
    min-width: 58px;
    text-align: center;
  }

  .guests-carousel-hint {
    font-size: 0.8rem;
    color: #6c757d;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
  }
}

/* ==========================================================================
   GUEST PROFILE MODAL STYLING
   ========================================================================== */
.modal-guest-detail .modal-content {
  border-radius: 20px;
  border: 1px solid rgba(199, 161, 90, 0.45);
  overflow: hidden;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.28);
}

.modal-guest-header {
  background: linear-gradient(135deg, var(--color-maroon) 0%, var(--color-maroon-dark) 100%);
  color: #FFFFFF;
  padding: 1.25rem 1.75rem;
  border-bottom: 2px solid var(--color-gold);
}

.modal-guest-header .btn-close {
  filter: invert(1) brightness(1.5);
  opacity: 0.85;
}

.modal-guest-header .btn-close:hover {
  opacity: 1;
}

.modal-guest-body {
  padding: 2rem 1.75rem;
  background: #FAF8F5;
}

.modal-guest-photo {
  width: 100%;
  aspect-ratio: 1 / 1;
  border-radius: 14px;
  object-fit: cover;
  object-position: center 20%;
  border: 3px solid #FFFFFF;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.14);
}

.modal-guest-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  background: rgba(107, 23, 38, 0.1);
  color: var(--color-maroon);
  font-size: 0.78rem;
  font-weight: 700;
  padding: 4px 12px;
  border-radius: 30px;
  margin-bottom: 0.65rem;
  border: 1px solid rgba(107, 23, 38, 0.2);
}

.modal-guest-name {
  font-family: var(--font-serif);
  font-size: 1.75rem;
  font-weight: 700;
  color: var(--color-maroon);
  line-height: 1.2;
  margin-bottom: 0.25rem;
}

.modal-guest-subname {
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--color-saffron);
  margin-bottom: 0.75rem;
}

.modal-guest-title {
  font-size: 0.98rem;
  color: #383431;
  font-weight: 600;
  margin-bottom: 1.15rem;
  line-height: 1.45;
}

.modal-guest-bio {
  font-size: 0.94rem;
  line-height: 1.68;
  color: #4A4543;
  margin-bottom: 1.25rem;
  text-align: justify;
  text-justify: inter-word;
}

.modal-guest-session-box {
  background: #FFFFFF;
  border: 1px solid rgba(199, 161, 90, 0.35);
  border-radius: 12px;
  padding: 1.1rem;
  margin-bottom: 1.25rem;
}

.modal-guest-session-title {
  font-size: 0.82rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 700;
  color: var(--color-maroon);
  margin-bottom: 0.5rem;
  display: flex;
  align-items: center;
  gap: 0.4rem;
}

.modal-guest-session-desc {
  font-size: 0.88rem;
  color: #383431;
  margin-bottom: 0;
  line-height: 1.48;
}

.modal-guest-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin-bottom: 1.5rem;
}

.modal-guest-tag {
  background: rgba(217, 119, 50, 0.1);
  color: var(--color-saffron-hover);
  border: 1px solid rgba(217, 119, 50, 0.25);
  border-radius: 20px;
  padding: 3px 10px;
  font-size: 0.78rem;
  font-weight: 600;
}

/* ==========================================================================
   FESTIVE CELEBRATION THEME
   ========================================================================== */
:root {
  --festive-crimson: #8E1526;
  --festive-crimson-dark: #580D19;
  --festive-crimson-light: #B71C35;
  --festive-saffron: #FF6F00;
  --festive-saffron-light: #FFA000;
  --festive-gold: #FFD54F;
  --festive-gold-rich: #F5A623;
  --festive-gold-dark: #C7913A;
  --festive-magenta: #880E4F;
  --festive-peacock: #00695C;
  --festive-glow-gold: 0 0 18px rgba(255, 213, 79, 0.55), 0 0 32px rgba(255, 111, 0, 0.3);
}

/* FESTIVE Top Announcement Ribbon */
.festive-banner {
  position: relative;
  z-index: 1045;
  width: 100%;
}

.festive-top-ribbon {
  background: linear-gradient(90deg, #5C0C1A 0%, #8E1526 25%, #A81B30 50%, #8E1526 75%, #5C0C1A 100%);
  color: #FFFDF8;
  border-bottom: 1px solid rgba(255, 213, 79, 0.4);
  font-size: 0.84rem;
  letter-spacing: 0.02em;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.25);
}

.festive-diya-flame {
  font-size: 1.15rem;
  display: inline-block;
  animation: diyaFlicker 1.8s infinite alternate ease-in-out;
  filter: drop-shadow(0 0 6px #FFD54F);
}

@keyframes diyaFlicker {
  0% {
    transform: scale(0.92) rotate(-2deg);
    opacity: 0.88;
  }

  50% {
    transform: scale(1.08) rotate(3deg);
    opacity: 1;
    filter: drop-shadow(0 0 10px #FF9800);
  }

  100% {
    transform: scale(0.96) rotate(-1deg);
    opacity: 0.92;
  }
}

.festive-banner-headline {
  font-weight: 500;
  letter-spacing: 0.02em;
}

.festive-sparkle-pill {
  background: rgba(255, 213, 79, 0.2);
  border: 1px solid rgba(255, 213, 79, 0.5);
  color: #FFE082;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 0.15rem 0.55rem;
  border-radius: 999px;
  align-items: center;
  gap: 0.25rem;
}

.festive-days-pill {
  background: rgba(0, 0, 0, 0.25);
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: #FFFFFF;
  font-size: 0.72rem;
  font-weight: 600;
  padding: 0.2rem 0.6rem;
  border-radius: 999px;
}

.btn-festive-toggle {
  background: linear-gradient(135deg, #FF6F00 0%, #E65100 100%);
  color: #FFFFFF;
  border: 1px solid #FFD54F;
  border-radius: 999px;
  padding: 0.22rem 0.75rem;
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  display: inline-flex;
  align-items: center;
  cursor: pointer;
  transition: all 0.25s ease;
  box-shadow: 0 0 10px rgba(255, 111, 0, 0.45);
}

.btn-festive-toggle:hover {
  background: linear-gradient(135deg, #FFA000 0%, #FF6F00 100%);
  transform: scale(1.05);
  box-shadow: 0 0 14px rgba(255, 213, 79, 0.7);
  color: #FFFFFF;
}

/* Traditional Marigold & Mango Leaves Garland Toran */
.festive-toran-garland {
  width: 100%;
  height: 38px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 140 38'%3E%3Cpath d='M0 0 Q35 22 70 0 Q105 22 140 0' fill='none' stroke='%23C7913A' stroke-width='2'/%3E%3Cpath d='M35 11 Q32 28 35 34 Q38 28 35 11 M105 11 Q102 28 105 34 Q108 28 105 11' fill='%232E7D32' stroke='%231B5E20'/%3E%3Ccircle cx='35' cy='14' r='8' fill='%23FFA000'/%3E%3Ccircle cx='35' cy='14' r='5' fill='%23FF6F00'/%3E%3Ccircle cx='70' cy='3' r='7' fill='%23FF8F00'/%3E%3Ccircle cx='105' cy='14' r='8' fill='%23FFA000'/%3E%3Ccircle cx='105' cy='14' r='5' fill='%23FF6F00'/%3E%3Ccircle cx='0' cy='0' r='6' fill='%23FF8F00'/%3E%3Ccircle cx='140' cy='0' r='6' fill='%23FF8F00'/%3E%3C/svg%3E");
  background-repeat: repeat-x;
  background-position: top left;
  background-size: 140px 38px;
  pointer-events: none;
  filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.22));
  transform-origin: top center;
  animation: toranBreeze 4.5s ease-in-out infinite alternate;
}

@keyframes toranBreeze {
  0% {
    transform: scaleY(1);
  }

  50% {
    transform: scaleY(1.02) skewX(0.4deg);
  }

  100% {
    transform: scaleY(0.99) skewX(-0.4deg);
  }
}

/* Glowing Fairy Lights String Along Navbar Bottom */
.festive-fairy-lights {
  position: absolute;
  bottom: -9px;
  left: 0;
  right: 0;
  display: flex;
  justify-content: space-around;
  align-items: flex-start;
  pointer-events: none;
  z-index: 1042;
  overflow: hidden;
  height: 14px;
}

.fairy-bulb {
  width: 8px;
  height: 11px;
  border-radius: 50% 50% 45% 45%;
  position: relative;
  animation: bulbGlow 1.6s infinite alternate ease-in-out;
}

.fairy-bulb::before {
  content: '';
  position: absolute;
  top: -2px;
  left: 2px;
  width: 4px;
  height: 2px;
  background: #333333;
}

.bulb-gold {
  background: #FFD54F;
  box-shadow: 0 0 8px #FFD54F, 0 0 14px rgba(255, 213, 79, 0.8);
  animation-delay: 0.1s;
}

.bulb-saffron {
  background: #FF6F00;
  box-shadow: 0 0 8px #FF6F00, 0 0 14px rgba(255, 111, 0, 0.8);
  animation-delay: 0.35s;
}

.bulb-crimson {
  background: #E53935;
  box-shadow: 0 0 8px #E53935, 0 0 14px rgba(229, 57, 53, 0.8);
  animation-delay: 0.6s;
}

.bulb-peacock {
  background: #00897B;
  box-shadow: 0 0 8px #00897B, 0 0 14px rgba(0, 137, 123, 0.8);
  animation-delay: 0.85s;
}

.bulb-magenta {
  background: #D81B60;
  box-shadow: 0 0 8px #D81B60, 0 0 14px rgba(216, 27, 96, 0.8);
  animation-delay: 1.1s;
}

@keyframes bulbGlow {
  0% {
    opacity: 0.45;
    transform: scale(0.85);
  }

  50% {
    opacity: 1;
    transform: scale(1.15);
  }

  100% {
    opacity: 0.65;
    transform: scale(0.95);
  }
}

/* Festive Dock Tab */
.dock-btn-festive {
  background: linear-gradient(135deg, #FF6F00 0%, #8E1526 100%) !important;
  color: #FFFFFF !important;
  border-left: 3px solid #FFD54F;
  box-shadow: 0 4px 14px rgba(255, 111, 0, 0.4);
}

.dock-btn-festive:hover {
  background: linear-gradient(135deg, #FFA000 0%, #B71C35 100%) !important;
  color: #FFFFFF !important;
  transform: translateX(-4px);
  box-shadow: 0 6px 18px rgba(255, 213, 79, 0.6);
}

/* Background Animated Canvas */
.festive-petals-canvas {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  pointer-events: none;
  z-index: 1044;
  display: block;
}

/* ==========================================================================
   FESTIVE THEME ACTIVE STATE (Applies festive warmth & golden radiance sitewide)
   ========================================================================== */
body.festive-theme-active .festival-navbar {
  border-bottom: 2px solid #F5A623;
  background-color: #FFFFFF !important;
  box-shadow: 0 4px 20px rgba(165, 28, 48, 0.08);
}

body.festive-theme-active .festival-navbar .nav-link.active,
body.festive-theme-active .festival-navbar .nav-link:hover {
  color: #8E1526 !important;
}

body.festive-theme-active .festival-navbar .nav-link::after {
  background-color: #FF6F00;
}

/* Schedule Capsule Tabs - High Contrast Crisp Visibility */
.programme-capsule-nav .nav-link.active,
.programme-capsule-nav .nav-link.active span,
body.festive-theme-active .programme-capsule-nav .nav-link.active,
body.festive-theme-active .programme-capsule-nav .nav-link.active span {
  color: #FFFFFF !important;
  background-color: #171514 !important;
}

.programme-capsule-nav .nav-link:not(.active),
.programme-capsule-nav .nav-link:not(.active) span,
body.festive-theme-active .programme-capsule-nav .nav-link:not(.active),
body.festive-theme-active .programme-capsule-nav .nav-link:not(.active) span {
  color: #3B3731 !important;
}

/* Hero Section FESTIVE Radiance */
body.festive-theme-active .hero-section {
  background: radial-gradient(ellipse at 50% 15%, rgba(255, 213, 79, 0.16) 0%, transparent 65%),
    linear-gradient(135deg, #4A0A15 0%, #721223 50%, #8E172C 80%, #3D0711 100%);
  border-bottom: 3px double #FFD54F;
}

body.festive-theme-active .hero-main-title {
  text-shadow: 0 2px 16px rgba(255, 193, 7, 0.35), 0 4px 24px rgba(0, 0, 0, 0.6);
}

body.festive-theme-active .hero-supporting-title {
  color: #FFE082;
  text-shadow: 0 1px 8px rgba(255, 213, 79, 0.3);
}

body.festive-theme-active .portrait-editorial-card {
  border: 2px solid #FFD54F;
  box-shadow: 0 20px 45px rgba(0, 0, 0, 0.5), 0 0 30px rgba(255, 184, 0, 0.25);
}

/* Highlights Carousel Portals */
body.festive-theme-active .glance-circle-ring {
  border-color: #FFD54F !important;
  box-shadow: 0 8px 24px rgba(142, 21, 38, 0.2), 0 0 16px rgba(255, 193, 7, 0.25);
}

body.festive-theme-active .glance-circle-portal:hover .glance-circle-ring {
  box-shadow: 0 12px 32px rgba(255, 111, 0, 0.35), 0 0 24px rgba(255, 213, 79, 0.5) !important;
}

/* Guest Cards */
body.festive-theme-active .guest-card {
  border-color: rgba(245, 166, 35, 0.45);
}

body.festive-theme-active .guest-card:hover {
  border-color: #FFD54F;
  box-shadow: 0 16px 36px rgba(142, 21, 38, 0.2), 0 0 24px rgba(255, 193, 7, 0.25);
}

body.festive-theme-active .guest-name {
  color: #8E1526;
}

body.festive-theme-active .guest-card:hover .guest-name {
  color: #E65100;
}

/* Pillar Cards */
body.festive-theme-active .about-pillar-card {
  border-color: rgba(245, 166, 35, 0.45);
}

body.festive-theme-active .about-pillar-card:hover {
  border-color: #FFD54F;
  box-shadow: 0 16px 36px rgba(142, 21, 38, 0.16), 0 0 20px rgba(255, 193, 7, 0.2);
}

/* Buttons */
body.festive-theme-active .btn-saffron {
  background: linear-gradient(135deg, #FF6F00 0%, #D84315 100%);
  border: 1px solid #FFD54F;
  box-shadow: 0 4px 16px rgba(255, 111, 0, 0.35);
}

body.festive-theme-active .btn-saffron:hover {
  background: linear-gradient(135deg, #FFA000 0%, #E65100 100%);
  box-shadow: 0 6px 22px rgba(255, 111, 0, 0.55), 0 0 14px rgba(255, 213, 79, 0.5);
}

/* Section Headings Decorative Accent */
body.festive-theme-active .section-header .eyebrow {
  color: #FF6F00;
  font-weight: 700;
  letter-spacing: 0.08em;
}

/* Modal styling in FESTIVE Mode */
body.festive-theme-active .modal-guest-header {
  background: linear-gradient(135deg, #6B101D 0%, #8E1526 50%, #580D19 100%);
  border-bottom: 3px solid #FFD54F;
}

/* When FESTIVE mode is OFF */
body.festive-theme-disabled .festive-banner,
body.festive-theme-disabled .festive-fairy-lights,
body.festive-theme-disabled .festive-petals-canvas {
  display: none !important;
}

body.festive-theme-disabled .dock-btn-festive {
  opacity: 0.6;
}


/* --------------------------------------------------------------------------
   21. Contribute & QR Code Section ("Be Part of the Story")
   -------------------------------------------------------------------------- */
.contribute-section {
  background: linear-gradient(135deg, #fdfbf7 0%, #f6ede0 50%, #fdfbf7 100%);
  border-top: 2px solid rgba(199, 161, 90, 0.45);
  border-bottom: 2px solid rgba(199, 161, 90, 0.45);
  padding: 4.5rem 0;
  position: relative;
}

.contribute-card {
  background: #ffffff;
  border: 1.5px solid rgba(199, 161, 90, 0.45);
  border-radius: 20px;
  box-shadow: 0 18px 45px rgba(74, 16, 25, 0.08);
  padding: 3rem 2.5rem;
  position: relative;
  overflow: hidden;
}

.contribute-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 5px;
  background: linear-gradient(90deg, #731c24, #c7a15a, #d97732, #c7a15a, #731c24);
}

.contribute-title {
  font-family: var(--font-serif);
  color: #731c24;
  font-size: 2.35rem;
  font-weight: 700;
  letter-spacing: -0.5px;
  line-height: 1.2;
}

.contribute-subtitle {
  color: #4a5568;
  font-size: 1.15rem;
  line-height: 1.6;
}

.contribute-highlight {
  font-family: var(--font-serif);
  color: #731c24;
  font-size: 1.25rem;
  font-weight: 600;
  background: none;
  border: none;
  padding: 0;
  margin: 1rem 0;
}

.contribute-perk-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  background: #fff8eb;
  border: 1.5px dashed #c7a15a;
  border-radius: 12px;
  padding: 0.85rem 1.25rem;
  color: #7c4700;
  font-size: 0.95rem;
  font-weight: 500;
  line-height: 1.45;
}

.contribute-qr-wrapper {
  background: linear-gradient(145deg, #ffffff, #faf6ee);
  border: 2px solid #c7a15a;
  border-radius: 18px;
  padding: 1.75rem 1.5rem;
  display: inline-block;
  box-shadow: 0 12px 32px rgba(115, 28, 36, 0.1);
  position: relative;
  max-width: 320px;
  width: 100%;
}

.contribute-qr-box {
  background: #ffffff;
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 12px;
  padding: 0.85rem;
  box-shadow: inset 0 2px 6px rgba(0, 0, 0, 0.04);
  position: relative;
  margin: 0 auto;
}

.contribute-qr-box img {
  width: 210px;
  height: 210px;
  object-fit: contain;
  display: block;
  margin: 0 auto;
  border-radius: 6px;
}

.contribute-scan-text {
  font-weight: 700;
  color: #731c24;
  font-size: 1.05rem;
  margin-top: 1rem;
  margin-bottom: 0.25rem;
}

.contribute-upi-pills {
  display: flex;
  justify-content: center;
  gap: 0.35rem;
  flex-wrap: wrap;
  margin-top: 0.75rem;
}

.contribute-upi-pills span {
  font-size: 0.72rem;
  font-weight: 600;
  padding: 0.2rem 0.55rem;
  border-radius: 100px;
  background: rgba(115, 28, 36, 0.08);
  color: #731c24;
  letter-spacing: 0.2px;
}

@media (max-width: 991.98px) {
  .contribute-card {
    padding: 2.25rem 1.5rem;
    text-align: center;
  }
  .contribute-title {
    font-size: 1.85rem;
  }
  .contribute-highlight {
    border: none;
    font-size: 1.15rem;
  }
  .contribute-perk-badge {
    text-align: left;
    font-size: 0.9rem;
  }
}


.contribute-wa-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  background: linear-gradient(135deg, #25D366 0%, #128C7E 100%);
  color: #ffffff !important;
  text-decoration: none !important;
  border-radius: 50px;
  padding: 0.55rem 1.15rem;
  margin: 0.85rem auto 0;
  max-width: 275px;
  width: 100%;
  box-shadow: 0 4px 15px rgba(37, 211, 102, 0.35);
  transition: all 0.25s cubic-bezier(0.165, 0.84, 0.44, 1);
  border: 1px solid rgba(255, 255, 255, 0.25);
}

.contribute-wa-btn:hover {
  background: linear-gradient(135deg, #20ba59 0%, #0d6e62 100%);
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(37, 211, 102, 0.48);
  color: #ffffff !important;
}

.wa-btn-icon-circle {
  width: 34px;
  height: 34px;
  background: rgba(255, 255, 255, 0.22);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.25rem;
  color: #ffffff;
  flex-shrink: 0;
}

.wa-btn-content {
  display: flex;
  flex-direction: column;
  text-align: left;
  line-height: 1.2;
}

.wa-btn-label {
  font-size: 0.72rem;
  color: rgba(255, 255, 255, 0.92);
  font-weight: 500;
  letter-spacing: 0.3px;
  text-transform: uppercase;
}

.wa-btn-number {
  font-size: 0.95rem;
  font-weight: 700;
  color: #ffffff;
  letter-spacing: 0.4px;
}


/* Contributor Seating Tiers Collapse */
.seating-tiers-btn {
  font-size: 0.8rem;
  font-weight: 600;
  border-radius: 100px;
  padding: 0.35rem 0.85rem;
  border: 1px solid #c7a15a;
  color: #731c24;
  background: #ffffff;
  white-space: nowrap;
  transition: all 0.25s ease;
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}

.seating-tiers-btn:hover,
.seating-tiers-btn[aria-expanded="true"] {
  background: #731c24;
  color: #ffffff;
  border-color: #731c24;
  box-shadow: 0 3px 8px rgba(115, 28, 36, 0.2);
}

.transition-icon {
  transition: transform 0.25s ease;
  display: inline-block;
}

.seating-tiers-btn[aria-expanded="true"] .transition-icon {
  transform: rotate(180deg);
}

.seating-tiers-table-card {
  background: #ffffff;
  border: 1.5px solid rgba(199, 161, 90, 0.4);
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 6px 16px rgba(74, 16, 25, 0.06);
}

.seating-tier-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.6rem 1rem;
  border-bottom: 1px solid rgba(199, 161, 90, 0.18);
  font-size: 0.88rem;
  transition: background 0.15s ease;
}

.seating-tier-row:last-child {
  border-bottom: none;
}

.seating-tier-row:hover {
  background: #fdfbf7;
}

.tier-amount {
  font-weight: 700;
  color: #731c24;
  font-size: 0.95rem;
  min-width: 85px;
}

.tier-arrow {
  color: #c7a15a;
  font-size: 0.85rem;
  padding: 0 0.5rem;
}

.tier-seat {
  font-weight: 600;
  color: #2d3748;
  flex-grow: 1;
  text-align: right;
}
