/* Speaker section: /speaking and /speaking/*.
   Built on sim.css tokens (DM Serif Display headings, Inter body, navy, gold, tally).
   Look: a broadcast control room. The section has its own header and footer so a
   meeting planner never sees the training menu. Pages are generated by
   scripts/build-speaker-pages.py; edit the partials in scripts/speaker/, not the HTML. */

.spk{--spk-gap:clamp(20px,2.4vw,36px)}
.spk .on-dark a:not(.btn){color:inherit}

/* ---------- header ---------- */
.spk-header{position:sticky;top:env(safe-area-inset-top,0px);z-index:40;background:var(--blackout);color:var(--mist);border-bottom:1px solid #1d2f4c}
.spk-header-in{display:flex;align-items:center;gap:18px;min-height:68px}
.spk-mark{display:inline-flex;align-items:baseline;gap:8px;color:var(--white);text-decoration:none;white-space:nowrap}
.spk-mark-name{font:400 1.5rem/1 var(--serif);letter-spacing:-.005em}
.spk-mark-csp{font:600 .75rem/1 var(--sans);letter-spacing:.1em;color:var(--gold)}
.spk-status{display:none;align-items:center;gap:8px;padding:6px 10px;border:1px solid #2a3d5c;border-radius:999px;font:600 .75rem/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--mist)}
.spk-dot{width:8px;height:8px;border-radius:50%;background:var(--tally);box-shadow:0 0 0 0 rgba(224,57,43,.55)}
@media (prefers-reduced-motion:no-preference){.spk-dot{animation:spk-tally 2.4s ease-out infinite}}
@keyframes spk-tally{0%{box-shadow:0 0 0 0 rgba(224,57,43,.55)}70%{box-shadow:0 0 0 9px rgba(224,57,43,0)}100%{box-shadow:0 0 0 0 rgba(224,57,43,0)}}
.spk-nav{display:none;margin-left:auto;align-items:center;gap:clamp(14px,1.6vw,26px)}
.spk-nav a:not(.btn){color:var(--mist);text-decoration:none;font:500 .9375rem/1 var(--sans);padding-block:10px}
.spk-nav a:not(.btn):hover,.spk-nav a[aria-current]{color:var(--white)}
.spk-nav a[aria-current]{box-shadow:inset 0 -2px 0 var(--gold)}
.spk-menu{margin-left:auto;position:static}
.spk-menu>summary{list-style:none;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;border:1px solid #2a3d5c;border-radius:var(--radius);color:var(--white);font:600 .875rem/1 var(--sans);cursor:pointer}
.spk-menu>summary::-webkit-details-marker{display:none}
.spk-menu>summary::after{content:"";width:12px;height:8px;background:linear-gradient(currentColor 0 0) 0 0/100% 2px no-repeat,linear-gradient(currentColor 0 0) 0 50%/100% 2px no-repeat,linear-gradient(currentColor 0 0) 0 100%/100% 2px no-repeat}
.spk-menu[open]>summary{border-color:var(--gold)}
.spk-menu-panel{position:absolute;left:0;right:0;top:100%;background:var(--blackout);border-bottom:1px solid #1d2f4c;padding:8px max(16px,env(safe-area-inset-right,0px)) 20px max(16px,env(safe-area-inset-left,0px));display:grid;gap:2px}
.spk-menu-panel a{display:block;padding:14px 0;border-bottom:1px solid #1d2f4c;color:var(--white);text-decoration:none;font:400 1.375rem/1.2 var(--serif)}
.spk-menu-panel .btn{margin-top:14px;font-family:var(--sans)}
@media (min-width:700px){.spk-status{display:inline-flex}}
@media (min-width:1100px){.spk-nav{display:flex}.spk-menu{display:none}.spk-status{margin-left:6px}}

/* ---------- hero ---------- */
.spk-hero{position:relative;isolation:isolate;overflow:hidden;background:var(--blackout);color:var(--mist)}
.spk-hero-photo{position:relative;margin:0}
.spk-hero-photo img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;object-position:var(--focus,45% 30%)}
.spk-hero-photo::after{content:"";position:absolute;inset:auto 0 0 0;height:38%;background:linear-gradient(transparent,var(--blackout))}
.spk-hero-copy{position:relative;padding-block:8px 52px}
.spk-hero .label{display:flex;align-items:center;gap:10px;color:var(--gold)}
.spk-hero h1{margin-top:14px;max-width:15ch;font:400 clamp(2.5rem,5.4vw,4.75rem)/1.02 var(--serif);letter-spacing:-.015em;color:var(--white);text-wrap:balance}
.spk-hero h1 em{font-style:italic;color:var(--gold-bright)}
.spk-hero .lead{margin-top:20px;max-width:46ch;color:var(--mist)}
.spk-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.spk-actions .btn--ghost{color:var(--white)}
.spk-watch-btn .spk-play{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--gold);color:var(--navy-dark)}
.spk-watch-btn .spk-play svg{width:10px;height:10px;margin-left:2px}
.spk-chyron{display:flex;align-items:stretch;margin-top:32px;max-width:520px;box-shadow:0 14px 40px rgba(0,0,0,.35)}
.spk-chyron-tag{display:grid;place-items:center;padding:0 12px;background:var(--tally);color:var(--white);font:700 .6875rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase}
.spk-chyron-main{flex:1;padding:10px 16px;background:var(--white);color:var(--navy-dark)}
.spk-chyron-name{display:block;font:400 1.5rem/1.1 var(--serif)}
.spk-chyron-role{display:block;margin-top:3px;font:600 .75rem/1.3 var(--sans);letter-spacing:.04em;color:var(--slate)}
.spk-chyron-meta{display:none;align-items:center;padding:0 14px;background:var(--navy);color:var(--mist);font:500 .6875rem/1.4 var(--sans);letter-spacing:.08em;text-transform:uppercase;max-width:180px}
@media (min-width:600px){.spk-chyron-meta{display:flex}}
@media (min-width:900px){
  .spk-hero{display:flex;align-items:center;min-height:clamp(600px,78vh,780px)}
  .spk-hero-photo{position:absolute;top:0;right:0;bottom:0;width:62%;z-index:-1}
  .spk-hero-photo img{height:100%;aspect-ratio:auto}
  .spk-hero-photo::after{inset:0;height:auto;background:linear-gradient(90deg,var(--blackout) 0%,rgba(10,20,36,.82) 14%,rgba(10,20,36,.25) 34%,rgba(10,20,36,0) 52%),linear-gradient(0deg,rgba(10,20,36,.75),rgba(10,20,36,0) 32%)}
  .spk-hero-copy{flex:0 1 auto;padding-block:72px}
  .spk-hero-copy>*{max-width:min(600px,48%)}
  .spk-hero .lead{max-width:min(44ch,46%)}
}
/* inner pages: shorter hero */
.spk-hero--page h1{max-width:18ch;font-size:clamp(2.25rem,4.4vw,3.75rem)}
@media (min-width:900px){.spk-hero--page{min-height:clamp(480px,62vh,620px)}}
.spk-crumbs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px;font:500 .8125rem/1.4 var(--sans);color:var(--mist)}
.spk-crumbs a{color:var(--mist)}
.spk-crumbs span[aria-hidden]{opacity:.6}

/* ---------- shared section bits ---------- */
.spk-sec{padding-block:clamp(64px,8vw,112px)}
.spk-sec--tight{padding-block:clamp(44px,5vw,72px)}
.spk-head{display:grid;gap:14px;margin-bottom:clamp(28px,4vw,52px);max-width:760px}
.spk-head h2{font:400 var(--fs-l)/1.06 var(--serif);letter-spacing:-.01em;color:var(--fg-strong);text-wrap:balance}
.spk-head p{font-size:var(--fs-lead);line-height:1.6}
.spk-head--split{max-width:none}
@media (min-width:900px){.spk-head--split{grid-template-columns:1.1fr 1fr;align-items:end;column-gap:48px}}
.spk-tc{font:600 .75rem/1 var(--sans);font-variant-numeric:tabular-nums;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-text)}
.spk-link{font-weight:600;color:var(--fg-strong);text-decoration:underline;text-decoration-color:var(--accent-text);text-underline-offset:.25em}
.spk-link::after{content:" \2192"}

/* ---------- ask the first question (role chooser) ---------- */
.spk-ask{background:var(--navy-dark);border-top:1px solid var(--navy-line)}
.spk-roles-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr))}
.spk-role{position:relative;display:grid;gap:8px;align-content:start;padding:22px 22px 20px;border:1px solid var(--navy-line);border-radius:var(--radius);background:rgba(255,255,255,.02);color:var(--mist);text-decoration:none;transition:border-color var(--t-base),background var(--t-base),transform var(--t-base) var(--e-out)}
.spk-role:hover,.spk-role:focus-visible{border-color:var(--gold);background:rgba(200,169,81,.06);transform:translateY(-2px)}
.spk-role .spk-tc{color:var(--gold)}
.spk-role h3{font:400 1.5rem/1.15 var(--serif);color:var(--white)}
.spk-role p{font-size:var(--fs-small);line-height:1.55}
.spk-role .spk-go{margin-top:6px;font:600 .875rem/1 var(--sans);color:var(--gold-bright)}
.spk-role .spk-go::after{content:" \2192"}
.spk-ask-q{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 18px;margin-bottom:22px}
.spk-ask-q h2{font:400 var(--fs-m)/1.15 var(--serif);color:var(--white)}

