/* ==========================================================================
   DEFORMITY CORRECTION HULL - COMPONENTS & MODULES (Clean Executive UI)
   Crisp Light Canvas, Deep Navy Accents, High Contrast, Accurate Content
   ========================================================================== */

/* --------------------------------------------------------------------------
   HERO BANNER
   -------------------------------------------------------------------------- */
.hero-card {
  position: relative;
  border-radius: var(--radius-md);
  overflow: hidden;
  padding: 2.75rem 2.5rem;
  background: #ffffff;
  border: 1px solid var(--border-light);
  box-shadow: var(--shadow-md);
  display: grid;
  grid-template-columns: 1.35fr 1fr;
  gap: 2.5rem;
  align-items: center;
  margin-bottom: 2rem;
}

/* Executive Hero Content Styling */
.hero-main-content {
  display: flex;
  flex-direction: column;
}

.hero-badges-row {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  flex-wrap: wrap;
  margin-bottom: 1.15rem;
}

.hero-main-title {
  margin: 0 0 1rem;
  font-size: clamp(2.2rem, 3.6vw, 3.2rem);
  font-weight: 900;
  line-height: 1.15;
  letter-spacing: -0.03em;
  color: var(--dch-navy);
}

.hero-highlight-cyan {
  background: linear-gradient(135deg, #0284c7 0%, #0369a1 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  display: inline-block;
}

.hero-main-desc {
  font-size: 1.05rem;
  line-height: 1.65;
  color: var(--text-secondary);
  margin: 0 0 1.75rem;
  max-width: 620px;
}

.hero-actions-row {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  flex-wrap: wrap;
}


/* --------------------------------------------------------------------------
   COUNTDOWN TIMER (21st - 24th June 2027)
   -------------------------------------------------------------------------- */
.countdown-container {
  background: var(--dch-navy);
  border-radius: var(--radius-md);
  padding: 1.75rem;
  box-shadow: var(--shadow-lg);
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  color: #ffffff;
}

.countdown-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 1px solid rgba(255, 255, 255, 0.15);
  padding-bottom: 0.75rem;
}

.countdown-label {
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #38bdf8;
  display: flex;
  align-items: center;
  gap: 0.4rem;
}

.countdown-date {
  font-size: 0.85rem;
  color: #ffffff;
  font-weight: 600;
}

.countdown-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.6rem;
}

.countdown-unit {
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: var(--radius-sm);
  padding: 0.75rem 0.4rem;
  text-align: center;
}

.countdown-number {
  font-family: var(--font-mono);
  font-size: 1.75rem;
  font-weight: 800;
  color: #ffffff;
  line-height: 1;
  display: block;
}

.countdown-name {
  font-size: 0.65rem;
  color: #cbd5e1;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-top: 0.35rem;
  display: block;
}

.countdown-footer-alert {
  font-size: 0.78rem;
  color: #fef08a;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  padding-top: 0.75rem;
}


/* ==========================================================================
   STICKY TOP BOOK NOW BUTTON
   Stuck to the top right of the viewport where the white bar previously sat.
   Hidden during the Hero section and on the Registration section.
   ========================================================================== */
.sticky-top-book-bar {
  position: fixed;
  top: 0;
  right: 2.5rem;
  z-index: 950;
  opacity: 0;
  pointer-events: none;
  transform: translateY(-100%);
  transition: opacity 0.32s cubic-bezier(0.16, 1, 0.3, 1), transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

.sticky-top-book-bar.is-visible {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

.sticky-top-book-tab {
  background: #ffffff;
  padding: 14px 18px 12px 18px; /* White padding above and around like hanging down */
  border-radius: 0 0 18px 18px;
  box-shadow: 0 12px 32px rgba(15, 23, 42, 0.16), 0 2px 8px rgba(15, 23, 42, 0.08);
  border: 1.5px solid rgba(203, 213, 225, 0.9);
  border-top: none;
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
  transition: transform 0.28s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.28s ease;
}

.sticky-tab-ribbon-line {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 44px;
  height: 3px;
  background: linear-gradient(90deg, #0284c7, #38bdf8);
  border-radius: 0 0 3px 3px;
}

.sticky-top-book-tab:hover {
  transform: translateY(4px);
  box-shadow: 0 18px 40px rgba(2, 132, 199, 0.28), 0 4px 12px rgba(15, 23, 42, 0.12);
}

.sticky-top-book-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.65rem 1.45rem;
  background: linear-gradient(135deg, #0284c7 0%, #0369a1 100%);
  color: #ffffff !important;
  font-family: inherit;
  font-size: 0.92rem;
  font-weight: 800;
  letter-spacing: 0.02em;
  text-decoration: none;
  border-radius: 9999px;
  box-shadow: 0 4px 16px rgba(2, 132, 199, 0.4), 0 2px 6px rgba(0, 0, 0, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.35);
  transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}

.sticky-top-book-btn svg {
  transition: transform 0.2s ease;
}

.sticky-top-book-btn:hover {
  background: linear-gradient(135deg, #0369a1 0%, #0284c7 100%);
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(2, 132, 199, 0.55), 0 4px 10px rgba(0, 0, 0, 0.12);
  color: #ffffff !important;
}

.sticky-top-book-btn:hover svg {
  transform: translateX(2px);
}

.sticky-top-book-btn:active {
  transform: translateY(0);
}

/* Tablet & Mobile Sticky Button Adjustments */
@media (max-width: 900px) {
  .sticky-top-book-bar {
    display: none !important;
  }
}



/* ==========================================================================
   COURSE HIGHLIGHTS BANNER (17 YEARS • VENUE LOCATION • COURSE DATES)
   Clean, human-designed, elegant presentation
   ========================================================================== */
.course-highlights-banner {
  margin: 3rem 0 3.75rem;
  background: linear-gradient(155deg, #020d1c 0%, #061938 50%, #020914 100%);
  border-radius: 24px;
  border: 1px solid rgba(56, 189, 248, 0.22);
  box-shadow: 0 20px 50px -10px rgba(2, 6, 23, 0.5), inset 0 1px 0 rgba(255, 255, 255, 0.1);
  padding: 2.5rem 2.5rem;
  color: #ffffff;
}

.highlights-container {
  display: grid;
  grid-template-columns: 1fr 1px 1.25fr 1px 1.25fr;
  align-items: center;
  gap: 2rem;
}

.highlight-divider {
  width: 1px;
  height: 80%;
  background: linear-gradient(180deg, transparent 0%, rgba(255, 255, 255, 0.15) 50%, transparent 100%);
}

.highlight-card {
  display: flex;
  flex-direction: column;
}

/* 1. 17 Years */
.highlight-years-card {
  align-items: flex-start;
}

.highlight-number-wrap {
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  margin-bottom: 0.25rem;
}

.highlight-number {
  font-size: clamp(3.2rem, 4.5vw, 4.2rem);
  font-weight: 900;
  line-height: 1;
  color: #ffffff;
  letter-spacing: -0.04em;
  font-variant-numeric: tabular-nums;
  text-shadow: 0 0 24px rgba(251, 191, 36, 0.45);
}

.highlight-unit {
  font-size: 1.15rem;
  font-weight: 800;
  color: #fbbf24;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.highlight-title {
  font-size: 1.05rem;
  font-weight: 700;
  color: #ffffff;
  margin-bottom: 0.25rem;
}

.highlight-desc {
  font-size: 0.85rem;
  color: #94a3b8;
}

/* 2. Venue Location */
.highlight-venue-card {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.highlight-tag {
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #38bdf8;
  margin-bottom: 0.25rem;
}

.highlight-venue-title {
  font-size: 1.35rem;
  font-weight: 800;
  color: #ffffff;
  letter-spacing: -0.02em;
  margin: 0;
  line-height: 1.25;
}

.highlight-venue-sub {
  font-size: 0.92rem;
  color: #cbd5e1;
  margin: 0 0 1rem 0;
}

.highlight-btn-row {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.btn-clean-action {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.65rem 1rem;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: var(--radius-full);
  color: #ffffff;
  font-size: 0.82rem;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.btn-clean-action:hover {
  background: rgba(56, 189, 248, 0.2);
  border-color: #38bdf8;
  color: #ffffff;
  transform: translateY(-2px);
}

.btn-clean-action.copy-success {
  background: rgba(16, 185, 129, 0.25);
  border-color: #10b981;
  color: #34d399;
}

.btn-clean-link {
  font-size: 0.84rem;
  font-weight: 700;
  color: #7dd3fc;
  text-decoration: none;
  transition: color 0.2s ease;
  display: inline-flex;
  align-items: center;
}

.btn-clean-link:hover {
  color: #ffffff;
}

/* 3. Dates */
.highlight-dates-card {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.highlight-dates-headline {
  font-size: 1.35rem;
  font-weight: 800;
  color: #ffffff;
  letter-spacing: -0.02em;
  line-height: 1.25;
}

.highlight-dates-sub {
  font-size: 0.88rem;
  color: #94a3b8;
  margin-bottom: 1rem;
}

@media (max-width: 960px) {
  .highlights-container {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
  .highlight-divider {
    width: 100%;
    height: 1px;
    background: linear-gradient(90deg, transparent 0%, rgba(255, 255, 255, 0.15) 50%, transparent 100%);
  }
}

/* -------------------------------------------------------------
   INTRO ACCESSIBILITY PROMPT (At bottom of screen)
   ------------------------------------------------------------- */
.intro-a11y-prompt {
  margin-top: 0.75rem;
  font-size: 0.82rem;
  color: #94a3b8;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
}

.intro-a11y-link {
  background: transparent;
  border: none;
  padding: 0;
  color: #38bdf8;
  font-size: 0.82rem;
  font-weight: 700;
  text-decoration: underline;
  cursor: pointer;
  transition: color 0.2s ease;
}

.intro-a11y-link:hover {
  color: #fbbf24;
}

/* --------------------------------------------------------------------------
   SCROLL REVEAL EFFECTS
   Smooth progressive fade and slide in as user scrolls down
   -------------------------------------------------------------------------- */
.scroll-reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.75s cubic-bezier(0.16, 1, 0.3, 1), transform 0.75s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}

.scroll-reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Stagger delay children in grids */
.course-details-grid .course-detail-col:nth-child(1) { transition-delay: 0.05s; }
.course-details-grid .course-detail-col:nth-child(2) { transition-delay: 0.15s; }
.course-details-grid .course-detail-col:nth-child(3) { transition-delay: 0.25s; }

/* --------------------------------------------------------------------------
   COURSE DETAILS SECTION (Preserving the exact 3 sections from original)
   -------------------------------------------------------------------------- */
.course-details-section {
  background: var(--dch-navy);
  border-radius: var(--radius-md);
  padding: 3rem 2.5rem;
  color: #ffffff;
  box-shadow: var(--shadow-md);
  margin-bottom: 3rem;
}

.course-details-heading {
  text-align: center;
  font-size: 1.85rem;
  color: #ffffff;
  margin-bottom: 2.5rem;
}

.course-details-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2.75rem;
  text-align: center;
  margin-bottom: 2.5rem;
  max-width: 1040px;
  margin-left: auto;
  margin-right: auto;
}

@media (max-width: 900px) {
  .course-details-grid {
    display: flex !important;
    flex-direction: column !important;
    gap: 1.25rem !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box !important;
  }

  .course-detail-col {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    padding: 1.75rem 1rem !important;
  }
}

.course-detail-col {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.15rem;
  padding: 3.25rem 2.75rem;
  border-radius: var(--radius-md);
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.12);
  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,
              background 0.35s ease;
}

.course-detail-col:hover {
  background: rgba(255, 255, 255, 0.08);
  transform: translateY(-6px);
  border-color: rgba(56, 189, 248, 0.45);
  box-shadow: 0 20px 40px -10px rgba(0, 0, 0, 0.45), 0 0 25px rgba(56, 189, 248, 0.18);
}

.course-detail-icon {
  width: 68px;
  height: 68px;
  border-radius: 50%;
  border: 2px solid rgba(56, 189, 248, 0.4);
  background: rgba(56, 189, 248, 0.12);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #38bdf8;
  margin-bottom: 0.5rem;
  transition: transform 0.3s ease, border-color 0.3s ease;
}

.course-detail-col:hover .course-detail-icon {
  transform: scale(1.08);
  border-color: #38bdf8;
}

.course-detail-icon svg {
  width: 32px;
  height: 32px;
}

.course-detail-title {
  font-size: 1.25rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #38bdf8;
}

.course-detail-text {
  font-size: 1.08rem;
  color: #e2e8f0;
  line-height: 1.75;
}

.cpd-award-notice {
  text-align: center;
  font-size: 0.95rem;
  font-weight: 600;
  color: #fde68a;
  border-top: 1px solid rgba(255, 255, 255, 0.15);
  padding-top: 1.5rem;
  max-width: 700px;
  margin: 0 auto;
}

/* --------------------------------------------------------------------------
   FACULTY SECTION (Clean Cards - Replacing the dropdown boxes!)
   -------------------------------------------------------------------------- */
.section-header {
  margin-bottom: 2.75rem;
  position: relative;
}

.section-eyebrow {
  display: none !important;
}

.section-title {
  font-size: clamp(1.75rem, 2.5vw, 2.2rem);
  font-weight: 800;
  color: var(--dch-navy);
  line-height: 1.3;
}

.section-desc {
  margin-top: 1.15rem;
  font-size: 1.05rem;
  color: var(--text-secondary);
  line-height: 1.65;
}

.faculty-tabs-container {
  display: flex;
  gap: 0.5rem;
  border-bottom: 2px solid var(--border-light);
  margin-bottom: 2rem;
  overflow-x: auto;
}

.faculty-tab-btn {
  padding: 0.75rem 1.4rem;
  background: transparent;
  border: none;
  border-bottom: 3px solid transparent;
  margin-bottom: -2px;
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--text-muted);
  cursor: pointer;
  transition: all var(--transition-fast);
  white-space: nowrap;
}

.faculty-tab-btn:hover {
  color: var(--dch-navy);
}

.faculty-tab-btn.active {
  color: var(--dch-navy);
  border-bottom-color: var(--dch-navy);
}

.faculty-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
  margin-bottom: 3rem;
}

.faculty-card {
  background: #ffffff;
  border: 1px solid var(--border-light);
  border-radius: var(--radius-md);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  transition: all var(--transition-fast);
  display: flex;
  flex-direction: column;
}

.faculty-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-md);
  border-color: #cbd5e1;
}

.faculty-img-wrap {
  width: 100%;
  height: 200px;
  background: #002f5d;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
}

.faculty-img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 20%;
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

.faculty-card:hover .faculty-img-wrap img {
  transform: scale(1.05);
}

.faculty-avatar-fallback {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.15);
  border: 2px solid rgba(255, 255, 255, 0.4);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.8rem;
  font-weight: 800;
  color: #ffffff;
}

.faculty-card-body {
  padding: 1.25rem;
  text-align: center;
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.faculty-card-name {
  font-size: 1.1rem;
  font-weight: 800;
  color: var(--dch-navy);
  margin-bottom: 0.25rem;
}

.faculty-card-location {
  font-size: 0.88rem;
  color: var(--text-secondary);
  font-weight: 600;
}

.faculty-card-role {
  font-size: 0.82rem;
  color: var(--text-muted);
  margin-top: 0.35rem;
  text-transform: capitalize;
}

/* Faculty Info Panels for Invited and International */
.faculty-info-panel {
  background: #ffffff;
  border: 1px solid var(--border-light);
  border-radius: var(--radius-md);
  padding: 2.5rem;
  box-shadow: var(--shadow-sm);
  text-align: center;
  max-width: 800px;
  margin: 0 auto 3rem auto;
}

/* --------------------------------------------------------------------------
/* --------------------------------------------------------------------------
   OUR BOOK SECTION (Photorealistic 3D Clinical Textbook)
   "Fundamentals of Lower-Limb Deformity Analysis" - Second Edition
   Scroll-linked opening, photorealistic hardcover physics & dedicated close button
   -------------------------------------------------------------------------- */
.our-book-section {
  background: linear-gradient(180deg, #f8fafc 0%, #edf4fc 100%);
  border: 1px solid #dbeafe;
  border-radius: var(--radius-lg);
  padding: 3.5rem 2.5rem;
  margin-bottom: 3.5rem;
  position: relative;
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(0, 47, 93, 0.06);
}

.our-book-section::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 5px;
  background: linear-gradient(90deg, #002f5d 0%, #0284c7 50%, #38bdf8 100%);
}

.book-header-wrap {
  text-align: center;
  max-width: 820px;
  margin: 0 auto 2.5rem auto;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.book-edition-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  background: #e0f2fe;
  color: #0369a1;
  border: 1px solid #bae6fd;
  padding: 0.35rem 0.95rem;
  border-radius: var(--radius-full);
  font-size: 0.8rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  margin-bottom: 0.85rem;
}

.book-main-title {
  font-size: clamp(2rem, 3.5vw, 2.75rem);
  font-weight: 900;
  color: var(--dch-navy);
  line-height: 1.15;
  letter-spacing: -0.01em;
  text-transform: uppercase;
  margin-bottom: 0.4rem;
}

.book-main-subtitle {
  font-size: 1.2rem;
  font-weight: 700;
  color: #0284c7;
  line-height: 1.4;
  margin-bottom: 1rem;
}

.book-editorial-meta {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid #cbd5e1;
  border-radius: var(--radius-full);
  padding: 0.5rem 1.25rem;
  font-size: 0.88rem;
  color: #334155;
  flex-wrap: wrap;
  justify-content: center;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

.meta-dot {
  color: #94a3b8;
}

/* 3D Book Stage (Large-Scale Perspective) */
.book-scene {
  perspective: 2500px;
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 600px;
  width: 100%;
  position: relative;
  margin: 1.5rem auto 0 auto;
}

/* The Grand 3D Book Wrapper (Expansive, Natural Book Proportions) */
.book-3d-wrapper {
  position: relative;
  width: min(880px, 94vw);
  max-width: 880px;
  height: 620px;
  transform-style: preserve-3d;
  cursor: pointer;
  transform: translateX(-25%);
  transition: transform 0.65s cubic-bezier(0.2, 0.8, 0.2, 1);
  margin: 0 auto;
}

/* Ambient Ground Occlusion Shadow */
.book-ground-shadow {
  position: absolute;
  bottom: -28px;
  left: 50%;
  right: 0;
  height: 38px;
  background: radial-gradient(ellipse at center, rgba(0, 24, 52, 0.45) 0%, rgba(0, 0, 0, 0) 70%);
  filter: blur(16px);
  pointer-events: none;
  transition: all 0.65s cubic-bezier(0.25, 1, 0.3, 1);
  z-index: 1;
}

.book-3d-wrapper.book-fully-open .book-ground-shadow {
  left: 5%;
  right: 5%;
}

/* 3D Paper Block Thickness (Stacked Volume along Edges) */
.book-paper-edge-right {
  position: absolute;
  right: -12px;
  top: 6px;
  bottom: 6px;
  width: 12px;
  background: repeating-linear-gradient(to right, #fbfaf6 0px, #e2dcd2 2px, #f4efe6 4px);
  border-radius: 0 4px 4px 0;
  box-shadow: inset -2px 0 5px rgba(0, 0, 0, 0.22);
  pointer-events: none;
  z-index: 3;
}

.book-paper-edge-bottom {
  position: absolute;
  bottom: -12px;
  left: 50%;
  right: 0;
  height: 12px;
  background: repeating-linear-gradient(to bottom, #fbfaf6 0px, #e2dcd2 2px, #f4efe6 4px);
  border-radius: 0 0 4px 4px;
  box-shadow: inset 0 -2px 5px rgba(0, 0, 0, 0.22);
  pointer-events: none;
  z-index: 3;
  transition: left 0.65s cubic-bezier(0.25, 1, 0.3, 1);
}

.book-3d-wrapper.book-fully-open .book-paper-edge-bottom {
  left: 6px;
}

/* Desktop: Hide mobile book tabs and turn bars */
.book-mobile-page-tabs,
.book-mobile-page-bar,
.book-mobile-bottom-turn {
  display: none;
}

/* Front Cover Assembly (Hinged at Spine Center 50%, Covering Right Page) */
.book-cover-leaf {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 50%;
  transform-origin: left center;
  transform-style: preserve-3d;
  z-index: 10;
  cursor: pointer;
  transform: rotateY(0deg);
  will-change: transform;
  transition: transform 0.65s cubic-bezier(0.25, 1, 0.3, 1);
}

/* Front Face: Hardcover Jacket */
.book-cover-front {
  position: absolute;
  inset: 0;
  backface-visibility: hidden;
  border-radius: 0 12px 12px 0;
  overflow: hidden;
  box-shadow: -4px 0 14px rgba(0, 0, 0, 0.25), 8px 16px 36px rgba(0, 24, 52, 0.35);
  background: #001830;
}

.book-cover-front img {
  width: 100%;
  height: 100%;
  object-fit: fill;
  display: block;
}

/* Book page binding effect: NEVER visible when closed so front cover is 100% clean */
.book-spine-hinge {
  display: none !important;
}

.book-cover-glaze {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.16) 0%, transparent 45%, rgba(0, 0, 0, 0.15) 100%);
  pointer-events: none;
  z-index: 2;
}

.book-click-hint {
  position: absolute;
  bottom: 10px;
  left: 50%;
  transform: translateX(-50%);
  background: rgba(0, 24, 52, 0.92);
  backdrop-filter: blur(8px);
  color: #ffffff;
  padding: 0.38rem 0.95rem;
  border-radius: var(--radius-full);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  white-space: nowrap;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.35);
  border: 1px solid rgba(56, 189, 248, 0.45);
  z-index: 4;
  display: flex;
  align-items: center;
  gap: 0.4rem;
  animation: pulseBookHint 2.4s infinite;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  transition: opacity 0.2s ease, visibility 0.2s ease;
  pointer-events: auto;
}

@keyframes pulseBookHint {
  0%, 100% { transform: translateX(-50%) scale(1); box-shadow: 0 6px 20px rgba(0, 0, 0, 0.35); }
  50% { transform: translateX(-50%) scale(1.05); box-shadow: 0 8px 26px rgba(56, 189, 248, 0.5); }
}

/* Back Face of Cover (Becomes the Left Inside Page when opened -180deg) */
.book-cover-back {
  position: absolute;
  inset: 0;
  transform: rotateY(180deg);
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  border-radius: 10px 0 0 10px;
  overflow-y: auto;
  background: #fcfaf6;
  border: 1px solid #d5cec2;
  border-right: none;
  box-shadow: -8px 16px 36px rgba(0, 24, 52, 0.22);
  pointer-events: auto;
  z-index: 10;
  isolation: isolate;
}

/* Inside Two-Page Spread (Transparent backing bed with zero exposed pages before scroll!) */
.book-inside-spread {
  position: absolute;
  inset: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  background: transparent;
  border: none;
  box-shadow: none;
  pointer-events: auto;
  z-index: 5;
}

/* Transparent Left Page Bed (No background so closed book has zero inside pages showing on the left!) */
.book-page-bed-left {
  grid-column: 1;
  background: transparent;
  pointer-events: none;
}

/* Open Book State (Centering and Flat Cover) */
.book-3d-wrapper.book-fully-open {
  transform: translateX(0%) !important;
}

.book-3d-wrapper.book-fully-open .book-cover-leaf {
  transform: rotateY(-180deg) !important;
}

/* NEVER visible on inside pages, during opening, or when book is open */
.book-3d-wrapper.book-fully-open .book-click-hint,
.book-3d-wrapper.book-is-open .book-click-hint,
.book-click-hint.hint-hidden {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

/* Center Spine Gutter Crease & Shadow - ONLY visible once book is open on desktop */
.book-gutter-shadow {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 48px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, rgba(0, 0, 0, 0.02) 0%, rgba(0, 0, 0, 0.16) 35%, rgba(0, 0, 0, 0.38) 50%, rgba(0, 0, 0, 0.16) 65%, rgba(0, 0, 0, 0.02) 100%);
  pointer-events: none;
  z-index: 15;
  opacity: 0;
  transition: opacity 0.35s ease;
}

.book-3d-wrapper.book-fully-open .book-gutter-shadow {
  opacity: 1 !important;
}

/* Page binding effect along open page edges (visible ONLY when open) */
.book-3d-wrapper.book-fully-open .book-page-left::after {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  width: 24px;
  background: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, 0.12) 100%);
  pointer-events: none;
}

.book-3d-wrapper.book-fully-open .book-page-right::before {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 24px;
  background: linear-gradient(90deg, rgba(0, 0, 0, 0.12) 0%, transparent 100%);
  pointer-events: none;
}

/* Left Page (Frontispiece & Chapter TOC - on the inside of the flipped cover) */
.book-page-left {
  padding: 2.5rem 2.25rem 2.5rem 2.75rem;
  min-height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  border-right: 1px solid rgba(0, 0, 0, 0.08);
  background: #fcfaf6;
  position: relative;
}

.book-page-paper-curl {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  width: 14px;
  background: linear-gradient(90deg, rgba(0, 0, 0, 0.06) 0%, transparent 100%);
  pointer-events: none;
}

.book-page-header {
  font-size: 0.74rem;
  font-weight: 800;
  color: #0284c7;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-bottom: 0.5rem;
}

.book-page-inner-title {
  font-size: 1.35rem;
  font-weight: 900;
  color: var(--dch-navy);
  line-height: 1.25;
  margin-bottom: 0.75rem;
}

.book-page-editors {
  font-size: 0.85rem;
  color: #334155;
  line-height: 1.5;
  margin-bottom: 1rem;
  border-bottom: 1px solid #e2dcd2;
  padding-bottom: 0.75rem;
}

.book-page-accreditation {
  font-size: 0.78rem;
  font-weight: 700;
  color: #b45309;
  margin-top: 0.35rem;
}

.book-page-summary {
  font-size: 0.85rem;
  color: #475569;
  line-height: 1.55;
  margin-bottom: 1rem;
}

.book-page-toc-title {
  font-size: 0.78rem;
  font-weight: 800;
  text-transform: uppercase;
  color: var(--dch-navy);
  letter-spacing: 0.06em;
  margin-bottom: 0.6rem;
}

.book-page-toc {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.book-page-toc li {
  font-size: 0.82rem;
  color: #334155;
  display: flex;
  align-items: center;
  gap: 0.55rem;
  line-height: 1.35;
}

.toc-num {
  font-size: 0.74rem;
  font-weight: 800;
  color: #0284c7;
  background: #e0f2fe;
  padding: 0.15rem 0.45rem;
  border-radius: 4px;
  flex-shrink: 0;
}

/* Right Page (Instant Download Form & Dedicated Close Button) */
.book-page-right {
  grid-column: 2;
  padding: 2.25rem 2.75rem 2.25rem 2.25rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  background: #ffffff;
  border-radius: 0 10px 10px 0;
  border: 1px solid #d5cec2;
  box-shadow: 8px 16px 36px rgba(0, 24, 52, 0.22);
  position: relative;
  overflow-y: auto;
}

.book-page-right-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.75rem;
  border-bottom: 1px dashed #e2dcd2;
  padding-bottom: 0.75rem;
}

.form-kicker {
  font-size: 0.72rem;
  font-weight: 800;
  color: #16a34a;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.book-form-title {
  font-size: 1.35rem;
  font-weight: 900;
  color: var(--dch-navy);
  margin-top: 0.2rem;
}

/* Dedicated Top Close Book Button */
.btn-book-top-close {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  background: #f1f5f9;
  border: 1px solid #cbd5e1;
  border-radius: var(--radius-full);
  padding: 0.4rem 0.85rem;
  font-size: 0.78rem;
  font-weight: 700;
  color: #64748b;
  cursor: pointer;
  transition: all 0.2s ease;
  white-space: nowrap;
  flex-shrink: 0;
  user-select: none;
}

.btn-book-top-close:hover {
  background: #e2e8f0;
  color: #0f172a;
  border-color: #94a3b8;
  transform: scale(1.03);
}

.book-form-desc {
  font-size: 0.82rem;
  color: var(--text-muted);
  line-height: 1.45;
  margin-bottom: 1rem;
}

.book-form-row {
  margin-bottom: 0.75rem;
}

.book-input-label {
  display: block;
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--dch-navy);
  margin-bottom: 0.25rem;
}

.book-input-label .req {
  color: #ef4444;
}

.book-page-input {
  width: 100%;
  background: #f8fafc;
  border: 1.5px solid #cbd5e1;
  border-radius: var(--radius-sm);
  padding: 0.6rem 0.85rem;
  font-size: 0.88rem;
  color: var(--dch-navy);
  outline: none;
  font-family: inherit;
  transition: all 0.2s ease;
}

.book-page-input:focus {
  background: #ffffff;
  border-color: #0284c7;
  box-shadow: 0 0 0 3px rgba(2, 132, 199, 0.15);
}

.book-download-btn {
  width: 100%;
  background: linear-gradient(135deg, #002f5d 0%, #0284c7 100%);
  color: #ffffff;
  border: none;
  padding: 0.85rem 1.25rem;
  border-radius: var(--radius-sm);
  font-size: 0.95rem;
  font-weight: 800;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  box-shadow: 0 4px 14px rgba(0, 47, 93, 0.25);
  transition: all 0.25s ease;
  margin-top: 0.5rem;
}

.book-download-btn:hover {
  background: linear-gradient(135deg, #0284c7 0%, #0369a1 100%);
  transform: translateY(-2px);
  box-shadow: 0 8px 22px rgba(2, 132, 199, 0.38);
}

.book-action-footer {
  margin-top: 0.85rem;
  padding-top: 0.75rem;
  border-top: 1px dashed #cbd5e1;
  text-align: center;
}

.btn-no-thanks {
  background: transparent;
  border: 1px solid #cbd5e1;
  border-radius: var(--radius-full);
  color: #64748b;
  font-size: 0.78rem;
  font-weight: 700;
  padding: 0.45rem 1rem;
  cursor: pointer;
  transition: all 0.2s ease;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  user-select: none;
}

.btn-no-thanks:hover {
  background: #f1f5f9;
  border-color: #94a3b8;
  color: var(--dch-navy);
  transform: translateY(-1px);
}

/* Success Download Content inside Book */
.book-success-content {
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100%;
  gap: 0.85rem;
  padding: 1.5rem;
}

/* ==========================================================================
   MOBILE RESPONSIVE BOOK RULES
   Takes up half the page, sits directly underneath the title
   ========================================================================== */
@media (max-width: 768px) {
  .our-book-section {
    padding: 2rem 1.25rem;
    margin-bottom: 2.5rem;
  }

  .book-header-wrap {
    text-align: center;
    margin-bottom: 1.25rem;
  }

  .book-main-title {
    font-size: 1.75rem;
  }

  .book-main-subtitle {
    font-size: 1rem;
  }

  .book-editorial-meta {
    flex-direction: column;
    gap: 0.25rem;
    border-radius: var(--radius-sm);
    padding: 0.5rem 0.85rem;
    font-size: 0.82rem;
  }

  .meta-dot {
    display: none;
  }

  /* Hide 3D desktop paper edges on mobile */
  .book-paper-edge-right,
  .book-paper-edge-bottom,
  .book-page-bed-left,
  .book-gutter-shadow {
    display: none !important;
  }

  /* Mobile Book Stage Scene */
  .book-scene {
    width: 100%;
    min-height: 520px;
    height: auto !important;
    margin: 0 auto;
    padding: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    perspective: 1200px;
  }

  /* Mobile Book Page Switcher Segmented Tabs */
  .book-mobile-page-tabs {
    display: none;
    width: 100%;
    max-width: 380px;
    margin: 0 auto 1.25rem auto;
    background: #ffffff;
    border: 1px solid rgba(0, 47, 93, 0.14);
    border-radius: 9999px;
    padding: 4px;
    box-shadow: 0 4px 14px rgba(0, 47, 93, 0.08);
    gap: 4px;
    z-index: 20;
  }

  /* Mobile: Clean Front Cover on the page - NEVER opens inline on mobile */
  .book-mobile-page-tabs,
  .book-mobile-page-bar,
  .book-mobile-bottom-turn {
    display: none !important;
  }

  .book-scene {
    min-height: 480px;
    padding: 1rem 0 2rem 0;
    display: flex;
    justify-content: center;
    align-items: center;
  }

  /* Mobile Book Stage: Pristine closed front cover */
  .book-3d-wrapper {
    width: min(320px, 86vw) !important;
    max-width: 320px !important;
    height: 470px !important;
    transform: none !important;
    margin: 0 auto !important;
    position: relative !important;
    cursor: pointer !important;
  }

  .book-cover-leaf {
    position: absolute !important;
    inset: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    transform: none !important;
  }

  .book-cover-front {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    border-radius: 0 12px 12px 0 !important;
    overflow: hidden !important;
    box-shadow: -4px 0 14px rgba(0, 0, 0, 0.25), 8px 16px 36px rgba(0, 24, 52, 0.35) !important;
    display: block !important;
  }

  .book-cover-front img {
    width: 100% !important;
    height: 100% !important;
    object-fit: fill !important;
    display: block !important;
  }

  .book-paper-edge-right {
    right: -10px !important;
    width: 10px !important;
  }

  .book-paper-edge-bottom {
    left: 0 !important;
    right: 0 !important;
    bottom: -10px !important;
    height: 10px !important;
  }

  .book-ground-shadow {
    left: 5% !important;
    right: 5% !important;
    bottom: -22px !important;
    height: 30px !important;
  }

  /* Mobile page never shows inside pages inline */
  .book-cover-back,
  .book-inside-spread {
    display: none !important;
  }
}

/* FULL-SCREEN 3D BOOK EXPERIENCE */
.fullscreen-book-backdrop {
    position: fixed;
    inset: 0;
    z-index: 99999;
    background: rgba(0, 16, 36, 0.95);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    display: flex;
    flex-direction: column;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.35s ease, visibility 0.35s ease;
  }

  .fullscreen-book-backdrop.open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }

  .fullscreen-book-topbar {
    padding: 0.75rem 1rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
    background: rgba(0, 24, 52, 0.92);
    backdrop-filter: blur(8px);
    flex-shrink: 0;
  }

  .fs-book-title-meta {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
  }

  .fs-book-badge {
    background: #e0f2fe;
    color: #0369a1;
    padding: 0.25rem 0.6rem;
    border-radius: var(--radius-full);
    font-size: 0.7rem;
    font-weight: 800;
    text-transform: uppercase;
  }

  .fs-book-title {
    display: none;
  }

  .fs-book-page-badge {
    background: rgba(56, 189, 248, 0.18);
    color: #38bdf8;
    border: 1px solid rgba(56, 189, 248, 0.4);
    padding: 0.22rem 0.65rem;
    border-radius: 9999px;
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    white-space: nowrap;
  }

  .fs-book-close-btn {
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.25);
    color: #ffffff;
    padding: 0.45rem 0.85rem;
    border-radius: var(--radius-full);
    font-size: 0.8rem;
    font-weight: 700;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 0.35rem;
  }

  .fs-book-stage {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0.75rem 0.65rem 1rem 0.65rem;
    perspective: 1800px;
    height: calc(100vh - 65px);
    overflow: hidden;
  }

  .fs-book-3d {
    position: relative;
    width: 100%;
    max-width: 440px;
    height: 100%;
    max-height: calc(100vh - 90px);
    transform-style: preserve-3d;
  }

  /* Front Cover on Mobile: Full Width that rotates open */
  .fs-book-cover {
    position: absolute;
    inset: 0;
    width: 100% !important;
    height: 100% !important;
    border-radius: 0 12px 12px 0;
    box-shadow: 0 16px 45px rgba(0, 0, 0, 0.65), -6px 0 16px rgba(0, 0, 0, 0.3);
    transform-origin: left center;
    transform-style: preserve-3d;
    transition: transform 0.75s cubic-bezier(0.25, 1, 0.3, 1), opacity 0.3s ease 0.45s;
    z-index: 25;
    cursor: pointer;
    background: #001830;
    overflow: hidden;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
  }

  .fs-book-cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  /* 3D Book Cover Turning Open Animation */
  .fs-book-3d.fs-book-open .fs-book-cover {
    transform: rotateY(-180deg) !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }

  /* Spread on Mobile: Single Page Bed with smooth page turn transition */
  .fs-book-spread {
    position: absolute;
    inset: 0;
    width: 100% !important;
    height: 100% !important;
    display: block !important;
    background: #fcfaf6;
    border-radius: 12px;
    border: 1px solid #d5cec2;
    border-left: 8px solid #002f5d;
    box-shadow: 0 16px 50px rgba(0, 0, 0, 0.55);
    overflow: hidden;
  }

  .fs-book-gutter {
    display: none !important;
  }

  .fs-book-page {
    position: absolute;
    inset: 0;
    width: 100% !important;
    height: 100% !important;
    padding: 1.35rem 1.15rem 1.15rem 1.15rem !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    background: #fcfaf6;
    border: none !important;
    transition: transform 0.4s cubic-bezier(0.25, 1, 0.3, 1), opacity 0.35s ease;
  }

  /* Page 1 (GDPR) active on mobile */
  .fs-book-spread.fs-show-gdpr .fs-page-left {
    opacity: 1 !important;
    transform: translateX(0) !important;
    pointer-events: auto !important;
    z-index: 5;
  }
  .fs-book-spread.fs-show-gdpr .fs-page-right {
    opacity: 0 !important;
    transform: translateX(45px) !important;
    pointer-events: none !important;
    z-index: 1;
  }

  /* Page 2 (Download Form) active on mobile */
  .fs-book-spread.fs-show-form .fs-page-left {
    opacity: 0 !important;
    transform: translateX(-45px) !important;
    pointer-events: none !important;
    z-index: 1;
  }
  .fs-book-spread.fs-show-form .fs-page-right {
    opacity: 1 !important;
    transform: translateX(0) !important;
    pointer-events: auto !important;
    z-index: 5;
  }

  /* Button to turn page to Download Form */
  .fs-turn-page-action {
    margin-top: 1.25rem;
    padding-top: 0.75rem;
    border-top: 1px dashed #cbd5e1;
  }

  .btn-fs-turn-page {
    width: 100%;
    background: linear-gradient(135deg, #0284c7 0%, #002f5d 100%);
    color: #ffffff;
    border: none;
    border-radius: 12px;
    padding: 0.9rem 1.25rem;
    font-size: 0.95rem;
    font-weight: 800;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    box-shadow: 0 4px 14px rgba(2, 132, 199, 0.35);
    transition: all 0.2s ease;
  }

  .btn-fs-turn-page:active {
    transform: scale(0.98);
  }

  /* Button to turn back to GDPR Notice */
  .fs-turn-page-back-bar {
    margin-bottom: 0.85rem;
  }

  .btn-fs-turn-back {
    background: rgba(0, 47, 93, 0.08);
    color: #002f5d;
    border: 1px solid rgba(0, 47, 93, 0.15);
    border-radius: 9999px;
    padding: 6px 14px;
    font-size: 0.78rem;
    font-weight: 700;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: all 0.2s ease;
  }

  .btn-fs-turn-back:active {
    background: #002f5d;
    color: #ffffff;
  }

/* --------------------------------------------------------------------------
   SPONSORS SECTION & PARTNER SHOWCASE
   -------------------------------------------------------------------------- */
.sponsors-section {
  background: #ffffff;
  border: 1px solid var(--border-light);
  border-radius: var(--radius-md);
  padding: 3rem 2.5rem;
  box-shadow: var(--shadow-sm);
  text-align: center;
  margin-top: 2.5rem;
  position: relative;
  overflow: hidden;
}

.sponsors-section::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, #002f5d 0%, #0284c7 50%, #f59e0b 100%);
}

/* ==========================================================================
   SECTION 9: SPONSORS & PARTNERS - FLOATING WHITE SHOWCASE
   Crisp white floating deck that transitions seamlessly into the footer
   ========================================================================== */
.sponsors-full-section.bg-section-white-floating {
  background: #ffffff !important;
  color: #0f172a;
  position: relative;
  z-index: 5;
  padding-bottom: 5.5rem;
  box-shadow: 0 20px 45px -10px rgba(0, 31, 63, 0.08);
}

.sponsors-full-section.bg-section-white-floating .section-title {
  color: #002f5d !important;
}

.sponsors-full-section.bg-section-white-floating .section-eyebrow {
  background: rgba(2, 132, 199, 0.1) !important;
  color: #0284c7 !important;
  border: 1px solid rgba(2, 132, 199, 0.25) !important;
}

.sponsors-inner-wrap {
  max-width: 1140px;
  margin: 0 auto;
  position: relative;
}

/* Floating Headline Sponsor Card (Smith+Nephew) */
.sponsor-headline-container {
  max-width: 640px;
  margin: 0 auto 2.5rem auto;
}

.sponsor-headline-card {
  background: #ffffff;
  border: 1.5px solid rgba(0, 47, 93, 0.1);
  border-radius: 18px;
  padding: 2.2rem 2.5rem;
  box-shadow: 0 14px 35px -6px rgba(0, 47, 93, 0.08), 0 2px 8px rgba(0, 0, 0, 0.03);
  position: relative;
  transition: all 0.28s cubic-bezier(0.16, 1, 0.3, 1);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.sponsor-headline-card:hover {
  transform: translateY(-5px);
  border-color: #0284c7;
  box-shadow: 0 22px 48px -8px rgba(2, 132, 199, 0.16);
}

.sponsor-headline-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  background: rgba(2, 132, 199, 0.1);
  color: #0284c7;
  border: 1px solid rgba(2, 132, 199, 0.25);
  padding: 0.35rem 0.95rem;
  border-radius: 9999px;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin-bottom: 1.4rem;
}

.sponsor-headline-badge svg {
  color: #f59e0b;
}

.sponsor-headline-logo-wrap {
  min-height: 85px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
}

.sponsor-headline-logo-wrap img {
  max-height: 80px;
  max-width: 88%;
  width: auto;
  object-fit: contain;
  transition: transform 0.25s ease;
}

.sponsor-headline-card:hover .sponsor-headline-logo-wrap img {
  transform: scale(1.04);
}

/* Secondary Co-Sponsors Floating Grid (6 Companies) */
.sponsors-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}

