/* Asklepaedia Prototype — Professional Layout System */
/* Fonts loaded via wp_enqueue in asklepaedia-prototype-assets.php */
:root {
  --brand: #6b1f32;
  --brand-dark: #4a1523;
  --brand-light: #8f3048;
  --accent: #b8922e;
  --accent-light: #d4b04a;
  --ink: #1a1f2e;
  --ink-muted: #5c6478;
  --ink-soft: #8b93a7;
  --surface: #ffffff;
  --surface-alt: #f6f4f1;
  --surface-dark: #1a1f2e;
  --border: #e4e0da;
  --brand-subtle: rgba(107, 31, 50, 0.08);
  --shadow: 0 4px 24px rgba(26, 31, 46, 0.08);
  --shadow-lg: 0 20px 60px rgba(26, 31, 46, 0.12);
  --radius: 12px;
  --radius-lg: 20px;
  --max: 1200px;
  --nav-h: 80px;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  font-family: 'Source Sans 3', system-ui, sans-serif;
  font-size: 17px;
  line-height: 1.65;
  color: var(--ink);
  background: var(--surface);
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--brand); text-decoration: none; transition: color 0.2s; }
a:hover { color: var(--brand-light); }

h1, h2, h3, h4, h5 {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-weight: 600;
  line-height: 1.2;
  color: var(--ink);
}
h1 { font-size: clamp(2.4rem, 5vw, 3.75rem); }
h2 { font-size: clamp(1.75rem, 3vw, 2.5rem); }
h3 { font-size: 1.5rem; }
h4 { font-size: 1.2rem; }
p + p { margin-top: 1rem; }

.container { width: min(100% - 2.5rem, var(--max)); margin-inline: auto; }

/* Top bar */
.topbar {
  background: var(--surface-dark);
  color: rgba(255,255,255,0.85);
  font-size: 0.875rem;
  padding: 0.5rem 0;
}
.topbar .container {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem 1.5rem;
}
.topbar a { color: rgba(255,255,255,0.9); }
.topbar a:hover { color: var(--accent-light); }
.topbar__contacts { display: flex; gap: 1.5rem; flex-wrap: wrap; }
.topbar__link {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  transition: color 0.2s ease;
}
.topbar__link:hover {
  color: var(--accent-light);
}
.topbar__icon {
  width: 1rem;
  height: 1rem;
  flex-shrink: 0;
}
.topbar__icon--facebook {
  width: 1.05rem;
  height: 1.05rem;
}
.topbar__link--social {
  padding: 0.15rem;
}

/* Header */
.header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(255,255,255,0.96);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--border);
}
.header .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: var(--nav-h);
  gap: 1rem;
  position: relative;
}
.logo {
  display: flex;
  align-items: center;
  gap: 0.875rem;
  color: var(--ink);
  font-family: 'Cormorant Garamond', serif;
  font-weight: 700;
  font-size: 1.15rem;
  line-height: 1.15;
  letter-spacing: 0.02em;
}
.logo:hover { color: var(--brand); }
.logo--image-only {
  gap: 0;
  flex-shrink: 0;
}
.logo--image-only img {
  display: block;
  width: auto;
  height: 52px;
  max-width: min(240px, 55vw);
  object-fit: contain;
  border-radius: 0;
  background: none;
  padding: 0;
}
.footer .logo--image-only img {
  height: 48px;
  max-width: min(220px, 100%);
}
.logo__mark {
  width: 48px;
  height: 48px;
  background: var(--brand);
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: white;
  font-size: 1.4rem;
  flex-shrink: 0;
}
.nav { display: flex; align-items: center; gap: 0.25rem; }
.nav > a, .nav__trigger {
  padding: 0.5rem 0.875rem;
  font-size: 0.925rem;
  font-weight: 500;
  color: var(--ink-muted);
  border-radius: 8px;
  border: none;
  background: none;
  cursor: pointer;
  font-family: inherit;
}
.nav > a:hover, .nav__trigger:hover,
.nav > a.active { color: var(--brand); background: var(--surface-alt); }
.nav__dropdown { position: relative; }
.nav__menu {
  position: absolute;
  top: calc(100% + 0.5rem);
  left: 0;
  min-width: 280px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow-lg);
  padding: 0.5rem;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-8px);
  transition: 0.2s;
  z-index: 120;
}
.nav__mega {
  min-width: min(720px, calc(100vw - 2rem));
  padding: 1rem;
  border-radius: var(--radius-lg);
}
.nav__mega-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0 0.35rem 0.75rem;
  margin-bottom: 0.35rem;
  border-bottom: 1px solid var(--border);
}
.nav__mega-title {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-soft);
}
.nav__mega-all {
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--brand);
}
.nav__mega-all:hover {
  color: var(--brand-dark);
}
.nav__mega-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.35rem 1.25rem;
}
.nav__mega-link {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.7rem 0.75rem;
  border-radius: 12px;
  color: var(--ink-muted);
  transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease;
}
.nav__mega-icon {
  flex-shrink: 0;
  width: 2.35rem;
  height: 2.35rem;
  border-radius: 10px;
  background: var(--surface-alt);
  display: grid;
  place-items: center;
  color: var(--brand);
  transition: background 0.2s ease, color 0.2s ease;
}
.nav__mega-icon svg {
  width: 1.1rem;
  height: 1.1rem;
}
.nav__mega-label {
  font-size: 0.92rem;
  font-weight: 500;
  line-height: 1.35;
  display: block;
  flex: 1;
  min-width: 0;
}
.nav__mega-link:hover,
.nav__mega-link:focus-visible {
  background: #1a1f2e;
  color: #fff;
  outline: none;
  transform: translateY(-1px);
}
.nav__mega-link:hover .nav__mega-icon,
.nav__mega-link:focus-visible .nav__mega-icon {
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
}
.nav__dropdown:hover .nav__menu,
.nav__dropdown:focus-within .nav__menu,
.nav__dropdown.is-open .nav__menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.nav__menu a {
  display: block;
  padding: 0.625rem 0.875rem;
  font-size: 0.9rem;
  color: var(--ink-muted);
  border-radius: 8px;
}
.nav__menu a:hover { background: var(--surface-alt); color: var(--brand); }
.nav__menu.nav__mega a.nav__mega-link {
  display: flex;
  align-items: center;
  flex-direction: row;
  gap: 0.75rem;
  padding: 0.7rem 0.75rem;
}
.nav__menu.nav__mega a.nav__mega-link:hover {
  background: #1a1f2e;
  color: #fff;
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.75rem 1.5rem;
  font-family: inherit;
  font-size: 0.9rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  border-radius: 999px;
  border: 2px solid transparent;
  cursor: pointer;
  transition: 0.2s;
}
.btn--primary {
  background: var(--brand);
  color: white;
  border-color: var(--brand);
}
.btn--primary:hover { background: var(--brand-dark); border-color: var(--brand-dark); color: white; }
.btn--outline {
  background: transparent;
  color: white;
  border-color: rgba(255,255,255,0.6);
}
.btn--outline:hover { background: white; color: var(--brand); border-color: white; }
.btn--gold {
  background: var(--accent);
  color: white;
  border-color: var(--accent);
}
.btn--gold:hover { background: var(--accent-light); border-color: var(--accent-light); color: white; }
.btn--sm { padding: 0.5rem 1.125rem; font-size: 0.8rem; }
.nav .btn--nav-register {
  margin-left: 0.85rem;
  padding: 0.75rem 1.5rem;
  background: var(--brand);
  color: #fff;
  border: 2px solid var(--brand);
  border-radius: 10px;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.2;
  white-space: nowrap;
  box-shadow: 0 4px 14px rgba(107, 31, 50, 0.35);
}
.nav .btn--nav-register:hover {
  background: var(--brand-dark);
  border-color: var(--brand-dark);
  color: #fff;
  box-shadow: 0 6px 20px rgba(107, 31, 50, 0.45);
  transform: translateY(-1px);
}

/* Hero */
.hero {
  position: relative;
  min-height: min(92vh, 920px);
  display: flex;
  align-items: center;
  color: white;
  overflow: hidden;
  isolation: isolate;
}
.hero--video {
  min-height: min(94vh, 960px);
}
.hero__media {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.hero__video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.12);
  will-change: transform;
}
.hero__overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(115deg, rgba(26, 31, 46, 0.94) 0%, rgba(26, 31, 46, 0.78) 42%, rgba(26, 31, 46, 0.52) 100%),
    linear-gradient(to top, rgba(26, 31, 46, 0.55) 0%, transparent 45%);
  opacity: 0;
}
.hero__bg {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(115deg, rgba(26, 31, 46, 0.94) 0%, rgba(26, 31, 46, 0.78) 100%),
    url('https://images.unsplash.com/photo-1576091160399-112ba8d25d1d?w=1600&q=80') center/cover;
}
.hero--video > .container.hero__content {
  width: min(100% - 2.5rem, var(--max));
  max-width: min(100% - 2.5rem, var(--max));
}
.hero__content {
  position: relative;
  z-index: 1;
  padding: clamp(5rem, 12vh, 7rem) 0 clamp(4rem, 10vh, 6rem);
}
.hero__content > .hero__eyebrow,
.hero__content > .hero__title,
.hero__content > p,
.hero__content > .hero__list,
.hero__content > .hero__actions {
  max-width: 760px;
}
.hero__title {
  display: flex;
  flex-direction: column;
  gap: 0.08em;
}
.hero__title-line {
  display: block;
}
.hero__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.45rem 0.95rem;
  margin-bottom: 1.25rem;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.92);
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.08);
  backdrop-filter: blur(10px);
}
.hero__eyebrow::before {
  content: '';
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #7dd3fc;
  box-shadow: 0 0 12px rgba(125, 211, 252, 0.75);
}
.hero h1 {
  color: white;
  margin-bottom: 1.25rem;
  text-wrap: balance;
}
.hero p {
  font-size: clamp(1.05rem, 2vw, 1.2rem);
  color: rgba(255, 255, 255, 0.88);
  margin-bottom: 1.75rem;
  max-width: 640px;
  line-height: 1.7;
}
.hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem;
}
.hero__list {
  list-style: none;
  margin: 0 0 2rem;
  display: grid;
  gap: 0.65rem;
}
.hero__list li {
  padding-left: 1.65rem;
  position: relative;
  color: rgba(255, 255, 255, 0.86);
  font-size: 0.98rem;
}
.hero__list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.95);
  box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.14);
  transform-origin: center;
}
.hero--ready .hero__list li::before {
  animation: heroBulletPulse 2.4s ease-in-out infinite;
  animation-delay: calc(0.55s + var(--d, 0) * 0.11s);
}
@keyframes heroBulletPulse {
  0%, 100% {
    transform: scale(1);
    box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.14);
  }
  50% {
    transform: scale(1.2);
    box-shadow:
      0 0 0 6px rgba(255, 255, 255, 0.08),
      0 0 14px rgba(255, 255, 255, 0.35);
  }
}
.hero__scroll-hint {
  position: absolute;
  left: 50%;
  bottom: 1.75rem;
  transform: translateX(-50%);
  z-index: 1;
  opacity: 0;
}
.hero__scroll-line {
  display: block;
  width: 1px;
  height: 48px;
  background: linear-gradient(to bottom, rgba(255, 255, 255, 0.65), transparent);
  animation: heroScrollPulse 2.2s ease-in-out infinite;
}
.hero__reveal {
  opacity: 0;
  transform: translateY(32px);
  filter: blur(8px);
}
.hero--ready .hero__overlay {
  animation: heroOverlayIn 1.1s ease forwards;
}
.hero--ready .hero__video {
  animation: heroVideoSettle 14s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}