/* ---------- proof strip ---------- */
.spk-proof{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));border-top:1px solid var(--line)}
.spk-proof li{padding:22px 22px 22px 0;border-bottom:1px solid var(--line)}
.spk-proof b{display:block;font:400 1.375rem/1.2 var(--serif);color:var(--fg-strong)}
.spk-proof span{display:block;margin-top:6px;font-size:var(--fs-small);line-height:1.5}
@media (min-width:900px){.spk-proof li{border-bottom:0;padding:26px 24px 8px 0}.spk-proof li+li{padding-left:24px;border-left:1px solid var(--line)}}

/* ---------- logos (light band) ---------- */
.spk-logos{background:var(--white);padding-block:clamp(36px,4vw,52px)}
.spk-logos .label{display:block;margin-bottom:18px;color:var(--gold-ink)}
.spk-logo-row{display:flex;flex-wrap:wrap;align-items:center;gap:22px clamp(28px,4vw,52px)}
.spk-logo-row img{height:30px;width:auto;filter:grayscale(1) contrast(1.15);opacity:.78}
.spk-net{display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px;margin-top:22px;padding-top:18px;border-top:1px solid var(--rule);font:500 .8125rem/1.4 var(--sans);color:var(--slate)}
.spk-net img{height:26px;width:auto;filter:grayscale(1);opacity:.8}

