/* ===== Sections beyond hero ===== */

/* ===== 03 · Bio ===== */
.bio-grid{
  display:grid;
  grid-template-columns:minmax(0, 0.45fr) minmax(0, 0.55fr);
  gap:var(--s-8);
  align-items:flex-start;
}
.bio-quote{margin-bottom:var(--s-5)}
.bio-body{display:flex;flex-direction:column;gap:var(--s-4)}
.bio-body p{
  font-size:16px;line-height:1.65;color:var(--ink-2);
}
.bio-body p strong{color:var(--ink);font-weight:600}

/* ===== 04 · Topics (5-up hairline grid) ===== */
.topics-grid{
  display:grid;
  grid-template-columns:repeat(5, minmax(0, 1fr));
  gap:var(--s-4);
}
.topic{
  display:flex;flex-direction:column;
  height:100%;
}
.topic .card-body{flex:1 1 auto;margin-bottom:var(--s-4)}
.topic-talks{
  font-family:var(--sans);
  font-size:13px;line-height:1.55;
  color:var(--ink-2);
  margin-bottom:var(--s-3);
}
.topic-talks li{
  list-style:none;
  padding-left:14px;
  position:relative;
  margin-bottom:6px;
}
.topic-talks li::before{
  content:"";
  position:absolute;left:0;top:9px;
  width:6px;height:1px;background:var(--line-hi);
}

/* ===== 05 · Background timeline =====
   4 columns. Each stage is a self-contained module with its own
   top hairline rule and node dot. Current stage uses amber. */
.bg-timeline{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:0;
  margin-top:var(--s-3);
}
.bg-stage{
  position:relative;
  display:flex;flex-direction:column;
  padding:var(--s-6) var(--s-4) 0 0;
  border-top:1px solid var(--line-hi);
}
.bg-stage::before{
  /* node dot anchored on the top hairline */
  content:"";
  position:absolute;
  left:0;top:-5px;
  width:9px;height:9px;
  border-radius:50%;
  background:var(--ink-3);
  border:2px solid var(--bg);
  box-shadow:0 0 0 1px var(--line-hi);
}
.bg-stage.current{
  border-top-color:var(--amber-rim);
}
.bg-stage.current::before{
  background:var(--amber);
  border-color:var(--bg);
  box-shadow:var(--halo-amber);
}
.bg-stage-id{
  font-family:var(--mono);font-size:11px;font-weight:500;
  letter-spacing:0.18em;text-transform:uppercase;
  color:var(--ink-3);
  margin-bottom:var(--s-3);
}
.bg-stage.current .bg-stage-id{color:var(--amber)}
.bg-stage-title{
  font-family:var(--sans);font-weight:700;font-size:20px;
  letter-spacing:-0.015em;
  color:var(--ink);
  margin-bottom:6px;
}
.bg-stage-loc{
  font-family:var(--mono);font-size:10px;font-weight:500;
  letter-spacing:0.16em;text-transform:uppercase;
  color:var(--ink-3);
  margin-bottom:var(--s-3);
}
.bg-stage-desc{
  font-size:14px;line-height:1.55;color:var(--ink-2);
  max-width:260px;
}

/* ===== 06 · Stats strip (P-01) ===== */
.stats-strip{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:var(--s-7);
  padding:var(--s-7) 0;
  border-top:1px solid var(--line-hi);
  border-bottom:1px solid var(--line-hi);
}

/* ===== 07 · Talks ledger ===== */
.talks{
  display:flex;flex-direction:column;
}
.talks-year{
  display:grid;
  grid-template-columns:96px 1fr;
  gap:var(--s-5);
  padding:var(--s-6) 0;
  border-top:1px solid var(--line);
}
.talks-year:first-child{border-top:none}
.talks-year-label{
  font-family:var(--sans);
  font-weight:700;font-size:32px;
  letter-spacing:-0.03em;
  color:var(--ink);
  line-height:1;
}
.talks-rows{display:flex;flex-direction:column}
.talk-row{
  display:grid;
  grid-template-columns:48px 1fr 280px 120px;
  gap:var(--s-5);
  align-items:baseline;
  padding:var(--s-3) 0;
  border-top:1px solid var(--line);
}
.talk-row:first-child{border-top:none}
.talk-mo{
  font-family:var(--mono);font-size:11px;font-weight:500;
  letter-spacing:0.16em;text-transform:uppercase;
  color:var(--ink-3);
}
.talk-title{
  font-family:var(--sans);font-weight:600;font-size:15px;
  line-height:1.4;
  color:var(--ink);
  letter-spacing:-0.005em;
}
.talk-venue{
  font-family:var(--mono);font-size:11px;font-weight:500;
  letter-spacing:0.10em;text-transform:uppercase;
  color:var(--ink-2);
}
.talk-loc{
  font-family:var(--mono);font-size:11px;font-weight:500;
  letter-spacing:0.14em;text-transform:uppercase;
  color:var(--ink-3);
  text-align:right;
}

