:root {
  --navy:     #1A2744;
  --blue:     #2D5A8E;
  --gold:     #C4923A;
  --gold-text:#8F6A24; /* darker gold for text on light backgrounds (AA contrast) */
  --gold-lt:  rgba(196,146,58,0.12);
  --bg:       #FAFAF8;
  --bg-alt:   #F0EDE8;
  --text:     #2C2C2C;
  --muted:    #575E6B;
  --border:   #DDD8D0;
  --white:    #FFFFFF;
  --r:        8px;
  --sh:       0 2px 16px rgba(26,39,68,0.08);
  --sh-lg:    0 8px 40px rgba(26,39,68,0.15);
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { font-family: 'Inter', sans-serif; font-size: 17px; line-height: 1.7; color: var(--text); background: var(--bg); }
h1,h2,h3,h4 { font-family: 'Playfair Display', serif; line-height: 1.25; color: var(--navy); }
h1 { font-size: clamp(2rem,5vw,3.4rem); }
h2 { font-size: clamp(1.6rem,3.5vw,2.4rem); }
h3 { font-size: clamp(1.1rem,2.5vw,1.5rem); }
p  { margin-bottom: 1rem; }
a  { color: var(--blue); text-decoration: none; }
a:hover { text-decoration: underline; }
img { max-width: 100%; display: block; }

a:focus-visible, button:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }

/* ── Skip link ───────────────────────────── */
.skip-link {
  position: absolute; left: -9999px; top: 0; z-index: 300;
  background: var(--navy); color: #fff; padding: .6rem 1.1rem;
  border-radius: 0 0 var(--r) 0; font-weight: 600; font-size: .9rem;
}
.skip-link:focus { left: 0; }

/* ── Layout ─────────────────────────────── */
.container { max-width: 1120px; margin: 0 auto; padding: 0 1.5rem; }
.section    { padding: 5rem 0; }
.section--alt  { background: var(--bg-alt); }
.section--dark { background: var(--navy); }
.section--dark h2, .section--dark h3 { color: #fff; }
.section--dark p { color: rgba(255,255,255,.78); }

.eyebrow {
  font-family: 'Inter', sans-serif;
  font-size: .7rem; font-weight: 700;
  letter-spacing: .2em; text-transform: uppercase;
  color: var(--gold-text); margin-bottom: .75rem; display: block;
}
/* On dark backgrounds the brighter gold passes contrast — keep it there */
.hero .eyebrow, .page-header .eyebrow, .section--dark .eyebrow, .featured-event__side .eyebrow { color: var(--gold); }
.section-hd { margin-bottom: 2.5rem; }
.section-hd--center { text-align: center; }

.split-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: center; }
@media (max-width: 800px) { .split-2 { grid-template-columns: 1fr; gap: 2.5rem; } }

/* ── Nav ─────────────────────────────────── */
.nav {
  position: sticky; top: 0; z-index: 200;
  background: rgba(250,250,248,.96);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--border);
}
.nav__inner {
  max-width: 1120px; margin: 0 auto; padding: 0 1.5rem;
  display: flex; align-items: center; justify-content: space-between; height: 62px;
}
.nav__brand {
  font-family: 'Playfair Display', serif; font-size: 1.25rem;
  font-weight: 700; color: var(--navy); text-decoration: none;
}
.nav__brand span { color: var(--gold-text); }
.nav__links { display: flex; gap: 1.75rem; list-style: none; }
.nav__links a { font-size: .875rem; font-weight: 500; color: var(--text); text-decoration: none; transition: color .2s; }
.nav__links a:hover, .nav__links a.active { color: var(--blue); }
.nav__cta {
  background: var(--navy); color: #fff !important;
  padding: .55rem 1.15rem; border-radius: var(--r);
  font-weight: 600 !important; transition: background .2s !important;
}
.nav__cta:hover { background: var(--blue) !important; text-decoration: none !important; }
.nav__burger { display: none; flex-direction: column; gap: 5px; background: none; border: none; cursor: pointer; padding: 4px; }
.nav__burger span { display: block; width: 22px; height: 2px; background: var(--navy); border-radius: 2px; }
@media(max-width:768px){
  .nav__links { display: none; flex-direction: column; gap: 0; position: absolute; top: 62px; left: 0; right: 0; background: var(--bg); border-bottom: 1px solid var(--border); padding: 1rem 1.5rem; }
  .nav__links.open { display: flex; }
  .nav__burger { display: flex; }
}