.hero--ready .hero__reveal {
  animation: heroReveal 0.95s cubic-bezier(0.22, 1, 0.36, 1) forwards;
  animation-delay: calc(0.2s + var(--d, 0) * 0.11s);
}
.hero--ready .hero__scroll-hint {
  animation: heroReveal 1s ease forwards;
  animation-delay: 0.85s;
}
@keyframes heroOverlayIn {
  to { opacity: 1; }
}
@keyframes heroVideoSettle {
  to { transform: scale(1); }
}
@keyframes heroReveal {
  to {
    opacity: 1;
    transform: translateY(0);
    filter: blur(0);
  }
}
@keyframes heroScrollPulse {
  0%, 100% { opacity: 0.35; transform: scaleY(0.72); }
  50% { opacity: 1; transform: scaleY(1); }
}
.btn--hero-primary {
  background: #fff;
  color: var(--ink);
  border-color: #fff;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.22);
}
.btn--hero-primary:hover {
  background: rgba(255, 255, 255, 0.92);
  border-color: rgba(255, 255, 255, 0.92);
  color: var(--ink);
  transform: translateY(-2px);
  box-shadow: 0 14px 36px rgba(0, 0, 0, 0.28);
}
.btn--hero-ghost {
  background: rgba(255, 255, 255, 0.06);
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.34);
  backdrop-filter: blur(8px);
}
.btn--hero-ghost:hover {
  background: rgba(255, 255, 255, 0.14);
  border-color: rgba(255, 255, 255, 0.55);
  color: #fff;
  transform: translateY(-2px);
}
@media (prefers-reduced-motion: reduce) {
  .hero__video,
  .hero__overlay,
  .hero__reveal,
  .hero__scroll-hint,
  .hero__scroll-line,
  .hero__list li::before {
    animation: none !important;
    transition: none !important;
  }
  .hero__video { transform: scale(1); }
  .hero__overlay { opacity: 1; }
  .hero__reveal,
  .hero__scroll-hint { opacity: 1; transform: none; filter: none; }
}

/* Page hero (inner pages) */
.page-hero {
  background: linear-gradient(135deg, var(--brand-dark) 0%, var(--brand) 100%);
  color: white;
  padding: 4rem 0 3.5rem;
}
.page-hero h1 { color: white; margin-bottom: 0.75rem; }
.page-hero p { color: rgba(255,255,255,0.85); max-width: 640px; font-size: 1.1rem; }

/* Programs hub — light hero with animated gradient + DNA ambient */
.page-hero.program-hero--light,
.page-hero.has-hero-ambient {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: #f3f6f8;
  color: var(--ink);
  border-bottom: 1px solid var(--border);
  padding: 3.5rem 0 3rem;
}
.page-hero.program-hero--light > .container,
.page-hero.has-hero-ambient > .container {
  position: relative;
  z-index: 2;
}

/* 3D DNA ambient (adapted from CodePen ysosu/vYLvaqX) */
.hero-ambient {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
}
.hero-ambient__gradient {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    135deg,
    #f8f9fb 0%,
    #f3f6f8 28%,
    #eef3f6 52%,
    #e8f0f4 78%,
    #f5f8fa 100%
  );
  background-size: 220% 220%;
  animation: heroLightGradient 22s ease-in-out infinite;
}
.hero-ambient__mesh {
  position: absolute;
  inset: -35%;
  background:
    radial-gradient(circle at 18% 28%, rgba(45, 105, 130, 0.14) 0%, transparent 42%),
    radial-gradient(circle at 82% 18%, rgba(26, 31, 46, 0.06) 0%, transparent 38%),
    radial-gradient(circle at 72% 78%, rgba(45, 105, 130, 0.1) 0%, transparent 46%),
    radial-gradient(circle at 12% 72%, rgba(184, 146, 46, 0.06) 0%, transparent 36%);
  animation: heroMeshDrift 22s ease-in-out infinite alternate;
}
.hero-ambient__mesh--secondary {
  animation-duration: 28s;
  animation-direction: alternate-reverse;
  opacity: 0.75;
  background:
    radial-gradient(circle at 55% 45%, rgba(107, 31, 50, 0.05) 0%, transparent 50%),
    radial-gradient(circle at 30% 60%, rgba(45, 105, 130, 0.08) 0%, transparent 45%);
}
.hero-ambient__mesh--tertiary {
  animation-duration: 32s;
  animation-direction: alternate;
  opacity: 0.55;
  background:
    radial-gradient(circle at 40% 35%, rgba(255, 255, 255, 0.55) 0%, transparent 52%),
    radial-gradient(circle at 68% 62%, rgba(45, 105, 130, 0.06) 0%, transparent 48%);
}
.hero-ambient__dna-field {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.hero-ambient__dna {
  --dna-lines: rgba(90, 98, 110, 0.38);
  --dna-dots: rgba(72, 80, 92, 0.52);
  --dna-rotate-time: 4.2s;
  perspective: 1000px;
  transform-style: preserve-3d;
}
.hero-ambient__dna--solo {
  position: relative;
  width: min(96%, 1180px);
  height: clamp(120px, 22vh, 210px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 clamp(8px, 2vw, 24px);
  opacity: 0.34;
}
.hero-ambient__dna-rung {
  position: relative;
  flex: 0 0 2px;
  width: 2px;
  height: clamp(88px, 17vh, 168px);
  background-color: var(--dna-lines);
  transform-style: preserve-3d;
  animation: heroDnaRotation var(--dna-rotate-time, 4.2s) linear infinite;
  animation-delay: var(--dna-delay, 0s);
}
.hero-ambient__dna-rung::before,
.hero-ambient__dna-rung::after {
  content: "";
  position: absolute;
  left: -4px;
  right: -4px;
  height: clamp(6px, 1.1vw, 9px);
  background-color: var(--dna-dots);
  border-radius: 50%;
  animation: heroDnaRotation var(--dna-rotate-time, 4.2s) linear infinite reverse;
  animation-delay: var(--dna-delay, 0s);
  z-index: 1;
}
.hero-ambient__dna-rung::before {
  top: clamp(-7px, -1.2vw, -10px);
}
.hero-ambient__dna-rung::after {
  bottom: clamp(-7px, -1.2vw, -10px);
}
.hero-ambient__veil {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 72% 88% at 24% 42%, rgba(248, 249, 251, 0.82) 0%, transparent 68%),
    linear-gradient(180deg, rgba(248, 249, 251, 0.28) 0%, transparent 42%, rgba(246, 244, 241, 0.22) 100%);
}
.hero-ambient__fade {
  position: absolute;
  inset: auto 0 0;
  height: 45%;
  background: linear-gradient(to bottom, transparent, rgba(246, 244, 241, 0.88));
}
@keyframes heroLightGradient {
  0% { background-position: 0% 40%; }
  50% { background-position: 100% 60%; }
  100% { background-position: 0% 40%; }
}
@keyframes heroMeshDrift {
  0% { transform: translate(0, 0) scale(1); }
  100% { transform: translate(-2.5%, 1.5%) scale(1.04) rotate(1deg); }
}
@keyframes heroDnaRotation {
  from { transform: rotateX(0deg); }
  to { transform: rotateX(359deg); }
}

@media (max-width: 768px) {
  .hero-ambient__dna--solo {
    width: min(98%, 100%);
    height: clamp(100px, 18vh, 160px);
  }
  .hero-ambient__dna-rung {
    height: clamp(72px, 14vh, 120px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .hero-ambient__gradient {
    animation: none !important;
    background-size: 100% 100%;
  }
  .hero-ambient__mesh,
  .hero-ambient__mesh--secondary,
  .hero-ambient__mesh--tertiary {
    animation: none !important;
  }
  .hero-ambient__dna--solo {
    animation: none !important;
    opacity: 0.28;
  }
  .hero-ambient__dna-rung,
  .hero-ambient__dna-rung::before,
  .hero-ambient__dna-rung::after {
    animation: none !important;
    transform: rotateX(45deg);
  }
}

.page-hero.program-hero--light h1,
.page-hero.program-hero--light .program-hero__title,
.page-hero.has-hero-ambient h1,
.page-hero.has-hero-ambient .program-hero__title {
  color: var(--ink);
}
.page-hero.program-hero--light p,
.page-hero.program-hero--light .program-hero__desc,
.page-hero.has-hero-ambient p,
.page-hero.has-hero-ambient .program-hero__desc {
  color: var(--ink-muted);
}
.page-hero.program-hero--light .breadcrumb,
.page-hero.program-hero--light .breadcrumb a,
.page-hero.has-hero-ambient .breadcrumb,
.page-hero.has-hero-ambient .breadcrumb a {
  color: var(--ink-soft);
}
.page-hero.program-hero--light .breadcrumb a:hover,
.page-hero.has-hero-ambient .breadcrumb a:hover {
  color: var(--brand);
}
.page-hero.program-hero--light .section__eyebrow,
.page-hero.has-hero-ambient .section__eyebrow {
  margin-bottom: 0.75rem;
}
.breadcrumb {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  font-size: 0.85rem;
  margin-bottom: 1.25rem;
  color: rgba(255,255,255,0.6);
}
.breadcrumb a { color: rgba(255,255,255,0.8); }
.breadcrumb a:hover { color: white; }

/* Sections */
.section { padding: 5rem 0; }
.section--alt { background: var(--surface-alt); }
.section__header { text-align: center; max-width: 680px; margin: 0 auto 3rem; }
.section__header p { color: var(--ink-muted); margin-top: 0.75rem; }
.section__eyebrow {
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--brand);
  margin-bottom: 0.5rem;
}

/* Cards grid */
.grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.grid-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.5rem; }
.card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 2rem;
  transition: background 0.25s, border-color 0.25s, box-shadow 0.25s, transform 0.25s, color 0.25s;
  box-shadow: var(--shadow);
}
a.card {
  display: block;
  text-decoration: none;
  color: inherit;
  cursor: pointer;
}
.card:hover,
a.card:hover,
a.card:focus-visible {
  box-shadow: var(--shadow-lg);
  transform: translateY(-4px);
}
a.card:hover,
a.card:focus-visible {
  background: #1a1f2e;
  border-color: #1a1f2e;
}
a.card:hover h3,
a.card:hover p,
a.card:hover .card__link,
a.card:focus-visible h3,
a.card:focus-visible p,
a.card:focus-visible .card__link {
  color: #fff;
}
a.card:hover p,
a.card:focus-visible p {
  opacity: 0.9;
}
a.card:hover .card__icon,
a.card:focus-visible .card__icon {
  background: rgba(255, 255, 255, 0.15);
}
.card--brand {
  background: var(--brand);
  color: white;
  border-color: var(--brand);
}
.card--brand h3, .card--brand p, .card--brand .card__link { color: white; }
.card--brand p { opacity: 0.9; }
.card__icon {
  width: 52px;
  height: 52px;
  background: var(--surface-alt);
  border-radius: 12px;
  display: grid;
  place-items: center;
  font-size: 1.5rem;
  margin-bottom: 1.25rem;
}
.card--brand .card__icon { background: rgba(255,255,255,0.15); }
.card h3 { margin-bottom: 0.75rem; }
.card p { color: var(--ink-muted); font-size: 0.975rem; }
.card__link {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin-top: 1.25rem;
  font-weight: 600;
  font-size: 0.9rem;
}

