/* Global Risk & Stabilization Summit — site styles.
   Tokens transcribed from reference/_ds tokens; components from the DS bundle + README spec. */

@font-face{font-family:"Dirk";src:url(/assets/fonts/Dirk-Light.woff2?v=7bca59de) format("woff2");font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:"NewEdge 666";src:url(/assets/fonts/NewEdge666-RegularRounded.woff2?v=f5d55f0e) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"NewEdge 666";src:url(/assets/fonts/NewEdge666-UltraBoldRounded.woff2?v=48187657) format("woff2");font-weight:800;font-style:normal;font-display:swap}
@font-face{font-family:"OT Scholar";src:url(/assets/fonts/OTScholar-Book.woff2?v=773ebd05) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"OT Scholar";src:url(/assets/fonts/OTScholar-BookItalic.woff2?v=5bf3edfc) format("woff2");font-weight:400;font-style:italic;font-display:swap}

:root{
  --time-col:72px;
  --offwhite:#FEFEF2;--offblack:#1F190B;--indigo:#4C4C6E;--highlight:#313151;
  --indigo-900:#313151;--indigo-400:#C8C9E4;--indigo-300:#E4E5F6;--indigo-200:#EFF2FE;--indigo-500:#ABADCF;
  --green:#60803E;--olive:#BAA11E;--raspberry:#C23753;--ochre:#D39135;--teal:#65AABB;--yellow:#FFBB00;
  --chapter-1:var(--ochre);--chapter-2:var(--raspberry);--chapter-3:var(--indigo);--chapter-4:var(--teal);--chapter-5:var(--green);
  --confidence-high:var(--green);--confidence-medium:var(--olive);--confidence-low:var(--raspberry);--confidence-absent:var(--offwhite);
  --font-display:"Dirk",Georgia,serif;
  --font-headline:"NewEdge 666","Helvetica Neue",Arial,sans-serif;
  --font-body-serif:"OT Scholar",Georgia,serif;
  --ease:cubic-bezier(.2,.7,.2,1);--dur:160ms;
  --label-w:290px;
}
@media(max-width:1000px){:root{--label-w:200px}}
@media(max-width:700px){:root{--label-w:110px;--time-col:62px}}

*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--offwhite);color:var(--offblack)}
/* below 320px (the smallest common phone) the page scrolls sideways rather than squeezing the nav and program */
body{min-width:320px}
body{overflow-x:clip;font-family:var(--font-body-serif)}
img{display:block;max-width:100%}
.hero>*,.report-teaser>*,.page-head>*,.report-head>*,.days-cols>*{min-width:0}
a{color:var(--offblack);text-decoration:underline;text-decoration-style:dashed;text-underline-offset:3px;transition:color var(--dur) var(--ease)}
a:hover{color:var(--highlight)}
h1,h2,p{margin:0}

/* ---------- Nav ---------- */
.nav-wrap{position:sticky;top:0;z-index:20;background:var(--offwhite);padding:18px 20px 12px;border-bottom:1px dashed var(--offblack)}
.nav{height:60px;border:1px dashed var(--offblack);display:flex;align-items:stretch;justify-content:space-between}
.nav-brand{display:flex;align-items:center;padding:0 20px;text-decoration:none}
.nav-brand:hover{color:var(--offblack)}
.wordmark-inline{display:inline-flex;align-items:baseline;gap:.3em;white-space:nowrap;font-size:22px;line-height:1;color:var(--offblack)}
.wordmark-inline .wm-light{font-family:var(--font-display);font-weight:300;letter-spacing:-0.02em}
.wordmark-inline .wm-bold{font-family:var(--font-headline);font-weight:800;letter-spacing:-0.02em}
.nav-right{display:flex;align-items:stretch}
.nav-links{display:flex;align-items:stretch}
.nav-link{display:flex;align-items:center;padding:7px 20px 4px;border-left:1px dashed var(--offblack);font-family:var(--font-headline);font-size:22px;line-height:1;text-decoration:none;transition:background-color var(--dur) var(--ease),color var(--dur) var(--ease)}
.nav-link[aria-current="page"]{text-decoration:underline;text-decoration-style:dashed;text-underline-offset:3px}
.nav-link:hover{background:var(--offblack);color:var(--offwhite)}
.nav-marks{display:flex;align-items:center;gap:20px;padding:0 20px;border-left:1px dashed var(--offblack)}
.nav-marks img{height:28px;width:auto;flex-shrink:0;filter:brightness(0)}
.nav-marks img.arc{height:20px}
/* Breakpoints follow the measured widths (wordmark ~390px, links ~360px at 22px, logos ~180px), so nothing is squeezed or pushed off the edge:
   logos go first, then the links shrink, then the wordmark goes and the links fill the bar */