/* ---------- keynotes ---------- */
.spk-talks{display:grid;gap:var(--spk-gap)}
.spk-talk{display:grid;gap:22px;padding:clamp(20px,2.4vw,32px);border:1px solid var(--line);border-radius:var(--radius);background:rgba(255,255,255,.015)}
.spk-talk .video-poster{aspect-ratio:16/9}
.spk-talk .video-poster img{height:100%}
.spk-talk h3{font:400 clamp(1.75rem,2.6vw,2.4rem)/1.08 var(--serif);color:var(--fg-strong);text-wrap:balance}
.spk-talk .spk-line{margin-top:10px;font:italic 400 1.1875rem/1.4 var(--serif);color:var(--gold-bright)}
.spk-talk dl{display:grid;gap:12px;margin-top:18px}
.spk-talk dt{font:600 .75rem/1.2 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--accent-text)}
.spk-talk dd{margin-top:4px}
.spk-ticks{display:grid;gap:8px}
.spk-ticks li{position:relative;padding-left:22px}
.spk-ticks li::before{content:"";position:absolute;left:0;top:.62em;width:10px;height:2px;background:var(--gold)}
.spk-talk-foot{display:flex;flex-wrap:wrap;gap:12px 18px;align-items:center;margin-top:22px}
.spk-badge{display:inline-flex;align-items:center;gap:8px;padding:5px 10px;border:1px solid var(--gold);border-radius:999px;font:600 .6875rem/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--gold)}
@media (min-width:900px){
  .spk-talks{grid-template-columns:1fr 1fr}
  .spk-talk--lead{grid-column:1/-1;grid-template-columns:1.05fr 1fr;align-items:center;gap:40px}
}
.spk-book-row{display:flex;gap:18px;align-items:center;margin-top:18px}
.spk-book-row img{width:72px;height:auto;box-shadow:0 10px 24px rgba(0,0,0,.35)}

/* ---------- run of show (emcee) ---------- */
.spk-rundown{border:1px solid var(--line);border-radius:var(--radius)}
.spk-rundown-head{display:flex;justify-content:space-between;gap:12px;padding:12px 18px;border-bottom:1px solid var(--line);font:600 .75rem/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--accent-text)}
.spk-rundown ol{margin:0}
.spk-rundown li{display:grid;grid-template-columns:76px 1fr;gap:16px;padding:16px 18px;border-bottom:1px solid var(--line)}
.spk-rundown li:last-child{border-bottom:0}
.spk-rundown time{font:600 .9375rem/1.4 var(--sans);font-variant-numeric:tabular-nums;color:var(--gold)}
.spk-rundown b{display:block;color:var(--fg-strong)}
.spk-split{display:grid;gap:var(--spk-gap)}
@media (min-width:900px){.spk-split{grid-template-columns:1.15fr 1fr;align-items:start;gap:56px}.spk-split--even{grid-template-columns:1fr 1fr}.spk-split--media{grid-template-columns:1fr 1.1fr;align-items:center}}
.spk-figure{margin:0}
.spk-figure img{display:block;width:100%;height:auto;border-radius:var(--radius)}
.spk-figure figcaption{margin-top:10px;font:500 .8125rem/1.4 var(--sans);color:var(--fg)}
.spk-points{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));margin-top:22px}
.spk-points li{padding-top:14px;border-top:1px solid var(--line)}
.spk-points b{display:block;color:var(--fg-strong);margin-bottom:4px}
.spk-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.spk-chips li{padding:7px 12px;border:1px solid var(--line);border-radius:999px;font-size:var(--fs-small)}

