.ed-page {
  --ed-space:#020617;
  --ed-night:#0a1628;
  --ed-navy:#0f1e3a;
  --ed-deep:#183B65;
  --ed-blue:#1d4ed8;
  --ed-bright:#3b82f6;
  --ed-electric:#60a5fa;
  --ed-cyan:#06b6d4;
  --ed-cyan-bright:#22d3ee;
  --ed-violet:#8b5cf6;
  --ed-violet-bright:#a78bfa;
  --ed-tint:#dbeafe;
  --ed-tint-soft:#f0f7ff;
  --ed-mute:#64748b;
  --ed-ink:#0a1628;
  --ed-line:rgba(11,30,63,.08);
  --ed-gold:#c9a961;
  --ed-gold-bright:#e8c97a;
  --ed-gold-soft:rgba(201,169,97,0.12);
  --ed-gold-line:rgba(201,169,97,0.32);
  --ed-warm:#fef3c7;
  --ed-mono: "Inter", Arial, Verdana, Tahoma, "Trebuchet MS", sans-serif;
  --ed-serif: "Inter", Arial, Verdana, Tahoma, "Trebuchet MS", sans-serif;
  --ed-sans: "Inter", Arial, Verdana, Tahoma, "Trebuchet MS", sans-serif;
  perspective: 2000px;
}

/* ============== CHAPTER MARKERS (gallery-style section openers) ============== */
.ed-chapter {
  display: flex; align-items: center; gap: 0.95rem;
  width: fit-content;
  margin-bottom: 1.5rem;
  font-family: var(--ed-mono);
  font-size: 0.8rem; font-weight: 700;
  letter-spacing: 0.28em; text-transform: uppercase;
}
/* Centred chapter marker in section headers and the manifesto */
.ed-section__header .ed-chapter,
.ed-manifesto-inner .ed-chapter,
.ed-faq__header .ed-chapter { margin-left: auto; margin-right: auto; }
.ed-chapter__num {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 40px; min-height: 26px;
  padding: 0.32rem 0.55rem;
  background: var(--ed-gold-soft);
  border: 1px solid var(--ed-gold-line);
  border-radius: 4px;
  color: var(--ed-gold-bright);
  letter-spacing: 0.18em;
  font-weight: 700;
}
.ed-chapter__line {
  display: inline-block;
  width: 48px; height: 1px;
  background: linear-gradient(90deg, var(--ed-gold), transparent);
}
.ed-chapter__label {
  color: var(--ed-gold);
  letter-spacing: 0.32em;
}
.ed-section--light .ed-chapter__label,
.ed-section--light .ed-chapter__num { color: #8c6e2b; }
.ed-section--light .ed-chapter__line { background: linear-gradient(90deg, #8c6e2b, transparent); }
.ed-section--light .ed-chapter__num { background: rgba(140,110,43,0.08); border-color: rgba(140,110,43,0.3); }

/* ============== ORNAMENTAL DIVIDER (between sections) ============== */
.ed-divider {
  display: flex; align-items: center; justify-content: center;
  height: 1px;
  margin: 0 auto;
  padding: 4rem 1.5rem;
  position: relative;
  background:
    radial-gradient(ellipse at 50% 50%, rgba(201,169,97,0.12), transparent 60%);
}
.ed-divider__inner {
  display: inline-flex; align-items: center; gap: 1.25rem;
  font-family: var(--ed-mono);
  font-size: 0.75rem; font-weight: 700;
  letter-spacing: 0.4em; text-transform: uppercase;
  color: var(--ed-gold);
}
.ed-divider__rule {
  display: inline-block;
  width: 60px; height: 1px;
  background: linear-gradient(90deg, transparent, var(--ed-gold-line));
}
.ed-divider__rule--right { background: linear-gradient(90deg, var(--ed-gold-line), transparent); }
.ed-divider__diamond {
  width: 6px; height: 6px;
  border: 1px solid var(--ed-gold);
  transform: rotate(45deg);
}
.ed-divider--dark { background: radial-gradient(ellipse at 50% 50%, rgba(201,169,97,0.08), transparent 60%); }
.ed-divider--dark .ed-divider__inner { color: var(--ed-gold-bright); }

/* ============== ESTABLISHMENT PLAQUE (entrance brass plaque feel) ============== */
.ed-plaque {
  display: flex; align-items: center; gap: 1.5rem;
  width: fit-content; max-width: 100%; flex-wrap: wrap;
  padding: 1rem 1.5rem;
  background: rgba(255,255,255,0.03);
  border: 1px solid var(--ed-gold-line);
  border-radius: 4px;
  position: relative;
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
}
.ed-plaque::before, .ed-plaque::after {
  content: "";
  position: absolute;
  width: 10px; height: 10px;
  border: 1px solid var(--ed-gold);
  opacity: 0.6;
}
.ed-plaque::before { top: -1px; left: -1px; border-right: none; border-bottom: none; }
.ed-plaque::after { bottom: -1px; right: -1px; border-left: none; border-top: none; }
.ed-plaque__col {
  display: flex; flex-direction: column; gap: 0.15rem;
}
.ed-plaque__col + .ed-plaque__col { padding-left: 1.5rem; border-left: 1px solid rgba(201,169,97,0.2); }
.ed-plaque__label {
  font-family: var(--ed-mono);
  font-size: 0.75rem; font-weight: 700;
  letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--ed-gold);
}
.ed-plaque__value {
  font-family: var(--ed-serif);
  font-size: 1.15rem; font-weight: 500;
  font-style: italic;
  letter-spacing: 0.02em;
  color: rgba(255,255,255,0.95);
}
.ed-page *, .ed-page *::before, .ed-page *::after { box-sizing: border-box; }
.ed-page h1, .ed-page h2, .ed-page h3, .ed-page h4 { text-wrap: balance; }
.ed-page p { text-wrap: pretty; }

/* Premium grain overlay */
.ed-grain {
  position: fixed; inset: 0; pointer-events: none; z-index: 100;
  opacity: 0.05; mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='200' height='200' filter='url(%23n)' opacity='0.85'/></svg>");
  background-size: 200px 200px;
}
.ed-cursor {
  position: fixed; inset: 0; pointer-events: none; z-index: 1;
  background: radial-gradient(600px circle at var(--cx, 50%) var(--cy, 50%), rgba(139,92,246,0.07), transparent 60%);
}

/* Reveal: driven by the IntersectionObserver in education.js.
   Scroll-driven (animation-timeline) reveals were removed: headless captures
   never advance them and bottom-of-page elements can stay stuck at opacity 0. */
@media (prefers-reduced-motion: reduce) {
  .ed-page [data-reveal] { animation: none !important; opacity: 1 !important; transform: none !important; }
}

@keyframes gtPulse { 0%,100%{opacity:1;transform:scale(1);} 50%{opacity:.55;transform:scale(.85);} }
@keyframes gtSpin { from{transform:rotate(0deg);} to{transform:rotate(360deg);} }
@keyframes gtAurora { 0%,100%{transform:translate3d(0,0,0) scale(1);} 50%{transform:translate3d(-30px,20px,0) scale(1.05);} }
@keyframes gtScan { from{transform:translateY(0);} to{transform:translateY(420px);} }

/* ============== HERO ============== */
.ed-hero {
  position: relative;
  min-height: 88vh;
  background:
    radial-gradient(ellipse at 80% 20%, rgba(139,92,246,0.18), transparent 55%),
    radial-gradient(ellipse at 10% 90%, rgba(34,211,238,0.16), transparent 55%),
    linear-gradient(135deg, var(--ed-space) 0%, var(--ed-night) 45%, var(--ed-navy) 100%);
  color: #fff;
  padding: 6rem 1.5rem 4rem;
  overflow: hidden;
  display: flex; align-items: center;
}
.ed-hero__bg { position: absolute; inset: 0; pointer-events: none; overflow: hidden; }

/* 3D grid floor */
.ed-hero__grid3d {
  position: absolute; bottom: -22%; left: -10%; right: -10%; height: 80%;
  transform-style: preserve-3d;
  transform: rotateX(62deg);
  transform-origin: center bottom;
  background-image:
    linear-gradient(rgba(139,92,246,0.22) 1px, transparent 1px),
    linear-gradient(90deg, rgba(34,211,238,0.22) 1px, transparent 1px);
  background-size: 60px 60px;
  -webkit-mask-image: radial-gradient(ellipse at 50% 100%, #000 30%, transparent 80%);
  mask-image: radial-gradient(ellipse at 50% 100%, #000 30%, transparent 80%);
  animation: gtGridFlow 18s linear infinite;
}
@keyframes gtGridFlow { from{background-position:0 0;} to{background-position:0 60px;} }

.ed-hero__particles { position: absolute; inset: 0; }
.ed-hero__particles span {
  position: absolute;
  width: 4px; height: 4px;
  border-radius: 50%;
  background: var(--ed-cyan-bright);
  box-shadow: 0 0 12px var(--ed-cyan-bright);
  animation: gtFloat linear infinite;
  opacity: 0.55;
}
.ed-hero__particles span:nth-child(odd) { background: var(--ed-violet-bright); box-shadow: 0 0 12px var(--ed-violet-bright); }
.ed-hero__particles span:nth-child(1) { left: 8%;  animation-duration: 22s; animation-delay: 0s; }
.ed-hero__particles span:nth-child(2) { left: 22%; animation-duration: 28s; animation-delay: 3s; }
.ed-hero__particles span:nth-child(3) { left: 38%; animation-duration: 18s; animation-delay: 6s; }
.ed-hero__particles span:nth-child(4) { left: 55%; animation-duration: 26s; animation-delay: 1s; }
.ed-hero__particles span:nth-child(5) { left: 72%; animation-duration: 22s; animation-delay: 4s; }
.ed-hero__particles span:nth-child(6) { left: 88%; animation-duration: 20s; animation-delay: 8s; }
@keyframes gtFloat { from{bottom:-5%;opacity:0;} 10%{opacity:0.55;} 90%{opacity:0.55;} to{bottom:105%;opacity:0;} }

/* Hero image (sits inside .ed-hero__feature grid alongside the H1) */
.ed-hero__image {
  position: relative;
  width: 100%;
  max-width: 560px;
  aspect-ratio: 1 / 1;
  margin: 0;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 34px 90px -22px rgba(34,211,238,0.4), 0 0 0 1px rgba(201,169,97,0.28), 0 0 60px rgba(139,92,246,0.18);
  z-index: 1;
}
.ed-hero__image img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
}
.ed-hero__image::before, .ed-hero__image::after {
  content: ""; position: absolute;
  width: 16px; height: 16px;
  border: 1px solid var(--ed-gold);
  opacity: 0.85;
  z-index: 1;
  pointer-events: none;
}
.ed-hero__image::before { top: 12px; left: 12px; border-right: none; border-bottom: none; }
.ed-hero__image::after { bottom: 12px; right: 12px; border-left: none; border-top: none; }
@media (max-width: 992px) {
  .ed-hero__image {
    width: 100%; max-width: 520px;
    margin: 2.5rem auto 0;
  }
}

.ed-hero__inner {
  position: relative; z-index: 3;
  max-width: 1200px; margin: 0 auto;
  width: 100%;
  display: flex;
  flex-direction: column;
}
/* Feature row: image left, H1 right. Text below wraps full-width across the hero. */
.ed-hero__feature {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  gap: 3rem;
  align-items: center;
  margin: 0.75rem 0 2.25rem;
}
.ed-hero__feature h1 { margin: 0; }
.ed-hero__feature .ed-search {
  width: 100%; max-width: 100%;
  margin: 0;
  z-index: 6;
}
@media (max-width: 992px) {
  .ed-hero__feature {
    grid-template-columns: 1fr;
    gap: 1.5rem;
    margin: 0.5rem 0 2rem;
  }
}
.ed-hero__hud {
  display: flex; align-items: center; gap: 0.6rem;
  width: fit-content;
  font-family: var(--ed-mono);
  font-size: 0.85rem; font-weight: 700;
  letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--ed-cyan-bright);
  padding: 0.5rem 1.1rem;
  background: rgba(34,211,238,0.06);
  border: 1px solid rgba(34,211,238,0.3);
  border-radius: 999px;
  margin-bottom: 1.6rem;
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
}
.ed-hero__hud-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--ed-cyan-bright); box-shadow: 0 0 12px var(--ed-cyan-bright); animation: gtPulse 2s ease-in-out infinite; }