.nav-brand,.nav-link,.nav-marks{flex-shrink:0}
@media(max-width:980px){.nav-marks{display:none}}
@media(max-width:820px){.nav-link{padding:7px 14px 4px;font-size:18px}}
@media(max-width:720px){
  .nav-brand{display:none}
  .nav-right{width:100%}
  .nav-links{flex:1}
  .nav-link{flex:1 1 0;justify-content:center}
  .nav-links .nav-link:first-child{border-left:none}
}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;padding:5px 14px 2px;font-family:var(--font-headline);font-weight:400;font-size:22px;line-height:1;white-space:nowrap;text-decoration:none;cursor:pointer;border:0;background:var(--highlight);color:var(--offwhite);transition:background-color var(--dur) var(--ease),color var(--dur) var(--ease)}
.btn:hover{background:var(--offblack);color:var(--offwhite)}
.btn-disabled,.btn-disabled:hover{background:var(--indigo-500);color:var(--offwhite);cursor:not-allowed}
/* the longer "(coming soon)" label wraps on narrow screens instead of overflowing */
.btn-disabled{white-space:normal;max-width:100%;text-align:center;line-height:1.15}

/* ---------- Shared section chrome ---------- */
.section{margin:0 20px;border-top:1px dashed var(--offblack);padding:45px 27px 60px;display:flex;flex-direction:column;gap:40px}
.h2-display{font-family:var(--font-display);font-weight:300;font-size:39px;line-height:1;letter-spacing:-0.02em;text-transform:uppercase}
.h1-display{font-family:var(--font-display);font-weight:300;font-size:clamp(36px,11vw,54px);line-height:1;letter-spacing:-0.02em;text-transform:uppercase}
.section-head{display:flex;gap:30px;align-items:flex-end;justify-content:space-between}
.section-head>:first-child{flex-shrink:0}
/* wide screens: the intro sits beside the heading, right-aligned; 760px and below they stack, left-aligned */
.section-intro{flex:0 1 520px;min-width:0;max-width:520px;text-align:right;font-family:var(--font-headline);font-size:14px;line-height:1.4;letter-spacing:0.02em;color:var(--indigo);text-wrap:pretty}
.lede{font-family:var(--font-headline);font-size:18px;line-height:1.4;letter-spacing:0.01em;text-wrap:pretty}
.note-indigo{font-family:var(--font-headline);font-size:14px;line-height:1.4;letter-spacing:0.02em;color:var(--indigo);text-wrap:pretty}
.body-serif{font-family:var(--font-body-serif);font-size:16px;line-height:1.5;text-wrap:pretty}
.body-serif-l{font-family:var(--font-body-serif);font-size:18px;line-height:1.45;letter-spacing:0.01em;text-wrap:pretty}

/* ---------- Summit hero ---------- */
.hero{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));align-items:stretch;min-height:690px;background:var(--highlight)}
.hero-left{padding:56px 47px 50px;display:flex;flex-direction:column;gap:34px;justify-content:center}
.hero-left .wordmark-stacked{width:100%;max-width:560px;height:auto}
.hero-tagline{font-family:var(--font-headline);font-size:26px;line-height:1.15;color:var(--offwhite);max-width:460px;text-wrap:pretty}
.hero-meta{display:flex;gap:26px;flex-wrap:wrap;font-family:var(--font-headline);font-size:16px;line-height:1.1;color:var(--indigo-400);letter-spacing:0.02em}
.hero-photo{min-height:520px;position:relative;overflow:hidden}
.hero-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