.talks-archive{
  display:none;
}
.talks-archive.open{display:contents}

.archive-toggle{
  margin-top:var(--s-5);
  display:inline-flex;align-items:center;gap:10px;
  padding:10px 0;
  font-family:var(--mono);font-size:11px;font-weight:500;
  letter-spacing:0.18em;text-transform:uppercase;
  color:var(--ink-2);
  border-bottom:1px solid var(--line-hi);
  align-self:flex-start;
}
.archive-toggle .arrow{
  color:var(--amber);
  transition:transform 200ms ease;
}
.archive-toggle.is-open .arrow{transform:rotate(180deg)}
.archive-toggle:hover{color:var(--ink)}

/* ===== 08 · Press & podcasts ===== */
.press-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:var(--s-4);
}
.press-card{
  display:flex;flex-direction:column;
  background:var(--bg-card);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  padding:var(--s-5);
  transition:border-color 160ms ease,background 160ms ease,transform 160ms ease;
}
.press-card:hover{
  border-color:var(--line-hi);
  background:var(--bg-card-hi);
  transform:translateY(-2px);
}
.press-cover{
  aspect-ratio:16/9;
  border-radius:var(--radius-md);
  background:var(--bg-2);
  border:1px solid var(--line);
  margin-bottom:var(--s-4);
  overflow:hidden;
  display:flex;align-items:center;justify-content:center;
  position:relative;
}
.press-cover-glyph{
  font-family:var(--mono);font-size:11px;font-weight:500;
  letter-spacing:0.22em;text-transform:uppercase;
  color:var(--ink-3);
}
.press-cover-glyph .play{
  display:inline-block;width:36px;height:36px;
  border-radius:50%;
  border:1px solid var(--line-hi);
  margin-right:12px;
  position:relative;
  vertical-align:middle;
}
.press-cover-glyph .play::after{
  content:"";
  position:absolute;
  left:14px;top:11px;
  width:0;height:0;
  border-top:7px solid transparent;
  border-bottom:7px solid transparent;
  border-left:10px solid var(--amber);
}
.press-kind{
  font-family:var(--mono);font-size:10px;font-weight:500;
  letter-spacing:0.18em;text-transform:uppercase;
  color:var(--ink-3);
  margin-bottom:8px;
}
.press-title{
  font-family:var(--sans);font-weight:600;font-size:16px;
  line-height:1.35;letter-spacing:-0.01em;
  color:var(--ink);
  margin-bottom:8px;
}
.press-host{
  font-family:var(--sans);font-size:13px;
  color:var(--ink-2);
  line-height:1.4;
  margin-bottom:var(--s-3);
}
.press-link{
  margin-top:auto;
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--mono);font-size:10px;font-weight:500;
  letter-spacing:0.18em;text-transform:uppercase;
  color:var(--amber);
  padding-top:var(--s-3);
  border-top:1px solid var(--line);
}
.press-link .arrow{transition:transform 160ms ease}
.press-card:hover .press-link .arrow{transform:translate(2px,-2px)}

/* ===== 09 · What I bring (4-up hairline list) ===== */
.bring{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:0;
  border-top:1px solid var(--line);
  border-left:1px solid var(--line);
}
.bring-item{
  padding:var(--s-6);
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
  display:flex;flex-direction:column;gap:var(--s-3);
}
.bring-id{
  font-family:var(--mono);font-size:11px;font-weight:500;
  letter-spacing:0.18em;text-transform:uppercase;
  color:var(--amber);
}
.bring-title{
  font-family:var(--sans);font-weight:600;font-size:18px;
  letter-spacing:-0.01em;
  color:var(--ink);
}
.bring-body{
  font-size:14px;color:var(--ink-2);line-height:1.6;
}