.sponsor-partner-card {
  background: #ffffff;
  border: 1px solid rgba(0, 47, 93, 0.09);
  border-radius: 14px;
  padding: 1.85rem 1.5rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 125px;
  box-shadow: 0 4px 16px -2px rgba(0, 47, 93, 0.05);
  transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  position: relative;
}

.sponsor-partner-card:hover {
  background: #ffffff;
  border-color: #0284c7;
  transform: translateY(-5px);
  box-shadow: 0 16px 36px -6px rgba(2, 132, 199, 0.16);
}

.sponsor-partner-card img {
  max-height: 52px;
  max-width: 84%;
  height: auto;
  object-fit: contain;
  transition: transform 0.25s ease;
}

.sponsor-partner-card:hover img {
  transform: scale(1.08);
}

.sponsor-company-label {
  font-size: 0.76rem;
  font-weight: 700;
  color: #64748b;
  margin-top: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  transition: color 0.2s ease;
}

.sponsor-partner-card:hover .sponsor-company-label {
  color: #002f5d;
}

.sponsor-cta-banner {
  margin-top: 2.25rem;
  padding: 1.5rem;
  background: #f8fafc;
  border: 1px dashed var(--border-subtle);
  border-radius: var(--radius-sm);
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1rem;
  text-align: left;
}

/* --------------------------------------------------------------------------
   VISITING (The Venue & Getting Here)
   -------------------------------------------------------------------------- */
.visiting-subnav {
  display: flex;
  gap: 0.75rem;
  margin-bottom: 2rem;
}

.visiting-tab {
  padding: 0.75rem 1.5rem;
  border-radius: var(--radius-sm);
  background: #ffffff;
  border: 1px solid var(--border-light);
  color: var(--dch-navy);
  font-weight: 700;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  transition: all var(--transition-fast);
}

.visiting-tab.active {
  background: var(--dch-navy);
  color: #ffffff;
  border-color: var(--dch-navy);
}

/* ==========================================================================
   DOUBLETREE BY HILTON HULL - APPLE-GRADE VENUE PRESENTATION
   ========================================================================== */
.venue-hero-presentation {
  background: #ffffff;
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 24px;
  overflow: hidden;
  box-shadow: 0 10px 30px -5px rgba(15, 23, 42, 0.06), 0 0 0 1px rgba(15, 23, 42, 0.04);
  margin-bottom: 3.5rem;
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

.venue-hero-presentation:hover {
  transform: translateY(-2px);
  box-shadow: 0 20px 45px -10px rgba(15, 23, 42, 0.1), 0 0 0 1px rgba(15, 23, 42, 0.06);
}

.venue-hero-gallery {
  position: relative;
  width: 100%;
  height: 440px;
  overflow: hidden;
  background: #09121d;
}

.venue-hero-gallery img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}

.venue-hero-presentation:hover .venue-hero-gallery img {
  transform: scale(1.02);
}

.venue-hero-overlay-tag {
  position: absolute;
  bottom: 1.5rem;
  left: 1.75rem;
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.5rem 1.15rem;
  background: rgba(15, 23, 42, 0.82);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: var(--radius-full);
  color: #ffffff;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.venue-hero-content {
  padding: 2.5rem;
}

.venue-hero-meta-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 1rem;
}

.venue-pill-tag {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.35rem 0.85rem;
  border-radius: var(--radius-full);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.02em;
}

.venue-pill-blue {
  background: rgba(2, 132, 199, 0.08);
  color: #0284c7;
  border: 1px solid rgba(2, 132, 199, 0.2);
}

.venue-pill-emerald {
  background: rgba(16, 185, 129, 0.08);
  color: #059669;
  border: 1px solid rgba(16, 185, 129, 0.2);
}

.venue-hero-title {
  font-size: clamp(1.8rem, 2.8vw, 2.4rem);
  font-weight: 800;
  color: var(--dch-navy);
  letter-spacing: -0.03em;
  margin: 0 0 0.5rem;
}

.venue-hero-address {
  font-size: 1.05rem;
  color: var(--text-secondary);
  margin-bottom: 1.5rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.venue-hero-description {
  font-size: 1.02rem;
  line-height: 1.7;
  color: var(--text-secondary);
  max-width: 900px;
  margin-bottom: 2rem;
}

.venue-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--border-light);
}

/* --------------------------------------------------------------------------
   HOTEL AMENITIES SECTION (Strictly matching verified amenities screenshot)
   -------------------------------------------------------------------------- */
.hotel-amenities-section {
  margin-bottom: 3.5rem;
}

.amenities-section-title {
  font-size: 1.85rem;
  font-weight: 800;
  color: #0d3b66; /* Matching navy font in screenshot */
  letter-spacing: -0.02em;
  margin-bottom: 0.5rem;
}

.amenities-section-subtitle {
  color: var(--text-secondary);
  font-size: 1rem;
  margin-bottom: 2rem;
}

.amenities-grid-apple {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
}

@media (max-width: 980px) {
  .amenities-grid-apple {
    grid-template-columns: repeat(2, 1fr);
  }
}

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

.amenity-bullet-card {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1.15rem 1.35rem;
  background: #ffffff;
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 16px;
  transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  box-shadow: 0 2px 6px rgba(15, 23, 42, 0.03);
}

.amenity-bullet-card:hover {
  transform: translateY(-2px);
  border-color: rgba(2, 132, 199, 0.3);
  box-shadow: 0 8px 20px rgba(15, 23, 42, 0.08);
}

.amenity-icon-circle {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: #f8fafc;
  border: 1.5px solid #e2e8f0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #475569;
  flex-shrink: 0;
  transition: all 0.25s ease;
}

.amenity-bullet-card:hover .amenity-icon-circle {
  background: rgba(2, 132, 199, 0.1);
  border-color: #0284c7;
  color: #0284c7;
}

.amenity-title {
  font-size: 1rem;
  font-weight: 600;
  color: #1e293b;
  letter-spacing: -0.01em;
}

.travel-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem;
}