/* ---------- InfoRow ---------- */
.details{padding:60px 47px 20px;max-width:1180px;display:flex;flex-direction:column;gap:40px}
.info-row{display:flex;align-items:baseline}
.info-label{width:var(--label-w);flex-shrink:0;font-family:var(--font-headline);font-size:16px;line-height:1.4;letter-spacing:0.01em}
.info-value{flex:1;font-family:var(--font-body-serif);font-size:21px;line-height:1.3}
.info-value.l{font-size:22px}
.indent{padding-left:var(--label-w)}

/* ---------- Two days / cluster icons ---------- */
.days-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:30px}
.day-col{display:flex;flex-direction:column;gap:13px}
.day-col p{max-width:520px}
.day-col-head{margin:0;font-family:var(--font-display);font-weight:300;font-size:24px;line-height:1.1;letter-spacing:-0.02em;text-transform:uppercase}
.clusters{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,400px),1fr));gap:30px}
.cluster-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px}
.cluster{display:flex;flex-direction:column;gap:20px;border-top:1px dashed var(--offblack);padding-top:20px}
.cluster img{width:132px;height:132px;object-fit:contain}
.cluster span{font-family:var(--font-headline);font-size:18px;line-height:1.2;letter-spacing:0.01em}

/* ---------- Speakers ---------- */
.speakers{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr));gap:30px}
.speakers.featured{grid-template-columns:repeat(5,1fr)}
.speakers.featured .speaker:nth-child(n+11){display:none}
@media(min-width:1380px){.speakers.featured{grid-template-columns:repeat(6,1fr)}.speakers.featured .speaker:nth-child(n+11){display:flex}.speakers.featured .speaker:nth-child(n+13){display:none}}
@media(max-width:1159px){.speakers.featured{grid-template-columns:repeat(4,1fr)}.speakers.featured .speaker:nth-child(n+9){display:none}}
/* never fewer than 8: three columns show three full rows (9), phones show four rows of two (8) */
@media(max-width:899px){.speakers.featured{grid-template-columns:repeat(3,1fr)}.speakers.featured .speaker:nth-child(n+9){display:flex}.speakers.featured .speaker:nth-child(n+10){display:none}}
@media(max-width:659px){.speakers.featured{grid-template-columns:repeat(2,1fr);gap:24px 16px}.speakers.featured .speaker:nth-child(n+9){display:none}}
.speaker{display:flex;flex-direction:column;gap:6px}
/* speaker cards are link targets from the program; clear the sticky nav and mark the one arrived at */
.speaker,.speaker-list div{scroll-margin-top:110px}
.speaker:target .sp-photo{outline:2px solid var(--highlight);outline-offset:-2px}
.speaker-list div:target .sp-name{text-decoration:underline;text-decoration-style:dashed;text-underline-offset:3px}
.session-speakers a{color:inherit}
.session-speakers a:hover{color:var(--highlight)}
.sp-photo{background:var(--indigo-200);margin-bottom:8px;line-height:0;outline:1px dashed var(--offblack);outline-offset:-1px}
.speaker img{width:100%;aspect-ratio:4/5;object-fit:cover;filter:grayscale(1);mix-blend-mode:multiply}
.speaker .sp-name{font-family:var(--font-headline);font-size:20px;line-height:1.2;letter-spacing:0.01em}
.speaker .sp-title{font-family:var(--font-body-serif);font-size:16px;line-height:1.4;text-wrap:pretty}

/* ---------- Photo band ---------- */
.photo-band{margin:0;border-top:1px dashed var(--offblack);position:relative}
.photo-band-slide{display:none}
.photo-band-slide.active{display:block}
.photo-band img{display:block;width:100%;height:clamp(294px,42vw,588px);object-fit:cover}
.photo-band .photo-credit{margin:0;position:absolute;right:47px;bottom:16px;text-align:right;font-family:var(--font-headline);font-size:12px;line-height:1.3;letter-spacing:0.02em;color:var(--indigo-400)}
.photo-band .photo-credit a{color:inherit}
.photo-band + .section{border-top:none}