/* Service tiers */
.tier-card {
  position: relative;
  border-radius: var(--radius-lg);
  overflow: hidden;
  min-height: 280px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 2rem;
  color: white;
}
.tier-card__bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,0.85) 0%, rgba(0,0,0,0.3) 100%);
  z-index: 1;
}
.tier-card__image {
  position: absolute;
  inset: 0;
  object-fit: cover;
  width: 100%;
  height: 100%;
}
.tier-card__content { position: relative; z-index: 2; }
.tier-card__label {
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--accent-light);
  margin-bottom: 0.35rem;
}
.tier-card h3 { color: white; font-size: 1.75rem; margin-bottom: 0.5rem; }

/* Testimonials */
.testimonial-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.testimonial {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 2rem;
  display: flex;
  flex-direction: column;
}
.testimonial__stars { color: var(--accent); font-size: 0.9rem; letter-spacing: 0.1em; margin-bottom: 1rem; }
.testimonial blockquote {
  flex: 0 1 auto;
  font-style: italic;
  color: var(--ink-muted);
  font-size: 0.975rem;
  border: none;
  padding: 0;
  margin: 0 0 1.25rem;
}
.testimonial cite {
  font-style: normal;
  font-weight: 600;
  color: var(--ink);
  font-size: 0.9rem;
}

/* Testimonial carousel */
.testimonial-section .section__header {
  margin-bottom: 2.5rem;
}
.testimonial-carousel {
  --carousel-gap: 20px;
  --carousel-visible: 3;
  position: relative;
}
.testimonial-carousel__viewport {
  overflow: hidden;
  mask-image: linear-gradient(to right, transparent, #000 6%, #000 94%, transparent);
  -webkit-mask-image: linear-gradient(to right, transparent, #000 6%, #000 94%, transparent);
  cursor: grab;
}
.testimonial-carousel.is-dragging .testimonial-carousel__viewport {
  cursor: grabbing;
}
.testimonial-carousel__track {
  display: flex;
  gap: var(--carousel-gap);
  width: max-content;
  will-change: transform;
}
.testimonial-carousel__slide {
  flex: 0 0 auto;
  margin: 0;
  min-height: 100%;
  cursor: pointer;
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
  user-select: none;
}
.testimonial-carousel__slide:hover,
.testimonial-carousel__slide:focus-visible {
  transform: translateY(-4px);
  box-shadow: var(--shadow-lg);
  border-color: rgba(26, 31, 46, 0.18);
  outline: none;
}
.testimonial-carousel.is-paused .testimonial-carousel__slide {
  cursor: pointer;
}
.testimonial-carousel__hint {
  margin-top: 1rem;
  text-align: center;
  font-size: 0.82rem;
  color: var(--ink-soft);
  letter-spacing: 0.02em;
}
.testimonial-carousel__expand {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: grid;
  place-items: center;
  padding: clamp(1rem, 4vw, 2.5rem);
}
.testimonial-carousel__expand[hidden] {
  display: none;
}
.testimonial-carousel__backdrop {
  position: absolute;
  inset: 0;
  border: 0;
  padding: 0;
  background: rgba(26, 31, 46, 0.72);
  backdrop-filter: blur(8px);
  cursor: pointer;
}
.testimonial-carousel__dialog {
  position: relative;
  z-index: 1;
  width: min(720px, 100%);
  animation: testimonialDialogIn 0.35s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}
.testimonial--expanded {
  padding: clamp(1.75rem, 4vw, 2.75rem);
  box-shadow: 0 28px 80px rgba(26, 31, 46, 0.28);
  border-color: rgba(26, 31, 46, 0.12);
}
.testimonial--expanded blockquote {
  font-size: clamp(1.05rem, 2.2vw, 1.2rem);
  line-height: 1.75;
  color: var(--ink);
}
.testimonial--expanded cite {
  font-size: 1rem;
}
.testimonial-carousel__close {
  position: absolute;
  top: 0.85rem;
  right: 0.85rem;
  z-index: 2;
  width: 2.25rem;
  height: 2.25rem;
  border: 0;
  border-radius: 50%;
  background: rgba(26, 31, 46, 0.08);
  color: var(--ink);
  font-size: 1.35rem;
  line-height: 1;
  cursor: pointer;
  transition: background 0.2s ease;
}
.testimonial-carousel__close:hover {
  background: rgba(26, 31, 46, 0.14);
}
@keyframes testimonialDialogIn {
  from {
    opacity: 0;
    transform: scale(0.92) translateY(16px);
  }
  to {
    opacity: 1;
    transform: scale(1) translateY(0);
  }
}
@media (max-width: 1024px) {
  .testimonial-carousel { --carousel-visible: 2; }
}
@media (max-width: 640px) {
  .testimonial-carousel { --carousel-visible: 1; }
  .testimonial-carousel__viewport {
    mask-image: none;
    -webkit-mask-image: none;
  }
}
@media (prefers-reduced-motion: reduce) {
  .testimonial-carousel__track {
    flex-wrap: wrap;
    width: 100%;
    transform: none !important;
  }
  .testimonial-carousel__viewport {
    overflow: visible;
    mask-image: none;
    -webkit-mask-image: none;
  }
  .testimonial-carousel__slide {
    width: 100% !important;
  }
  .testimonial-carousel__hint {
    display: none;
  }
}

/* Content layout */
.content-layout {
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: 3rem;
  padding: 4rem 0;
  align-items: start;
}
.sidebar {
  position: sticky;
  top: calc(var(--nav-h) + 1.5rem);
  background: var(--surface-alt);
  border-radius: var(--radius-lg);
  padding: 1.5rem;
  border: 1px solid var(--border);
}
.programs-hub .sidebar {
  background: var(--surface);
  box-shadow: var(--shadow);
}
.sidebar h4 {
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ink-soft);
  margin-bottom: 1rem;
}
.sidebar nav { display: flex; flex-direction: column; gap: 0.25rem; }
.sidebar nav a {
  padding: 0.5rem 0.75rem;
  border-radius: 8px;
  font-size: 0.9rem;
  color: var(--ink-muted);
  border-left: 3px solid transparent;
}
.sidebar nav a:hover { background: white; color: var(--brand); }
.sidebar nav a.active {
  background: white;
  color: var(--brand);
  border-left-color: var(--brand);
  font-weight: 600;
}
.sidebar nav a.is-navigating {
  opacity: 0.75;
}
.content-layout.is-loading main.prose {
  opacity: 0.45;
  transition: opacity 0.15s ease;
  pointer-events: none;
}
.program-panels {
  min-width: 0;
  background: var(--surface);
  border-radius: var(--radius-lg);
  border: 1px solid var(--border);
  box-shadow: var(--shadow);
  padding: 2rem 2.5rem;
}
.program-panel[hidden] {
  display: none !important;
}
.program-panel.is-active {
  display: block;
}
.program-panel.is-fading-out {
  opacity: 0;
  transition: opacity 0.15s ease;
}
.program-panel.is-fading-in {
  animation: programPanelIn 0.15s ease forwards;
}
@keyframes programPanelIn {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: none; }
}
.program-tabs a {
  display: flex;
  align-items: center;
  gap: 0.625rem;
}
.program-tab__icon {
  flex-shrink: 0;
  width: 1.125rem;
  height: 1.125rem;
  color: var(--ink-soft);
  transition: color 0.2s;
}
.program-tab__icon svg {
  display: block;
  width: 100%;
  height: 100%;
}
.program-tab__label {
  flex: 1;
  min-width: 0;
}
.program-tabs a[aria-selected="true"],
.program-tabs a.active {
  background: var(--surface-alt);
  color: var(--ink);
  border-left-color: var(--brand);
  font-weight: 600;
}
.program-tabs a[aria-selected="true"] .program-tab__icon,
.program-tabs a.active .program-tab__icon {
  color: var(--accent);
}
.program-tabs a:hover .program-tab__icon {
  color: var(--brand-light);
}