/* ---------- watch ---------- */
.spk-watch{display:grid;gap:var(--spk-gap)}
.spk-watch .video-poster{aspect-ratio:16/9}
.spk-watch .video-poster img{height:100%}
.spk-watch-main h3{margin-top:14px;font:400 1.6rem/1.2 var(--serif);color:var(--fg-strong)}
.spk-watch-side{display:grid;gap:18px;align-content:start}
.spk-watch-item{display:grid;grid-template-columns:150px 1fr;gap:14px;align-items:center}
.spk-watch-item h3{font:600 1rem/1.35 var(--sans);color:var(--fg-strong)}
.spk-watch-item p{margin-top:4px;font-size:var(--fs-small);line-height:1.45}
.spk-watch-item .video-play{width:44px;height:44px;margin:-22px 0 0 -22px}
.spk-watch-item .video-meta{display:none}
.spk-watch-item .video-play svg{width:16px;height:16px}
@media (min-width:900px){.spk-watch{grid-template-columns:1.6fr 1fr}}

/* ---------- quotes ---------- */
.spk-quotes{display:grid;gap:var(--spk-gap)}
.spk-quote{margin:0;padding:24px 0 0;border-top:2px solid var(--gold)}
.spk-quote blockquote p{font:400 1.1875rem/1.5 var(--serif);color:var(--fg-strong)}
.spk-quote--big blockquote p{font-size:clamp(1.5rem,2.6vw,2.2rem);line-height:1.25}
.spk-quote figcaption{margin-top:14px;font:600 .8125rem/1.4 var(--sans);letter-spacing:.02em;color:var(--accent-text)}
.spk-quote figcaption span{display:block;font-weight:400;color:var(--fg)}
@media (min-width:900px){.spk-quotes{grid-template-columns:repeat(2,1fr)}.spk-quote--big{grid-column:1/-1}}

/* ---------- about ---------- */
.spk-portrait{margin:0;position:relative;max-width:440px}
.spk-portrait img{display:block;width:100%;height:auto;border-radius:var(--radius)}
.spk-portrait figcaption{position:absolute;left:0;bottom:18px;padding:8px 12px;background:var(--gold);color:var(--navy-dark);font:700 .6875rem/1 var(--sans);letter-spacing:.12em;text-transform:uppercase}
.spk-books{display:flex;flex-wrap:wrap;gap:18px;align-items:flex-end;margin-top:24px}
.spk-books figure{margin:0;display:grid;gap:8px;max-width:150px}
.spk-books img{width:96px;height:auto;box-shadow:0 10px 24px rgba(0,0,0,.3)}
.spk-books figcaption{font-size:.8125rem;line-height:1.4}

/* ---------- planner facts and kit ---------- */
.spk-facts{display:grid;gap:0;border-top:1px solid var(--line)}
.spk-facts li{display:grid;gap:4px;padding:16px 0;border-bottom:1px solid var(--line)}
.spk-facts b{color:var(--fg-strong)}
@media (min-width:700px){.spk-facts li{grid-template-columns:220px 1fr;gap:20px}}
.spk-kit{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))}
.spk-kit li{padding:18px;border:1px solid var(--line);border-radius:var(--radius)}
.spk-kit b{display:block;color:var(--fg-strong)}
.spk-kit p{margin-top:6px;font-size:var(--fs-small);line-height:1.5}
.spk-kit .spk-link{display:inline-block;margin-top:10px;font-size:var(--fs-small)}
.spk-copy{position:relative;margin-top:12px;padding:18px 18px 18px 20px;border-left:3px solid var(--gold);background:color-mix(in srgb,var(--fg-strong) 4%,transparent);font-size:var(--fs-small);line-height:1.65}
.spk-copy>*+*{margin-top:.8em}