/* ── Buttons ─────────────────────────────── */
.btn {
  display: inline-block; padding: .8rem 1.6rem; border-radius: var(--r);
  font-family: 'Inter', sans-serif; font-size: .95rem; font-weight: 600;
  cursor: pointer; border: 2px solid transparent; transition: all .2s; text-decoration: none;
}
.btn--gold   { background: var(--gold); color: var(--navy); border-color: var(--gold); }
.btn--gold:hover { background: #b07d2e; border-color: #b07d2e; text-decoration: none; }
.btn--outline { background: transparent; color: #fff; border-color: rgba(255,255,255,.4); }
.btn--outline:hover { border-color: #fff; background: rgba(255,255,255,.08); text-decoration: none; }
.btn--outline-dark { background: transparent; color: var(--navy); border-color: var(--navy); }
.btn--outline-dark:hover { background: var(--navy); color: #fff; text-decoration: none; }
.btn--navy { background: var(--navy); color: #fff; border-color: var(--navy); }
.btn--navy:hover { background: var(--blue); border-color: var(--blue); text-decoration: none; }

/* ── Hero ────────────────────────────────── */
.hero {
  background: var(--navy); color: #fff;
  padding: 5.5rem 1.5rem 7.5rem; position: relative; overflow: hidden;
}
.hero::before {
  content: ''; position: absolute; top: -20%; right: -8%; width: 55%; height: 140%;
  background: radial-gradient(ellipse, rgba(45,90,142,.45) 0%, transparent 70%);
  pointer-events: none;
}
.hero::after {
  content: ''; position: absolute; bottom: -15%; left: -5%; width: 40%; height: 80%;
  background: radial-gradient(ellipse, rgba(196,146,58,.13) 0%, transparent 70%);
  pointer-events: none;
}
.hero__inner { max-width: 1120px; margin: 0 auto; position: relative; z-index: 1; }
.hero h1 { color: #fff; max-width: 700px; margin-bottom: 1.25rem; }
.hero h1 em { color: var(--gold); font-style: italic; }
.hero__sub { font-size: 1.1rem; color: rgba(255,255,255,.76); max-width: 560px; margin-bottom: 2rem; line-height: 1.75; }
.hero__actions { display: flex; gap: 1rem; flex-wrap: wrap; }

/* ── Page Header ──────────────────────────── */
.page-header { background: var(--navy); padding: 4.5rem 1.5rem 3.5rem; }
.page-header__inner { max-width: 1120px; margin: 0 auto; }
.page-header h1 { color: #fff; }
.page-header p  { color: rgba(255,255,255,.72); max-width: 600px; margin-top: .75rem; }

/* ── Cards (generic) ─────────────────────── */
.card { background: var(--white); border-radius: var(--r); box-shadow: var(--sh); overflow: hidden; transition: box-shadow .25s, transform .25s; }
.card:hover, .card:focus-within { box-shadow: var(--sh-lg); transform: translateY(-2px); }
.card__body { padding: 1.5rem; }
.card__tag  { display: inline-block; font-size: .7rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--gold-text); background: var(--gold-lt); padding: .2rem .6rem; border-radius: 4px; margin-bottom: .75rem; }
.card__date { font-size: .78rem; color: var(--muted); font-weight: 500; margin-bottom: .4rem; }
.card__title { font-family: 'Playfair Display', serif; font-size: 1.1rem; color: var(--navy); margin-bottom: .5rem; line-height: 1.35; }
.card__title a { color: inherit; }
.card__excerpt { font-size: .95rem; color: var(--muted); line-height: 1.65; }

/* ── Event card (date block) ──────────────── */
.event-card { background: var(--white); border-radius: var(--r); box-shadow: var(--sh); display: grid; grid-template-columns: 88px 1fr; overflow: hidden; transition: box-shadow .25s, transform .25s; }
.event-card:hover, .event-card:focus-within { box-shadow: var(--sh-lg); transform: translateY(-2px); }
a.event-card { color: inherit; }
a.event-card:hover { text-decoration: none; }
a.event-card:focus-visible { box-shadow: var(--sh-lg); transform: translateY(-2px); }
.event-card__date { background: var(--navy); color: #fff; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 1.25rem .75rem; }
.event-card__month { font-size: .65rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--gold); }
.event-card__day   { font-family: 'Playfair Display', serif; font-size: 2rem; font-weight: 700; line-height: 1; margin: .15rem 0; }
.event-card__year  { font-size: .7rem; color: rgba(255,255,255,.55); }
.event-card__body  { padding: 1.25rem 1.5rem; }

/* ── Quote Rotator ────────────────────────── */
.quote-rotator { position: relative; }
.quote-slide { display: none; animation: fadeUp .5s ease; }
.quote-slide.active { display: block; }
@keyframes fadeUp { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }

.blockquote { border-left: 3px solid var(--gold); padding-left: 1.5rem; }
.blockquote__text { font-family: 'Playfair Display', serif; font-size: 1.2rem; font-style: italic; color: var(--navy); line-height: 1.65; margin-bottom: .6rem; }
.blockquote__attr { font-size: .78rem; font-weight: 600; color: var(--muted); text-transform: uppercase; letter-spacing: .08em; }
.quote-dots { display: flex; gap: 14px; margin-top: 1.25rem; }
.quote-dot { width: 12px; height: 12px; border-radius: 50%; background: var(--border); border: none; cursor: pointer; transition: background .2s; padding: 0; position: relative; }
.quote-dot::before { content: ''; position: absolute; inset: -14px; } /* 40px hit area */
.quote-dot.active { background: var(--gold-text); }

/* ── Moments grid ─────────────────────────── */
.moments-grid { columns: 3; column-gap: 1.5rem; }
@media(max-width:900px) { .moments-grid { columns: 2; } }
@media(max-width:580px) { .moments-grid { columns: 1; } }

.moment-card { break-inside: avoid; background: var(--white); border-radius: var(--r); box-shadow: var(--sh); padding: 1.75rem; margin-bottom: 1.5rem; transition: box-shadow .25s, transform .25s; }
.moment-card:hover, .moment-card:focus-within { box-shadow: var(--sh-lg); transform: translateY(-2px); }
.moment-card--dark { background: var(--navy); }
.moment-card--dark .moment-card__quote { color: #fff; }
.moment-card--dark .moment-card__attr  { color: var(--gold); }
.moment-card--dark .moment-card__session { color: rgba(255,255,255,.55); }
.moment-card--dark .moment-card__note   { color: rgba(255,255,255,.45); border-top-color: rgba(255,255,255,.12); }

.moment-card__icon    { font-size: 1.8rem; color: var(--gold); font-family: Georgia, serif; line-height: 1; margin-bottom: .5rem; }
.moment-card__quote   { font-family: 'Playfair Display', serif; font-size: 1rem; font-style: italic; color: var(--navy); line-height: 1.7; margin-bottom: .9rem; }
.moment-card__attr    { font-size: .72rem; font-weight: 700; color: var(--gold-text); text-transform: uppercase; letter-spacing: .1em; margin-bottom: .3rem; }
.moment-card__session { font-size: .78rem; color: var(--muted); margin-bottom: .5rem; }
.moment-card__note    { font-size: .75rem; color: var(--muted); border-top: 1px solid var(--border); padding-top: .6rem; margin-top: .6rem; font-style: italic; }

/* ── Presenter grid ───────────────────────── */
.search-wrap { position: relative; max-width: 380px; margin-bottom: 1.25rem; }
.search-wrap svg { position: absolute; left: .8rem; top: 50%; transform: translateY(-50%); color: var(--muted); pointer-events: none; }
.search-wrap input { width: 100%; padding: .6rem 1rem .6rem 2.4rem; border: 1.5px solid var(--border); border-radius: var(--r); font-family: 'Inter', sans-serif; font-size: .9rem; background: var(--white); color: var(--text); outline: none; transition: border-color .2s, box-shadow .2s; }
.search-wrap input:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(45,90,142,.25); }

.filter-pills { display: flex; gap: .5rem; flex-wrap: wrap; margin-bottom: 2rem; }
.pill { padding: .5rem 1.05rem; border-radius: 999px; border: 1.5px solid var(--border); background: var(--white); font-size: .85rem; font-weight: 500; color: var(--muted); cursor: pointer; transition: all .2s; }
.pill:hover, .pill.active { border-color: var(--blue); background: var(--blue); color: #fff; }

.presenters-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(270px, 1fr)); gap: 1.25rem; }
.presenter-card { background: var(--white); border-radius: var(--r); box-shadow: var(--sh); padding: 1.4rem; border-top: 3px solid transparent; transition: box-shadow .25s, transform .25s, border-top-color .25s; }
.presenter-card:hover, .presenter-card:focus-within { box-shadow: var(--sh-lg); transform: translateY(-2px); border-top-color: var(--gold); }
.presenter-card__name  { font-family: 'Playfair Display', serif; font-size: 1.1rem; color: var(--navy); margin-bottom: .2rem; }
.presenter-card__topic { font-size: .95rem; color: var(--blue); font-weight: 500; margin-bottom: .2rem; line-height: 1.4; }
.presenter-card__date  { font-size: .75rem; color: var(--muted); margin-bottom: .6rem; }
.presenter-card__bio   { font-size: .9rem; color: var(--muted); line-height: 1.7; }
.presenter-card__tags  { display: flex; flex-wrap: wrap; gap: .35rem; margin-top: .75rem; }
.tag { font-size: .72rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; padding: .18rem .5rem; border-radius: 4px; background: var(--bg-alt); color: var(--muted); }
.tag--lg { font-size: .78rem; }
a.tag:hover { text-decoration: none; background: var(--blue); color: #fff; }

.no-results { display: none; text-align: center; padding: 3rem; color: var(--muted); grid-column: 1/-1; }

/* ── Featured event ───────────────────────── */
.featured-event { background: var(--white); border-radius: var(--r); box-shadow: var(--sh-lg); overflow: hidden; display: grid; grid-template-columns: 200px 1fr; }
@media(max-width:680px) { .featured-event { grid-template-columns: 1fr; } }
.featured-event__side { background: var(--navy); padding: 2.5rem 1.75rem; color: #fff; display: flex; flex-direction: column; gap: 1.25rem; }
.featured-event__big-day { font-family: 'Playfair Display', serif; font-size: 3.5rem; font-weight: 700; line-height: 1; color: #fff; display: block; }
.featured-event__month-yr { font-size: 1rem; color: rgba(255,255,255,.65); }
.featured-event__time { font-size: .85rem; color: rgba(255,255,255,.6); }
.featured-event__body { padding: 2.5rem; }

/* ── RSVP ─────────────────────────────────── */
.rsvp-box { background: var(--bg-alt); border-radius: var(--r); padding: 1.75rem; margin-top: 1.5rem; }
.rsvp-box h4 { margin-bottom: 1rem; }
.rsvp-row { display: flex; gap: .75rem; flex-wrap: wrap; }
.rsvp-row input { flex: 1; min-width: 200px; padding: .6rem 1rem; border: 1.5px solid var(--border); border-radius: var(--r); font-family: 'Inter', sans-serif; font-size: .9rem; background: var(--white); outline: none; transition: border-color .2s, box-shadow .2s; }
.rsvp-row input:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(45,90,142,.25); }
.rsvp-success { display: none; color: #2a7a4e; font-weight: 600; margin-top: .75rem; font-size: .9rem; }

/* ── About ────────────────────────────────── */
.about-grid { display: grid; grid-template-columns: 2fr 1fr; gap: 4rem; align-items: start; }
@media(max-width:800px) { .about-grid { grid-template-columns: 1fr; gap: 2rem; } }
.about-lede { font-family: 'Playfair Display', serif; font-size: 1.3rem; font-style: italic; color: var(--navy); line-height: 1.7; border-left: 3px solid var(--gold); padding-left: 1.5rem; margin-bottom: 2rem; }

.pull-note { background: var(--bg-alt); border-radius: var(--r); padding: 2rem; margin: 2rem 0; border-left: 3px solid var(--gold); }

.sidebar-card { background: var(--white); border-radius: var(--r); box-shadow: var(--sh); padding: 1.75rem; }
.sidebar-card__label { font-size: .68rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--gold-text); margin-bottom: 1.25rem; display: block; }
.sidebar-stat { border-bottom: 1px solid var(--border); padding: .85rem 0; }
.sidebar-stat:last-child { border-bottom: none; }
.sidebar-stat .num { font-family: 'Playfair Display', serif; font-size: 2rem; font-weight: 700; color: var(--navy); line-height: 1; }
.sidebar-stat .lbl { font-size: .8rem; color: var(--muted); margin-top: .15rem; }

/* ── Stat tiles (dark strip) ──────────────── */
.stat-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
@media(max-width:420px) { .stat-grid { grid-template-columns: 1fr; } }
.stat-tile { background: rgba(255,255,255,.06); border-radius: var(--r); padding: 1.75rem; text-align: center; }
.stat-tile__num { font-family: 'Playfair Display', serif; font-size: 3rem; font-weight: 700; color: var(--gold); line-height: 1; }
.stat-tile__lbl { font-size: .85rem; color: rgba(255,255,255,.65); margin-top: .35rem; }

/* ── Footer ───────────────────────────────── */
.footer { background: var(--navy); color: rgba(255,255,255,.68); padding: 4rem 1.5rem 2rem; border-top: 3px solid var(--gold); }
.footer__grid { max-width: 1120px; margin: 0 auto; display: grid; grid-template-columns: 1.5fr 1fr 1fr; gap: 3rem; padding-bottom: 2.5rem; border-bottom: 1px solid rgba(255,255,255,.1); margin-bottom: 2rem; }
@media(max-width:680px) { .footer__grid { grid-template-columns: 1fr; gap: 2rem; } }
.footer__brand { font-family: 'Playfair Display', serif; font-size: 1.35rem; font-weight: 700; color: #fff; margin-bottom: .6rem; }
.footer__brand span { color: var(--gold); }
.footer__desc { font-size: .875rem; line-height: 1.7; max-width: 280px; }
.footer__col-title { font-size: .68rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--gold); margin-bottom: 1.1rem; display: block; }
.footer__links { list-style: none; display: flex; flex-direction: column; gap: .5rem; }
.footer__links a { font-size: .9rem; color: rgba(255,255,255,.62); text-decoration: none; transition: color .2s; }
.footer__links a:hover { color: #fff; }
.footer__bottom { max-width: 1120px; margin: 0 auto; display: flex; justify-content: space-between; font-size: .78rem; flex-wrap: wrap; gap: .5rem; }

/* ── Moment card types ───────────────────── */

/* Type A — "Why Ray Chose This Topic" — gold/amber, shorter */
.moment-a {
  break-inside: avoid;
  background: #FDF6EC;
  border-radius: var(--r);
  border: 1.5px solid rgba(196,146,58,0.25);
  padding: 1.6rem;
  margin-bottom: 1.5rem;
  transition: box-shadow .25s, transform .25s;
}
.moment-a:hover, .moment-a:focus-within { box-shadow: 0 6px 28px rgba(196,146,58,0.18); transform: translateY(-2px); }

.moment-a__label {
  font-size: .67rem; font-weight: 700; letter-spacing: .16em;
  text-transform: uppercase; color: var(--gold-text); margin-bottom: .75rem; display: block;
}
.moment-a__quote {
  font-family: 'Playfair Display', serif; font-size: .98rem;
  font-style: italic; color: #5C3D0E; line-height: 1.7; margin-bottom: .85rem;
}
.moment-a__quote::before { content: '\201C'; }
.moment-a__quote::after  { content: '\201D'; }
.moment-a__attr { font-size: .75rem; font-weight: 600; color: var(--gold-text); }
.moment-a__session { font-size: .75rem; color: #7E5A22; margin-top: .15rem; }

/* Type B — "From the Session" — dark navy */
.moment-b {
  break-inside: avoid;
  background: var(--navy);
  border-radius: var(--r);
  border: 1.5px dashed rgba(255,255,255,0.18);
  padding: 2rem;
  margin-bottom: 1.5rem;
  position: relative;
  transition: box-shadow .25s, transform .25s;
}
.moment-b:hover, .moment-b:focus-within { box-shadow: 0 8px 36px rgba(26,39,68,0.3); transform: translateY(-2px); }

.moment-b__badge {
  display: inline-block; font-size: .65rem; font-weight: 700;
  letter-spacing: .14em; text-transform: uppercase;
  background: rgba(196,146,58,0.15); color: var(--gold);
  border: 1px solid rgba(196,146,58,0.3);
  padding: .22rem .65rem; border-radius: 4px; margin-bottom: 1rem;
}
.moment-b__placeholder {
  font-family: 'Playfair Display', serif; font-size: 1.05rem;
  font-style: italic; color: rgba(255,255,255,0.72);
  line-height: 1.7; margin-bottom: 1rem;
}
.moment-b__speaker { font-size: .8rem; font-weight: 600; color: rgba(255,255,255,0.5); }
.moment-b__session { font-size: .75rem; color: rgba(255,255,255,0.3); margin-top: .2rem; }
.moment-b__divider { border: none; border-top: 1px dashed rgba(255,255,255,0.1); margin: 1rem 0; }
.moment-b__hint { font-size: .72rem; color: rgba(255,255,255,0.55); font-style: italic; }
.moment-b__hint a { color: rgba(255,255,255,0.7); text-decoration: underline; }

/* ── Scroll fade ─────────────────────────── */
/* Effect only applies when JS has loaded (html.js) so content is never stuck hidden */
.fade-in { transition: opacity .6s ease, transform .6s ease; }
.js .fade-in { opacity: 0; transform: translateY(16px); }
.js .fade-in.visible { opacity: 1; transform: none; }

/* ── Reduced motion ──────────────────────── */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .js .fade-in { opacity: 1; transform: none; transition: none; }
  .quote-slide { animation: none; }
  .card, .event-card, .presenter-card, .moment-card, .moment-a, .moment-b { transition: none; }
}

/* ── Utils ───────────────────────────────── */
.grid-3 { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 1.5rem; }
.grid-2 { display: grid; grid-template-columns: repeat(auto-fill, minmax(400px, 1fr)); gap: 1.5rem; }
@media(max-width:600px) { .grid-2, .grid-3 { grid-template-columns: 1fr; } }
.divider { border: none; border-top: 1px solid var(--border); margin: 2.5rem 0; }
.text-center { text-align: center; }
.text-gold { color: var(--gold-text); }
.text-muted { color: var(--muted); }
.mt-1 { margin-top: .5rem; } .mt-2 { margin-top: 1rem; } .mt-3 { margin-top: 1.5rem; } .mt-4 { margin-top: 2rem; }
.mb-0 { margin-bottom: 0; }
.zoom-badge { display: inline-flex; align-items: center; gap: .4rem; background: rgba(45,90,142,.12); color: var(--blue); border-radius: 999px; padding: .28rem .75rem; font-size: .78rem; font-weight: 600; }

/* ── Mobile rhythm ───────────────────────── */
@media (max-width: 680px) {
  .section { padding: 3.25rem 0; }
  .hero { padding: 4rem 1.5rem 6rem; }
}

/* ── Session pages ───────────────────────── */
.sidebar-stat strong { display: block; font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; color: var(--muted); font-weight: 600; margin-bottom: .2rem; }
.sidebar-stat span { display: block; font-size: .95rem; color: var(--navy); }
.page-header h1 { text-wrap: balance; }

.presenter-card__link {
  display: inline-block;
  margin-top: .9rem;
  font-size: .85rem;
  font-weight: 600;
  color: var(--blue);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: border-color .18s ease;
}
.presenter-card__link:hover,
.presenter-card__link:focus-visible { border-bottom-color: var(--blue); }

/* Whole card is clickable: stretch the session link over the card,
   keeping tag filters and in-bio links clickable above it */
.presenter-card { position: relative; }
.presenter-card__link::after { content: ""; position: absolute; inset: 0; }
.presenter-card .tag,
.presenter-card__bio a { position: relative; z-index: 1; }
.presenter-card:hover .presenter-card__link { border-bottom-color: var(--blue); }

/* ── Next session (home, overlaps hero) ───── */
.next-session { margin-top: -4rem; position: relative; z-index: 2; }
.next-session__card {
  background: var(--white); border-radius: var(--r); box-shadow: var(--sh-lg);
  border-top: 5px solid var(--gold);
  display: grid; grid-template-columns: 180px 1fr auto; gap: 2rem; align-items: center;
  padding: 2rem 2.5rem;
}
.next-session__when { display: flex; flex-direction: column; gap: .35rem; border-right: 1px solid var(--border); padding-right: 1.5rem; }
.next-session__date { font-family: 'Playfair Display', serif; font-size: 2.6rem; font-weight: 700; line-height: 1; color: var(--navy); }
.next-session__meta { font-size: .85rem; color: var(--muted); }
.next-session__speaker { font-size: 2rem; line-height: 1.1; margin: .5rem 0 .25rem; color: var(--navy); }
.next-session__topic { font-family: 'Playfair Display', serif; font-style: italic; font-size: 1.25rem; color: var(--text); margin-bottom: .35rem; }
.next-session__role { font-size: .9rem; color: var(--muted); margin: 0; }
.next-session__cta { display: flex; flex-direction: column; gap: .75rem; align-items: center; text-align: center; }
.next-session__more { font-size: .9rem; font-weight: 500; color: var(--blue); }
.session-detail { background: var(--white); border-radius: var(--r); box-shadow: var(--sh-lg); padding: 2.5rem; max-width: 860px; }
@media (max-width: 860px) {
  .next-session__card { grid-template-columns: 1fr; gap: 1.25rem; padding: 1.5rem; }
  .next-session__when { flex-direction: row; align-items: baseline; gap: .75rem; border-right: 0; border-bottom: 1px solid var(--border); padding: 0 0 1rem; flex-wrap: wrap; }
  .next-session__date { font-size: 2rem; }
  .next-session__speaker { font-size: 1.6rem; }
  .next-session__cta { flex-direction: row; align-items: center; justify-content: flex-start; }
  .next-session { margin-top: -3rem; }
}

/* ── Quotes on navy (home) ────────────────── */
.section--dark .blockquote__text { color: #fff; }
.section--dark .blockquote__attr { color: rgba(255,255,255,.65); }
.section--dark .quote-dot { background: rgba(255,255,255,.28); }
.section--dark .quote-dot.active { background: var(--gold); }
.section--dark .section-hd p, .section--dark p[style] { color: rgba(255,255,255,.78) !important; }
.session-detail .rsvp-box { margin-top: 1rem; }
