/* ---- interchange (Interchange — Mobility summit 101) — asphalt, bone, one amber
   STRUCTURAL MOVE — THE REGISTER: the page never splits. Every band under the
   stage is full-bleed and holds one narrow centred column, tarmac and bone
   painted BY CLASS (never by index, so the stock nth-child(even) wash cannot
   reshuffle the colour). The longest band is the programme, and it is the whole
   point: a ruled register with a single amber rule running down its left edge
   and the times standing against it in tabular figures, like a route board.
   The amber is spent exactly three times — that rail, the hairline under each
   track tile, and the registration band. Everything reads from four tokens, so
   night only has to restate the tokens. */
body.t-interchange.ws-body {
  --bg: #f2f1ec; --fg: #4c4e52; --heading: #14161a; --text: #4c4e52; --muted: #82858a;
  --ich-tar: #191b1e; --ich-bone: #f2f1ec; --ich-amber: #e8a020; --ich-line: #d5d3ca;
  --hero-a: rgba(12, 13, 15, 0.30); --hero-b: rgba(12, 13, 15, 0.74);
}
body.t-interchange .ws-section { padding: 104px 0; }

/* the bands. each carries `body` + the section's own class so it always outranks
   `.ws-section:nth-child(even):not(.ws-cta):not(.ws-shoplink)` */