.prose h2 { margin: 2.5rem 0 1rem; padding-top: 1rem; border-top: 1px solid var(--border); }
.prose h2:first-child { margin-top: 0; padding-top: 0; border-top: none; }
.prose h3 { margin: 1.75rem 0 0.75rem; color: var(--brand); }
.programs-hub .prose h3 { color: var(--ink); }
.prose h4 { margin: 1.5rem 0 0.5rem; font-family: 'Source Sans 3', sans-serif; font-weight: 700; }
.prose ul, .prose ol { margin: 1rem 0 1rem 1.5rem; color: var(--ink-muted); }
.prose li + li { margin-top: 0.35rem; }

/* Visual checklist bullets */
.prose ul.checklist {
  list-style: none;
  margin-left: 0;
  padding: 0;
}
.prose ul.checklist li {
  position: relative;
  padding-left: 2rem;
  margin-bottom: 0.65rem;
  color: var(--ink-muted);
}
.prose ul.checklist li::before {
  content: '✓';
  position: absolute;
  left: 0;
  top: 0;
  width: 1.35rem;
  height: 1.35rem;
  display: grid;
  place-items: center;
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--accent);
  background: rgba(184, 146, 46, 0.15);
  border-radius: 50%;
}

/* Compare boxes */
.compare { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin: 1.5rem 0; }
.compare__box {
  border-radius: var(--radius);
  padding: 1.5rem;
  font-size: 0.95rem;
  color: var(--ink);
}
.compare__box p {
  color: var(--ink-muted);
}
.compare__box .checklist li {
  color: var(--ink);
}
.compare__box--weak .checklist li::before {
  color: #991b1b;
  background: rgba(153, 27, 27, 0.12);
}
.compare__box--strong .checklist li::before {
  color: #166534;
  background: rgba(22, 101, 52, 0.12);
}
.compare__box--weak {
  background: #fef2f2;
  border: 1px solid #fecaca;
}
.compare__box--strong {
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
}
.compare__label {
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-bottom: 0.75rem;
}
.compare__box--weak .compare__label { color: #991b1b; }
.compare__box--weak .compare__label::before { content: '✕ '; font-weight: 700; }
.compare__box--strong .compare__label { color: #166534; }
.compare__box--strong .compare__label::before { content: '✓ '; font-weight: 700; }

/* Tables */
.table-wrap { overflow-x: auto; margin: 1.5rem 0; border-radius: var(--radius); border: 1px solid var(--border); }
table { width: 100%; border-collapse: collapse; font-size: 0.925rem; }
th, td { padding: 0.875rem 1rem; text-align: left; border-bottom: 1px solid var(--border); vertical-align: top; }
th { background: var(--surface-alt); font-weight: 600; color: var(--ink); }
tr:last-child td { border-bottom: none; }

/* Callout */
.callout {
  background: linear-gradient(135deg, var(--brand-dark), var(--brand));
  color: white;
  border-radius: var(--radius-lg);
  padding: 2.5rem;
  margin: 2.5rem 0;
  box-shadow: var(--shadow);
}
.callout h2,
.callout h3,
.callout h4 {
  color: #fff;
  margin-bottom: 0.75rem;
}
.callout p {
  color: rgba(255, 255, 255, 0.92);
  margin-bottom: 1.5rem;
}
.callout ul,
.callout li {
  color: rgba(255, 255, 255, 0.92);
}
.callout .btn {
  margin-top: 0.25rem;
}
.callout--soft {
  background: var(--surface);
  color: var(--ink);
  border: 1px solid var(--border);
  border-left: 4px solid var(--brand);
  box-shadow: var(--shadow);
}
.callout--soft h2,
.callout--soft h3,
.callout--soft h4 {
  color: var(--ink);
}
.callout--soft p,
.callout--soft li {
  color: var(--ink-muted);
  margin-bottom: 1rem;
}
.callout--soft .btn {
  margin-top: 0.5rem;
}
/* CTA callouts — light, high contrast (Programs hub) */
.callout--action {
  background: var(--surface);
  color: var(--ink);
  border: 1px solid var(--border);
  border-left: 4px solid var(--brand);
  border-radius: var(--radius-lg);
  padding: 2rem 2.5rem;
  margin: 2.5rem 0;
  box-shadow: var(--shadow);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem 2rem;
}
.callout--action__body {
  flex: 1 1 280px;
  min-width: 0;
}
.callout--action h2,
.callout--action h3,
.callout--action h4 {
  color: var(--ink);
  margin: 0 0 0.5rem;
  font-family: 'Cormorant Garamond', Georgia, serif;
}
.callout--action p {
  color: var(--ink-muted);
  margin: 0;
  max-width: 52ch;
}
.callout--action .btn {
  flex-shrink: 0;
  margin: 0;
}
.callout--action .callout--action__price {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 2rem;
  font-weight: 700;
  color: var(--brand);
  line-height: 1.1;
}

/* Presenter block (Overview) */
.presenter-block {
  display: grid;
  grid-template-columns: 1fr 220px;
  gap: 2rem;
  align-items: start;
  margin-bottom: 2rem;
  padding: 1.75rem;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow);
}
.presenter-block__photo {
  width: 220px;
  aspect-ratio: 1;
  border-radius: 50%;
  object-fit: cover;
  border: 4px solid var(--surface-alt);
  box-shadow: var(--shadow);
}
.presenter-block__photo-wrap {
  display: flex;
  justify-content: center;
}

/* Feature rows & goal cards */
.feature-row {
  display: flex;
  gap: 1rem;
  align-items: flex-start;
  padding: 1.25rem 1.5rem;
  margin: 1rem 0;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}
.feature-row__icon {
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  background: var(--brand-subtle);
  border-radius: 10px;
  color: var(--brand);
  font-size: 1.25rem;
}
.goal-cards {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
  margin: 1.5rem 0 2rem;
}
.goal-card {
  padding: 1.5rem;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}
.goal-card__icon {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  background: rgba(184, 146, 46, 0.12);
  border-radius: 10px;
  color: var(--accent);
  font-size: 1.15rem;
  margin-bottom: 0.75rem;
}
.goal-card h3 {
  font-size: 1.15rem !important;
  margin: 0 0 0.35rem !important;
}
.goal-card p {
  font-size: 0.925rem;
  color: var(--ink-muted);
  margin: 0;
}

/* Seminar highlight */
.seminar-highlight {
  display: grid;
  grid-template-columns: 1fr 280px;
  gap: 2rem;
  align-items: center;
  margin-bottom: 2rem;
  padding: 1.5rem;
  background: var(--brand-subtle);
  border-radius: var(--radius-lg);
  border: 1px solid var(--border);
}
.seminar-highlight__image {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}

/* Timeline (Seminar agenda) */
.timeline {
  margin: 1.5rem 0 2rem;
  padding: 0;
  list-style: none;
}
.timeline li {
  list-style: none;
}
.timeline__item {
  display: grid;
  grid-template-columns: 40px 1fr;
  gap: 1rem;
  align-items: start;
}
.timeline__rail {
  display: flex;
  justify-content: center;
  position: relative;
  padding-top: 0.15rem;
}
.timeline__rail::after {
  content: '';
  position: absolute;
  top: 36px;
  bottom: -0.5rem;
  left: 50%;
  width: 2px;
  background: var(--border);
  transform: translateX(-50%);
}
.timeline__item:last-child .timeline__rail::after {
  display: none;
}
.timeline__dot {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--brand-subtle);
  border: 2px solid var(--brand);
  display: grid;
  place-items: center;
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--brand);
  position: relative;
  z-index: 1;
  flex-shrink: 0;
}
.timeline__body {
  padding-bottom: 1rem;
  min-width: 0;
}
.timeline__time {
  display: inline-block;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--brand);
  background: var(--brand-subtle);
  padding: 0.25rem 0.65rem;
  border-radius: 999px;
  margin-bottom: 0.5rem;
}
.timeline__content {
  padding: 0.875rem 1.125rem;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  font-size: 0.95rem;
  line-height: 1.5;
  color: var(--ink);
}
.timeline__content strong {
  color: var(--ink);
  font-weight: 600;
}
.timeline__break .timeline__dot {
  width: 14px;
  height: 14px;
  margin-top: 0.55rem;
  font-size: 0;
  background: var(--ink-soft);
  border: none;
}
.timeline__break .timeline__time {
  background: rgba(139, 147, 167, 0.14);
  color: var(--ink-muted);
}
.timeline__break .timeline__content {
  background: var(--surface-alt);
  border: 1px dashed var(--border);
  box-shadow: none;
  text-align: left;
  font-weight: 600;
  color: var(--ink-muted);
  padding: 0.625rem 1rem;
}

/* Sticky CTA bar */
.program-cta-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-top: 2.5rem;
  padding: 1.25rem 1.5rem;
  background: var(--surface-alt);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow);
}
.program-cta-bar__text {
  font-weight: 600;
  color: var(--ink);
}
.program-cta-bar__text span {
  display: block;
  font-weight: 400;
  font-size: 0.9rem;
  color: var(--ink-muted);
  margin-top: 0.25rem;
}

/* Pricing card */
.pricing-card {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 1.5rem;
  align-items: center;
  padding: 2rem;
  margin: 2rem 0;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow);
}
.pricing-card__icon {
  width: 56px;
  height: 56px;
  display: grid;
  place-items: center;
  background: rgba(184, 146, 46, 0.12);
  border-radius: 12px;
  font-size: 1.5rem;
}
.pricing-card__price {
  font-family: 'Cormorant Garamond', serif;
  font-size: 2rem;
  font-weight: 700;
  color: var(--brand);
  white-space: nowrap;
}

/* Scroll reveal */
.reveal {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 0.5s ease, transform 0.5s ease;
}
.reveal.is-visible {
  opacity: 1;
  transform: none;
}
.reveal-stagger > * {
  opacity: 0;
  transform: translateY(12px);
  transition: opacity 0.45s ease, transform 0.45s ease;
}
.reveal-stagger.is-visible > *:nth-child(1) { transition-delay: 0.05s; opacity: 1; transform: none; }
.reveal-stagger.is-visible > *:nth-child(2) { transition-delay: 0.1s; opacity: 1; transform: none; }
.reveal-stagger.is-visible > *:nth-child(3) { transition-delay: 0.15s; opacity: 1; transform: none; }
.reveal-stagger.is-visible > *:nth-child(4) { transition-delay: 0.2s; opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .reveal,
  .reveal-stagger > *,
  .program-panel.is-fading-in {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
    animation: none !important;
  }
}

/* About strip */
.about-strip {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3rem;
  align-items: center;
}
.about-strip__image {
  border-radius: var(--radius-lg);
  overflow: hidden;
  aspect-ratio: 4/3;
  object-fit: cover;
}

