/* 26 expo-zenith.com — Concourse Board. Page-scoped: every rule sits under .cb */
:root{
  --cb-board:#12161C; --cb-panel:#1D242E; --cb-amber:#FFB020; --cb-paper:#F5F6F8;
  --cb-ink:#171C24; --cb-muted:#4A5563; --cb-dim:#A9B4C2; --cb-sign:#1B4FA8;
  --cb-rule:#C9CFD8; --cb-plate:#E6E9ED;
  /* No signage face is installed and nothing may be fetched: system monospace. */
  --cb-mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,
    "DejaVu Sans Mono","Liberation Mono",monospace;
  --cb-text:Arial,"Helvetica Neue",Helvetica,"Liberation Sans",sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
.cb{margin:0;background:var(--cb-paper);color:var(--cb-ink);font-family:var(--cb-text);
  font-size:17px;line-height:1.65;-webkit-text-size-adjust:100%}
.cb h1,.cb h2,.cb h3{margin:0;font-family:var(--cb-mono);font-weight:700;line-height:1.12;
  letter-spacing:-.01em}
.cb p{margin:0 0 1em}
.cb a{color:var(--cb-sign)}
.cb a:focus-visible,.cb summary:focus-visible{outline:3px solid var(--cb-amber);
  outline-offset:2px;background:var(--cb-board);color:#fff}
.cb .cb-skip{position:absolute;left:-9999px;top:0;background:var(--cb-board);color:#fff;
  padding:14px 20px;z-index:30;font-family:var(--cb-mono)}
.cb .cb-skip:focus{left:0}
.cb .cb-btn{display:inline-flex;align-items:center;min-height:48px;padding:0 22px;
  background:var(--cb-sign);color:#fff;text-decoration:none;font-family:var(--cb-mono);
  font-weight:700;font-size:15px;letter-spacing:.02em;border:2px solid var(--cb-sign)}
.cb .cb-btn:hover{background:#143D82;border-color:#143D82}
.cb .cb-btn--ghost{background:var(--cb-board);border-color:var(--cb-amber);
  color:var(--cb-amber)}
.cb .cb-btn--ghost:hover{background:var(--cb-panel)}
.cb .cb-btn--line{background:#fff;color:var(--cb-sign);border-color:var(--cb-sign)}
.cb .cb-btn--line:hover{background:var(--cb-plate)}

/* --- masthead: a single rule, no logotype block ---------------------- */
.cb-mast{display:flex;flex-wrap:wrap;gap:14px 26px;align-items:center;
  background:var(--cb-board);padding:12px clamp(14px,4vw,54px)}
.cb-mast img{width:132px;height:52px;object-fit:contain;display:block}
.cb-masttext{margin:0;color:var(--cb-dim);font-family:var(--cb-mono);font-size:13px;
  max-width:44ch}
.cb-nav{display:flex;flex-wrap:wrap;gap:2px;margin-left:auto}
.cb-nav a{display:inline-flex;align-items:center;min-height:44px;padding:0 12px;
  color:var(--cb-amber);text-decoration:none;font-family:var(--cb-mono);font-size:14px}
.cb-nav a:hover{text-decoration:underline}

/* --- the board ------------------------------------------------------- */
.cb-board{background:var(--cb-board);color:#fff;padding:clamp(26px,5vw,64px)
  clamp(14px,4vw,54px) clamp(30px,5vw,70px)}
.cb-boardhead{max-width:78ch}
.cb-kick{font-family:var(--cb-mono);font-size:14px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--cb-amber);margin-bottom:.9em}
.cb-board h1{font-size:clamp(30px,4.6vw,58px);color:#fff;margin-bottom:.5em}
.cb-lede{color:var(--cb-dim);font-size:18px;max-width:72ch}
.cb-acts{display:flex;flex-wrap:wrap;gap:12px;margin:24px 0 34px}
.cb-boardtable{width:100%;border-collapse:collapse;font-family:var(--cb-mono);
  font-size:15px;background:var(--cb-panel)}
.cb-boardtable caption{text-align:left;color:var(--cb-dim);font-size:13px;
  letter-spacing:.12em;text-transform:uppercase;padding:0 0 10px}
.cb-boardtable th,.cb-boardtable td{border-bottom:1px solid #33404F;padding:12px 14px;
  text-align:left;vertical-align:top;color:#fff}
.cb-boardtable thead th{color:var(--cb-amber);font-size:13px;letter-spacing:.1em;
  text-transform:uppercase;border-bottom:2px solid var(--cb-amber)}
.cb-gate{display:inline-block;min-width:44px;padding:4px 10px;background:var(--cb-amber);
  color:var(--cb-ink);font-weight:700;text-align:center}
.cb-when{white-space:nowrap}
.cb-theme{font-weight:700}
.cb-rooms,.cb-first,.cb-count{color:var(--cb-dim)}
.cb-slash{color:var(--cb-amber)}
.cb-boardnote{margin:18px 0 0;color:var(--cb-dim);font-family:var(--cb-mono);font-size:14px}

/* --- day plates: signage, not cards ---------------------------------- */
.cb-halls{padding:clamp(30px,5vw,72px) clamp(14px,4vw,54px)}
.cb-secthead{max-width:74ch;margin-bottom:26px}
.cb-secthead h2{font-size:clamp(24px,3.2vw,38px);margin-bottom:.45em}
.cb-plates{display:grid;gap:2px;background:var(--cb-rule);border:2px solid var(--cb-ink)}
.cb-plate{background:var(--cb-paper);padding:22px clamp(14px,2.4vw,28px)}
.cb-plate:nth-child(odd){background:#fff}
.cb-platenum{font-family:var(--cb-mono);font-size:13px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--cb-muted);margin-bottom:.6em}
.cb-plate h3{font-size:clamp(20px,2.4vw,27px)}
.cb-platedate{font-family:var(--cb-mono);font-size:14px;color:var(--cb-muted);
  margin:.6em 0 .9em}
.cb-platedesc{max-width:74ch}
.cb-platehours{font-family:var(--cb-mono);font-size:14px;color:var(--cb-muted)}
.cb-platelist{list-style:none;margin:0 0 14px;padding:0;display:grid;gap:1px;
  background:var(--cb-rule);border-top:1px solid var(--cb-rule)}
.cb-platelist li{background:var(--cb-plate);padding:9px 12px;display:flex;
  flex-wrap:wrap;gap:4px 16px;font-size:15px}
.cb-t{font-family:var(--cb-mono);font-weight:700;white-space:nowrap}
.cb-s{flex:1 1 22ch}
.cb-platefoot{margin:0;font-size:15px;color:var(--cb-muted)}

/* --- the mounted plate ------------------------------------------------ */
.cb-view{padding:0 clamp(14px,4vw,54px) clamp(30px,5vw,72px)}
.cb-view h2{font-size:clamp(22px,2.8vw,32px);margin-bottom:.6em}
.cb-bezel{margin:0;background:var(--cb-board);padding:14px;display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:0}
.cb-bezel img{display:block;width:100%;height:auto}
.cb-bezel figcaption{background:var(--cb-panel);padding:20px clamp(14px,2vw,26px)}
.cb-plateline{font-family:var(--cb-mono);color:var(--cb-amber);font-size:15px;
  font-weight:700}
.cb-provenance{color:var(--cb-dim);font-size:15px;margin-bottom:.8em}
.cb-provenance:last-child{margin-bottom:0}

/* --- directory: dot leaders, no cards --------------------------------- */
.cb-dir{padding:clamp(30px,5vw,72px) clamp(14px,4vw,54px);background:#fff;
  border-top:2px solid var(--cb-ink);border-bottom:2px solid var(--cb-ink)}
.cb-directory{list-style:none;margin:0;padding:0}
.cb-dirrow{display:grid;grid-template-columns:64px minmax(12ch,20%) minmax(0,1fr)
  minmax(0,26%) minmax(10ch,14%);gap:6px 20px;align-items:baseline;
  padding:14px 0;border-bottom:1px dotted var(--cb-rule)}
.cb-dirrow img{width:64px;height:auto;display:block;background:var(--cb-plate);
  align-self:start}
.cb-nomark{display:grid;place-items:center;width:64px;height:64px;
  background:var(--cb-board);color:var(--cb-amber);font-family:var(--cb-mono);
  font-weight:700;font-size:22px}
.cb-dirname{font-family:var(--cb-mono);font-weight:700;font-size:17px}
.cb-dirrole{font-size:15px}
.cb-dirorg{font-size:15px;color:var(--cb-muted)}
.cb-dot{color:var(--cb-sign)}
.cb-dirtrack{font-family:var(--cb-mono);font-size:13px;letter-spacing:.06em;
  text-transform:uppercase;color:var(--cb-muted)}
.cb-dirlink{margin:22px 0 0;font-family:var(--cb-mono);font-size:15px}

/* --- timetable -------------------------------------------------------- */
.cb-time{padding:clamp(30px,5vw,72px) clamp(14px,4vw,54px)}
.cb-tt{width:100%;border-collapse:collapse;margin:0 0 32px;font-size:16px;
  background:#fff}
.cb-tt caption{text-align:left;font-family:var(--cb-mono);font-size:14px;
  letter-spacing:.1em;text-transform:uppercase;color:var(--cb-ink);
  background:var(--cb-plate);padding:10px 12px;border:2px solid var(--cb-ink);
  border-bottom:0}
.cb-tt th,.cb-tt td{border:1px solid var(--cb-rule);padding:11px 12px;text-align:left;
  vertical-align:top}
.cb-tt thead th{background:var(--cb-board);color:#fff;font-family:var(--cb-mono);
  font-size:13px;letter-spacing:.08em;text-transform:uppercase}
.cb-tt-time{font-family:var(--cb-mono);white-space:nowrap;width:12ch}
.cb-tt-room{font-size:15px;color:var(--cb-muted);width:18ch}
.cb-tt-title ul{margin:8px 0 0;padding-left:18px;font-size:15px;color:var(--cb-muted)}
.cb-tt-who{font-size:15px;width:26%}

/* --- passes ----------------------------------------------------------- */
.cb-passes{padding:clamp(30px,5vw,72px) clamp(14px,4vw,54px);background:var(--cb-plate);
  border-top:2px solid var(--cb-ink)}
.cb-passes h2{font-size:clamp(24px,3.2vw,38px);margin-bottom:.45em}
.cb-passintro{max-width:70ch}
.cb-passgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
  gap:2px;background:var(--cb-ink);border:2px solid var(--cb-ink);margin:22px 0 16px}
.cb-pass{background:#fff;padding:24px clamp(14px,2.4vw,28px)}
.cb-pass--alt{background:var(--cb-paper)}
.cb-passtype{font-family:var(--cb-mono);font-size:14px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--cb-muted);margin-bottom:.5em}
.cb-passprice{font-family:var(--cb-mono);font-size:38px;font-weight:700;margin:0 0 .3em}
.cb-fine{font-size:15px;color:var(--cb-muted);max-width:82ch}

/* --- commercial desk --------------------------------------------------- */
.cb-commercial{padding:clamp(30px,5vw,72px) clamp(14px,4vw,54px)}
.cb-commercial h2{font-size:clamp(22px,2.8vw,32px);margin-bottom:.5em}
.cb-commercial>p{max-width:78ch}
.cb-orgs-h{font-size:19px;margin:34px 0 .5em}
.cb-logos{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));
  gap:2px;margin:18px 0 0;padding:0;background:var(--cb-rule);
  border:1px solid var(--cb-rule)}
.cb-logos li{background:#fff;padding:14px;display:flex;align-items:center;gap:10px;
  min-height:74px}
.cb-logos img{width:48px;height:auto;object-fit:contain;flex:0 0 auto}
.cb-logos span{font-size:14px}

/* --- wayfinding -------------------------------------------------------- */
.cb-way{padding:clamp(30px,5vw,72px) clamp(14px,4vw,54px);background:#fff;
  border-top:2px solid var(--cb-ink)}
.cb-way h2{font-size:clamp(24px,3.2vw,38px);margin-bottom:.6em}
.cb-waygrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(20px,4vw,52px);align-items:start}
.cb-waydl{margin:0;border-top:2px solid var(--cb-ink)}
.cb-waydl>div{display:grid;grid-template-columns:minmax(120px,30%) 1fr;gap:14px;
  padding:11px 0;border-bottom:1px solid var(--cb-rule)}
.cb-waydl dt{font-family:var(--cb-mono);font-size:13px;letter-spacing:.08em;
  text-transform:uppercase;color:var(--cb-muted)}
.cb-waydl dd{margin:0}
.cb-map{margin:0 0 26px}
.cb-map img{width:100%;height:auto;display:block;border:2px solid var(--cb-ink)}
.cb-map figcaption{font-size:14px;color:var(--cb-muted);padding-top:10px}
.cb-faq details{border-top:1px solid var(--cb-rule)}
.cb-faq summary{cursor:pointer;padding:14px 0;font-family:var(--cb-mono);font-weight:700;
  font-size:16px;min-height:44px;display:flex;align-items:center}
.cb-faq p,.cb-faq ul{padding-bottom:14px;max-width:70ch}
.cb-hours{margin:0;padding:0 0 14px 20px;font-size:15px}

/* --- organiser desk ---------------------------------------------------- */
.cb-desk{padding:clamp(30px,5vw,72px) clamp(14px,4vw,54px);background:var(--cb-board);
  color:#fff}
.cb-desk h2{font-size:clamp(24px,3.2vw,38px);color:#fff;margin-bottom:.7em}
.cb-desk h3{font-size:14px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--cb-amber);margin-bottom:.9em}
.cb-desk a{color:#BBD0F4}
.cb-deskgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
  gap:clamp(20px,4vw,52px)}
.cb-mail{font-family:var(--cb-mono);font-size:19px;font-weight:700}
.cb-links{list-style:none;margin:0;padding:0}
.cb-links li{padding:3px 0}
.cb-links a{display:inline-flex;align-items:center;min-height:34px;font-family:var(--cb-mono);
  font-size:15px}
.cb-foot{background:var(--cb-panel);color:var(--cb-dim);padding:22px clamp(14px,4vw,54px);
  font-size:14px}
.cb-foot a{color:#BBD0F4}
.cb-footlegal{margin:0;font-family:var(--cb-mono)}

/* --- responsive --------------------------------------------------------- */
@media (max-width:1000px){
  .cb-bezel{grid-template-columns:1fr}
  .cb-waygrid{grid-template-columns:1fr}
  .cb-dirrow{grid-template-columns:64px 1fr}
  .cb-dirrow img,.cb-nomark{grid-row:span 4}
}
@media (max-width:700px){
  .cb-boardtable,.cb-boardtable thead,.cb-boardtable tbody,.cb-boardtable tr,
  .cb-boardtable th,.cb-boardtable td{display:block;width:auto}
  .cb-boardtable thead{position:absolute;left:-9999px}
  .cb-boardtable tr{border-bottom:2px solid var(--cb-amber);padding:8px 0}
  .cb-boardtable th,.cb-boardtable td{border-bottom:0;padding:5px 12px}
  .cb-tt,.cb-tt thead,.cb-tt tbody,.cb-tt tr,.cb-tt th,.cb-tt td{display:block;width:auto}
  .cb-tt thead{position:absolute;left:-9999px}
  .cb-tt tr{border:1px solid var(--cb-rule);margin-bottom:-1px;padding:6px 0}
  .cb-tt td{border:0;padding:5px 12px}
  .cb-tt-time,.cb-tt-room,.cb-tt-who{width:auto}
}
@media (prefers-reduced-motion:reduce){.cb *{transition:none!important;animation:none!important}}
@media (prefers-contrast:more){
  .cb-lede,.cb-boardnote,.cb-provenance,.cb-rooms,.cb-first,.cb-count{color:#E6ECF3}
  .cb-platedate,.cb-platehours,.cb-platefoot,.cb-dirorg,.cb-dirtrack,.cb-fine,
  .cb-tt-room,.cb-tt-who,.cb-map figcaption,.cb-waydl dt,.cb-passtype{color:#171C24}
}