.travel-card {
  background: #ffffff;
  border: 1px solid var(--border-light);
  border-radius: var(--radius-md);
  padding: 1.75rem;
  box-shadow: var(--shadow-sm);
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.travel-icon {
  width: 42px;
  height: 42px;
  border-radius: var(--radius-sm);
  background: var(--dch-blue-light);
  color: var(--dch-navy);
  display: flex;
  align-items: center;
  justify-content: center;
}

/* --------------------------------------------------------------------------
   REGISTRATION PAGE & PRICE (£750) - 2026 EXECUTIVE LAYOUT
   Direct External Registration via HDC Interactive Portal
   -------------------------------------------------------------------------- */
.registration-full-section {
  border-bottom: none;
}

.registration-modern-grid {
  display: grid;
  grid-template-columns: minmax(320px, 430px) 1fr;
  gap: 2.5rem;
  align-items: start;
}

/* Executive Delegate Pass Card */
.delegate-pass-card-elevated {
  background: #ffffff;
  border: 1.5px solid rgba(0, 47, 93, 0.12);
  border-radius: 20px;
  padding: 2.5rem 2.2rem;
  box-shadow: 0 4px 20px rgba(0, 24, 52, 0.05);
  display: flex;
  flex-direction: column;
  position: relative;
  overflow: hidden;
  transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

.delegate-pass-card-elevated::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 5px;
  background: linear-gradient(90deg, #002f5d 0%, #0284c7 50%, #38bdf8 100%);
}

.delegate-pass-card-elevated:hover {
  border-color: rgba(2, 132, 199, 0.35);
  box-shadow: 0 8px 30px rgba(0, 24, 52, 0.08);
}

.pass-header-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 1.5rem;
}

.pass-edition-badge {
  font-size: 0.78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #0284c7;
  background: rgba(2, 132, 199, 0.08);
  padding: 0.3rem 0.75rem;
  border-radius: 6px;
  border: 1px solid rgba(2, 132, 199, 0.18);
}

.pass-dates-tag {
  font-size: 0.82rem;
  font-weight: 600;
  color: #64748b;
}

.pass-pricing-hero {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-bottom: 1.75rem;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid rgba(0, 47, 93, 0.08);
}

.pass-currency {
  font-size: 2.85rem;
  font-weight: 800;
  color: #002f5d;
  line-height: 1;
  display: inline-block;
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

.pass-amount {
  font-size: 4.85rem;
  font-weight: 900;
  color: #002f5d;
  line-height: 1;
  letter-spacing: -0.04em;
  margin-right: 0.5rem;
  display: inline-block;
  background: linear-gradient(135deg, #002f5d 0%, #0284c7 50%, #001f3f 100%);
  background-size: 200% auto;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: priceShimmer 4.5s ease-in-out infinite;
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

.delegate-pass-card:hover .pass-currency {
  transform: translateY(-3px) scale(1.06);
}

.delegate-pass-card:hover .pass-amount {
  transform: scale(1.05);
}

@keyframes priceShimmer {
  0%, 100% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
}

.pass-inclusions-divider {
  font-size: 0.8rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: #002f5d;
  margin-bottom: 1rem;
}

.pass-features-list {
  list-style: none;
  padding: 0;
  margin: 0 0 2rem 0;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.pass-features-list li {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  font-size: 0.94rem;
  color: #334155;
  line-height: 1.5;
}

.pass-check-icon {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: rgba(2, 132, 199, 0.1);
  color: #0284c7;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-top: 2px;
}

.pass-cta-btn {
  width: 100%;
  justify-content: center;
  font-size: 1.15rem;
  font-weight: 800;
  padding: 1.1rem 1.8rem;
  border-radius: 12px;
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  text-decoration: none;
  box-shadow: 0 8px 24px rgba(2, 132, 199, 0.35);
  transition: all 0.28s ease;
}

.pass-cta-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 30px rgba(2, 132, 199, 0.45);
}

.pass-security-strip {
  margin-top: 1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  font-size: 0.76rem;
  font-weight: 600;
  color: #64748b;
  text-align: center;
}

.pass-security-strip svg {
  color: #0284c7;
  flex-shrink: 0;
}

/* Delegate Information Side Stack */
.delegate-info-stack {
  display: flex;
  flex-direction: column;
  gap: 1.35rem;
}

.reg-detail-card {
  background: #ffffff;
  border: 1px solid rgba(0, 47, 93, 0.09);
  border-radius: 16px;
  padding: 1.6rem 1.85rem;
  transition: border-color 0.25s ease, box-shadow 0.25s ease;
}

.reg-detail-card:hover {
  border-color: rgba(2, 132, 199, 0.3);
  box-shadow: 0 6px 20px rgba(0, 24, 52, 0.05);
}

.reg-detail-card-header {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 0.95rem;
}

.reg-card-icon-wrap {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.reg-card-icon-wrap.icon-dining {
  background: rgba(245, 158, 11, 0.12);
  color: #d97706;
}

.reg-card-icon-wrap.icon-shield {
  background: rgba(2, 132, 199, 0.1);
  color: #0284c7;
}

.reg-card-title {
  font-size: 1.1rem;
  font-weight: 700;
  color: #002f5d;
  margin: 0;
  line-height: 1.35;
}

.reg-card-subtitle {
  font-size: 0.8rem;
  font-weight: 500;
  color: #64748b;
}

.reg-detail-card-body p {
  font-size: 0.95rem;
  color: #000000 !important;
  font-weight: 500;
  line-height: 1.65;
  margin: 0;
}

/* Cancellation Refund Timeline */
.cancel-timeline-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.85rem;
  margin-top: 0.75rem;
}

.cancel-timeline-step {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  padding: 0.85rem 0.75rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 0.45rem;
}

.step-timing {
  font-size: 0.82rem;
  color: #475569;
}

.step-badge {
  font-size: 0.76rem;
  font-weight: 700;
  padding: 0.25rem 0.6rem;
  border-radius: 9999px;
  letter-spacing: 0.02em;
}

.badge-refund-90 {
  background: rgba(16, 185, 129, 0.15);
  color: #059669;
  border: 1px solid rgba(16, 185, 129, 0.25);
}

.badge-refund-50 {
  background: rgba(2, 132, 199, 0.12);
  color: #0284c7;
  border: 1px solid rgba(2, 132, 199, 0.22);
}

.badge-refund-10 {
  background: rgba(245, 158, 11, 0.15);
  color: #d97706;
  border: 1px solid rgba(245, 158, 11, 0.25);
}

.cancel-footnote-text {
  font-size: 0.82rem;
  color: #64748b;
  margin-top: 0.75rem;
  font-style: italic;
}

/* Support Help Card */
.reg-help-card {
  background: #f0f7ff;
  border-color: rgba(2, 132, 199, 0.2);
}

.reg-help-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1rem;
}

.reg-help-text strong {
  display: block;
  font-size: 0.95rem;
  color: #002f5d;
}

.reg-help-text span {
  font-size: 0.85rem;
  color: #475569;
}

/* Registration Mobile Accordion Toggles (Desktop & Tablet: Static/Expanded; Mobile: Interactive Collapsible) */
.reg-card-header-text {
  flex: 1 1 auto;
  min-width: 0;
}

.reg-card-toggle-arrow {
  display: none;
}

.reg-help-mobile-subtitle {
  display: none;
}

@media (min-width: 769px) {
  .reg-card-toggle-arrow {
    display: none !important;
  }
  .reg-detail-card-body,
  .reg-help-collapsible-body {
    display: block !important;
    max-height: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    overflow: visible !important;
  }
  .reg-help-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
  }
  .reg-help-header {
    display: contents;
  }
  .reg-help-desktop-subtitle {
    display: block;
  }
  .reg-help-mobile-subtitle {
    display: none !important;
  }
  .reg-detail-card-header,
  .reg-help-header {
    cursor: default !important;
    user-select: auto !important;
  }
}

@media (max-width: 768px) {
  .reg-toggle-card {
    padding: 1.25rem 1.35rem;
    transition: all 0.25s ease;
  }

  .reg-toggle-card .reg-detail-card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.85rem;
    margin-bottom: 0;
    cursor: pointer;
    user-select: none;
    -webkit-tap-highlight-color: transparent;
  }

  .reg-toggle-card.is-open .reg-detail-card-header {
    margin-bottom: 0.95rem;
  }

  .reg-card-toggle-arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 8px;
    background: rgba(0, 47, 93, 0.05);
    color: #002f5d;
    flex-shrink: 0;
    transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.2s ease, color 0.2s ease;
  }

  .reg-toggle-card.is-open .reg-card-toggle-arrow {
    transform: rotate(180deg);
    background: rgba(2, 132, 199, 0.12);
    color: #0284c7;
  }

  .reg-toggle-card .reg-detail-card-body {
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    padding-top: 0;
    transition: max-height 0.35s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.25s ease, padding 0.25s ease;
  }

  .reg-toggle-card.is-open .reg-detail-card-body {
    max-height: 600px;
    opacity: 1;
    padding-top: 0.35rem;
  }

  /* Box 3 Mobile Collapsible */
  .reg-help-card.reg-toggle-card .reg-help-inner {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
  }

  .reg-help-card.reg-toggle-card .reg-help-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.85rem;
    width: 100%;
    cursor: pointer;
    user-select: none;
    -webkit-tap-highlight-color: transparent;
  }

  .reg-help-desktop-subtitle {
    display: none !important;
  }

  .reg-help-mobile-subtitle {
    display: block;
    font-size: 0.86rem;
    color: #475569;
    margin: 0.75rem 0 0.95rem 0;
    line-height: 1.5;
  }

  .reg-help-card.reg-toggle-card .reg-help-collapsible-body {
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    padding-top: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    transition: max-height 0.35s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.25s ease, padding 0.25s ease;
  }

  .reg-help-card.reg-toggle-card.is-open .reg-help-collapsible-body {
    max-height: 250px;
    opacity: 1;
    padding-top: 0.85rem;
  }

  .cancel-timeline-grid {
    grid-template-columns: 1fr;
    gap: 0.65rem;
  }
}

/* ==========================================================================
   SECTION DIVIDER (MENU NAVY BLUE WITH SUBTLE DROP SHADOW)
   Clean, executive divider using the menu's signature blue (#002f5d)
   ========================================================================== */
.elegant-section-divider {
  display: none !important;
}

/* ==========================================================================
   EDUCATION PORTAL (HDC INTERACTIVE) - 50/50 SPLIT ARCHITECTURE
   Left Column: Royal Surgical Blue with delegate companion value props
   Right Column: Pure White Seamless Canvas with prominent app screen mockups
   ========================================================================== */
.portal-full-section {
  position: relative;
  overflow: visible !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
}

.portal-split-card {
  display: grid;
  grid-template-columns: 1fr 1.22fr;
  width: 100%;
  border-radius: 28px;
  overflow: hidden;
  border: 1px solid rgba(0, 47, 93, 0.12);
  box-shadow: 0 28px 75px -15px rgba(0, 24, 52, 0.28),
              0 8px 24px -4px rgba(0, 24, 52, 0.12),
              0 0 0 1px rgba(0, 47, 93, 0.06);
}

/* Left Column: Rich Royal Blue with Text & Features */
.portal-split-left {
  background: linear-gradient(160deg, #003366 0%, #002244 50%, #00152b 100%);
  color: #ffffff;
  padding: 3.75rem 3.25rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.hdc-pill-badge-wrap {
  margin-bottom: 0.5rem;
}

.hdc-live-badge-dark {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.4rem 1.15rem;
  background: rgba(2, 132, 199, 0.18);
  border: 1px solid rgba(56, 189, 248, 0.35);
  border-radius: 9999px;
  font-size: 0.8rem;
  font-weight: 700;
  color: #7dd3fc;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.hdc-live-ping {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #38bdf8;
  box-shadow: 0 0 8px #38bdf8;
  animation: hdcPingPulse 2s cubic-bezier(0, 0, 0.2, 1) infinite;
}

@keyframes hdcPingPulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.4; transform: scale(1.3); }
}

.hdc-brand-title-dark {
  font-size: clamp(2.4rem, 4.2vw, 3.6rem);
  font-weight: 900;
  color: #ffffff;
  letter-spacing: -0.04em;
  margin: 0.8rem 0 0.5rem 0;
  line-height: 1.1;
}

.hdc-brand-cyan {
  background: linear-gradient(135deg, #38bdf8 0%, #7dd3fc 60%, #bae6fd 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.hdc-brand-subtitle-dark {
  font-size: clamp(1.05rem, 1.8vw, 1.22rem);
  color: #cbd5e1;
  line-height: 1.5;
  margin-bottom: 2rem;
}

/* High-Impact Feature Cards Stack */
.hdc-feature-card-stack {
  display: flex;
  flex-direction: column;
  gap: 0.95rem;
  margin-bottom: 2.25rem;
}

.hdc-feature-card {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 14px;
  padding: 1.1rem 1.35rem;
  display: flex;
  align-items: flex-start;
  gap: 1.1rem;
  transition: all 0.25s ease;
}

.hdc-feature-card:hover {
  background: rgba(2, 132, 199, 0.16);
  border-color: rgba(56, 189, 248, 0.4);
  transform: translateX(4px);
}

.hdc-feature-card-icon {
  width: 44px;
  height: 44px;
  border-radius: 10px;
  background: rgba(2, 132, 199, 0.22);
  border: 1px solid rgba(56, 189, 248, 0.35);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #38bdf8;
  flex-shrink: 0;
}

.hdc-card-head {
  font-size: 1.05rem;
  font-weight: 700;
  color: #ffffff;
  margin: 0 0 0.2rem 0;
}

.hdc-card-desc {
  font-size: 0.88rem;
  color: #cbd5e1;
  line-height: 1.45;
  margin: 0;
}

/* Launch Button & Meta */
.hdc-launch-deck {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.hdc-launch-btn-cyber {
  display: inline-flex;
  align-items: center;
  gap: 0.85rem;
  padding: 0.95rem 2.2rem;
  border-radius: 9999px;
  background: linear-gradient(135deg, #0284c7 0%, #0369a1 100%);
  color: #ffffff !important;
  font-size: 1.1rem;
  font-weight: 700;
  text-decoration: none;
  box-shadow: 0 0 25px rgba(2, 132, 199, 0.45);
  transition: all 0.28s ease;
}

.hdc-launch-btn-cyber:hover {
  box-shadow: 0 0 35px rgba(56, 189, 248, 0.65);
  transform: translateY(-2px);
  color: #ffffff !important;
}

.hdc-launch-arrow svg {
  transition: transform 0.25s ease;
}

.hdc-launch-btn-cyber:hover .hdc-launch-arrow svg {
  transform: translateX(3px) translateY(-2px);
}

.hdc-instant-meta-dark {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  color: #94a3b8;
  font-size: 0.82rem;
  margin-top: 1rem;
}

.hdc-instant-meta-dark svg {
  color: #38bdf8;
  flex-shrink: 0;
}

/* Right Column: Pure White Seamless Canvas - Full-Bleed Phone Mockup Stage */
.portal-split-right {
  background: #ffffff;
  padding: 0;
  margin: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
  height: 100%;
  min-height: 520px;
}

/* Subtle Blue Ambient Medical-Tech Pattern - Top Accent (Above Phones) */
.portal-split-right::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 28%;
  min-height: 110px;
  background-image: 
    radial-gradient(ellipse 70% 90% at 50% 0%, rgba(2, 132, 199, 0.16) 0%, rgba(56, 189, 248, 0.06) 55%, transparent 85%),
    radial-gradient(circle, rgba(2, 132, 199, 0.28) 1.25px, transparent 1.25px),
    linear-gradient(rgba(2, 132, 199, 0.07) 1px, transparent 1px),
    linear-gradient(90deg, rgba(2, 132, 199, 0.07) 1px, transparent 1px);
  background-size: 100% 100%, 20px 20px, 40px 40px, 40px 40px;
  background-position: center top, center top, center top, center top;
  -webkit-mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 0.85) 45%, transparent 100%);
  mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 0.85) 45%, transparent 100%);
  mix-blend-mode: multiply;
  pointer-events: none;
  z-index: 3;
}

/* Subtle Blue Ambient Medical-Tech Pattern - Bottom Accent (Below Phones) */
.portal-split-right::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 26%;
  min-height: 100px;
  background-image: 
    radial-gradient(ellipse 70% 90% at 50% 100%, rgba(2, 132, 199, 0.15) 0%, rgba(56, 189, 248, 0.05) 55%, transparent 85%),
    radial-gradient(circle, rgba(2, 132, 199, 0.25) 1.25px, transparent 1.25px),
    linear-gradient(rgba(2, 132, 199, 0.07) 1px, transparent 1px),
    linear-gradient(90deg, rgba(2, 132, 199, 0.07) 1px, transparent 1px);
  background-size: 100% 100%, 20px 20px, 40px 40px, 40px 40px;
  background-position: center bottom, center bottom, center bottom, center bottom;
  -webkit-mask-image: linear-gradient(to top, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 0.85) 45%, transparent 100%);
  mask-image: linear-gradient(to top, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 0.85) 45%, transparent 100%);
  mix-blend-mode: multiply;
  pointer-events: none;
  z-index: 3;
}

.portal-mockup-wrapper {
  width: 100%;
  height: 100%;
  min-height: 520px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
  padding: 0;
  margin: 0;
}

.portal-phone-mockup-large {
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: contain;
  object-position: center;
  display: block;
  transform: scale(1.26);
  transform-origin: center center;
  transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1), filter 0.5s ease;
  filter: drop-shadow(0 20px 45px rgba(0, 32, 64, 0.12));
}

.portal-split-right:hover .portal-phone-mockup-large {
  transform: scale(1.31);
  filter: drop-shadow(0 28px 60px rgba(0, 32, 64, 0.18));
}

/* Cloud sync badge placed cleanly in left companion column */
.hdc-cloud-sync-dark {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.45rem 1.15rem;
  background: rgba(2, 132, 199, 0.15);
  border: 1px solid rgba(56, 189, 248, 0.35);
  border-radius: 9999px;
  color: #cbd5e1;
  font-size: 0.82rem;
  font-weight: 600;
  margin-top: 1rem;
}

.hdc-cloud-sync-dark strong {
  color: #7dd3fc;
}

.badge-dot-live {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #22c55e;
  box-shadow: 0 0 10px #22c55e;
  animation: liveDotPulse 2s infinite ease-in-out;
}

@keyframes liveDotPulse {
  0%, 100% {
    opacity: 1;
    transform: scale(1);
  }
  50% {
    opacity: 0.4;
    transform: scale(0.85);
  }
}

@media (max-width: 1024px) {
  .portal-split-card {
    grid-template-columns: 1fr;
  }
  .portal-split-left {
    padding: 3.5rem 2rem;
  }
  .portal-split-right {
    min-height: 420px;
    height: 420px;
    padding: 1.5rem 0;
  }
  .portal-mockup-wrapper {
    min-height: 420px;
  }
  .portal-phone-mockup-large {
    transform: scale(1.15);
  }
  .portal-split-right:hover .portal-phone-mockup-large {
    transform: scale(1.19);
  }
}

@media (max-width: 640px) {
  .portal-split-right {
    min-height: 320px;
    height: 320px;
  }
  .portal-mockup-wrapper {
    min-height: 320px;
  }
  .portal-phone-mockup-large {
    transform: scale(1.12);
  }
}

@media (max-width: 992px) {
  .registration-modern-grid {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
  .hdc-showcase-split-grid {
    grid-template-columns: 1fr;
    gap: 3rem;
  }
  .hdc-device-stage {
    order: -1;
  }
  .cancel-timeline-grid {
    grid-template-columns: 1fr;
  }
}

/* --------------------------------------------------------------------------
   CONTACT FORM
   -------------------------------------------------------------------------- */
.contact-container {
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  gap: 2.5rem;
}

.contact-card {
  background: #ffffff;
  border: 1px solid var(--border-light);
  border-radius: var(--radius-md);
  padding: 2.25rem;
  box-shadow: var(--shadow-sm);
}

.form-group {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  margin-bottom: 1.2rem;
}

.form-label {
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--dch-navy);
}

.form-control {
  background: #ffffff;
  border: 1px solid #cbd5e1;
  border-radius: var(--radius-sm);
  padding: 0.75rem 0.9rem;
  color: var(--text-primary);
  font-family: inherit;
  font-size: 0.95rem;
  outline: none;
  transition: border-color var(--transition-fast);
}

.form-control:focus {
  border-color: var(--dch-navy);
  box-shadow: 0 0 0 3px rgba(0, 47, 93, 0.1);
}

.form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}

/* --------------------------------------------------------------------------
   INTERACTIVE CONVERSATIONAL CONTACT EXPERIENCE
   "Hello, we would love to hear from you! How would you like to contact us?"
   -------------------------------------------------------------------------- */
.interactive-contact-box {
  background: #ffffff;
  border: 1px solid var(--border-light);
  border-radius: var(--radius-md);
  box-shadow: 0 12px 32px -4px rgba(0, 47, 93, 0.08), 0 2px 6px rgba(0, 0, 0, 0.03);
  overflow: hidden;
  position: relative;
}

.interactive-contact-header {
  background: linear-gradient(135deg, #002f5d 0%, #034b91 100%);
  color: #ffffff;
  padding: 1.4rem 1.75rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.interactive-assistant-info {
  display: flex;
  align-items: center;
  gap: 0.85rem;
}

.interactive-avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.15);
  border: 2px solid rgba(255, 255, 255, 0.35);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.35rem;
  flex-shrink: 0;
}

.interactive-step-tracker {
  font-size: 0.76rem;
  font-weight: 700;
  background: rgba(255, 255, 255, 0.15);
  padding: 0.3rem 0.75rem;
  border-radius: var(--radius-full);
  letter-spacing: 0.04em;
}

.interactive-progress-bar-wrap {
  width: 100%;
  height: 4px;
  background: rgba(0, 47, 93, 0.08);
  position: relative;
  overflow: hidden;
}

.interactive-progress-bar-fill {
  height: 100%;
  width: 25%;
  background: linear-gradient(90deg, #0284c7 0%, #38bdf8 100%);
  transition: width 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

.interactive-step-body {
  padding: 2.25rem 2rem;
  min-height: 340px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.interactive-step-panel {
  animation: pageFadeIn 0.35s cubic-bezier(0.16, 1, 0.3, 1) both;
}

.interactive-prompt-title {
  font-size: 1.45rem;
  font-weight: 800;
  color: var(--dch-navy);
  line-height: 1.25;
  margin-bottom: 0.45rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.interactive-prompt-subtitle {
  font-size: 0.95rem;
  color: var(--text-secondary);
  margin-bottom: 1.75rem;
  line-height: 1.55;
}

/* Choice Cards (Step 1: Email vs Via the Website) */
.contact-choice-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.25rem;
  margin-bottom: 1.5rem;
}

.contact-choice-card {
  background: #ffffff;
  border: 2px solid var(--border-light);
  border-radius: var(--radius-sm);
  padding: 1.75rem 1.4rem;
  text-align: left;
  cursor: pointer;
  transition: all 0.22s cubic-bezier(0.16, 1, 0.3, 1);
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  position: relative;
  outline: none;
}

.contact-choice-card:hover {
  border-color: #0284c7;
  transform: translateY(-3px);
  box-shadow: 0 10px 24px -4px rgba(2, 132, 199, 0.18);
  background: #f0f9ff;
}

.choice-icon-wrap {
  width: 48px;
  height: 48px;
  border-radius: var(--radius-sm);
  background: #e0f2fe;
  color: #0284c7;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
  transition: transform 0.2s ease;
}

.contact-choice-card:hover .choice-icon-wrap {
  transform: scale(1.08);
}

.choice-card-title {
  font-size: 1.15rem;
  font-weight: 800;
  color: var(--dch-navy);
}

.choice-card-desc {
  font-size: 0.88rem;
  color: var(--text-muted);
  line-height: 1.5;
}

.choice-arrow-indicator {
  margin-top: auto;
  font-size: 0.84rem;
  font-weight: 700;
  color: #0284c7;
  display: flex;
  align-items: center;
  gap: 0.35rem;
}

/* Email Reveal Panel (for Direct Email option) */
.email-direct-panel {
  background: #f8fafc;
  border: 1px solid var(--border-light);
  border-radius: var(--radius-sm);
  padding: 1.5rem;
  margin-top: 1rem;
  animation: pageFadeIn 0.3s ease;
}

/* Match validation styling for Email & Confirm Email */
.input-feedback-wrap {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.82rem;
  font-weight: 600;
  margin-top: 0.4rem;
  min-height: 20px;
}

.input-feedback-wrap.match-success {
  color: #16a34a;
}

.input-feedback-wrap.match-error {
  color: #dc2626;
}

/* Topic tags selection pills */
.topic-tag-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  margin-bottom: 1.25rem;
}

.topic-tag-btn {
  background: #f8fafc;
  border: 1px solid #cbd5e1;
  border-radius: var(--radius-full);
  padding: 0.5rem 1rem;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--text-secondary);
  cursor: pointer;
  transition: all 0.18s ease;
  user-select: none;
}

.topic-tag-btn:hover {
  background: #e0f2fe;
  border-color: #38bdf8;
  color: #0369a1;
}

.topic-tag-btn.active {
  background: #002f5d;
  border-color: #002f5d;
  color: #ffffff;
  box-shadow: 0 2px 6px rgba(0, 47, 93, 0.2);
}

/* Interactive Navigation Buttons Bar */
.interactive-nav-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 2rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--border-light);
}

/* Success Card */
.interactive-success-wrap {
  text-align: center;
  padding: 1.5rem 0;
  animation: pageFadeIn 0.4s ease;
}

.success-check-pulse {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: #dcfce7;
  color: #16a34a;
  border: 3px solid #86efac;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 1.5rem auto;
  box-shadow: 0 0 0 10px rgba(34, 197, 94, 0.12);
  animation: successPulse 2s infinite;
}

@keyframes successPulse {
  0% { box-shadow: 0 0 0 0 rgba(34, 197, 94, 0.4); }
  70% { box-shadow: 0 0 0 16px rgba(34, 197, 94, 0); }
  100% { box-shadow: 0 0 0 0 rgba(34, 197, 94, 0); }
}

.success-ref-card {
  background: #f8fafc;
  border: 1px solid var(--border-light);
  border-radius: var(--radius-sm);
  padding: 1.25rem;
  max-width: 440px;
  margin: 1.5rem auto;
  text-align: left;
}

/* --------------------------------------------------------------------------
   ACCESSIBILITY DRAWER & MODALS
   -------------------------------------------------------------------------- */
.accessibility-drawer {
  position: fixed;
  top: 0;
  right: 0;
  transform: translateX(105%);
  visibility: hidden;
  pointer-events: none;
  width: 380px;
  max-width: 90vw;
  height: 100vh;
  background: #ffffff;
  border-left: 2px solid #e2e8f0;
  box-shadow: -10px 0 30px rgba(0, 0, 0, 0.2);
  z-index: 100005;
  transition: transform var(--transition-base), visibility var(--transition-base);
  display: flex;
  flex-direction: column;
  overflow-y: auto;
}

.accessibility-drawer.open {
  transform: translateX(0);
  visibility: visible;
  pointer-events: auto;
}

.a11y-header {
  padding: 1.5rem;
  border-bottom: 1px solid #e2e8f0;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.a11y-body {
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.a11y-control-card {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: var(--radius-sm);
  padding: 1.15rem;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}

.a11y-screen-reader-card {
  background: #f0fdf4;
  border: 1.5px solid #86efac;
}

.a11y-subtext {
  font-size: 0.78rem;
  color: #475569;
  margin-bottom: 0.45rem;
}

.a11y-pill-toggle {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.28rem 0.75rem;
  background: #e2e8f0;
  border: 1.5px solid #cbd5e1;
  border-radius: 9999px;
  font-size: 0.75rem;
  font-weight: 800;
  color: #475569;
  cursor: pointer;
  transition: all 0.2s ease;
}

.a11y-pill-toggle .pill-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #94a3b8;
  transition: all 0.2s ease;
}

.a11y-pill-toggle.active {
  background: #15803d;
  border-color: #16a34a;
  color: #ffffff;
}

.a11y-pill-toggle.active .pill-dot {
  background: #86efac;
  box-shadow: 0 0 8px #86efac;
}

