/* ============================================================
   DARESNI — INNER PAGES  (Sprint 2: Why Daresni section)
   No changes to variables, base, layout, components, navigation,
   home or responsive. This file owns inner-page rules only.
   ============================================================ */

/* ─────────────────────────────────────────────────────────────
   PAGE HERO (shared across all inner pages)
───────────────────────────────────────────────────────────── */
.page-hero {
  background: var(--grad-hero);
  padding-top: calc(72px + var(--s20));
  padding-bottom: var(--s20);
  text-align: center;
  position: relative;
  overflow: hidden;
}
.page-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(var(--ov-grid) 1px, transparent 1px),
    linear-gradient(90deg, var(--ov-grid) 1px, transparent 1px);
  background-size: 60px 60px;
  pointer-events: none;
}
/* Decorative glow */
.page-hero::after {
  content: '';
  position: absolute;
  width: 500px; height: 500px;
  background: var(--ov-maroon);
  border-radius: 50%;
  filter: blur(90px);
  top: -150px; right: -100px;
  pointer-events: none;
}
.page-hero__content { position: relative; z-index: 2; }
.page-hero__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: var(--s2);
  font-size: var(--tx-xs);
  font-weight: var(--w7);
  letter-spacing: var(--ls-wider);
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: var(--s4);
}
.page-hero__title {
  font-size: clamp(2rem, 5vw, 3.5rem);
  font-weight: var(--w8);
  color: var(--white);
  letter-spacing: var(--ls-tight);
  line-height: var(--lh-tight);
  margin-bottom: var(--s5);
}
.page-hero__title mark { background: none; color: var(--gold); }
.page-hero__sub {
  font-size: var(--tx-md);
  color: rgba(255,255,255,0.65);
  max-width: 600px;
  margin-inline: auto;
  line-height: var(--lh-base);
}

/* ─────────────────────────────────────────────────────────────
   RELATED PAGES NAV (internal linking strip)
───────────────────────────────────────────────────────────── */
.related-nav {
  background: var(--white);
  border-bottom: 1px solid var(--border-solid);
  padding-block: var(--s3);
  position: sticky;
  top: 72px;
  z-index: calc(var(--z-nav) - 10);
}
.related-nav__inner {
  display: flex;
  align-items: center;
  gap: var(--s2);
  overflow-x: auto;
  scrollbar-width: none;
}
.related-nav__inner::-webkit-scrollbar { display: none; }
.related-nav__link {
  display: inline-flex;
  align-items: center;
  gap: var(--s2);
  padding: var(--s2) var(--s4);
  border-radius: var(--r-full);
  font-size: var(--tx-sm);
  font-weight: var(--w5);
  color: var(--text-mid);
  text-decoration: none;
  white-space: nowrap;
  transition: all var(--t-fast) var(--ease);
  border: 1px solid transparent;
}
.related-nav__link:hover {
  background: var(--maroon-pale);
  color: var(--maroon-dark);
  border-color: var(--maroon);
}
.related-nav__link--active {
  background: var(--maroon);
  color: var(--white);
  font-weight: var(--w6);
  border-color: var(--maroon);
}
.related-nav__link--active:hover {
  background: var(--maroon-dark);
  color: var(--white);
}
.related-nav__sep {
  color: var(--border-solid);
  font-size: var(--tx-xs);
  flex-shrink: 0;
}

/* ─────────────────────────────────────────────────────────────
   TIMELINE  (Our Journey page)
───────────────────────────────────────────────────────────── */
.timeline {
  position: relative;
  padding-left: 80px;
}
/* Vertical spine */
.timeline::before {
  content: '';
  position: absolute;
  left: 28px;
  top: 0;
  bottom: 0;
  width: 2px;
  background: linear-gradient(
    180deg,
    var(--maroon) 0%,
    rgba(155,27,43,0.30) 80%,
    transparent 100%
  );
}

.timeline-chapter {
  position: relative;
  margin-bottom: var(--s16);
}
.timeline-chapter:last-child { margin-bottom: 0; }

/* Chapter marker */
.timeline-chapter__marker {
  position: absolute;
  left: -59px;
  top: 4px;
  width: 52px; height: 52px;
  border-radius: var(--r-full);
  background: var(--white);
  border: 2px solid var(--border-solid);
  display: flex; align-items: center; justify-content: center;
  transition: border-color var(--t-base), box-shadow var(--t-base);
}
.timeline-chapter__marker-inner {
  width: 34px; height: 34px;
  border-radius: var(--r-full);
  background: var(--maroon);
  display: flex; align-items: center; justify-content: center;
  box-shadow: var(--shadow-maroon);
  font-size: var(--tx-sm);
}
.timeline-chapter:hover .timeline-chapter__marker {
  border-color: var(--maroon);
  box-shadow: 0 0 0 4px rgba(155,27,43,0.10);
}

/* Chapter content */
.timeline-chapter__content {
  background: var(--white);
  border: 1px solid var(--border-solid);
  border-radius: var(--r-xl);
  padding: var(--s8) var(--s10);
  transition: box-shadow var(--t-base) var(--ease);
}
.timeline-chapter:hover .timeline-chapter__content {
  box-shadow: var(--shadow-md);
}

.timeline-chapter__label {
  font-size: var(--tx-xs);
  font-weight: var(--w7);
  letter-spacing: var(--ls-wider);
  text-transform: uppercase;
  color: var(--maroon);
  margin-bottom: var(--s2);
}
.timeline-chapter__title {
  font-size: var(--tx-2xl);
  font-weight: var(--w8);
  color: var(--navy);
  line-height: var(--lh-snug);
  margin-bottom: var(--s5);
  letter-spacing: var(--ls-tight);
}
.timeline-chapter__body {
  display: flex;
  flex-direction: column;
  gap: var(--s4);
}
.timeline-chapter__body p {
  font-size: var(--tx-base);
  color: var(--text-sec);
  line-height: var(--lh-base);
}
.timeline-chapter__body p strong {
  color: var(--navy);
  font-weight: var(--w6);
}

/* Pull quote inside chapter */
.chapter-quote {
  margin-block: var(--s4);
  padding: var(--s5) var(--s8);
  border-left: 3px solid var(--maroon);
  background: var(--maroon-pale);
  border-radius: 0 var(--r-md) var(--r-md) 0;
}
.chapter-quote__text {
  font-size: var(--tx-xl);
  font-weight: var(--w6);
  font-style: italic;
  color: var(--navy);
  line-height: var(--lh-snug);
}
.chapter-quote__credit {
  margin-top: var(--s2);
  font-size: var(--tx-sm);
  color: var(--text-light);
}

/* Photo placeholder inside timeline */
.timeline-photo {
  width: 100%;
  border-radius: var(--r-lg);
  aspect-ratio: 16/7;
  background: var(--bg);
  border: 2px dashed var(--border-solid);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--s2);
  margin-top: var(--s5);
}
.timeline-photo__icon { font-size: 2rem; opacity: 0.35; }
.timeline-photo__note { font-size: var(--tx-sm); color: var(--text-light); }

/* Founder signature */
.founder-sign {
  margin-top: var(--s6);
  padding-top: var(--s6);
  border-top: 1px solid var(--border-solid);
}
.founder-sign__name {
  font-size: var(--tx-lg);
  font-weight: var(--w7);
  color: var(--navy);
}
.founder-sign__title { font-size: var(--tx-sm); color: var(--text-light); }
/* Signature graphic placeholder */
.founder-sign__sig {
  height: 52px;
  margin-bottom: var(--s2);
  font-family: 'Georgia', serif;
  font-size: 2.2rem;
  color: var(--maroon);
  opacity: 0.70;
  letter-spacing: 0.02em;
  line-height: 1;
}

/* ─────────────────────────────────────────────────────────────
   FOUNDER PAGE
───────────────────────────────────────────────────────────── */
.founder-grid {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: var(--s12);
  align-items: start;
}
.founder-portrait {
  position: sticky;
  top: calc(72px + var(--s6) + 48px); /* account for related-nav */
}
.founder-portrait__frame {
  border-radius: var(--r-xl);
  overflow: hidden;
  aspect-ratio: 3/4;
  background: var(--navy-pale);
  border: 2px dashed var(--border-solid);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--s3);
  margin-bottom: var(--s5);
}
.founder-portrait__img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
}
.founder-portrait__placeholder-icon { font-size: 3rem; opacity: 0.30; }
.founder-portrait__placeholder-note { font-size: var(--tx-sm); color: var(--text-light); text-align: center; padding-inline: var(--s4); }
.founder-portrait__caption {
  text-align: center;
  font-size: var(--tx-sm);
  color: var(--text-light);
}
.founder-portrait__name {
  font-size: var(--tx-base);
  font-weight: var(--w7);
  color: var(--navy);
  margin-bottom: 2px;
}
.founder-bio { display: flex; flex-direction: column; gap: var(--s6); }
.founder-bio p {
  font-size: var(--tx-base);
  color: var(--text-sec);
  line-height: var(--lh-base);
}
.founder-bio p strong { color: var(--navy); font-weight: var(--w6); }
.founder-credentials {
  display: flex;
  flex-direction: column;
  gap: var(--s3);
  margin-block: var(--s2);
}
.founder-cred {
  display: flex;
  align-items: flex-start;
  gap: var(--s4);
  padding: var(--s4) var(--s5);
  background: var(--bg);
  border-radius: var(--r-md);
  border: 1px solid var(--border-solid);
}
.founder-cred__icon { font-size: 20px; flex-shrink: 0; margin-top: 2px; }
.founder-cred__label { font-size: var(--tx-sm); font-weight: var(--w7); color: var(--navy); margin-bottom: 2px; }
.founder-cred__desc  { font-size: var(--tx-sm); color: var(--text-sec); line-height: var(--lh-snug); }

/* ─────────────────────────────────────────────────────────────
   MISSION / VISION — elegant single-focus pages
───────────────────────────────────────────────────────────── */
.mission-headline {
  font-size: clamp(2rem, 4.5vw, 3.5rem);
  font-weight: var(--w8);
  color: var(--navy);
  line-height: var(--lh-tight);
  letter-spacing: var(--ls-tight);
  text-align: center;
  max-width: 820px;
  margin-inline: auto;
  margin-bottom: var(--s6);
}
.mission-headline mark { background: none; color: var(--maroon); }

.mission-body {
  max-width: 720px;
  margin-inline: auto;
  text-align: center;
}
.mission-body p {
  font-size: var(--tx-md);
  color: var(--text-sec);
  line-height: var(--lh-base);
  margin-bottom: var(--s5);
}
.mission-body p:last-child { margin-bottom: 0; }

/* Pillar cards (mission/vision) */
.pillars-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--s5);
  margin-top: var(--s12);
}
.pillar-card {
  background: var(--white);
  border: 1px solid var(--border-solid);
  border-radius: var(--r-xl);
  padding: var(--s8);
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--s4);
  transition: box-shadow var(--t-base) var(--ease), transform var(--t-base) var(--ease);
}
.pillar-card:hover { box-shadow: var(--shadow-md); transform: translateY(-3px); }
.pillar-card__icon {
  width: 64px; height: 64px;
  border-radius: var(--r-lg);
  display: flex; align-items: center; justify-content: center;
  font-size: 28px;
}
.pillar-card__title {
  font-size: var(--tx-lg);
  font-weight: var(--w7);
  color: var(--navy);
  letter-spacing: var(--ls-tight);
}
.pillar-card__desc {
  font-size: var(--tx-sm);
  color: var(--text-sec);
  line-height: var(--lh-base);
}

/* Large centred quote block */
.big-quote {
  background: var(--grad-hero);
  border-radius: var(--r-2xl);
  padding: var(--s16) var(--s20);
  text-align: center;
  position: relative;
  overflow: hidden;
  margin-block: var(--s12);
}
.big-quote::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(var(--ov-grid) 1px, transparent 1px),
    linear-gradient(90deg, var(--ov-grid) 1px, transparent 1px);
  background-size: 50px 50px;
  pointer-events: none;
}
.big-quote__mark {
  font-family: 'Georgia', serif;
  font-size: 8rem;
  line-height: 0.6;
  color: var(--gold);
  opacity: 0.15;
  display: block;
  margin-bottom: var(--s4);
  position: relative;
  z-index: 1;
}
.big-quote__text {
  font-size: clamp(1.25rem, 2.5vw, 1.875rem);
  font-weight: var(--w7);
  color: var(--white);
  line-height: var(--lh-snug);
  max-width: 760px;
  margin-inline: auto;
  position: relative;
  z-index: 1;
}
.big-quote__author {
  margin-top: var(--s5);
  font-size: var(--tx-sm);
  color: rgba(255,255,255,0.55);
  position: relative;
  z-index: 1;
}

/* ─────────────────────────────────────────────────────────────
   IMPACT PAGE
───────────────────────────────────────────────────────────── */
.impact-stats-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--s5);
}
.impact-stat-card {
  background: var(--white);
  border: 1px solid var(--border-solid);
  border-radius: var(--r-xl);
  padding: var(--s8);
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--s3);
  transition: box-shadow var(--t-base) var(--ease);
}
.impact-stat-card:hover { box-shadow: var(--shadow-md); }
.impact-stat-card__icon {
  width: 56px; height: 56px;
  border-radius: var(--r-md);
  display: flex; align-items: center; justify-content: center;
  font-size: 26px;
}
.impact-stat-card__n {
  font-size: var(--tx-4xl);
  font-weight: var(--w8);
  color: var(--navy);
  letter-spacing: var(--ls-tight);
  line-height: 1;
}
.impact-stat-card__label {
  font-size: var(--tx-sm);
  font-weight: var(--w6);
  color: var(--text-mid);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
}
.impact-stat-card__note {
  font-size: var(--tx-xs);
  color: var(--text-light);
  font-style: italic;
}

/* Who we help section */
.who-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--s5);
}
.who-card {
  background: var(--white);
  border: 1px solid var(--border-solid);
  border-radius: var(--r-xl);
  padding: var(--s8) var(--s8) var(--s6);
  display: flex;
  flex-direction: column;
  gap: var(--s4);
}
.who-card__header {
  display: flex;
  align-items: center;
  gap: var(--s4);
  padding-bottom: var(--s4);
  border-bottom: 1px solid var(--border-solid);
}
.who-card__icon {
  width: 52px; height: 52px;
  border-radius: var(--r-md);
  display: flex; align-items: center; justify-content: center;
  font-size: 24px;
  flex-shrink: 0;
}
.who-card__title { font-size: var(--tx-xl); font-weight: var(--w7); color: var(--navy); }
.who-card__desc  { font-size: var(--tx-sm); color: var(--text-sec); line-height: var(--lh-base); }
.who-card__points {
  display: flex;
  flex-direction: column;
  gap: var(--s3);
}
.who-point {
  display: flex;
  align-items: flex-start;
  gap: var(--s3);
  font-size: var(--tx-sm);
  color: var(--text-sec);
  line-height: var(--lh-base);
}
.who-point::before {
  content: '';
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--maroon);
  flex-shrink: 0;
  margin-top: 6px;
}

/* ─────────────────────────────────────────────────────────────
   TRUST & SAFETY PAGE
───────────────────────────────────────────────────────────── */
.trust-principles {
  display: flex;
  flex-direction: column;
  gap: var(--s4);
}
.trust-principle {
  background: var(--white);
  border: 1px solid var(--border-solid);
  border-radius: var(--r-xl);
  padding: var(--s6) var(--s8);
  display: grid;
  grid-template-columns: 64px 1fr;
  gap: var(--s6);
  align-items: start;
  transition: box-shadow var(--t-base) var(--ease);
}
.trust-principle:hover { box-shadow: var(--shadow-sm); }
.trust-principle__icon {
  width: 64px; height: 64px;
  border-radius: var(--r-lg);
  display: flex; align-items: center; justify-content: center;
  font-size: 28px;
  flex-shrink: 0;
}
.trust-principle__title {
  font-size: var(--tx-lg);
  font-weight: var(--w7);
  color: var(--navy);
  margin-bottom: var(--s2);
}
.trust-principle__body {
  font-size: var(--tx-sm);
  color: var(--text-sec);
  line-height: var(--lh-base);
}

/* Trust commitment box */
.trust-commit {
  background: var(--navy);
  border-radius: var(--r-xl);
  padding: var(--s10) var(--s12);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--s10);
  align-items: center;
}
.trust-commit__title {
  font-size: var(--tx-2xl);
  font-weight: var(--w8);
  color: var(--white);
  line-height: var(--lh-snug);
  letter-spacing: var(--ls-tight);
  margin-bottom: var(--s4);
}
.trust-commit__title mark { background: none; color: var(--gold); }
.trust-commit__body {
  font-size: var(--tx-sm);
  color: rgba(255,255,255,0.65);
  line-height: var(--lh-base);
}
.trust-commit__items {
  display: flex;
  flex-direction: column;
  gap: var(--s4);
}
.trust-commit__item {
  display: flex;
  align-items: flex-start;
  gap: var(--s4);
}
.trust-commit__item-icon {
  width: 40px; height: 40px;
  border-radius: var(--r-md);
  background: rgba(255,255,255,0.07);
  border: 1px solid rgba(255,255,255,0.10);
  display: flex; align-items: center; justify-content: center;
  font-size: 18px;
  flex-shrink: 0;
}
.trust-commit__item-label {
  font-size: var(--tx-sm);
  font-weight: var(--w6);
  color: var(--white);
  margin-bottom: 2px;
}
.trust-commit__item-note {
  font-size: var(--tx-xs);
  color: rgba(255,255,255,0.50);
}