/* ===== 10 · Booking ===== */
.book-grid{
  display:grid;
  grid-template-columns:minmax(0, 1.1fr) minmax(0, 0.9fr);
  gap:var(--s-8);
  align-items:flex-start;
}

/* form */
.book-form{
  display:flex;flex-direction:column;gap:var(--s-4);
  background:var(--bg-card);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  padding:var(--s-6);
}
.field{display:flex;flex-direction:column;gap:6px}
.field label{
  font-family:var(--mono);font-size:10px;font-weight:500;
  letter-spacing:0.18em;text-transform:uppercase;
  color:var(--ink-3);
}
.field input,
.field select,
.field textarea{
  font-family:var(--sans);font-size:14px;
  background:var(--bg-2);
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  padding:11px 14px;
  color:var(--ink);
  transition:border-color 160ms ease,background 160ms ease;
}
.field input:focus,
.field select:focus,
.field textarea:focus{
  outline:none;
  border-color:var(--amber-rim);
  background:var(--bg-card-hi);
}
.field textarea{resize:vertical;min-height:100px;line-height:1.5}
.field-row{
  display:grid;grid-template-columns:1fr 1fr;gap:var(--s-3);
}
.book-form .submit-row{
  display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);
  margin-top:var(--s-2);
}
.book-form .submit-row .note{
  font-family:var(--mono);font-size:10px;font-weight:500;
  letter-spacing:0.16em;text-transform:uppercase;
  color:var(--ink-3);
}

/* ledger */
.book-ledger{
  display:flex;flex-direction:column;
  border-top:1px solid var(--line);
}
.book-row{
  display:grid;
  grid-template-columns:140px 1fr;
  gap:var(--s-4);
  align-items:baseline;
  padding:var(--s-4) 0;
  border-bottom:1px solid var(--line);
}
.book-key{
  font-family:var(--mono);font-size:10px;font-weight:500;
  letter-spacing:0.18em;text-transform:uppercase;
  color:var(--ink-3);
}
.book-val{
  font-family:var(--sans);font-size:14px;
  color:var(--ink);
  line-height:1.5;
}
.book-val a{color:var(--amber)}
.book-val a:hover{color:var(--amber-2)}

/* ===== 11 · Footer ===== */
.foot{
  border-top:1px solid var(--line);
  padding:var(--s-7) 0 var(--s-6);
}
.foot-row{
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--s-4);
}
.foot-brand{
  display:flex;align-items:center;gap:12px;
  font-family:var(--mono);font-size:11px;font-weight:500;
  letter-spacing:0.18em;text-transform:uppercase;
  color:var(--ink-3);
}
.foot-brand img{width:18px;height:18px;opacity:0.75}
.foot-nav{
  display:flex;align-items:center;gap:var(--s-5);
  font-family:var(--mono);font-size:11px;font-weight:500;
  letter-spacing:0.18em;text-transform:uppercase;
  color:var(--ink-3);
}
.foot-nav a:hover{color:var(--ink)}
.foot-cite{
  margin-top:var(--s-5);
  padding-top:var(--s-4);
  border-top:1px solid var(--line);
  font-family:var(--mono);font-size:10px;font-weight:500;
  letter-spacing:0.16em;text-transform:uppercase;
  color:var(--ink-4);
  max-width:680px;
}

/* ===== Booking form: honeypot + status states ===== */
.book-form .hp{
  position:absolute !important;
  left:-9999px !important;
  width:1px;height:1px;
  overflow:hidden;opacity:0;
  pointer-events:none;
}

.book-form .submit-row .note[data-form-status][data-kind="error"]{color:var(--data-down)}
.book-form .submit-row .note[data-form-status][data-kind="success"]{color:var(--data-up)}
.book-form .submit-row .note[data-form-status][data-kind="pending"]{color:var(--ink-2)}

.book-form .btn-primary[disabled]{
  opacity:0.6;cursor:not-allowed;
}