/* Forms */
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; }
.form-group { display: flex; flex-direction: column; gap: 0.4rem; }
.form-group--full { grid-column: 1 / -1; }
.form-group label { font-size: 0.875rem; font-weight: 600; color: var(--ink); }
.form-group input,
.form-group textarea,
.form-group select {
  padding: 0.875rem 1rem;
  border: 1px solid var(--border);
  border-radius: 10px;
  font-family: inherit;
  font-size: 1rem;
  transition: 0.2s;
  background: white;
}
.form-group input:focus,
.form-group textarea:focus {
  outline: none;
  border-color: var(--brand);
  box-shadow: 0 0 0 3px rgba(107,31,50,0.12);
}
.form-group textarea { min-height: 140px; resize: vertical; }

/* Registration cards */
.seminar-registration {
  padding-top: 3rem;
  padding-bottom: 4rem;
}
.seminar-registration__inner {
  max-width: 920px;
}
.registration-intro {
  display: flex;
  align-items: flex-start;
  gap: 1.25rem;
  padding: 1.75rem 2rem;
  margin-bottom: 2rem;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow);
}
.registration-intro__icon {
  flex-shrink: 0;
  width: 3rem;
  height: 3rem;
  border-radius: 12px;
  background: var(--surface-alt);
  color: var(--ink);
  display: grid;
  place-items: center;
}
.registration-intro__icon svg {
  width: 1.4rem;
  height: 1.4rem;
}
.registration-intro__body h2 {
  margin: 0 0 0.5rem;
  font-size: clamp(1.35rem, 2.5vw, 1.75rem);
}
.registration-intro__body p {
  margin: 0;
  color: var(--ink-muted);
  line-height: 1.65;
}
.registration-intro__body strong {
  color: var(--ink);
}
.seminar-card-list {
  display: grid;
  gap: 1rem;
  margin-bottom: 2rem;
}
.seminar-card {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 1.5rem;
  align-items: center;
  padding: 1.5rem 1.75rem;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow);
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}
.seminar-card:not(.seminar-card--sold-out):hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-lg);
  border-color: rgba(26, 31, 46, 0.14);
}
.seminar-card--sold-out {
  opacity: 0.72;
}
.seminar-card__date {
  text-align: center;
  min-width: 76px;
  padding: 0.85rem 0.75rem;
  background: var(--surface-alt);
  border-radius: var(--radius);
  border: 1px solid var(--border);
}
.seminar-card__date .day {
  font-size: 1.75rem;
  font-weight: 700;
  color: var(--ink);
  line-height: 1;
}
.seminar-card__date .month {
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink-soft);
  margin-top: 0.15rem;
}
.seminar-card__title {
  font-size: 1.15rem;
  margin: 0 0 0.75rem;
  line-height: 1.3;
}
.seminar-card__meta {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.45rem;
}
.seminar-card__meta li {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  color: var(--ink-muted);
  font-size: 0.925rem;
  line-height: 1.45;
}
.seminar-card__meta-icon {
  width: 1rem;
  height: 1rem;
  flex-shrink: 0;
  color: var(--ink-soft);
}
.seminar-card__badge {
  display: inline-flex;
  align-items: center;
  padding: 0.2rem 0.65rem;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}
.seminar-card__badge--open {
  background: rgba(26, 31, 46, 0.08);
  color: var(--ink);
}
.seminar-card__badge--sold {
  background: rgba(107, 31, 50, 0.1);
  color: var(--brand-dark);
}
.seminar-card__aside {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.75rem;
  min-width: 108px;
}
.seminar-card__price {
  font-size: 1.45rem;
  font-weight: 700;
  color: var(--ink);
  white-space: nowrap;
}
.seminar-registration .callout--action {
  margin-top: 0;
}

/* Contact page */
.contact-page {
  padding-top: 3rem;
  padding-bottom: 4rem;
}
.contact-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
  gap: 2rem;
  align-items: start;
}
.contact-info h2 {
  margin: 0 0 1.25rem;
  font-size: clamp(1.35rem, 2.5vw, 1.75rem);
}
.contact-cards {
  display: grid;
  gap: 1rem;
}
.contact-card {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  padding: 1.25rem 1.5rem;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow);
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease, background 0.2s ease, color 0.2s ease;
}
.contact-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-lg);
  border-color: rgba(26, 31, 46, 0.14);
}
.contact-card--link {
  color: inherit;
  text-decoration: none;
}
.contact-card--link:hover {
  background: #1a1f2e;
  color: #fff;
}
.contact-card--link:hover .contact-card__icon {
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
}
.contact-card--link:hover .contact-card__label,
.contact-card--link:hover .contact-card__value {
  color: #fff;
}
.contact-card__icon {
  flex-shrink: 0;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 12px;
  background: var(--surface-alt);
  color: var(--ink);
  display: grid;
  place-items: center;
}
.contact-card__icon svg {
  width: 1.2rem;
  height: 1.2rem;
}
.contact-card__body {
  min-width: 0;
}
.contact-card__label {
  display: block;
  margin-bottom: 0.3rem;
  font-family: 'Source Sans 3', system-ui, sans-serif;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ink-soft);
}
.contact-card__value {
  display: block;
  color: var(--ink);
  font-size: 0.95rem;
  line-height: 1.55;
}
.contact-form-panel {
  padding: 2rem;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow);
}
.contact-form-panel__header {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  margin-bottom: 1.5rem;
}
.contact-form-panel__header h2 {
  margin: 0;
  font-size: clamp(1.35rem, 2.5vw, 1.75rem);
}
.contact-form-panel__icon {
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 12px;
  background: var(--surface-alt);
  color: var(--ink);
  display: grid;
  place-items: center;
  flex-shrink: 0;
}
.contact-form-panel__icon svg {
  width: 1.2rem;
  height: 1.2rem;
}

/* Job listing */
.join-us-page {
  padding-top: 3rem;
  padding-bottom: 4rem;
}
.join-us-page__inner {
  max-width: 860px;
}
.job-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 2.5rem;
  box-shadow: var(--shadow);
}
.job-card__header {
  display: flex;
  align-items: flex-start;
  gap: 1.25rem;
  margin-bottom: 1.5rem;
}
.job-card__icon {
  flex-shrink: 0;
  width: 3rem;
  height: 3rem;
  border-radius: 12px;
  background: var(--surface-alt);
  color: var(--ink);
  display: grid;
  place-items: center;
}
.job-card__icon svg {
  width: 1.4rem;
  height: 1.4rem;
}
.job-card h2 {
  margin: 0 0 0.75rem;
  font-size: clamp(1.35rem, 2.5vw, 1.75rem);
}
.job-card__header p {
  margin: 0;
  color: var(--ink-muted);
  line-height: 1.65;
}
.job-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin: 0 0 2rem;
  padding-bottom: 2rem;
  border-bottom: 1px solid var(--border);
}
.job-meta__item {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  background: var(--surface-alt);
  padding: 0.45rem 0.95rem;
  border-radius: 999px;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--ink-muted);
}
.job-meta__item svg {
  width: 0.95rem;
  height: 0.95rem;
  flex-shrink: 0;
  color: var(--ink-soft);
}
.job-section {
  margin-bottom: 2rem;
}
.job-section__title {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin: 0 0 1rem;
  font-size: 1.25rem;
  color: var(--ink);
}
.job-section__icon {
  flex-shrink: 0;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 10px;
  background: var(--surface-alt);
  color: var(--ink);
  display: grid;
  place-items: center;
}
.job-section__icon svg {
  width: 1.05rem;
  height: 1.05rem;
}
.join-us-page .callout--action {
  margin-top: 0.5rem;
  margin-bottom: 0;
}
.join-us-page .callout--action a:not(.btn) {
  color: var(--brand);
  font-weight: 600;
}

/* Terms page sidebar nav */
.terms-page .sidebar {
  background: var(--surface);
  box-shadow: var(--shadow);
}
.sidebar-nav a {
  display: flex;
  align-items: center;
  gap: 0.625rem;
}
.sidebar-nav__icon {
  flex-shrink: 0;
  width: 1.125rem;
  height: 1.125rem;
  color: var(--ink-soft);
  transition: color 0.2s;
}
.sidebar-nav__icon svg {
  display: block;
  width: 100%;
  height: 100%;
}
.sidebar-nav__label {
  flex: 1;
  min-width: 0;
}
.terms-page .sidebar nav a:hover {
  background: var(--surface-alt);
  color: var(--ink);
}
.terms-page .sidebar nav a.active {
  background: var(--surface-alt);
  color: var(--ink);
  border-left-color: var(--accent);
  font-weight: 600;
}
.terms-page .sidebar nav a:hover .sidebar-nav__icon,
.terms-page .sidebar nav a.active .sidebar-nav__icon {
  color: var(--accent);
}
.terms-page .prose .callout--soft {
  margin-top: 0;
  margin-bottom: 2rem;
}

/* Footer */
.footer {
  background: var(--surface-dark);
  color: rgba(255,255,255,0.75);
  padding: 4rem 0 2rem;
}
.footer a { color: rgba(255,255,255,0.85); }
.footer a:hover { color: var(--accent-light); }
.footer__grid {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1fr;
  gap: 2.5rem;
  margin-bottom: 3rem;
}
.footer__brand p { margin-top: 1rem; font-size: 0.925rem; line-height: 1.6; }
.footer h4 {
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.5);
  margin-bottom: 1.25rem;
}
.footer nav { display: flex; flex-direction: column; gap: 0.5rem; }
.footer nav a { font-size: 0.925rem; }
.footer__bottom {
  border-top: 1px solid rgba(255,255,255,0.1);
  padding-top: 2rem;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1rem;
  font-size: 0.875rem;
}

/* Mobile nav toggle */
.nav-toggle { display: none; background: none; border: none; cursor: pointer; padding: 0.5rem; }
.nav-toggle span {
  display: block;
  width: 24px;
  height: 2px;
  background: var(--ink);
  margin: 5px 0;
  transition: 0.2s;
}