body.t-interchange.ws-body .ws-section.ws-quoteblock,
body.t-interchange.ws-body .ws-section.ws-features,
body.t-interchange.ws-body .ws-section.ws-listblock,
body.t-interchange.ws-body .ws-section.ws-contact { background: var(--ich-bone); }
body.t-interchange.ws-body .ws-section.ws-titleblock,
body.t-interchange.ws-body .ws-section.ws-video,
body.t-interchange.ws-body .ws-section.ws-team,
body.t-interchange.ws-body .ws-section.ws-columns,
body.t-interchange .ws-footer { background: var(--ich-tar); color: #e9e7e0; border-top: 0; }
body.t-interchange .ws-titleblock .ws-title-h,
body.t-interchange .ws-team .ws-h2,
body.t-interchange .ws-member strong,
body.t-interchange .ws-col-h { color: #f4f2ec; }
body.t-interchange .ws-titleblock .ws-title-sub,
body.t-interchange .ws-team .ws-member p,
body.t-interchange .ws-team .ws-member .muted,
body.t-interchange .ws-columns .ws-col p,
body.t-interchange .ws-footer a { color: #9a9da2; }

/* nav — the bar rides the stage in tarmac, wordmark left, seven links right */
body.t-interchange .ws-nav { background: var(--ich-tar); border-bottom: 0; backdrop-filter: none; color: #f4f2ec; }
body.t-interchange .ws-brand { font-size: 14px; font-weight: 800; letter-spacing: 0.3em; text-transform: uppercase; }
body.t-interchange .ws-nav-links a { color: #f4f2ec; font-size: 11px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; opacity: 0.6; }
body.t-interchange .ws-nav-links a:hover, body.t-interchange .ws-nav-links a.on { opacity: 1; color: var(--ich-amber); }

/* the stage — full viewport, copy low and left, a plain read-more not a slab */
body.t-interchange .ws-hero { min-height: 100vh; align-items: flex-end; padding-bottom: 78px; }
body.t-interchange.ws-body .ws-hero h1 { font-size: clamp(36px, 6.4vw, 82px); font-weight: 800; letter-spacing: -0.05em; line-height: 1.02; max-width: 16ch; }
body.t-interchange.ws-body .ws-hero-cta.btn.brand { background: transparent; color: var(--ich-amber); box-shadow: none; padding: 0; font-size: 12px; font-weight: 800; letter-spacing: 0.2em; text-transform: uppercase; text-decoration: underline; text-underline-offset: 9px; }

/* the two lone type bands — the title under the stage and the delegate line */
body.t-interchange .ws-title-h, body.t-interchange .ws-quote-t { font-weight: 700; letter-spacing: -0.035em; line-height: 1.16; font-style: normal; }

/* the film runs edge to edge, uncaptioned */
body.t-interchange .ws-video, body.t-interchange .ws-video .ws-container { padding: 0; max-width: none; }
body.t-interchange .ws-video-frame { border-radius: 0; box-shadow: none; aspect-ratio: 21 / 9; }

/* four tracks, four speakers — both rows fill exactly */
body.t-interchange .ws-features-grid, body.t-interchange .ws-team-grid { grid-template-columns: repeat(4, 1fr); gap: 32px 26px; }
body.t-interchange .ws-feature { text-align: left; padding: 0 0 22px; border-bottom: 1px solid var(--ich-amber); }
body.t-interchange .ws-feature h3 { color: var(--heading); font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.16em; margin: 0 0 10px; }
body.t-interchange .ws-member-photo img { width: 100%; height: auto; aspect-ratio: 4 / 5; border-radius: 0; margin: 0 0 16px; }

/* THE REGISTER — the amber rail with the times standing against it */
body.t-interchange .ws-listblock .ws-list { list-style: none; margin: 30px 0 0; padding: 0 0 0 26px; border-left: 2px solid var(--ich-amber); }
body.t-interchange .ws-listblock .ws-list li { margin: 0; padding: 22px 0; border-top: 1px solid var(--ich-line); font-size: 16px; line-height: 1.55; color: var(--heading); font-variant-numeric: tabular-nums; }

/* the registration band — the third and last amber spend */
body.t-interchange.ws-body .ws-section.ws-cta { background: var(--ich-amber); color: #17140c; }
body.t-interchange .ws-cta-inner h2, body.t-interchange .ws-cta-inner p { color: #17140c; opacity: 1; }
body.t-interchange.ws-body .ws-cta .btn.brand { background: #14161a; color: var(--ich-amber); border-radius: 0; padding: 16px 34px; font-size: 11.5px; font-weight: 800; letter-spacing: 0.2em; text-transform: uppercase; }

/* partners as eight ruled name-plates, two rows welded into one grid */
body.t-interchange .ws-columns { padding: 54px 0; }
body.t-interchange .ws-col-h { font-size: 12.5px; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; margin: 0 0 10px; padding-top: 16px; border-top: 1px solid #35383d; }

/* the second ask */
body.t-interchange .ws-field input, body.t-interchange .ws-field textarea { background: #ffffff; border: 1px solid var(--ich-line); border-radius: 0; color: var(--heading); }
body.t-interchange.ws-body .ws-contact .btn.brand { background: var(--heading); color: var(--ich-bone); border-radius: 0; padding: 15px 32px; font-size: 11.5px; font-weight: 800; letter-spacing: 0.2em; text-transform: uppercase; }

@media (max-width: 900px) {
  body.t-interchange .ws-section { padding: 64px 0; }
  body.t-interchange .ws-features-grid, body.t-interchange .ws-team-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 760px) {
  body.t-interchange .ws-nav-links { background: var(--ich-tar); border-color: #35383d; }
  body.t-interchange .ws-nav-links a { opacity: 1; }
  body.t-interchange .ws-features-grid, body.t-interchange .ws-team-grid { grid-template-columns: 1fr; }
}

/* interchange by night — tarmac drops to near-black and the bone bands go with
   it, so the alternation survives the toggle instead of flattening; the amber
   lifts a shade because it now sits on black rather than paper */
html[data-theme="dark"] body.t-interchange.ws-body {
  --bg: #101113; --fg: #9b9ea3; --heading: #efeee8; --text: #9b9ea3; --muted: #74777c;
  --ich-tar: #1b1d20; --ich-bone: #101113; --ich-amber: #f0aa2e; --ich-line: #2b2e32;
  --hero-a: rgba(8, 9, 10, 0.44); --hero-b: rgba(8, 9, 10, 0.84);
}
html[data-theme="dark"] body.t-interchange { background: var(--bg); }
html[data-theme="dark"] body.t-interchange .ws-field input,
html[data-theme="dark"] body.t-interchange .ws-field textarea { background: #191b1e; border-color: #2b2e32; color: #efeee8; }
html[data-theme="dark"] body.t-interchange.ws-body .ws-cta .btn.brand { background: #101113; }