/* ─────────────────────────────────────────────────────────────
   SHARED: placeholder blocks for photos / stats
───────────────────────────────────────────────────────────── */
.photo-placeholder {
  width: 100%;
  border-radius: var(--r-lg);
  border: 2px dashed var(--border-solid);
  background: var(--bg);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--s2);
  padding: var(--s12) var(--s6);
  text-align: center;
}
.photo-placeholder__icon { font-size: 2.5rem; opacity: 0.25; }
.photo-placeholder__note { font-size: var(--tx-sm); color: var(--text-light); }

.stat-placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--s1);
}
.stat-placeholder__n {
  font-size: var(--tx-4xl);
  font-weight: var(--w8);
  color: var(--maroon);
  opacity: 0.35;
  line-height: 1;
  letter-spacing: var(--ls-tight);
}
.stat-placeholder__note { font-size: var(--tx-xs); color: var(--text-light); font-style: italic; }

/* ─────────────────────────────────────────────────────────────
   SECTION CONNECTOR (bottom of each inner page)
───────────────────────────────────────────────────────────── */
.section-connector {
  background: var(--bg);
  padding-block: var(--s16);
  text-align: center;
  border-top: 1px solid var(--border-solid);
}
.section-connector__title {
  font-size: var(--tx-xl);
  font-weight: var(--w7);
  color: var(--navy);
  margin-bottom: var(--s3);
}
.section-connector__sub {
  font-size: var(--tx-sm);
  color: var(--text-sec);
  margin-bottom: var(--s6);
}
.section-connector__links {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: var(--s3);
}

/* ─────────────────────────────────────────────────────────────
   RESPONSIVE — inner pages
───────────────────────────────────────────────────────────── */
@media (max-width: 1024px) {
  .founder-grid { grid-template-columns: 1fr; }
  .founder-portrait { position: static; max-width: 340px; margin-inline: auto; }
  .pillars-grid { grid-template-columns: repeat(2, 1fr); }
  .trust-commit { grid-template-columns: 1fr; }
  .impact-stats-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 768px) {
  .timeline { padding-left: 56px; }
  .timeline-chapter__marker { left: -38px; width: 40px; height: 40px; }
  .timeline-chapter__marker-inner { width: 26px; height: 26px; font-size: var(--tx-xs); }
  .timeline::before { left: 18px; }
  .timeline-chapter__content { padding: var(--s6); }
  .chapter-quote { padding: var(--s4) var(--s5); }
  .chapter-quote__text { font-size: var(--tx-lg); }
  .big-quote { padding: var(--s10) var(--s6); }
  .big-quote__text { font-size: var(--tx-xl); }
  .big-quote__mark { font-size: 5rem; }
  .pillars-grid { grid-template-columns: 1fr; }
  .impact-stats-grid { grid-template-columns: 1fr 1fr; }
  .who-grid { grid-template-columns: 1fr; }
  .trust-principle { grid-template-columns: 48px 1fr; gap: var(--s4); }
  .trust-principle__icon { width: 48px; height: 48px; font-size: 22px; }
  .page-hero { padding-top: calc(72px + var(--s12)); padding-bottom: var(--s12); }
  .related-nav { top: 72px; }
  .section-connector__links { flex-direction: column; align-items: center; }
}

@media (max-width: 480px) {
  .impact-stats-grid { grid-template-columns: 1fr; }
  .timeline { padding-left: 44px; }
  .timeline::before { left: 12px; }
  .timeline-chapter__marker { left: -30px; width: 36px; height: 36px; }
  .timeline-chapter__marker-inner { width: 22px; height: 22px; }
  .mission-headline { font-size: var(--tx-2xl); }
}

/* ═══════════════════════════════════════════════════════════
   PRESS & MEDIA SECTION  (Sprint 3)
   All new rules appended below existing Sprint 2 rules.
   No existing rules modified.
═══════════════════════════════════════════════════════════ */

/* ─────────────────────────────────────────────────────────────
   PRESS RELATED NAV  (horizontal pill strip)
───────────────────────────────────────────────────────────── */
.press-nav {
  background: var(--white);
  border-bottom: 1px solid var(--border-solid);
  padding-block: var(--s3);
  position: sticky;
  top: 72px;
  z-index: calc(var(--z-nav) - 10);
}
.press-nav__inner {
  display: flex;
  align-items: center;
  gap: var(--s2);
  overflow-x: auto;
  scrollbar-width: none;
}
.press-nav__inner::-webkit-scrollbar { display: none; }
.press-nav__link {
  display: inline-flex;
  align-items: center;
  gap: var(--s2);
  padding: var(--s2) var(--s4);
  border-radius: var(--r-full);
  font-size: var(--tx-sm);
  font-weight: var(--w5);
  color: var(--text-mid);
  text-decoration: none;
  white-space: nowrap;
  border: 1px solid transparent;
  transition: all var(--t-fast) var(--ease);
}
.press-nav__link:hover {
  background: var(--maroon-pale);
  color: var(--maroon-dark);
  border-color: var(--maroon);
}
.press-nav__link--active {
  background: var(--maroon);
  color: var(--white);
  font-weight: var(--w6);
  border-color: var(--maroon);
}
.press-nav__link--active:hover { background: var(--maroon-dark); color: var(--white); }
.press-nav__sep { color: var(--border-solid); font-size: var(--tx-xs); flex-shrink: 0; }

/* ─────────────────────────────────────────────────────────────
   BREADCRUMB
───────────────────────────────────────────────────────────── */
.breadcrumb {
  display: flex;
  align-items: center;
  gap: var(--s2);
  font-size: var(--tx-sm);
  color: var(--text-light);
  margin-bottom: var(--s8);
  flex-wrap: wrap;
}
.breadcrumb a { color: var(--text-light); text-decoration: none; transition: color var(--t-fast); }
.breadcrumb a:hover { color: var(--maroon); }
.breadcrumb__sep { opacity: 0.4; font-size: var(--tx-xs); }
.breadcrumb__current { color: var(--text-mid); font-weight: var(--w5); }

/* ─────────────────────────────────────────────────────────────
   PRESS HOME — overview cards
───────────────────────────────────────────────────────────── */
.press-overview-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--s5);
}
.press-overview-card {
  display: flex;
  flex-direction: column;
  background: var(--white);
  border: 1px solid var(--border-solid);
  border-radius: var(--r-xl);
  padding: var(--s8);
  text-decoration: none;
  color: inherit;
  gap: var(--s4);
  transition: box-shadow var(--t-base) var(--ease), transform var(--t-base) var(--ease);
}
.press-overview-card:hover {
  box-shadow: var(--shadow-md);
  transform: translateY(-3px);
  color: inherit;
}
.press-overview-card__icon {
  width: 56px; height: 56px;
  border-radius: var(--r-lg);
  display: flex; align-items: center; justify-content: center;
  font-size: 26px;
  flex-shrink: 0;
}
.press-overview-card__title {
  font-size: var(--tx-lg);
  font-weight: var(--w7);
  color: var(--navy);
  margin-bottom: var(--s1);
}
.press-overview-card__desc {
  font-size: var(--tx-sm);
  color: var(--text-sec);
  line-height: var(--lh-base);
  flex: 1;
}
.press-overview-card__cta {
  font-size: var(--tx-sm);
  font-weight: var(--w7);
  color: var(--maroon);
  display: flex;
  align-items: center;
  gap: var(--s1);
  margin-top: auto;
}
.press-overview-card__cta svg { width: 14px; height: 14px; transition: transform var(--t-fast); }
.press-overview-card:hover .press-overview-card__cta svg { transform: translateX(3px); }

/* ─────────────────────────────────────────────────────────────
   PUBLICATION CARD  (Featured In)
───────────────────────────────────────────────────────────── */
.pub-wall {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--s5);
}
.pub-card {
  background: var(--white);
  border: 1px solid var(--border-solid);
  border-radius: var(--r-xl);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: box-shadow var(--t-base) var(--ease), transform var(--t-base) var(--ease);
}
.pub-card:hover { box-shadow: var(--shadow-md); transform: translateY(-3px); }

/* Logo zone — replace inner content with <img> when logo available */
.pub-card__logo-zone {
  padding: var(--s6) var(--s6) var(--s4);
  border-bottom: 1px solid var(--border-solid);
  display: flex;
  align-items: center;
  gap: var(--s3);
  min-height: 80px;
}
/* PUBLICATION LOGO: Insert <img src="..." alt="[Publication Name]"> inside .pub-card__logo-zone */
.pub-card__logo-placeholder {
  width: 48px; height: 48px;
  background: var(--bg);
  border-radius: var(--r-md);
  border: 1.5px dashed var(--border-solid);
  display: flex; align-items: center; justify-content: center;
  font-size: 20px;
  flex-shrink: 0;
}
.pub-card__pub-name {
  font-size: var(--tx-base);
  font-weight: var(--w7);
  color: var(--navy);
}
.pub-card__pub-type {
  font-size: var(--tx-xs);
  color: var(--text-light);
  margin-top: 2px;
}
.pub-card__body {
  padding: var(--s5) var(--s6);
  display: flex;
  flex-direction: column;
  gap: var(--s3);
  flex: 1;
}
.pub-card__date {
  font-size: var(--tx-xs);
  font-weight: var(--w6);
  color: var(--maroon);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
}
.pub-card__headline {
  font-size: var(--tx-md);
  font-weight: var(--w7);
  color: var(--navy);
  line-height: var(--lh-snug);
}
.pub-card__summary {
  font-size: var(--tx-sm);
  color: var(--text-sec);
  line-height: var(--lh-base);
  flex: 1;
}
.pub-card__footer {
  padding: var(--s4) var(--s6) var(--s5);
  border-top: 1px solid var(--border-solid);
}
/* ARTICLE URL: Replace href="#" with real article URL when available */
.pub-card__read-btn {
  display: inline-flex;
  align-items: center;
  gap: var(--s2);
  font-size: var(--tx-sm);
  font-weight: var(--w7);
  color: var(--maroon);
  text-decoration: none;
  transition: color var(--t-fast);
}
.pub-card__read-btn:hover { color: var(--maroon-dark); }
.pub-card__read-btn svg { width: 14px; height: 14px; transition: transform var(--t-fast); }
.pub-card__read-btn:hover svg { transform: translateX(3px); }

/* ─────────────────────────────────────────────────────────────
   AWARD CARD  (Awards timeline)
───────────────────────────────────────────────────────────── */
.awards-timeline {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: var(--s8);
}
.awards-timeline::before {
  content: '';
  position: absolute;
  left: 36px;
  top: 0; bottom: 0;
  width: 2px;
  background: linear-gradient(180deg, var(--gold) 0%, rgba(255,209,102,0.20) 85%, transparent 100%);
}
.award-card {
  display: grid;
  grid-template-columns: 80px 1fr;
  gap: var(--s6);
  align-items: start;
  position: relative;
}
.award-card__year-col {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--s2);
  padding-top: var(--s4);
  position: relative;
  z-index: 1;
}
.award-card__year-badge {
  width: 72px; height: 72px;
  border-radius: var(--r-full);
  background: var(--white);
  border: 2px solid var(--border-solid);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  transition: border-color var(--t-base), box-shadow var(--t-base);
}
.award-card:hover .award-card__year-badge {
  border-color: var(--gold-dark);
  box-shadow: 0 0 0 4px rgba(255,209,102,0.15);
}
.award-card__year-inner {
  width: 52px; height: 52px;
  border-radius: var(--r-full);
  background: linear-gradient(135deg, var(--gold), var(--gold-dark));
  display: flex; align-items: center; justify-content: center;
  font-size: var(--tx-sm);
  font-weight: var(--w8);
  color: var(--navy);
}
.award-card__body {
  background: var(--white);
  border: 1px solid var(--border-solid);
  border-radius: var(--r-xl);
  padding: var(--s6) var(--s8);
  display: flex;
  flex-direction: column;
  gap: var(--s3);
  transition: box-shadow var(--t-base) var(--ease);
}
.award-card:hover .award-card__body { box-shadow: var(--shadow-sm); }
/* AWARD LOGO: Insert <img src="..." alt="[Awarding Organisation]"> here */
.award-card__logo-placeholder {
  width: 52px; height: 52px;
  background: rgba(255,209,102,0.10);
  border-radius: var(--r-md);
  border: 1.5px dashed rgba(255,209,102,0.40);
  display: flex; align-items: center; justify-content: center;
  font-size: 22px;
  margin-bottom: var(--s1);
}
.award-card__title {
  font-size: var(--tx-xl);
  font-weight: var(--w8);
  color: var(--navy);
  letter-spacing: var(--ls-tight);
}
.award-card__org {
  font-size: var(--tx-sm);
  font-weight: var(--w6);
  color: var(--gold-dark);
  display: flex;
  align-items: center;
  gap: var(--s2);
}
.award-card__desc {
  font-size: var(--tx-sm);
  color: var(--text-sec);
  line-height: var(--lh-base);
}

/* ─────────────────────────────────────────────────────────────
   NEWS CARD
───────────────────────────────────────────────────────────── */
.news-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--s5);
}
.news-card {
  background: var(--white);
  border: 1px solid var(--border-solid);
  border-radius: var(--r-xl);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: box-shadow var(--t-base) var(--ease), transform var(--t-base) var(--ease);
}
.news-card:hover { box-shadow: var(--shadow-md); transform: translateY(-3px); }
/* NEWS IMAGE: Replace .news-card__img-placeholder with <img src="..." alt="..."> */
.news-card__img-placeholder {
  width: 100%;
  aspect-ratio: 16/9;
  background: var(--bg);
  border-bottom: 1px solid var(--border-solid);
  display: flex; align-items: center; justify-content: center;
  font-size: 2rem;
  opacity: 0.30;
}
.news-card__body { padding: var(--s5) var(--s6); flex: 1; display: flex; flex-direction: column; gap: var(--s3); }
.news-card__meta {
  display: flex;
  align-items: center;
  gap: var(--s3);
  flex-wrap: wrap;
}
.news-card__date {
  font-size: var(--tx-xs);
  color: var(--text-light);
  font-weight: var(--w5);
}
.news-card__category {
  padding: 0.15rem 0.6rem;
  background: var(--maroon-pale);
  color: var(--maroon);
  border-radius: var(--r-full);
  font-size: var(--tx-xs);
  font-weight: var(--w7);
  letter-spacing: 0.03em;
}
.news-card__headline {
  font-size: var(--tx-md);
  font-weight: var(--w7);
  color: var(--navy);
  line-height: var(--lh-snug);
  flex: 1;
}
.news-card__summary {
  font-size: var(--tx-sm);
  color: var(--text-sec);
  line-height: var(--lh-base);
}
.news-card__footer {
  padding: var(--s4) var(--s6) var(--s5);
  border-top: 1px solid var(--border-solid);
}
/* NEWS URL: Replace href="#" with article URL when available */
.news-card__read {
  font-size: var(--tx-sm);
  font-weight: var(--w7);
  color: var(--maroon);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: var(--s2);
  transition: color var(--t-fast);
}
.news-card__read:hover { color: var(--maroon-dark); }
.news-card__read svg { width: 13px; height: 13px; transition: transform var(--t-fast); }
.news-card__read:hover svg { transform: translateX(3px); }

/* ─────────────────────────────────────────────────────────────
   VIDEO CARD  (TV Interviews & Videos)
───────────────────────────────────────────────────────────── */
.video-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--s5);
}
.video-card {
  background: var(--white);
  border: 1px solid var(--border-solid);
  border-radius: var(--r-xl);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: box-shadow var(--t-base) var(--ease), transform var(--t-base) var(--ease);
}
.video-card:hover { box-shadow: var(--shadow-md); transform: translateY(-3px); }