.a11y-mode-grid {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.a11y-mode-btn {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.65rem 0.8rem;
  background: #ffffff;
  border: 1.5px solid #cbd5e1;
  border-radius: var(--radius-sm);
  cursor: pointer;
  text-align: left;
  transition: all 0.2s ease;
  font-family: inherit;
}

.a11y-mode-btn .mode-icon {
  font-size: 1.25rem;
  flex-shrink: 0;
}

.a11y-mode-btn .mode-info {
  display: flex;
  flex-direction: column;
  line-height: 1.25;
}

.a11y-mode-btn .mode-info strong {
  font-size: 0.82rem;
  color: var(--dch-navy);
}

.a11y-mode-btn .mode-info small {
  font-size: 0.73rem;
  color: #64748b;
}

.a11y-mode-btn:hover {
  border-color: #0284c7;
  background: #f0f9ff;
}

.a11y-mode-btn.active {
  background: #eff6ff;
  border-color: #0284c7;
  box-shadow: 0 0 0 1px #0284c7;
}

.a11y-mode-btn.active .mode-info strong {
  color: #0369a1;
}

.a11y-speed-pills {
  display: flex;
  gap: 0.3rem;
}

.a11y-speed-btn {
  padding: 0.25rem 0.55rem;
  font-size: 0.75rem;
  font-weight: 700;
  border: 1px solid #cbd5e1;
  background: #ffffff;
  border-radius: var(--radius-sm);
  color: var(--dch-navy);
  cursor: pointer;
  transition: all 0.15s ease;
}

.a11y-speed-btn.active {
  background: var(--dch-navy);
  color: #ffffff;
  border-color: var(--dch-navy);
}

.a11y-btn-group {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.4rem;
}

.a11y-btn-group-4 {
  grid-template-columns: repeat(4, 1fr);
}

.a11y-toggle-btn {
  padding: 0.55rem 0.4rem;
  background: #ffffff;
  border: 1px solid #cbd5e1;
  border-radius: var(--radius-sm);
  color: var(--dch-navy);
  font-size: 0.8rem;
  font-weight: 700;
  cursor: pointer;
  transition: all var(--transition-fast);
  text-align: center;
  font-family: inherit;
}

.a11y-toggle-btn.active {
  background: var(--dch-navy);
  color: #ffffff;
  border-color: var(--dch-navy);
}

.a11y-status-badge {
  font-size: 0.7rem;
  font-weight: 800;
  padding: 0.15rem 0.5rem;
  border-radius: 9999px;
  background: #e2e8f0;
  color: #64748b;
  text-transform: uppercase;
}

.a11y-toggle-btn.active .a11y-status-badge {
  background: #22c55e;
  color: #ffffff;
}

/* ==========================================================================
   CENTERED FLOATING SCREEN READER CONTROLS DOCK
   Positioned bottom-center so it NEVER collides with the floating a11y trigger
   ========================================================================== */
.speech-reader-bar {
  position: fixed;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%) translateY(30px);
  background: #001f3f;
  border: 1.5px solid #0284c7;
  box-shadow: 0 16px 40px rgba(0, 24, 52, 0.45), 0 0 25px rgba(2, 132, 199, 0.4);
  border-radius: 9999px;
  padding: 0.55rem 1.25rem;
  display: flex;
  align-items: center;
  gap: 1.25rem;
  z-index: 100010;
  color: #ffffff;
  max-width: 90vw;
  opacity: 0;
  pointer-events: none;
  visibility: hidden;
  transition: opacity 0.3s cubic-bezier(0.16, 1, 0.3, 1), transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), visibility 0.3s;
}

.speech-reader-bar.active {
  opacity: 1;
  pointer-events: auto;
  visibility: visible;
  transform: translateX(-50%) translateY(0);
}

.speech-reader-info {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.speech-indicator-pulse {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #38bdf8;
  box-shadow: 0 0 10px #38bdf8;
  animation: speechPulseGlow 1.4s infinite ease-in-out;
  flex-shrink: 0;
}

@keyframes speechPulseGlow {
  0%, 100% { transform: scale(1); opacity: 0.8; }
  50% { transform: scale(1.35); opacity: 1; box-shadow: 0 0 16px #38bdf8; }
}

.speech-mode-badge {
  font-size: 0.68rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #7dd3fc;
}

.speech-status-text {
  font-size: 0.82rem;
  font-weight: 700;
  color: #f8fafc;
  white-space: nowrap;
  max-width: 260px;
  overflow: hidden;
  text-overflow: ellipsis;
}

.speech-reader-actions {
  display: flex;
  align-items: center;
  gap: 0.45rem;
}

.speech-control-btn, .speech-speed-btn, .speech-stop-btn, .speech-dismiss-btn {
  background: rgba(255, 255, 255, 0.12);
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: #ffffff;
  border-radius: 50%;
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.2s ease;
  font-size: 0.75rem;
  font-weight: 700;
  font-family: inherit;
  flex-shrink: 0;
}

.speech-play-btn {
  background: #0284c7;
  border: 1.5px solid #38bdf8;
  color: #ffffff;
  border-radius: 50%;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.2s ease;
  box-shadow: 0 0 12px rgba(2, 132, 199, 0.6);
  flex-shrink: 0;
}

.speech-play-btn:hover {
  background: #0369a1;
  transform: scale(1.08);
}

.speech-control-btn:hover, .speech-speed-btn:hover {
  background: rgba(255, 255, 255, 0.25);
  transform: scale(1.05);
}

.speech-stop-btn {
  color: #f87171;
}

.speech-stop-btn:hover {
  background: rgba(239, 68, 68, 0.25);
  border-color: #ef4444;
}

.speech-dismiss-btn:hover {
  background: rgba(255, 255, 255, 0.3);
}

/* On mobile, speech bar docks at bottom and keeps clear of a11y button */
@media (max-width: 768px) {
  .speech-reader-bar {
    bottom: 14px;
    padding: 0.45rem 0.9rem;
    gap: 0.75rem;
    width: calc(100vw - 28px);
    justify-content: space-between;
  }
  .speech-status-text {
    max-width: 140px;
    font-size: 0.76rem;
  }
  /* Push floating a11y button up when screen reader is active on mobile so they NEVER collide */
  body.has-active-speech-bar .floating-a11y-widget {
    bottom: 84px !important;
  }
}

/* ==========================================================================
   INTERACTIVE INLINE SPEAKER BUTTONS (Click-Speaker Mode)
   ========================================================================== */
.a11y-inline-speaker-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #0284c7;
  color: #ffffff;
  border: 1.5px solid #38bdf8;
  margin-left: 0.5rem;
  cursor: pointer;
  vertical-align: middle;
  box-shadow: 0 2px 8px rgba(2, 132, 199, 0.35);
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
  flex-shrink: 0;
}

.a11y-inline-speaker-btn:hover {
  transform: scale(1.15);
  background: #0369a1;
  box-shadow: 0 0 14px rgba(56, 189, 248, 0.7);
}

.a11y-inline-speaker-btn.speaking {
  background: #16a34a;
  border-color: #86efac;
  animation: inlineSpeakerPulse 1.2s infinite ease-in-out;
}

@keyframes inlineSpeakerPulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.18); box-shadow: 0 0 16px rgba(34, 197, 94, 0.8); }
}

/* Visual Highlight for Currently Spoken Element */
.a11y-speaking-highlight {
  outline: 3px solid #0284c7 !important;
  outline-offset: 6px;
  border-radius: var(--radius-sm);
  background-color: rgba(2, 132, 199, 0.08) !important;
  box-shadow: 0 0 25px rgba(2, 132, 199, 0.35) !important;
  transition: all 0.25s ease;
}

/* Invert Color Mode (applied to root html so fixed elements remain pinned) */
html.mode-invert {
  filter: invert(100%) hue-rotate(180deg);
  -webkit-filter: invert(100%) hue-rotate(180deg);
  background-color: #ffffff !important;
}

/* Counter-invert media so images and videos look natural */
html.mode-invert img,
html.mode-invert video,
html.mode-invert canvas,
html.mode-invert iframe {
  filter: invert(100%) hue-rotate(180deg);
  -webkit-filter: invert(100%) hue-rotate(180deg);
}

/* Disable backdrop-filter during invert and grayscale to prevent GPU texture crash */
html.mode-invert *,
html.mode-grayscale * {
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}

/* High Contrast Mode Overrides (WCAG AAA) */
html.contrast-high body {
  background-color: #ffffff !important;
  color: #000000 !important;
}

html.contrast-high p,
html.contrast-high h1,
html.contrast-high h2,
html.contrast-high h3,
html.contrast-high h4,
html.contrast-high h5,
html.contrast-high h6,
html.contrast-high span,
html.contrast-high li,
html.contrast-high td,
html.contrast-high th,
html.contrast-high label,
html.contrast-high strong,
html.contrast-high small {
  color: #000000 !important;
  text-shadow: none !important;
}

html.contrast-high .glass-card,
html.contrast-high .syllabus-card,
html.contrast-high .faculty-card,
html.contrast-high .pricing-card,
html.contrast-high .venue-card,
html.contrast-high .a11y-control-card,
html.contrast-high .form-input,
html.contrast-high .form-select {
  background: #ffffff !important;
  color: #000000 !important;
  border: 2px solid #000000 !important;
  box-shadow: none !important;
}

html.contrast-high .btn {
  border: 2px solid #000000 !important;
}

html.contrast-high .btn-primary,
html.contrast-high .btn-navy {
  background: #000000 !important;
  color: #ffffff !important;
}

html.contrast-high .btn-primary *,
html.contrast-high .btn-navy * {
  color: #ffffff !important;
}

html.contrast-high a {
  color: #0000ee !important;
  text-decoration: underline !important;
}

html.contrast-high a:focus,
html.contrast-high button:focus {
  outline: 3px solid #000000 !important;
  outline-offset: 3px !important;
}

/* Text & Line Spacing Mode */
body.text-spacing {
  letter-spacing: 0.06em !important;
  word-spacing: 0.12em !important;
  line-height: 1.95 !important;
}

body.text-spacing p,
body.text-spacing li,
body.text-spacing h1,
body.text-spacing h2,
body.text-spacing h3,
body.text-spacing h4,
body.text-spacing span {
  line-height: 1.95 !important;
}

/* Highlight Links Mode */
body.highlight-links a,
body.highlight-links button:not(.btn-primary) {
  text-decoration: underline 2px #f59e0b !important;
  text-underline-offset: 4px;
  background-color: rgba(245, 158, 11, 0.14) !important;
  color: #b45309 !important;
}

/* Big Contrast Cursor */
body.big-cursor,
body.big-cursor * {
  cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='36' viewBox='0 0 36 36'%3E%3Cpath d='M3 3l11 26 5-10 10-5L3 3z' fill='%23001f3f' stroke='%23ffffff' stroke-width='2.5' stroke-linejoin='round'/%3E%3C/svg%3E"), auto !important;
}

/* Reading Guide Line */
#a11y-reading-guide-line {
  position: fixed;
  left: 0;
  right: 0;
  height: 3px;
  background: rgba(2, 132, 199, 0.8);
  box-shadow: 0 0 12px rgba(56, 189, 248, 0.9);
  pointer-events: none;
  z-index: 999999;
  display: none;
  transform: translateY(-50%);
}

/* Modals */
.modal-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0, 28, 56, 0.7);
  backdrop-filter: blur(4px);
  z-index: 3000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--transition-base);
}

.modal-backdrop.open {
  opacity: 1;
  pointer-events: auto;
}

.modal-dialog {
  background: #ffffff;
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-lg);
  width: 100%;
  max-width: 620px;
  max-height: 90vh;
  overflow-y: auto;
  position: relative;
}

.modal-close-btn {
  position: absolute;
  top: 1.25rem;
  right: 1.25rem;
  background: #f1f5f9;
  border: 1px solid #cbd5e1;
  color: var(--dch-navy);
  width: 34px;
  height: 34px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

.modal-close-btn:hover {
  background: #e2e8f0;
}

.toast-container {
  position: fixed;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 9999;
}

.toast-item {
  background: var(--dch-navy);
  color: #ffffff;
  padding: 0.85rem 1.6rem;
  border-radius: var(--radius-full);
  font-size: 0.92rem;
  font-weight: 700;
  box-shadow: var(--shadow-lg);
  display: flex;
  align-items: center;
  gap: 0.65rem;
}

/* ==========================================================================
   FULL-SCREEN INTERACTIVE WELCOME CONVERSATION SCREEN
   A breathtaking, alive conversational welcome experience
   ========================================================================== */
.welcome-screen-overlay {
  position: fixed;
  inset: 0;
  z-index: 99999;
  background: radial-gradient(ellipse at 50% 30%, #00264d 0%, #001428 55%, #000913 100%);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  overflow: hidden;
  color: #ffffff;
  opacity: 1;
  visibility: visible;
  transition: opacity 0.65s cubic-bezier(0.16, 1, 0.3, 1), transform 0.65s cubic-bezier(0.16, 1, 0.3, 1), filter 0.65s ease, visibility 0.65s;
}

.welcome-screen-overlay.welcome-dismissed {
  opacity: 0;
  transform: scale(1.05);
  filter: blur(14px);
  visibility: hidden;
  pointer-events: none;
}

/* Ambient glow & cyber-medical mesh */
.welcome-bg-glow {
  position: absolute;
  top: 10%;
  left: 50%;
  transform: translateX(-50%);
  width: min(1000px, 95vw);
  height: 600px;
  background: radial-gradient(circle, rgba(2, 132, 199, 0.24) 0%, rgba(56, 189, 248, 0.09) 45%, transparent 70%);
  pointer-events: none;
  filter: blur(80px);
  z-index: 1;
  transition: transform 0.2s ease-out;
  animation: ambientFloat 8s ease-in-out infinite alternate;
}

@keyframes ambientFloat {
  0% { transform: translateX(-50%) translateY(0) scale(1); }
  100% { transform: translateX(-50%) translateY(25px) scale(1.08); }
}

.welcome-grid-pattern {
  position: absolute;
  inset: 0;
  background-image: 
    linear-gradient(rgba(255, 255, 255, 0.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.025) 1px, transparent 1px);
  background-size: 48px 48px;
  pointer-events: none;
  z-index: 1;
}

/* Minimalist Cinematic Header */
.cinematic-intro-header {
  position: relative;
  z-index: 10;
  padding: 1.75rem 3rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.cinematic-brand {
  display: flex;
  align-items: center;
}

.cinematic-logo {
  height: 52px;
  width: auto;
  max-width: 240px;
  object-fit: contain;
  filter: drop-shadow(0 4px 16px rgba(0, 0, 0, 0.45));
}

.cinematic-skip-btn {
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.18);
  color: #cbd5e1;
  padding: 0.55rem 1.25rem;
  border-radius: var(--radius-full);
  font-size: 0.84rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 0.45rem;
  transition: all 0.25s ease;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.cinematic-skip-btn:hover {
  background: rgba(255, 255, 255, 0.18);
  border-color: #38bdf8;
  color: #ffffff;
  transform: translateX(3px);
  box-shadow: 0 4px 16px rgba(56, 189, 248, 0.25);
}

/* Stage & Scenes Container */
.cinematic-stage {
  position: relative;
  z-index: 10;
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
  min-height: 440px;
}

.intro-scene {
  position: absolute;
  width: 100%;
  max-width: 900px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  opacity: 0;
  transform: translateY(24px) scale(0.96);
  pointer-events: none;
  transition: opacity 0.55s cubic-bezier(0.16, 1, 0.3, 1), transform 0.55s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}

.intro-scene.active {
  opacity: 1;
  transform: translateY(0) scale(1);
  pointer-events: auto;
}

.intro-scene.exit {
  opacity: 0;
  transform: translateY(-24px) scale(1.04);
  pointer-events: none;
}

/* -------------------------------------------------------------
   SCENE 1: Hull Deformity Correction Course 2027 (Corporate Identity)
   ------------------------------------------------------------- */
.scene-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
}

.scene-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  background: rgba(2, 132, 199, 0.18);
  border: 1px solid rgba(56, 189, 248, 0.4);
  color: #7dd3fc;
  padding: 0.5rem 1.35rem;
  border-radius: var(--radius-full);
  font-size: 0.88rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin-bottom: 1.5rem;
  box-shadow: 0 0 24px rgba(2, 132, 199, 0.22);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.scene-pill-medical {
  background: rgba(2, 132, 199, 0.2);
  border-color: rgba(56, 189, 248, 0.45);
  color: #7dd3fc;
}

.scene-pill-venue {
  background: rgba(245, 158, 11, 0.16);
  border-color: rgba(251, 191, 36, 0.45);
  color: #fde68a;
  box-shadow: 0 0 24px rgba(245, 158, 11, 0.18);
}

.scene-pill-action {
  background: rgba(16, 185, 129, 0.16);
  border-color: rgba(52, 211, 153, 0.45);
  color: #a7f3d0;
  box-shadow: 0 0 24px rgba(16, 185, 129, 0.18);
}

.intro-headline {
  margin: 0;
  font-size: clamp(2.4rem, 6.5vw, 4.5rem);
  font-weight: 800;
  line-height: 1.18;
  letter-spacing: -0.025em;
  color: #ffffff;
  max-width: 860px;
}

.text-gradient-cyan {
  background: linear-gradient(135deg, #38bdf8 0%, #0ea5e9 50%, #0284c7 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  display: inline-block;
}

.intro-subline {
  margin: 1.25rem 0 0;
  font-size: clamp(1.05rem, 2.3vw, 1.35rem);
  color: #94a3b8;
  font-weight: 500;
  max-width: 680px;
  line-height: 1.5;
}

.intro-trust-bar {
  margin-top: 1.75rem;
}

.intro-inline-advance-btn {
  margin-top: 2.25rem;
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  padding: 0.65rem 1.45rem;
  border-radius: var(--radius-full);
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.16);
  color: #cbd5e1;
  font-size: 0.88rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.intro-inline-advance-btn:hover {
  background: rgba(2, 132, 199, 0.22);
  border-color: #38bdf8;
  color: #ffffff;
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(2, 132, 199, 0.28);
}

.intro-inline-advance-btn svg {
  transition: transform 0.25s ease;
}

.intro-inline-advance-btn:hover svg {
  transform: translateX(4px);
}

#intro-scene-1.active .scene-pill {
  animation: sceneSlideUp 0.6s cubic-bezier(0.16, 1, 0.3, 1) 0.05s both;
}
#intro-scene-1.active .intro-headline {
  animation: sceneSlideUp 0.65s cubic-bezier(0.16, 1, 0.3, 1) 0.15s both;
}
#intro-scene-1.active .intro-subline {
  animation: sceneSlideUp 0.65s cubic-bezier(0.16, 1, 0.3, 1) 0.25s both;
}
#intro-scene-1.active .intro-trust-bar {
  animation: sceneSlideUp 0.65s cubic-bezier(0.16, 1, 0.3, 1) 0.35s both;
}
#intro-scene-1.active .intro-inline-advance-btn {
  animation: sceneSlideUp 0.65s cubic-bezier(0.16, 1, 0.3, 1) 0.45s both;
}

/* -------------------------------------------------------------
   SCENE 2: Date & Venue Presentation
   ------------------------------------------------------------- */
.intro-headline-course {
  font-size: clamp(2.1rem, 5.6vw, 3.8rem);
  line-height: 1.25;
}

.text-highlight-gold {
  color: #fbbf24;
  text-shadow: 0 0 28px rgba(251, 191, 36, 0.45);
  font-weight: 900;
  display: inline-block;
}

.text-highlight-white {
  color: #ffffff;
  font-weight: 800;
  text-decoration: underline;
  text-decoration-color: #38bdf8;
  text-underline-offset: 6px;
  text-decoration-thickness: 3px;
}

.intro-meta-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
  margin-top: 2rem;
  width: 100%;
  max-width: 820px;
}

.intro-meta-card {
  display: flex;
  align-items: center;
  gap: 0.95rem;
  padding: 1.1rem 1.25rem;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 16px;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  text-align: left;
  transition: all 0.25s ease;
}

.intro-meta-card:hover {
  background: rgba(2, 132, 199, 0.16);
  border-color: rgba(56, 189, 248, 0.4);
  transform: translateY(-3px);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.25);
}

.intro-meta-icon {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: rgba(2, 132, 199, 0.22);
  border: 1px solid rgba(56, 189, 248, 0.35);
  color: #38bdf8;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.intro-meta-text {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}

.intro-meta-label {
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #7dd3fc;
}

.intro-meta-val {
  font-size: 0.92rem;
  font-weight: 700;
  color: #ffffff;
}

.intro-meta-bar {
  margin-top: 1.75rem;
  display: inline-flex;
  align-items: center;
  gap: 0.85rem;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.14);
  padding: 0.6rem 1.4rem;
  border-radius: var(--radius-full);
  font-size: clamp(0.82rem, 1.8vw, 0.95rem);
  font-weight: 600;
  color: #cbd5e1;
  flex-wrap: wrap;
  justify-content: center;
}

#intro-scene-2.active .scene-pill {
  animation: sceneSlideUp 0.6s cubic-bezier(0.16, 1, 0.3, 1) 0.05s both;
}
#intro-scene-2.active .intro-headline-course {
  animation: sceneSlideUp 0.65s cubic-bezier(0.16, 1, 0.3, 1) 0.15s both;
}
#intro-scene-2.active .intro-meta-grid {
  animation: sceneSlideUp 0.65s cubic-bezier(0.16, 1, 0.3, 1) 0.28s both;
}
#intro-scene-2.active .intro-inline-advance-btn {
  animation: sceneSlideUp 0.65s cubic-bezier(0.16, 1, 0.3, 1) 0.38s both;
}

/* -------------------------------------------------------------
   SCENE 3: Book or Learn More (Clean, Professional & Modern)
   ------------------------------------------------------------- */
.intro-cta-heading {
  margin: 0 0 2.25rem;
  font-size: clamp(2.1rem, 5.2vw, 3.4rem);
  font-weight: 800;
  letter-spacing: -0.025em;
  color: #ffffff;
}

#intro-scene-3.active .scene-pill {
  animation: sceneSlideUp 0.6s cubic-bezier(0.16, 1, 0.3, 1) 0.05s both;
}
#intro-scene-3.active .intro-cta-heading {
  animation: sceneSlideUp 0.6s cubic-bezier(0.16, 1, 0.3, 1) 0.12s both;
}

.intro-actions-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem;
  width: 100%;
  max-width: 780px;
}

.intro-cta-btn {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  padding: 1.4rem 1.75rem;
  min-height: 94px;
  border-radius: 20px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  cursor: pointer;
  text-align: left;
  position: relative;
  overflow: hidden;
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  color: #ffffff;
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}

.intro-btn-book {
  background: linear-gradient(135deg, rgba(2, 132, 199, 0.48) 0%, rgba(0, 47, 93, 0.85) 100%);
  border-color: rgba(56, 189, 248, 0.48);
  box-shadow: 0 16px 40px rgba(2, 132, 199, 0.28), inset 0 1px 0 rgba(255, 255, 255, 0.22);
}

#intro-scene-3.active .intro-btn-book {
  animation: sceneSlideUp 0.6s cubic-bezier(0.16, 1, 0.3, 1) 0.2s both;
}

.intro-btn-book:hover {
  background: linear-gradient(135deg, rgba(2, 132, 199, 0.68) 0%, rgba(0, 47, 93, 0.95) 100%);
  border-color: #38bdf8;
  transform: translateY(-4px) scale(1.02);
  box-shadow: 0 24px 50px rgba(56, 189, 248, 0.45);
}

.intro-btn-learn {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.2);
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.25), inset 0 1px 0 rgba(255, 255, 255, 0.14);
}

#intro-scene-3.active .intro-btn-learn {
  animation: sceneSlideUp 0.6s cubic-bezier(0.16, 1, 0.3, 1) 0.28s both;
}

.intro-btn-learn:hover {
  background: rgba(255, 255, 255, 0.15);
  border-color: #38bdf8;
  transform: translateY(-4px) scale(1.02);
  box-shadow: 0 24px 50px rgba(2, 132, 199, 0.3);
}

.intro-btn-icon-box {
  width: 50px;
  height: 50px;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.12);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #38bdf8;
  flex-shrink: 0;
  transition: all 0.3s ease;
}

.intro-cta-btn:hover .intro-btn-icon-box {
  background: #38bdf8;
  color: #001830;
  transform: scale(1.08);
}

.intro-btn-content {
  flex: 1;
  display: flex;
  flex-direction: column;
}

/* Learn More specifically has no subtext - center content vertically */
.intro-btn-learn .intro-btn-content {
  justify-content: center;
}

.intro-btn-main {
  font-size: 1.35rem;
  font-weight: 800;
  line-height: 1.2;
  color: #ffffff;
  letter-spacing: -0.01em;
}

.intro-btn-sub {
  font-size: 0.86rem;
  color: #cbd5e1;
  margin-top: 0.25rem;
  font-weight: 500;
}

.intro-btn-tag {
  font-size: 0.74rem;
  font-weight: 800;
  padding: 0.32rem 0.75rem;
  border-radius: var(--radius-full);
  background: #38bdf8;
  color: #001a35;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  align-self: flex-start;
}

.intro-btn-arrow {
  font-size: 1.5rem;
  color: #94a3b8;
  font-weight: 700;
  transition: transform 0.25s ease, color 0.25s ease;
}

.intro-btn-learn:hover .intro-btn-arrow {
  color: #38bdf8;
  transform: translateX(6px);
}

/* Quick secondary pills */
.intro-quick-links {
  margin-top: 2rem;
  display: flex;
  align-items: center;
  gap: 1.25rem;
  justify-content: center;
  flex-wrap: wrap;
}

#intro-scene-3.active .intro-quick-links {
  animation: sceneSlideUp 0.6s cubic-bezier(0.16, 1, 0.3, 1) 0.36s both;
}

.intro-link-item {
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.16);
  color: #94a3b8;
  padding: 0.55rem 1.15rem;
  border-radius: var(--radius-full);
  font-size: 0.88rem;
  font-weight: 600;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  transition: all 0.2s ease;
}

.intro-link-item:hover {
  background: rgba(255, 255, 255, 0.1);
  border-color: #38bdf8;
  color: #38bdf8;
  transform: translateY(-2px);
}

.quick-link-divider {
  color: rgba(255, 255, 255, 0.2);
}

/* -------------------------------------------------------------
   Cinematic Progress Dots Footer
   ------------------------------------------------------------- */