.ed-hero h1 {
  font-family: var(--ed-sans);
  font-size: clamp(2.5rem, 5.5vw, 4.25rem);
  font-weight: 600;
  letter-spacing: -0.04em;
  line-height: 1.0;
  margin: 0 0 1.6rem;
  color: #fff;
  max-width: 980px;
}
.ed-hero h1 em {
  font-family: var(--ed-serif);
  font-style: italic;
  font-weight: 500;
  letter-spacing: -0.01em;
  background: linear-gradient(135deg, var(--ed-cyan-bright) 0%, var(--ed-electric) 45%, var(--ed-gold-bright) 100%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
  padding: 0 0.05em;
}
.ed-hero__lede {
  font-size: 1.125rem;
  line-height: 1.65;
  color: rgba(255,255,255,0.78);
  max-width: 100%;
  margin: 0 0 2rem;
}

.ed-hero__meta {
  display: flex; flex-wrap: wrap; gap: 0.6rem;
  margin-bottom: 2rem;
}
.ed-hero__chip {
  display: inline-flex; align-items: center; gap: 0.5rem;
  padding: 0.55rem 1rem;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 999px;
  font-family: var(--ed-mono);
  font-size: 0.8rem; font-weight: 700;
  letter-spacing: 0.16em; text-transform: uppercase;
  color: rgba(255,255,255,0.85);
}
.ed-hero__chip svg { width: 12px; height: 12px; color: var(--ed-cyan-bright); }

.ed-hero__cta-row { display: flex; gap: 0.9rem; flex-wrap: wrap; width: fit-content; max-width: 100%; }
.ed-btn {
  display: inline-flex; align-items: center; gap: 0.55rem;
  padding: 1rem 2rem; border-radius: 12px;
  font-family: var(--ed-sans);
  font-weight: 700; font-size: 0.95rem;
  text-decoration: none;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  min-height: 48px;
  position: relative; overflow: hidden;
}
.ed-btn--primary {
  background: linear-gradient(135deg, var(--ed-violet) 0%, var(--ed-blue) 50%, var(--ed-cyan-bright) 100%);
  color: #fff;
  box-shadow: 0 14px 35px -8px rgba(139,92,246,0.55), 0 0 0 1px rgba(255,255,255,0.1) inset;
}
.ed-btn--primary::before {
  content: ""; position: absolute; top: 0; left: -100%;
  width: 100%; height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.3), transparent);
  transition: left 0.6s ease;
}
.ed-btn--primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 22px 45px -10px rgba(139,92,246,0.7), 0 0 30px rgba(34,211,238,0.35);
  color: #fff;
}
.ed-btn--primary:hover::before { left: 100%; }
.ed-btn--ghost {
  background: rgba(255,255,255,0.06);
  color: #fff;
  border: 1.5px solid rgba(255,255,255,0.25);
  backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
}
.ed-btn--ghost:hover { background: rgba(255,255,255,0.12); color: #fff; transform: translateY(-2px); border-color: var(--ed-cyan-bright); }
.ed-btn svg { width: 16px; height: 16px; transition: transform 0.3s ease; }
.ed-btn--primary:hover svg { transform: translateX(4px); }

.ed-hero__stats {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 0;
  margin-top: 4rem;
  max-width: 1100px;
  border-top: 1px solid rgba(201,169,97,0.22);
  border-bottom: 1px solid rgba(201,169,97,0.22);
  padding: 2.2rem 0;
  position: relative;
}
.ed-hero__stats::before, .ed-hero__stats::after {
  content: ""; position: absolute;
  width: 10px; height: 10px;
  border: 1px solid var(--ed-gold);
  opacity: 0.7;
}
.ed-hero__stats::before { top: -6px; left: -6px; border-right: none; border-bottom: none; }
.ed-hero__stats::after { bottom: -6px; right: -6px; border-left: none; border-top: none; }
@media (max-width: 768px) { .ed-hero__stats { grid-template-columns: repeat(2, 1fr); gap: 1.5rem 0; padding: 1.75rem 0; } }
.ed-stat-card {
  position: relative;
  padding: 0 1.5rem;
  background: transparent;
  border: none;
  text-align: left;
}
.ed-stat-card + .ed-stat-card { border-left: 1px solid rgba(201,169,97,0.18); }
@media (max-width: 768px) {
  .ed-stat-card { padding: 0 1rem; }
  .ed-stat-card:nth-child(odd) { border-left: none; }
  .ed-stat-card:nth-child(even) { border-left: 1px solid rgba(201,169,97,0.18); }
}
.ed-stat-card__value {
  font-family: var(--ed-serif);
  font-size: 2.6rem; font-weight: 500;
  color: #fff;
  letter-spacing: -0.025em; line-height: 1;
  margin: 0 0 0.5rem;
}
.ed-stat-card__value em {
  font-family: var(--ed-mono);
  font-style: normal;
  color: var(--ed-gold-bright);
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  margin-left: 0.55rem;
  vertical-align: 0.5em;
}
.ed-stat-card__label {
  font-family: var(--ed-mono);
  font-size: 0.8rem; font-weight: 700;
  letter-spacing: 0.18em; text-transform: uppercase;
  color: rgba(255,255,255,0.7);
  line-height: 1.45;
}

/* ============== SECTION CHROME ============== */
.ed-section { padding: 6rem 1.5rem; position: relative; }
.ed-section--light { background: linear-gradient(180deg, #fff 0%, var(--ed-tint-soft) 100%); }
.ed-section--dark {
  background:
    radial-gradient(ellipse at 80% 0%, rgba(139,92,246,0.15), transparent 55%),
    radial-gradient(ellipse at 10% 100%, rgba(34,211,238,0.10), transparent 55%),
    linear-gradient(180deg, var(--ed-night) 0%, var(--ed-space) 100%);
  color: #fff;
}
.ed-section__inner { max-width: 1200px; margin: 0 auto; position: relative; z-index: 1; }
.ed-section__header { max-width: 820px; margin: 0 auto 3rem; text-align: center; }

.ed-eyebrow {
  display: inline-flex; align-items: center; gap: 0.95rem;
  font-family: var(--ed-mono);
  font-size: 0.875rem; font-weight: 700;
  letter-spacing: 0.24em; text-transform: uppercase;
  color: var(--ed-cyan-bright);
  margin-bottom: 1.1rem;
}
.ed-eyebrow::before, .ed-eyebrow::after {
  content: ""; width: 32px; height: 1px;
  background: linear-gradient(90deg, transparent, currentColor, transparent);
}
.ed-section--light .ed-eyebrow { color: var(--ed-blue); }
.ed-h2 {
  font-family: var(--ed-sans);
  font-size: clamp(2.1rem, 4.2vw, 3.2rem);
  font-weight: 600; line-height: 1.08;
  letter-spacing: -0.03em;
  margin: 0 0 1.2rem;
  color: var(--ed-ink);
}
.ed-section--dark .ed-h2 { color: #fff; }
.ed-h2 em {
  font-family: var(--ed-serif);
  font-style: italic;
  font-weight: 500;
  letter-spacing: -0.01em;
  background: linear-gradient(135deg, var(--ed-blue), var(--ed-cyan-bright), var(--ed-gold));
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
  padding: 0 0.05em;
}
.ed-section--dark .ed-h2 em {
  background: linear-gradient(135deg, var(--ed-cyan-bright), var(--ed-violet-bright), var(--ed-gold-bright));
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
}
.ed-lede {
  font-size: 1.125rem; line-height: 1.65; color: var(--ed-mute); margin: 0 auto;
}
.ed-section--dark .ed-lede { color: rgba(255,255,255,0.75); }

/* ============== PLATFORM SELECTOR ============== */
.ed-platforms { display: grid; grid-template-columns: 1fr 1fr; gap: 1.75rem; }
@media (max-width: 900px) { .ed-platforms { grid-template-columns: 1fr; } }
.ed-platform {
  position: relative;
  padding: 2.5rem 2rem 2rem;
  background: rgba(15,30,58,0.65);
  border-radius: 22px;
  overflow: hidden;
  border: 1px solid rgba(34,211,238,0.18);
  backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
  transition: transform 0.5s cubic-bezier(0.23,1,0.32,1), box-shadow 0.5s, border-color 0.5s;
}
.ed-platform::before {
  content: ""; position: absolute; inset: 0;
  border-radius: inherit; padding: 1.5px;
  background: conic-gradient(from 0deg, var(--ed-cyan-bright), var(--ed-violet-bright), var(--ed-blue), var(--ed-cyan-bright));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor; mask-composite: exclude;
  opacity: 0; transition: opacity 0.5s ease;
  pointer-events: none;
}
.ed-platform:hover::before { opacity: 1; animation: gtSpin 8s linear infinite; }
.ed-platform:hover {
  transform: translateY(-6px);
  box-shadow: 0 32px 60px -20px rgba(139,92,246,0.45), 0 0 50px rgba(34,211,238,0.15);
  border-color: rgba(139,92,246,0.4);
}
.ed-platform__chapter {
  display: inline-block;
  font-family: var(--ed-mono);
  font-size: 0.8rem; font-weight: 700;
  letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--ed-cyan-bright);
  background: rgba(34,211,238,0.08);
  border: 1px solid rgba(34,211,238,0.3);
  padding: 0.4rem 0.85rem;
  border-radius: 999px;
  margin-bottom: 1.3rem;
}
.ed-platform h3 {
  font-family: var(--ed-sans);
  font-size: 1.85rem; font-weight: 700;
  letter-spacing: -0.02em; line-height: 1.15;
  color: #fff; margin: 0 0 0.75rem;
}
.ed-platform__sub {
  font-family: var(--ed-mono);
  font-size: 0.875rem; font-weight: 700;
  letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--ed-violet-bright);
  margin-bottom: 1.3rem;
}
.ed-platform p {
  color: rgba(255,255,255,0.85);
  font-size: 1rem; line-height: 1.7;
  margin: 0 0 1.5rem;
}
.ed-platform__features { list-style: none; padding: 0; margin: 0 0 1.75rem; }
.ed-platform__features li {
  display: flex; align-items: flex-start; gap: 0.7rem;
  color: rgba(255,255,255,0.92);
  font-size: 1rem; line-height: 1.6;
  padding: 0.55rem 0;
  border-bottom: 1px solid rgba(255,255,255,0.06);
}
.ed-platform__features li:last-child { border-bottom: none; }
.ed-platform__features li::before {
  content: "›"; flex-shrink: 0; color: var(--ed-cyan-bright); font-weight: 700;
}
.ed-platform__cta {
  display: inline-flex; align-items: center; gap: 0.55rem;
  font-family: var(--ed-mono);
  font-size: 0.95rem; font-weight: 700;
  letter-spacing: 0.14em; text-transform: uppercase;
  color: #fff;
  padding: 0.95rem 1.5rem;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.18);
  border-radius: 10px;
  text-decoration: none;
  transition: all 0.3s ease;
}
.ed-platform__cta:hover { background: var(--ed-cyan-bright); color: var(--ed-night); border-color: var(--ed-cyan-bright); transform: translateY(-2px); }
.ed-platform__cta svg { width: 14px; height: 14px; }

.ed-platform--wgs h3 em,
.ed-platform--targeted h3 em {
  font-style: normal;
  background: linear-gradient(135deg, var(--ed-cyan-bright), var(--ed-violet-bright));
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* ============== PANEL GRID ============== */
.ed-panels {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}
@media (max-width: 992px) { .ed-panels { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .ed-panels { grid-template-columns: 1fr; } }

.ed-panel {
  --ed-accent: #1d4ed8;
  --ed-accent-2: #22d3ee;
  --ed-accent-soft: rgba(29,78,216,0.07);
  --ed-accent-line: rgba(29,78,216,0.25);
  --ed-accent-glow: rgba(29,78,216,0.22);

  position: relative;
  background: linear-gradient(170deg, #fff 0%, #fbfcff 100%);
  border-radius: 22px;
  padding: 1.85rem 1.75rem 1.6rem;
  border: 1px solid var(--ed-line);
  box-shadow: 0 18px 40px -22px rgba(12,30,60,0.18);
  transition: transform 0.5s cubic-bezier(0.23,1,0.32,1), box-shadow 0.5s, border-color 0.5s;
  overflow: hidden;
  height: 100%;
  display: flex; flex-direction: column;
}

.ed-panel--pgx       { --ed-accent: #1d4ed8; --ed-accent-2: #22d3ee; --ed-accent-soft: rgba(29,78,216,0.07);  --ed-accent-line: rgba(29,78,216,0.25);  --ed-accent-glow: rgba(29,78,216,0.22);  }
.ed-panel--cancer    { --ed-accent: #db2777; --ed-accent-2: #f472b6; --ed-accent-soft: rgba(219,39,119,0.07);  --ed-accent-line: rgba(219,39,119,0.28);  --ed-accent-glow: rgba(219,39,119,0.22); }
.ed-panel--cardio    { --ed-accent: #dc2626; --ed-accent-2: #f97316; --ed-accent-soft: rgba(220,38,38,0.07);   --ed-accent-line: rgba(220,38,38,0.28);   --ed-accent-glow: rgba(220,38,38,0.22);  }
.ed-panel--neuro     { --ed-accent: #7c3aed; --ed-accent-2: #a78bfa; --ed-accent-soft: rgba(124,58,237,0.07);  --ed-accent-line: rgba(124,58,237,0.28);  --ed-accent-glow: rgba(124,58,237,0.22); }
.ed-panel--metabolic { --ed-accent: #d97706; --ed-accent-2: #f59e0b; --ed-accent-soft: rgba(217,119,6,0.08);   --ed-accent-line: rgba(217,119,6,0.30);   --ed-accent-glow: rgba(217,119,6,0.22);  }
.ed-panel--carrier   { --ed-accent: #0891b2; --ed-accent-2: #06b6d4; --ed-accent-soft: rgba(8,145,178,0.07);   --ed-accent-line: rgba(8,145,178,0.28);   --ed-accent-glow: rgba(8,145,178,0.22);  }
.ed-panel--onco      { --ed-accent: #5b21b6; --ed-accent-2: #8b5cf6; --ed-accent-soft: rgba(91,33,182,0.07);   --ed-accent-line: rgba(91,33,182,0.28);   --ed-accent-glow: rgba(91,33,182,0.22);  }

.ed-panel::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 4px;
  background: linear-gradient(90deg, var(--ed-accent), var(--ed-accent-2));
  border-radius: 22px 22px 0 0;
}
.ed-panel::after {
  content: ""; position: absolute; top: -40px; right: -40px;
  width: 220px; height: 220px;
  background: radial-gradient(circle at center, var(--ed-accent-glow), transparent 70%);
  opacity: 0; transition: opacity 0.5s ease;
  pointer-events: none;
}
.ed-panel:hover {
  transform: translateY(-8px);
  border-color: var(--ed-accent-line);
  box-shadow: 0 32px 60px -22px rgba(12,30,60,0.25), 0 0 30px -10px var(--ed-accent-glow);
}
.ed-panel:hover::after { opacity: 1; }

.ed-panel__head {
  display: flex; align-items: center; justify-content: space-between;
  gap: 0.85rem;
  margin-bottom: 1.15rem;
}
.ed-panel__icon {
  width: 56px; height: 56px;
  display: grid; place-items: center;
  border-radius: 14px;
  background: linear-gradient(135deg, var(--ed-accent), var(--ed-accent-2));
  box-shadow: 0 14px 28px -10px var(--ed-accent-glow);
  flex-shrink: 0;
}
.ed-panel__icon svg { width: 28px; height: 28px; color: #fff; }
.ed-panel__num {
  font-family: var(--ed-mono);
  font-size: 1.85rem; font-weight: 800;
  color: var(--ed-accent);
  line-height: 1; letter-spacing: -0.03em;
  opacity: 0.9;
}
.ed-panel__num em { font-style: normal; color: var(--ed-mute); font-size: 0.85rem; font-weight: 700; opacity: 0.6; }

.ed-panel__label {
  display: inline-block;
  font-family: var(--ed-mono);
  font-size: 0.8rem; font-weight: 700;
  letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--ed-accent);
  background: var(--ed-accent-soft);
  border: 1px solid var(--ed-accent-line);
  padding: 0.35rem 0.8rem;
  border-radius: 999px;
  align-self: flex-start;
  margin-bottom: 0.95rem;
}
.ed-panel h3 {
  font-family: var(--ed-sans);
  font-size: 1.25rem; font-weight: 700;
  letter-spacing: -0.018em; line-height: 1.25;
  color: var(--ed-ink); margin: 0 0 0.6rem;
}
.ed-panel__desc {
  color: var(--ed-mute);
  font-size: 1rem; line-height: 1.65;
  margin: 0 0 1.2rem;
}
.ed-panel__genes-label {
  font-family: var(--ed-mono);
  font-size: 0.75rem; font-weight: 700;
  letter-spacing: 0.2em; text-transform: uppercase;
  color: var(--ed-mute);
  margin-bottom: 0.55rem;
}
.ed-panel__genes {
  display: flex; flex-wrap: wrap; gap: 0.35rem;
  margin-bottom: 1.2rem;
}
.ed-panel__gene {
  font-family: var(--ed-mono);
  font-size: 0.8rem; font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--ed-accent);
  background: var(--ed-accent-soft);
  border: 1px solid var(--ed-accent-line);
  padding: 0.32rem 0.6rem;
  border-radius: 6px;
}
.ed-panel__footer {
  margin-top: auto;
  display: flex; align-items: center; gap: 0.7rem;
  padding-top: 1rem;
  border-top: 1px dashed var(--ed-line);
}
.ed-panel__entry-icon {
  width: 32px; height: 32px;
  display: grid; place-items: center;
  border-radius: 9px;
  background: var(--ed-accent-soft);
  border: 1px solid var(--ed-accent-line);
  flex-shrink: 0;
}
.ed-panel__entry-icon svg { width: 16px; height: 16px; color: var(--ed-accent); }
.ed-panel__entry-text { display: flex; flex-direction: column; gap: 0.1rem; line-height: 1.1; }
.ed-panel__entry-text strong {
  font-family: var(--ed-mono);
  font-size: 0.8rem; font-weight: 700;
  letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--ed-ink);
}
.ed-panel__entry-text span {
  font-family: var(--ed-mono);
  font-size: 0.75rem;
  letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--ed-mute);
}

/* Featured longitudinal monitoring banner */
.ed-monitoring {
  margin-top: 2.75rem;
  padding: 2.5rem 2.5rem;
  background:
    radial-gradient(ellipse at 92% 12%, rgba(34,211,238,0.20), transparent 55%),
    radial-gradient(ellipse at 8% 90%, rgba(139,92,246,0.18), transparent 55%),
    linear-gradient(135deg, #0a1628 0%, #0f1e3a 60%, #183B65 100%);
  color: #fff;
  border-radius: 24px;
  position: relative; overflow: hidden;
  display: grid; grid-template-columns: 1.5fr 1fr;
  gap: 2.5rem; align-items: center;
  box-shadow: 0 30px 60px -25px rgba(12,30,60,0.45);
}
.ed-monitoring::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px;
  background: linear-gradient(90deg, #22d3ee, #60a5fa, #a78bfa, #22d3ee);
  background-size: 200% 100%;
  animation: gtRibbon 6s linear infinite;
}
@keyframes gtRibbon { from { background-position: 0% 0; } to { background-position: 200% 0; } }
.ed-monitoring__chapter {
  display: inline-flex; align-items: center; gap: 0.6rem;
  font-family: var(--ed-mono);
  font-size: 0.8rem; font-weight: 700;
  letter-spacing: 0.2em; text-transform: uppercase;
  color: #22d3ee;
  padding: 0.45rem 0.95rem;
  background: rgba(34,211,238,0.08);
  border: 1px solid rgba(34,211,238,0.32);
  border-radius: 999px;
  margin-bottom: 1.2rem;
}
.ed-monitoring__chapter::before {
  content: ""; width: 7px; height: 7px; border-radius: 50%;
  background: #22d3ee; box-shadow: 0 0 10px #22d3ee;
  animation: gtPulse 2s ease-in-out infinite;
}
.ed-monitoring h3 {
  font-family: var(--ed-sans);
  font-size: clamp(1.4rem, 2.2vw, 1.8rem); font-weight: 700;
  line-height: 1.2; letter-spacing: -0.02em;
  color: #fff; margin: 0 0 0.85rem;
}
.ed-monitoring h3 em {
  font-style: normal;
  background: linear-gradient(135deg, #22d3ee, #a78bfa);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
}
.ed-monitoring p {
  color: rgba(255,255,255,0.85);
  font-size: 1rem; line-height: 1.7;
  margin: 0;
}
.ed-monitoring__stats {
  display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem;
}
.ed-monitoring__stat {
  padding: 1.1rem 1.1rem;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(34,211,238,0.2);
  border-radius: 12px;
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
}
.ed-monitoring__stat b {
  display: block;
  font-family: var(--ed-mono);
  font-size: 1.45rem; font-weight: 800;
  color: #22d3ee; line-height: 1; margin-bottom: 0.45rem;
  letter-spacing: -0.02em;
}
.ed-monitoring__stat span {
  font-family: var(--ed-mono);
  font-size: 0.8rem; font-weight: 700;
  letter-spacing: 0.14em; text-transform: uppercase;
  color: rgba(255,255,255,0.8);
}
@media (max-width: 768px) {
  .ed-monitoring { grid-template-columns: 1fr; padding: 2rem 1.75rem; gap: 1.75rem; }
}

/* ============== PRINCIPLES BAND (built-by credibility) ============== */
.ed-principles {
  position: relative;
  padding: 4rem 1.5rem;
  background: #fff;
  border-top: 1px solid var(--ed-gold-line);
  border-bottom: 1px solid var(--ed-gold-line);
}
.ed-principles::before {
  content: ""; position: absolute; top: -1px; left: 50%;
  transform: translateX(-50%);
  width: 14px; height: 14px;
  background: #fff;
  border: 1px solid #8c6e2b;
  transform-origin: center;
  transform: translateX(-50%) translateY(-50%) rotate(45deg);
}
.ed-principles__inner {
  max-width: 1100px; margin: 0 auto;
  text-align: center;
}
.ed-principles__eyebrow {
  display: inline-flex; align-items: center; gap: 0.85rem;
  font-family: var(--ed-mono);
  font-size: 0.8rem; font-weight: 700;
  letter-spacing: 0.28em; text-transform: uppercase;
  color: #8c6e2b;
  margin-bottom: 1.6rem;
}
.ed-principles__eyebrow::before, .ed-principles__eyebrow::after {
  content: ""; width: 24px; height: 1px; background: #8c6e2b; opacity: 0.5;
}
.ed-principles__statement {
  font-family: var(--ed-serif);
  font-size: clamp(1.3rem, 2.2vw, 1.7rem);
  font-style: italic;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: -0.005em;
  color: var(--ed-ink);
  margin: 0 auto 2.5rem;
  max-width: 820px;
}
.ed-principles__grid {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
  margin-top: 2rem;
  text-align: left;
}
@media (max-width: 900px) { .ed-principles__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 540px) { .ed-principles__grid { grid-template-columns: 1fr; } }
.ed-principles__item { padding: 0; }
.ed-principles__item-label {
  font-family: var(--ed-mono);
  font-size: 0.8rem; font-weight: 700;
  letter-spacing: 0.22em; text-transform: uppercase;
  color: #8c6e2b;
  margin-bottom: 0.7rem;
}
.ed-principles__item-text {
  font-family: var(--ed-serif);
  font-style: italic;
  font-size: 1.18rem;
  line-height: 1.55;
  color: var(--ed-ink);
}

/* ============== FAQ ============== */
.ed-faq {
  background:
    radial-gradient(ellipse at 50% 0%, rgba(201,169,97,0.06), transparent 50%),
    linear-gradient(180deg, #fff 0%, var(--ed-tint-soft) 100%);
  padding: 5rem 1.5rem;
}
.ed-faq__inner { max-width: 880px; margin: 0 auto; }
.ed-faq__header { text-align: center; margin-bottom: 3rem; }
.ed-faq__list { display: flex; flex-direction: column; gap: 0.85rem; }
.ed-faq__item {
  position: relative;
  background: #fff;
  border: 1px solid var(--ed-line);
  border-radius: 14px;
  transition: border-color 0.3s ease, box-shadow 0.3s ease;
  overflow: hidden;
}
.ed-faq__item[open] {
  border-color: var(--ed-gold-line);
  box-shadow: 0 14px 30px -18px rgba(140,110,43,0.25);
}
.ed-faq__summary {
  display: flex; align-items: center; justify-content: space-between;
  gap: 1rem;
  padding: 1.5rem 1.75rem;
  cursor: pointer;
  list-style: none;
  font-family: var(--ed-sans);
  font-size: 1.25rem; font-weight: 600;
  letter-spacing: -0.005em;
  color: var(--ed-ink);
  transition: color 0.3s ease;
}
.ed-faq__summary::-webkit-details-marker { display: none; }
.ed-faq__summary:hover { color: var(--ed-blue); }
.ed-faq__icon {
  flex-shrink: 0;
  width: 28px; height: 28px;
  display: grid; place-items: center;
  border-radius: 50%;
  border: 1px solid var(--ed-gold-line);
  color: #8c6e2b;
  transition: transform 0.4s ease, background 0.3s ease;
}
.ed-faq__icon svg { width: 12px; height: 12px; }
.ed-faq__item[open] .ed-faq__icon {
  transform: rotate(135deg);
  background: var(--ed-gold-soft);
}
.ed-faq__body {
  padding: 0 1.75rem 1.65rem;
  color: var(--ed-mute);
  font-size: 1rem;
  line-height: 1.75;
}
.ed-faq__body p { margin: 0 0 0.85rem; }
.ed-faq__body p:last-child { margin-bottom: 0; }
.ed-faq__body strong { color: var(--ed-ink); font-weight: 600; }

@media (max-width: 600px) {
  .ed-faq { padding: 3.5rem 1.25rem; }
  .ed-faq__summary { padding: 1.15rem 1.25rem; font-size: 1rem; }
  .ed-faq__body { padding: 0 1.25rem 1.25rem; }
}

/* ============== ACCESSIBILITY / FOCUS ============== */
.ed-page :focus-visible {
  outline: 2px solid var(--ed-gold-bright);
  outline-offset: 3px;
  border-radius: 4px;
}
.ed-skip-link {
  position: absolute;
  top: -100px; left: 50%;
  transform: translateX(-50%);
  padding: 0.85rem 1.5rem;
  background: var(--ed-ink);
  color: var(--ed-gold-bright);
  font-family: var(--ed-mono);
  font-size: 0.8rem; font-weight: 700;
  letter-spacing: 0.18em; text-transform: uppercase;
  text-decoration: none;
  border-radius: 0 0 8px 8px;
  z-index: 200;
  transition: top 0.3s ease;
  border: 1px solid var(--ed-gold-line);
  border-top: none;
}
.ed-skip-link:focus { top: 0; color: var(--ed-gold-bright); }

/* ============== ONCOLOGY CORE SERVICE ============== */
.ed-onco {
  position: relative;
  padding: 6rem 1.5rem;
  background:
    radial-gradient(ellipse at 15% 20%, rgba(139,92,246,0.18), transparent 55%),
    radial-gradient(ellipse at 85% 80%, rgba(91,33,182,0.22), transparent 55%),
    linear-gradient(135deg, #0a0118 0%, #1a0830 50%, #2d1265 100%);
  color: #fff;
  overflow: hidden;
}
.ed-onco::before {
  content: ""; position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(139,92,246,0.07) 1px, transparent 1px),
    linear-gradient(90deg, rgba(139,92,246,0.07) 1px, transparent 1px);
  background-size: 56px 56px;
  -webkit-mask-image: radial-gradient(ellipse at 50% 50%, black 30%, transparent 80%);
  mask-image: radial-gradient(ellipse at 50% 50%, black 30%, transparent 80%);
  pointer-events: none;
}
.ed-onco__inner {
  max-width: 1200px; margin: 0 auto;
  position: relative; z-index: 1;
  display: flex; flex-direction: column;
  gap: 3rem;
}
.ed-onco__header { max-width: 820px; margin: 0 auto; text-align: center; }
.ed-onco__header .ed-chapter { margin-left: auto; margin-right: auto; }
.ed-onco__header .ed-onco__badge { margin-left: auto; margin-right: auto; }
.ed-onco__cta-wrap { text-align: center; margin-top: 1rem; }

.ed-onco__badge {
  display: inline-flex; align-items: center; gap: 0.6rem;
  padding: 0.55rem 1.1rem;
  background: linear-gradient(135deg, rgba(139,92,246,0.18), rgba(34,211,238,0.12));
  border: 1px solid rgba(167,139,250,0.4);
  border-radius: 999px;
  font-family: var(--ed-mono);
  font-size: 0.85rem; font-weight: 700;
  letter-spacing: 0.2em; text-transform: uppercase;
  color: #c4b5fd;
  margin-bottom: 1.5rem;
}
.ed-onco__badge::before {
  content: ""; width: 7px; height: 7px; border-radius: 50%;
  background: #a78bfa; box-shadow: 0 0 12px #a78bfa;
  animation: gtPulse 1.8s ease-in-out infinite;
}
.ed-onco h2 {
  font-family: var(--ed-sans);
  font-size: clamp(2.1rem, 4.2vw, 3.2rem);
  font-weight: 700; line-height: 1.1;
  letter-spacing: -0.025em;
  color: #fff;
  margin: 0 0 1.2rem;
}
.ed-onco h2 em {
  font-style: normal;
  background: linear-gradient(135deg, #c4b5fd 0%, #22d3ee 60%, #a78bfa 100%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
}
.ed-onco__lede {
  font-size: 1.125rem; line-height: 1.7;
  color: rgba(255,255,255,0.78);
  margin: 0;
}
.ed-onco__lede strong { color: #fff; font-weight: 600; }
.ed-onco__cta {
  display: inline-flex; align-items: center; gap: 0.55rem;
  background: linear-gradient(135deg, #7c3aed, #22d3ee);
  color: #fff; padding: 1rem 2.1rem; border-radius: 12px;
  font-family: var(--ed-sans);
  font-weight: 700; font-size: 0.95rem;
  text-decoration: none;
  box-shadow: 0 18px 40px -10px rgba(124,58,237,0.55);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  min-height: 48px; position: relative; overflow: hidden;
}
.ed-onco__cta::before {
  content: ""; position: absolute; top: 0; left: -100%;
  width: 100%; height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.3), transparent);
  transition: left 0.6s ease;
}
.ed-onco__cta:hover { transform: translateY(-2px); box-shadow: 0 24px 50px -10px rgba(124,58,237,0.7), 0 0 30px rgba(34,211,238,0.35); color: #fff; }
.ed-onco__cta:hover::before { left: 100%; }
.ed-onco__cta svg { width: 16px; height: 16px; transition: transform 0.3s ease; }
.ed-onco__cta:hover svg { transform: translateX(4px); }

/* ----- Testing modalities (educational) ----- */
.ed-onco__modalities {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
}
@media (max-width: 992px) { .ed-onco__modalities { grid-template-columns: 1fr; } }
.ed-onco__modality {
  position: relative;
  padding: 1.85rem 1.6rem 1.4rem;
  background: linear-gradient(165deg, rgba(255,255,255,0.06) 0%, rgba(255,255,255,0.015) 100%);
  border: 1px solid rgba(167,139,250,0.28);
  border-radius: 16px;
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
  transition: transform 0.4s ease, border-color 0.4s ease, box-shadow 0.4s ease;
  display: flex; flex-direction: column;
}
.ed-onco__modality::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px;
  background: linear-gradient(90deg, #a78bfa, #22d3ee, #c9a961);
  border-radius: 16px 16px 0 0;
}
.ed-onco__modality:hover {
  transform: translateY(-4px);
  border-color: rgba(34,211,238,0.5);
  box-shadow: 0 24px 50px -22px rgba(139,92,246,0.4);
}
.ed-onco__modality-icon {
  width: 46px; height: 46px;
  display: grid; place-items: center;
  border-radius: 12px;
  background: linear-gradient(135deg, #7c3aed, #22d3ee);
  margin-bottom: 1.1rem;
  box-shadow: 0 14px 28px -10px rgba(139,92,246,0.55);
}
.ed-onco__modality-icon svg { width: 22px; height: 22px; color: #fff; }
.ed-onco__modality-tag {
  display: inline-block;
  font-family: var(--ed-mono);
  font-size: 0.75rem; font-weight: 700;
  letter-spacing: 0.18em; text-transform: uppercase;
  color: #c4b5fd;
  background: rgba(167,139,250,0.1);
  border: 1px solid rgba(167,139,250,0.3);
  padding: 0.32rem 0.7rem;
  border-radius: 999px;
  align-self: flex-start;
  margin-bottom: 0.8rem;
}
.ed-onco__modality h4 {
  font-family: var(--ed-sans);
  font-size: 1.25rem; font-weight: 700;
  color: #fff;
  margin: 0 0 0.6rem;
  line-height: 1.25;
  letter-spacing: -0.012em;
}
.ed-onco__modality-desc {
  color: rgba(255,255,255,0.82);
  font-size: 1rem;
  line-height: 1.65;
  margin: 0 0 1rem;
}
.ed-onco__modality-use {
  margin-top: auto;
  padding-top: 0.95rem;
  border-top: 1px dashed rgba(34,211,238,0.25);
  font-family: var(--ed-mono);
  font-size: 0.8rem; font-weight: 700;
  letter-spacing: 0.16em; text-transform: uppercase;
  color: rgba(255,255,255,0.7);
}
.ed-onco__modality-use b { color: #22d3ee; font-weight: 700; }

/* ----- Caveat ribbon ----- */
.ed-onco__caveat {
  padding: 1.5rem 1.75rem;
  max-width: 920px;
  margin: 0 auto;
  background: linear-gradient(135deg, rgba(201,169,97,0.08), rgba(255,255,255,0.02));
  border: 1px solid rgba(201,169,97,0.3);
  border-left: 3px solid var(--ed-gold-bright);
  border-radius: 10px;
}
.ed-onco__caveat-label {
  display: inline-flex; align-items: center; gap: 0.5rem;
  font-family: var(--ed-mono);
  font-size: 0.8rem; font-weight: 700;
  letter-spacing: 0.2em; text-transform: uppercase;
  color: var(--ed-gold-bright);
  margin-bottom: 0.7rem;
}
.ed-onco__caveat-label::before {
  content: ""; width: 6px; height: 6px;
  background: var(--ed-gold-bright);
  box-shadow: 0 0 8px var(--ed-gold-bright);
  border-radius: 50%;
}
.ed-onco__caveat p {
  color: rgba(255,255,255,0.88);
  font-size: 1rem;
  line-height: 1.7;
  margin: 0 0 0.7rem;
}
.ed-onco__caveat p:last-child { margin-bottom: 0; }
.ed-onco__caveat strong { color: #fff; font-weight: 600; }

.ed-onco__pillars {
  display: grid; grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
}
.ed-onco__pillar {
  position: relative;
  padding: 1.35rem 1.4rem;
  background: linear-gradient(160deg, rgba(255,255,255,0.04) 0%, rgba(255,255,255,0.015) 100%);
  border: 1px solid rgba(167,139,250,0.22);
  border-radius: 14px;
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
  transition: transform 0.4s ease, border-color 0.4s ease;
}
.ed-onco__pillar:hover { transform: translateY(-3px); border-color: rgba(34,211,238,0.45); }
.ed-onco__pillar-icon {
  width: 36px; height: 36px;
  display: grid; place-items: center;
  border-radius: 9px;
  background: linear-gradient(135deg, rgba(124,58,237,0.3), rgba(34,211,238,0.18));
  border: 1px solid rgba(167,139,250,0.35);
  margin-bottom: 0.85rem;
}
.ed-onco__pillar-icon svg { width: 18px; height: 18px; color: #c4b5fd; }
.ed-onco__pillar h4 {
  font-family: var(--ed-sans);
  font-size: 1.25rem; font-weight: 700;
  color: #fff;
  margin: 0 0 0.45rem;
  letter-spacing: -0.01em;
}
.ed-onco__pillar p {
  font-size: 1rem; line-height: 1.6;
  color: rgba(255,255,255,0.78);
  margin: 0;
}

@media (max-width: 768px) {
  .ed-onco { padding: 4rem 1.25rem; }
  .ed-onco__pillars { grid-template-columns: 1fr; }
}

/* ============== JOURNEY ============== */
.ed-journey { position: relative; }
.ed-journey-track {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 1rem;
  position: relative;
}
@media (max-width: 992px) { .ed-journey-track { grid-template-columns: 1fr; gap: 0.85rem; } }
.ed-journey-track::before {
  content: ""; position: absolute;
  top: 32px; left: 5%; right: 5%; height: 2px;
  background: linear-gradient(90deg, var(--ed-cyan-bright), var(--ed-violet-bright));
  opacity: 0.4;
  z-index: 0;
}
@media (max-width: 992px) { .ed-journey-track::before { display: none; } }
.ed-step {
  position: relative; z-index: 1;
  text-align: center;
  padding: 1.25rem 1rem;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 16px;
  backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
  transition: transform 0.3s ease, border-color 0.3s ease;
}
.ed-step:hover { transform: translateY(-4px); border-color: var(--ed-cyan-bright); }
.ed-step__num {
  display: inline-flex; align-items: center; justify-content: center;
  width: 56px; height: 56px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--ed-blue), var(--ed-violet));
  color: #fff;
  font-family: var(--ed-mono);
  font-size: 1.1rem; font-weight: 700;
  margin: 0 auto 0.85rem;
  box-shadow: 0 12px 25px -10px rgba(139,92,246,0.55);
}
.ed-step h4 {
  font-family: var(--ed-sans);
  font-size: 1.25rem; font-weight: 700;
  color: #fff;
  margin: 0 0 0.5rem;
  letter-spacing: -0.01em;
}
.ed-step p {
  color: rgba(255,255,255,0.78);
  font-size: 1rem; line-height: 1.55;
  margin: 0;
}

/* ============== TIERED INTERPRETATION ============== */
.ed-tiers { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
@media (max-width: 900px) { .ed-tiers { grid-template-columns: 1fr; } }
.ed-tier {
  padding: 2rem 1.75rem;
  background: #fff;
  border: 1px solid var(--ed-line);
  border-radius: 18px;
  box-shadow: 0 18px 40px -20px rgba(12,30,60,0.18);
  position: relative; overflow: hidden;
  transition: transform 0.4s ease, box-shadow 0.4s ease;
}
.ed-tier:hover { transform: translateY(-4px); box-shadow: 0 26px 50px -18px rgba(29,78,216,0.25); }
.ed-tier__layer {
  font-family: var(--ed-mono);
  font-size: 0.8rem; font-weight: 700;
  letter-spacing: 0.2em; text-transform: uppercase;
  color: var(--ed-violet);
  margin-bottom: 0.75rem;
}
.ed-tier h3 {
  font-family: var(--ed-sans);
  font-size: 1.4rem; font-weight: 700;
  letter-spacing: -0.015em;
  color: var(--ed-ink); margin: 0 0 0.75rem;
}
.ed-tier p {
  color: var(--ed-mute);
  font-size: 1rem; line-height: 1.65;
  margin: 0;
}

/* ============== MANIFESTO ============== */
.ed-manifesto {
  padding: 5rem 1.5rem;
  text-align: center;
  background:
    radial-gradient(ellipse at top right, rgba(139,92,246,0.18), transparent 55%),
    radial-gradient(ellipse at bottom left, rgba(34,211,238,0.14), transparent 55%),
    linear-gradient(135deg, var(--ed-space) 0%, var(--ed-navy) 100%);
  color: #fff;
  position: relative; overflow: hidden;
}
.ed-manifesto-inner { max-width: 920px; margin: 0 auto; position: relative; z-index: 1; }
.ed-manifesto p {
  font-family: var(--ed-sans);
  font-size: clamp(1.5rem, 3vw, 2.4rem);
  font-weight: 600; line-height: 1.3;
  letter-spacing: -0.015em;
  margin: 0;
}
.ed-manifesto p span {
  background: linear-gradient(135deg, var(--ed-cyan-bright), var(--ed-violet-bright));
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* ============== CTA ============== */
.ed-cta-section { padding: 5rem 1.5rem 6rem; background: var(--ed-tint-soft); }
.ed-cta {
  max-width: 1080px; margin: 0 auto;
  padding: 3.5rem 2.25rem;
  text-align: center;
  border-radius: 28px;
  background:
    radial-gradient(ellipse at top right, rgba(139,92,246,0.22), transparent 50%),
    radial-gradient(ellipse at bottom left, rgba(34,211,238,0.20), transparent 50%),
    linear-gradient(135deg, var(--ed-night) 0%, var(--ed-deep) 60%, var(--ed-blue) 100%);
  color: #fff;
  box-shadow: 0 40px 80px -20px rgba(29,78,216,0.45);
  position: relative; overflow: hidden;
}
.ed-cta::before {
  content: ""; position: absolute; inset: 0;
  background-image: radial-gradient(circle, rgba(255,255,255,0.05) 1px, transparent 1px);
  background-size: 28px 28px;
}
.ed-cta > * { position: relative; z-index: 1; }
.ed-cta__eyebrow {
  display: inline-flex; align-items: center; gap: 0.55rem;
  font-family: var(--ed-mono);
  font-size: 0.75rem; font-weight: 700;
  letter-spacing: 0.24em; text-transform: uppercase;
  color: var(--ed-cyan-bright);
  padding: 0.4rem 1rem;
  background: rgba(34,211,238,0.08);
  border: 1px solid rgba(34,211,238,0.3);
  border-radius: 999px;
  margin-bottom: 1rem;
}
.ed-cta__eyebrow::before {
  content: ""; width: 7px; height: 7px; border-radius: 50%;
  background: var(--ed-cyan-bright);
  box-shadow: 0 0 10px var(--ed-cyan-bright);
  animation: gtPulse 1.6s ease-in-out infinite;
}
.ed-cta h2 {
  font-family: var(--ed-sans);
  font-size: clamp(2rem, 3.5vw, 2.5rem);
  font-weight: 700; line-height: 1.15;
  letter-spacing: -0.025em;
  margin: 0 0 1rem;
  color: #fff;
}
.ed-cta h2 em {
  font-style: normal;
  background: linear-gradient(135deg, var(--ed-cyan-bright), var(--ed-violet-bright));
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
}
.ed-cta p {
  color: rgba(255,255,255,0.82);
  font-size: 1rem; line-height: 1.65;
  max-width: 680px; margin: 0 auto 2rem;
}
.ed-cta__btn {
  display: inline-flex; align-items: center; gap: 0.55rem;
  background: #fff; color: var(--ed-deep);
  padding: 1rem 2.25rem; border-radius: 12px;
  font-weight: 700; text-decoration: none;
  box-shadow: 0 14px 35px -8px rgba(0,0,0,0.3);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  min-height: 48px;
}
.ed-cta__btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 22px 45px -10px rgba(0,0,0,0.4), 0 0 30px rgba(34,211,238,0.35);
  color: var(--ed-deep);
}
.ed-cta__btn svg { width: 16px; height: 16px; transition: transform 0.3s ease; }
.ed-cta__btn:hover svg { transform: translateX(4px); }
.ed-cta__email {
  display: block; margin-top: 1.5rem;
  color: rgba(255,255,255,0.78);
  font-family: var(--ed-mono);
  font-size: 0.875rem;
}
.ed-cta__email a { color: var(--ed-cyan-bright); text-decoration: none; border-bottom: 1px dotted rgba(34,211,238,0.5); }
.ed-cta__email a:hover { color: #fff; border-bottom-color: #fff; }

/* ============== Governance & safety ribbon ============== */
.ed-safety {
  background: linear-gradient(180deg, var(--ed-tint-soft) 0%, #fff 100%);
  padding: 4rem 1.5rem;
  border-top: 1px solid var(--ed-line);
  border-bottom: 1px solid var(--ed-line);
}
.ed-safety-grid {
  max-width: 1200px; margin: 0 auto;
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
}
@media (max-width: 992px) { .ed-safety-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .ed-safety-grid { grid-template-columns: 1fr; } }
.ed-safety-item {
  padding: 1.25rem 1.4rem;
  background: #fff;
  border: 1px solid var(--ed-line);
  border-radius: 14px;
  display: flex; align-items: center; gap: 0.85rem;
}
.ed-safety-item svg { width: 28px; height: 28px; color: var(--ed-blue); flex-shrink: 0; }
.ed-safety-item span {
  font-family: var(--ed-mono);
  font-size: 0.875rem; font-weight: 700;
  letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--ed-ink);
}

/* ============== RESPONSIVE ============== */
@media (max-width: 768px) {
  .ed-hero { padding: 4rem 1.25rem 3rem; min-height: 0; }
  .ed-section { padding: 4rem 1.25rem; }
  .ed-manifesto { padding: 3.5rem 1.25rem; }
  .ed-cta-section { padding: 3.5rem 1.25rem 4.5rem; }
  .ed-cta { padding: 2.5rem 1.5rem; }
  .ed-btn { width: 100%; justify-content: center; }
  .ed-hero__cta-row { width: 100%; }
  .ed-platform h3 { font-size: 1.5rem; }
}

@media (prefers-reduced-motion: reduce) {
  .ed-page *, .ed-page *::before, .ed-page *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
}

/* ============== INTERMISSION (engagement / conversion moment) ============== */
.ed-intermission {
  background:
    radial-gradient(ellipse at 50% 50%, rgba(201,169,97,0.10), transparent 65%),
    radial-gradient(ellipse at 80% 20%, rgba(34,211,238,0.07), transparent 55%),
    var(--ed-space);
  padding: 7rem 1.5rem;
  text-align: center;
  position: relative;
  overflow: hidden;
  border-top: 1px solid rgba(201,169,97,0.22);
  border-bottom: 1px solid rgba(201,169,97,0.22);
}
.ed-intermission::before, .ed-intermission::after {
  content: ""; position: absolute;
  left: 50%; transform: translateX(-50%) rotate(45deg);
  width: 14px; height: 14px;
  background: var(--ed-space);
  border: 1px solid var(--ed-gold);
  z-index: 2;
}
.ed-intermission::before { top: -8px; }
.ed-intermission::after { bottom: -8px; }
.ed-intermission__inner {
  max-width: 860px;
  margin: 0 auto;
  position: relative; z-index: 1;
}
.ed-intermission__rule {
  width: 64px; height: 1px;
  background: linear-gradient(90deg, transparent, var(--ed-gold), transparent);
  margin: 0 auto 1.6rem;
  opacity: 0.85;
}
.ed-intermission__label {
  display: inline-flex; align-items: center; gap: 0.85rem;
  font-family: var(--ed-mono);
  font-size: 0.75rem; font-weight: 700;
  letter-spacing: 0.4em; text-transform: uppercase;
  color: var(--ed-gold-bright);
  margin-bottom: 2rem;
}
.ed-intermission__heading {
  font-family: var(--ed-sans);
  font-size: clamp(2.6rem, 6.2vw, 4.8rem);
  font-weight: 500;
  line-height: 1.02;
  letter-spacing: -0.04em;
  color: #fff;
  margin: 0 0 1.4rem;
  text-wrap: balance;
}
.ed-intermission__heading em {
  font-family: var(--ed-serif);
  font-style: italic;
  font-weight: 500;
  background: linear-gradient(135deg, var(--ed-cyan-bright), var(--ed-electric), var(--ed-gold-bright));
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
  padding: 0 0.05em;
}
.ed-intermission__copy {
  font-size: 1.18rem;
  line-height: 1.7;
  color: rgba(255,255,255,0.8);
  max-width: 700px;
  margin: 0 auto 2.5rem;
  text-wrap: pretty;
}
.ed-intermission__cta-row {
  display: inline-flex; gap: 0.9rem; flex-wrap: wrap;
  justify-content: center;
}
.ed-intermission__cta {
  display: inline-flex; align-items: center; gap: 0.55rem;
  padding: 1rem 2.1rem;
  background: linear-gradient(135deg, var(--ed-blue), var(--ed-cyan-bright));
  color: #fff;
  font-weight: 700; font-size: 0.95rem;
  font-family: var(--ed-sans);
  text-decoration: none;
  border-radius: 12px;
  box-shadow: 0 18px 40px -10px rgba(29,78,216,0.55);
  transition: transform 0.3s, box-shadow 0.3s;
  min-height: 48px;
  position: relative; overflow: hidden;
}
.ed-intermission__cta::before {
  content: ""; position: absolute; top: 0; left: -100%;
  width: 100%; height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.3), transparent);
  transition: left 0.6s ease;
}
.ed-intermission__cta:hover {
  transform: translateY(-2px);
  box-shadow: 0 24px 50px -10px rgba(29,78,216,0.7), 0 0 30px rgba(34,211,238,0.35);
  color: #fff;
}
.ed-intermission__cta:hover::before { left: 100%; }
.ed-intermission__cta svg { width: 16px; height: 16px; transition: transform 0.3s; }
.ed-intermission__cta:hover svg { transform: translateX(4px); }
.ed-intermission__cta--ghost {
  background: rgba(255,255,255,0.04);
  color: #fff;
  border: 1.5px solid rgba(201,169,97,0.4);
  box-shadow: none;
}
.ed-intermission__cta--ghost:hover {
  background: rgba(255,255,255,0.08);
  border-color: var(--ed-gold-bright);
  box-shadow: 0 14px 30px -10px rgba(201,169,97,0.25);
}

@media (max-width: 768px) {
  .ed-intermission { padding: 4.5rem 1.25rem; }
  .ed-intermission__cta-row { flex-direction: column; width: 100%; }
  .ed-intermission__cta { width: 100%; justify-content: center; }
}

/* ============== PULL QUOTE (cinematic editorial moment) ============== */
.ed-pullquote {
  padding: 7rem 1.5rem;
  background:
    radial-gradient(ellipse at 50% 50%, rgba(201,169,97,0.12), transparent 65%),
    radial-gradient(ellipse at 80% 20%, rgba(34,211,238,0.08), transparent 55%),
    linear-gradient(180deg, var(--ed-space) 0%, var(--ed-night) 100%);
  color: #fff;
  text-align: center;
  position: relative;
  overflow: hidden;
  border-top: 1px solid rgba(201,169,97,0.18);
  border-bottom: 1px solid rgba(201,169,97,0.18);
}
.ed-pullquote::before, .ed-pullquote::after {
  content: ""; position: absolute;
  left: 50%; transform: translateX(-50%) rotate(45deg);
  width: 14px; height: 14px;
  background: var(--ed-space);
  border: 1px solid var(--ed-gold);
  z-index: 2;
}
.ed-pullquote::before { top: -8px; }
.ed-pullquote::after  { bottom: -8px; }
.ed-pullquote__inner {
  max-width: 940px; margin: 0 auto;
  position: relative; z-index: 1;
}
.ed-pullquote__mark {
  display: block;
  font-family: var(--ed-serif);
  font-style: italic;
  font-size: 6rem; line-height: 0.5;
  color: var(--ed-gold);
  opacity: 0.6;
  margin: 0 auto 1rem;
}
.ed-pullquote__label {
  display: inline-flex; align-items: center; gap: 0.85rem;
  font-family: var(--ed-mono);
  font-size: 0.75rem; font-weight: 700;
  letter-spacing: 0.4em; text-transform: uppercase;
  color: var(--ed-gold-bright);
  margin-bottom: 2.5rem;
}
.ed-pullquote__label::before, .ed-pullquote__label::after {
  content: ""; width: 36px; height: 1px;
  background: linear-gradient(90deg, transparent, var(--ed-gold-bright), transparent);
  opacity: 0.7;
}
.ed-pullquote__statement {
  font-family: var(--ed-serif);
  font-size: clamp(1.7rem, 3.5vw, 2.8rem);
  font-style: italic;
  font-weight: 400;
  line-height: 1.32;
  letter-spacing: -0.005em;
  color: #fff;
  margin: 0;
  text-wrap: balance;
}
.ed-pullquote__statement em {
  font-style: italic;
  background: linear-gradient(135deg, var(--ed-cyan-bright), var(--ed-electric), var(--ed-gold-bright));
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
}
.ed-pullquote__attribution {
  display: inline-flex; flex-direction: column; align-items: center; gap: 0.85rem;
  margin-top: 2.75rem;
  font-family: var(--ed-mono);
  font-size: 0.75rem; font-weight: 700;
  letter-spacing: 0.32em; text-transform: uppercase;
  color: rgba(255,255,255,0.55);
}
.ed-pullquote__attribution::before {
  content: ""; display: block;
  width: 44px; height: 1px;
  background: var(--ed-gold);
  opacity: 0.6;
}
@media (max-width: 768px) {
  .ed-pullquote { padding: 4.5rem 1.25rem; }
  .ed-pullquote__mark { font-size: 4rem; }
}

/* ============== MOBILE PERFORMANCE PASS ============== */
/* Below 992px (tablet + phone): kill GPU-heavy effects that don't add value */
@media (max-width: 992px) {
  /* Hide decoration that adds GPU cost without visual payoff at small sizes */
  .ed-grain,
  .ed-cursor,
  .ed-hero__grid3d,
  .ed-hero__particles { display: none !important; }

  /* Freeze any remaining animations on glass / cards */
  .ed-hero__hud-dot,
  .ed-hero3d-aurora,
  .ed-monitoring::before,
  .ed-cta__eyebrow::before,
  .ed-onco__badge::before,
  .ed-hero__stats::before,
  .ed-hero__stats::after { animation: none !important; }

  /* backdrop-filter is one of the most expensive CSS effects on mobile GPUs */
  .ed-hero__chip,
  .ed-hero__hud,
  .ed-stat-card,
  .ed-plaque,
  .ed-platform,
  .ed-monitoring__stat,
  .ed-step,
  .ed-onco__pillar,
  .ed-faq__item,
  .ed-platform__cta { backdrop-filter: none !important; -webkit-backdrop-filter: none !important; }

  /* Drop big filter blurs which force offscreen rasterisation */
  .ed-hero { background: linear-gradient(135deg, var(--ed-space) 0%, var(--ed-night) 55%, var(--ed-navy) 100%); }
  .ed-onco { background: linear-gradient(135deg, #0a0118 0%, #1a0830 55%, #2d1265 100%); }

  /* Disable hover-only chrome that fires animations on mobile tap */
  .ed-platform::before,
  .ed-panel::after,
  .ed-platform .ed-platform__features,
  .ed-platform__cta:hover { animation: none !important; transition: none !important; }
}

/* Touch / no-hover devices: remove pointer-driven effects entirely */
@media (hover: none), (pointer: coarse) {
  .ed-cursor { display: none !important; }
  /* Tilt/spotlight micro-interactions handled in JS are also gated by these queries */
}

/* =====================================================================
   EDUCATION ADDITIONS (hub, disease pages, handbook)
   ===================================================================== */

.ed-anchor { scroll-margin-top: 178px; }
@media (max-width: 992px) { .ed-anchor { scroll-margin-top: 130px; } }

/* ---- Topic / disease card grids (reuse panel look) ---- */
.ed-topic-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.ed-grid--4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; }
.ed-grid--2 { display: grid; grid-template-columns: 1fr 1fr; gap: 1.75rem; }
@media (max-width: 992px) {
  .ed-topic-grid { grid-template-columns: repeat(2, 1fr); }
  .ed-grid--4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .ed-topic-grid, .ed-grid--4, .ed-grid--2 { grid-template-columns: 1fr; }
}

.ed-topic-card {
  position: relative;
  display: flex; flex-direction: column;
  background: linear-gradient(170deg, #fff 0%, #fbfcff 100%);
  border: 1px solid var(--ed-line);
  border-radius: 22px;
  padding: 1.85rem 1.75rem 1.6rem;
  box-shadow: 0 18px 40px -22px rgba(12,30,60,0.18);
  transition: transform .5s cubic-bezier(.23,1,.32,1), box-shadow .5s, border-color .5s;
  overflow: hidden;
  height: 100%;
}
.ed-topic-card::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 4px;
  background: linear-gradient(90deg, var(--ed-accent, #1d4ed8), var(--ed-accent-2, #22d3ee));
  border-radius: 22px 22px 0 0;
}
.ed-topic-card:hover {
  transform: translateY(-8px);
  border-color: var(--ed-accent-line, rgba(29,78,216,.25));
  box-shadow: 0 32px 60px -22px rgba(12,30,60,.25), 0 0 30px -10px var(--ed-accent-glow, rgba(29,78,216,.22));
}
.ed-topic-card__label {
  display: inline-block; align-self: flex-start;
  font-family: var(--ed-mono);
  font-size: .8rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase;
  color: var(--ed-accent, #1d4ed8);
  background: var(--ed-accent-soft, rgba(29,78,216,.07));
  border: 1px solid var(--ed-accent-line, rgba(29,78,216,.25));
  padding: .35rem .8rem; border-radius: 999px; margin-bottom: .95rem;
}
.ed-topic-card h3 { font-size: 1.35rem; font-weight: 700; letter-spacing: -.018em; line-height: 1.25; color: var(--ed-ink); margin: 0 0 .7rem; }
.ed-topic-card p { color: var(--ed-mute); font-size: .98rem; line-height: 1.6; margin: 0 0 1.1rem; }
.ed-topic-card__go {
  margin-top: auto;
  display: inline-flex; align-items: center; gap: .5rem;
  font-weight: 700; font-size: .95rem; color: var(--ed-accent, #1d4ed8);
}
.ed-topic-card__go svg { width: 16px; height: 16px; transition: transform .3s ease; }
.ed-topic-card:hover .ed-topic-card__go svg { transform: translateX(4px); }
a.ed-topic-card { text-decoration: none; color: inherit; }

.ed-topic-card--radiology   { --ed-accent:#1d4ed8; --ed-accent-2:#22d3ee; --ed-accent-soft:rgba(29,78,216,.07);  --ed-accent-line:rgba(29,78,216,.25);  --ed-accent-glow:rgba(29,78,216,.22); }
.ed-topic-card--pathology   { --ed-accent:#0891b2; --ed-accent-2:#06b6d4; --ed-accent-soft:rgba(8,145,178,.07);  --ed-accent-line:rgba(8,145,178,.28);  --ed-accent-glow:rgba(8,145,178,.22); }
.ed-topic-card--hospitals   { --ed-accent:#7c3aed; --ed-accent-2:#a78bfa; --ed-accent-soft:rgba(124,58,237,.07); --ed-accent-line:rgba(124,58,237,.28); --ed-accent-glow:rgba(124,58,237,.22); }
.ed-topic-card--gp         { --ed-accent:#059669; --ed-accent-2:#34d399; --ed-accent-soft:rgba(5,150,105,.07);  --ed-accent-line:rgba(5,150,105,.28);  --ed-accent-glow:rgba(5,150,105,.22); }
.ed-topic-card--psych      { --ed-accent:#d97706; --ed-accent-2:#f59e0b; --ed-accent-soft:rgba(217,119,6,.08);  --ed-accent-line:rgba(217,119,6,.3);   --ed-accent-glow:rgba(217,119,6,.22); }
.ed-topic-card--genetics   { --ed-accent:#db2777; --ed-accent-2:#f472b6; --ed-accent-soft:rgba(219,39,119,.07); --ed-accent-line:rgba(219,39,119,.28); --ed-accent-glow:rgba(219,39,119,.22); }
.ed-topic-card--disease    { --ed-accent:#dc2626; --ed-accent-2:#f97316; --ed-accent-soft:rgba(220,38,38,.07);   --ed-accent-line:rgba(220,38,38,.28);   --ed-accent-glow:rgba(220,38,38,.22); }

/* ---- Glossary with search ---- */
.ed-glossary-search {
  position: relative; max-width: 640px; margin: 0 auto 2rem;
}
.ed-glossary-search svg {
  position: absolute; left: 18px; top: 50%; transform: translateY(-50%);
  width: 20px; height: 20px; color: var(--ed-mute); pointer-events: none;
}
.ed-glossary-search input {
  width: 100%;
  padding: 1rem 3.2rem 1rem 3.2rem;
  font-size: 1.05rem;
  font-family: var(--ed-sans);
  color: var(--ed-ink);
  background: #fff;
  border: 1px solid var(--ed-line);
  border-radius: 16px;
  box-shadow: 0 12px 30px -16px rgba(12,30,60,.25);
  outline: none;
  transition: border-color .3s, box-shadow .3s;
}
.ed-glossary-search input:focus {
  border-color: var(--ed-blue);
  box-shadow: 0 12px 30px -16px rgba(29,78,216,.45), 0 0 0 4px rgba(29,78,216,.1);
}
.ed-glossary-search input::placeholder { color: var(--ed-mute); }
.ed-glossary-count {
  text-align: center;
  font-family: var(--ed-mono);
  font-size: .8rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase;
  color: var(--ed-mute);
  margin-bottom: 1.75rem;
}
.ed-gloss-list { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
@media (max-width: 768px) { .ed-gloss-list { grid-template-columns: 1fr; } }
.ed-gloss-item {
  background: #fff;
  border: 1px solid var(--ed-line);
  border-left: 4px solid var(--ed-cyan-bright);
  border-radius: 12px;
  padding: 1.1rem 1.3rem;
  box-shadow: 0 10px 24px -18px rgba(12,30,60,.25);
}
.ed-gloss-term { font-weight: 800; color: var(--ed-navy); font-size: 1.02rem; letter-spacing: -.01em; }
.ed-gloss-def { color: var(--ed-mute); font-size: .93rem; line-height: 1.55; margin: .35rem 0 0; }
.ed-gloss-def a { color: var(--ed-blue); font-weight: 600; text-decoration: none; }
.ed-gloss-def a:hover { text-decoration: underline; }
.ed-gloss-none {
  display: none;
  text-align: center; color: var(--ed-mute);
  font-size: 1rem; padding: 2rem 0;
}
.ed-gloss-tags { display: flex; flex-wrap: wrap; gap: .5rem; justify-content: center; margin-bottom: 2rem; }
.ed-gloss-tag {
  border: 1px solid var(--ed-line); background: #fff; color: var(--ed-ink);
  border-radius: 999px; padding: .45rem 1rem; font-size: .85rem; font-weight: 600;
  cursor: pointer; transition: all .25s ease; font-family: var(--ed-sans);
}
.ed-gloss-tag:hover, .ed-gloss-tag[aria-pressed="true"] { background: var(--ed-blue); border-color: var(--ed-blue); color: #fff; }

/* ---- Support / citation / source styles ---- */
.ed-support {
  display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem;
  max-width: 1080px; margin: 0 auto;
}
@media (max-width: 768px) { .ed-support { grid-template-columns: 1fr; } }
.ed-support-card {
  position: relative;
  background: linear-gradient(170deg, #fff, #fbfcff);
  border: 1px solid var(--ed-gold-line);
  border-radius: 20px;
  padding: 1.75rem 1.75rem 1.5rem;
  box-shadow: 0 18px 40px -24px rgba(12,30,60,.3);
}
.ed-support-card::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 4px;
  background: linear-gradient(90deg, var(--ed-gold), var(--ed-gold-bright));
  border-radius: 20px 20px 0 0;
}
.ed-support-card h4 { font-size: 1.2rem; font-weight: 700; color: var(--ed-ink); margin: 0 0 .6rem; letter-spacing: -.015em; }
.ed-support-card p { color: var(--ed-mute); font-size: .95rem; line-height: 1.6; margin: 0 0 1.1rem; }
.ed-support-card__btn {
  display: inline-flex; align-items: center; gap: .5rem;
  background: linear-gradient(135deg, var(--ed-blue), var(--ed-bright));
  color: #fff; text-decoration: none; font-weight: 700; font-size: .92rem;
  padding: .7rem 1.3rem; border-radius: 10px;
  box-shadow: 0 10px 22px -8px rgba(29,78,216,.5);
  transition: transform .25s ease, box-shadow .25s ease;
}
.ed-support-card__btn:hover { transform: translateY(-2px); box-shadow: 0 16px 30px -8px rgba(29,78,216,.6); color: #fff; }
.ed-support-card__btn svg { width: 15px; height: 15px; }

.ed-cites { list-style: none; padding: 0; margin: 0; display: grid; gap: .65rem; }
.ed-cite {
  background: #fff; border: 1px solid var(--ed-line); border-radius: 10px;
  padding: .85rem 1.1rem; font-size: .88rem; line-height: 1.5; color: var(--ed-mute);
  display: flex; gap: .7rem; align-items: flex-start;
}
.ed-cite__idx {
  flex-shrink: 0;
  font-family: var(--ed-mono); font-weight: 800; font-size: .75rem;
  color: var(--ed-blue); background: rgba(29,78,216,.08);
  border: 1px solid rgba(29,78,216,.2);
  min-width: 26px; height: 26px; border-radius: 6px;
  display: inline-flex; align-items: center; justify-content: center;
  margin-top: 1px;
}
.ed-cite a { color: var(--ed-blue); text-decoration: none; font-weight: 600; }
.ed-cite a:hover { text-decoration: underline; }

/* ---- Pathology handbook test cards ---- */
.ed-test-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
@media (max-width: 992px) { .ed-test-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .ed-test-grid { grid-template-columns: 1fr; } }
.ed-test-card {
  background: linear-gradient(170deg, #fff, #fbfcff);
  border: 1px solid var(--ed-line); border-radius: 18px;
  padding: 1.5rem 1.5rem 1.35rem;
  box-shadow: 0 14px 34px -22px rgba(12,30,60,.22);
  display: flex; flex-direction: column; gap: .7rem;
}
.ed-test-card h4 { font-size: 1.12rem; font-weight: 700; color: var(--ed-ink); margin: 0; letter-spacing: -.015em; }
.ed-test-card p { color: var(--ed-mute); font-size: .9rem; line-height: 1.55; margin: 0; }
.ed-range {
  font-family: var(--ed-mono);
  font-size: .82rem; line-height: 1.6;
  color: var(--ed-deep);
  background: var(--ed-tint-soft);
  border: 1px dashed var(--ed-gold-line);
  border-radius: 10px;
  padding: .7rem .9rem;
  margin-top: auto;
}
.ed-range strong { color: var(--ed-navy); }
.ed-note {
  font-size: .85rem; color: var(--ed-mute);
  max-width: 760px; margin: 1.6rem auto 0; text-align: center; line-height: 1.6;
}
.ed-note a { color: var(--ed-blue); font-weight: 600; }

/* ---- Disease page section list ---- */
.ed-facts { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; }
@media (max-width: 768px) { .ed-facts { grid-template-columns: 1fr; } }
.ed-fact {
  background: #fff; border: 1px solid var(--ed-line); border-radius: 14px;
  padding: 1.2rem 1.35rem; display: flex; gap: .9rem; align-items: flex-start;
  box-shadow: 0 12px 28px -20px rgba(12,30,60,.25);
}
.ed-fact__icon {
  width: 44px; height: 44px; border-radius: 12px; flex-shrink: 0;
  background: linear-gradient(135deg, var(--ed-blue), var(--ed-cyan-bright));
  display: grid; place-items: center;
}
.ed-fact__icon svg { width: 22px; height: 22px; color: #fff; }
.ed-fact h4 { font-size: 1.02rem; font-weight: 700; color: var(--ed-ink); margin: 0 0 .3rem; }
.ed-fact p { color: var(--ed-mute); font-size: .92rem; line-height: 1.55; margin: 0; }
.ed-fact p a, .ed-section a { color: var(--ed-blue); font-weight: 600; text-decoration: none; }
.ed-section a:hover { text-decoration: underline; }

.ed-exercise-list { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; }
@media (max-width: 640px) { .ed-exercise-list { grid-template-columns: 1fr; } }
.ed-exercise {
  background: #fff; border: 1px solid var(--ed-line); border-radius: 12px;
  padding: 1rem 1.2rem; font-size: .93rem; line-height: 1.55; color: var(--ed-mute);
}
.ed-exercise strong { color: var(--ed-ink); display: block; margin-bottom: .2rem; }

/* ---- Pathway finder (CSS-only interactive) ---- */
.ed-pathway { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
@media (max-width: 768px) { .ed-pathway { grid-template-columns: 1fr; } }
.ed-pathway-card {
  position: relative; cursor: pointer;
  background: linear-gradient(170deg, #fff, #fbfcff);
  border: 1px solid var(--ed-line); border-radius: 18px;
  padding: 1.5rem 1.5rem 1.4rem;
  box-shadow: 0 14px 34px -22px rgba(12,30,60,.25);
  transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}
.ed-pathway-card:hover { transform: translateY(-6px); box-shadow: 0 26px 50px -22px rgba(12,30,60,.3); }
.ed-pathway-radio { position: absolute; opacity: 0; pointer-events: none; }
.ed-pathway-card__icon {
  width: 48px; height: 48px; border-radius: 13px;
  background: linear-gradient(135deg, var(--ed-blue), var(--ed-cyan-bright));
  display: grid; place-items: center; margin-bottom: 1rem;
}
.ed-pathway-card__icon svg { width: 24px; height: 24px; color: #fff; }
.ed-pathway-card h3 { font-size: 1.15rem; font-weight: 700; color: var(--ed-ink); margin: 0 0 .45rem; letter-spacing: -.015em; }
.ed-pathway-card p { color: var(--ed-mute); font-size: .92rem; line-height: 1.55; margin: 0; }
.ed-pathway:has(.ed-pathway-radio--symptom:checked) .ed-pathway-card--symptom,
.ed-pathway:has(.ed-pathway-radio--diagnosed:checked) .ed-pathway-card--diagnosed,
.ed-pathway:has(.ed-pathway-radio--carer:checked) .ed-pathway-card--carer,
.ed-pathway-card.is-active {
  border-color: var(--ed-blue);
  box-shadow: 0 22px 46px -20px rgba(29,78,216,.45), 0 0 0 4px rgba(29,78,216,.12);
}
.ed-pathway-panels { margin-top: 2.25rem; }
.ed-pathway-panel {
  display: none;
  background: #fff; border: 1px solid var(--ed-line); border-radius: 20px;
  padding: 1.75rem 1.9rem;
  box-shadow: 0 20px 44px -26px rgba(12,30,60,.3);
}
.ed-pathway:has(.ed-pathway-radio--symptom:checked) ~ .ed-pathway-panels .ed-pathway-panel--symptom,
.ed-pathway:has(.ed-pathway-radio--diagnosed:checked) ~ .ed-pathway-panels .ed-pathway-panel--diagnosed,
.ed-pathway:has(.ed-pathway-radio--carer:checked) ~ .ed-pathway-panels .ed-pathway-panel--carer,
.ed-pathway-panels[data-active="symptom"] .ed-pathway-panel--symptom,
.ed-pathway-panels[data-active="diagnosed"] .ed-pathway-panel--diagnosed,
.ed-pathway-panels[data-active="carer"] .ed-pathway-panel--carer { display: block; }
.ed-pathway-panel h4 { font-size: 1.1rem; font-weight: 700; color: var(--ed-ink); margin: 0 0 1rem; letter-spacing: -.01em; }
.ed-pathway-links { display: flex; flex-wrap: wrap; gap: .6rem; list-style: none; padding: 0; margin: 0; }
.ed-pathway-link {
  display: inline-flex; align-items: center; gap: .45rem;
  background: var(--ed-tint-soft); border: 1px solid rgba(29,78,216,.18);
  color: var(--ed-deep); font-weight: 600; font-size: .9rem;
  border-radius: 999px; padding: .55rem 1.05rem; text-decoration: none;
  transition: background .25s ease, color .25s ease, transform .25s ease;
}
.ed-pathway-link:hover { background: var(--ed-blue); color: #fff; transform: translateY(-2px); }
.ed-pathway-link svg { width: 14px; height: 14px; }

/* ============== LIBRARY SUB-NAV (sticky, under site header) ============== */
.ed-subnav {
  position: sticky;
  top: var(--ed-sticky-top, 92px);
  z-index: 900;
  background: linear-gradient(135deg, rgba(6,18,43,.97) 0%, rgba(15,30,58,.97) 60%, rgba(24,59,101,.97) 100%);
  border-bottom: 1px solid rgba(201,169,97,.22);
  box-shadow: 0 12px 30px -18px rgba(2,6,23,.8);
}
.ed-subnav__inner {
  max-width: 1200px; margin: 0 auto;
  display: flex; align-items: center; gap: 1.4rem;
  padding: .55rem 1.5rem;
}
.ed-subnav__brand {
  display: inline-flex; align-items: center; gap: .55rem;
  flex: none;
  font-family: var(--ed-mono);
  font-size: .72rem; font-weight: 800;
  letter-spacing: .28em; text-transform: uppercase;
  color: var(--ed-gold-bright);
  padding-right: 1.4rem;
  border-right: 1px solid rgba(201,169,97,.25);
}
.ed-subnav__brand svg { width: 16px; height: 16px; }
.ed-subnav__links {
  display: flex; align-items: center; gap: .25rem;
  list-style: none; margin: 0; padding: 0;
  flex: 1; min-width: 0;
}
.ed-subnav__links--mobile { overflow-x: auto; scrollbar-width: none; }
.ed-subnav__links::-webkit-scrollbar { display: none; }
.ed-subnav__links a {
  position: relative;
  display: inline-flex; align-items: center; gap: .4rem;
  flex: none;
  padding: .5rem .85rem;
  border-radius: 999px;
  color: rgba(255,255,255,.72);
  font-size: .86rem; font-weight: 600;
  letter-spacing: .01em;
  text-decoration: none;
  white-space: nowrap;
  transition: color .2s ease, background .2s ease;
}
.ed-subnav__links a:hover { color: #fff; background: rgba(34,211,238,.09); }
.ed-subnav__links a.is-active {
  color: #fff;
  background: rgba(34,211,238,.12);
  box-shadow: inset 0 0 0 1px rgba(34,211,238,.35);
}
.ed-subnav__links a.is-active::after {
  content: "";
  position: absolute; left: .85rem; right: .85rem; bottom: -0.55rem;
  height: 2px; border-radius: 2px;
  background: linear-gradient(90deg, transparent, var(--ed-cyan-bright), transparent);
}
.ed-subnav__search {
  flex: none;
  display: inline-flex; align-items: center; gap: .5rem;
  padding: .55rem 1rem;
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 999px;
  color: #fff; font-size: .86rem; font-weight: 600;
  text-decoration: none;
  transition: border-color .2s ease, background .2s ease, box-shadow .2s ease;
}
.ed-subnav__search:hover {
  border-color: var(--ed-cyan-bright);
  background: rgba(34,211,238,.1);
  box-shadow: 0 0 18px rgba(34,211,238,.25);
}
.ed-subnav__search svg { width: 15px; height: 15px; color: var(--ed-cyan-bright); }
@media (max-width: 992px) {
  .ed-subnav { top: var(--ed-sticky-top, 74px); }
  .ed-subnav__inner { gap: .9rem; padding: .5rem 1rem; }
  .ed-subnav__brand { display: none; }
  .ed-subnav__search { padding: .5rem; }
  .ed-subnav__search span { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .ed-subnav__links a, .ed-subnav__search { transition: none; }
}

/* ============== LIBRARY SEARCH (hero) ============== */
.ed-search {
  position: relative; z-index: 5;
  width: 100%; max-width: 820px;
  margin: 0 0 1.6rem;
}
.ed-search__label {
  display: block;
  font-family: var(--ed-mono);
  font-size: .72rem; font-weight: 800;
  letter-spacing: .26em; text-transform: uppercase;
  color: var(--ed-cyan-bright);
  margin-bottom: .6rem;
}
.ed-search__row {
  display: flex; align-items: center; gap: .8rem;
  padding: 1.05rem 1.25rem;
  background: rgba(255,255,255,.055);
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 16px;
  backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
  box-shadow: 0 24px 60px -24px rgba(2,6,23,.9), inset 0 0 0 1px rgba(34,211,238,.06);
  transition: border-color .25s ease, box-shadow .25s ease, background .25s ease;
}
.ed-search__row:focus-within {
  border-color: rgba(34,211,238,.55);
  background: rgba(255,255,255,.08);
  box-shadow: 0 24px 70px -22px rgba(2,6,23,.95), 0 0 0 4px rgba(34,211,238,.1), 0 0 34px rgba(34,211,238,.16);
}
.ed-search__row svg { width: 20px; height: 20px; flex: none; color: var(--ed-cyan-bright); }
.ed-search__row input {
  flex: 1; min-width: 0;
  background: none; border: none; outline: none;
  color: #fff;
  font-size: 1.02rem; font-weight: 500;
  font-family: var(--ed-sans);
}
.ed-search__row input::placeholder { color: rgba(255,255,255,.42); }
.ed-search__kbd {
  flex: none;
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 26px; height: 26px; padding: 0 .4rem;
  border: 1px solid rgba(255,255,255,.28);
  border-bottom-width: 2px;
  border-radius: 7px;
  color: rgba(255,255,255,.6);
  font-family: var(--ed-mono); font-size: .8rem; font-weight: 700;
}
.ed-search__results {
  position: absolute; top: calc(100% + .6rem); left: 0; right: 0;
  max-height: min(460px, 52vh);
  overflow-y: auto;
  background: #fff;
  border: 1px solid var(--ed-line);
  border-radius: 16px;
  box-shadow: 0 40px 90px -30px rgba(2,6,23,.85), 0 0 0 1px rgba(255,255,255,.06);
  padding: .5rem;
}
.ed-search__results[hidden] { display: none; }
.ed-search-group { padding: .65rem .8rem .3rem; }
.ed-search-group__label {
  font-family: var(--ed-mono);
  font-size: .66rem; font-weight: 800;
  letter-spacing: .22em; text-transform: uppercase;
  color: var(--ed-mute);
  margin: 0 0 .25rem;
}
.ed-search-item {
  display: flex; align-items: flex-start; gap: .7rem;
  padding: .7rem .8rem;
  border-radius: 12px;
  text-decoration: none;
  cursor: pointer;
  transition: background .15s ease;
}
.ed-search-item:hover, .ed-search-item.is-active { background: var(--ed-tint-soft); }
.ed-search-item__icon {
  flex: none;
  width: 30px; height: 30px; margin-top: .1rem;
  border-radius: 9px;
  display: grid; place-items: center;
  color: #fff;
}
.ed-search-item__icon svg { width: 15px; height: 15px; }
.ed-search-item__body { min-width: 0; }
.ed-search-item__title {
  display: block;
  font-size: .95rem; font-weight: 700;
  color: var(--ed-ink);
  letter-spacing: -.01em;
  margin: 0 0 .1rem;
}
.ed-search-item__title mark { background: none; color: var(--ed-blue); }
.ed-search-item__snip {
  display: block;
  font-size: .83rem; line-height: 1.5;
  color: var(--ed-mute);
  margin: 0;
}
.ed-search-item__snip mark { background: rgba(34,211,238,.22); color: inherit; padding: 0 .1em; border-radius: 3px; }
.ed-search-item__crumb {
  font-family: var(--ed-mono);
  font-size: .64rem; font-weight: 800;
  letter-spacing: .18em; text-transform: uppercase;
  color: var(--ed-mute);
  margin-left: auto; flex: none;
  padding-top: .15rem;
}
.ed-search-empty { padding: 1.2rem 1rem; text-align: center; color: var(--ed-mute); font-size: .9rem; }
.ed-search-empty a { color: var(--ed-blue); font-weight: 700; text-decoration: none; }
@media (max-width: 768px) {
  .ed-search__results { max-height: 56vh; }
  .ed-search-item__crumb { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .ed-search__row { transition: none; }
  .ed-search-item { transition: none; }
}

/* ============== FOCUS HERO (no image, search-first) ============== */
.ed-hero--focus { min-height: auto; padding: 5rem 1.5rem 4.5rem; }
.ed-hero--focus .ed-hero__inner { align-items: center; text-align: center; }
.ed-hero--focus .ed-chapter,
.ed-hero--focus .ed-hero__hud { margin-left: auto; margin-right: auto; }
.ed-hero--focus h1 { margin-left: auto; margin-right: auto; }
.ed-hero--focus .ed-hero__feature {
  grid-template-columns: 1fr;
  max-width: 860px; width: 100%;
  margin: 0 auto 1.4rem;
  gap: 1.7rem;
}
.ed-hero--focus .ed-search { margin: 0 auto; }
.ed-hero--focus .ed-hero__lede { margin-left: auto; margin-right: auto; max-width: 780px; }
.ed-hero--focus .ed-hero__meta { justify-content: center; }
.ed-hero--focus .ed-hero__cta-row { margin-left: auto; margin-right: auto; justify-content: center; }
.ed-hero--focus .ed-plaque { margin-left: auto !important; margin-right: auto !important; }

.ed-quick-searches { display: flex; flex-wrap: wrap; gap: .5rem; justify-content: center; }
.ed-quick-chip {
  border: 1px solid rgba(255,255,255,.22); background: rgba(255,255,255,.05);
  color: rgba(255,255,255,.85); border-radius: 999px; padding: .42rem .95rem;
  font-size: .82rem; font-weight: 600; cursor: pointer; font-family: var(--ed-sans);
  transition: border-color .25s ease, background .25s ease, color .25s ease, box-shadow .25s ease;
}
.ed-quick-chip:hover {
  border-color: var(--ed-cyan-bright); color: #fff;
  background: rgba(34,211,238,.12); box-shadow: 0 0 14px rgba(34,211,238,.25);
}
@media (prefers-reduced-motion: reduce) { .ed-quick-chip { transition: none; } }

/* ============== SUB-NAV GROUPED MEGA PANELS ============== */
.ed-subnav__links--mobile { display: none; }
.ed-subnav__group { position: relative; flex: none; }
.ed-subnav__trigger {
  display: inline-flex; align-items: center; gap: .4rem;
  padding: .5rem .85rem; border-radius: 999px;
  background: none; border: none; cursor: pointer;
  color: rgba(255,255,255,.72); font-size: .86rem; font-weight: 600; font-family: var(--ed-sans);
  transition: color .2s ease, background .2s ease;
}
.ed-subnav__trigger svg { width: 13px; height: 13px; transition: transform .2s ease; }
.ed-subnav__trigger:hover,
.ed-subnav__group.is-open .ed-subnav__trigger { color: #fff; background: rgba(34,211,238,.09); }
.ed-subnav__group.is-open .ed-subnav__trigger svg { transform: rotate(180deg); }
.ed-subnav__group.is-active .ed-subnav__trigger {
  color: #fff; background: rgba(34,211,238,.12);
  box-shadow: inset 0 0 0 1px rgba(34,211,238,.35);
}
.ed-subnav__panel {
  display: none;
  position: absolute; top: calc(100% + .55rem); left: 0;
  min-width: 300px;
  background: linear-gradient(135deg, rgba(6,18,43,.99), rgba(15,30,58,.99));
  border: 1px solid rgba(201,169,97,.28);
  border-radius: 14px;
  padding: .7rem;
  box-shadow: 0 30px 60px -20px rgba(2,6,23,.9);
  z-index: 60;
}
.ed-subnav__group:hover .ed-subnav__panel,
.ed-subnav__group:focus-within .ed-subnav__panel,
.ed-subnav__group.is-open .ed-subnav__panel { display: block; }
.ed-subnav__panel::before { content: ""; position: absolute; top: -.6rem; left: 0; right: 0; height: .6rem; }
.ed-subnav__panel-title {
  font-family: var(--ed-mono);
  font-size: .64rem; font-weight: 800;
  letter-spacing: .22em; text-transform: uppercase;
  color: var(--ed-gold-bright);
  padding: .5rem .8rem .4rem; margin: 0;
}
.ed-subnav__panel a {
  display: flex; flex-direction: column; gap: 1px;
  padding: .55rem .8rem; border-radius: 9px;
  text-decoration: none; white-space: normal;
}
.ed-subnav__panel a strong { color: #fff; font-size: .9rem; font-weight: 700; letter-spacing: -.01em; }
.ed-subnav__panel a span { color: rgba(255,255,255,.55); font-size: .78rem; line-height: 1.4; }
.ed-subnav__panel a:hover { background: rgba(34,211,238,.1); }
.ed-subnav__panel a:hover strong { color: var(--ed-cyan-bright); }
@media (max-width: 992px) {
  .ed-subnav__links--desktop { display: none; }
  .ed-subnav__links--mobile { display: flex; }
}
@media (prefers-reduced-motion: reduce) {
  .ed-subnav__trigger, .ed-subnav__trigger svg { transition: none; }
}

/* ============== GLOSSARY GROUP BADGES + FILTER LABEL ============== */
.ed-gloss-tags__label {
  text-align: center;
  font-family: var(--ed-mono);
  font-size: .68rem; font-weight: 700;
  letter-spacing: .22em; text-transform: uppercase;
  color: var(--ed-mute);
  margin: -1.1rem 0 1rem;
}
.ed-gloss-item { position: relative; }
.ed-gloss-item::before {
  content: attr(data-ed-group);
  position: absolute; top: .9rem; right: 1rem;
  font-family: var(--ed-mono);
  font-size: .62rem; font-weight: 800;
  letter-spacing: .16em; text-transform: uppercase;
  color: #8c6e2b; background: rgba(201,169,97,.14);
  border: 1px solid rgba(201,169,97,.3); border-radius: 999px;
  padding: .18rem .6rem;
}
.ed-gloss-item .ed-gloss-term { padding-right: 6.5rem; }

/* ============== JOURNEY-CLUSTERED TOPICS (hub) ============== */
.ed-topic-clusters { display: flex; flex-direction: column; gap: 2.9rem; }
.ed-topic-cluster__title {
  display: flex; align-items: center; gap: 1.2rem;
  margin: 0 0 1.35rem;
  font-family: var(--ed-mono);
  font-size: .72rem; font-weight: 800;
  letter-spacing: .26em; text-transform: uppercase;
  color: var(--ed-gold-bright);
}
.ed-topic-cluster__title span { flex: none; }
.ed-topic-cluster__title::after {
  content: "";
  flex: 1; height: 1px;
  background: linear-gradient(90deg, rgba(201,169,97,.4), rgba(201,169,97,.08) 60%, transparent);
}
.ed-topic-card--pharma    { --ed-accent:#0d9488; --ed-accent-2:#2dd4bf; --ed-accent-soft:rgba(13,148,136,.07);  --ed-accent-line:rgba(13,148,136,.28);  --ed-accent-glow:rgba(13,148,136,.22);  }
.ed-topic-card--vaccine   { --ed-accent:#4f46e5; --ed-accent-2:#818cf8; --ed-accent-soft:rgba(79,70,229,.07);   --ed-accent-line:rgba(79,70,229,.28);   --ed-accent-glow:rgba(79,70,229,.22);   }
.ed-topic-card--nutrition { --ed-accent:#65a30d; --ed-accent-2:#a3e635; --ed-accent-soft:rgba(101,163,13,.08);  --ed-accent-line:rgba(101,163,13,.3);   --ed-accent-glow:rgba(101,163,13,.22);  }

/* ============== SUB-NAV: CHILD-PAGE MODE (section pills + back link) ============== */
.ed-subnav__back {
  flex: none;
  display: inline-flex; align-items: center; gap: .5rem;
  padding: .5rem .95rem;
  border: 1px solid rgba(201,169,97,.38);
  border-radius: 999px;
  color: var(--ed-gold-bright); font-size: .86rem; font-weight: 700;
  text-decoration: none; white-space: nowrap;
  transition: background .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.ed-subnav__back:hover {
  border-color: var(--ed-gold-bright);
  background: rgba(201,169,97,.14);
  box-shadow: 0 0 18px rgba(201,169,97,.22);
}
.ed-subnav__back svg { width: 14px; height: 14px; }
.ed-subnav__links--scroll { overflow-x: auto; scrollbar-width: none; }
.ed-subnav__links--scroll::-webkit-scrollbar { display: none; }
@media (prefers-reduced-motion: reduce) {
  .ed-subnav__back { transition: none; }
}

/* ============== SUB-NAV: TOPICS PANEL WITH JOURNEY SUB-GROUPS ============== */
.ed-subnav__panel--topics {
  grid-template-columns: repeat(2, minmax(230px, 1fr));
  gap: .4rem .7rem;
  min-width: 620px;
}
.ed-subnav__group:hover .ed-subnav__panel--topics,
.ed-subnav__group:focus-within .ed-subnav__panel--topics,
.ed-subnav__group.is-open .ed-subnav__panel--topics { display: grid; }
.ed-subnav__pg { display: flex; flex-direction: column; }
.ed-subnav__pg + .ed-subnav__pg { margin-top: .15rem; }
.ed-subnav__pg .ed-subnav__panel-title { border-bottom: 1px solid rgba(201,169,97,.18); margin: 0 .5rem .3rem; padding: .45rem .3rem .35rem; }
@media (max-width: 720px) {
  .ed-subnav__panel--topics { grid-template-columns: 1fr; min-width: 300px; }
}