/* THUMBNAIL: Replace .video-card__thumb with:
   <img src="https://img.youtube.com/vi/[VIDEO_ID]/maxresdefault.jpg" alt="...">
   or a hosted thumbnail image.
   For embedding: replace entire thumb div with:
   <div class="video-card__embed">
     <iframe src="https://www.youtube.com/embed/[VIDEO_ID]" ...></iframe>
   </div>
*/
.video-card__thumb {
  width: 100%;
  aspect-ratio: 16/9;
  background: var(--navy);
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
}
.video-card__thumb-bg {
  position: absolute;
  inset: 0;
  background: var(--grad-hero);
  opacity: 0.85;
}
.video-card__play-btn {
  position: relative;
  z-index: 1;
  width: 56px; height: 56px;
  background: rgba(255,255,255,0.15);
  border: 2px solid rgba(255,255,255,0.40);
  border-radius: var(--r-full);
  display: flex; align-items: center; justify-content: center;
  backdrop-filter: blur(4px);
  transition: background var(--t-base), transform var(--t-fast);
}
.video-card:hover .video-card__play-btn {
  background: var(--maroon);
  border-color: var(--maroon);
  transform: scale(1.08);
}
.video-card__play-btn svg { width: 22px; height: 22px; fill: var(--white); margin-left: 3px; }
.video-card__station-badge {
  position: absolute;
  top: var(--s3); left: var(--s3);
  z-index: 2;
  padding: 0.2rem 0.65rem;
  background: rgba(0,0,0,0.55);
  border-radius: var(--r-full);
  font-size: var(--tx-xs);
  font-weight: var(--w6);
  color: var(--white);
  backdrop-filter: blur(4px);
  letter-spacing: 0.04em;
}
.video-card__embed {
  width: 100%;
  aspect-ratio: 16/9;
  background: var(--navy-deep);
}
.video-card__embed iframe {
  width: 100%; height: 100%;
  border: none;
}
.video-card__body { padding: var(--s5) var(--s6); flex: 1; display: flex; flex-direction: column; gap: var(--s2); }
.video-card__type {
  font-size: var(--tx-xs);
  font-weight: var(--w7);
  color: var(--maroon);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
}
.video-card__title {
  font-size: var(--tx-md);
  font-weight: var(--w7);
  color: var(--navy);
  line-height: var(--lh-snug);
}
.video-card__summary {
  font-size: var(--tx-sm);
  color: var(--text-sec);
  line-height: var(--lh-base);
  flex: 1;
}
.video-card__footer {
  padding: var(--s4) var(--s6) var(--s5);
  border-top: 1px solid var(--border-solid);
}
/* VIDEO URL: Replace href="#" with YouTube or video platform URL */
.video-card__watch {
  font-size: var(--tx-sm);
  font-weight: var(--w7);
  color: var(--maroon);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: var(--s2);
  transition: color var(--t-fast);
}
.video-card__watch:hover { color: var(--maroon-dark); }

/* ─────────────────────────────────────────────────────────────
   GALLERY  (masonry-style)
───────────────────────────────────────────────────────────── */
.gallery-filters {
  display: flex;
  gap: var(--s2);
  flex-wrap: wrap;
  margin-bottom: var(--s8);
}
.gallery-filter {
  padding: var(--s2) var(--s4);
  border-radius: var(--r-full);
  font-size: var(--tx-sm);
  font-weight: var(--w5);
  color: var(--text-mid);
  background: var(--white);
  border: 1px solid var(--border-solid);
  cursor: pointer;
  transition: all var(--t-fast) var(--ease);
}
.gallery-filter:hover, .gallery-filter.is-active {
  background: var(--maroon);
  border-color: var(--maroon);
  color: var(--white);
  font-weight: var(--w6);
}
/* Masonry grid using CSS columns */
.gallery-masonry {
  columns: 3;
  column-gap: var(--s4);
}
.gallery-item {
  break-inside: avoid;
  margin-bottom: var(--s4);
  border-radius: var(--r-lg);
  overflow: hidden;
  position: relative;
  cursor: pointer;
  background: var(--bg);
  border: 1px solid var(--border-solid);
  /* LIGHTBOX: Add data-lightbox="[group]" and onclick handler for lightbox support */
}
.gallery-item:hover .gallery-item__overlay { opacity: 1; }
/* GALLERY PHOTO: Replace .gallery-item__placeholder with <img src="..." alt="..."> */
.gallery-item__placeholder {
  width: 100%;
  aspect-ratio: 4/3;
  background: var(--bg);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--s2);
  padding: var(--s6);
}
.gallery-item__placeholder-icon { font-size: 2rem; opacity: 0.20; }
.gallery-item__placeholder-note { font-size: var(--tx-xs); color: var(--text-light); text-align: center; }
/* Tall variant for masonry rhythm */
.gallery-item--tall .gallery-item__placeholder { aspect-ratio: 3/4; }
.gallery-item--wide .gallery-item__placeholder { aspect-ratio: 16/9; }
.gallery-item__overlay {
  position: absolute;
  inset: 0;
  background: rgba(17,36,71,0.55);
  display: flex;
  align-items: flex-end;
  padding: var(--s4);
  opacity: 0;
  transition: opacity var(--t-base) var(--ease);
}
.gallery-item__caption {
  font-size: var(--tx-sm);
  font-weight: var(--w5);
  color: var(--white);
  line-height: var(--lh-snug);
}

/* ─────────────────────────────────────────────────────────────
   DOWNLOAD CARD  (Media Kit)
───────────────────────────────────────────────────────────── */
.download-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--s5);
}
.download-card {
  background: var(--white);
  border: 1px solid var(--border-solid);
  border-radius: var(--r-xl);
  padding: var(--s8);
  display: flex;
  flex-direction: column;
  gap: var(--s4);
  transition: box-shadow var(--t-base) var(--ease);
}
.download-card:hover { box-shadow: var(--shadow-sm); }
.download-card__icon {
  width: 56px; height: 56px;
  border-radius: var(--r-lg);
  display: flex; align-items: center; justify-content: center;
  font-size: 26px;
}
.download-card__title {
  font-size: var(--tx-lg);
  font-weight: var(--w7);
  color: var(--navy);
}
.download-card__desc {
  font-size: var(--tx-sm);
  color: var(--text-sec);
  line-height: var(--lh-base);
  flex: 1;
}
.download-card__meta {
  font-size: var(--tx-xs);
  color: var(--text-light);
  display: flex;
  align-items: center;
  gap: var(--s2);
}
/* DOWNLOAD FILE: Replace href="#" with actual file URL and remove aria-disabled when ready */
.download-card__btn {
  display: inline-flex;
  align-items: center;
  gap: var(--s2);
  padding: 0.6rem 1.25rem;
  background: var(--bg);
  border: 1.5px solid var(--border-solid);
  border-radius: var(--r-full);
  font-size: var(--tx-sm);
  font-weight: var(--w6);
  color: var(--text-mid);
  text-decoration: none;
  cursor: not-allowed;
  opacity: 0.65;
}
.download-card__btn--ready {
  background: var(--maroon);
  border-color: var(--maroon);
  color: var(--white);
  cursor: pointer;
  opacity: 1;
}
.download-card__btn--ready:hover {
  background: var(--maroon-dark);
  border-color: var(--maroon-dark);
}
.download-card__btn svg { width: 14px; height: 14px; }

/* ─────────────────────────────────────────────────────────────
   BRAND ASSETS PAGE
───────────────────────────────────────────────────────────── */
.brand-section { margin-bottom: var(--s16); }
.brand-section:last-child { margin-bottom: 0; }
.brand-section__title {
  font-size: var(--tx-xl);
  font-weight: var(--w7);
  color: var(--navy);
  margin-bottom: var(--s2);
}
.brand-section__desc {
  font-size: var(--tx-sm);
  color: var(--text-sec);
  margin-bottom: var(--s6);
  line-height: var(--lh-base);
}

.logo-variants {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--s4);
}
.logo-variant-card {
  border-radius: var(--r-lg);
  border: 1px solid var(--border-solid);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.logo-variant-card__preview {
  padding: var(--s8);
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 120px;
}
.logo-variant-card__preview--dark { background: var(--navy); }
.logo-variant-card__preview--light { background: var(--bg); }
.logo-variant-card__preview--white { background: var(--white); border-bottom: 1px solid var(--border-solid); }
/* LOGO: Insert <img src="../assets/logo/daresni-logo.svg" alt="Daresni Logo"> in each preview */
.logo-variant-card__info {
  padding: var(--s4) var(--s5);
  background: var(--white);
  border-top: 1px solid var(--border-solid);
}
.logo-variant-card__name { font-size: var(--tx-sm); font-weight: var(--w6); color: var(--navy); }
.logo-variant-card__note { font-size: var(--tx-xs); color: var(--text-light); }

.colour-swatches {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: var(--s4);
}
.colour-swatch {
  border-radius: var(--r-lg);
  border: 1px solid var(--border-solid);
  overflow: hidden;
}
.colour-swatch__chip {
  height: 80px;
}
.colour-swatch__info {
  padding: var(--s3) var(--s4);
  background: var(--white);
}
.colour-swatch__name { font-size: var(--tx-sm); font-weight: var(--w6); color: var(--navy); }
.colour-swatch__hex  { font-size: var(--tx-xs); color: var(--text-light); font-family: 'Courier New', monospace; }

.type-showcase {
  background: var(--white);
  border: 1px solid var(--border-solid);
  border-radius: var(--r-xl);
  padding: var(--s10);
}
.type-specimen {
  padding-block: var(--s5);
  border-bottom: 1px solid var(--border-solid);
}
.type-specimen:last-child { border-bottom: none; padding-bottom: 0; }
.type-specimen__label { font-size: var(--tx-xs); color: var(--text-light); font-weight: var(--w5); margin-bottom: var(--s2); letter-spacing: var(--ls-wide); }

/* ─────────────────────────────────────────────────────────────
   MEDIA CONTACT PAGE
───────────────────────────────────────────────────────────── */
.media-contact-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--s5);
  margin-bottom: var(--s12);
}
.media-contact-card {
  background: var(--white);
  border: 1px solid var(--border-solid);
  border-radius: var(--r-xl);
  padding: var(--s8);
  display: flex;
  flex-direction: column;
  gap: var(--s4);
}
.media-contact-card__icon {
  width: 56px; height: 56px;
  border-radius: var(--r-lg);
  display: flex; align-items: center; justify-content: center;
  font-size: 26px;
}
.media-contact-card__title {
  font-size: var(--tx-xl);
  font-weight: var(--w7);
  color: var(--navy);
}
.media-contact-card__desc {
  font-size: var(--tx-sm);
  color: var(--text-sec);
  line-height: var(--lh-base);
}
/* CONTACT: Replace span with <a href="mailto:press@daresni.net"> when email is ready */
.media-contact-card__contact-row {
  display: flex;
  align-items: center;
  gap: var(--s3);
  padding: var(--s3) var(--s4);
  background: var(--bg);
  border-radius: var(--r-md);
  border: 1px solid var(--border-solid);
}
.media-contact-card__contact-icon { font-size: 16px; flex-shrink: 0; }
.media-contact-card__contact-label { font-size: var(--tx-sm); font-weight: var(--w6); color: var(--navy); }
.media-contact-card__contact-note  { font-size: var(--tx-xs); color: var(--text-light); }

/* ─────────────────────────────────────────────────────────────
   QUOTE BANNER  (press pages shared component)
───────────────────────────────────────────────────────────── */
.quote-banner {
  background: var(--grad-hero);
  border-radius: var(--r-2xl);
  padding: var(--s12) var(--s16);
  text-align: center;
  position: relative;
  overflow: hidden;
  margin-block: var(--s12);
}
.quote-banner::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(var(--ov-grid) 1px, transparent 1px),
    linear-gradient(90deg, var(--ov-grid) 1px, transparent 1px);
  background-size: 50px 50px;
  pointer-events: none;
}
.quote-banner__text {
  font-size: clamp(1.125rem, 2.2vw, 1.5rem);
  font-weight: var(--w6);
  color: var(--white);
  line-height: var(--lh-snug);
  max-width: 700px;
  margin-inline: auto;
  position: relative;
  z-index: 1;
  font-style: italic;
}
.quote-banner__author {
  margin-top: var(--s4);
  font-size: var(--tx-sm);
  color: rgba(255,255,255,0.55);
  position: relative;
  z-index: 1;
}

/* ─────────────────────────────────────────────────────────────
   RESPONSIVE — press pages
───────────────────────────────────────────────────────────── */
@media (max-width: 1024px) {
  .press-overview-grid { grid-template-columns: repeat(2, 1fr); }
  .pub-wall            { grid-template-columns: repeat(2, 1fr); }
  .news-grid           { grid-template-columns: repeat(2, 1fr); }
  .video-grid          { grid-template-columns: repeat(2, 1fr); }
  .download-grid       { grid-template-columns: repeat(2, 1fr); }
  .logo-variants       { grid-template-columns: repeat(2, 1fr); }
  .colour-swatches     { grid-template-columns: repeat(3, 1fr); }
  .media-contact-grid  { grid-template-columns: 1fr; }
  .gallery-masonry     { columns: 2; }
  .quote-banner        { padding: var(--s10) var(--s8); }
}

@media (max-width: 768px) {
  .press-overview-grid { grid-template-columns: 1fr; }
  .pub-wall            { grid-template-columns: 1fr; }
  .news-grid           { grid-template-columns: 1fr; }
  .video-grid          { grid-template-columns: 1fr; }
  .download-grid       { grid-template-columns: 1fr; }
  .logo-variants       { grid-template-columns: 1fr; }
  .colour-swatches     { grid-template-columns: repeat(2, 1fr); }
  .award-card          { grid-template-columns: 60px 1fr; gap: var(--s4); }
  .award-card__year-badge  { width: 52px; height: 52px; }
  .award-card__year-inner  { width: 38px; height: 38px; font-size: var(--tx-xs); }
  .awards-timeline::before { left: 28px; }
  .gallery-masonry     { columns: 2; }
  .quote-banner        { padding: var(--s8) var(--s5); border-radius: var(--r-xl); }
  .quote-banner__text  { font-size: var(--tx-base); }
}

@media (max-width: 480px) {
  .gallery-masonry   { columns: 1; }
  .colour-swatches   { grid-template-columns: repeat(2, 1fr); }
  .award-card        { grid-template-columns: 1fr; }
  .award-card__year-col { flex-direction: row; justify-content: flex-start; }
  .awards-timeline::before { display: none; }
}

/* ═══════════════════════════════════════════════════════════
   LEARNING DISCOVERY PLATFORM  (Sprint 4)
   All new rules appended below existing Sprint 1–3 rules.
   No existing rules modified.
═══════════════════════════════════════════════════════════ */

/* ─────────────────────────────────────────────────────────────
   DISCOVERY TOOLBAR (search + filters, shared across directories)
───────────────────────────────────────────────────────────── */
.discovery-toolbar {
  background: var(--white);
  border: 1px solid var(--border-solid);
  border-radius: var(--r-xl);
  padding: var(--s6) var(--s8);
  margin-bottom: var(--s10);
  display: flex;
  flex-direction: column;
  gap: var(--s5);
}
.discovery-toolbar__search { max-width: 100%; }
.discovery-filter-row {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s4);
  align-items: flex-start;
}
.discovery-filter-group {
  display: flex;
  flex-direction: column;
  gap: var(--s2);
}
.discovery-filter-group__label {
  font-size: var(--tx-xs);
  font-weight: var(--w7);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--text-light);
}
.discovery-filter-group__pills {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s2);
}
.discovery-pill {
  padding: 0.4rem 0.9rem;
  border-radius: var(--r-full);
  font-size: var(--tx-sm);
  font-weight: var(--w5);
  color: var(--text-mid);
  background: var(--bg);
  border: 1px solid var(--border-solid);
  cursor: pointer;
  transition: all var(--t-fast) var(--ease);
}
.discovery-pill:hover { border-color: var(--maroon); color: var(--maroon-dark); }
.discovery-pill.is-active {
  background: var(--maroon);
  border-color: var(--maroon);
  color: var(--white);
  font-weight: var(--w6);
}
.discovery-results-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--s6);
  flex-wrap: wrap;
  gap: var(--s3);
}
.discovery-results-count {
  font-size: var(--tx-sm);
  color: var(--text-light);
  font-weight: var(--w5);
}

/* ─────────────────────────────────────────────────────────────
   DISCOVERY CARD GRID
───────────────────────────────────────────────────────────── */
.discovery-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--s5);
  min-height: 200px;
}
/* aria-busy styling hook */
.discovery-grid[aria-busy="true"] { opacity: 0.85; }

/* ─────────────────────────────────────────────────────────────
   SKELETON LOADING STATE
───────────────────────────────────────────────────────────── */
.edu-card--skeleton { pointer-events: none; }
.skeleton-row { display: flex; align-items: center; gap: var(--s4); }
.skeleton-circle {
  width: 56px; height: 56px;
  border-radius: 50%;
  background: linear-gradient(90deg, var(--bg) 25%, var(--border-solid) 37%, var(--bg) 63%);
  background-size: 400% 100%;
  animation: skeleton-shimmer 1.4s ease infinite;
  flex-shrink: 0;
}
.skeleton-line {
  height: 10px;
  border-radius: var(--r-full);
  background: linear-gradient(90deg, var(--bg) 25%, var(--border-solid) 37%, var(--bg) 63%);
  background-size: 400% 100%;
  animation: skeleton-shimmer 1.4s ease infinite;
}
@keyframes skeleton-shimmer {
  0%   { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

/* ─────────────────────────────────────────────────────────────
   EMPTY / ERROR STATES
───────────────────────────────────────────────────────────── */
.discovery-state {
  grid-column: 1 / -1;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: var(--s3);
  padding: var(--s16) var(--s6);
  background: var(--bg);
  border: 1.5px dashed var(--border-solid);
  border-radius: var(--r-xl);
}
.discovery-state--error { background: rgba(155,27,43,0.04); border-color: rgba(155,27,43,0.20); }
.discovery-state__icon { font-size: 2.5rem; opacity: 0.4; }
.discovery-state__title { font-size: var(--tx-lg); font-weight: var(--w7); color: var(--navy); }
.discovery-state__text { font-size: var(--tx-sm); color: var(--text-sec); max-width: 360px; margin-bottom: var(--s2); }

/* ─────────────────────────────────────────────────────────────
   DEMO DATA BANNER  (visible disclosure on directory pages)
───────────────────────────────────────────────────────────── */
.demo-banner {
  display: flex;
  align-items: center;
  gap: var(--s3);
  padding: var(--s3) var(--s5);
  background: rgba(255,209,102,0.12);
  border: 1px solid rgba(255,209,102,0.35);
  border-radius: var(--r-md);
  font-size: var(--tx-sm);
  color: #7A5F00;
  margin-bottom: var(--s8);
}
.demo-banner__icon { font-size: 16px; flex-shrink: 0; }

/* ─────────────────────────────────────────────────────────────
   BROWSE-BY GRIDS  (find-learning.html)
───────────────────────────────────────────────────────────── */
.browse-by-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--s4);
}
.browse-by-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--s2);
  padding: var(--s5) var(--s3);
  background: var(--white);
  border: 1px solid var(--border-solid);
  border-radius: var(--r-lg);
  text-decoration: none;
  color: var(--text-mid);
  text-align: center;
  transition: all var(--t-base) var(--ease);
}
.browse-by-card:hover {
  background: var(--maroon-pale);
  border-color: var(--maroon);
  color: var(--maroon-dark);
  transform: translateY(-3px);
  box-shadow: var(--shadow-sm);
}
.browse-by-card__icon {
  width: 96px;
  height: 96px;
  border-radius: var(--r-md);
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  transition: transform var(--t-fast);
  overflow: visible;
}