/* ---------- bureaus ---------- */
.spk-bureau-list{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.spk-bureau-list li a,.spk-bureau-list li span{display:inline-block;padding:8px 14px;border:1px solid var(--line);border-radius:999px;font-size:var(--fs-small);text-decoration:none;color:var(--fg-strong)}
.spk-bureau-list li a:hover{border-color:var(--gold)}

/* ---------- availability form ---------- */
.spk-booking{display:grid;gap:var(--spk-gap)}
@media (min-width:1000px){.spk-booking{grid-template-columns:.85fr 1.15fr;gap:56px;align-items:start}}
.spk-next{display:grid;gap:18px;margin-top:22px}
.spk-next li{display:grid;grid-template-columns:34px 1fr;gap:12px}
.spk-next li::before{content:counter(spk);counter-increment:spk;display:grid;place-items:center;width:30px;height:30px;border:1px solid var(--gold);border-radius:50%;font:600 .8125rem/1 var(--sans);color:var(--gold)}
.spk-next{counter-reset:spk}
.spk-next b{display:block;color:var(--fg-strong)}
.spk-direct{margin-top:26px;padding-top:18px;border-top:1px solid var(--line);font-size:var(--fs-small);line-height:1.7}
.spk-direct b{color:var(--fg-strong)}
.spk-form{display:grid;gap:18px;padding:clamp(20px,2.6vw,34px);border:1px solid var(--line);border-radius:var(--radius);background:color-mix(in srgb,var(--white) 3%,transparent)}
.spk-form fieldset{display:grid;gap:16px;margin:0;padding:0;border:0;min-width:0}
.spk-form legend{float:left;width:100%;margin-bottom:6px;font:400 1.5rem/1.2 var(--serif);color:var(--fg-strong)}
.spk-form legend+*{clear:both}
.spk-form .spk-step{font:600 .75rem/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--accent-text)}
.spk-grid2{display:grid;gap:16px}
@media (min-width:600px){.spk-grid2{grid-template-columns:1fr 1fr}}
.spk-rolepick{display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr))}
.spk-rolepick label{position:relative;display:block;cursor:pointer}
.spk-rolepick input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.spk-rolepick span{display:block;padding:14px 14px 13px;border:1px solid var(--field-line);border-radius:var(--radius);font:600 .9375rem/1.25 var(--sans);color:var(--fg-strong)}
.spk-rolepick span small{display:block;margin-top:4px;font-weight:400;font-size:.8125rem;color:var(--fg)}
.spk-rolepick input:checked+span{border-color:var(--gold);background:rgba(200,169,81,.12);box-shadow:inset 0 0 0 1px var(--gold)}
.spk-rolepick input:focus-visible+span{outline:2px solid var(--gold);outline-offset:2px}
.spk-check{display:flex;gap:10px;align-items:flex-start;font-size:var(--fs-small)}
.spk-check input{width:18px;height:18px;margin-top:2px;accent-color:var(--gold)}
.spk-form-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.js .spk-form[data-steps] .spk-step2{display:none}
.js .spk-form[data-steps].is-step2 .spk-step2{display:grid}
.js .spk-form[data-steps].is-step2 .spk-step1{display:none}
.spk-step-msg{padding:8px 12px;border-left:3px solid var(--tally);background:rgba(224,57,43,.08);font-size:var(--fs-small);color:var(--fg-strong)}
.spk-step-msg:focus{outline:2px solid var(--gold);outline-offset:2px}
.spk-route{padding:12px 14px;border:1px dashed var(--gold);font-size:var(--fs-small);line-height:1.55}
html:not(.js) .spk-step1-actions{display:none}
.spk-recap{font-size:var(--fs-small);color:var(--fg)}
.spk-recap button{border:0;background:none;padding:0;color:var(--fg-strong);text-decoration:underline;text-decoration-color:var(--accent-text);font-weight:600}

/* ---------- after the keynote ---------- */
.spk-after{display:grid;gap:var(--spk-gap);grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))}
.spk-after>div{padding-top:18px;border-top:1px solid var(--line)}
.spk-after h3{font:400 1.5rem/1.2 var(--serif);color:var(--fg-strong)}
.spk-after p{margin-top:8px}

/* ---------- footer ---------- */
.spk-footer .footer-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr))}
.spk-footer-name{font:400 1.75rem/1.1 var(--serif);color:var(--white)}
.spk-footer-train{margin-top:14px;font-size:var(--fs-small);line-height:1.6}

/* ---------- bureau version ---------- */
.spk-bureau-banner{background:var(--gold);color:var(--navy-dark);font:600 .875rem/1.4 var(--sans)}
.spk-bureau-banner .wrap{padding-block:10px}