.cinematic-progress-footer {
  position: relative;
  z-index: 10;
  padding: 1.5rem 3rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.intro-progress-indicators {
  display: flex;
  align-items: center;
  gap: 0.85rem;
}

.intro-dot {
  width: 32px;
  height: 6px;
  border-radius: 3px;
  background: rgba(255, 255, 255, 0.22);
  border: none;
  cursor: pointer;
  padding: 0;
  position: relative;
  transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
  outline: none;
}

.intro-dot:hover {
  background: rgba(255, 255, 255, 0.55);
  transform: scaleY(1.3);
}

.intro-dot:focus-visible {
  box-shadow: 0 0 0 2px #38bdf8;
}

.intro-dot.active {
  width: 52px;
  background: #38bdf8;
  box-shadow: 0 0 16px rgba(56, 189, 248, 0.7);
}

.intro-footer-copy {
  font-size: 0.84rem;
  color: #64748b;
  font-weight: 500;
}

/* Responsive adjustments for intro screen */
@media (max-width: 768px) {
  .cinematic-intro-header {
    padding: 1.25rem 1.5rem;
  }
  .cinematic-logo {
    height: 42px;
  }
  .cinematic-stage {
    min-height: 380px;
    padding: 1rem;
  }
  .intro-headline {
    font-size: clamp(1.8rem, 7vw, 2.8rem);
  }
  .intro-headline-course {
    font-size: clamp(1.65rem, 6vw, 2.5rem);
  }
  .intro-meta-bar {
    font-size: 0.8rem;
    padding: 0.5rem 1rem;
  }
  .intro-meta-grid {
    grid-template-columns: 1fr;
    gap: 0.75rem;
    margin-top: 1.25rem;
  }
  .intro-actions-grid {
    grid-template-columns: 1fr;
    gap: 1rem;
  }
  .intro-cta-btn {
    padding: 1.25rem 1.4rem;
  }
  .intro-btn-main {
    font-size: 1.2rem;
  }
  .cinematic-progress-footer {
    padding: 1.25rem 1.5rem;
    flex-direction: column;
    gap: 0.75rem;
  }
}

/* ==========================================================================
   FULL-SCREEN 3D FLIPPING BOOK MODAL
   ========================================================================== */
.fullscreen-book-backdrop {
  position: fixed;
  inset: 0;
  z-index: 60000;
  background: rgba(0, 16, 36, 0.94);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  display: flex;
  flex-direction: column;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.4s ease, visibility 0.4s ease;
  overflow-y: auto;
  overflow-x: hidden;
}

.fullscreen-book-backdrop.open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.fullscreen-book-topbar {
  padding: 1.25rem 2.5rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(0, 24, 52, 0.7);
  backdrop-filter: blur(8px);
  z-index: 10;
}

.fs-book-title-meta {
  display: flex;
  align-items: center;
  gap: 0.85rem;
}

.fs-book-badge {
  background: #e0f2fe;
  color: #0369a1;
  padding: 0.3rem 0.75rem;
  border-radius: var(--radius-full);
  font-size: 0.75rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.fs-book-title {
  color: #ffffff;
  font-weight: 700;
  font-size: 1.05rem;
}

.fs-book-page-badge {
  background: rgba(56, 189, 248, 0.18);
  color: #38bdf8;
  border: 1px solid rgba(56, 189, 248, 0.4);
  padding: 0.25rem 0.75rem;
  border-radius: var(--radius-full);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  white-space: nowrap;
}

.fs-book-close-btn {
  background: rgba(255, 255, 255, 0.12);
  border: 1px solid rgba(255, 255, 255, 0.25);
  color: #ffffff;
  padding: 0.5rem 1.15rem;
  border-radius: var(--radius-full);
  font-size: 0.85rem;
  font-weight: 700;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 0.45rem;
  transition: all 0.2s ease;
}

.fs-book-close-btn:hover {
  background: rgba(239, 68, 68, 0.25);
  border-color: #ef4444;
  color: #fca5a5;
}

/* 3D Book Stage (Desktop & Tablet) */
@media (min-width: 769px) {
  .fs-book-stage {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    perspective: 2600px;
    padding: 2.5rem 1.5rem;
  }

  .fs-book-3d {
    position: relative;
    width: 900px;
    max-width: 94vw;
    height: 600px;
    max-height: 82vh;
    transform-style: preserve-3d;
    transition: all 0.8s cubic-bezier(0.2, 0.8, 0.2, 1);
  }

  /* Front Cover */
  .fs-book-cover {
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    width: 50%;
    border-radius: 0 10px 10px 0;
    box-shadow: 12px 20px 45px rgba(0, 0, 0, 0.55), -4px 0 12px rgba(0, 0, 0, 0.2);
    transform-origin: left center;
    transform-style: preserve-3d;
    transition: transform 0.95s cubic-bezier(0.25, 1, 0.3, 1), opacity 0.4s ease 0.4s;
    z-index: 10;
    cursor: pointer;
    background: #ffffff;
    overflow: hidden;
  }

  .fs-book-cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  /* Spine crease hidden so cover is 100% clean */
  .fs-book-spine-crease {
    display: none !important;
  }

  .fs-turn-page-action,
  .fs-turn-page-back-bar {
    display: none !important;
  }

  .fs-book-open-prompt {
    position: absolute;
    bottom: 24px;
    left: 50%;
    transform: translateX(-50%);
    background: rgba(0, 31, 63, 0.9);
    backdrop-filter: blur(6px);
    color: #ffffff;
    padding: 0.6rem 1.4rem;
    border-radius: var(--radius-full);
    font-size: 0.85rem;
    font-weight: 800;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.4);
    animation: pulseHint 2s infinite;
  }

  /* Open Book State */
  .fs-book-3d.fs-book-open .fs-book-cover {
    transform: rotateY(-180deg);
    opacity: 0;
    pointer-events: none;
  }

  /* Inside Two-Page Spread */
  .fs-book-spread {
    position: absolute;
    inset: 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    background: #fbfaf5;
    border-radius: 8px;
    box-shadow: 0 24px 70px rgba(0, 0, 0, 0.6), inset 0 0 100px rgba(0, 0, 0, 0.04);
    border: 1px solid #d5cec2;
    overflow: hidden;
  }

  .fs-book-gutter {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 50%;
    width: 44px;
    transform: translateX(-50%);
    background: linear-gradient(90deg, rgba(0, 0, 0, 0.06) 0%, rgba(0, 0, 0, 0.22) 50%, rgba(0, 0, 0, 0.06) 100%);
    pointer-events: none;
    z-index: 5;
  }

  .fs-book-page {
    padding: 2.5rem 2.5rem 2.25rem 2.5rem;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    overflow-y: auto;
    position: relative;
    background: #fbfaf5;
  }

  .fs-page-left {
    border-right: 1px solid rgba(0, 0, 0, 0.08);
    padding-right: 3rem;
  }

  .fs-page-right {
    padding-left: 3rem;
    background: #fcfbfa;
  }
}

.fs-page-inner {
  display: flex;
  flex-direction: column;
  height: 100%;
  justify-content: space-between;
}

.fs-page-badge {
  font-size: 0.72rem;
  font-weight: 800;
  color: #0369a1;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 0.4rem;
}

.fs-page-book-title {
  font-size: 1.45rem;
  font-weight: 900;
  color: var(--dch-navy);
  line-height: 1.25;
  margin-bottom: 0.85rem;
}

.fs-page-editorial-box {
  background: rgba(0, 47, 93, 0.05);
  border-left: 3px solid #0284c7;
  padding: 0.75rem 1rem;
  border-radius: 4px;
  margin-bottom: 1rem;
}

.fs-editor-row {
  font-size: 0.82rem;
  color: #1e293b;
  line-height: 1.5;
}

.fs-ed-role {
  font-weight: 800;
  color: var(--dch-navy);
  margin-right: 0.35rem;
}

.fs-ed-name {
  font-weight: 600;
}

.fs-page-prose p {
  font-size: 0.85rem;
  color: #475569;
  line-height: 1.6;
  margin-bottom: 1rem;
}

.fs-page-toc-box {
  background: #f4efe6;
  border: 1px solid #e5ded0;
  padding: 1rem 1.15rem;
  border-radius: 6px;
  margin-top: 0.5rem;
}

.fs-toc-heading {
  font-size: 0.76rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--dch-navy);
  margin-bottom: 0.45rem;
}

.fs-toc-list {
  list-style: none;
  font-size: 0.78rem;
  color: #334155;
  line-height: 1.6;
}

.fs-toc-list li {
  margin-bottom: 0.25rem;
}

.fs-page-footer-meta {
  display: flex;
  justify-content: space-between;
  font-size: 0.72rem;
  color: #94a3b8;
  font-weight: 600;
  border-top: 1px solid #e5ded0;
  padding-top: 0.75rem;
  margin-top: 1rem;
}

/* Right Page Form */
.fs-form-page-header {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  margin-bottom: 1.25rem;
  padding-bottom: 0.85rem;
  border-bottom: 1px dashed #d5cec2;
}

.fs-feather-icon {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: var(--dch-navy);
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.fs-form-title {
  font-size: 1.25rem;
  font-weight: 900;
  color: var(--dch-navy);
  line-height: 1.2;
}

.fs-form-sub {
  font-size: 0.78rem;
  color: #64748b;
  margin-top: 0.15rem;
}

.fs-textbook-form {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

.fs-form-group {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.fs-form-group label {
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--dch-navy);
}

.fs-form-group .req {
  color: #ef4444;
}

.fs-book-field,
.fs-book-select {
  width: 100%;
  background: transparent;
  border: none;
  border-bottom: 1.5px solid #cbd5e1;
  padding: 0.45rem 0;
  font-size: 0.88rem;
  color: var(--dch-navy);
  font-family: inherit;
  outline: none;
  transition: border-color 0.2s ease;
}

.fs-book-field:focus,
.fs-book-select:focus {
  border-bottom-color: #0284c7;
}

.fs-form-agreement {
  margin-top: 0.35rem;
}

.fs-checkbox-label {
  display: flex;
  align-items: flex-start;
  gap: 0.55rem;
  font-size: 0.75rem;
  color: #64748b;
  cursor: pointer;
  line-height: 1.45;
}

.fs-checkbox-label input {
  margin-top: 2px;
  accent-color: #0284c7;
}

.fs-download-btn {
  width: 100%;
  background: var(--dch-navy);
  color: #ffffff;
  border: none;
  padding: 0.85rem 1.4rem;
  border-radius: var(--radius-sm);
  font-size: 0.95rem;
  font-weight: 800;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  box-shadow: 0 4px 14px rgba(0, 47, 93, 0.25);
  transition: all 0.25s ease;
  margin-top: 0.5rem;
}

.fs-download-btn:hover {
  background: #0284c7;
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(2, 132, 199, 0.35);
}

/* Success Download Stamp */
.fs-success-box {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100%;
  text-align: center;
  padding: 2rem 1rem;
  gap: 1rem;
}

.fs-stamp-seal {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  border: 3px dashed #16a34a;
  color: #16a34a;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2.2rem;
  font-weight: 900;
  animation: stampIn 0.5s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes stampIn {
  from { transform: scale(2) rotate(-15deg); opacity: 0; }
  to { transform: scale(1) rotate(0deg); opacity: 1; }
}

@media (max-width: 820px) {
  .welcome-button-grid {
    grid-template-columns: 1fr;
  }

  .welcome-dialogue-card {
    padding: 1.5rem 1.25rem;
  }

  .welcome-screen-header {
    padding: 1.25rem 1.25rem;
  }

  .welcome-logo {
    height: 44px;
  }

  .fs-book-spread {
    grid-template-columns: 1fr;
    overflow-y: auto;
  }

  .fs-book-gutter {
    display: none;
  }

  .fs-page-left {
    border-right: none;
    border-bottom: 1px solid #d5cec2;
    padding: 1.5rem 1.25rem;
  }

  .fs-page-right {
    padding: 1.5rem 1.25rem;
  }

  .fs-book-cover {
    display: none;
  }
}

/* ==========================================================================
   APPLE-GRADE FLUID VIEW TRANSITIONS & CASCADING REVEAL SYSTEM
   Native app momentum, spring physics & staggered element entrances
   ========================================================================== */
.app-view {
  opacity: 0;
  transform: translateY(22px) scale(0.988);
  filter: blur(4px);
  transition: opacity 0.5s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.5s cubic-bezier(0.16, 1, 0.3, 1),
              filter 0.4s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform, filter;
}

.app-view.is-active {
  opacity: 1;
  transform: translateY(0) scale(1);
  filter: blur(0);
}

/* Staggered cascading reveal of children elements inside active view */
.app-view.is-active > * {
  animation: appleSpringCascade 0.75s cubic-bezier(0.16, 1, 0.3, 1) both;
}

.app-view.is-active > *:nth-child(1) { animation-delay: 0.02s; }
.app-view.is-active > *:nth-child(2) { animation-delay: 0.08s; }
.app-view.is-active > *:nth-child(3) { animation-delay: 0.14s; }
.app-view.is-active > *:nth-child(4) { animation-delay: 0.20s; }
.app-view.is-active > *:nth-child(5) { animation-delay: 0.26s; }
.app-view.is-active > *:nth-child(6) { animation-delay: 0.32s; }
.app-view.is-active > *:nth-child(7) { animation-delay: 0.38s; }
.app-view.is-active > *:nth-child(8) { animation-delay: 0.44s; }

@keyframes appleSpringCascade {
  0% {
    opacity: 0;
    transform: translateY(24px) scale(0.985);
    filter: blur(8px);
  }
  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
    filter: blur(0);
  }
}

/* Side navigation tactile fluid states */
.nav-link, .subnav-link {
  transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1) !important;
  position: relative;
}

.nav-link:active, .subnav-link:active {
  transform: scale(0.96) !important;
  transition: transform 0.1s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.nav-link.active {
  background: rgba(2, 132, 199, 0.12) !important;
  color: #0284c7 !important;
  font-weight: 700 !important;
  box-shadow: inset 3px 0 0 #0284c7;
}

/* Scroll reveal items */
.scroll-reveal {
  opacity: 0;
  transform: translateY(28px) scale(0.985);
  transition: opacity 0.85s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.85s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}

.scroll-reveal.revealed {
  opacity: 1;
  transform: translateY(0) scale(1);
}

/* ==========================================================================
   AMBIENT LUMINOUS MESH GLOW SHAPES (Dynamic Color & High-End Atmosphere)
   ========================================================================== */
.ambient-glow-mesh-wrap {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  pointer-events: none;
  z-index: 0;
}

.ambient-orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  pointer-events: none;
  will-change: transform, opacity;
}

.orb-cyan {
  width: 420px;
  height: 420px;
  top: 5%;
  left: -80px;
  background: radial-gradient(circle, rgba(2, 132, 199, 0.22) 0%, rgba(56, 189, 248, 0.08) 50%, transparent 70%);
  animation: floatOrbCyan 18s ease-in-out infinite alternate;
}

.orb-navy {
  width: 500px;
  height: 500px;
  top: 25%;
  right: -100px;
  background: radial-gradient(circle, rgba(0, 47, 93, 0.25) 0%, rgba(30, 58, 138, 0.1) 60%, transparent 75%);
  animation: floatOrbNavy 22s ease-in-out infinite alternate;
}

.orb-amber {
  width: 380px;
  height: 380px;
  top: 48%;
  left: 10%;
  background: radial-gradient(circle, rgba(245, 158, 11, 0.16) 0%, rgba(217, 119, 6, 0.06) 50%, transparent 70%);
  animation: floatOrbAmber 16s ease-in-out infinite alternate;
}

.orb-indigo {
  width: 440px;
  height: 440px;
  top: 75%;
  right: 5%;
  background: radial-gradient(circle, rgba(99, 102, 241, 0.18) 0%, rgba(79, 70, 229, 0.06) 55%, transparent 70%);
  animation: floatOrbIndigo 20s ease-in-out infinite alternate;
}

@keyframes floatOrbCyan {
  0% { transform: translate(0, 0) scale(1); opacity: 0.5; }
  50% { transform: translate(40px, 30px) scale(1.08); opacity: 0.7; }
  100% { transform: translate(-20px, 60px) scale(0.95); opacity: 0.45; }
}

@keyframes floatOrbNavy {
  0% { transform: translate(0, 0) scale(1); opacity: 0.6; }
  50% { transform: translate(-50px, 40px) scale(1.1); opacity: 0.8; }
  100% { transform: translate(30px, -30px) scale(0.92); opacity: 0.55; }
}

@keyframes floatOrbAmber {
  0% { transform: translate(0, 0) scale(1); opacity: 0.4; }
  50% { transform: translate(35px, -35px) scale(1.12); opacity: 0.65; }
  100% { transform: translate(-30px, 20px) scale(0.98); opacity: 0.35; }
}

@keyframes floatOrbIndigo {
  0% { transform: translate(0, 0) scale(1); opacity: 0.5; }
  50% { transform: translate(-40px, -30px) scale(1.06); opacity: 0.75; }
  100% { transform: translate(25px, 45px) scale(0.94); opacity: 0.45; }
}

/* ==========================================================================
   SCULPTED SVG SECTION DIVIDERS & SHAPE ACCENTS
   ========================================================================== */
.section-shape-divider {
  position: relative;
  width: 100%;
  overflow: hidden;
  line-height: 0;
  z-index: 2;
  margin: 1.25rem 0 2rem;
}

.section-shape-divider svg {
  position: relative;
  display: block;
  width: 100%;
  height: 44px;
}

.shape-fill-subtle {
  fill: rgba(2, 132, 199, 0.03);
}

.shape-glow-line {
  stroke: rgba(2, 132, 199, 0.28);
  stroke-width: 2px;
  stroke-linecap: round;
  filter: drop-shadow(0 0 6px rgba(2, 132, 199, 0.35));
}

.wave-divider-hero {
  margin-top: 2rem;
  margin-bottom: 0.5rem;
}

.angle-divider-highlights {
  margin-top: 1rem;
  margin-bottom: 2.5rem;
}

.book-curve-divider {
  margin-top: 2.5rem;
  margin-bottom: 1.5rem;
}

/* ==========================================================================
   LIVE RADAR PING FOR DOUBLETREE VENUE & GOLD CPD BADGE
   ========================================================================== */
.live-radar-wrap {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 14px;
  height: 14px;
  margin-right: 0.4rem;
  vertical-align: middle;
}

.radar-ping {
  position: absolute;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background: #38bdf8;
  animation: radarPulse 2s cubic-bezier(0, 0, 0.2, 1) infinite;
}

.radar-core {
  position: relative;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #38bdf8;
  box-shadow: 0 0 8px #38bdf8;
}

@keyframes radarPulse {
  0% { transform: scale(0.8); opacity: 0.9; }
  70% { transform: scale(2.4); opacity: 0; }
  100% { transform: scale(2.6); opacity: 0; }
}

.cpd-gold-tag {
  display: inline-flex;
  align-items: center;
  padding: 0.15rem 0.6rem;
  background: linear-gradient(135deg, rgba(245, 158, 11, 0.24) 0%, rgba(217, 119, 6, 0.3) 100%);
  border: 1px solid rgba(245, 158, 11, 0.55);
  border-radius: 9999px;
  font-size: 0.7rem;
  font-weight: 800;
  color: #fbbf24;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-right: 0.45rem;
  box-shadow: 0 0 12px rgba(245, 158, 11, 0.2);
}

/* ==========================================================================
   EXPANDED GDPR NOTICE STYLING (3D Book Left Page & Full-Screen Modal)
   ========================================================================== */
.gdpr-pill-tag {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.25rem 0.65rem;
  background: #e0f2fe;
  border: 1px solid #bae6fd;
  border-radius: 9999px;
  font-size: 0.72rem;
  font-weight: 800;
  color: #0284c7;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 0.65rem;
}

.book-gdpr-statement {
  background: rgba(0, 47, 93, 0.04);
  border-left: 3px solid #0284c7;
  padding: 0.85rem 1rem;
  border-radius: 4px;
  margin-bottom: 0.85rem;
}

.gdpr-lead-text {
  font-size: 0.86rem;
  line-height: 1.55;
  color: #1e293b;
  font-weight: 500;
  margin: 0;
}

.gdpr-policy-grid {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  margin-bottom: 0.85rem;
}

.gdpr-policy-item {
  display: flex;
  align-items: flex-start;
  gap: 0.55rem;
  font-size: 0.8rem;
  line-height: 1.45;
  color: #334155;
}

.gdpr-item-icon {
  color: #0284c7;
  flex-shrink: 0;
  margin-top: 2px;
}

.gdpr-footer-meta {
  font-size: 0.76rem;
  color: #64748b;
  line-height: 1.4;
  margin-top: auto;
  padding-top: 0.75rem;
  border-top: 1px solid rgba(0, 0, 0, 0.08);
}

.gdpr-footer-meta a {
  color: #0284c7;
  font-weight: 600;
  text-decoration: none;
}

.gdpr-footer-meta a:hover {
  text-decoration: underline;
}

/* ==========================================================================
   DYNAMIC COLOR ACCENTS & SHIMMER ANIMATIONS
   ========================================================================== */
.highlight-number {
  background: linear-gradient(135deg, #ffffff 0%, #e0f2fe 50%, #fbbf24 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 2px 14px rgba(251, 191, 36, 0.35));
}

.course-highlights-banner {
  position: relative;
  overflow: hidden;
  box-shadow: 0 24px 60px -12px rgba(2, 6, 23, 0.55), 
              0 0 45px -8px rgba(2, 132, 199, 0.22), 
              inset 0 1px 0 rgba(255, 255, 255, 0.15);
}

.course-highlights-banner::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, #38bdf8, #fbbf24, #38bdf8, transparent);
  opacity: 0.85;
}

.course-detail-col {
  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;
}

.course-detail-col:hover {
  transform: translateY(-6px);
  box-shadow: 0 16px 36px -8px rgba(0, 47, 93, 0.14), 0 0 20px rgba(2, 132, 199, 0.1);
  border-color: #93c5fd;
}

.btn-primary, .book-download-btn {
  position: relative;
  overflow: hidden;
}

.btn-primary::after, .book-download-btn::after {
  content: '';
  position: absolute;
  top: -50%;
  left: -120%;
  width: 80%;
  height: 200%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.28), transparent);
  transform: rotate(25deg);
  animation: buttonSweep 4s infinite ease-in-out;
  pointer-events: none;
}

@keyframes buttonSweep {
  0%, 75% { left: -120%; }
  100% { left: 160%; }
}

/* ==========================================================================
   FULL-PAGE VIEWPORT SECTIONS & SCROLL TRANSITIONS
   Each section fills the entire page; entering sections appear while other
   sections disappear smoothly as you scroll up and down.
   ========================================================================== */

/* Full bleed view wrapper to allow alternating backgrounds to span 100% width */
.view-wrapper {
  max-width: 100% !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}

html {
  scroll-behavior: smooth;
}

/* ==========================================================================
   ELEVATED SECTION BOXES & SEPARATE-PAGE SCROLL ANIMATION
   Each section is an elevated floating card with depth, drop shadows,
   and smooth fade-in/out transitions so delegates experience a focused,
   page-by-page flow as they scroll.
   ========================================================================== */
.full-page-section {
  width: 100%;
  max-width: 1360px;
  margin: 0 auto;
  min-height: auto;
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: relative;
  box-sizing: border-box;
  scroll-margin-top: 54px;
  overflow: visible; /* Allows hanging ticket tabs to sit atop the card */
  border-radius: 28px;
  
  /* Smooth page-to-page fade and lift animation */
  transition: opacity 0.55s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.55s cubic-bezier(0.16, 1, 0.3, 1),
              box-shadow 0.55s cubic-bezier(0.16, 1, 0.3, 1),
              filter 0.55s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform, box-shadow;

  /* Stable, fully visible by default - NO mouse hover dependency */
  opacity: 1;
  transform: scale(1) translateY(0);
  filter: none;
}

/* Focused active section: in viewport - 100% full view */
.full-page-section.in-view,
.full-page-section.section-focused {
  opacity: 1 !important;
  transform: scale(1) translateY(0) !important;
  filter: none !important;
  z-index: 5;
}

/* Light / White Section Card Boxes (#home, #faculty, #venue, #sponsors) */
.full-page-section.bg-section-white,
.full-page-section.bg-section-white-floating,
.full-page-section.bg-section-clean-venue,
#home.full-page-section,
#faculty.full-page-section,
#venue.full-page-section,
#sponsors.full-page-section {
  background-color: #ffffff;
  border: 1px solid rgba(0, 47, 93, 0.08);
  box-shadow: 0 24px 64px -12px rgba(0, 32, 64, 0.12),
              0 6px 20px -2px rgba(0, 32, 64, 0.05),
              0 0 0 1px rgba(0, 47, 93, 0.05);
}

.full-page-section.bg-section-white.section-focused,
.full-page-section.bg-section-white.in-view,
.full-page-section.bg-section-white-floating.section-focused,
.full-page-section.bg-section-white-floating.in-view,
.full-page-section.bg-section-clean-venue.section-focused,
.full-page-section.bg-section-clean-venue.in-view,
#home.full-page-section.section-focused,
#faculty.full-page-section.section-focused,
#venue.full-page-section.section-focused,
#sponsors.full-page-section.section-focused {
  box-shadow: 0 36px 90px -16px rgba(0, 32, 64, 0.18),
              0 12px 30px -4px rgba(0, 32, 64, 0.08),
              0 0 0 1px rgba(0, 47, 93, 0.07);
}

/* VIBRANT ROYAL SURGICAL BLUE SECTION CARD BOXES (#heritage, #registration) */
.full-page-section.bg-section-blue,
#heritage.full-page-section,
#registration.full-page-section,
.bg-section-blue {
  background: linear-gradient(160deg, #003a70 0%, #002f5d 48%, #001f3f 100%) !important;
  border: 1.5px solid rgba(56, 189, 248, 0.38) !important;
  color: #ffffff !important;
  box-shadow: 0 28px 75px -15px rgba(0, 24, 52, 0.6),
              0 8px 24px -4px rgba(0, 24, 52, 0.35),
              0 0 0 1px rgba(56, 189, 248, 0.25),
              0 0 40px rgba(2, 132, 199, 0.22) !important;
}

.full-page-section.bg-section-blue.section-focused,
.full-page-section.bg-section-blue.in-view,
#heritage.full-page-section.section-focused,
#heritage.full-page-section.in-view,
#registration.full-page-section.section-focused,
#registration.full-page-section.in-view {
  box-shadow: 0 40px 105px -20px rgba(0, 24, 52, 0.78),
              0 14px 40px -6px rgba(0, 24, 52, 0.48),
              0 0 0 1.5px rgba(56, 189, 248, 0.45),
              0 0 55px rgba(2, 132, 199, 0.28) !important;
}