.browse-by-card__icon img {
  width: 150px;
  height: 150px;
  object-fit: contain;
  display: block;
}
.browse-by-card:hover .browse-by-card__icon { background: rgba(155,27,43,0.08); }
.browse-by-card__name { font-size: var(--tx-sm); font-weight: var(--w6); line-height: 1.2; }

/* Tab-style switcher for "browse by" sections */
.browse-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s2);
  margin-bottom: var(--s8);
  border-bottom: 1px solid var(--border-solid);
  padding-bottom: var(--s4);
}
.browse-tab {
  padding: var(--s2) var(--s5);
  border-radius: var(--r-full);
  font-size: var(--tx-sm);
  font-weight: var(--w6);
  color: var(--text-mid);
  background: transparent;
  border: 1.5px solid var(--border-solid);
  cursor: pointer;
  transition: all var(--t-fast) var(--ease);
}
.browse-tab:hover { border-color: var(--maroon); color: var(--maroon-dark); }
.browse-tab.is-active { background: var(--navy); border-color: var(--navy); color: var(--white); }

/* ─────────────────────────────────────────────────────────────
   PROVIDER CARD  (institutes — adds gallery + verified ribbon)
───────────────────────────────────────────────────────────── */
.provider-card {
  background: var(--white);
  border: 1px solid var(--border-solid);
  border-radius: var(--r-xl);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: box-shadow var(--t-base) var(--ease), transform var(--t-base) var(--ease);
}
.provider-card:hover { box-shadow: var(--shadow-md); transform: translateY(-3px); }
.provider-card__gallery {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 2px;
  height: 140px;
  background: var(--border-solid);
}
/* GALLERY: Replace each .provider-card__gallery-cell with <img src="..." alt="..."> when photos available */
.provider-card__gallery-cell {
  background: var(--bg);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.25rem;
  opacity: 0.25;
}
.provider-card__gallery-stack { display: grid; grid-template-rows: 1fr 1fr; gap: 2px; }
.provider-card__body { padding: var(--s6); display: flex; flex-direction: column; gap: var(--s3); flex: 1; }
.provider-card__top { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--s3); }
.provider-card__name { font-size: var(--tx-lg); font-weight: var(--w7); color: var(--navy); }
.provider-card__summary { font-size: var(--tx-sm); color: var(--text-sec); line-height: var(--lh-base); }
.provider-card__tags { display: flex; flex-wrap: wrap; gap: var(--s2); }
.provider-card__meta-row { display: flex; align-items: center; gap: var(--s2); font-size: var(--tx-sm); color: var(--text-sec); }
.provider-card__footer { padding: var(--s4) var(--s6) var(--s5); border-top: 1px solid var(--border-solid); margin-top: auto; }

/* ─────────────────────────────────────────────────────────────
   CAMP CARD
───────────────────────────────────────────────────────────── */
.camp-card {
  background: var(--white);
  border: 1px solid var(--border-solid);
  border-radius: var(--r-xl);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: box-shadow var(--t-base) var(--ease), transform var(--t-base) var(--ease);
}
.camp-card:hover { box-shadow: var(--shadow-md); transform: translateY(-3px); }
/* CAMP IMAGE: Replace .camp-card__img-placeholder with <img src="..." alt="..."> when available */
.camp-card__img-placeholder {
  width: 100%;
  aspect-ratio: 16/9;
  background: linear-gradient(135deg, rgba(34,197,94,0.10), rgba(255,209,102,0.10));
  display: flex; align-items: center; justify-content: center;
  font-size: 2rem;
  border-bottom: 1px solid var(--border-solid);
}
.camp-card__body { padding: var(--s6); display: flex; flex-direction: column; gap: var(--s3); flex: 1; }
.camp-card__name { font-size: var(--tx-lg); font-weight: var(--w7); color: var(--navy); }
.camp-card__summary { font-size: var(--tx-sm); color: var(--text-sec); line-height: var(--lh-base); }
.camp-card__info-row { display: flex; align-items: center; gap: var(--s2); font-size: var(--tx-sm); color: var(--text-sec); }
.camp-card__tags { display: flex; flex-wrap: wrap; gap: var(--s2); }
.camp-card__footer { padding: var(--s4) var(--s6) var(--s5); border-top: 1px solid var(--border-solid); margin-top: auto; }

/* ─────────────────────────────────────────────────────────────
   PROFILE TEMPLATE PAGE
───────────────────────────────────────────────────────────── */
.profile-hero {
  background: var(--grad-hero);
  padding-top: calc(72px + var(--s16));
  padding-bottom: var(--s16);
  position: relative;
  overflow: hidden;
}
.profile-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: linear-gradient(var(--ov-grid) 1px, transparent 1px), linear-gradient(90deg, var(--ov-grid) 1px, transparent 1px);
  background-size: 60px 60px;
  pointer-events: none;
}
.profile-hero__inner {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  gap: var(--s8);
  flex-wrap: wrap;
}
.profile-hero__avatar {
  width: 120px; height: 120px;
  border-radius: var(--r-full);
  background: rgba(255,255,255,0.10);
  border: 3px solid rgba(255,255,255,0.20);
  display: flex; align-items: center; justify-content: center;
  font-size: var(--tx-3xl);
  font-weight: var(--w8);
  color: var(--white);
  flex-shrink: 0;
}
.profile-hero__name {
  font-size: var(--tx-3xl);
  font-weight: var(--w8);
  color: var(--white);
  letter-spacing: var(--ls-tight);
  display: flex;
  align-items: center;
  gap: var(--s3);
  flex-wrap: wrap;
}
.profile-hero__role {
  font-size: var(--tx-md);
  color: rgba(255,255,255,0.65);
  margin-top: var(--s2);
}
.profile-hero__rating {
  display: flex;
  align-items: center;
  gap: var(--s2);
  margin-top: var(--s3);
  font-size: var(--tx-sm);
  color: var(--gold);
  font-weight: var(--w6);
}
.profile-hero__rating span { color: rgba(255,255,255,0.55); font-weight: var(--w4); }
.profile-verified-tag {
  display: inline-flex;
  align-items: center;
  gap: var(--s1);
  padding: 0.2rem 0.7rem;
  background: rgba(34,197,94,0.18);
  border: 1px solid rgba(34,197,94,0.40);
  border-radius: var(--r-full);
  font-size: var(--tx-xs);
  font-weight: var(--w6);
  color: #6FE3A0;
}

.profile-content-grid {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: var(--s10);
  align-items: start;
}
.profile-section { margin-bottom: var(--s10); }
.profile-section__title {
  font-size: var(--tx-xl);
  font-weight: var(--w7);
  color: var(--navy);
  margin-bottom: var(--s4);
}
.profile-section__body { font-size: var(--tx-base); color: var(--text-sec); line-height: var(--lh-base); }
.profile-tag-cloud { display: flex; flex-wrap: wrap; gap: var(--s2); }
.profile-fact-list { display: flex; flex-direction: column; gap: var(--s3); }
.profile-fact {
  display: flex;
  align-items: center;
  gap: var(--s3);
  padding: var(--s3) var(--s4);
  background: var(--bg);
  border-radius: var(--r-md);
  border: 1px solid var(--border-solid);
}
.profile-fact__icon { font-size: 16px; flex-shrink: 0; }
.profile-fact__label { font-size: var(--tx-xs); color: var(--text-light); }
.profile-fact__value { font-size: var(--tx-sm); font-weight: var(--w6); color: var(--navy); }

/* Sticky CTA sidebar */
.profile-cta-card {
  position: sticky;
  top: calc(72px + var(--s6));
  background: var(--white);
  border: 1px solid var(--border-solid);
  border-radius: var(--r-xl);
  padding: var(--s8);
  text-align: center;
  box-shadow: var(--shadow-sm);
}
.profile-cta-card__icon { font-size: 2rem; margin-bottom: var(--s3); }
.profile-cta-card__title { font-size: var(--tx-lg); font-weight: var(--w7); color: var(--navy); margin-bottom: var(--s2); }
.profile-cta-card__text { font-size: var(--tx-sm); color: var(--text-sec); margin-bottom: var(--s5); line-height: var(--lh-base); }
.profile-cta-card__note { font-size: var(--tx-xs); color: var(--text-light); margin-top: var(--s4); }

/* Related profiles strip */
.related-profiles-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--s5); }

/* ─────────────────────────────────────────────────────────────
   SUBJECTS / CURRICULA / AGE GROUPS LANDING PAGES
───────────────────────────────────────────────────────────── */
.landing-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--s5);
}
.landing-card {
  display: flex;
  flex-direction: column;
  gap: var(--s4);
  padding: var(--s6);
  background: var(--white);
  border: 1px solid var(--border-solid);
  border-radius: var(--r-xl);
  text-decoration: none;
  color: inherit;
  transition: box-shadow var(--t-base) var(--ease), transform var(--t-base) var(--ease);
}
.landing-card:hover { box-shadow: var(--shadow-md); transform: translateY(-3px); color: inherit; }
.landing-card__icon {
  width: 52px; height: 52px;
  border-radius: var(--r-md);
  display: flex; align-items: center; justify-content: center;
  font-size: 24px;
}
.landing-card__title { font-size: var(--tx-md); font-weight: var(--w7); color: var(--navy); }
.landing-card__desc { font-size: var(--tx-sm); color: var(--text-sec); line-height: var(--lh-base); flex: 1; }
.landing-card__count { font-size: var(--tx-xs); color: var(--text-light); font-weight: var(--w5); }

/* Curriculum cards — slightly larger, logo-style */
.curriculum-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--s5); }
.curriculum-card {
  display: flex;
  align-items: center;
  gap: var(--s5);
  padding: var(--s6) var(--s7);
  background: var(--white);
  border: 1px solid var(--border-solid);
  border-radius: var(--r-xl);
  text-decoration: none;
  color: inherit;
  transition: box-shadow var(--t-base) var(--ease), transform var(--t-base) var(--ease);
}
.curriculum-card:hover { box-shadow: var(--shadow-md); transform: translateY(-3px); color: inherit; }
.curriculum-card__badge {
  width: 56px; height: 56px;
  border-radius: var(--r-md);
  background: var(--navy);
  color: var(--white);
  display: flex; align-items: center; justify-content: center;
  font-size: var(--tx-sm);
  font-weight: var(--w8);
  flex-shrink: 0;
  letter-spacing: -0.02em;
}
.curriculum-card__name { font-size: var(--tx-md); font-weight: var(--w7); color: var(--navy); }
.curriculum-card__desc { font-size: var(--tx-xs); color: var(--text-light); margin-top: 2px; }

/* Age group cards */
.age-group-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--s5); }
.age-group-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: var(--s3);
  padding: var(--s8) var(--s5);
  background: var(--white);
  border: 1px solid var(--border-solid);
  border-radius: var(--r-xl);
  text-decoration: none;
  color: inherit;
  transition: box-shadow var(--t-base) var(--ease), transform var(--t-base) var(--ease);
}
.age-group-card:hover { box-shadow: var(--shadow-md); transform: translateY(-3px); color: inherit; }
.age-group-card__icon {
  width: 60px; height: 60px;
  border-radius: var(--r-full);
  display: flex; align-items: center; justify-content: center;
  font-size: 26px;
}
.age-group-card__range { font-size: var(--tx-xs); color: var(--maroon); font-weight: var(--w7); letter-spacing: var(--ls-wide); text-transform: uppercase; }
.age-group-card__title { font-size: var(--tx-md); font-weight: var(--w7); color: var(--navy); }
.age-group-card__desc { font-size: var(--tx-xs); color: var(--text-sec); line-height: var(--lh-base); }

/* ─────────────────────────────────────────────────────────────
   FIND-LEARNING HUB — section spacing helper
───────────────────────────────────────────────────────────── */
.hub-section-title-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin-bottom: var(--s6);
  flex-wrap: wrap;
  gap: var(--s3);
}
.hub-section-title-row h2 {
  font-size: var(--tx-xl);
  font-weight: var(--w7);
  color: var(--navy);
}

.hub-section-title-row a {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  font-size: var(--tx-sm);
  font-weight: var(--w7);
  color: var(--maroon);
  text-decoration: none;
  white-space: nowrap;
}

.hub-section-title-row a svg {
  width: 16px;
  height: 16px;
  flex: 0 0 auto;
  transition: transform 0.2s ease;
}

.hub-section-title-row a:hover {
  color: var(--maroon-dark);
}

.hub-section-title-row a:hover svg {
  transform: translateX(3px);
}

/* ─────────────────────────────────────────────────────────────
   RESPONSIVE — Sprint 4 discovery pages
───────────────────────────────────────────────────────────── */
@media (max-width: 1024px) {
  .discovery-grid          { grid-template-columns: repeat(2, 1fr); }
  .browse-by-grid          { grid-template-columns: repeat(3, 1fr); }
  .landing-grid            { grid-template-columns: repeat(2, 1fr); }
  .curriculum-grid         { grid-template-columns: repeat(2, 1fr); }
  .age-group-grid          { grid-template-columns: repeat(2, 1fr); }
  .related-profiles-grid   { grid-template-columns: repeat(2, 1fr); }
  .profile-content-grid    { grid-template-columns: 1fr; }
  .profile-cta-card        { position: static; }
}

@media (max-width: 768px) {
  .discovery-grid          { grid-template-columns: 1fr; }
  .browse-by-grid          { grid-template-columns: repeat(2, 1fr); }
  .landing-grid            { grid-template-columns: 1fr; }
  .curriculum-grid         { grid-template-columns: 1fr; }
  .age-group-grid          { grid-template-columns: repeat(2, 1fr); }
  .related-profiles-grid   { grid-template-columns: 1fr; }
  .discovery-toolbar       { padding: var(--s5); }
  .discovery-filter-row    { flex-direction: column; }
  .profile-hero__inner     { flex-direction: column; text-align: center; }
  .profile-hero__name      { justify-content: center; }
  .provider-card__gallery  { height: 110px; }
}

@media (max-width: 480px) {
  .browse-by-grid   { grid-template-columns: 1fr 1fr; }
  .age-group-grid   { grid-template-columns: 1fr; }
}

/* ═══════════════════════════════════════════════════════════
   LEARNING RESOURCES SECTION  (Sprint 5)
   All new rules appended below existing Sprint 1–4 rules.
   No existing rules modified.
═══════════════════════════════════════════════════════════ */

/* ─────────────────────────────────────────────────────────────
   EDITORIAL HERO  (Parent Hub / Educator Hub / Blog / Guides)
───────────────────────────────────────────────────────────── */
.editorial-hero {
  background: var(--grad-hero);
  padding-top: calc(72px + var(--s16));
  padding-bottom: var(--s16);
  position: relative;
  overflow: hidden;
}
.editorial-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: linear-gradient(var(--ov-grid) 1px, transparent 1px), linear-gradient(90deg, var(--ov-grid) 1px, transparent 1px);
  background-size: 60px 60px;
  pointer-events: none;
}
.editorial-hero__content { position: relative; z-index: 1; max-width: 720px; }
.editorial-hero__eyebrow { color: var(--gold); }
.editorial-hero__title {
  font-size: clamp(2rem, 4.5vw, 3.25rem);
  font-weight: var(--w8);
  color: var(--white);
  line-height: var(--lh-tight);
  letter-spacing: var(--ls-tight);
  margin-bottom: var(--s5);
}
.editorial-hero__title mark { background: none; color: var(--gold); }
.editorial-hero__sub {
  font-size: var(--tx-md);
  color: rgba(255,255,255,0.65);
  line-height: var(--lh-base);
}
.editorial-hero__search { max-width: 540px; margin-top: var(--s8); }