@media (max-width: 1024px) {
  .grid-3, .testimonial-grid { grid-template-columns: 1fr 1fr; }
  .content-layout { grid-template-columns: 1fr; }
  .sidebar { position: static; }
  .programs-hub .program-tabs {
    flex-direction: row;
    flex-wrap: nowrap;
    overflow-x: auto;
    gap: 0.5rem;
    padding-bottom: 0.35rem;
    scrollbar-width: thin;
    -webkit-overflow-scrolling: touch;
  }
  .programs-hub .program-tabs a {
    flex: 0 0 auto;
    white-space: nowrap;
    border-left: none;
    border: 1px solid var(--border);
    background: var(--surface-alt);
    padding: 0.55rem 0.85rem;
  }
  .programs-hub .program-tabs a[aria-selected="true"],
  .programs-hub .program-tabs a.active {
    border-color: var(--brand);
    background: var(--brand-subtle);
  }
  .footer__grid { grid-template-columns: 1fr 1fr; }
  .about-strip { grid-template-columns: 1fr; }
  .presenter-block { grid-template-columns: 1fr; }
  .presenter-block__photo-wrap { order: -1; }
  .seminar-highlight { grid-template-columns: 1fr; }
  .seminar-highlight__image { max-height: 220px; }
  .nav__mega {
    left: auto;
    right: 0;
  }
}

/* ── Booking system (prototype) ── */
.prototype-banner {
  background: linear-gradient(90deg, #1e3a5f, #2d5a87);
  color: rgba(255,255,255,0.95);
  padding: 0.65rem 0;
  font-size: 0.875rem;
  text-align: center;
}
.prototype-banner strong { color: #fde68a; }

.booking-layout {
  display: grid;
  grid-template-columns: 1fr 340px;
  gap: 2rem;
  align-items: start;
  padding: 3rem 0 5rem;
}
.booking-panel {
  background: white;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 2rem;
  box-shadow: var(--shadow);
}
.booking-panel__header { margin-bottom: 1.75rem; }
.booking-panel__header h2 { font-size: 1.75rem; margin-bottom: 0.35rem; }
.booking-panel__header p { color: var(--ink-muted); font-size: 0.975rem; }

.booking-steps {
  display: flex;
  gap: 0;
  margin-bottom: 2rem;
  overflow-x: auto;
  padding-bottom: 0.25rem;
}
.booking-step {
  flex: 1;
  min-width: 100px;
  text-align: center;
  position: relative;
}
.booking-step:not(:last-child)::after {
  content: '';
  position: absolute;
  top: 18px;
  left: 55%;
  width: 90%;
  height: 2px;
  background: var(--border);
  z-index: 0;
}
.booking-step.is-complete:not(:last-child)::after { background: var(--brand); }
.booking-step__dot {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--surface-alt);
  border: 2px solid var(--border);
  display: grid;
  place-items: center;
  margin: 0 auto 0.5rem;
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--ink-soft);
  position: relative;
  z-index: 1;
  transition: 0.2s;
}
.booking-step.is-active .booking-step__dot,
.booking-step.is-complete .booking-step__dot {
  background: var(--brand);
  border-color: var(--brand);
  color: white;
}
.booking-step__label {
  font-size: 0.72rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--ink-soft);
}
.booking-step.is-active .booking-step__label { color: var(--brand); }

.booking-step-pane { display: none; animation: fadeIn 0.3s ease; }
.booking-step-pane.is-active { display: block; }
@keyframes fadeIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

.service-options { display: grid; gap: 1rem; }
.service-option {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 1rem;
  align-items: center;
  padding: 1.25rem;
  border: 2px solid var(--border);
  border-radius: var(--radius);
  cursor: pointer;
  transition: 0.2s;
  text-align: left;
  background: white;
  font-family: inherit;
  width: 100%;
}
.service-option:hover { border-color: var(--brand-light); background: var(--surface-alt); }
.service-option.is-selected {
  border-color: var(--brand);
  background: rgba(107, 31, 50, 0.04);
  box-shadow: 0 0 0 3px rgba(107, 31, 50, 0.1);
}
.service-option__icon {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  background: var(--surface-alt);
  display: grid;
  place-items: center;
  font-size: 1.35rem;
}
.service-option.is-selected .service-option__icon { background: rgba(107, 31, 50, 0.12); }
.service-option__title { font-weight: 700; font-size: 1rem; color: var(--ink); margin-bottom: 0.2rem; }
.service-option__desc { font-size: 0.875rem; color: var(--ink-muted); line-height: 1.4; }
.service-option__price { font-size: 1.25rem; font-weight: 700; color: var(--brand); white-space: nowrap; }

.date-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 0.75rem;
}
.date-slot {
  padding: 1rem 0.75rem;
  border: 2px solid var(--border);
  border-radius: var(--radius);
  text-align: center;
  cursor: pointer;
  transition: 0.2s;
  background: white;
  font-family: inherit;
}
.date-slot:hover:not(:disabled) { border-color: var(--brand-light); }
.date-slot.is-selected { border-color: var(--brand); background: rgba(107, 31, 50, 0.05); }
.date-slot:disabled { opacity: 0.45; cursor: not-allowed; background: var(--surface-alt); }
.date-slot__weekday { font-size: 0.75rem; font-weight: 600; text-transform: uppercase; color: var(--ink-soft); }
.date-slot__day { font-size: 1.5rem; font-weight: 700; color: var(--brand); line-height: 1.1; }
.date-slot__month { font-size: 0.8rem; color: var(--ink-muted); }
.date-slot__spots { font-size: 0.7rem; color: var(--ink-soft); margin-top: 0.35rem; }
.date-slot.is-selected .date-slot__spots { color: var(--brand); font-weight: 600; }

.time-slots { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 1.25rem; }
.time-slot {
  padding: 0.65rem 1.125rem;
  border: 2px solid var(--border);
  border-radius: 999px;
  font-size: 0.9rem;
  font-weight: 600;
  cursor: pointer;
  background: white;
  font-family: inherit;
  transition: 0.2s;
}
.time-slot:hover { border-color: var(--brand-light); }
.time-slot.is-selected { border-color: var(--brand); background: var(--brand); color: white; }

.booking-actions {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--border);
  gap: 1rem;
  flex-wrap: wrap;
}
.btn--ghost {
  background: transparent;
  color: var(--ink-muted);
  border: 2px solid var(--border);
}
.btn--ghost:hover { border-color: var(--ink-muted); color: var(--ink); }

.booking-summary {
  position: sticky;
  top: calc(var(--nav-h) + 1.5rem);
  background: var(--surface-dark);
  color: white;
  border-radius: var(--radius-lg);
  padding: 1.75rem;
}
.booking-summary h3 { color: white; font-size: 1.25rem; margin-bottom: 1.25rem; }
.booking-summary__row {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.65rem 0;
  border-bottom: 1px solid rgba(255,255,255,0.1);
  font-size: 0.925rem;
}
.booking-summary__row span:first-child { color: rgba(255,255,255,0.65); }
.booking-summary__total {
  display: flex;
  justify-content: space-between;
  padding-top: 1rem;
  margin-top: 0.5rem;
  font-size: 1.15rem;
  font-weight: 700;
}
.booking-summary__total span:last-child { color: var(--accent-light); }
.booking-summary__note {
  margin-top: 1.25rem;
  padding: 0.875rem;
  background: rgba(255,255,255,0.08);
  border-radius: var(--radius);
  font-size: 0.8rem;
  color: rgba(255,255,255,0.7);
  line-height: 1.5;
}

.payment-methods { display: grid; gap: 0.75rem; margin-bottom: 1.5rem; }
.payment-method {
  display: flex;
  align-items: center;
  gap: 0.875rem;
  padding: 1rem 1.25rem;
  border: 2px solid var(--border);
  border-radius: var(--radius);
  cursor: pointer;
  background: white;
  font-family: inherit;
  width: 100%;
  text-align: left;
  transition: 0.2s;
}
.payment-method.is-selected { border-color: var(--brand); background: rgba(107, 31, 50, 0.04); }
.payment-method__icons { font-size: 1.25rem; letter-spacing: 0.15em; }

.card-fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  padding: 1.25rem;
  background: var(--surface-alt);
  border-radius: var(--radius);
  margin-bottom: 1rem;
}
.card-fields .form-group--full { grid-column: 1 / -1; }
.card-fields .form-group:nth-child(3) { grid-column: 1; }
.card-preview {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.875rem 1rem;
  background: white;
  border: 1px dashed var(--border);
  border-radius: 10px;
  font-size: 0.875rem;
  color: var(--ink-muted);
  margin-bottom: 1rem;
}

.terms-check {
  display: flex;
  gap: 0.75rem;
  align-items: flex-start;
  font-size: 0.9rem;
  color: var(--ink-muted);
  margin: 1.25rem 0;
}
.terms-check input { margin-top: 0.25rem; accent-color: var(--brand); }

.booking-confirm {
  text-align: center;
  padding: 2rem 1rem;
}
.booking-confirm__icon {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background: #dcfce7;
  color: #166534;
  display: grid;
  place-items: center;
  font-size: 2.5rem;
  margin: 0 auto 1.5rem;
}
.booking-confirm__ref {
  display: inline-block;
  padding: 0.5rem 1.25rem;
  background: var(--surface-alt);
  border-radius: 999px;
  font-family: monospace;
  font-size: 1rem;
  font-weight: 700;
  color: var(--brand);
  margin: 1rem 0 1.5rem;
  letter-spacing: 0.05em;
}
.confirm-details {
  text-align: left;
  max-width: 420px;
  margin: 2rem auto 0;
  background: var(--surface-alt);
  border-radius: var(--radius);
  padding: 1.5rem;
}
.confirm-details dt { font-size: 0.75rem; font-weight: 700; text-transform: uppercase; color: var(--ink-soft); margin-top: 0.75rem; }
.confirm-details dt:first-child { margin-top: 0; }
.confirm-details dd { font-weight: 600; color: var(--ink); }