/* Crisp White Title and Subtitle for Course Registration & Blue Sections */
#registration .section-title,
#registration .section-header .section-title,
.bg-section-blue .section-title {
  color: #ffffff !important;
  text-shadow: 0 2px 14px rgba(0, 16, 36, 0.65) !important;
}

#registration .section-desc,
#registration .section-header .section-desc,
.bg-section-blue .section-desc,
.bg-section-blue .section-header .section-desc {
  color: #ffffff !important;
  opacity: 1 !important;
  font-weight: 500 !important;
  text-shadow: 0 1px 8px rgba(0, 16, 36, 0.5) !important;
}

#registration .section-eyebrow,
.bg-section-blue .section-eyebrow {
  background: rgba(56, 189, 248, 0.18) !important;
  color: #7dd3fc !important;
  border: 1px solid rgba(56, 189, 248, 0.45) !important;
}

/* Clinical E-Book Section Card Box (#our-book) */
.full-page-section.bg-section-clean-book,
#our-book.full-page-section {
  background: linear-gradient(180deg, #ffffff 0%, #f3f8fd 100%);
  border: 1px solid rgba(2, 132, 199, 0.18);
  color: #0f172a;
  box-shadow: 0 24px 64px -12px rgba(2, 132, 199, 0.12),
              0 6px 20px -2px rgba(0, 47, 93, 0.05);
}

.full-page-section.bg-section-clean-book.section-focused,
.full-page-section.bg-section-clean-book.in-view,
#our-book.full-page-section.section-focused,
#our-book.full-page-section.in-view {
  box-shadow: 0 36px 90px -16px rgba(2, 132, 199, 0.2),
              0 12px 30px -4px rgba(0, 47, 93, 0.08),
              0 0 0 1px rgba(2, 132, 199, 0.22);
}

/* Getting Here Section Card Box (#getting-here) */
.full-page-section.bg-section-sky-travel,
#getting-here.full-page-section {
  background: linear-gradient(180deg, #f8fbff 0%, #eaf3fd 100%);
  border: 1px solid rgba(2, 132, 199, 0.18);
  box-shadow: 0 24px 64px -12px rgba(2, 132, 199, 0.12),
              0 6px 20px -2px rgba(0, 47, 93, 0.05);
}

.full-page-section.bg-section-sky-travel.section-focused,
.full-page-section.bg-section-sky-travel.in-view,
#getting-here.full-page-section.section-focused,
#getting-here.full-page-section.in-view {
  box-shadow: 0 32px 80px -18px rgba(2, 132, 199, 0.18),
              0 10px 28px -4px rgba(0, 47, 93, 0.08),
              0 0 0 1px rgba(2, 132, 199, 0.22);
}

/* Education Portal Section Box (#education-portal) */
.full-page-section.portal-full-section,
.full-page-section.bg-section-dark-portal,
#education-portal.full-page-section {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  overflow: visible !important;
  padding: 0 !important;
}

.full-page-section.portal-full-section.section-focused,
.full-page-section.portal-full-section.in-view,
#education-portal.full-page-section.section-focused,
#education-portal.full-page-section.in-view {
  box-shadow: none !important;
}

/* Directional exit transforms - fades ONLY when scrolled past */
.full-page-section.out-of-view-up {
  opacity: 0.22;
  transform: scale(0.985) translateY(-20px);
}

.full-page-section.out-of-view-down {
  opacity: 0.22;
  transform: scale(0.985) translateY(20px);
}

/* ==========================================================================
   SECTION TITLE TICKET TABS (Hanging Little Label Badge On Center Top)
   ========================================================================== */
.section-ticket-tab {
  position: absolute;
  top: -15px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 25;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 5px 18px 5px 15px;
  border-radius: 9999px;
  font-family: var(--font-sans);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.11em;
  text-transform: uppercase;
  white-space: nowrap;
  pointer-events: none;
  user-select: none;
  box-shadow: 0 6px 18px rgba(0, 32, 64, 0.22), 0 2px 5px rgba(0, 0, 0, 0.1);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

@media (max-width: 900px) {
  .section-ticket-tab {
    display: none !important;
  }
}

.ticket-tab-rivet {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #38bdf8;
  box-shadow: 0 0 6px #38bdf8;
  display: inline-block;
  flex-shrink: 0;
}

.ticket-tab-text {
  line-height: 1;
}

/* White Section Ticket Tabs (#faculty, #venue, #sponsors) */
.full-page-section.bg-section-white-floating .section-ticket-tab,
.full-page-section.bg-section-clean-venue .section-ticket-tab,
#faculty .section-ticket-tab,
#venue .section-ticket-tab,
#sponsors .section-ticket-tab {
  background: linear-gradient(135deg, #002f5d 0%, #001f3f 100%);
  color: #ffffff;
  border: 1.5px solid #0284c7;
  box-shadow: 0 6px 18px rgba(0, 47, 93, 0.25), 0 2px 5px rgba(0, 0, 0, 0.1);
}

#faculty .section-ticket-tab .ticket-tab-rivet,
#venue .section-ticket-tab .ticket-tab-rivet,
#sponsors .section-ticket-tab .ticket-tab-rivet {
  background: #38bdf8;
  box-shadow: 0 0 6px #38bdf8;
}

/* Rich Blue Section Ticket Tabs (#registration) */
.full-page-section.bg-section-blue .section-ticket-tab,
#registration .section-ticket-tab {
  background: linear-gradient(135deg, #0284c7 0%, #0369a1 100%);
  color: #ffffff;
  border: 1.5px solid rgba(255, 255, 255, 0.65);
  box-shadow: 0 6px 20px rgba(0, 15, 30, 0.45), 0 0 14px rgba(56, 189, 248, 0.35);
}

.full-page-section.bg-section-blue .section-ticket-tab .ticket-tab-rivet,
#registration .section-ticket-tab .ticket-tab-rivet {
  background: #ffffff;
  box-shadow: 0 0 6px rgba(255, 255, 255, 0.9);
}

/* Our Book Ticket Tab (#our-book) */
#our-book .section-ticket-tab,
.full-page-section.bg-section-clean-book .section-ticket-tab {
  background: linear-gradient(135deg, #002f5d 0%, #001a35 100%);
  color: #ffffff;
  border: 1.5px solid #0284c7;
  box-shadow: 0 6px 18px rgba(2, 132, 199, 0.25);
}

#our-book .section-ticket-tab .ticket-tab-rivet {
  background: #38bdf8;
  box-shadow: 0 0 6px #38bdf8;
}

/* Getting Here Ticket Tab (#getting-here) */
#getting-here .section-ticket-tab,
.full-page-section.bg-section-sky-travel .section-ticket-tab {
  background: linear-gradient(135deg, #0284c7 0%, #002f5d 100%);
  color: #ffffff;
  border: 1.5px solid #7dd3fc;
  box-shadow: 0 6px 18px rgba(2, 132, 199, 0.25);
}

#getting-here .section-ticket-tab .ticket-tab-rivet {
  background: #7dd3fc;
  box-shadow: 0 0 6px #7dd3fc;
}

/* Education Portal Ticket Tab (#education-portal) */
#education-portal .section-ticket-tab,
.portal-full-section .section-ticket-tab,
.full-page-section.bg-section-dark-portal .section-ticket-tab {
  background: linear-gradient(135deg, #002f5d 0%, #001f3f 100%);
  color: #ffffff;
  border: 1.5px solid #0284c7;
  box-shadow: 0 6px 18px rgba(0, 47, 93, 0.28), 0 2px 5px rgba(0, 0, 0, 0.12);
  top: -15px !important;
  z-index: 30 !important;
}

#education-portal .section-ticket-tab .ticket-tab-rivet,
.portal-full-section .section-ticket-tab .ticket-tab-rivet,
.full-page-section.bg-section-dark-portal .section-ticket-tab .ticket-tab-rivet {
  background: #38bdf8;
  box-shadow: 0 0 6px #38bdf8;
}

@media (prefers-reduced-motion: reduce) {
  .full-page-section {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
    transition: none !important;
  }
}

/* Physical connection pulse from sidebar navigation */
.full-page-section.section-nav-connected {
  border-left: 5px solid #0284c7 !important;
  animation: sectionNavPulse 1.2s ease-out;
}

@keyframes sectionNavPulse {
  0% { opacity: 0.95; }
  50% { opacity: 1; }
  100% { opacity: 1; }
}

/* Inner content container - Continuous, executive presentation */
.full-page-section-inner {
  width: 100%;
  max-width: 1240px;
  margin: 0 auto;
  padding: 4.5rem 2.5rem;
  box-sizing: border-box;
  opacity: 1 !important;
  transform: none !important;
  position: relative;
  z-index: 2;
}

/* Active In-View State */
.full-page-section.in-view .full-page-section-inner {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  transform: none !important;
}

/* Hero Section Padding */
.hero-full-section {
  min-height: auto;
  padding: 0 0 3.5rem 0;
  border-bottom: none;
}
.hero-full-section .full-page-section-inner {
  padding-top: 1.5rem;
}

/* ==========================================================================
   ALTERNATING SECTION BACKGROUNDS (WHITE & BLUE)
   ========================================================================== */

/* WHITE BACKGROUND SECTIONS: #home, #faculty, #registration, #getting-here, #education-portal */
.bg-section-white {
  background-color: #ffffff;
  color: #0f172a;
  border: none;
}

.bg-section-white .section-title {
  color: #002f5d !important;
}

.bg-section-white .section-eyebrow {
  background: rgba(2, 132, 199, 0.08) !important;
  color: #0284c7 !important;
  border: 1px solid rgba(2, 132, 199, 0.2) !important;
}

/* BLUE BACKGROUND SECTIONS: #heritage, #registration */
.bg-section-blue {
  background: linear-gradient(160deg, #003a70 0%, #002f5d 48%, #001f3f 100%) !important;
  color: #ffffff;
  box-shadow: 0 28px 75px -15px rgba(0, 24, 52, 0.6),
              0 8px 24px -4px rgba(0, 24, 52, 0.35),
              0 0 0 1px rgba(56, 189, 248, 0.25),
              0 0 40px rgba(2, 132, 199, 0.22) !important;
}

.bg-section-blue .section-title {
  color: #ffffff !important;
  text-shadow: 0 2px 14px rgba(0, 16, 36, 0.65) !important;
}

.bg-section-blue .section-eyebrow {
  background: rgba(56, 189, 248, 0.2) !important;
  color: #7dd3fc !important;
  border: 1px solid rgba(56, 189, 248, 0.45) !important;
}

.bg-section-blue p {
  color: #f1f5f9;
}

/* Blue Section Themed Cards & Elements */
.bg-section-blue .highlight-card {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: #ffffff;
  box-shadow: 0 16px 36px rgba(0, 0, 0, 0.3);
}

.bg-section-blue .highlight-number {
  color: #38bdf8;
}

.bg-section-blue .highlight-title {
  color: #ffffff;
}

.bg-section-blue .highlight-desc {
  color: #94a3b8;
}

.bg-section-blue .highlight-venue-title {
  color: #ffffff;
}

.bg-section-blue .highlight-venue-sub {
  color: #94a3b8;
}

.bg-section-blue .highlight-tag {
  background: rgba(56, 189, 248, 0.12);
  color: #38bdf8;
  border: 1px solid rgba(56, 189, 248, 0.25);
}

.bg-section-blue .course-details-section {
  background: transparent;
  border: none;
  box-shadow: none;
  padding: 0;
}

.bg-section-blue .course-detail-col {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: #f1f5f9;
}

.bg-section-blue .course-detail-title {
  color: #38bdf8;
}

.bg-section-blue .course-detail-text {
  color: #cbd5e1;
}

.bg-section-blue .course-detail-icon {
  background: rgba(56, 189, 248, 0.15);
  color: #38bdf8;
}

.bg-section-blue .cpd-award-notice {
  background: rgba(2, 132, 199, 0.15);
  border: 1px solid rgba(56, 189, 248, 0.25);
  color: #7dd3fc;
}

/* Venue Section inside Blue Theme */
.bg-section-blue .venue-headline-card {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.12);
}

.bg-section-blue .venue-hotel-title {
  color: #ffffff;
}

.bg-section-blue .venue-hotel-sub {
  color: #94a3b8;
}

.bg-section-blue .venue-amenities-wrap {
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.bg-section-blue .amenities-grid-title {
  color: #ffffff;
}

.bg-section-blue .amenity-bullet-card {
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: #f1f5f9;
}

.bg-section-blue .amenity-icon-circle {
  background: rgba(56, 189, 248, 0.15);
  color: #38bdf8;
}

/* Contact Section inside Blue Theme */
.bg-section-blue .card-clean {
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: #ffffff;
}

.bg-section-blue .card-clean h4 {
  color: #38bdf8;
}

.bg-section-blue .card-clean p {
  color: #cbd5e1;
}

/* ==========================================================================
   COURSE PHOTOS STYLING: HERO BANNER, WORKSHOP GALLERY & MENTORSHIP
   ========================================================================== */

/* 1. Hero Outside Panoramic Group Photo Banner Spanning Top Hero Section */
.hero-panoramic-outside-wrap.hero-banner-spanning {
  position: relative;
  width: 100%;
  height: clamp(340px, 44vh, 480px);
  overflow: hidden;
  border-radius: 26px 26px 0 0;
  border-bottom: 3px solid rgba(2, 132, 199, 0.35);
  box-shadow: 0 16px 40px -10px rgba(0, 24, 52, 0.25);
  background: #021a36;
}

.full-page-section .hero-banner-spanning {
  opacity: 0;
  visibility: hidden;
  transform: translateY(-20px) scale(0.99);
  transition: opacity 0.65s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.65s cubic-bezier(0.16, 1, 0.3, 1),
              visibility 0.65s;
  will-change: opacity, transform;
}

.full-page-section.in-view .hero-banner-spanning {
  opacity: 1;
  visibility: visible;
  transform: translateY(0) scale(1);
}

.hero-panoramic-outside-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 36%;
  display: block;
  transition: transform 0.9s cubic-bezier(0.16, 1, 0.3, 1);
}

.hero-banner-spanning:hover .hero-panoramic-outside-img {
  transform: scale(1.02);
}

.hero-panoramic-gradient-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(7, 18, 38, 0.12) 0%, rgba(7, 18, 38, 0.25) 55%, rgba(7, 18, 38, 0.78) 100%);
  pointer-events: none;
}

.hero-panoramic-floating-badge {
  position: absolute;
  top: 1.5rem;
  left: 2rem;
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  background: rgba(7, 18, 38, 0.88);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(56, 189, 248, 0.4);
  border-radius: 999px;
  padding: 0.5rem 1.25rem;
  font-size: 0.84rem;
  font-weight: 700;
  color: #38bdf8;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.45);
}

.hero-panoramic-caption {
  position: absolute;
  bottom: 1.25rem;
  left: 2rem;
  right: 2rem;
  color: #f8fafc;
  font-size: 1rem;
  font-weight: 600;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.85);
  letter-spacing: 0.02em;
}

/* Dedicated Space for Info in the Hero Section */
.hero-full-section {
  min-height: 100vh;
  padding: 0 !important;
  justify-content: flex-start;
  align-items: stretch;
}

.hero-info-inner {
  padding: 2.75rem 2.5rem 3.5rem 2.5rem;
  width: 100%;
  max-width: 1360px;
  margin: 0 auto;
}

.hero-card-lower-grid {
  display: grid;
  grid-template-columns: 1.45fr 1fr;
  gap: 3rem;
  align-items: center;
  width: 100%;
}

.hero-main-title {
  font-size: clamp(2.4rem, 3.8vw, 3.6rem);
  font-weight: 900;
  color: var(--dch-navy);
  line-height: 1.15;
  letter-spacing: -0.025em;
  margin-bottom: 1.15rem;
}

.hero-main-desc {
  font-size: 1.1rem;
  line-height: 1.7;
  color: #334155;
  margin-bottom: 2rem;
  max-width: 720px;
}

/* 2. Course Details Workshop & Lecture Action Photo Gallery */
.course-live-gallery {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.75rem;
  margin: 2rem 0;
}

.gallery-photo-card {
  position: relative;
  border-radius: 16px;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
  box-shadow: 0 16px 36px -10px rgba(0, 0, 0, 0.4);
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.4s ease;
}

.gallery-photo-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 20px 40px -10px rgba(2, 132, 199, 0.3);
  border-color: rgba(56, 189, 248, 0.35);
}

.gallery-photo-card img {
  width: 100%;
  height: 250px;
  object-fit: cover;
  object-position: center;
  display: block;
  transition: transform 0.6s ease;
}

.gallery-photo-card:hover img {
  transform: scale(1.03);
}

.gallery-photo-caption {
  padding: 0.85rem 1.15rem;
  font-size: 0.85rem;
  color: #cbd5e1;
  background: rgba(11, 23, 44, 0.95);
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  line-height: 1.45;
}

.gallery-photo-caption strong {
  color: #38bdf8;
}

/* 3. Faculty Section Mentorship Showcase Photo */
.faculty-mentorship-showcase {
  margin: 1.5rem 0 2.25rem 0;
  width: 100%;
}

.mentorship-photo-card {
  position: relative;
  width: 100%;
  height: 540px;
  max-height: 60vh;
  border-radius: 20px;
  overflow: hidden;
  border: 1px solid rgba(0, 47, 93, 0.15);
  box-shadow: 0 20px 45px -10px rgba(0, 47, 93, 0.15);
  background: #021a36;
}

.mentorship-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 62%;
  display: block;
  transition: transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}

.mentorship-photo-card:hover .mentorship-img {
  transform: scale(1.02);
}

.mentorship-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0, 24, 52, 0.15) 0%, rgba(0, 24, 52, 0.85) 100%);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 1.5rem;
}

.mentorship-badge {
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  background: rgba(0, 47, 93, 0.85);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(56, 189, 248, 0.4);
  color: #38bdf8;
  font-size: 0.82rem;
  font-weight: 700;
  padding: 0.4rem 1rem;
  border-radius: 999px;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.35);
}

.mentorship-caption {
  color: #ffffff;
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.5;
  text-shadow: 0 2px 6px rgba(0, 0, 0, 0.8);
  max-width: 700px;
}

.mentorship-caption strong {
  color: #38bdf8;
  font-weight: 700;
}

@media (max-width: 1024px) {
  .hero-panoramic-outside-wrap.hero-banner-spanning {
    height: clamp(260px, 36vh, 340px);
  }
  .hero-card-lower-grid {
    grid-template-columns: 1fr;
    gap: 2.25rem;
  }
  .hero-info-inner {
    padding: 2rem 1.5rem 3rem 1.5rem;
  }
  .course-live-gallery {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .hero-panoramic-outside-wrap.hero-banner-spanning {
    height: 230px;
  }
  .hero-panoramic-floating-badge {
    top: 0.85rem;
    left: 0.85rem;
    padding: 0.35rem 0.85rem;
    font-size: 0.75rem;
  }
  .hero-panoramic-caption {
    bottom: 0.75rem;
    left: 0.85rem;
    right: 0.85rem;
    font-size: 0.82rem;
  }
  .hero-info-inner {
    padding: 1.5rem 1rem 2.5rem 1rem;
  }
  .mentorship-photo-card {
    height: 250px;
  }
}

/* ==========================================================================
   FULL-SCREEN IMMERSIVE FOOTER & INTERACTIVE CONTACT HUB
   Fills the screen as its own destination, slides sidebar away, and adds sideways menu tab
   ========================================================================== */

/* Sideways Vertical Menu Tab on Left Edge */
.sidebar-sideways-tab {
  position: fixed;
  left: 0;
  top: 50%;
  transform: translateY(-50%) translateX(-100%);
  z-index: 1150;
  background: linear-gradient(135deg, #071728 0%, #0d2238 100%);
  color: #38bdf8;
  border: 1.5px solid rgba(56, 189, 248, 0.45);
  border-left: none;
  border-radius: 0 14px 14px 0;
  padding: 1.15rem 0.55rem;
  box-shadow: 4px 0 25px rgba(0, 0, 0, 0.4), 0 0 18px rgba(2, 132, 199, 0.25);
  cursor: pointer;
  opacity: 0;
  pointer-events: none;
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), 
              opacity 0.3s ease, 
              background 0.2s, 
              box-shadow 0.2s,
              left 0.38s cubic-bezier(0.16, 1, 0.3, 1);
}

.sideways-tab-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.65rem;
}

.sideways-tab-text {
  writing-mode: vertical-rl;
  text-orientation: mixed;
  transform: rotate(180deg);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.24em;
  color: #ffffff;
  font-family: inherit;
}

.sideways-tab-icon {
  color: #38bdf8;
  transition: transform 0.25s ease;
}

/* Sideways Vertical Menu Tab on Left Edge (revealed when in footer) */
body.footer-in-view .sidebar-sideways-tab {
  transform: translateY(-50%) translateX(0);
  opacity: 1;
  pointer-events: auto;
}

.sidebar-sideways-tab:hover {
  background: linear-gradient(135deg, #0f2744 0%, #0284c7 100%);
  color: #ffffff;
  border-color: #7dd3fc;
  box-shadow: 6px 0 28px rgba(2, 132, 199, 0.5);
}

.sidebar-sideways-tab:hover .sideways-tab-icon {
  transform: translateX(3px);
}

/* Sidebar Slide-Away & Full-Screen Footer Behavior (Desktop: >= 901px) */
@media (min-width: 901px) {
  body.footer-in-view .app-sidebar:not(.sidebar-force-open) {
    transform: translateX(-100%);
    box-shadow: none;
    transition: transform 0.38s cubic-bezier(0.16, 1, 0.3, 1);
  }

  body.footer-in-view .app-sidebar.sidebar-force-open {
    transform: translateX(0) !important;
    box-shadow: 15px 0 50px rgba(0, 0, 0, 0.6) !important;
    z-index: 1100 !important;
    transition: transform 0.38s cubic-bezier(0.16, 1, 0.3, 1);
  }

  body.footer-in-view .sidebar-sideways-tab.tab-sidebar-open {
    left: var(--sidebar-width);
    border-left: 1.5px solid rgba(56, 189, 248, 0.45);
    background: #0284c7;
    color: #ffffff;
  }

  body.footer-in-view .sidebar-sideways-tab.tab-sidebar-open .sideways-tab-icon {
    transform: rotate(180deg);
  }

  body.footer-in-view #site-footer {
    margin-left: calc(-1 * var(--sidebar-width));
    width: calc(100% + var(--sidebar-width));
    max-width: 100vw;
    transition: margin-left 0.38s cubic-bezier(0.16, 1, 0.3, 1), width 0.38s cubic-bezier(0.16, 1, 0.3, 1);
  }
}

/* Hide sideways tab on mobile / small screens where hamburger drawer is used */
@media (max-width: 900px) {
  .sidebar-sideways-tab {
    display: none !important;
  }
}

/* Full-Screen Immersive Footer Container */
#site-footer.is-visible,
#site-footer.in-view,
#site-footer.revealed,
body.footer-in-view #site-footer {
  opacity: 1 !important;
  transform: translateY(0) !important;
  visibility: visible !important;
}

.site-fullscreen-footer {
  width: 100%;
  min-height: 100vh;
  margin: 2rem 0 0 0;
  scroll-margin-top: 54px;
  border-radius: 32px 32px 0 0;
  box-sizing: border-box;
  background: radial-gradient(circle at 85% 15%, rgba(2, 132, 199, 0.18) 0%, transparent 55%),
              radial-gradient(circle at 15% 85%, rgba(14, 165, 233, 0.12) 0%, transparent 50%),
              linear-gradient(180deg, #071329 0%, #020713 100%);
  color: #f8fafc;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 4rem 3.5rem 2.25rem 3.5rem;
  border-top: 2px solid rgba(56, 189, 248, 0.28);
  box-shadow: inset 0 24px 60px -10px rgba(2, 132, 199, 0.16),
              0 -24px 60px -12px rgba(0, 15, 30, 0.35);
  position: relative;
  overflow: hidden;
  transition: opacity 0.6s ease;
}

.footer-fullscreen-container {
  width: 100%;
  max-width: 1440px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 2.75rem;
  flex: 1;
  justify-content: space-between;
}

/* Top Stage: Location info & Tab switcher */
.footer-top-stage {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 1.5rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  padding-bottom: 1.5rem;
}

.footer-location-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.8rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #38bdf8;
  margin-bottom: 0.35rem;
}

.footer-fullscreen-headline {
  font-size: 1.65rem;
  font-weight: 800;
  color: #ffffff;
  letter-spacing: -0.02em;
  margin: 0;
}

/* Interactive View Switcher Tabs */
.footer-view-switcher {
  display: inline-flex;
  align-items: center;
  background: rgba(15, 23, 42, 0.85);
  border: 1.5px solid rgba(56, 189, 248, 0.3);
  border-radius: 9999px;
  padding: 4px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.footer-tab-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.65rem 1.45rem;
  border-radius: 9999px;
  border: none;
  background: transparent;
  color: #94a3b8;
  font-size: 0.9rem;
  font-weight: 700;
  font-family: inherit;
  cursor: pointer;
  transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  position: relative;
}

.footer-tab-pill:hover {
  color: #ffffff;
}