/* ─────────────────────────────────────────────────────────────
   GUIDE CARD
───────────────────────────────────────────────────────────── */
.guide-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--s5); }
.guide-card {
  background: var(--white);
  border: 1px solid var(--border-solid);
  border-radius: var(--r-xl);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: inherit;
  transition: box-shadow var(--t-base) var(--ease), transform var(--t-base) var(--ease);
}
.guide-card:hover { box-shadow: var(--shadow-md); transform: translateY(-3px); color: inherit; }
/* GUIDE IMAGE: Replace .guide-card__img with <img src="..." alt="..."> when photography is available */
.guide-card__img {
  display: block;
  width: 100%;
  aspect-ratio: 16/10;
  object-fit: cover;
  border-bottom: 1px solid var(--border-solid);
}
.guide-card__body { padding: var(--s6); display: flex; flex-direction: column; gap: var(--s3); flex: 1; }
.guide-card__category {
  font-size: var(--tx-xs);
  font-weight: var(--w7);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--maroon);
}
.guide-card__title { font-size: var(--tx-lg); font-weight: var(--w7); color: var(--navy); line-height: var(--lh-snug); }
.guide-card__desc { font-size: var(--tx-sm); color: var(--text-sec); line-height: var(--lh-base); flex: 1; }
.guide-card__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: var(--s3);
  border-top: 1px solid var(--border-solid);
  margin-top: var(--s2);
}
.guide-card__meta { font-size: var(--tx-xs); color: var(--text-light); }
.guide-card__cta { font-size: var(--tx-sm); font-weight: var(--w7); color: var(--maroon); display: flex; align-items: center; gap: var(--s1); }
.guide-card__cta svg { width: 13px; height: 13px; transition: transform var(--t-fast); }
.guide-card:hover .guide-card__cta svg { transform: translateX(3px); }

/* ─────────────────────────────────────────────────────────────
   ARTICLE CARD  (blog index, hub featured articles)
───────────────────────────────────────────────────────────── */
.article-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--s5); }
.article-card {
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: inherit;
}
/* ARTICLE IMAGE: Replace .article-card__img with <img src="..." alt="..."> when photography is available */
.article-card__img {
  width: 100%;
  aspect-ratio: 16/10;
  background: var(--bg);
  border-radius: var(--r-lg);
  display: flex; align-items: center; justify-content: center;
  font-size: 1.75rem;
  opacity: 0.35;
  margin-bottom: var(--s4);
  border: 1px solid var(--border-solid);
}
.article-card__img--image {
  padding: 0;
  overflow: hidden;
  opacity: 1;
  display: block;
}
.article-card__img--image img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}
.article-card__category {
  font-size: var(--tx-xs);
  font-weight: var(--w7);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--maroon);
  margin-bottom: var(--s2);
}
.article-card__title { font-size: var(--tx-md); font-weight: var(--w7); color: var(--navy); line-height: var(--lh-snug); margin-bottom: var(--s2); }
.article-card__excerpt { font-size: var(--tx-sm); color: var(--text-sec); line-height: var(--lh-base); margin-bottom: var(--s3); }
.article-card__meta { display: flex; align-items: center; gap: var(--s3); font-size: var(--tx-xs); color: var(--text-light); }
.article-card__meta-sep { opacity: 0.5; }

/* ─────────────────────────────────────────────────────────────
   FEATURED ARTICLE  (large hero card on blog index)
───────────────────────────────────────────────────────────── */
.featured-article {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: var(--s10);
  align-items: center;
  background: var(--white);
  border: 1px solid var(--border-solid);
  border-radius: var(--r-2xl);
  overflow: hidden;
  margin-bottom: var(--s16);
}
/* FEATURED IMAGE: Replace .featured-article__img with <img src="..." alt="..."> when photography is available */
.featured-article__img {
  width: 100%;
  height: 100%;
  min-height: 320px;
  background: linear-gradient(135deg, var(--maroon-pale), rgba(255,209,102,0.10));
  display: flex; align-items: center; justify-content: center;
  font-size: 2.5rem;
  opacity: 0.4;
}
.featured-article__body { padding: var(--s10) var(--s10) var(--s10) 0; }
.featured-article__badge {
  display: inline-flex;
  align-items: center;
  gap: var(--s2);
  padding: 0.25rem 0.75rem;
  background: var(--maroon-pale);
  color: var(--maroon);
  border-radius: var(--r-full);
  font-size: var(--tx-xs);
  font-weight: var(--w7);
  letter-spacing: 0.03em;
  margin-bottom: var(--s4);
}
.featured-article__title { font-size: var(--tx-2xl); font-weight: var(--w8); color: var(--navy); line-height: var(--lh-snug); margin-bottom: var(--s4); letter-spacing: var(--ls-tight); }
.featured-article__excerpt { font-size: var(--tx-base); color: var(--text-sec); line-height: var(--lh-base); margin-bottom: var(--s5); }
.featured-article__meta { display: flex; align-items: center; gap: var(--s3); font-size: var(--tx-sm); color: var(--text-light); margin-bottom: var(--s6); }
.featured-article__author-avatar { width: 32px; height: 32px; border-radius: 50%; background: var(--navy-pale); flex-shrink: 0; }

/* ─────────────────────────────────────────────────────────────
   BLOG INDEX — categories + search
───────────────────────────────────────────────────────────── */
.blog-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s5);
  margin-bottom: var(--s10);
  flex-wrap: wrap;
}
.blog-categories { display: flex; gap: var(--s2); flex-wrap: wrap; }
.blog-category-pill {
  padding: 0.4rem 1rem;
  border-radius: var(--r-full);
  font-size: var(--tx-sm);
  font-weight: var(--w6);
  color: var(--text-mid);
  background: var(--white);
  border: 1px solid var(--border-solid);
  cursor: pointer;
  text-decoration: none;
  transition: all var(--t-fast) var(--ease);
}
.blog-category-pill:hover, .blog-category-pill.is-active {
  background: var(--maroon);
  border-color: var(--maroon);
  color: var(--white);
}
.blog-search { max-width: 280px; }

/* ─────────────────────────────────────────────────────────────
   NEWSLETTER BLOCK
───────────────────────────────────────────────────────────── */
.newsletter-block {
  background: var(--navy);
  border-radius: var(--r-2xl);
  padding: var(--s12) var(--s10);
  text-align: center;
  position: relative;
  overflow: hidden;
}
.newsletter-block::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: linear-gradient(var(--ov-grid) 1px, transparent 1px), linear-gradient(90deg, var(--ov-grid) 1px, transparent 1px);
  background-size: 50px 50px;
  pointer-events: none;
}
.newsletter-block__content { position: relative; z-index: 1; max-width: 480px; margin-inline: auto; }
.newsletter-block__icon { font-size: 2.25rem; margin-bottom: var(--s4); }
.newsletter-block__title { font-size: var(--tx-2xl); font-weight: var(--w8); color: var(--white); margin-bottom: var(--s3); letter-spacing: var(--ls-tight); }
.newsletter-block__desc { font-size: var(--tx-sm); color: rgba(255,255,255,0.60); margin-bottom: var(--s6); line-height: var(--lh-base); }
/* NEWSLETTER FORM: Currently a static placeholder. Wire to a real email service
   (e.g. Mailchimp, Klaviyo) when ready — form action and endpoint to be added. */
.newsletter-form {
  display: flex;
  gap: var(--s3);
  max-width: 420px;
  margin-inline: auto;
}
.newsletter-form input {
  flex: 1;
  padding: var(--s3) var(--s5);
  border-radius: var(--r-full);
  border: 1.5px solid rgba(255,255,255,0.15);
  background: rgba(255,255,255,0.08);
  color: var(--white);
  font-family: var(--font);
  font-size: var(--tx-sm);
}
.newsletter-form input::placeholder { color: rgba(255,255,255,0.40); }
.newsletter-form input:focus { outline: none; border-color: var(--gold); }
.newsletter-block__note { font-size: var(--tx-xs); color: rgba(255,255,255,0.35); margin-top: var(--s4); }

/* ─────────────────────────────────────────────────────────────
   BLOG POST TEMPLATE
───────────────────────────────────────────────────────────── */
.post-hero { background: var(--white); padding-top: calc(72px + var(--s10)); padding-bottom: 0; }
.post-hero__meta-row { display: flex; align-items: center; gap: var(--s3); margin-bottom: var(--s5); flex-wrap: wrap; }
.post-hero__category {
  padding: 0.25rem 0.85rem;
  background: var(--maroon-pale);
  color: var(--maroon);
  border-radius: var(--r-full);
  font-size: var(--tx-xs);
  font-weight: var(--w7);
  letter-spacing: 0.03em;
}
.post-hero__reading-time { font-size: var(--tx-sm); color: var(--text-light); }
.post-hero__title {
  font-size: clamp(1.875rem, 4vw, 2.75rem);
  font-weight: var(--w8);
  color: var(--navy);
  line-height: var(--lh-tight);
  letter-spacing: var(--ls-tight);
  margin-bottom: var(--s6);
  max-width: 800px;
}
.post-hero__author-row { display: flex; align-items: center; gap: var(--s3); margin-bottom: var(--s8); }
.post-hero__author-avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--maroon);
  color: var(--white);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 1rem;
  font-weight: var(--w8);
  letter-spacing: -0.02em;
  box-shadow: 0 4px 12px rgba(94, 22, 45, 0.16);
}
.post-hero__author-name { font-size: var(--tx-sm); font-weight: var(--w7); color: var(--navy); }
.post-hero__author-date { font-size: var(--tx-xs); color: var(--text-light); }


/* Guide hero image */
.post-hero__img {
  display: block;
  width: 100%;
  max-width: 1000px;
  height: 500px;
  margin: 0 auto var(--s4);
  object-fit: cover;
  object-position: center;
  border-radius: var(--r-xl);
  box-shadow: var(--shadow-lg);
}
.post-hero__img-caption { font-size: var(--tx-xs); color: var(--text-light); text-align: center; margin-bottom: var(--s12); }

/* Learning Guide hero refinements */
.guide-page .post-hero {
  padding-top: calc(72px + var(--s8));
}

.guide-page .post-hero__meta-row {
  margin-bottom: var(--s4);
}

.guide-page .post-hero__title {
  line-height: 1.12;
  margin-bottom: var(--s5);
}

.guide-page .post-hero__author-row {
  margin-bottom: var(--s6);
}

.guide-page .post-hero__img {
  height: 420px;
}

@media (max-width: 1024px) {
  .guide-page .post-hero__img {
    height: 360px;
  }
}

@media (max-width: 768px) {
  .guide-page .post-hero {
    padding-top: calc(72px + var(--s6));
  }

  .guide-page .post-hero__title {
    line-height: 1.15;
    margin-bottom: var(--s4);
  }

  .guide-page .post-hero__author-row {
    margin-bottom: var(--s5);
  }

  .guide-page .post-hero__img {
    height: 280px;
    border-radius: var(--r-lg);
  }
}

.post-body { max-width: 720px; margin-inline: auto; }
.post-body__placeholder {
  border: 2px dashed var(--border-solid);
  border-radius: var(--r-lg);
  padding: var(--s12) var(--s8);
  text-align: center;
  background: var(--bg);
}
.post-body__placeholder-icon { font-size: 2rem; opacity: 0.3; margin-bottom: var(--s3); }
.post-body__placeholder-title { font-size: var(--tx-lg); font-weight: var(--w7); color: var(--navy); margin-bottom: var(--s2); }
.post-body__placeholder-text { font-size: var(--tx-sm); color: var(--text-sec); max-width: 440px; margin-inline: auto; }

/* Share buttons */
.share-row {
  display: flex;
  align-items: center;
  gap: var(--s3);
  padding: var(--s6) 0;
  border-top: 1px solid var(--border-solid);
  border-bottom: 1px solid var(--border-solid);
  margin-block: var(--s10);
}
.share-row__label { font-size: var(--tx-sm); font-weight: var(--w6); color: var(--text-mid); margin-right: var(--s2); }
.share-btn {
  width: 38px; height: 38px;
  border-radius: 50%;
  background: var(--bg);
  border: 1px solid var(--border-solid);
  display: flex; align-items: center; justify-content: center;
  font-size: 15px;
  color: var(--text-mid);
  cursor: pointer;
  text-decoration: none;
  transition: all var(--t-fast) var(--ease);
}
.share-btn:hover { background: var(--maroon); border-color: var(--maroon); color: var(--white); }

/* Related reading */
.related-reading-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--s5); }


/* Learning Guide related-card refinements */
.guide-page #guide-related-section .guide-card {
  border-color: rgba(17, 36, 71, 0.11);
  box-shadow: 0 2px 8px rgba(17, 36, 71, 0.04);
}

.guide-page #guide-related-section .guide-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 30px rgba(17, 36, 71, 0.11);
}

.guide-page #guide-related-section .guide-card__img {
  aspect-ratio: 16 / 9;
}

.guide-page #guide-related-section .guide-card__body {
  padding: var(--s5) var(--s6) var(--s6);
  gap: var(--s3);
}

.guide-page #guide-related-section .guide-card__title {
  min-height: 2.7em;
}

.guide-page #guide-related-section .guide-card__desc {
  margin-bottom: var(--s2);
}

.guide-page #guide-related-section .guide-card__footer {
  padding-top: var(--s4);
  margin-top: auto;
}

@media (max-width: 768px) {
  .guide-page #guide-related-section .guide-card__title {
    min-height: 0;
  }
}

/* ─────────────────────────────────────────────────────────────
   FAQ CENTRE
───────────────────────────────────────────────────────────── */
.faq-search-wrap { max-width: 600px; margin: var(--s8) auto 0; }
.faq-category-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--s5); }
.faq-category-card {
  background: var(--white);
  border: 1px solid var(--border-solid);
  border-radius: var(--r-xl);
  padding: var(--s6);
  display: flex;
  align-items: center;
  gap: var(--s4);
  text-decoration: none;
  color: inherit;
  transition: box-shadow var(--t-base) var(--ease), transform var(--t-base) var(--ease);
}
.faq-category-card:hover { box-shadow: var(--shadow-md); transform: translateY(-3px); color: inherit; }
.faq-category-card__icon {
  width: 52px; height: 52px;
  border-radius: var(--r-md);
  display: flex; align-items: center; justify-content: center;
  font-size: 24px;
  flex-shrink: 0;
}
.faq-category-card__title { font-size: var(--tx-md); font-weight: var(--w7); color: var(--navy); }
.faq-category-card__count { font-size: var(--tx-xs); color: var(--text-light); }

/* FAQ accordion */
.faq-category-section {
  margin-bottom: var(--s8);
}

.faq-category-section:last-child {
  margin-bottom: var(--s16);
}

.faq-section-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s5);
  padding: var(--s5) 0;
  border-bottom: 2px solid var(--border-solid);
  cursor: pointer;
  list-style: none;
  color: var(--navy);
}

.faq-section-title::-webkit-details-marker {
  display: none;
}

.faq-section-title::marker {
  content: "";
}

.faq-section-title:focus {
  outline: none;
}

.faq-section-title:focus-visible {
  outline: 2px solid var(--maroon);
  outline-offset: 5px;
  border-radius: var(--r-sm);
}

.faq-section-title__text {
  font-size: var(--tx-xl);
  font-weight: var(--w7);
}

.faq-section-title__meta {
  display: flex;
  align-items: center;
  gap: var(--s4);
  flex-shrink: 0;
}

.faq-section-title__count {
  font-size: var(--tx-xs);
  font-weight: var(--w6);
  color: var(--text-light);
}

.faq-section-title__indicator {
  position: relative;
  width: 30px;
  height: 30px;
  flex-shrink: 0;
  border: 1px solid var(--border-solid);
  border-radius: 50%;
  background: var(--bg);
}

.faq-section-title__indicator::before,
.faq-section-title__indicator::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 12px;
  height: 2px;
  border-radius: 999px;
  background: var(--maroon);
  transform: translate(-50%, -50%);
  transition: transform var(--t-base) var(--ease);
}

.faq-section-title__indicator::after {
  transform: translate(-50%, -50%) rotate(90deg);
}

.faq-category-section[open] .faq-section-title {
  margin-bottom: var(--s6);
}

.faq-category-section[open] .faq-section-title__indicator {
  background: var(--maroon);
  border-color: var(--maroon);
}

.faq-category-section[open] .faq-section-title__indicator::before,
.faq-category-section[open] .faq-section-title__indicator::after {
  background: var(--white);
}

.faq-category-section[open] .faq-section-title__indicator::after {
  transform: translate(-50%, -50%) rotate(0deg);
}

@media (max-width: 768px) {
  .faq-section-title {
    gap: var(--s3);
  }

  .faq-section-title__text {
    font-size: var(--tx-lg);
  }

  .faq-section-title__count {
    display: none;
  }

  .faq-section-title__indicator {
    width: 28px;
    height: 28px;
  }
}

.faq-list {
  display: flex;
  flex-direction: column;
  gap: var(--s3);
  margin-bottom: var(--s16);
}

.faq-item {
  background: var(--white);
  border: 1px solid var(--border-solid);
  border-radius: var(--r-lg);
  overflow: hidden;
  transition:
    border-color var(--t-base) var(--ease),
    box-shadow var(--t-base) var(--ease),
    transform var(--t-base) var(--ease);
}

.faq-item:hover {
  border-color: rgba(174, 24, 43, 0.3);
  box-shadow: var(--shadow-sm);
}

.faq-item[open] {
  border-color: rgba(174, 24, 43, 0.35);
  box-shadow: var(--shadow-sm);
}

.faq-item__q {
  width: 100%;
  min-height: 68px;
  padding: var(--s5) var(--s6);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s5);
  cursor: pointer;
  list-style: none;
  font-size: var(--tx-md);
  font-weight: var(--w7);
  line-height: 1.45;
  color: var(--navy);
  background: var(--white);
}