/* Dashboard mock */
.dashboard-grid { display: grid; grid-template-columns: 280px 1fr; gap: 2rem; padding: 3rem 0 5rem; }
.dashboard-nav {
  background: var(--surface-alt);
  border-radius: var(--radius-lg);
  padding: 1.25rem;
  border: 1px solid var(--border);
}
.dashboard-nav a {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  padding: 0.75rem 1rem;
  border-radius: 10px;
  color: var(--ink-muted);
  font-weight: 500;
  font-size: 0.925rem;
}
.dashboard-nav a.is-active,
.dashboard-nav a:hover { background: white; color: var(--brand); }
.booking-card {
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 1.5rem;
  margin-bottom: 1rem;
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 1.25rem;
  align-items: center;
}
.booking-card__status {
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 0.3rem 0.75rem;
  border-radius: 999px;
}
.booking-card__status--confirmed { background: #dcfce7; color: #166534; }
.booking-card__status--pending { background: #fef3c7; color: #92400e; }
.booking-card__status--completed { background: #e0e7ff; color: #3730a3; }
.booking-card__actions { display: flex; flex-direction: column; gap: 0.5rem; }
.btn--disabled {
  opacity: 0.5;
  cursor: not-allowed;
  position: relative;
}
.flow-diagram {
  background: var(--surface-alt);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 2rem;
  margin-top: 2rem;
}
.flow-diagram h3 { margin-bottom: 1.25rem; font-size: 1.35rem; }
.flow-steps { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; }
.flow-step {
  background: white;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 0.75rem 1rem;
  font-size: 0.875rem;
  font-weight: 600;
}
.flow-arrow { color: var(--brand); font-weight: 700; }

@media (max-width: 1024px) {
  .booking-layout, .dashboard-grid { grid-template-columns: 1fr; }
  .booking-summary { position: static; }
}

@media (max-width: 768px) {
  .grid-3, .grid-2, .testimonial-grid, .compare, .form-grid, .goal-cards { grid-template-columns: 1fr; }
  .program-panels { padding: 1.5rem 1.25rem; }
  .pricing-card { grid-template-columns: 1fr; text-align: center; }
  .pricing-card__icon { margin: 0 auto; }
  .program-cta-bar { flex-direction: column; text-align: center; }
  .program-cta-bar .btn { width: 100%; }
  .callout--action { flex-direction: column; align-items: stretch; text-align: center; }
  .callout--action .btn { width: 100%; }
  .nav-toggle { display: block; }
  .nav {
    display: none;
    position: absolute;
    top: var(--nav-h);
    left: 0;
    right: 0;
    background: white;
    flex-direction: column;
    align-items: stretch;
    padding: 1rem;
    border-bottom: 1px solid var(--border);
    box-shadow: var(--shadow);
    max-height: calc(100vh - var(--nav-h));
    overflow-y: auto;
  }
  .nav.open { display: flex; }
  .nav .btn--nav-register {
    margin-left: 0;
    margin-top: 0.75rem;
    width: 100%;
    justify-content: center;
  }
  .nav__dropdown {
    width: 100%;
  }
  .nav__trigger {
    width: 100%;
    text-align: left;
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
  .nav__menu,
  .nav__mega {
    position: static;
    min-width: 0;
    width: 100%;
    opacity: 1;
    visibility: hidden;
    transform: none;
    box-shadow: none;
    border: none;
    padding: 0;
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.25s ease, padding 0.25s ease, visibility 0.25s;
  }
  .nav__dropdown.is-open .nav__menu,
  .nav__dropdown.is-open .nav__mega {
    visibility: visible;
    max-height: 1200px;
    padding: 0.5rem 0 0.75rem 0.5rem;
  }
  .nav__mega-grid {
    grid-template-columns: 1fr;
    gap: 0.15rem;
  }
  .nav__mega-head {
    padding-left: 0.35rem;
    padding-right: 0.35rem;
  }
  .hero--video {
    min-height: min(88vh, 760px);
  }
  .hero__content {
    padding: clamp(4rem, 10vh, 5rem) 0 clamp(3rem, 8vh, 4rem);
  }
  .hero__actions {
    flex-direction: column;
    align-items: stretch;
  }
  .hero__actions .btn {
    width: 100%;
    justify-content: center;
  }
  .hero__scroll-hint {
    display: none;
  }
  .topbar .container {
    justify-content: center;
    text-align: center;
  }
  .topbar__contacts {
    justify-content: center;
    gap: 0.85rem 1rem;
  }
  .logo--image-only img {
    height: 42px;
    max-width: min(200px, 58vw);
  }
  .about-strip__image {
    max-height: 320px;
    object-fit: cover;
    width: 100%;
  }
  .tier-card {
    min-height: 280px;
  }
  .seminar-card {
    grid-template-columns: 1fr;
    text-align: left;
    gap: 1.25rem;
  }
  .seminar-card__date {
    margin: 0;
    width: fit-content;
  }
  .seminar-card__aside {
    align-items: stretch;
    min-width: 0;
  }
  .seminar-card__aside .btn {
    width: 100%;
    justify-content: center;
  }
  .registration-intro {
    flex-direction: column;
    padding: 1.5rem;
  }
  .contact-layout {
    grid-template-columns: 1fr;
  }
  .contact-form-panel {
    padding: 1.5rem;
  }
  .job-card {
    padding: 1.5rem;
  }
  .job-card__header {
    flex-direction: column;
  }
  .footer__grid { grid-template-columns: 1fr; }
  .booking-layout {
    grid-template-columns: 1fr;
  }
}

/* ── Oxygen global typography overrides (match prototype HTML exactly) ── */
html:has(body.asklepaedia-prototype) {
  font-size: 17px !important;
}

body.asklepaedia-prototype {
  font-family: 'Source Sans 3', system-ui, -apple-system, sans-serif !important;
  font-size: 17px !important;
  line-height: 1.65 !important;
  font-weight: 400 !important;
  color: var(--ink) !important;
}

body.asklepaedia-prototype .ct-code-block,
body.asklepaedia-prototype .ct-code-block * {
  font-family: inherit;
}

body.asklepaedia-prototype h1,
body.asklepaedia-prototype h2,
body.asklepaedia-prototype h3,
body.asklepaedia-prototype h4,
body.asklepaedia-prototype h5,
body.asklepaedia-prototype h6,
body.asklepaedia-prototype .ct-headline {
  font-family: 'Cormorant Garamond', Georgia, 'Times New Roman', serif !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
  color: var(--ink);
}

body.asklepaedia-prototype h1,
body.asklepaedia-prototype .hero h1,
body.asklepaedia-prototype .page-hero h1 {
  font-size: clamp(2.4rem, 5vw, 3.75rem) !important;
}

body.asklepaedia-prototype h2 {
  font-size: clamp(1.75rem, 3vw, 2.5rem) !important;
}

body.asklepaedia-prototype h3 {
  font-size: 1.5rem !important;
}

body.asklepaedia-prototype h4 {
  font-size: 1.2rem !important;
}

body.asklepaedia-prototype h5,
body.asklepaedia-prototype h6 {
  font-size: 1rem !important;
}

body.asklepaedia-prototype p,
body.asklepaedia-prototype li,
body.asklepaedia-prototype td,
body.asklepaedia-prototype th,
body.asklepaedia-prototype label,
body.asklepaedia-prototype input,
body.asklepaedia-prototype textarea,
body.asklepaedia-prototype select,
body.asklepaedia-prototype button,
body.asklepaedia-prototype .ct-text-block {
  font-family: 'Source Sans 3', system-ui, -apple-system, sans-serif !important;
  font-size: inherit;
  line-height: inherit;
}

body.asklepaedia-prototype .hero h1 {
  color: #fff !important;
}

body.asklepaedia-prototype .hero p,
body.asklepaedia-prototype .page-hero p {
  font-size: 1.125rem !important;
  line-height: 1.65 !important;
}

body.asklepaedia-prototype .page-hero p {
  font-size: 1.1rem !important;
}

body.asklepaedia-prototype .hero__list li {
  font-size: 1rem !important;
}

body.asklepaedia-prototype .hero__eyebrow,
body.asklepaedia-prototype .section__eyebrow {
  font-family: 'Source Sans 3', system-ui, sans-serif !important;
  font-size: 0.8rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
}

body.asklepaedia-prototype .hero__eyebrow {
  font-weight: 600 !important;
  letter-spacing: 0.16em !important;
  color: rgba(255, 255, 255, 0.92) !important;
}

body.asklepaedia-prototype .topbar,
body.asklepaedia-prototype .topbar a {
  font-size: 0.875rem !important;
}

body.asklepaedia-prototype .topbar a:hover,
body.asklepaedia-prototype .topbar .topbar__link:hover {
  color: var(--accent-light) !important;
}

body.asklepaedia-prototype .logo:not(.logo--image-only),
body.asklepaedia-prototype .logo:not(.logo--image-only) span {
  font-family: 'Cormorant Garamond', Georgia, serif !important;
  font-size: 1.15rem !important;
  font-weight: 700 !important;
  line-height: 1.15 !important;
}

body.asklepaedia-prototype .nav > a,
body.asklepaedia-prototype .nav__trigger,
body.asklepaedia-prototype .nav__menu a,
body.asklepaedia-prototype .nav__mega-link,
body.asklepaedia-prototype .nav__mega-all {
  font-family: 'Source Sans 3', system-ui, sans-serif !important;
  font-size: 0.925rem !important;
  font-weight: 500 !important;
}

body.asklepaedia-prototype .nav__menu a,
body.asklepaedia-prototype .nav__mega-label {
  font-size: 0.9rem !important;
}

body.asklepaedia-prototype .nav__menu.nav__mega a.nav__mega-link {
  display: flex !important;
  align-items: center !important;
  flex-direction: row !important;
  gap: 0.75rem !important;
}

body.asklepaedia-prototype .nav__mega-link:hover,
body.asklepaedia-prototype .nav__mega-link:focus-visible {
  color: #fff !important;
}

body.asklepaedia-prototype .btn {
  font-family: 'Source Sans 3', system-ui, sans-serif !important;
  font-size: 0.9rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase !important;
}

body.asklepaedia-prototype .btn--sm {
  font-size: 0.8rem !important;
}

body.asklepaedia-prototype .nav .btn--nav-register {
  font-size: 0.75rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  color: #fff !important;
  background: var(--brand) !important;
  border: 2px solid var(--brand) !important;
  border-radius: 10px !important;
  box-shadow: 0 4px 14px rgba(107, 31, 50, 0.35) !important;
}

body.asklepaedia-prototype .nav .btn--nav-register:hover {
  color: #fff !important;
  background: var(--brand-dark) !important;
  border-color: var(--brand-dark) !important;
}

body.asklepaedia-prototype .tier-card__label {
  font-family: 'Source Sans 3', system-ui, sans-serif !important;
  font-size: 0.75rem !important;
}

body.asklepaedia-prototype .tier-card h3 {
  font-size: 1.75rem !important;
  color: #fff !important;
}

body.asklepaedia-prototype .card p,
body.asklepaedia-prototype .prose,
body.asklepaedia-prototype .prose li,
body.asklepaedia-prototype .section__header p {
  font-size: 0.975rem !important;
}

body.asklepaedia-prototype .section__header p {
  font-size: 1rem !important;
}

body.asklepaedia-prototype .card h3 {
  font-size: 1.5rem !important;
}

body.asklepaedia-prototype a.card:hover,
body.asklepaedia-prototype a.card:focus-visible {
  background: #1a1f2e !important;
  border-color: #1a1f2e !important;
}

body.asklepaedia-prototype a.card:hover h3,
body.asklepaedia-prototype a.card:focus-visible h3,
body.asklepaedia-prototype a.card:hover p,
body.asklepaedia-prototype a.card:focus-visible p,
body.asklepaedia-prototype a.card:hover .card__link,
body.asklepaedia-prototype a.card:focus-visible .card__link {
  color: #fff !important;
}

body.asklepaedia-prototype .testimonial-grid {
  gap: 20px !important;
  row-gap: 20px !important;
  column-gap: 20px !important;
}

body.asklepaedia-prototype .testimonial-carousel__slide,
body.asklepaedia-prototype figure.testimonial-carousel__slide,
body.asklepaedia-prototype .testimonial-grid .testimonial,
body.asklepaedia-prototype figure.testimonial {
  margin: 0 !important;
}

body.asklepaedia-prototype .testimonial blockquote {
  font-size: 0.975rem !important;
  font-style: italic !important;
}

body.asklepaedia-prototype .testimonial cite {
  font-size: 0.9rem !important;
  font-style: normal !important;
  font-weight: 600 !important;
}

body.asklepaedia-prototype .testimonial__stars {
  font-size: 0.9rem !important;
}

body.asklepaedia-prototype .card__link {
  font-size: 0.9rem !important;
  font-weight: 600 !important;
}

body.asklepaedia-prototype .footer h4,
body.asklepaedia-prototype .sidebar h4 {
  font-family: 'Source Sans 3', system-ui, sans-serif !important;
  font-size: 0.75rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
}

body.asklepaedia-prototype .footer nav a,
body.asklepaedia-prototype .footer__brand p {
  font-size: 0.925rem !important;
}

body.asklepaedia-prototype .footer__bottom,
body.asklepaedia-prototype .breadcrumb {
  font-size: 0.875rem !important;
}

body.asklepaedia-prototype .breadcrumb {
  font-size: 0.85rem !important;
}

body.asklepaedia-prototype .page-hero h1 {
  color: #fff !important;
}

body.asklepaedia-prototype .page-hero.program-hero--light h1,
body.asklepaedia-prototype .page-hero.program-hero--light .program-hero__title,
body.asklepaedia-prototype .page-hero.has-hero-ambient h1,
body.asklepaedia-prototype .page-hero.has-hero-ambient .program-hero__title {
  color: var(--ink) !important;
}

body.asklepaedia-prototype .page-hero.has-hero-ambient p,
body.asklepaedia-prototype .page-hero.has-hero-ambient .program-hero__desc {
  color: var(--ink-muted) !important;
}

body.asklepaedia-prototype .page-hero.has-hero-ambient .breadcrumb,
body.asklepaedia-prototype .page-hero.has-hero-ambient .breadcrumb a {
  color: var(--ink-soft) !important;
}

body.asklepaedia-prototype .page-hero.has-hero-ambient .section__eyebrow {
  color: var(--brand) !important;
}

body.asklepaedia-prototype .programs-hub .prose h3 {
  color: var(--ink) !important;
}

body.asklepaedia-prototype .programs-hub .prose .callout h2,
body.asklepaedia-prototype .programs-hub .prose .callout h3,
body.asklepaedia-prototype .programs-hub .prose .callout h4 {
  color: #fff !important;
}

body.asklepaedia-prototype .programs-hub .prose .callout p,
body.asklepaedia-prototype .programs-hub .prose .callout li {
  color: rgba(255, 255, 255, 0.92) !important;
}

body.asklepaedia-prototype .programs-hub .prose .callout--soft h2,
body.asklepaedia-prototype .programs-hub .prose .callout--soft h3,
body.asklepaedia-prototype .programs-hub .prose .callout--soft h4,
body.asklepaedia-prototype .programs-hub .prose .callout--action h2,
body.asklepaedia-prototype .programs-hub .prose .callout--action h3,
body.asklepaedia-prototype .programs-hub .prose .callout--action h4 {
  color: var(--ink) !important;
}

body.asklepaedia-prototype .programs-hub .prose .callout--soft p,
body.asklepaedia-prototype .programs-hub .prose .callout--soft li,
body.asklepaedia-prototype .programs-hub .prose .callout--action p {
  color: var(--ink-muted) !important;
}

body.asklepaedia-prototype .programs-hub .prose .callout--action .callout--action__price {
  color: var(--brand) !important;
}

body.asklepaedia-prototype .prose h2 {
  font-size: clamp(1.75rem, 3vw, 2.5rem) !important;
}

body.asklepaedia-prototype .prose h3 {
  font-size: 1.5rem !important;
}

body.asklepaedia-prototype .prose h4 {
  font-family: 'Source Sans 3', system-ui, sans-serif !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
}

body.asklepaedia-prototype .sidebar nav a {
  font-size: 0.9rem !important;
}

body.asklepaedia-prototype .seminar-card__date .day {
  font-size: 1.75rem !important;
  color: var(--ink) !important;
}

body.asklepaedia-prototype .seminar-card__date .month,
body.asklepaedia-prototype .job-meta span {
  font-size: 0.85rem !important;
}

body.asklepaedia-prototype .seminar-card__price {
  font-size: 1.45rem !important;
  color: var(--ink) !important;
}

body.asklepaedia-prototype .seminar-registration-page .callout--action h3,
body.asklepaedia-prototype .seminar-registration-page .callout--action p {
  color: var(--ink) !important;
}

body.asklepaedia-prototype .join-us-page .job-section__title,
body.asklepaedia-prototype .join-us-page .callout--action h3,
body.asklepaedia-prototype .join-us-page .callout--action p,
body.asklepaedia-prototype .terms-page .prose .callout--soft p {
  color: var(--ink-muted) !important;
}

body.asklepaedia-prototype .join-us-page .callout--action h3 {
  color: var(--ink) !important;
}

body.asklepaedia-prototype .sidebar-nav a {
  font-size: 0.9rem !important;
}

body.asklepaedia-prototype .form-group label {
  font-size: 0.875rem !important;
  font-weight: 600 !important;
}

body.asklepaedia-prototype .form-group input,
body.asklepaedia-prototype .form-group textarea,
body.asklepaedia-prototype .form-group select {
  font-size: 1rem !important;
}

/* Statement editing book page */
.editing-book__layout {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 2rem;
  align-items: start;
}
.editing-book__panel {
  min-width: 0;
}
.editing-book__files-title {
  margin: 2rem 0 0.35rem;
  font-size: 1.25rem;
}
.editing-book__files-help {
  color: var(--ink-muted);
  font-size: 0.9rem;
  margin-bottom: 1rem;
}
.editing-upload-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}
.editing-upload-grid .form-group--full {
  grid-column: 1 / -1;
}
.editing-book__terms {
  margin-top: 1.5rem;
}
.editing-book__actions {
  margin-top: 1.75rem;
}
.editing-book__checklist {
  margin-top: 1.25rem;
}
.editing-book .required {
  color: var(--brand);
}
.editing-book input[type="file"] {
  width: 100%;
  padding: 0.75rem;
  border: 1px dashed var(--border);
  border-radius: var(--radius);
  background: var(--surface-alt);
  font-size: 0.9rem;
}
.woocommerce-notices-wrapper {
  margin-bottom: 1.5rem;
}
@media (max-width: 1024px) {
  .editing-book__layout {
    grid-template-columns: 1fr;
  }
  .editing-upload-grid {
    grid-template-columns: 1fr;
  }
}

/* Blog archive & single posts */
.blog-archive {
  padding-top: 3rem;
  padding-bottom: 4.5rem;
}
.blog-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2rem;
}
.blog-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow);
  display: flex;
  flex-direction: column;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.blog-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 28px rgba(26, 31, 46, 0.1);
}
.blog-card__media {
  display: block;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: var(--surface-alt);
}
.blog-card__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.blog-card__image--placeholder {
  background: linear-gradient(135deg, #eef3f6 0%, #e4e9ed 100%);
}
.blog-card__body {
  padding: 1.35rem 1.5rem 1.5rem;
  display: flex;
  flex-direction: column;
  flex: 1;
}
.blog-card__category {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--brand);
  margin-bottom: 0.55rem;
}
.blog-card__title {
  font-size: 1.35rem;
  line-height: 1.25;
  margin: 0 0 0.65rem;
}
.blog-card__title a {
  color: var(--ink);
  text-decoration: none;
}
.blog-card__title a:hover {
  color: var(--brand);
}
.blog-card__excerpt {
  color: var(--ink-muted);
  font-size: 0.95rem;
  line-height: 1.55;
  margin: 0 0 1rem;
  flex: 1;
}
.blog-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1rem;
  font-size: 0.82rem;
  color: var(--ink-soft);
  border-top: 1px solid var(--border);
  padding-top: 0.85rem;
}
.blog-empty {
  text-align: center;
  color: var(--ink-muted);
  padding: 3rem 1rem;
}

.blog-single {
  padding: 2.5rem 0 4.5rem;
}
.blog-single__layout {
  max-width: 780px;
}
.blog-single__hero-deck {
  color: var(--ink-muted);
  font-size: 1.08rem;
  max-width: 640px;
}
.blog-single__header {
  margin-bottom: 2rem;
}
.blog-single__byline {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1.25rem;
  font-size: 0.88rem;
  color: var(--ink-soft);
  margin-bottom: 1.5rem;
}
.blog-single__author {
  font-weight: 600;
  color: var(--ink);
}
.blog-single__featured {
  margin: 0;
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow);
  border: 1px solid var(--border);
}
.blog-single__featured-img {
  width: 100%;
  height: auto;
  display: block;
}
.blog-single__content {
  margin-top: 2rem;
}
.blog-single__content .blog-cta {
  margin: 2.5rem 0;
}
.blog-single__footer {
  margin-top: 2.5rem;
  padding-top: 0.5rem;
  border-top: 1px solid var(--border);
}

@media (max-width: 1024px) {
  .blog-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 640px) {
  .blog-grid {
    grid-template-columns: 1fr;
  }
}