.footer-tab-pill.active {
  background: linear-gradient(135deg, #0284c7 0%, #0369a1 100%);
  color: #ffffff;
  box-shadow: 0 4px 18px rgba(2, 132, 199, 0.5);
}

.footer-pulse-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #38bdf8;
  display: inline-block;
  box-shadow: 0 0 8px #38bdf8;
  animation: footerDotPulse 1.8s infinite;
}

@keyframes footerDotPulse {
  0% { transform: scale(0.9); opacity: 0.7; }
  50% { transform: scale(1.3); opacity: 1; }
  100% { transform: scale(0.9); opacity: 0.7; }
}

/* Stage Interactive View Panels */
.footer-stage-content {
  width: 100%;
}

.footer-interactive-view {
  display: none;
  opacity: 0;
  transform: translateY(12px);
  transition: opacity 0.35s cubic-bezier(0.16, 1, 0.3, 1), transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

.footer-interactive-view.is-active {
  display: block;
  opacity: 1;
  transform: translateY(0);
}

/* View 1: Map Showcase */
.footer-map-card {
  background: rgba(15, 23, 42, 0.75);
  border: 1px solid rgba(56, 189, 248, 0.25);
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 20px 50px -10px rgba(0, 0, 0, 0.55);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.footer-map-card-header {
  padding: 1.5rem 1.85rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 1.25rem;
  background: linear-gradient(90deg, rgba(2, 132, 199, 0.1), rgba(15, 23, 42, 0.4));
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.footer-map-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  font-size: 0.78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #38bdf8;
  margin-bottom: 0.3rem;
}

.footer-venue-title {
  font-size: 1.45rem;
  font-weight: 800;
  color: #ffffff;
  margin: 0 0 0.25rem 0;
  letter-spacing: -0.02em;
}

.footer-venue-sub {
  font-size: 0.88rem;
  color: #94a3b8;
  margin: 0;
}

.footer-map-actions {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.footer-osm-btn {
  background: rgba(255, 255, 255, 0.08) !important;
  color: #f1f5f9 !important;
  border-color: rgba(255, 255, 255, 0.18) !important;
}

.footer-osm-btn:hover {
  background: rgba(255, 255, 255, 0.18) !important;
  border-color: #38bdf8 !important;
}

.footer-map-frame-wrapper {
  position: relative;
  width: 100%;
  height: 380px;
  background: #0f172a;
}

.footer-osm-iframe {
  width: 100%;
  height: 100%;
  border: none;
  filter: contrast(1.05) saturate(1.1);
}

.footer-map-hud {
  position: absolute;
  bottom: 1rem;
  left: 1.25rem;
  right: 1.25rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 0.75rem;
  padding: 0.65rem 1.15rem;
  background: rgba(15, 23, 42, 0.88);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 12px;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
}

.hud-item {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  font-size: 0.82rem;
  font-weight: 600;
  color: #e2e8f0;
}

.hud-item svg {
  color: #38bdf8;
  flex-shrink: 0;
}

.hud-coords {
  color: #94a3b8;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: 0.78rem;
}

/* View 2: Bespoke Interactive Contact Form */
.footer-contact-card {
  background: rgba(15, 23, 42, 0.78);
  border: 1.5px solid rgba(56, 189, 248, 0.28);
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 20px 50px -10px rgba(0, 0, 0, 0.55);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  padding: 2.25rem 2.5rem;
}

.footer-contact-grid {
  display: grid;
  grid-template-columns: 1.55fr 1fr;
  gap: 2.5rem;
}

.footer-form-col {
  display: flex;
  flex-direction: column;
}

.footer-form-header {
  margin-bottom: 1.65rem;
}

.footer-form-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  font-size: 0.78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #38bdf8;
  margin-bottom: 0.35rem;
}

.footer-form-title {
  font-size: 1.5rem;
  font-weight: 800;
  color: #ffffff;
  margin: 0 0 0.35rem 0;
  letter-spacing: -0.02em;
}

.footer-form-desc {
  font-size: 0.9rem;
  color: #94a3b8;
  margin: 0;
  line-height: 1.5;
}

.footer-contact-form {
  display: flex;
  flex-direction: column;
}

.footer-form-row-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.25rem;
  margin-bottom: 1.15rem;
}

.form-group-wrap {
  display: flex;
  flex-direction: column;
  margin-bottom: 1.15rem;
}

.footer-form-label {
  font-size: 0.82rem;
  font-weight: 700;
  color: #cbd5e1;
  margin-bottom: 0.45rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.footer-form-label .req {
  color: #38bdf8;
}

.typing-input-shell {
  position: relative;
  width: 100%;
}

.typing-placeholder-input {
  width: 100%;
  background: rgba(30, 41, 59, 0.75);
  border: 1.5px solid rgba(148, 163, 184, 0.25);
  border-radius: 10px;
  padding: 0.78rem 1.05rem;
  color: #ffffff;
  font-family: inherit;
  font-size: 0.92rem;
  outline: none;
  box-sizing: border-box;
  transition: border-color 0.25s, box-shadow 0.25s, background 0.25s;
}

.typing-placeholder-input::placeholder {
  color: #94a3b8;
  font-style: italic;
  opacity: 0.85;
}

.typing-placeholder-input:focus {
  border-color: #38bdf8;
  background: rgba(30, 41, 59, 0.95);
  box-shadow: 0 0 0 3px rgba(56, 189, 248, 0.22);
}

.typing-textarea {
  resize: vertical;
  min-height: 110px;
  line-height: 1.5;
}

.typing-select-shell {
  position: relative;
  width: 100%;
}

.typing-select {
  width: 100%;
  background: #1e293b;
  border: 1.5px solid rgba(148, 163, 184, 0.25);
  border-radius: 10px;
  padding: 0.78rem 1.05rem;
  color: #ffffff;
  font-family: inherit;
  font-size: 0.88rem;
  outline: none;
  cursor: pointer;
  box-sizing: border-box;
  transition: border-color 0.25s, box-shadow 0.25s;
}

.typing-select:focus {
  border-color: #38bdf8;
  box-shadow: 0 0 0 3px rgba(56, 189, 248, 0.22);
}

.footer-form-actions {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  flex-wrap: wrap;
  margin-top: 0.5rem;
}

.footer-submit-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.85rem 1.85rem;
  border-radius: 10px;
  font-size: 0.95rem;
  font-weight: 800;
  cursor: pointer;
}

.footer-form-privacy-note {
  font-size: 0.78rem;
  color: #94a3b8;
  line-height: 1.4;
}

/* Feedback Status Banner */
.footer-feedback-banner {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  background: rgba(34, 197, 94, 0.12);
  border: 1.5px solid rgba(34, 197, 94, 0.35);
  border-radius: 12px;
  padding: 1.25rem 1.5rem;
  margin-top: 1rem;
}

.feedback-text h5 {
  color: #ffffff;
  font-size: 1.05rem;
  font-weight: 800;
  margin: 0 0 0.25rem 0;
}

.feedback-text p {
  color: #cbd5e1;
  font-size: 0.86rem;
  margin: 0;
}

/* Right Panel: Direct Contact Details */
.footer-contact-sidebar-panel {
  display: flex;
  flex-direction: column;
}

.contact-sidebar-card {
  background: rgba(30, 41, 59, 0.5);
  border: 1.5px solid rgba(56, 189, 248, 0.2);
  border-radius: 16px;
  padding: 1.75rem;
  height: 100%;
  display: flex;
  flex-direction: column;
  gap: 1.35rem;
  box-sizing: border-box;
}

.sidebar-card-badge {
  display: inline-block;
  font-size: 0.74rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #38bdf8;
}

.sidebar-card-title {
  font-size: 1.25rem;
  font-weight: 800;
  color: #ffffff;
  margin: 0;
}

.contact-card-item {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.contact-card-label {
  font-size: 0.78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #94a3b8;
}

.contact-card-email-link {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  color: #38bdf8;
  font-size: 0.98rem;
  font-weight: 700;
  text-decoration: none;
  word-break: break-all;
  transition: color 0.2s, transform 0.2s;
}

.contact-card-email-link:hover {
  color: #7dd3fc;
  transform: translateX(3px);
  text-decoration: underline;
}

.btn-facebook-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  background: #1877f2;
  color: #ffffff !important;
  font-size: 0.88rem;
  font-weight: 700;
  padding: 0.65rem 1.15rem;
  border-radius: 9999px;
  text-decoration: none;
  box-shadow: 0 4px 14px rgba(24, 119, 242, 0.35);
  transition: all 0.25s ease;
  width: fit-content;
}

.btn-facebook-pill:hover {
  background: #166fe5;
  transform: translateY(-2px);
  box-shadow: 0 6px 18px rgba(24, 119, 242, 0.5);
  color: #ffffff !important;
}

.contact-leadership-text {
  font-size: 0.84rem;
  color: #cbd5e1;
  line-height: 1.5;
  margin: 0;
}

.contact-response-notice {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  font-size: 0.8rem;
  color: #94a3b8;
  background: rgba(15, 23, 42, 0.6);
  padding: 0.65rem 0.85rem;
  border-radius: 8px;
  border: 1px solid rgba(255, 255, 255, 0.06);
  margin-top: auto;
}

.contact-response-notice svg {
  color: #38bdf8;
  flex-shrink: 0;
}

/* Lower Footer 4 Columns */
.footer-columns-row {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1.2fr 1.2fr;
  gap: 2.5rem;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  padding-top: 2.25rem;
}

.footer-col-brand .footer-brand-title {
  display: block;
  font-size: 1.3rem;
  font-weight: 800;
  color: #ffffff;
  letter-spacing: -0.02em;
  margin-bottom: 0.25rem;
}

.footer-col-brand .footer-brand-tag {
  display: inline-block;
  font-size: 0.8rem;
  font-weight: 700;
  color: #38bdf8;
  margin-bottom: 0.85rem;
}

.footer-brand-desc {
  font-size: 0.88rem;
  line-height: 1.6;
  color: #94a3b8;
  margin-bottom: 1.25rem;
}

.footer-col-title {
  font-size: 0.95rem;
  font-weight: 700;
  color: #ffffff;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin: 0 0 1.15rem 0;
  position: relative;
  padding-bottom: 0.5rem;
}

.footer-col-title::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 28px;
  height: 2px;
  background: #0284c7;
  border-radius: 2px;
}

.footer-links-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}

.footer-links-list a,
.footer-links-list .footer-link-btn {
  color: #cbd5e1;
  text-decoration: none;
  font-size: 0.88rem;
  transition: all 0.25s ease;
  display: inline-block;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  font-family: inherit;
  text-align: left;
}

.footer-links-list a:hover,
.footer-links-list .footer-link-btn:hover {
  color: #38bdf8;
  transform: translateX(4px);
}

.footer-detail-card {
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 12px;
  padding: 1rem 1.15rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.footer-detail-row {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  font-size: 0.85rem;
}

.footer-detail-row strong {
  color: #38bdf8;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.footer-detail-row span {
  color: #e2e8f0;
}

.footer-contact-lead {
  font-size: 0.82rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #94a3b8;
  margin: 0 0 0.35rem 0;
}

.footer-email-link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.95rem;
  font-weight: 700;
  color: #38bdf8;
  text-decoration: none;
  word-break: break-all;
  transition: color 0.25s ease;
}

.footer-email-link:hover {
  color: #7dd3fc;
  text-decoration: underline;
}

.btn-facebook-link {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  background: rgba(24, 119, 242, 0.15);
  border: 1px solid rgba(24, 119, 242, 0.35);
  color: #7dd3fc !important;
  font-size: 0.85rem;
  font-weight: 700;
  padding: 0.5rem 1rem;
  border-radius: 9999px;
  text-decoration: none;
  transition: all 0.25s ease;
}

.btn-facebook-link:hover {
  background: #1877f2;
  color: #ffffff !important;
  border-color: #1877f2;
  transform: translateY(-2px);
  box-shadow: 0 4px 14px rgba(24, 119, 242, 0.4);
}

/* Bottom Bar */
.footer-bottom-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 1.25rem;
  padding-top: 1.75rem;
  padding-right: 180px; /* Room for floating accessibility widget on desktop */
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  font-size: 0.82rem;
  color: #64748b;
  position: relative;
}

@media (max-width: 768px) {
  .footer-bottom-bar {
    padding-right: 75px; /* Room for floating accessibility widget on mobile */
    padding-bottom: 1.25rem;
  }
}

.footer-bottom-actions {
  display: flex;
  align-items: center;
}

.footer-designer-tag {
  color: #94a3b8;
  font-size: 0.84rem;
}

.footer-designer-tag strong {
  color: #38bdf8;
  font-weight: 700;
}

.footer-back-to-top {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.15);
  color: #e2e8f0;
  padding: 0.45rem 0.95rem;
  border-radius: 999px;
  cursor: pointer;
  font-size: 0.82rem;
  font-weight: 600;
  transition: all 0.25s ease;
}

.footer-back-to-top:hover {
  background: #0284c7;
  color: #ffffff;
  border-color: #0284c7;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(2, 132, 199, 0.4);
}

/* Responsive Footer Adjustments */
@media (max-width: 1024px) {
  .site-fullscreen-footer {
    padding: 2.75rem 2rem 2rem 2rem;
  }
  .footer-contact-grid {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
  .footer-columns-row {
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
  }
}

@media (max-width: 680px) {
  .site-fullscreen-footer {
    padding: 2rem 1.25rem 1.75rem 1.25rem;
  }
  .footer-contact-card {
    padding: 1.5rem 1.25rem;
  }
  .footer-form-row-2 {
    grid-template-columns: 1fr;
    gap: 0.5rem;
  }
  .footer-columns-row {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
  .footer-map-frame-wrapper {
    height: 300px;
  }
  .footer-map-hud {
    position: static;
    border-radius: 0;
    border-left: none;
    border-right: none;
    border-bottom: none;
  }
  .footer-bottom-bar {
    flex-direction: column;
    text-align: center;
    gap: 0.85rem;
  }
}
/* ==========================================================================
   ACADEMIC 2009 COUNTUP PRELOADER
   ========================================================================== */
.dch-site-preloader {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  max-width: 100vw;
  height: 100%;
  height: 100dvh;
  z-index: 999999;
  background: #020b18;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
  margin: 0;
  box-sizing: border-box;
  overflow: hidden;
  transition: opacity 0.65s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.65s cubic-bezier(0.16, 1, 0.3, 1),
              visibility 0.65s;
}

.dch-site-preloader.preloader-fade-out {
  opacity: 0;
  visibility: hidden;
  transform: scale(1.03);
  pointer-events: none;
}

.preloader-backdrop {
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at center, rgba(14, 165, 233, 0.15) 0%, rgba(2, 11, 24, 0.95) 75%);
  pointer-events: none;
}

.preloader-container {
  position: relative;
  z-index: 2;
  max-width: min(560px, 92vw);
  width: 100%;
  text-align: center;
  margin: 0 auto;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.preloader-brand-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1.5rem;
}

.preloader-logo {
  height: 52px;
  width: auto;
  filter: drop-shadow(0 4px 20px rgba(56, 189, 248, 0.4));
}

.preloader-title {
  font-size: clamp(1.8rem, 3.5vw, 2.5rem);
  font-weight: 800;
  color: #ffffff;
  letter-spacing: -0.025em;
  line-height: 1.2;
  margin: 0 0 2rem 0;
  text-shadow: 0 4px 25px rgba(0, 0, 0, 0.6);
}

.preloader-counter-box {
  background: rgba(15, 30, 52, 0.75);
  border: 1px solid rgba(56, 189, 248, 0.35);
  border-radius: 20px;
  padding: 1.5rem 2.75rem;
  max-width: 280px;
  box-shadow: 0 25px 60px -15px rgba(0, 0, 0, 0.8),
              0 0 40px -10px rgba(14, 165, 233, 0.25);
  backdrop-filter: blur(16px);
  margin: 0 auto 2rem auto;
  display: flex;
  align-items: center;
  justify-content: center;
}

.preloader-counter-kicker {
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  color: #38bdf8;
  text-transform: uppercase;
  margin-bottom: 0.65rem;
}

.preloader-counter-main {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 0.65rem;
}

.preloader-number {
  font-size: clamp(3.6rem, 7.5vw, 5.2rem);
  font-weight: 900;
  color: #ffffff;
  line-height: 1;
  letter-spacing: -0.03em;
  font-variant-numeric: tabular-nums;
  text-shadow: 0 4px 30px rgba(56, 189, 248, 0.5);
}

.preloader-unit {
  font-size: clamp(1.4rem, 3vw, 1.8rem);
  font-weight: 700;
  color: #38bdf8;
  line-height: 1;
}

.preloader-counter-caption {
  font-size: 0.95rem;
  color: #94a3b8;
  margin-top: 0.85rem;
}

.preloader-counter-caption strong {
  color: #ffffff;
}

.preloader-progress-track {
  width: 260px;
  height: 4px;
  background: rgba(255, 255, 255, 0.12);
  border-radius: 9999px;
  margin: 0 auto 1.5rem auto;
  overflow: hidden;
}

.preloader-progress-fill {
  height: 100%;
  width: 15%;
  background: linear-gradient(90deg, #0284c7 0%, #38bdf8 100%);
  border-radius: 9999px;
  transition: width 0.12s ease-out;
}

.preloader-skip-btn {
  background: transparent;
  border: none;
  color: #64748b;
  font-size: 0.85rem;
  font-weight: 600;
  cursor: pointer;
  padding: 6px 12px;
  transition: color 0.2s ease;
}

.preloader-skip-btn:hover {
  color: #38bdf8;
}

/* ==========================================================================
/* ==========================================================================
   FULL PAGE SECTIONS - NATURAL, ELEGANT SCROLLING
   ========================================================================== */
.full-page-section {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  position: relative;
}

/* ==========================================================================
   SECTION 4: CLINICAL E-BOOK LIBRARY STAGE (#our-book) - CLEAN THEME
   ========================================================================== */
.bg-section-clean-book {
  background: linear-gradient(180deg, #f8faff 0%, #edf4fc 100%);
  color: #0f172a;
  border-top: 1px solid rgba(0, 47, 93, 0.08);
  border-bottom: 1px solid rgba(0, 47, 93, 0.08);
}

.book-library-presentation {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
}

.book-header-wrap {
  text-align: center;
  max-width: 860px;
  margin: 0 auto 1.5rem auto;
}

.book-edition-badge {
  background: rgba(2, 132, 199, 0.08);
  color: #0284c7;
  border: 1px solid rgba(2, 132, 199, 0.25);
  border-radius: 9999px;
  padding: 6px 18px;
  font-size: 0.85rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 0.75rem;
}

.book-main-title {
  font-size: clamp(2rem, 3.8vw, 3.1rem);
  font-weight: 800;
  color: #002f5d;
  letter-spacing: -0.025em;
  line-height: 1.15;
  margin: 0 0 0.6rem 0;
}

.book-main-subtitle {
  font-size: 1.15rem;
  color: #475569;
  font-weight: 400;
  margin: 0 0 0.85rem 0;
}

.book-editorial-meta {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0.5rem;
  color: #002f5d;
  font-size: 0.95rem;
  background: #ffffff;
  border: 1px solid rgba(0, 47, 93, 0.12);
  box-shadow: 0 4px 14px rgba(0, 47, 93, 0.05);
  padding: 6px 16px;
  border-radius: 9999px;
  width: fit-content;
  margin: 0 auto;
}

.book-editorial-meta strong {
  color: #002f5d;
}

.book-quick-actions-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.25rem;
  margin-top: 1.75rem;
  flex-wrap: wrap;
}

.book-action-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #ffffff;
  border: 1px solid rgba(0, 47, 93, 0.12);
  box-shadow: 0 4px 14px rgba(0, 47, 93, 0.05);
  border-radius: 9999px;
  padding: 10px 20px;
  font-size: 0.9rem;
  color: #475569;
  font-weight: 500;
}


/* ==========================================================================
   SECTION 5: REGISTRATION & PRICING (#registration)
   Primary styles defined in core registration section above.
   ========================================================================== */
.bg-section-clean-reg {
  background: linear-gradient(180deg, #f8fafc 0%, #edf2f9 100%);
  color: #0f172a;
  border-top: 1px solid rgba(0, 47, 93, 0.08);
  border-bottom: 1px solid rgba(0, 47, 93, 0.08);
}








/* ==========================================================================
   SECTION 6: VENUE SHOWCASE (#venue) - CLEAN HOSPITALITY THEME
   ========================================================================== */
.bg-section-clean-venue {
  background: #ffffff;
  color: #0f172a;
  border-top: 1px solid rgba(0, 47, 93, 0.08);
  border-bottom: 1px solid rgba(0, 47, 93, 0.08);
}

.venue-luxury-showcase {
  max-width: 1200px;
  margin: 0 auto;
}

.venue-panoramic-photo-wrap {
  position: relative;
  border-radius: 20px;
  overflow: hidden;
  border: 1px solid rgba(0, 47, 93, 0.12);
  box-shadow: 0 20px 45px -10px rgba(0, 47, 93, 0.12);
  height: 420px;
}

.venue-panoramic-photo-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 40%;
  display: block;
  transition: transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}

.venue-panoramic-photo-wrap:hover img {
  transform: scale(1.02);
}

.venue-photo-gradient {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0, 24, 52, 0.08) 0%, rgba(0, 24, 52, 0.2) 50%, rgba(0, 24, 52, 0.75) 100%);
  pointer-events: none;
}

.venue-photo-badge {
  position: absolute;
  top: 1.25rem;
  left: 1.25rem;
  background: rgba(0, 47, 93, 0.85);
  border: 1px solid rgba(56, 189, 248, 0.4);
  border-radius: 9999px;
  padding: 8px 18px;
  font-size: 0.85rem;
  font-weight: 600;
  color: #ffffff;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  backdrop-filter: blur(14px);
  z-index: 2;
}

.venue-photo-caption {
  position: absolute;
  bottom: 1.25rem;
  left: 1.5rem;
  right: 1.5rem;
  color: #f8fafc;
  font-size: 0.95rem;
  font-weight: 500;
  z-index: 2;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.8);
}

.venue-specs-triad {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  margin-top: 1.75rem;
}

@media (max-width: 900px) {
  .venue-specs-triad {
    display: flex !important;
    flex-direction: column !important;
    gap: 1.25rem !important;
    width: 100% !important;
  }
}

.venue-spec-card {
  background: #ffffff;
  border: 1px solid rgba(0, 47, 93, 0.1);
  border-radius: 16px;
  padding: 1.75rem;
  box-shadow: 0 10px 25px -5px rgba(0, 47, 93, 0.06);
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.venue-spec-card:hover {
  transform: translateY(-4px);
  border-color: rgba(2, 132, 199, 0.35);
  box-shadow: 0 15px 35px -8px rgba(2, 132, 199, 0.15);
}

.venue-spec-icon {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: rgba(2, 132, 199, 0.1);
  color: #0284c7;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1rem;
}

.venue-spec-card h4 {
  font-size: 1.15rem;
  font-weight: 700;
  color: #002f5d;
  margin: 0 0 0.5rem 0;
}

.venue-spec-card p {
  font-size: 0.92rem;
  color: #475569;
  line-height: 1.55;
  margin: 0;
}

.venue-actions-bar {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.85rem;
  margin-top: 1.5rem;
  flex-wrap: wrap;
}

.btn-clean-action {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #f8fafc;
  border: 1px solid rgba(0, 47, 93, 0.15);
  color: #002f5d;
  padding: 0.6rem 1.15rem;
  border-radius: 10px;
  font-size: 0.88rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
}

.btn-clean-action:hover {
  background: rgba(2, 132, 199, 0.1);
  border-color: #0284c7;
  color: #0284c7;
  transform: translateY(-2px);
}

/* Hotel Amenities Deck (Clean White Cards) */
.venue-amenities-deck {
  margin-top: 3.5rem;
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
}

.amenities-deck-title {
  font-size: 1.4rem;
  font-weight: 700;
  color: #002f5d;
  margin: 0 0 0.35rem 0;
}

.amenities-deck-subtitle {
  font-size: 0.94rem;
  color: #475569;
  margin: 0 0 1.5rem 0;
}

.amenities-glass-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
  gap: 0.85rem;
}

.amenity-tile {
  background: #ffffff;
  border: 1px solid rgba(0, 47, 93, 0.1);
  border-radius: 12px;
  padding: 0.85rem 1.1rem;
  display: flex;
  align-items: center;
  gap: 0.75rem;
  color: #0f172a;
  font-size: 0.92rem;
  font-weight: 600;
  box-shadow: 0 4px 12px rgba(0, 47, 93, 0.04);
  transition: all 0.25s ease;
}

.amenity-tile:hover {
  background: #f0f9ff;
  border-color: #0284c7;
  transform: translateY(-2px);
  color: #0284c7;
  box-shadow: 0 6px 18px rgba(2, 132, 199, 0.12);
}