.faq-item__q::-webkit-details-marker {
  display: none;
}

.faq-item__q::marker {
  content: "";
}

.faq-item__q:focus {
  outline: none;
}

.faq-item__q:focus-visible {
  box-shadow: inset 0 0 0 2px var(--maroon);
  border-radius: var(--r-lg);
}

.faq-item[open] .faq-item__q {
  border-bottom: 1px solid var(--border-solid);
}

.faq-item__q-content {
  display: flex;
  align-items: flex-start;
  gap: var(--s3);
  flex: 1;
  min-width: 0;
}

.faq-item__q-mark {
  color: var(--maroon);
  flex-shrink: 0;
  font-weight: var(--w7);
}

.faq-item__indicator {
  position: relative;
  width: 30px;
  height: 30px;
  flex-shrink: 0;
  border-radius: 50%;
  background: var(--bg);
  border: 1px solid var(--border-solid);
  transition:
    background var(--t-base) var(--ease),
    border-color var(--t-base) var(--ease);
}

.faq-item__indicator::before,
.faq-item__indicator::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 12px;
  height: 2px;
  background: var(--maroon);
  border-radius: 999px;
  transform: translate(-50%, -50%);
  transition: transform var(--t-base) var(--ease);
}

.faq-item__indicator::after {
  transform: translate(-50%, -50%) rotate(90deg);
}

.faq-item[open] .faq-item__indicator {
  background: var(--maroon);
  border-color: var(--maroon);
}

.faq-item[open] .faq-item__indicator::before,
.faq-item[open] .faq-item__indicator::after {
  background: var(--white);
}

.faq-item[open] .faq-item__indicator::after {
  transform: translate(-50%, -50%) rotate(0deg);
}

.faq-item__a {
  padding: var(--s5) var(--s6) var(--s6);
  padding-left: calc(var(--s6) + 2rem);
  font-size: var(--tx-sm);
  color: var(--text-sec);
  line-height: 1.8;
  background: rgba(248, 249, 251, 0.55);
}

.faq-item__a p {
  margin: 0;
  max-width: 980px;
}

@media (max-width: 768px) {
  .faq-item__q {
    min-height: 60px;
    padding: var(--s4) var(--s5);
    gap: var(--s3);
    font-size: var(--tx-sm);
  }

  .faq-item__indicator {
    width: 28px;
    height: 28px;
  }

  .faq-item__a {
    padding: var(--s4) var(--s5) var(--s5);
    padding-left: var(--s5);
  }
}

/* ─────────────────────────────────────────────────────────────
   PRACTICE / TOPIC TILE  (Educator Hub sections)
───────────────────────────────────────────────────────────── */
.practice-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--s5); }
.practice-tile {
  display: flex;
  gap: var(--s5);
  padding: var(--s6);
  background: var(--white);
  border: 1px solid var(--border-solid);
  border-radius: var(--r-xl);
  text-decoration: none;
  color: inherit;
  transition: box-shadow var(--t-base) var(--ease);
}
.practice-tile:hover { box-shadow: var(--shadow-sm); color: inherit; }
.practice-tile__icon {
  width: 52px; height: 52px;
  border-radius: var(--r-md);
  display: flex; align-items: center; justify-content: center;
  font-size: 24px;
  flex-shrink: 0;
}
.practice-tile__title { font-size: var(--tx-md); font-weight: var(--w7); color: var(--navy); margin-bottom: var(--s1); }
.practice-tile__desc { font-size: var(--tx-sm); color: var(--text-sec); line-height: var(--lh-base); }

/* ─────────────────────────────────────────────────────────────
   PARENT / TUTOR STORY PLACEHOLDER STRIP (reuses .story-card from Sprint 1
   home.css indirectly via similar pattern — defined locally here for hub pages)
───────────────────────────────────────────────────────────── */
.hub-story-card {
  background: var(--white);
  border: 1px solid var(--border-solid);
  border-radius: var(--r-xl);
  padding: var(--s7);
  display: flex;
  flex-direction: column;
  gap: var(--s4);
}
.hub-story-card__placeholder {
  border: 2px dashed var(--border-solid);
  border-radius: var(--r-md);
  padding: var(--s6);
  text-align: center;
  font-size: var(--tx-sm);
  color: var(--navy);
  font-style: italic;
  flex: 1;
}

/* ─────────────────────────────────────────────────────────────
   RESPONSIVE — Sprint 5 Learning Resources
───────────────────────────────────────────────────────────── */
@media (max-width: 1024px) {
  .guide-grid             { grid-template-columns: repeat(2, 1fr); }
  .article-grid           { grid-template-columns: repeat(2, 1fr); }
  .featured-article       { grid-template-columns: 1fr; }
  .featured-article__img  { min-height: 220px; }
  .featured-article__body { padding: var(--s8); }
  .faq-category-grid      { grid-template-columns: repeat(2, 1fr); }
  .practice-grid          { grid-template-columns: 1fr; }
  .related-reading-grid   { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 768px) {
  .guide-grid           { grid-template-columns: 1fr; }
  .article-grid         { grid-template-columns: 1fr; }
  .faq-category-grid    { grid-template-columns: 1fr; }
  .related-reading-grid { grid-template-columns: 1fr; }
  .blog-toolbar         { flex-direction: column; align-items: stretch; }
  .blog-search          { max-width: 100%; }
  .newsletter-form      { flex-direction: column; }
  .newsletter-block     { padding: var(--s8) var(--s5); }
  .post-hero__title     { font-size: var(--tx-2xl); }
  .share-row            { flex-wrap: wrap; }
  .editorial-hero       { padding-top: calc(72px + var(--s10)); padding-bottom: var(--s10); }
}

/* ═══════════════════════════════════════════════════════════
   CONVERSION & SUPPORT LAYER  (Sprint 6)
   All new rules appended below existing Sprint 1–5 rules.
   No existing rules modified.
═══════════════════════════════════════════════════════════ */

/* ─────────────────────────────────────────────────────────────
   APP DOWNLOAD LANDING PAGE
───────────────────────────────────────────────────────────── */
.app-hero {
  background: var(--grad-hero);
  padding-top: calc(72px + var(--s16));
  padding-bottom: var(--s20);
  position: relative;
  overflow: hidden;
}
.app-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: linear-gradient(var(--ov-grid) 1px, transparent 1px), linear-gradient(90deg, var(--ov-grid) 1px, transparent 1px);
  background-size: 60px 60px;
  pointer-events: none;
}
.app-hero-glow { position: absolute; border-radius: 50%; filter: blur(90px); pointer-events: none; }
.app-hero-glow--maroon { width: 480px; height: 480px; background: var(--ov-maroon); top: -120px; right: -80px; }
.app-hero-glow--gold   { width: 320px; height: 320px; background: var(--ov-gold); bottom: -60px; left: -50px; }
.app-hero__inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: var(--s16);
  align-items: center;
}
.app-hero__title {
  font-size: clamp(2rem, 4.2vw, 3.25rem);
  font-weight: var(--w8);
  color: var(--white);
  line-height: var(--lh-tight);
  letter-spacing: var(--ls-tight);
  margin-bottom: var(--s5);
}
.app-hero__title mark { background: none; color: var(--gold); }
.app-hero__sub { font-size: var(--tx-md); color: rgba(255,255,255,0.65); line-height: var(--lh-base); margin-bottom: var(--s8); max-width: 480px; }
.app-hero__btns { display: flex; gap: var(--s4); flex-wrap: wrap; margin-bottom: var(--s8); }
.app-hero__qr-row { display: flex; align-items: center; gap: var(--s4); }
.app-hero__qr-row .qr-box { width: 88px; height: 88px; }
.app-hero__qr-row .qr-box__grid { width: 56px; }
.app-hero__qr-text { font-size: var(--tx-sm); color: rgba(255,255,255,0.55); max-width: 220px; }

/* Screenshot showcase */
.app-hero__visual { display: flex; justify-content: center; }
.app-screens-wrap { position: relative; width: 320px; height: 460px; }
/* SCREENSHOTS: Replace .app-screen__placeholder content with real <img> tags once
   App Store / Play Store screenshots are produced. Three-phone stagger preserved. */
.app-screen {
  position: absolute;
  border-radius: 30px;
  background: var(--navy-deep);
  border: 2px solid rgba(255,255,255,0.10);
  box-shadow: var(--shadow-phone);
  overflow: hidden;
}
.app-screen--center { width: 200px; left: 50%; top: 50%; transform: translate(-50%, -50%); z-index: 3; }
.app-screen--left   { width: 170px; left: 6%;  top: 50%; transform: translateY(-44%) rotate(-9deg); z-index: 1; opacity: 0.55; }
.app-screen--right  { width: 170px; right: 6%; top: 50%; transform: translateY(-56%) rotate(9deg);  z-index: 2; opacity: 0.75; }
.app-screen__placeholder {
  width: 100%; min-height: 340px;
  background: linear-gradient(175deg, var(--navy-mid) 0%, var(--navy) 100%);
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: var(--s2); padding: var(--s4);
}
/* Real screenshot img — replaces placeholder; aspect ratio matches phone screen */
.app-screen > img {
  width: 100%;
  aspect-ratio: 9 / 19.5;   /* iPhone-class screen ratio */
  object-fit: cover;
  object-position: top;
  display: block;
}
.app-screen__icon { font-size: 1.75rem; opacity: 0.4; }
.app-screen__label { font-size: 9px; color: rgba(255,255,255,0.35); letter-spacing: 0.05em; text-align: center; }

/* Benefit columns (Parents / Educators) */
.benefit-columns { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s8); }
.benefit-column {
  background: var(--white);
  border: 1px solid var(--border-solid);
  border-radius: var(--r-xl);
  padding: var(--s8);
}
.benefit-column__header { display: flex; align-items: center; gap: var(--s4); margin-bottom: var(--s6); padding-bottom: var(--s5); border-bottom: 1px solid var(--border-solid); }
.benefit-column__icon { width: 52px; height: 52px; border-radius: var(--r-md); display: flex; align-items: center; justify-content: center; font-size: 24px; flex-shrink: 0; }
.benefit-column__title { font-size: var(--tx-xl); font-weight: var(--w7); color: var(--navy); }
.benefit-column__subtitle { font-size: var(--tx-sm); color: var(--text-light); }
.benefit-list { display: flex; flex-direction: column; gap: var(--s4); }
.benefit-list__item { display: flex; align-items: flex-start; gap: var(--s3); }
.benefit-list__check {
  width: 24px; height: 24px;
  border-radius: 50%;
  background: rgba(34,197,94,0.12);
  border: 1px solid rgba(34,197,94,0.30);
  display: flex; align-items: center; justify-content: center;
  font-size: 11px; color: var(--success);
  flex-shrink: 0; margin-top: 2px;
}
.benefit-list__text { font-size: var(--tx-sm); color: var(--text-sec); line-height: var(--lh-base); }
.benefit-list__text strong { color: var(--navy); font-weight: var(--w6); }

/* ─────────────────────────────────────────────────────────────
   CONTACT PAGE
───────────────────────────────────────────────────────────── */
.contact-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--s5);
  align-items: start;
}

.contact-card {
  position: relative;
  background: var(--white);
  border: 1px solid var(--border-solid);
  border-radius: var(--r-xl);
  padding: var(--s7);
  display: flex;
  flex-direction: column;
  gap: var(--s4);
  min-width: 0;
  transition:
    transform var(--t-base) var(--ease),
    box-shadow var(--t-base) var(--ease),
    border-color var(--t-base) var(--ease);
}

.contact-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow-md);
  border-color: rgba(174, 24, 43, 0.22);
}

.contact-card__icon {
  width: 52px;
  height: 52px;
  border-radius: var(--r-md);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  flex-shrink: 0;
}

.contact-card__title {
  font-size: var(--tx-md);
  font-weight: var(--w7);
  line-height: 1.4;
  color: var(--navy);
}

.contact-card__desc {
  font-size: var(--tx-sm);
  color: var(--text-sec);
  line-height: var(--lh-base);
  margin-bottom: var(--s2);
}

.contact-card__row {
  display: flex;
  align-items: flex-start;
  gap: var(--s3);
  padding: var(--s3) var(--s4);
  background: var(--bg);
  border: 1px solid transparent;
  border-radius: var(--r-md);
  font-size: var(--tx-xs);
  line-height: 1.55;
  color: var(--text-light);
  overflow-wrap: anywhere;
  transition:
    background var(--t-base) var(--ease),
    border-color var(--t-base) var(--ease);
}

.contact-card__row:hover {
  background: var(--white);
  border-color: var(--border-solid);
}

.contact-card__row > span:first-child {
  flex-shrink: 0;
  margin-top: 1px;
}

.contact-card__label {
  color: var(--maroon);
  font-weight: var(--w6);
  text-decoration: none;
  overflow-wrap: anywhere;
}

.contact-card__label:hover {
  text-decoration: underline;
}

@media (max-width: 768px) {
  .contact-card {
    padding: var(--s6);
  }

  .contact-card__title,
  .contact-card__desc {
    min-height: 0;
  }
}

/* Contact form placeholder */
.contact-form-card {
  background: var(--white);
  border: 1px solid var(--border-solid);
  border-radius: var(--r-2xl);
  padding: var(--s10);
}
.contact-form-placeholder {
  border: 2px dashed var(--border-solid);
  border-radius: var(--r-lg);
  padding: var(--s10);
  text-align: center;
  background: var(--bg);
}
.contact-form-placeholder__icon { font-size: 2rem; opacity: 0.3; margin-bottom: var(--s3); }
.contact-form-placeholder__title { font-size: var(--tx-lg); font-weight: var(--w7); color: var(--navy); margin-bottom: var(--s2); }
.contact-form-placeholder__text { font-size: var(--tx-sm); color: var(--text-sec); max-width: 420px; margin-inline: auto; }
/* Static visual-only form fields — not wired to any submission endpoint */
.contact-form-mock { display: flex; flex-direction: column; gap: var(--s4); margin-top: var(--s8); opacity: 0.6; }
.contact-form-mock input, .contact-form-mock select, .contact-form-mock textarea {
  padding: var(--s3) var(--s4);
  border-radius: var(--r-md);
  border: 1.5px solid var(--border-solid);
  background: var(--white);
  font-family: var(--font);
  font-size: var(--tx-sm);
  color: var(--text-mid);
  width: 100%;
}
.contact-form-mock label { font-size: var(--tx-xs); font-weight: var(--w6); color: var(--text-mid); margin-bottom: var(--s1); display: block; }

/* ─────────────────────────────────────────────────────────────
   LEGAL HUB
───────────────────────────────────────────────────────────── */
.legal-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--s5); }
.legal-card {
  background: var(--white);
  border: 1px solid var(--border-solid);
  border-radius: var(--r-xl);
  padding: var(--s7);
  display: flex;
  flex-direction: column;
  gap: var(--s4);
  text-decoration: none;
  color: inherit;
  transition: box-shadow var(--t-base) var(--ease), transform var(--t-base) var(--ease);
}
.legal-card:hover { box-shadow: var(--shadow-md); transform: translateY(-3px); color: inherit; }
.legal-card__icon { width: 52px; height: 52px; border-radius: var(--r-md); display: flex; align-items: center; justify-content: center; font-size: 24px; }
.legal-card__title { font-size: var(--tx-md); font-weight: var(--w7); color: var(--navy); }
.legal-card__desc { font-size: var(--tx-sm); color: var(--text-sec); line-height: var(--lh-base); flex: 1; }
.legal-card__updated { font-size: var(--tx-xs); color: var(--text-light); }

/* ─────────────────────────────────────────────────────────────
   LEGAL ARTICLE  (Terms / Privacy / Refunds / Account Deletion / Pricing)
───────────────────────────────────────────────────────────── */
.legal-article-layout { display: grid; grid-template-columns: 260px 1fr; gap: var(--s12); align-items: start; }
.legal-toc {
  position: sticky;
  top: calc(72px + var(--s6));
  background: var(--bg);
  border: 1px solid var(--border-solid);
  border-radius: var(--r-lg);
  padding: var(--s5);
}
.legal-toc__title { font-size: var(--tx-xs); font-weight: var(--w7); letter-spacing: var(--ls-wide); text-transform: uppercase; color: var(--text-light); margin-bottom: var(--s3); }
.legal-toc__list { display: flex; flex-direction: column; gap: var(--s2); }
.legal-toc__link { font-size: var(--tx-sm); color: var(--text-mid); text-decoration: none; padding: var(--s1) 0; transition: color var(--t-fast); }
.legal-toc__link:hover { color: var(--maroon); }

.legal-content { max-width: 720px; }
.legal-content__updated {
  display: inline-flex;
  align-items: center;
  gap: var(--s2);
  padding: 0.3rem 0.85rem;
  background: var(--bg);
  border-radius: var(--r-full);
  font-size: var(--tx-xs);
  color: var(--text-light);
  margin-bottom: var(--s8);
}
.legal-section { margin-bottom: var(--s10); }
.legal-section__title { font-size: var(--tx-xl); font-weight: var(--w7); color: var(--navy); margin-bottom: var(--s4); padding-top: var(--s2); }
.legal-section__body { font-size: var(--tx-base); color: var(--text-sec); line-height: var(--lh-base); }
.legal-section__body p { margin-bottom: var(--s4); }
.legal-section__body ul { display: flex; flex-direction: column; gap: var(--s2); margin: var(--s4) 0; padding-left: var(--s5); list-style: disc; }
.legal-section__body li { font-size: var(--tx-base); color: var(--text-sec); line-height: var(--lh-base); }