/* ---------- Objectives (top of "Two days in Reykjavík", above Day One / Day Two) ---------- */
.objectives{display:flex;flex-direction:column;gap:16px}
.objectives-intro{max-width:640px}
.objective-list{list-style:none;margin:4px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px 30px}
.objective-list li{border-top:1px dashed var(--offblack);padding-top:14px;font-family:var(--font-headline);font-size:20px;line-height:1.2;letter-spacing:0.01em;text-wrap:balance}
/* four items: one row of four, two by two, then a single column, so no row is left part-filled */
@media(max-width:760px){.section-head{flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:10px}.section-intro{flex:none;text-align:left}}
@media(max-width:1000px){.objective-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.objective-list{grid-template-columns:1fr;gap:0}.objective-list li{padding-block:12px;font-size:18px}}

/* ---------- Partners ---------- */
.logo-row{display:flex;flex-wrap:wrap;gap:40px 60px;align-items:center}
.logo-row img{height:44px;width:auto;mix-blend-mode:multiply}
.logo-group{display:flex;flex-direction:column;gap:30px}
.logo-group .block-head{padding-bottom:0}

/* ---------- Report teaser ---------- */
.report-teaser{margin:0 20px;border-top:1px dashed var(--offblack);padding:45px 27px 70px;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:45px;align-items:start}
.report-teaser-left{display:flex;flex-direction:column;gap:22px}
.chapter-list{display:flex;flex-direction:column;gap:14px}
.report-teaser-img{min-height:360px;overflow:hidden}
.report-teaser-img img{width:100%;height:100%;min-height:360px;object-fit:cover}

/* ---------- ChapterMarker ---------- */
.chapter-marker{display:flex;align-items:center;gap:8px}
.chapter-dot{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-family:var(--font-headline);font-size:22.5px;line-height:1;flex-shrink:0;padding-top:2px;outline:0.5px dashed var(--offblack);outline-offset:-0.5px}
.chapter-dot.c1{background:var(--chapter-1);color:var(--offblack)}
.chapter-dot.c2{background:var(--chapter-2);color:var(--offwhite);outline-color:var(--offwhite)}
.chapter-dot.c3{background:var(--chapter-3);color:var(--offwhite);outline-color:var(--offwhite)}
.chapter-dot.c4{background:var(--chapter-4);color:var(--offblack)}
.chapter-dot.c5{background:var(--chapter-5);color:var(--offblack)}
.chapter-title{font-family:var(--font-display);font-weight:300;font-size:24px;line-height:1;letter-spacing:-0.02em;text-transform:uppercase;text-wrap:balance}