.amenity-tile-icon {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  background: rgba(2, 132, 199, 0.1);
  color: #0284c7;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}


/* ==========================================================================
   SECTION 7: GETTING HERE (#getting-here) - ARCHITECTURAL SKY THEME
   ========================================================================== */
.bg-section-sky-travel {
  background: linear-gradient(180deg, #f0f6ff 0%, #e2eeff 45%, #f8faff 100%);
  color: #0f172a;
  border-top: 1px solid rgba(0, 47, 93, 0.08);
  border-bottom: 1px solid rgba(0, 47, 93, 0.08);
}

.bg-section-sky-travel .section-title {
  color: #002f5d !important;
}

.bg-section-sky-travel .section-eyebrow {
  background: rgba(2, 132, 199, 0.1) !important;
  color: #0284c7 !important;
  border: 1px solid rgba(2, 132, 199, 0.25) !important;
}

/* ==========================================================================
   GETTING HERE: 2026 EXECUTIVE MULTI-MODAL TRANSIT HUB
   High-performance tabbed navigation, live HUD, and route guidance
   ========================================================================== */
.transit-hub-inner {
  max-width: 1220px;
  margin: 0 auto;
  position: relative;
  z-index: 2;
  padding: 4.5rem 1.75rem 3rem;
}

/* Executive Quick Transit HUD Bar */
.transit-hud-bar {
  background: #ffffff;
  border: 1.5px solid rgba(2, 132, 199, 0.22);
  border-radius: 16px;
  box-shadow: 0 12px 35px -6px rgba(0, 47, 93, 0.08), 0 0 15px rgba(2, 132, 199, 0.06);
  padding: 1.1rem 1.6rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  margin-bottom: 2.25rem;
  flex-wrap: wrap;
}

.transit-hud-destination {
  display: flex;
  align-items: center;
  gap: 0.85rem;
}

.hud-pin-icon {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: rgba(2, 132, 199, 0.12);
  color: #0284c7;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.hud-dest-text strong {
  display: block;
  font-size: 1.02rem;
  color: #002f5d;
  font-weight: 800;
  line-height: 1.25;
}

.hud-dest-text span {
  display: block;
  font-size: 0.82rem;
  color: #64748b;
  font-weight: 500;
}

.transit-hud-metrics {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.hud-metric-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.42rem 0.85rem;
  background: #f1f5f9;
  border-radius: 8px;
  font-size: 0.82rem;
  color: #334155;
  border: 1px solid rgba(0, 47, 93, 0.08);
}

.hud-metric-pill svg {
  color: #0284c7;
  flex-shrink: 0;
}

.hud-metric-pill strong {
  color: #002f5d;
}

.transit-hud-actions {
  display: flex;
  align-items: center;
  gap: 0.65rem;
}

.btn-transit-hud {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.5rem 1rem;
  border-radius: 8px;
  font-size: 0.84rem;
  font-weight: 700;
  border: 1.5px solid rgba(2, 132, 199, 0.35);
  background: #ffffff;
  color: #002f5d;
  cursor: pointer;
  transition: all 0.22s ease;
  text-decoration: none;
}

.btn-transit-hud:hover {
  background: rgba(2, 132, 199, 0.08);
  border-color: #0284c7;
  color: #0284c7;
  transform: translateY(-1px);
}

.btn-transit-hud-primary {
  background: #0284c7;
  color: #ffffff !important;
  border-color: #0284c7;
}

.btn-transit-hud-primary:hover {
  background: #002f5d;
  color: #ffffff !important;
  border-color: #002f5d;
  box-shadow: 0 4px 14px rgba(0, 47, 93, 0.2);
}

/* Interactive Mode Switcher Tabs */
.transit-mode-tabs-wrap {
  display: flex;
  justify-content: center;
  margin-bottom: 2.25rem;
}

.transit-mode-tabs {
  display: inline-flex;
  background: rgba(0, 47, 93, 0.06);
  padding: 5px;
  border-radius: 9999px;
  border: 1px solid rgba(0, 47, 93, 0.1);
  gap: 4px;
}

.transit-mode-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.75rem 1.6rem;
  border-radius: 9999px;
  border: none;
  background: transparent;
  color: #475569;
  font-weight: 700;
  font-size: 0.92rem;
  cursor: pointer;
  transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  font-family: inherit;
}

.transit-mode-btn:hover:not(.active) {
  color: #002f5d;
  background: rgba(255, 255, 255, 0.65);
}

.transit-mode-btn.active {
  background: #002f5d;
  color: #ffffff;
  box-shadow: 0 4px 18px rgba(0, 47, 93, 0.25);
}

.transit-mode-btn.active svg {
  color: #38bdf8;
}

/* Tab Panels */
.transit-tab-panel {
  display: none;
  animation: transitPanelCrossfade 0.32s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.transit-tab-panel.active {
  display: block;
}

@keyframes transitPanelCrossfade {
  from {
    opacity: 0;
    transform: translateY(12px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Modern Transit Service Cards Grid */
.transit-cards-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.85rem;
  max-width: 1200px;
  margin: 0 auto 2.5rem;
}

@media (max-width: 900px) {
  .transit-cards-grid {
    display: flex !important;
    flex-direction: column !important;
    gap: 1.5rem !important;
    width: 100% !important;
  }
}

.transit-service-card {
  background: #ffffff;
  border: 1px solid rgba(0, 47, 93, 0.12);
  border-radius: 16px;
  padding: 2.25rem 1.85rem 1.85rem;
  box-shadow: 0 10px 30px -8px rgba(0, 47, 93, 0.07);
  display: flex;
  flex-direction: column;
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.3s ease, border-color 0.3s ease;
}

.transit-service-card:hover {
  transform: translateY(-5px);
  border-color: rgba(2, 132, 199, 0.45);
  box-shadow: 0 18px 45px -8px rgba(2, 132, 199, 0.18);
}

.service-card-top {
  display: flex;
  align-items: center;
  margin-bottom: 1.25rem;
}

.transit-icon-chip {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  background: rgba(0, 47, 93, 0.07);
  color: #002f5d;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.airport-card-brand {
  height: 48px;
  display: flex;
  align-items: center;
}

.service-route-title {
  font-size: 1.25rem;
  font-weight: 800;
  color: #002f5d;
  margin: 0 0 1rem 0;
  line-height: 1.32;
  letter-spacing: -0.01em;
}

.service-route-desc {
  font-size: 0.93rem;
  color: #475569;
  line-height: 1.68;
  margin: 0 0 1.75rem 0;
  flex-grow: 1;
}

.service-route-desc p {
  margin: 0 0 0.95rem 0;
}

.service-route-desc p:last-child {
  margin-bottom: 0;
}

.service-card-footer {
  margin-top: auto;
  padding-top: 1.25rem;
  border-top: 1px solid rgba(0, 47, 93, 0.08);
  display: flex;
  align-items: center;
  justify-content: flex-end;
}

.btn-transit-card {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.65rem 1.35rem;
  border-radius: 8px;
  font-size: 0.88rem;
  font-weight: 700;
  color: #002f5d;
  background: #f8fafc;
  border: 1px solid rgba(0, 47, 93, 0.14);
  text-decoration: none;
  cursor: pointer;
  transition: all 0.22s ease;
  font-family: inherit;
}

.btn-transit-card:hover {
  background: #002f5d;
  color: #ffffff !important;
  border-color: #002f5d;
  transform: translateY(-2px);
  box-shadow: 0 4px 14px rgba(0, 47, 93, 0.22);
}

@media (max-width: 960px) {
  .transit-cards-grid {
    grid-template-columns: 1fr;
    max-width: 520px;
  }
}



/* ==========================================================================
   RESPONSIVE ADJUSTMENTS FOR REDESIGNED SECTIONS
   ========================================================================== */
@media (max-width: 1024px) {
  .registration-deluxe-grid {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }
  .travel-cards-triad {
    grid-template-columns: 1fr;
    max-width: 520px;
  }
  .venue-panoramic-photo-wrap {
    height: 320px;
  }
}

@media (max-width: 640px) {
  .full-page-section-inner {
    padding: 3rem 1.25rem;
  }
  .mentorship-photo-card {
    height: 340px;
  }
  .preloader-title {
    font-size: 1.5rem;
    margin-bottom: 1.25rem;
  }
  .preloader-counter-box {
    padding: 1.5rem 1.25rem;
  }
  .delegate-pass-card,
  .delegate-pass-card-clean {
    padding: 1.75rem 1.25rem;
  }
  .venue-actions-bar {
    justify-content: stretch;
    flex-direction: column;
  }
  .venue-actions-bar .btn,
  .venue-actions-bar .btn-clean-action {
    width: 100%;
    justify-content: center;
  }
  .amenities-glass-grid {
    grid-template-columns: 1fr 1fr;
  }
}

/* ==========================================================================
   ANIMATED SECTION TITLE UNDERLINES (WHITE OR BLUE)
   Replaces circles with sleek, dynamic illuminated underline accents
   ========================================================================== */

.title-animated-underline-wrap {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  position: relative;
  text-align: center;
  width: auto;
}

.title-animated-underline {
  display: block;
  width: 0;
  height: 4px;
  border-radius: 9999px;
  margin: 1.25rem auto 1.85rem auto;
  transition: width 0.95s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.6s ease;
  position: relative;
  overflow: hidden;
}

/* White glowing underline on dark / blue background sections */
.underline-white {
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.2) 0%, #ffffff 50%, rgba(255, 255, 255, 0.2) 100%);
  box-shadow: 0 0 10px rgba(255, 255, 255, 0.95), 0 0 22px rgba(56, 189, 248, 0.85);
}

/* Royal blue glowing underline on light / white background sections */
.underline-blue {
  background: linear-gradient(90deg, rgba(2, 132, 199, 0.3) 0%, #0284c7 35%, #002f5d 50%, #0284c7 65%, rgba(2, 132, 199, 0.3) 100%);
  box-shadow: 0 0 10px rgba(2, 132, 199, 0.65), 0 0 20px rgba(2, 132, 199, 0.3);
}

/* Active drawn state when scrolled into view */
.title-animated-underline.underline-drawn,
.in-view .title-animated-underline,
.section-title.in-view .title-animated-underline {
  width: 160px !important;
}

/* Dynamic traveling particle beam across underline */
.title-animated-underline::after {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 50%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.95), transparent);
  animation: titleUnderlineShine 2.8s infinite ease-in-out;
}

@keyframes titleUnderlineShine {
  0% { left: -100%; }
  50%, 100% { left: 200%; }
}

/* ==========================================================================
   UNIFIED SEAMLESS SECTION CONNECTOR
   One amazing cohesive design: Glowing vertical blue line with coaxial arrow beacon
   ========================================================================== */

/* ==========================================================================
   INTERACTIVE SECTION DIVIDE BEACON (MENU NAVY BLUE WITH TINY DROP SHADOW)
   Clean, refined circular button matching the menu blue (#002f5d)
   ========================================================================== */

.seamless-section-connector {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  cursor: pointer;
  user-select: none;
  background: #002f5d;
  border: 2px solid #002f5d;
  border-radius: 50%;
  padding: 0;
  outline: none;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);
  transition: all 0.22s ease;
  z-index: 3;
}

.seamless-section-connector::before,
.seamless-section-connector::after {
  display: none !important;
}

.seamless-section-connector:hover {
  background: #034888;
  border-color: #034888;
  transform: translateY(2px) scale(1.08);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.28);
}

.connector-beam-line {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
}

.connector-light-pulse {
  display: none;
}

.connector-arrow-beacon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  color: #ffffff;
}

.seamless-section-connector:hover .connector-arrow-beacon {
  color: #ffffff;
}

.connector-arrow-beacon svg {
  width: 15px;
  height: 15px;
  stroke-width: 2.8;
  display: block;
}

.seamless-section-connector:active {
  transform: scale(0.96) translateY(2px);
}

.seamless-section-connector:focus-visible {
  outline: 2px solid #002f5d;
  outline-offset: 3px;
}

/* ==========================================================================
   SECTION ARRIVAL TRANSITION (TACTILE & REFINED)
   Smooth focus accent when moving into a new section
   ========================================================================== */
.section-arrival-pulse .section-title {
  animation: sectionTitleArrivalGlow 0.75s ease-out;
}

@keyframes sectionTitleArrivalGlow {
  0% {
    transform: scale(0.99);
  }
  50% {
    transform: scale(1.01);
  }
  100% {
    transform: scale(1);
  }
}

/* ==========================================================================
   FLOATING UK ACCESSIBILITY BUTTON
   Features official UK accessibility symbol, always accessible
   ========================================================================== */

.floating-a11y-widget {
  position: fixed;
  bottom: 24px;
  right: 24px;
  z-index: 9998;
  background: #002f5d;
  color: #ffffff;
  border: 2px solid #0284c7;
  border-radius: 9999px;
  padding: 0.55rem 1rem 0.55rem 0.65rem;
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  cursor: pointer;
  box-shadow: 0 10px 30px rgba(0, 24, 52, 0.4), 0 0 15px rgba(2, 132, 199, 0.35);
  font-family: inherit;
  font-size: 0.84rem;
  font-weight: 700;
  transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  animation: a11yPulseRing 3.5s infinite;
}

.floating-a11y-widget:hover {
  background: #0284c7;
  border-color: #38bdf8;
  transform: translateY(-2px) scale(1.03);
  box-shadow: 0 14px 35px rgba(0, 24, 52, 0.5), 0 0 22px rgba(56, 189, 248, 0.7);
}

.floating-a11y-widget:active {
  transform: translateY(1px);
}

.a11y-widget-icon-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  background: rgba(255, 255, 255, 0.15);
  border-radius: 50%;
}

.uk-a11y-symbol {
  width: 20px;
  height: 20px;
}

@keyframes a11yPulseRing {
  0% { box-shadow: 0 8px 25px rgba(0, 24, 52, 0.35), 0 0 0 0 rgba(2, 132, 199, 0.6); }
  60% { box-shadow: 0 8px 25px rgba(0, 24, 52, 0.35), 0 0 0 10px rgba(2, 132, 199, 0); }
  100% { box-shadow: 0 8px 25px rgba(0, 24, 52, 0.35), 0 0 0 0 rgba(2, 132, 199, 0); }
}

@media (max-width: 768px) {
  .floating-a11y-widget {
    bottom: 24px;
    right: 14px;
    padding: 0.55rem;
    border-radius: 50%;
    width: 48px;
    height: 48px;
    justify-content: center;
  }
  .floating-a11y-widget .a11y-widget-label {
    display: none;
  }
  .floating-a11y-widget .a11y-widget-icon-wrap {
    width: 100%;
    height: 100%;
    background: transparent;
  }
  .floating-section-navigator {
    bottom: 24px;
    left: 45%;
    transform: translateX(-50%);
  }
  .btn-scroll-next-section {
    padding: 0.55rem 1.15rem;
    font-size: 0.8rem;
  }
}

/* ==========================================================================
   Accessibility Widget Footer Dynamic Offset
   Prevents floating widget from ever covering the footer back to top button
   ========================================================================== */
body.footer-in-view .floating-a11y-widget {
  bottom: 84px !important;
  transition: bottom 0.3s cubic-bezier(0.16, 1, 0.3, 1), transform 0.25s ease;
}

@media (max-width: 768px) {
  body.footer-in-view .floating-a11y-widget {
    bottom: 74px !important;
  }
}

/* ==========================================================================
   FULLSCREEN SLIDE-UP REGISTRATION MODAL DRAWER (OPTION 3)
   Smooth slide-up modal filling screen with 'X' corner button and full mobile responsiveness
   ========================================================================== */

body.reg-drawer-open {
  overflow: hidden !important;
  touch-action: none;
}

.hdc-reg-slideup-modal {
  position: fixed;
  inset: 0;
  z-index: 100000;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.32s cubic-bezier(0.16, 1, 0.3, 1), visibility 0.32s cubic-bezier(0.16, 1, 0.3, 1);
  display: flex;
  align-items: flex-end;
}

.hdc-reg-slideup-modal.active {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
}

.hdc-reg-slideup-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 24, 52, 0.72);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  cursor: pointer;
  transition: opacity 0.3s ease;
}

.hdc-reg-slideup-drawer {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 960px;
  height: 92vh;
  margin: 0 auto;
  background: #ffffff;
  border-top-left-radius: 24px;
  border-top-right-radius: 24px;
  box-shadow: 0 -25px 70px rgba(0, 24, 52, 0.45), 0 0 0 1px rgba(255, 255, 255, 0.2);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  transform: translateY(105%);
  transition: transform 0.45s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: transform;
}

.hdc-reg-slideup-modal.active .hdc-reg-slideup-drawer {
  transform: translateY(0);
}

/* Drawer Header */
.hdc-reg-drawer-header {
  position: sticky;
  top: 0;
  z-index: 10;
  background: #ffffff;
  border-bottom: 1px solid #e2e8f0;
  padding: 1.35rem 2rem 1.15rem 2rem;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1.25rem;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.03);
}

.hdc-reg-drawer-header-left {
  flex: 1 1 auto;
  min-width: 0;
}

.hdc-reg-badges-wrap {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  flex-wrap: wrap;
  margin-bottom: 0.45rem;
}

.hdc-reg-pill-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.25rem 0.65rem;
  border-radius: 9999px;
  background: #e0f2fe;
  color: #0369a1;
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.hdc-reg-cpd-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.25rem 0.65rem;
  border-radius: 9999px;
  background: #f0fdf4;
  color: #15803d;
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.hdc-reg-drawer-title {
  font-size: 1.55rem;
  font-weight: 800;
  color: #002f5d;
  letter-spacing: -0.02em;
  margin: 0 0 0.25rem 0;
  line-height: 1.25;
}

.hdc-reg-drawer-subtitle {
  font-size: 0.88rem;
  color: #64748b;
  margin: 0;
  line-height: 1.5;
}

/* Close 'X' Button in Corner */
.hdc-reg-drawer-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  min-width: 44px;
  min-height: 44px;
  border-radius: 50%;
  background: #f1f5f9;
  border: 1px solid #cbd5e1;
  color: #334155;
  cursor: pointer;
  padding: 0;
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
  -webkit-tap-highlight-color: transparent;
}

.hdc-reg-drawer-close:hover {
  background: #fee2e2;
  border-color: #fca5a5;
  color: #dc2626;
  transform: rotate(90deg) scale(1.05);
}

.hdc-reg-drawer-close:active {
  transform: rotate(90deg) scale(0.95);
}

/* Drawer Body & Form Area */
.hdc-reg-drawer-body {
  flex: 1 1 auto;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: 2rem 2.25rem 3.5rem 2.25rem;
  background: #fafafa;
}

.hdc-reg-inner-container {
  max-width: 760px;
  margin: 0 auto;
  background: #ffffff;
  padding: 2.25rem;
  border-radius: 16px;
  border: 1px solid #e2e8f0;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.04);
}

/* Fluent Forms styling normalization inside drawer */
.hdc-reg-drawer-body .fluentform {
  font-family: inherit;
}

.hdc-reg-drawer-body .fluentform input,
.hdc-reg-drawer-body .fluentform select,
.hdc-reg-drawer-body .fluentform textarea {
  font-size: 16px !important; /* Prevents auto-zoom on iOS */
  border-radius: 8px !important;
}

.hdc-reg-drawer-footer {
  padding: 0.95rem 1.5rem;
  background: #ffffff;
  border-top: 1px solid #e2e8f0;
  text-align: center;
}

.hdc-reg-security-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  font-size: 0.8rem;
  color: #64748b;
  flex-wrap: wrap;
}

.hdc-reg-security-badge a {
  color: #0284c7;
  text-decoration: none;
  font-weight: 600;
}

/* Mobile Responsive Drawer */
@media (max-width: 768px) {
  .hdc-reg-slideup-drawer {
    height: 100vh;
    max-height: 100vh;
    border-radius: 0;
    top: 0;
  }

  .hdc-reg-drawer-header {
    padding: 1rem 1.15rem 0.85rem 1.15rem;
  }

  .hdc-reg-drawer-title {
    font-size: 1.25rem;
  }

  .hdc-reg-drawer-subtitle {
    font-size: 0.8rem;
  }

  .hdc-reg-drawer-body {
    padding: 1.15rem 1rem 2.5rem 1rem;
  }

  .hdc-reg-inner-container {
    padding: 1.25rem 1.15rem;
    border-radius: 12px;
  }

  .hdc-reg-drawer-close {
    width: 40px;
    height: 40px;
    min-width: 40px;
    min-height: 40px;
  }
}

/* Fallback Card preview inside Drawer / Dedicated Page */
.hdc-reg-form-preview-card {
  text-align: center;
  padding: 2.5rem 1.5rem;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.hdc-reg-preview-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.35rem 0.85rem;
  background: #e0f2fe;
  color: #0369a1;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 800;
  text-transform: uppercase;
}

/* ==========================================================================
   DEDICATED REGISTRATION PAGE (OPTION 2)
   Menu + Header with clean centered form shortcode
   ========================================================================== */
.dedicated-registration-page-wrap {
  min-height: 100vh;
  padding: 2.5rem 2rem 5rem 2rem;
  background: #f8fafc;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.dedicated-reg-container {
  width: 100%;
  max-width: 860px;
  margin: 0 auto;
}

.dedicated-reg-nav-back {
  margin-bottom: 1.5rem;
}

.btn-reg-back-link {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  color: #0284c7;
  font-size: 0.88rem;
  font-weight: 700;
  text-decoration: none;
  padding: 0.4rem 0.85rem;
  border-radius: 8px;
  background: rgba(2, 132, 199, 0.08);
  transition: all 0.2s ease;
}

.btn-reg-back-link:hover {
  background: #0284c7;
  color: #ffffff;
  transform: translateX(-3px);
}

.dedicated-reg-card-wrapper {
  background: #ffffff;
  border-radius: 20px;
  border: 1px solid #e2e8f0;
  box-shadow: 0 15px 40px rgba(0, 24, 52, 0.06);
  overflow: hidden;
}

.dedicated-reg-header-banner {
  background: linear-gradient(135deg, #002f5d 0%, #001f3f 100%);
  color: #ffffff;
  padding: 2.5rem 2.5rem 2.25rem 2.5rem;
  position: relative;
}

.dedicated-reg-badges-row {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  flex-wrap: wrap;
  margin-bottom: 0.85rem;
}

.dedicated-reg-page-title {
  font-size: 2rem;
  font-weight: 800;
  color: #ffffff;
  margin: 0 0 0.5rem 0;
  line-height: 1.2;
}

.dedicated-reg-page-subtitle {
  font-size: 0.95rem;
  color: #94a3b8;
  margin: 0;
  line-height: 1.5;
}

.dedicated-reg-form-body {
  padding: 2.5rem 2.5rem 3rem 2.5rem;
}

.dedicated-reg-footer-meta {
  padding: 1.25rem 2.5rem;
  border-top: 1px solid #e2e8f0;
  background: #f8fafc;
  text-align: center;
  font-size: 0.84rem;
  color: #64748b;
}

.dedicated-reg-footer-meta a {
  color: #0284c7;
  text-decoration: none;
  font-weight: 700;
}

@media (max-width: 768px) {
  .dedicated-registration-page-wrap {
    padding: 1.25rem 1rem 3.5rem 1rem;
  }

  .dedicated-reg-header-banner {
    padding: 1.75rem 1.25rem 1.5rem 1.25rem;
  }

  .dedicated-reg-page-title {
    font-size: 1.45rem;
  }

  .dedicated-reg-form-body {
    padding: 1.5rem 1.15rem 2rem 1.15rem;
  }

  .dedicated-reg-footer-meta {
    padding: 1rem 1.15rem;
  }
}

/* ==========================================================================
   404 ERROR PAGE STYLES
   ========================================================================== */
.error-404-section {
  min-height: 85vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 4rem 2rem;
  background: #f8fafc;
}

.error-404-container {
  width: 100%;
  max-width: 780px;
  margin: 0 auto;
}

.error-404-card {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 20px;
  box-shadow: 0 20px 50px rgba(0, 24, 52, 0.08);
  padding: 3.5rem 3rem;
  text-align: center;
}

.error-404-badge-wrap {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  background: #fee2e2;
  color: #b91c1c;
  padding: 0.35rem 0.85rem;
  border-radius: 9999px;
  font-size: 0.8rem;
  font-weight: 800;
  text-transform: uppercase;
  margin-bottom: 1.5rem;
  letter-spacing: 0.04em;
}

.error-pill-code {
  background: #dc2626;
  color: #ffffff;
  padding: 0.15rem 0.5rem;
  border-radius: 999px;
  font-size: 0.75rem;
}

.error-404-visual {
  margin-bottom: 1.25rem;
}

.error-number-graphic {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  font-size: 5.5rem;
  font-weight: 900;
  color: #002f5d;
  line-height: 1;
  letter-spacing: -0.04em;
}

.error-graphic-icon {
  width: 64px;
  height: 64px;
  background: #eff6ff;
  border: 2px solid #bfdbfe;
  border-radius: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #0284c7;
}

.error-404-title {
  font-size: 1.85rem;
  font-weight: 800;
  color: #002f5d;
  margin: 0 0 0.85rem 0;
  letter-spacing: -0.02em;
}

.error-404-message {
  font-size: 0.98rem;
  color: #64748b;
  line-height: 1.65;
  max-width: 620px;
  margin: 0 auto 2.5rem auto;
}

.error-404-actions-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  margin-bottom: 2rem;
}

.error-action-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.85rem 1rem;
  border-radius: 12px;
  font-size: 0.88rem;
  font-weight: 700;
  text-decoration: none;
  transition: all 0.22s ease;
  text-align: center;
}

.btn-action-home {
  background: #0284c7;
  color: #ffffff;
}

.btn-action-home:hover {
  background: #0369a1;
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(2, 132, 199, 0.3);
}

.btn-action-book {
  background: #0d9488;
  color: #ffffff;
}

.btn-action-book:hover {
  background: #0f766e;
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(13, 148, 136, 0.3);
}

.btn-action-reg {
  background: #002f5d;
  color: #ffffff;
}

.btn-action-reg:hover {
  background: #001f3f;
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(0, 47, 93, 0.3);
}

.error-404-footer-meta {
  border-top: 1px solid #f1f5f9;
  padding-top: 1.5rem;
  font-size: 0.82rem;
  color: #94a3b8;
}

.error-404-footer-meta a {
  color: #0284c7;
  text-decoration: none;
  font-weight: 600;
}

@media (max-width: 820px) {
  .error-404-actions-grid {
    grid-template-columns: 1fr;
  }

  .error-404-card {
    padding: 2.5rem 1.5rem;
  }

  .error-number-graphic {
    font-size: 4rem;
  }

  .error-graphic-icon {
    width: 48px;
    height: 48px;
  }
}