.legal-placeholder-notice {
  display: flex;
  align-items: flex-start;
  gap: var(--s4);
  padding: var(--s5) var(--s6);
  background: rgba(255,209,102,0.10);
  border: 1px solid rgba(255,209,102,0.30);
  border-radius: var(--r-md);
  margin-bottom: var(--s10);
}
.legal-placeholder-notice__icon { font-size: 18px; flex-shrink: 0; }
.legal-placeholder-notice__text { font-size: var(--tx-sm); color: #7A5F00; line-height: var(--lh-base); }

/* ─────────────────────────────────────────────────────────────
   PRICING PAGE
───────────────────────────────────────────────────────────── */
.pricing-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--s5); }
.pricing-card {
  background: var(--white);
  border: 1px solid var(--border-solid);
  border-radius: var(--r-xl);
  padding: var(--s8);
  display: flex;
  flex-direction: column;
  gap: var(--s4);
}
.pricing-card__icon { width: 52px; height: 52px; border-radius: var(--r-md); display: flex; align-items: center; justify-content: center; font-size: 24px; }
.pricing-card__title { font-size: var(--tx-lg); font-weight: var(--w7); color: var(--navy); }
.pricing-card__value {
  font-size: var(--tx-2xl);
  font-weight: var(--w8);
  color: var(--maroon);
  opacity: 0.4;
}
.pricing-card__note { font-size: var(--tx-xs); color: var(--text-light); font-style: italic; }
.pricing-card__desc { font-size: var(--tx-sm); color: var(--text-sec); line-height: var(--lh-base); flex: 1; }

/* ─────────────────────────────────────────────────────────────
   RESPONSIVE — Sprint 6 conversion & support layer
───────────────────────────────────────────────────────────── */
@media (max-width: 1024px) {
  .app-hero__inner       { grid-template-columns: 1fr; text-align: center; }
  .app-hero__sub         { margin-inline: auto; }
  .app-hero__btns        { justify-content: center; }
  .app-hero__qr-row      { justify-content: center; }
  .app-hero__visual      { order: -1; }
  .benefit-columns       { grid-template-columns: 1fr; }
  .contact-grid          { grid-template-columns: repeat(2, 1fr); }
  .legal-grid            { grid-template-columns: repeat(2, 1fr); }
  .pricing-grid          { grid-template-columns: repeat(2, 1fr); }
  .legal-article-layout  { grid-template-columns: 1fr; }
  .legal-toc             { position: static; }
}

@media (max-width: 768px) {
  .contact-grid   { grid-template-columns: 1fr; }
  .legal-grid     { grid-template-columns: 1fr; }
  .pricing-grid   { grid-template-columns: 1fr; }
  .app-screens-wrap { width: 240px; height: 340px; }
  .app-screen--center { width: 150px; }
  .app-screen--left, .app-screen--right { width: 128px; }
  .app-screen__placeholder { min-height: 250px; }
  .app-hero { padding-top: calc(72px + var(--s10)); padding-bottom: var(--s12); }
}

/* ═══════════════════════════════════════════════════════════
   LIVE EDUCATOR PROFILE  (Sprint 9)
   Additions only — no existing profile rules modified.
═══════════════════════════════════════════════════════════ */

/* ─── Profile hero photo ──────────────────────────────────── */
.profile-hero__avatar-wrap {
  position: relative;
  flex-shrink: 0;
}
/* Real photo: round, bordered, with a subtle halo */
.profile-hero__photo {
  width: 120px;
  height: 120px;
  border-radius: var(--r-full);
  object-fit: cover;
  border: 3px solid rgba(255,255,255,0.25);
  box-shadow: 0 0 0 6px rgba(255,255,255,0.07);
  display: block;
}
/* Initials fallback — keeps the existing .profile-hero__avatar style */
/* (No overrides needed — it already renders correctly) */

/* ─── Profile hero meta pills row ────────────────────────── */
.profile-hero__meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s2);
  margin-top: var(--s4);
}
.profile-hero__meta-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.3rem 0.75rem;
  background: rgba(255,255,255,0.10);
  border: 1px solid rgba(255,255,255,0.18);
  border-radius: var(--r-full);
  font-size: var(--tx-sm);
  color: rgba(255,255,255,0.85);
  backdrop-filter: blur(4px);
  white-space: nowrap;
}
/* CTA that lives inside the hero (mobile + small viewport) */
.profile-hero__cta {
  margin-top: var(--s6);
}

/* ─── Profile bio ────────────────────────────────────────── */
.profile-section__body--bio {
  white-space: pre-wrap;    /* respect line breaks in bio text */
  word-break: break-word;
}

/* ─── Subject tag with full-path tooltip ─────────────────── */
.profile-subject-tag {
  display: inline-flex;
  align-items: center;
  padding: 0.3rem 0.75rem;
  background: var(--maroon-pale);
  color: var(--maroon-dark);
  border-radius: var(--r-full);
  font-size: var(--tx-sm);
  font-weight: var(--w6);
  cursor: default;
  border: 1px solid transparent;
  transition: border-color var(--t-fast);
}
.profile-subject-tag:hover { border-color: var(--maroon); }
/* Tooltip via title attribute — no extra JS needed */

/* ─── Profile hero skeleton ──────────────────────────────── */
.profile-hero--loading .profile-hero__inner { gap: var(--s6); }
.profile-hero__skeleton-avatar {
  width: 120px;
  height: 120px;
  border-radius: var(--r-full);
  background: rgba(255,255,255,0.12);
  flex-shrink: 0;
  animation: profile-pulse 1.6s ease-in-out infinite;
}
.profile-hero__skeleton-line {
  height: 14px;
  border-radius: var(--r-full);
  background: rgba(255,255,255,0.12);
  animation: profile-pulse 1.6s ease-in-out infinite;
  margin-bottom: var(--s3);
}
@keyframes profile-pulse {
  0%, 100% { opacity: 0.5; }
  50%       { opacity: 0.9; }
}

/* ─── No-slug empty state (centre-aligned, calm) ─────────── */
.profile-no-slug {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: var(--s20) var(--s6);
  min-height: 420px;
}
.profile-no-slug__icon { font-size: 3rem; opacity: 0.25; margin-bottom: var(--s5); }
.profile-no-slug__title { font-size: var(--tx-xl); font-weight: var(--w7); color: var(--navy); margin-bottom: var(--s3); }
.profile-no-slug__text  { font-size: var(--tx-base); color: var(--text-sec); margin-bottom: var(--s6); max-width: 400px; line-height: var(--lh-base); }

/* ─── Responsive ─────────────────────────────────────────── */
@media (max-width: 768px) {
  .profile-hero__photo          { width: 88px; height: 88px; }
  .profile-hero__skeleton-avatar { width: 88px; height: 88px; }
  .profile-hero__meta           { gap: var(--s2); }
  .profile-hero__meta-pill      { font-size: var(--tx-xs); }
}

/* Launch guide article styling */

.guide-content h2 {
  margin-top: var(--s10);
  margin-bottom: var(--s4);
  font-size: var(--tx-xl);
  font-weight: var(--w7);
  line-height: 1.25;
  letter-spacing: -0.01em;
  color: var(--navy);
}

.guide-content h3 {
  margin-top: var(--s8);
  margin-bottom: var(--s2);
  font-size: var(--tx-lg);
  font-weight: var(--w7);
  line-height: 1.3;
  letter-spacing: -0.01em;
  color: var(--navy);
}

.guide-content h2 + h3 {
  margin-top: var(--s4);
}

.guide-content p {
  margin-bottom: var(--s5);
  line-height: 1.8;
  color: var(--text-sec);
}

.guide-content ul {
  margin: var(--s5) 0 var(--s7);
  padding-left: 1.5rem;
}

.guide-content li {
  margin-bottom: var(--s3);
  line-height: 1.75;
}

.guide-content table {
  width: 100%;
  margin: var(--s5) 0 var(--s10);
  table-layout: fixed;
  border-collapse: separate;
  border-spacing: 0;
  border: 1px solid rgba(17, 36, 71, 0.14);
  border-radius: var(--r-md);
  overflow: hidden;
  background: var(--white);
  font-size: var(--tx-base);
}

.guide-content th,
.guide-content td {
  padding: var(--s4) var(--s5);
  vertical-align: middle;
  border-right: 1px solid rgba(17, 36, 71, 0.1);
  border-bottom: 1px solid rgba(17, 36, 71, 0.1);
  line-height: 1.45;
}

.guide-content th {
  background: rgba(17, 36, 71, 0.045);
  color: var(--navy);
  font-weight: var(--w7);
}

.guide-content th:first-child,
.guide-content td:first-child {
  width: 68%;
  text-align: left;
}

.guide-content th:nth-child(2),
.guide-content th:nth-child(3),
.guide-content td:nth-child(2),
.guide-content td:nth-child(3) {
  width: 16%;
  text-align: center;
}

.guide-content th:last-child,
.guide-content td:last-child {
  border-right: 0;
}

.guide-content tbody tr:last-child td {
  border-bottom: 0;
}


.guide-content tbody tr {
  transition: background-color var(--t-fast) var(--ease);
}

.guide-content tbody tr:hover {
  background: rgba(17, 36, 71, 0.03);
}

.guide-content blockquote {
  margin: var(--s10) 0;
  padding: var(--s7);
  border-left: 3px solid var(--maroon);
  background: var(--maroon-pale);
  border-radius: var(--r-lg);
  color: var(--navy);
  line-height: 1.75;
}

@media (max-width: 640px) {
  .guide-content h2 {
    margin-top: var(--s8);
    font-size: 1.35rem;
  }

  .guide-content h3 {
    margin-top: var(--s6);
    font-size: 1.125rem;
  }

  .guide-content table {
    font-size: var(--tx-sm);
  }

  .guide-content th,
  .guide-content td {
    padding: var(--s3);
  }

  .guide-content th:first-child,
  .guide-content td:first-child {
    width: 62%;
  }

  .guide-content th:nth-child(2),
  .guide-content th:nth-child(3),
  .guide-content td:nth-child(2),
  .guide-content td:nth-child(3) {
    width: 19%;
  }
}
.timeline-photo--image {
  padding: 0;
  overflow: hidden;
  border: none;
  background: transparent;
}

.timeline-photo--image img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 360px;
  object-fit: cover;
}

/* Curriculum editorial detail pages */
.curriculum-card--active {
  border-color: var(--maroon);
  box-shadow: 0 0 0 2px var(--maroon-pale);
}

.curriculum-card--active .curriculum-card__badge {
  background: var(--maroon);
}

.curriculum-detail__hero {
  background: var(--navy);
  padding: var(--s12) 0;
}

.curriculum-detail__hero-inner {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: var(--s7);
  max-width: 980px;
}

.curriculum-detail__badge {
  width: 76px;
  height: 76px;
  border-radius: var(--r-lg);
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--maroon);
  color: var(--white);
  font-size: var(--tx-lg);
  font-weight: var(--w8);
}

.curriculum-detail__title {
  margin-top: var(--s2);
  color: var(--white);
  font-size: clamp(2rem, 5vw, 3.5rem);
  line-height: var(--lh-tight);
  letter-spacing: var(--ls-tight);
}

.curriculum-detail__intro {
  max-width: 820px;
  margin-top: var(--s5);
  color: rgba(255, 255, 255, 0.76);
  font-size: var(--tx-md);
  line-height: 1.8;
}

.curriculum-detail__layout {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(280px, 0.8fr);
  gap: var(--s10);
  align-items: start;
}

.curriculum-facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--s4);
  margin-bottom: var(--s10);
}

.curriculum-fact {
  padding: var(--s6);
  background: var(--bg);
  border: 1px solid var(--border-solid);
  border-radius: var(--r-lg);
}

.curriculum-fact__title {
  color: var(--navy);
  font-size: var(--tx-sm);
  font-weight: var(--w7);
}

.curriculum-fact__text {
  margin-top: var(--s3);
  color: var(--text-sec);
  font-size: var(--tx-sm);
  line-height: var(--lh-base);
}

.curriculum-copy {
  display: flex;
  flex-direction: column;
  gap: var(--s8);
}

.curriculum-copy-section h2 {
  color: var(--navy);
  font-size: var(--tx-xl);
}

.curriculum-copy-section p {
  margin-top: var(--s3);
  color: var(--text-sec);
  font-size: var(--tx-base);
  line-height: 1.8;
}

.curriculum-guide-card {
  overflow: hidden;
  position: sticky;
  top: calc(72px + var(--s6));
  background: var(--white);
  border: 1px solid var(--border-solid);
  border-radius: var(--r-xl);
  box-shadow: var(--shadow-sm);
}

.curriculum-guide-card__image {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

.curriculum-guide-card__body {
  padding: var(--s6);
}

.curriculum-guide-card__title {
  margin-top: var(--s2);
  color: var(--navy);
  font-size: var(--tx-lg);
  line-height: var(--lh-tight);
}

.curriculum-guide-card__description {
  margin-top: var(--s4);
  color: var(--text-sec);
  font-size: var(--tx-sm);
  line-height: var(--lh-base);
}

.curriculum-guide-card__meta {
  margin: var(--s4) 0;
  color: var(--text-light);
  font-size: var(--tx-xs);
  font-weight: var(--w6);
}

.curriculum-subject-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--s4);
}

.curriculum-subject-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s4);
  padding: var(--s5) var(--s6);
  background: var(--white);
  border: 1px solid var(--border-solid);
  border-radius: var(--r-lg);
  color: var(--navy);
  font-weight: var(--w7);
  text-decoration: none;
  transition:
    transform var(--t-base) var(--ease),
    box-shadow var(--t-base) var(--ease),
    border-color var(--t-base) var(--ease);
}

.curriculum-subject-link:hover {
  border-color: var(--maroon);
  box-shadow: var(--shadow-sm);
  color: var(--maroon);
  transform: translateY(-2px);
}

@media (max-width: 900px) {
  .curriculum-detail__layout {
    grid-template-columns: 1fr;
  }

  .curriculum-guide-card {
    position: static;
  }

  .curriculum-facts {
    grid-template-columns: 1fr;
  }

  .curriculum-subject-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 600px) {
  .curriculum-detail__hero-inner {
    grid-template-columns: 1fr;
  }

  .curriculum-detail__badge {
    width: 64px;
    height: 64px;
  }

  .curriculum-subject-grid {
    grid-template-columns: 1fr;
  }
}

/* Curriculum detail polish */
.curriculum-detail__hero-inner {
  column-gap: var(--s10);
}

.curriculum-facts--stages {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.curriculum-question-list {
  display: flex;
  flex-direction: column;
  gap: var(--s3);
  margin-top: var(--s4);
  padding: 0;
  list-style: none;
}

.curriculum-question-list li {
  position: relative;
  padding-left: 2rem;
  color: var(--text-sec);
  line-height: 1.7;
}

.curriculum-question-list li::before {
  content: "✓";
  position: absolute;
  top: 0.05em;
  left: 0.15rem;
  color: var(--maroon);
  font-weight: var(--w8);
}

@media (max-width: 700px) {
  .curriculum-detail__hero-inner {
    column-gap: var(--s6);
  }

  .curriculum-facts--stages {
    grid-template-columns: 1fr;
  }
}

/* Curriculum hub and detail visibility */
.curriculum-detail-page #curricula-hub-hero {
  display: none;
}

.curriculum-detail-page .curriculum-detail {
  margin-top: var(--s8);
}

/* Curriculum detail section spacing */
.curriculum-detail > .section--white {
  padding-top: var(--s16);
  padding-bottom: var(--s12);
}

.curriculum-detail > .section--bg {
  padding-top: var(--s12);
  padding-bottom: var(--s16);
}

@media (max-width: 700px) {
  .curriculum-detail > .section--white,
  .curriculum-detail > .section--bg {
    padding-top: var(--s10);
    padding-bottom: var(--s10);
  }
}

/* Curriculum learning stages spacing */
.curriculum-copy-section .curriculum-facts--stages {
  margin-top: var(--s5);
}



/* ─── DARESNI ADVISOR ───────────────────────────────────── */

.advisor-section {
  padding: var(--s12) 0;
  background:
    radial-gradient(circle at top right, rgba(111, 29, 54, 0.08), transparent 34%),
    var(--bg);
}

.advisor-card {
  max-width: 920px;
  margin: 0 auto;
  padding: var(--s10);
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-md);
}

.advisor-card__header {
  display: flex;
  align-items: flex-start;
  gap: var(--s5);
  padding-bottom: var(--s7);
  border-bottom: 1px solid var(--border);
}

.advisor-card__mark {
  display: grid;
  flex: 0 0 52px;
  width: 52px;
  height: 52px;
  place-items: center;
  border-radius: 50%;
  background: var(--maroon);
  color: var(--white);
  font-size: var(--tx-xl);
  font-weight: var(--w8);
}

.advisor-card__header h2 {
  margin: var(--s1) 0 var(--s2);
}

.advisor-card__intro {
  margin: 0;
  color: var(--text-muted);
}