/* ---------- Program page ---------- */
.program{padding:50px 47px 90px;display:flex;flex-direction:column;gap:50px;max-width:1120px}
.page-head{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:40px;align-items:end}
/* Pull the first day up so the header's space sits above the time switch rather than below it */
.page-head:has(.time-format:not([hidden])){margin-bottom:-30px}
.day{display:flex;flex-direction:column;border-top:1px solid var(--offblack)}
.day-head{display:flex;flex-wrap:wrap;gap:20px;align-items:baseline;justify-content:space-between;padding:18px 0 22px}
.day-title{font-family:var(--font-display);font-weight:300;font-size:24px;line-height:1.1;text-transform:uppercase}
.day-date{font-family:var(--font-headline);font-size:16px;letter-spacing:0.02em;color:var(--indigo)}
.break-row{display:grid;grid-template-columns:var(--time-col) minmax(0,1fr);gap:20px;padding:14px 0;border-top:1px dashed var(--offblack);background:var(--indigo-200)}
.break-row .break-label{font-family:var(--font-headline);font-size:16px;line-height:1;letter-spacing:0.02em;padding-top:3px}
.break-row .break-time{padding-top:3px;line-height:1}
.block-head{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:baseline;justify-content:space-between;padding:22px 0 12px;border-top:1px dashed var(--offblack)}
.block-label{font-family:var(--font-headline);font-weight:800;font-size:20px;line-height:1.1}
.block-note{font-family:var(--font-headline);font-size:14px;letter-spacing:0.02em;color:var(--indigo);text-align:right;max-width:520px}
.session{border-top:1px dashed var(--offblack)}
.session-toggle{all:unset;box-sizing:border-box;width:100%;display:grid;grid-template-columns:var(--time-col) minmax(0,1fr) 24px;gap:20px;align-items:baseline;padding:14px 0;cursor:pointer}
/* titles, times and organizers can be selected and copied; a drag-select doesn't toggle the session (see site.js) */
.session-toggle,.session-toggle *{-webkit-user-select:text;user-select:text}
/* Times sit in the left column where session codes used to be; one column width for sessions, breaks and block heads */
.session-time,.break-time,.block-time{font-family:var(--font-headline);font-weight:400;font-size:16px;line-height:1.3;letter-spacing:0.02em;color:var(--offblack);white-space:normal;text-align:left;padding-left:10px;font-variant-numeric:tabular-nums}
/* 24-hour / AM-PM switch: two ghost buttons, the chosen one filled */
.time-format{display:inline-flex;align-self:flex-start;margin-top:32px;outline:1px dashed var(--offblack);outline-offset:-1px}
.time-format[hidden]{display:none}
@media(min-width:701px){.time-format{align-self:flex-end}}
.time-format button{all:unset;cursor:pointer;padding:5px 12px 2px;font-family:var(--font-headline);font-size:16px;line-height:1.3;letter-spacing:0.02em;color:var(--offblack);transition:background-color var(--dur) var(--ease),color var(--dur) var(--ease)}
.time-format button+button{border-left:1px dashed var(--offblack)}
.time-format button[aria-pressed="true"]{background:var(--highlight);color:var(--offwhite)}
.time-format button:focus-visible{outline:1px dashed var(--offblack);outline-offset:3px}
.times-12h{--time-col:96px}
@media(max-width:700px){.times-12h{--time-col:72px}}
.program-block-head{display:grid;grid-template-columns:var(--time-col) max-content minmax(0,1fr);gap:6px 20px;align-items:baseline}
.program-block-head .block-note{justify-self:end}
.program-block-head .block-note{max-width:520px}
.block-time{font-size:16px}
.session-main{display:flex;flex-direction:column;gap:5px}
.session-title{font-family:var(--font-body-serif);font-size:18px;line-height:1.35;text-wrap:pretty}
.session-org{font-family:var(--font-headline);font-size:14px;line-height:1.3;letter-spacing:0.02em;color:var(--indigo)}
.session-room{font-family:var(--font-headline);font-size:14px;line-height:1.3;letter-spacing:0.02em}
.session-sign{font-family:var(--font-headline);font-size:20px;text-align:right}
.session-desc{padding:0 44px 20px calc(var(--time-col) + 20px);display:flex;flex-direction:column;gap:12px}
.session-desc[hidden]{display:none}
.session-desc p{max-width:640px}
.session-speakers{font-family:var(--font-headline);font-size:14px;line-height:1.5;letter-spacing:0.02em;color:var(--indigo)}
@media(max-width:700px){.session-toggle{gap:8px 12px}.session-desc{padding-left:calc(var(--time-col) + 12px);padding-right:12px}.break-row{gap:12px}.program-block-head{column-gap:12px}.session-time,.break-time,.block-time{font-size:14px;white-space:normal}}
.program-foot{display:flex;flex-direction:column;gap:13px;border-top:1px solid var(--offblack);padding-top:18px}
.contact-line{font-family:var(--font-headline);font-size:16px;line-height:1.4;letter-spacing:0.01em}
.program-speakers{display:flex;flex-direction:column;gap:30px;border-top:1px solid var(--offblack);scroll-margin-top:90px}
.program-speakers .block-head{margin-top:10px;padding-bottom:0}
/* never fewer than two headshots per row on the program page */
@media(max-width:659px){.program-speakers .speakers{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 16px}}
.speaker-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));column-gap:30px}
.speaker-list div{display:flex;flex-direction:column;gap:3px;border-top:1px dashed var(--offblack);padding:10px 0}
.speaker-list .sp-name{font-family:var(--font-headline);font-size:16px;line-height:1.3;letter-spacing:0.01em}
.speaker-list .sp-title{font-family:var(--font-body-serif);font-size:14px;line-height:1.4;text-wrap:pretty}