.advisor-request {
  margin-top: var(--s7);
  padding: var(--s5);
  background: var(--maroon-pale);
  border-left: 4px solid var(--maroon);
  border-radius: var(--r-md);
}

.advisor-request__label {
  display: block;
  margin-bottom: var(--s2);
  color: var(--maroon);
  font-size: var(--tx-xs);
  font-weight: var(--w7);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.advisor-request p {
  margin: 0;
  color: var(--navy);
  font-weight: var(--w6);
}

.advisor-status {
  display: flex;
  align-items: center;
  gap: var(--s3);
  margin-top: var(--s7);
  color: var(--text-muted);
}

.advisor-spinner {
  width: 20px;
  height: 20px;
  border: 2px solid var(--border);
  border-top-color: var(--maroon);
  border-radius: 50%;
  animation: advisor-spin 0.8s linear infinite;
}

@keyframes advisor-spin {
  to {
    transform: rotate(360deg);
  }
}

.advisor-result,
.advisor-error {
  margin-top: var(--s7);
}

.advisor-result h3,
.advisor-error h3 {
  margin-bottom: var(--s4);
}

.advisor-result__reply {
  color: var(--text);
  line-height: 1.8;
}

.advisor-result__reply p {
  margin: 0 0 var(--s4);
}

.advisor-result__reply a {
  color: var(--maroon);
  font-weight: var(--w6);
  overflow-wrap: anywhere;
}

.advisor-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s3);
  margin-top: var(--s7);
  padding-top: var(--s6);
  border-top: 1px solid var(--border);
}

.advisor-error {
  padding: var(--s5);
  background: #fff7f7;
  border: 1px solid #f0cccc;
  border-radius: var(--r-md);
}

.advisor-error p {
  margin-bottom: var(--s4);
}

@media (max-width: 640px) {
  .advisor-section {
    padding: var(--s8) 0;
  }

  .advisor-card {
    padding: var(--s6);
  }

  .advisor-card__header {
    align-items: flex-start;
  }

  .advisor-card__mark {
    flex-basis: 44px;
    width: 44px;
    height: 44px;
  }

  .advisor-actions {
    flex-direction: column;
  }

  .advisor-actions .btn {
    width: 100%;
    justify-content: center;
  }
}
/* ==========================================================
   Educator Hub Download CTA
   ========================================================== */

.educator-download-cta {
  max-width: 900px;
  margin: var(--s10) auto var(--s12);
  padding: var(--s8);
  text-align: center;
  background: linear-gradient(135deg, var(--cream), #ffffff);
  border: 1px solid rgba(122, 36, 61, 0.08);
  border-radius: var(--r-xl);
  box-shadow: 0 10px 30px rgba(15, 23, 42, 0.06);
}

.educator-download-cta h3 {
  margin-bottom: 0.75rem;
  color: var(--navy);
}

.educator-download-cta p {
  max-width: 620px;
  margin: 0 auto 1.5rem;
  color: var(--text-sec);
}

.educator-download-cta .store-buttons {
  display: flex;
  justify-content: center;
  gap: 0.75rem;
  flex-wrap: wrap;
}

/* ═══════════════════════════════════════════════════════════
   TUTOR AND COACH DISCOVERY TOOLBAR — Sprint 1A
   Scoped to pages/tutors.html through
   .discovery-toolbar--educators.
═══════════════════════════════════════════════════════════ */

.discovery-toolbar--educators {
  position: relative;
  overflow: visible;
  padding: var(--s5);
  gap: 0;
  margin-bottom: var(--s8);
  border-color: rgba(17, 36, 71, 0.12);
  border-radius: var(--r-xl);
  box-shadow:
    0 1px 2px rgba(17, 36, 71, 0.04),
    0 12px 32px rgba(17, 36, 71, 0.07);
}

.discovery-toolbar--educators::before {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: 3px;
  background: linear-gradient(
    90deg,
    var(--maroon),
    var(--gold),
    var(--navy)
  );
}

.discovery-toolbar--educators .discovery-toolbar__search {
  position: relative;
  padding-bottom: var(--s5);
}

.discovery-toolbar--educators .search-box {
  position: relative;
}

.discovery-toolbar--educators .search-box::before {
  content: '⌕';
  position: absolute;
  top: 50%;
  left: var(--s5);
  z-index: 1;
  transform: translateY(-52%);
  color: var(--text-light);
  font-size: 1.45rem;
  line-height: 1;
  pointer-events: none;
}

.discovery-toolbar--educators .search-box__input {
  width: 100%;
  min-height: 58px;
  padding: 0 var(--s5) 0 calc(var(--s5) + 2rem);
  border: 1px solid var(--border-solid);
  border-radius: var(--r-lg);
  background: var(--bg);
  color: var(--text);
  font-family: inherit;
  font-size: var(--tx-base);
  transition:
    border-color var(--t-fast) var(--ease),
    box-shadow var(--t-fast) var(--ease),
    background-color var(--t-fast) var(--ease);
}

.discovery-toolbar--educators .search-box__input::placeholder {
  color: var(--text-light);
  opacity: 0.85;
}

.discovery-toolbar--educators .search-box__input:hover {
  border-color: rgba(112, 22, 48, 0.35);
  background: var(--white);
}

.discovery-toolbar--educators .search-box__input:focus {
  outline: none;
  border-color: var(--maroon);
  background: var(--white);
  box-shadow: 0 0 0 4px rgba(112, 22, 48, 0.1);
}

.discovery-toolbar--educators .discovery-filter-row {
  margin: 0 calc(var(--s5) * -1) calc(var(--s5) * -1);
  padding: var(--s5);
  border-top: 1px solid var(--border-solid);
  background: rgba(17, 36, 71, 0.025);
}

.discovery-toolbar--educators .discovery-filter-group {
  width: 100%;
  gap: var(--s3);
}

.discovery-toolbar--educators .discovery-filter-group__label {
  color: var(--navy);
  font-size: var(--tx-xs);
  font-weight: var(--w7);
  letter-spacing: 0.08em;
}

.discovery-toolbar--educators .discovery-filter-group__pills {
  gap: var(--s3);
}

.discovery-toolbar--educators .discovery-pill {
  min-height: 42px;
  padding: 0.55rem 1.1rem;
  border-color: rgba(17, 36, 71, 0.13);
  background: var(--white);
  color: var(--text-mid);
  font-weight: var(--w6);
  box-shadow: 0 1px 2px rgba(17, 36, 71, 0.03);
}

.discovery-toolbar--educators .discovery-pill:hover {
  transform: translateY(-1px);
  border-color: var(--maroon);
  background: rgba(112, 22, 48, 0.04);
  color: var(--maroon-dark);
}

.discovery-toolbar--educators .discovery-pill:focus-visible {
  outline: none;
  box-shadow: 0 0 0 4px rgba(112, 22, 48, 0.12);
}

.discovery-toolbar--educators .discovery-pill.is-active {
  border-color: var(--maroon);
  background: var(--maroon);
  color: var(--white);
  box-shadow: 0 5px 14px rgba(112, 22, 48, 0.18);
}

.discovery-toolbar--educators .discovery-pill.is-active:hover {
  transform: none;
  background: var(--maroon-dark);
  color: var(--white);
}

@media (max-width: 768px) {
  .discovery-toolbar--educators {
    padding: var(--s4);
    margin-bottom: var(--s7);
  }

  .discovery-toolbar--educators .discovery-toolbar__search {
    padding-bottom: var(--s4);
  }

  .discovery-toolbar--educators .search-box__input {
    min-height: 54px;
    font-size: var(--tx-sm);
  }

  .discovery-toolbar--educators .discovery-filter-row {
    margin: 0 calc(var(--s4) * -1) calc(var(--s4) * -1);
    padding: var(--s4);
  }

  .discovery-toolbar--educators .discovery-filter-group__pills {
    width: 100%;
  }

  .discovery-toolbar--educators .discovery-pill {
    flex: 1 1 auto;
    justify-content: center;
    text-align: center;
  }
}

@media (max-width: 480px) {
  .discovery-toolbar--educators .discovery-filter-group__pills {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
  }

  .discovery-toolbar--educators .discovery-pill {
    width: 100%;
    padding-right: var(--s3);
    padding-left: var(--s3);
  }
}

/* ═══════════════════════════════════════════════════════════
   TUTOR SEARCH AUTOCOMPLETE — Sprint 1B
   Scoped to the tutor and coach discovery toolbar.
═══════════════════════════════════════════════════════════ */

.discovery-toolbar--educators .search-box {
  position: relative;
  z-index: 5;
  overflow: visible;
}

.discovery-toolbar--educators .discovery-suggestions {
  position: absolute;
  top: calc(100% + 0.5rem);
  right: 0;
  left: 0;
  z-index: 40;
  max-height: min(440px, 62vh);
  overflow-y: auto;
  padding: 0.5rem;
  border: 1px solid rgba(17, 36, 71, 0.14);
  border-radius: var(--r-lg);
  background: var(--white);
  box-shadow:
    0 8px 20px rgba(17, 36, 71, 0.1),
    0 24px 48px rgba(17, 36, 71, 0.14);
}

.discovery-toolbar--educators .discovery-suggestions[hidden] {
  display: none;
}

.discovery-toolbar--educators
.discovery-suggestions__group
+ .discovery-suggestions__group {
  margin-top: 0.4rem;
  padding-top: 0.4rem;
  border-top: 1px solid var(--border-solid);
}

.discovery-toolbar--educators .discovery-suggestions__heading {
  margin: 0;
  padding: 0.5rem 0.75rem 0.35rem;
  color: var(--text-light);
  font-size: var(--tx-xs);
  font-weight: var(--w7);
  letter-spacing: 0.075em;
  line-height: 1.3;
  text-transform: uppercase;
}

.discovery-toolbar--educators .discovery-suggestion {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.75rem;
  width: 100%;
  min-height: 46px;
  padding: 0.65rem 0.75rem;
  border: 0;
  border-radius: var(--r-md);
  background: transparent;
  color: var(--text);
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.discovery-toolbar--educators .discovery-suggestion:hover,
.discovery-toolbar--educators .discovery-suggestion.is-active {
  background: rgba(112, 22, 48, 0.07);
  color: var(--maroon-dark);
}

.discovery-toolbar--educators .discovery-suggestion:focus-visible {
  outline: none;
  box-shadow: inset 0 0 0 2px var(--maroon);
}

.discovery-toolbar--educators .discovery-suggestion__label {
  min-width: 0;
  overflow: hidden;
  font-size: var(--tx-sm);
  font-weight: var(--w6);
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.discovery-toolbar--educators .discovery-suggestion__count {
  min-width: 2rem;
  padding: 0.15rem 0.45rem;
  border-radius: 999px;
  background: rgba(17, 36, 71, 0.07);
  color: var(--text-mid);
  font-size: var(--tx-xs);
  font-weight: var(--w7);
  line-height: 1.4;
  text-align: center;
}

.discovery-toolbar--educators
.discovery-suggestion:hover
.discovery-suggestion__count,
.discovery-toolbar--educators
.discovery-suggestion.is-active
.discovery-suggestion__count {
  background: rgba(112, 22, 48, 0.12);
  color: var(--maroon-dark);
}

@media (max-width: 480px) {
  .discovery-toolbar--educators .discovery-suggestions {
    max-height: 55vh;
  }

  .discovery-toolbar--educators .discovery-suggestion {
    min-height: 48px;
  }
}

/* ═══════════════════════════════════════════════════════════
   TUTOR SEARCH AUTOCOMPLETE POLISH — Sprint 1C
   Matching-text highlights, icons and stronger active states.
═══════════════════════════════════════════════════════════ */

.discovery-toolbar--educators
.discovery-suggestions__heading {
  display: flex;
  align-items: center;
  gap: 0.45rem;
}

.discovery-toolbar--educators .discovery-suggestion {
  grid-template-columns: 1.5rem minmax(0, 1fr) auto;
  transition:
    background-color var(--t-fast) var(--ease),
    color var(--t-fast) var(--ease),
    transform var(--t-fast) var(--ease);
}

.discovery-toolbar--educators .discovery-suggestion:hover {
  transform: translateX(2px);
}

.discovery-toolbar--educators .discovery-suggestion.is-active {
  background: rgba(112, 22, 48, 0.1);
  box-shadow: inset 3px 0 0 var(--maroon);
  color: var(--maroon-dark);
}

.discovery-toolbar--educators .discovery-suggestion__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  font-size: 0.95rem;
  line-height: 1;
}

.discovery-toolbar--educators .discovery-suggestion__match {
  padding: 0;
  background: transparent;
  color: var(--maroon);
  font-weight: var(--w7);
}

.discovery-toolbar--educators
.discovery-suggestion.is-active
.discovery-suggestion__match {
  color: var(--maroon-dark);
}

@media (prefers-reduced-motion: reduce) {
  .discovery-toolbar--educators .discovery-suggestion {
    transition: none;
  }

  .discovery-toolbar--educators .discovery-suggestion:hover {
    transform: none;
  }
}

/* ═══════════════════════════════════════════════════════════
   TUTOR PRICE AND SORT FILTERS — Sprint 1D
   Scoped to the tutor and coach discovery toolbar.
═══════════════════════════════════════════════════════════ */

.discovery-toolbar--educators .discovery-filter-row {
  display: grid;
  grid-template-columns:
    minmax(240px, 1fr)
    minmax(260px, 1.15fr)
    minmax(190px, 0.75fr);
  gap: var(--s5);
  align-items: end;
}

.discovery-toolbar--educators
.discovery-filter-group--price,
.discovery-toolbar--educators
.discovery-filter-group--sort {
  width: 100%;
}

.discovery-toolbar--educators .discovery-price-filter {
  display: grid;
  grid-template-columns: minmax(140px, 1fr) auto;
  align-items: center;
  gap: var(--s4);
  min-height: 42px;
}

.discovery-toolbar--educators
.discovery-price-filter__range {
  width: 100%;
  height: 5px;
  margin: 0;
  border-radius: var(--r-full);
  appearance: none;
  -webkit-appearance: none;
  background: linear-gradient(
    90deg,
    var(--maroon),
    var(--gold)
  );
  cursor: pointer;
}

.discovery-toolbar--educators
.discovery-price-filter__range::-webkit-slider-thumb {
  width: 20px;
  height: 20px;
  border: 3px solid var(--white);
  border-radius: 50%;
  appearance: none;
  -webkit-appearance: none;
  background: var(--maroon);
  box-shadow:
    0 0 0 1px rgba(112, 22, 48, 0.18),
    0 3px 8px rgba(17, 36, 71, 0.2);
  cursor: grab;
}

.discovery-toolbar--educators
.discovery-price-filter__range::-moz-range-thumb {
  width: 16px;
  height: 16px;
  border: 3px solid var(--white);
  border-radius: 50%;
  background: var(--maroon);
  box-shadow:
    0 0 0 1px rgba(112, 22, 48, 0.18),
    0 3px 8px rgba(17, 36, 71, 0.2);
  cursor: grab;
}

.discovery-toolbar--educators
.discovery-price-filter__range:focus-visible {
  outline: none;
}

.discovery-toolbar--educators
.discovery-price-filter__range:focus-visible::-webkit-slider-thumb {
  box-shadow:
    0 0 0 4px rgba(112, 22, 48, 0.14),
    0 3px 8px rgba(17, 36, 71, 0.2);
}

.discovery-toolbar--educators
.discovery-price-filter__range:disabled {
  opacity: 0.45;
  cursor: wait;
}

.discovery-toolbar--educators
.discovery-price-filter__value {
  min-width: 7.5rem;
  padding: 0.45rem 0.7rem;
  border: 1px solid rgba(17, 36, 71, 0.11);
  border-radius: var(--r-md);
  background: var(--white);
  color: var(--navy);
  font-size: var(--tx-sm);
  font-weight: var(--w7);
  line-height: 1.25;
  text-align: center;
  white-space: nowrap;
}

.discovery-toolbar--educators .discovery-sort-select {
  width: 100%;
  min-height: 42px;
  padding: 0.55rem 2.4rem 0.55rem 0.85rem;
  border: 1px solid rgba(17, 36, 71, 0.13);
  border-radius: var(--r-md);
  background-color: var(--white);
  color: var(--text);
  font-family: inherit;
  font-size: var(--tx-sm);
  font-weight: var(--w6);
  cursor: pointer;
  transition:
    border-color var(--t-fast) var(--ease),
    box-shadow var(--t-fast) var(--ease);
}

.discovery-toolbar--educators
.discovery-sort-select:hover {
  border-color: var(--maroon);
}

.discovery-toolbar--educators
.discovery-sort-select:focus {
  outline: none;
  border-color: var(--maroon);
  box-shadow: 0 0 0 4px rgba(112, 22, 48, 0.1);
}

@media (max-width: 900px) {
  .discovery-toolbar--educators .discovery-filter-row {
    grid-template-columns: 1fr 1fr;
  }

  .discovery-toolbar--educators
  .discovery-filter-group:first-child {
    grid-column: 1 / -1;
  }
}

@media (max-width: 600px) {
  .discovery-toolbar--educators .discovery-filter-row {
    display: flex;
    flex-direction: column;
    align-items: stretch;
  }

  .discovery-toolbar--educators
  .discovery-price-filter {
    grid-template-columns: 1fr;
  }

  .discovery-toolbar--educators
  .discovery-price-filter__value {
    width: 100%;
  }
}