/* ---------- Report page ---------- */
.report-head{margin:0 20px;padding:50px 27px 45px;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:40px;align-items:end}
.report-meta{display:flex;flex-direction:column;gap:26px;font-family:var(--font-headline);font-size:16px;line-height:1.1}
.report-hero{height:420px;overflow:hidden}
.report-hero img{width:100%;height:100%;object-fit:cover}
.report-body{display:flex;flex-wrap:wrap;gap:60px;padding:70px 47px 90px;align-items:flex-start}
.side-nav-wrap{position:sticky;top:120px;width:224px;flex-shrink:0}
.side-nav{display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.side-nav a{font-family:var(--font-headline);font-size:16px;line-height:1;letter-spacing:0.01em;color:var(--offblack);text-decoration:none;white-space:nowrap;transition:opacity var(--dur) var(--ease)}
.side-nav a:hover{opacity:.6;color:var(--offblack)}
.side-nav a.active{text-decoration:underline;text-decoration-style:dashed;text-underline-offset:4px;opacity:1}
@media(max-width:900px){.side-nav-wrap{position:static;width:auto;flex:1 1 100%;min-width:0}.side-nav{flex-direction:row;flex-wrap:wrap;gap:10px 20px}.side-nav a{white-space:normal}}
.report-content{flex:1;min-width:300px;max-width:720px;display:flex;flex-direction:column;gap:70px}
.report-disclaimer{max-width:640px;margin-bottom:-20px}
.report-section{display:flex;flex-direction:column;gap:26px}
.report-section h2{text-wrap:balance;line-height:1.05}
.overview{display:flex;flex-direction:column;gap:22px}
.chapter-entry{display:flex;flex-direction:column;gap:10px}
.authors-line{font-family:var(--font-headline);font-size:14px;line-height:1.3;letter-spacing:0.02em;color:var(--indigo)}

figure.figure-frame{margin:0}

/* ---------- Footer ---------- */
footer{margin:0 20px;border-top:1px dashed var(--offblack);padding:30px 27px 60px;display:flex;flex-wrap:wrap;gap:30px;align-items:center;justify-content:space-between}
footer .marks{display:flex;align-items:center;gap:24px}
footer .marks img{height:28px;width:auto;filter:brightness(0)}
footer .marks img.arc{height:20px}
.mark{display:flex;align-items:center;text-decoration:none;transition:opacity var(--dur) var(--ease)}
.mark:hover{opacity:.6}
.mark:focus-visible{outline:1px dashed var(--offblack);outline-offset:4px}
footer a{font-family:var(--font-headline);font-size:14px;letter-spacing:0.02em;color:var(--indigo)}
footer .footer-brand{color:var(--offblack);text-decoration:none;letter-spacing:normal}

/* ---------- Small screens and touch ---------- */
@media(max-width:640px){
  /* notes stack left-aligned under their headings instead of hanging off the right */
  .day-head,.block-head{flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:10px}
  .block-note,.day-date{text-align:left}
  /* phone margins line up with the nav's 20px instead of the desktop 47px */
  .hero-left,.details,.program,.report-body{padding-inline:20px}
  /* intro text uses the full width on phones; only the label/value rows keep their label column */
  .indent{padding-left:0}
  .program{padding-top:36px;gap:40px}
  /* times sit above session titles so titles get the full width */
  .session-toggle{grid-template-columns:minmax(0,1fr) 24px;row-gap:4px}
  .session-time{grid-column:1/-1}
  .session-desc{padding-left:0}
  .break-row{grid-template-columns:max-content minmax(0,1fr)}
  .program-block-head{display:flex;flex-direction:column;gap:4px}
  .program-block-head .block-note{margin-top:6px}
  .session-time,.break-time,.block-time{white-space:nowrap}
  /* on phones times sit above titles, so they line up with the titles; only the tinted break band keeps an inset */
  .session-time,.block-time{padding-left:0}
}
@media(max-width:560px){
  footer .wordmark-inline{flex-wrap:wrap;white-space:normal;row-gap:4px}
}
/* finger-sized hit areas on touch screens; desktop keeps the design system's 5/14/2 button padding */
@media(pointer:coarse){
  .btn{min-height:44px;padding-inline:18px}
  .side-nav a{padding-block:12px}
  .side-nav{row-gap:0}
  footer a,.contact-line a{display:inline-block;padding-block:12px}
}
