@layer legacy {
/* KECB DEPLOY-660 — authoritative sitewide visual QA, readability, continuity, and no-blue public-surface architecture.
   Consolidates the 556 direction into explicit surface, type, reading, spacing and component rules.
   Four-path IA is preserved; visual correctness and consistency are the contract. */
:root{
  --kecb-black:#0b0e10;
  --kecb-black-2:#111518;
  --kecb-ink:#17191a;
  --kecb-ink-soft:#50565a;
  --kecb-paper:#fffdf9;
  --kecb-paper-warm:#f7f1e8;
  --kecb-paper-soft:#f2ece3;
  --kecb-line:#ded6ca;
  --kecb-line-strong:#c7b9a5;
  --kecb-brass:#b88a48;
  --kecb-brass-deep:#7f5c29;
  --kecb-oxblood:#7d3028;
  --kecb-slate:#485760;
  --kecb-navy-data:#203d54;
  --kecb-white:#fff;
  --kecb-radius:var(--kecb-radius-card);
  --kecb-radius-sm:var(--kecb-radius-sm);
  --kecb-radius-card:var(--kecb-radius-card);
  --kecb-radius-control:var(--kecb-radius-control);
  --kecb-radius-pill:var(--kecb-radius-pill);
  --kecb-max:1180px;
  --kecb-reading:68ch;
  --kecb-working:960px;
  --kecb-discovery:1180px;
  --kecb-type-meta:.875rem;
  --kecb-type-small:.9375rem;
  --kecb-type-body:1rem;
  --kecb-type-h4:1.125rem;
  --kecb-type-h3:clamp(1.28rem,2vw,1.5rem);
  --kecb-type-h2:clamp(1.7rem,3vw,2.35rem);
  --kecb-type-h1:clamp(2.2rem,4.45vw,3.95rem);
  --kecb-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --kecb-serif:Georgia,"Times New Roman",serif;
  --kecb-s1:.375rem;
  --kecb-s2:.75rem;
  --kecb-s3:1.25rem;
  --kecb-s4:2.25rem;
  --kecb-s5:4rem;
  --kecb-section-gap-tight:1rem;
  --kecb-section-gap-standard:2rem;
  --kecb-section-gap-major:3.5rem;
  --kecb-surface-paper:var(--kecb-paper-warm);
  --kecb-surface-raised:#fff;
}

/* ---------- foundation ---------- */
html{scroll-padding-top:76px}
body[data-design-system="institutional-v2"],
body.page-operational,
body.booking-intelligence-page,
body.show-history{
  background:var(--kecb-paper);
  color:var(--kecb-ink);
  font-family:var(--kecb-sans);
  line-height:1.58;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
body :where(h1,h2){font-family:var(--kecb-serif);text-wrap:balance}
/* Surface context owns text colour; headings never guess the background. */
html:root body .surface-light{background:var(--kecb-paper-warm);background-image:none;color:var(--kecb-ink)}
html:root body .surface-light :is(h1,h2,h3,h4,strong){color:var(--kecb-ink)}
html:root body .surface-light :is(p,li,dd,small){color:var(--kecb-ink-soft)}
html:root body .surface-dark{color:var(--kecb-paper)}
html:root body .surface-dark :is(h1,h2,h3,h4,strong){color:var(--kecb-paper)}
html:root body .surface-dark :is(p,li,dd,small){color:#e5ddd2}
body :where(h1){letter-spacing:-.035em;line-height:1.01}
body :where(h2){letter-spacing:-.025em;line-height:1.08}
body :where(h3,h4,strong){letter-spacing:-.008em}
body main :where(h1){font-size:max(var(--kecb-type-meta), var(--kecb-type-h1))}
body main :where(h2){font-size:max(var(--kecb-type-meta), var(--kecb-type-h2))}
body main :where(h3){font-size:max(var(--kecb-type-meta), var(--kecb-type-h3));line-height:1.2}
body main :where(h4){font-size:max(var(--kecb-type-meta), var(--kecb-type-h4));line-height:1.25}
body main :where(button,.button,.btn,input,select,textarea,summary){font-size:max(var(--kecb-type-meta), max(14px,var(--kecb-type-small)))}
body main :where(p,li,dd){max-width:var(--kecb-reading)}
body :where(p,li,dd){text-wrap:pretty}
body :where(a){text-underline-offset:.16em}
body main :where(a:not(.button):not(.btn):not([class*="card"])){color:var(--kecb-oxblood)}
body main :where(a:not(.button):not(.btn):not([class*="card"]):hover){color:#59211c}
body :where(a,button,input,select,textarea,summary){font-family:var(--kecb-sans)}
body :where(a,button,input,select,textarea,summary):focus-visible{outline:3px solid rgba(184,138,72,.5);outline-offset:3px}

/* ---------- shared shell ---------- */
html:root body .site-header.site-header-v3,
html:root body .site-header-v3.site-header-simple,
html:root body .audience-global-header{
  background:var(--kecb-black);
  color:#f8f1e7;
  border-bottom:1px solid rgba(184,138,72,.55);
  box-shadow:var(--kecb-shadow-none);
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}
html:root body .audience-global-header{min-height:52px;padding:.30rem clamp(.72rem,1.55vw,1.2rem);gap:.68rem}
html:root body .audience-brand{display:inline-flex;align-items:center;gap:.35rem;min-width:max-content;text-decoration:none}
html:root body .audience-brand .brand-mark{
  display:inline-flex;align-items:center;min-width:0;min-height:0;padding:.28rem 0;
  border:0;border-radius:0;background:transparent;box-shadow:var(--kecb-shadow-none);color:#fbf7ef;
  font:700 .98rem/1 var(--kecb-serif);letter-spacing:.14em;white-space:nowrap;word-break:keep-all;
}
html:root body .audience-brand .brand-star{display:inline-flex;align-items:center;color:var(--kecb-brass);font:700 max(var(--kecb-type-meta), .76rem)/1 var(--kecb-serif);transform:translateY(-.02em)}
html:root body .audience-brand:hover .brand-star,html:root body .audience-brand:focus-visible .brand-star{color:#d5ad70}
html:root body .audience-path-nav{gap:.04rem}
html:root body .audience-nav>summary,
html:root body .audience-utility-link,
html:root body .audience-sign-in{
  min-height:38px;padding:.36rem .50rem;border-radius:var(--kecb-radius-sm);color:#f5eee4;
  background:transparent;font-size:max(var(--kecb-type-meta), max(14px,.78rem));font-weight:720;letter-spacing:.005em;box-shadow:var(--kecb-shadow-none);
}
html:root body .audience-nav[open]>summary,
html:root body .audience-nav>summary:hover,
html:root body .audience-nav>summary:focus-visible,
html:root body .audience-utility-link:hover,
html:root body .audience-utility-link:focus-visible,
html:root body .audience-sign-in:hover,
html:root body .audience-sign-in:focus-visible{background:rgba(255,255,255,.065);color:#fff}
html:root body .audience-sign-in{margin-left:.18rem;border:1px solid rgba(184,138,72,.48)}
html:root body .audience-tree{top:calc(100% + .34rem);padding:.34rem;border:1px solid rgba(184,138,72,.48);border-radius:var(--kecb-radius-control);background:#111518;box-shadow:var(--kecb-shadow-card)}
html:root body .audience-tree a,html:root body .audience-tree-label{color:#f5eee4}
html:root body .audience-tree a{border-radius:var(--kecb-radius-sm)}
html:root body .audience-tree a:hover,html:root body .audience-tree a:focus-visible{background:rgba(255,255,255,.07);color:#fff}
html:root body .audience-tree-label{color:#d4b47c}
html:root body .audience-mobile-search{min-height:40px;padding:.46rem .72rem;border:1px solid rgba(184,138,72,.48);border-radius:var(--kecb-radius-control);background:transparent;color:#f5eee4;box-shadow:var(--kecb-shadow-none)}

/* ---------- universal editorial openings ---------- */
body :where(.tonight-hero,.artist-halls-hero,.dir-hero,.edu-hero,.tools-book-first-hero,.bi-hero,.system-hero,.upgrade-hero,.book-resources-hero,.section-visual-hero){
  min-height:0;
  padding:clamp(2.2rem,5vw,4.3rem) 0;
  border:0;
  border-bottom:1px solid var(--kecb-line);
  background:var(--kecb-paper-warm);
  color:var(--kecb-ink);
  box-shadow:var(--kecb-shadow-none);
}
body :where(.tonight-wrap,.artist-halls-wrap,.dir-wrap,.edu-wrap,.book-first-wrap,.bi-shell,.system-wrap,.wrap){max-width:var(--kecb-max)}
body :where(.tonight-hero,.artist-halls-hero,.dir-hero,.edu-hero,.tools-book-first-hero,.bi-hero,.system-hero,.upgrade-hero,.book-resources-hero) :where(h1){
  max-width:920px;margin:.12rem 0 .75rem;color:var(--kecb-ink);
  font:700 clamp(2.35rem,5.4vw,4.65rem)/.98 var(--kecb-serif);letter-spacing:-.04em;
}
body :where(.tonight-hero,.artist-halls-hero,.dir-hero,.edu-hero,.tools-book-first-hero,.bi-hero,.system-hero,.upgrade-hero,.book-resources-hero) :where(p:not([class*="kicker"]):not([class*="eyebrow"])){max-width:800px;color:var(--kecb-ink-soft);font-size:max(var(--kecb-type-meta), clamp(1rem,1.7vw,1.16rem));line-height:1.62}
body :where(.tonight-eyebrow,.artist-halls-eyebrow,.dir-kicker,.edu-kicker,.book-first-kicker,.bi-eyebrow,.eyebrow,.section-kicker,.spx-kicker,.k2-kicker,.artist-hall-kicker,.artist-section-kicker,.tonight-active-kicker){
  margin:0 0 .45rem;color:var(--kecb-brass-deep);font:800 max(14px,.70rem)/1.2 var(--kecb-sans);letter-spacing:.12em;text-transform:uppercase;
}
body :where(.tonight-utility,.artist-halls-utility){margin-top:1rem;gap:.45rem 1rem}
body :where(.tonight-utility,.artist-halls-utility) a{color:var(--kecb-oxblood);font-size:max(var(--kecb-type-meta), var(--kecb-type-micro));font-weight:750;text-decoration-thickness:1px}

/* ---------- controls and buttons ---------- */
body main :where(button,.button,.btn,a.button,.system-button,.bi-button,.kecb-share-standout,input:not([type="checkbox"]):not([type="radio"]),select,textarea){border-radius:var(--kecb-radius);box-shadow:var(--kecb-shadow-none)}
body main :where(input:not([type="checkbox"]):not([type="radio"]),select,textarea){border:1px solid #a99f92;background:#fff;color:var(--kecb-ink)}
body main :where(button,.button,.btn,a.button,.system-button,.bi-button,.kecb-share-standout){min-height:40px}
body main :where(.button.primary,.btn.primary,.system-button:not(.secondary),.bi-button.primary,.kecb-share-standout){border:1px solid var(--kecb-black);background:var(--kecb-black);color:#fff}
body main :where(.button.secondary,.btn.secondary,.system-button.secondary,.bi-button.secondary){border:1px solid var(--kecb-line-strong);background:#fff;color:var(--kecb-ink)}
body main :where(.button.primary,.btn.primary,.system-button:not(.secondary),.bi-button.primary,.kecb-share-standout):hover{background:#202427;border-color:#202427}
body main :where(.button.secondary,.btn.secondary,.system-button.secondary,.bi-button.secondary):hover{border-color:var(--kecb-brass);background:#fffaf1}

/* Pills only where they behave like actual filters/status. */
body main :where(.chip,.manager-filter-chip,.tonight-date-shortcuts button,.dir-quick-regions button,.vp-tag,.tool-count-pill){border-radius:var(--kecb-radius-pill)}

/* ---------- card discipline ---------- */
body main :where(.dir-card,.edu-card,.vp-card,.artist-hall-card,.bi-card,.bi-panel,.bi-section,.academy-link-card,.academy-course-lesson,.role-resource-card,.search-result,.search-page-box,.priority-tool-card,.manager-filter-box,.personal-tool-shelf,.home-live-card,.tonight-card,.event-card){
  border:1px solid var(--kecb-line);border-radius:var(--kecb-radius);background:#fff;box-shadow:var(--kecb-shadow-none);
}
body main :where(.dir-card,.edu-card,.vp-card,.artist-hall-card,.bi-card,.academy-link-card,.role-resource-card,.search-result,.priority-tool-card,.home-live-card,.tonight-card,.event-card):hover{border-color:var(--kecb-line-strong);box-shadow:var(--kecb-shadow-none);transform:none}
body main :where(.dir-card,.edu-card,.vp-card,.artist-hall-card,.bi-card,.academy-link-card,.role-resource-card,.search-result,.priority-tool-card) :where(h2,h3,strong){color:var(--kecb-ink)}
body main :where(.dir-card,.edu-card,.vp-card,.artist-hall-card,.bi-card,.academy-link-card,.role-resource-card,.search-result,.priority-tool-card) :where(p,small){color:var(--kecb-ink-soft)}

/* ---------- homepage: preserve four paths, refine presentation ---------- */
body.role-router-page .role-router-home{background:var(--kecb-paper-warm);padding:clamp(1.8rem,4vh,2.8rem) 1rem clamp(1.2rem,2.5vh,2rem)}
body.role-router-page .role-router-home #role-router-title{color:var(--kecb-ink);font-family:var(--kecb-serif);letter-spacing:-.035em}
body.role-router-page .role-router-grid{gap:.48rem}
body.role-router-page .role-router-card{
  height:92px;min-height:92px;max-height:92px;padding:.68rem .82rem;border:1px solid rgba(184,138,72,.72);
  border-radius:var(--kecb-radius);background:var(--kecb-black-2);color:#fff5e7;box-shadow:var(--kecb-shadow-none);
}
body.role-router-page .role-router-card::after{background:rgba(184,138,72,.52);bottom:8px}
body.role-router-page .role-router-card:hover{transform:translateY(-1px);background:#171c1f;border-color:#d1ab70}
body.role-router-page .role-router-card span{font:700 clamp(1.12rem,1.55vw,1.48rem)/1.04 var(--kecb-serif);color:#fff5e7}
body.role-router-page :where(.home-live-stage,.home-live-pulse,.home-live-section){border-color:var(--kecb-line)}
body.role-router-page :where(.home-live-header h2,.home-live-stage h2){color:var(--kecb-ink)}

/* ---------- Tonight ---------- */
body.tonight-page .tonight-distance{background:#fff;border-bottom:1px solid var(--kecb-line)}
body.tonight-page .tonight-distance-panel{border:0;border-radius:0;background:transparent;box-shadow:var(--kecb-shadow-none);padding:1rem 0}
body.tonight-page .tonight-distance-copy strong{font-family:var(--kecb-serif);color:var(--kecb-ink);font-size:max(var(--kecb-type-meta), var(--kecb-type-body))}
body.tonight-page .tonight-quick-controls{background:var(--kecb-paper-soft);border-bottom:1px solid var(--kecb-line)}
body.tonight-page .tonight-date-shortcuts button{border:1px solid var(--kecb-line-strong);background:#fff;color:var(--kecb-ink);box-shadow:var(--kecb-shadow-none)}
body.tonight-page .tonight-date-shortcuts button[aria-pressed="true"]{border-color:var(--kecb-black);background:var(--kecb-black);color:#fff}
body.tonight-page .tonight-results{padding-top:clamp(1.8rem,4vw,3rem);background:var(--kecb-paper)}
body.tonight-page .tonight-feed-selectors{gap:.65rem}


body.tonight-page .tonight-active-summary{border-bottom:1px solid var(--kecb-line);padding-bottom:.9rem;margin-bottom:.9rem}
body.tonight-page .tonight-active-summary h2{color:var(--kecb-ink)}
body.tonight-page .event-card{border-left:2px solid var(--kecb-brass)}
body.tonight-page .tonight-hero.surface-light #meta-line{color:var(--kecb-ink-soft)}

/* ---------- Artists in the Halls ---------- */
body.artists-halls-page .artist-halls-controls{padding:1rem 0;border-bottom:1px solid var(--kecb-line);background:var(--kecb-paper-soft)}
body.artists-halls-page .artist-control-row label{color:var(--kecb-ink);font-size:max(var(--kecb-type-meta), var(--kecb-type-micro))}
body.artists-halls-page .artist-halls-meta{color:var(--kecb-ink-soft);font-size:max(var(--kecb-type-meta), var(--kecb-type-micro))}
body.artists-halls-page .artist-halls-results{padding:clamp(1.5rem,3vw,2.2rem) 0 4rem}
body.artists-halls-page #artist-grid{gap:.75rem}
body.artists-halls-page .artist-hall-card{padding:clamp(.9rem,2vw,1.25rem);border-top:2px solid var(--kecb-brass)}
body.artists-halls-page .artist-hall-card>header{border-bottom:1px solid var(--kecb-line);padding-bottom:.7rem}
body.artists-halls-page .artist-hall-card h2,body.artists-halls-page .artist-hall-card h2 a{color:var(--kecb-ink)}
body.artists-halls-page .artist-profile-link{font-size:max(var(--kecb-type-meta), var(--kecb-type-micro))}
body.artists-halls-page .artist-next-texas{margin:.75rem 0;padding:.62rem .75rem;border-left:2px solid var(--kecb-brass);background:var(--kecb-paper-warm);color:var(--kecb-ink-soft)}
body.artists-halls-page .artist-tour h3{color:var(--kecb-ink);font-family:var(--kecb-serif)}
body.artists-halls-page .artist-tour-list li{border-color:var(--kecb-line);padding:.62rem 0}
body.artists-halls-page .artist-tour-date{color:var(--kecb-oxblood)}
body.artists-halls-page .artist-official-links a{min-height:36px;padding:.38rem .58rem;border:1px solid var(--kecb-line-strong);border-radius:var(--kecb-radius);background:#fff;color:var(--kecb-ink)}
body.artists-halls-page .artist-official-links a:hover{border-color:var(--kecb-brass);background:#fffaf1;color:var(--kecb-ink)}
body.artist-profile-page .artist-profile-card{max-width:980px;margin-inline:auto}
body.artist-profile-page .artist-profile-section{padding-top:1.25rem;border-top:1px solid var(--kecb-line)}
body.artist-profile-page .artist-profile-actions{align-items:center}

/* ---------- venue directory + profiles ---------- */
body .dir-region-panel{border:0;border-bottom:1px solid var(--kecb-line);border-radius:0;background:#fff;box-shadow:var(--kecb-shadow-none);padding:1rem 0}
body .dir-section{padding-top:clamp(1.5rem,3vw,2.4rem)}
body .dir-card{margin-bottom:.48rem;padding:.78rem .9rem;border-left:2px solid transparent}
body .dir-card:hover{border-left-color:var(--kecb-brass)}
body .dir-card .dir-name,body .dir-card .dir-name a{color:var(--kecb-ink);font-family:var(--kecb-serif)}
body .dir-card .dir-meta{color:var(--kecb-ink-soft)}
body.venue-profile-page .vp-hero{background:var(--kecb-paper-warm);border-bottom:1px solid var(--kecb-line);box-shadow:var(--kecb-shadow-none)}
body.venue-profile-page .vp-hero h1{color:var(--kecb-ink);font:700 clamp(2.35rem,5vw,4.35rem)/.98 var(--kecb-serif);letter-spacing:-.04em}
body.venue-profile-page .vp-kicker{color:var(--kecb-brass-deep)}
body.venue-profile-page .vp-lead,body.venue-profile-page .vp-location{color:var(--kecb-ink-soft)}
body.venue-profile-page .vp-intel-strip{padding:.72rem 0;border:0;border-top:1px solid var(--kecb-line);border-bottom:1px solid var(--kecb-line);border-radius:0;background:transparent}
body.venue-profile-page .vp-intel-strip strong{color:var(--kecb-ink);font-family:var(--kecb-serif)}
body.venue-profile-page .vp-card{padding:1rem}
body.venue-profile-page .vp-card h2,body.venue-profile-page .vp-card h3{color:var(--kecb-ink)}
body.venue-profile-page .vp-tag{background:var(--kecb-paper-soft);border:1px solid var(--kecb-line);color:var(--kecb-ink-soft)}
body.venue-profile-page .vp-links a{border-radius:var(--kecb-radius);box-shadow:var(--kecb-shadow-none)}

/* ---------- Academy ---------- */
body.edu-page .edu-hero-grid{grid-template-columns:minmax(0,1.45fr) minmax(260px,.7fr);gap:clamp(1.6rem,4vw,3.5rem)}
body.edu-page .edu-facts{border:1px solid var(--kecb-line);border-radius:var(--kecb-radius);background:#fff;box-shadow:var(--kecb-shadow-none)}
body.edu-page .edu-section{padding:clamp(2.2rem,5vw,4.2rem) 0;background:var(--kecb-paper)}
body.edu-page .edu-section-alt{background:var(--kecb-paper-soft)}
body.edu-page .edu-section h2{color:var(--kecb-ink)}
body.edu-page .edu-card{padding:1rem;min-height:0}
body.edu-page .edu-card-code{color:var(--kecb-brass-deep)}
body.edu-page .edu-card h3,body.edu-page .edu-card h3 a{color:var(--kecb-ink)}
body :where(.academy-home-hero,.academy-track-hero,.academy-lesson-hero){background:var(--kecb-paper-warm);color:var(--kecb-ink);border-bottom:1px solid var(--kecb-line);box-shadow:var(--kecb-shadow-none)}
body :where(.academy-home-hero,.academy-track-hero,.academy-lesson-hero) :where(h1,h2,h3){color:var(--kecb-ink)}
body :where(.academy-home-hero,.academy-track-hero,.academy-lesson-hero) :where(p,span,small){color:var(--kecb-ink-soft)}
body :where(.academy-link-card,.academy-course-lesson,.academy-assessment-card,.academy-promise-panel,.academy-at-glance article,.academy-concept-grid article,.academy-full-details,.academy-full-details details,.acad){background:#fff;color:var(--kecb-ink);border-color:var(--kecb-line);box-shadow:var(--kecb-shadow-none)}

/* ---------- Tools ---------- */
body.page-tool .tools-book-first-hero{padding:clamp(2.2rem,5vw,4rem) 0}
body.page-tool .manager-priority-tools{background:var(--kecb-paper-soft);border-bottom:1px solid var(--kecb-line)}
body.page-tool .priority-tool-card{min-height:156px;padding:.9rem}
body.page-tool .priority-tool-card strong{color:var(--kecb-ink);font-family:var(--kecb-serif)}
body.page-tool .priority-open,body.page-tool .tool-source-card small{color:var(--kecb-oxblood)}
body.page-tool .manager-tool-finder{background:#fff}
body.page-tool .manager-filter-box{padding:.8rem;background:var(--kecb-paper-warm)}
body.page-tool .manager-filter-chip{border:1px solid var(--kecb-line-strong);background:#fff;color:var(--kecb-ink)}
body.page-tool .manager-filter-chip[aria-pressed="true"]{border-color:var(--kecb-black);background:var(--kecb-black);color:#fff}
body.page-tool .full-tool-library{border-color:var(--kecb-line);border-radius:var(--kecb-radius);box-shadow:var(--kecb-shadow-none)}
body.page-tool .full-tool-library>summary{background:#fff;color:var(--kecb-ink)}
body.page-tool .tool-card-grid{gap:0 1rem}
body.page-tool .tool-source-card{min-height:138px;padding:.9rem .1rem;border:0;border-bottom:1px solid var(--kecb-line);border-radius:0;background:transparent}
body.page-tool .tool-source-card:hover{background:var(--kecb-paper-warm)}
body.page-tool .tool-source-card strong{color:var(--kecb-ink);font-family:var(--kecb-serif)}

/* ---------- Booking Intelligence ---------- */
body.booking-intelligence-page{--bi-navy:var(--kecb-navy-data);--bi-red:var(--kecb-oxblood);--bi-gold:var(--kecb-brass);--bi-line:var(--kecb-line);--bi-muted:var(--kecb-ink-soft);--bi-soft:var(--kecb-paper-soft)}
body.booking-intelligence-page .bi-hero .bi-deck{color:var(--kecb-ink-soft)}
body.booking-intelligence-page .bi-maturity-top{border-color:var(--kecb-line);border-radius:var(--kecb-radius);background:#fff;box-shadow:var(--kecb-shadow-none)}
body.booking-intelligence-page .bi-main{gap:1rem;padding-top:1rem}
body.booking-intelligence-page .bi-section{margin:0;padding:clamp(1rem,2vw,1.35rem)}
body.booking-intelligence-page .bi-section h2{color:var(--kecb-ink)}
body.booking-intelligence-page :where(.bi-card,.bi-panel,.bi-result-card){border-color:var(--kecb-line);background:#fff;box-shadow:var(--kecb-shadow-none)}
body.booking-intelligence-page :where(.bi-card,.bi-panel,.bi-result-card) :where(h2,h3,strong){color:var(--kecb-ink)}
body.booking-intelligence-page :where(.bi-chart,.bi-viz,.bi-graph,.bi-chart-card){background:#fff;border-color:var(--kecb-line);box-shadow:var(--kecb-shadow-none)}
body.booking-intelligence-page :where(.bi-chart,.bi-viz,.bi-graph) svg text{font-family:var(--kecb-sans);fill:var(--kecb-ink-soft)}
body.booking-intelligence-page :where(.bi-source,.bi-meta,.bi-breadcrumb){color:var(--kecb-ink-soft)}

/* ---------- tables / details / footer ---------- */
body main table{border:1px solid var(--kecb-line);border-radius:var(--kecb-radius);background:#fff;box-shadow:var(--kecb-shadow-none)}
body main th{background:var(--kecb-paper-soft);color:var(--kecb-ink)}
body main th,body main td{border-color:var(--kecb-line)}
body main details:not(.audience-nav){border-color:var(--kecb-line);box-shadow:var(--kecb-shadow-none)}
body .site-footer,body .site-footer-v3{border-top:1px solid rgba(184,138,72,.45);background:var(--kecb-black-2);color:#d9d0c5}
body .site-footer a,body .site-footer-v3 a{color:#f8f1e7}
body .site-footer strong,body .site-footer-v3 strong{color:#fff;font-family:var(--kecb-serif)}

/* ---------- mobile ---------- */
@media(max-width:960px){
  body.edu-page .edu-hero-grid{grid-template-columns:1fr}
  html:root body .audience-global-header{padding:.32rem .68rem;gap:.48rem}
}
@media(max-width:720px){
  html:root body .audience-global-header{min-height:50px;padding:.30rem .58rem}
  html:root body .audience-brand .brand-mark{font-size:max(var(--kecb-type-meta), var(--kecb-type-small));letter-spacing:.13em}
  html:root body .audience-brand .brand-star{font-size:max(var(--kecb-type-meta), .74rem)}
  body :where(.tonight-hero,.artist-halls-hero,.dir-hero,.edu-hero,.tools-book-first-hero,.bi-hero,.system-hero,.upgrade-hero,.book-resources-hero){padding:1.5rem 0 1.65rem}
  body :where(.tonight-hero,.artist-halls-hero,.dir-hero,.edu-hero,.tools-book-first-hero,.bi-hero,.system-hero,.upgrade-hero,.book-resources-hero) :where(h1){font-size:max(var(--kecb-type-meta), clamp(2rem,10vw,3rem))}
  body.role-router-page .role-router-grid{grid-template-columns:1fr;gap:.4rem}
  body.role-router-page .role-router-card{height:60px;min-height:60px;max-height:60px}
  body.artists-halls-page .artist-hall-card{padding:.85rem}
  body.artists-halls-page .artist-tour-list li{grid-template-columns:76px minmax(0,1fr)}
  body.venue-profile-page .vp-intel-strip{grid-template-columns:1fr 1fr}
  body.page-tool .priority-tool-card{min-height:150px}
}
@media(max-width:420px){
  body.page-tool .priority-tools-grid{grid-template-columns:1fr}
  body.page-tool .priority-tool-card{min-height:128px}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}body :where(a,button,[class*="card"]){transition:none}}
@media print{
  html:root body .site-header,html:root body .site-footer{display:none}
  body :where(.tonight-hero,.artist-halls-hero,.dir-hero,.edu-hero,.tools-book-first-hero,.bi-hero,.system-hero){background:#fff;color:#000;border-bottom:1px solid #bbb}
}

/* ---------- deep curriculum + long-form page parity ---------- */
body :where(.fs-hero,.bartender-hero,.bar2-lesson-hero,.bar2-track-hero,.bar2-home-hero,.k2-hero,.k2-home-hero,.chef-lesson-hero,.tool-suite-hero,.tool-category-guide-hero,.role-library-hero,.editorial-role-hero,.visual-hero,.analysis-hero,.compact-hero,.start-here-hero,.org-hero,.dl-hero,.whats-new-hero,.sh-hero,.bar-home-hero,.speakeasy-hero,.founder-page-hero,.pulse-hero,.saved-work-hero,.tool-guides-hero,.dt-tools-hero,.food-truck-hero,.kitchen-hero){
  min-height:0;
  border:0;
  border-bottom:1px solid var(--kecb-line);
  background:var(--kecb-paper-warm);
  color:var(--kecb-ink);
  box-shadow:var(--kecb-shadow-none);
}
body :where(.fs-hero,.bartender-hero,.bar2-lesson-hero,.bar2-track-hero,.bar2-home-hero,.k2-hero,.k2-home-hero,.chef-lesson-hero,.tool-suite-hero,.tool-category-guide-hero,.role-library-hero,.editorial-role-hero,.visual-hero,.analysis-hero,.compact-hero,.start-here-hero,.org-hero,.dl-hero,.whats-new-hero,.sh-hero,.bar-home-hero,.speakeasy-hero,.founder-page-hero,.pulse-hero,.saved-work-hero,.tool-guides-hero,.dt-tools-hero,.food-truck-hero,.kitchen-hero) :where(h1,h2,h3,strong){color:var(--kecb-ink)}
body :where(.fs-hero,.bartender-hero,.bar2-lesson-hero,.bar2-track-hero,.bar2-home-hero,.k2-hero,.k2-home-hero,.chef-lesson-hero,.tool-suite-hero,.tool-category-guide-hero,.role-library-hero,.editorial-role-hero,.visual-hero,.analysis-hero,.compact-hero,.start-here-hero,.org-hero,.dl-hero,.whats-new-hero,.sh-hero,.bar-home-hero,.speakeasy-hero,.founder-page-hero,.pulse-hero,.saved-work-hero,.tool-guides-hero,.dt-tools-hero,.food-truck-hero,.kitchen-hero) :where(p,li,span,small){color:var(--kecb-ink-soft)}
body :where(.fs-kicker,.bartender-kicker,.chef-kicker,.tool-suite-kicker,.role-library-kicker,.visual-kicker,.analysis-kicker,.dl-kicker,.sh-kicker){color:var(--kecb-brass-deep);text-transform:uppercase;letter-spacing:.11em;font-size:max(var(--kecb-type-meta), max(14px,.7rem));font-weight:800}
body .fs-hero{padding:clamp(2.1rem,5vw,4rem) 0}
body .fs-hero h1{max-width:900px;margin:.15rem 0 .7rem;font:700 clamp(2.25rem,5vw,4.35rem)/.99 var(--kecb-serif);letter-spacing:-.038em}
body .fs-hero .fs-deck{max-width:800px;font-size:max(var(--kecb-type-meta), clamp(1rem,1.7vw,1.16rem));line-height:1.62}
body .fs-actions{gap:.5rem;margin-top:1rem}
body .fs-btn{min-height:40px;padding:.52rem .72rem;border:1px solid var(--kecb-line-strong);border-radius:var(--kecb-radius);background:#fff;color:var(--kecb-ink);box-shadow:var(--kecb-shadow-none)}
body .fs-btn.primary{border-color:var(--kecb-black);background:var(--kecb-black);color:#fff}
body .fs-section{padding:clamp(2rem,4vw,3.7rem) 0}
body .fs-card{border:1px solid var(--kecb-line);border-radius:var(--kecb-radius);background:#fff;box-shadow:var(--kecb-shadow-none)}
body .fs-card:hover{border-color:var(--kecb-line-strong);box-shadow:var(--kecb-shadow-none);transform:none}
body .fs-card :where(h2,h3,strong){color:var(--kecb-ink)}
body .fs-card :where(p,small){color:var(--kecb-ink-soft)}

/* Thousands of content objects should feel related without becoming one giant card style. */
body main :where(.search-panel,.recipe-panel,.kitchen-panel,.recipe-card,.chapter-tool-card,.spx-card,.chapter-card,.recipe-intelligence-card,.chapter-work-panel,.recommend-card,.tool-guide-card,.kitchen-card,.tool-card,.speakeasy-category-card,.kitchen-source-panel,.bar2-resource-card,.k2-card,.expansion-card,.mastery-resource-card,.deep-card,.dt-card,.system-card,.role-quick-card,.role-book-route-card,.dt-tool-card,.academy-track-card,.bar2-dashboard-card,.quick-card,.role-entry-card,.guide-sidebar-card,.progress-dashboard-card,.workflow-card,.path-system-card,.section-tool-card,.learning-path-card,.path-progress-card,.preservation-tool-card,.k2-dashboard-card,.mastery-school-card,.bar2-school-card){
  border-radius:var(--kecb-radius);
  box-shadow:var(--kecb-shadow-none);
}

/* Reading surfaces: reduce decorative chrome and let text lead. */
body main :where(.chapter-card,.chapter-work-panel,.recipe-panel,.kitchen-panel,.search-panel){border-color:var(--kecb-line)}
body main :where(.chapter-card,.chapter-work-panel) :where(h2,h3){color:var(--kecb-ink)}

@media(max-width:720px){
  body :where(.fs-hero,.bartender-hero,.bar2-lesson-hero,.bar2-track-hero,.bar2-home-hero,.k2-hero,.k2-home-hero,.chef-lesson-hero,.tool-suite-hero,.tool-category-guide-hero,.role-library-hero,.editorial-role-hero,.visual-hero,.analysis-hero,.compact-hero,.start-here-hero,.org-hero,.dl-hero,.whats-new-hero,.sh-hero,.bar-home-hero,.speakeasy-hero,.founder-page-hero,.pulse-hero,.saved-work-hero,.tool-guides-hero,.dt-tools-hero,.food-truck-hero,.kitchen-hero){padding-top:1.45rem;padding-bottom:1.55rem}
  body .fs-hero h1{font-size:max(var(--kecb-type-meta), clamp(2rem,10vw,3rem))}
}

/* Remaining specialized hero families: same visual grammar, no orphaned blue surfaces. */
body :where(.dt-hero,.spx-hero){min-height:0;border:0;border-bottom:1px solid var(--kecb-line);background:var(--kecb-paper-warm);color:var(--kecb-ink);box-shadow:var(--kecb-shadow-none)}
body :where(.dt-hero,.spx-hero) :where(h1,h2,h3,strong){color:var(--kecb-ink)}
body :where(.dt-hero,.spx-hero) :where(p,li,span,small){color:var(--kecb-ink-soft)}

/* ---------- DEPLOY 532 composition + scale refinement ---------- */
/* Header: strengthen the wordmark, lower navigation visual weight, preserve compact touch targets. */
html:root body .audience-global-header{min-height:50px;padding:.26rem clamp(.72rem,1.45vw,1.15rem);gap:.72rem}
html:root body .audience-brand .brand-mark{font-size:max(var(--kecb-type-meta), var(--kecb-type-body));font-weight:740;letter-spacing:.145em}
html:root body .audience-brand .brand-star{font-size:max(var(--kecb-type-meta), .80rem)}
html:root body .audience-nav>summary,
html:root body .audience-utility-link,
html:root body .audience-sign-in{min-height:36px;padding:.32rem .48rem;font-size:max(var(--kecb-type-meta), max(14px,.77rem));font-weight:650}
html:root body .audience-sign-in{padding-inline:.62rem}

/* Universal page openings: authority comes from proportion and type, not giant scale. */
body :where(.tonight-hero,.artist-halls-hero,.dir-hero,.edu-hero,.tools-book-first-hero,.bi-hero,.system-hero,.upgrade-hero,.book-resources-hero,.section-visual-hero){
  padding:clamp(1.85rem,3.8vw,3.15rem) 0;
}
body :where(.tonight-hero,.artist-halls-hero,.dir-hero,.edu-hero,.tools-book-first-hero,.bi-hero,.system-hero,.upgrade-hero,.book-resources-hero) :where(h1){
  max-width:860px;margin:.1rem 0 .62rem;font-size:max(var(--kecb-type-meta), clamp(2.2rem,4.45vw,3.95rem));line-height:1;
}
body :where(.tonight-hero,.artist-halls-hero,.dir-hero,.edu-hero,.tools-book-first-hero,.bi-hero,.system-hero,.upgrade-hero,.book-resources-hero) :where(p:not([class*="kicker"]):not([class*="eyebrow"])){max-width:720px;font-size:max(var(--kecb-type-meta), clamp(.98rem,1.45vw,var(--kecb-type-subhead)));line-height:1.58}
body :where(.tonight-eyebrow,.artist-halls-eyebrow,.dir-kicker,.edu-kicker,.book-first-kicker,.bi-eyebrow,.eyebrow,.section-kicker,.spx-kicker,.k2-kicker,.artist-hall-kicker,.artist-section-kicker,.tonight-active-kicker){margin-bottom:.36rem;letter-spacing:.115em}

/* Deep curriculum / long-form heroes use the same restrained scale. */
body :where(.fs-hero,.bartender-hero,.bar2-lesson-hero,.bar2-track-hero,.bar2-home-hero,.k2-hero,.k2-home-hero,.chef-lesson-hero,.tool-suite-hero,.tool-category-guide-hero,.role-library-hero,.editorial-role-hero,.visual-hero,.analysis-hero,.compact-hero,.start-here-hero,.org-hero,.dl-hero,.whats-new-hero,.sh-hero,.bar-home-hero,.speakeasy-hero,.founder-page-hero,.pulse-hero,.saved-work-hero,.tool-guides-hero,.dt-tools-hero,.food-truck-hero,.kitchen-hero,.dt-hero,.spx-hero){
  padding:clamp(1.85rem,3.8vw,3.15rem) 0;
}
body :where(.fs-hero,.bartender-hero,.bar2-lesson-hero,.bar2-track-hero,.bar2-home-hero,.k2-hero,.k2-home-hero,.chef-lesson-hero,.tool-suite-hero,.tool-category-guide-hero,.role-library-hero,.editorial-role-hero,.visual-hero,.analysis-hero,.compact-hero,.start-here-hero,.org-hero,.dl-hero,.whats-new-hero,.sh-hero,.bar-home-hero,.speakeasy-hero,.founder-page-hero,.pulse-hero,.saved-work-hero,.tool-guides-hero,.dt-tools-hero,.food-truck-hero,.kitchen-hero,.dt-hero,.spx-hero) h1{
  max-width:860px;margin:.1rem 0 .65rem;font:700 clamp(2.2rem,4.45vw,3.95rem)/1 var(--kecb-serif);letter-spacing:-.038em;
}
body .fs-hero h1{max-width:820px;font-size:max(var(--kecb-type-meta), clamp(2.15rem,4.3vw,3.8rem))}
body .fs-hero .fs-deck{max-width:720px;font-size:max(var(--kecb-type-meta), clamp(.98rem,1.45vw,var(--kecb-type-subhead)));line-height:1.58}

/* Share is a quiet utility action, never a competing call-to-action. */
body main .kecb-share-primary{margin:.62rem 0 .88rem}
body main .kecb-share-standout{color:var(--kecb-ink)}
body main .kecb-share-standout{
  min-height:34px;padding:.34rem .58rem;gap:.34rem;border:1px solid var(--kecb-line-strong);
  border-radius:var(--kecb-radius-sm);background:transparent;font-size:max(var(--kecb-type-meta), max(14px,.78rem));font-weight:680;
}
body main .kecb-share-standout:hover{color:var(--kecb-ink)}
body main .kecb-share-standout:hover{border-color:var(--kecb-brass);background:#fffaf1}
body main .kecb-share-standout svg{color:inherit;fill:currentColor}
body main .kecb-share-bottom{max-width:760px;margin:2rem auto;padding:.8rem 0;border:0;border-top:1px solid var(--kecb-line);border-bottom:1px solid var(--kecb-line);border-radius:0;background:transparent}

/* Bartending Academy: smaller opening, narrower deck, lean progress, curriculum as a contents system. */
body.bartender-page .bartender-hero{padding:clamp(2rem,3.4vw,2.9rem) 0 clamp(1.8rem,3vw,2.45rem)}
body.bartender-page .bartender-hero h1{max-width:18ch;margin:.12rem 0 .6rem;font:700 clamp(2.45rem,4.15vw,3.78rem)/.99 var(--kecb-serif);letter-spacing:-.038em}
body.bartender-page .bartender-deck{max-width:720px;margin:.35rem 0 0;color:var(--kecb-ink-soft);font-size:max(var(--kecb-type-meta), clamp(1rem,1.35vw,var(--kecb-type-subhead)));line-height:1.58}
body.bartender-page .academy-progress-card{max-width:760px;margin:1rem 0 0;padding:.72rem 0;border:0;border-top:1px solid var(--kecb-line);border-bottom:1px solid var(--kecb-line);border-radius:0;background:transparent;box-shadow:var(--kecb-shadow-none)}
body.bartender-page .academy-progress-copy strong{font-size:max(var(--kecb-type-meta), var(--kecb-type-small))}
body.bartender-page .academy-progress-copy span{font-size:max(var(--kecb-type-meta), var(--kecb-type-micro))}
body.bartender-page .academy-progress-meter{height:4px;margin-top:.55rem;background:#e4ddd2}
body.bartender-page .academy-progress-actions{margin-top:.55rem}
body.bartender-page .academy-progress-actions .bartender-btn{min-height:36px;padding:.38rem .62rem;font-size:max(var(--kecb-type-meta), var(--kecb-type-micro))}
body.bartender-page .bartender-section{padding:clamp(1.65rem,3.25vw,2.75rem) 0}
body.bartender-page .bartender-stats{margin-bottom:1.9rem;gap:0;border:0;border-top:1px solid var(--kecb-line);border-bottom:1px solid var(--kecb-line);border-radius:0;background:transparent}
body.bartender-page .bartender-stats>div{padding:.68rem .78rem;border-right:1px solid var(--kecb-line);background:transparent}
body.bartender-page .bartender-stats strong{font-size:max(var(--kecb-type-meta), 1.62rem);color:var(--kecb-ink)}
body.bartender-page .bartender-stats span{font-size:max(var(--kecb-type-meta), .78rem);color:var(--kecb-ink-soft)}
body.bartender-page .bartender-prose{max-width:720px;font-size:max(var(--kecb-type-meta), 1rem)}
body.bartender-page .bartender-prose h2{margin:2.1rem 0 .65rem;font-size:max(var(--kecb-type-meta), clamp(1.55rem,2.5vw,2.05rem))}
body.bartender-page .bartender-stage-list{margin-top:2rem;border-top:1px solid var(--kecb-line)}
body.bartender-page .academy-phase{margin:0;border:0;border-bottom:1px solid var(--kecb-line);border-radius:0;background:transparent;overflow:visible}
body.bartender-page .academy-phase>summary{min-height:46px;padding:.6rem .1rem;font-weight:720}
body.bartender-page .academy-phase>summary:after{font-size:max(var(--kecb-type-meta), 1rem);color:var(--kecb-brass-deep)}
body.bartender-page .academy-phase>summary .academy-phase-meta{font-size:max(var(--kecb-type-meta), .76rem);font-weight:620;color:var(--kecb-ink-soft)}
body.bartender-page .academy-phase-body{padding:0 0 .65rem}
body.bartender-page .academy-phase-body ol{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 1.25rem;margin:0;padding:0;list-style:none}
body.bartender-page .academy-phase-body li a{display:block;height:100%;padding:.72rem .05rem;border:0;border-top:1px solid #ebe5dc;border-radius:0;background:transparent;box-shadow:var(--kecb-shadow-none);color:var(--kecb-ink);text-decoration:none}
body.bartender-page .academy-phase-body li a:hover{background:transparent;color:var(--kecb-oxblood);transform:none}
body.bartender-page .academy-phase-body li span{font-size:max(var(--kecb-type-meta), .67rem);color:var(--kecb-brass-deep)}
body.bartender-page .academy-phase-body li strong{margin:.16rem 0;font-size:max(var(--kecb-type-meta), 1rem);line-height:1.22}
body.bartender-page .academy-phase-body li small{color:var(--kecb-ink-soft);font-size:max(var(--kecb-type-meta), .78rem);line-height:1.42}

/* Culinary Academy: same editorial proportions and lean progress/stat architecture. */
body.academy-complete .academy-home-hero{padding:clamp(2rem,3.5vw,3rem) 0}
body.academy-complete .academy-home-hero h1{max-width:760px;margin:.1rem 0 .55rem;font:700 clamp(2.35rem,4vw,3.7rem)/1 var(--kecb-serif);letter-spacing:-.038em}
body.academy-complete .academy-home-hero>div>p:not(.eyebrow){max-width:700px;color:var(--kecb-ink-soft);font-size:max(var(--kecb-type-meta), var(--kecb-type-body));line-height:1.58}
body.academy-complete .academy-home-hero .k2-actions{margin-top:.9rem;gap:.42rem}
body.academy-complete .academy-home-hero .k2-actions .button{min-height:38px;padding:.43rem .68rem;font-size:max(var(--kecb-type-meta), var(--kecb-type-micro))}
body.academy-complete .academy-stat-grid{margin-top:1.25rem;gap:0;border-top:1px solid var(--kecb-line);border-bottom:1px solid var(--kecb-line);background:transparent}
body.academy-complete .academy-stat-grid>div{padding:.65rem .72rem;border:0;border-right:1px solid var(--kecb-line);border-radius:0;background:transparent}
body.academy-complete .academy-stat-grid>div:last-child{border-right:0}
body.academy-complete .academy-stat-grid strong{font-size:max(var(--kecb-type-meta), var(--kecb-type-subhead));color:var(--kecb-ink)}
body.academy-complete .academy-stat-grid span{font-size:max(var(--kecb-type-meta), .76rem);color:var(--kecb-ink-soft)}
body.academy-complete .academy-progress-card{max-width:760px;margin:.95rem 0 0;padding:.7rem 0;border:0;border-top:1px solid var(--kecb-line);border-bottom:1px solid var(--kecb-line);border-radius:0;background:transparent}
body.academy-complete .academy-start,body.academy-complete .k2-section{padding:clamp(1.8rem,3.6vw,3rem) 0}
body.academy-complete .academy-section-head{margin-bottom:1rem}
body.academy-complete .mastery-hub-grid{gap:0 1rem}
body.academy-complete .mastery-hub-grid a{min-height:0;padding:.78rem .05rem;border:0;border-top:1px solid var(--kecb-line);border-radius:0;background:transparent;box-shadow:var(--kecb-shadow-none)}
body.academy-complete .mastery-hub-grid a:hover{background:transparent;color:var(--kecb-oxblood);transform:none}

/* Venue + artist profiles: identity leads; giant record headings and dark hero mass recede. */
body.venue-profile-page .vp-hero{padding:clamp(1.8rem,3.6vw,3rem) 0}
body.venue-profile-page .vp-hero h1{max-width:820px;font-size:max(var(--kecb-type-meta), clamp(2.3rem,4.25vw,3.8rem))}
body.artist-profile-page .artist-profile-hero{padding:clamp(1.8rem,3.6vw,3rem) 1rem;background:var(--kecb-paper-warm);color:var(--kecb-ink);border-bottom:1px solid var(--kecb-line)}
body.artist-profile-page .artist-profile-hero h1{max-width:760px;color:var(--kecb-ink);font-size:max(var(--kecb-type-meta), clamp(2.35rem,4.35vw,3.9rem));line-height:.99}
body.artist-profile-page .artist-profile-deck{max-width:680px;margin:.65rem 0 0;color:var(--kecb-ink-soft);font-size:max(var(--kecb-type-meta), var(--kecb-type-body))}
body.artist-profile-page .artist-profile-hero .artist-halls-eyebrow{color:var(--kecb-brass-deep)}
body.artist-profile-page .artist-profile-hero .artist-halls-utility a{color:var(--kecb-oxblood)}
body.artist-profile-page .entity-profile-visual-link{border-color:var(--kecb-line);background:#fff}
body.artist-profile-page .entity-profile-visual figcaption{color:var(--kecb-ink-soft)}
body.artist-profile-page .entity-profile-visual figcaption a{color:var(--kecb-oxblood)}

/* Directory / Artists / Tonight: denser scan rhythm without reducing touch clarity. */
body .dir-card{padding:.66rem .78rem;margin-bottom:.36rem}
body.artists-halls-page #artist-grid{gap:.6rem}
body.artists-halls-page .artist-hall-card{padding:.78rem .9rem}
body.artists-halls-page .artist-next-texas{margin:.62rem 0;padding:.52rem .65rem}
body .tonight-card,body .event-card{padding:clamp(.72rem,1.5vw,.9rem)}

/* Tools + intelligence: less dashboard chrome, more reading/data hierarchy. */
body.page-tool .manager-priority-tools,body.page-tool .manager-tool-finder{padding-block:clamp(1.6rem,3.2vw,2.6rem)}
body.page-tool .priority-tool-card{min-height:138px;padding:.78rem}
body.page-tool .manager-filter-box{padding:.7rem}
body.booking-intelligence-page .bi-main{gap:.8rem;padding-top:.8rem}
body.booking-intelligence-page .bi-section{padding:clamp(.9rem,1.7vw,1.2rem)}
body.booking-intelligence-page :where(.bi-card,.bi-panel,.bi-result-card){border-radius:var(--kecb-radius-sm)}

/* Footer: quieter ending, fewer heavy blocks. */
body footer.site .foot{padding-top:1.45rem;padding-bottom:1rem;gap:1.2rem}
body footer.site .fbrand p{max-width:560px;margin:.35rem 0 0;font-size:max(var(--kecb-type-meta), var(--kecb-type-micro));line-height:1.5;color:#cfc6bb}
body footer.site .foot nav{gap:.25rem .8rem}
body footer.site .foot nav a{font-size:max(var(--kecb-type-meta), .8rem);font-weight:600}
body footer.site .copy{padding-top:.7rem;padding-bottom:1.1rem;font-size:max(var(--kecb-type-meta), .74rem);color:#bfb5a8}
body .bartender-footer{padding:1.3rem 0;font-size:max(var(--kecb-type-meta), .78rem)}

/* Reading measure and section rhythm: long-form text should look typeset, not stretched. */
body main :where(.bartender-prose,.academy-reading,.reader-body,.chapter-body,.prose,.longform,.bar2-reading,.chef-lesson-prose){max-width:var(--kecb-reading)}
body main :where(.fs-article,.chapter-main,.k2-reading,.academy-full-details,.guide-full-details){max-width:min(var(--kecb-working),calc(100% - 2rem))}
body main :where(.fs-article,.chapter-main,.k2-reading,.academy-full-details,.guide-full-details) :where(p,li,dd){max-width:var(--kecb-reading)}
body main :where(.academy-reading,.fs-article,.reader-body,.chapter-body,.prose,.longform) :where(p,li){line-height:1.66}

@media(max-width:760px){
  html:root body .audience-global-header{min-height:49px}
  body :where(.tonight-hero,.artist-halls-hero,.dir-hero,.edu-hero,.tools-book-first-hero,.bi-hero,.system-hero,.upgrade-hero,.book-resources-hero,.section-visual-hero,.fs-hero,.bartender-hero,.bar2-lesson-hero,.bar2-track-hero,.bar2-home-hero,.k2-hero,.k2-home-hero,.chef-lesson-hero,.tool-suite-hero,.tool-category-guide-hero,.role-library-hero,.editorial-role-hero,.visual-hero,.analysis-hero,.compact-hero,.start-here-hero,.org-hero,.dl-hero,.whats-new-hero,.sh-hero,.bar-home-hero,.speakeasy-hero,.founder-page-hero,.pulse-hero,.saved-work-hero,.tool-guides-hero,.dt-tools-hero,.food-truck-hero,.kitchen-hero,.dt-hero,.spx-hero){padding-top:1.35rem;padding-bottom:1.45rem}
  body.bartender-page .bartender-hero h1{font-size:max(var(--kecb-type-meta), clamp(2.2rem,10.5vw,3rem))}
  body.bartender-page .academy-phase-body ol{grid-template-columns:1fr}
  body.bartender-page .bartender-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  body.bartender-page .bartender-stats>div:nth-child(2){border-right:0}
  body.bartender-page .bartender-stats>div:nth-child(-n+2){border-bottom:1px solid var(--kecb-line)}
  body.academy-complete .academy-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  body.academy-complete .academy-stat-grid>div:nth-child(2){border-right:0}
  body.academy-complete .academy-stat-grid>div:nth-child(-n+2){border-bottom:1px solid var(--kecb-line)}
  body.artist-profile-page .artist-profile-hero{padding-inline:.65rem}
  body main .kecb-share-standout{min-height:36px}
  body footer.site .foot{padding-top:1.2rem}
}
@media(max-width:420px){
  body.bartender-page .bartender-stats,body.academy-complete .academy-stat-grid{grid-template-columns:1fr}
  body.bartender-page .bartender-stats>div,body.academy-complete .academy-stat-grid>div{border-right:0;border-bottom:1px solid var(--kecb-line)}
  body.bartender-page .bartender-stats>div:last-child,body.academy-complete .academy-stat-grid>div:last-child{border-bottom:0}
}

/* DEPLOY-556 — audit remediation: component-owned contrast, focus, and text floor */
:root{--kecb-focus:0 0 0 3px #9c4b2c}
body :where(a,button,input,select,textarea,summary):focus-visible{outline:3px solid #9c4b2c;outline-offset:3px;box-shadow:0 0 0 1px #fff,0 0 0 4px #9c4b2c}
body.booking-intelligence-page .bi-maturity-top{color:#1d252b}
body.booking-intelligence-page .bi-maturity-top :is(.bi-eyebrow,.bi-maturity-live,.bi-meta,p,li,span,small){color:#51483f}
body.shift-desk-page .member-button{color:#fff}
body.edu-page .edu-cta{color:#24333e}
body.edu-page .edu-cta p{color:#51483f}
body :where(.venue-why-label,.venue-experience-label,.vad-kicker,.vad-radius-label,.vad-map-detail,.vad-boundary,.vad-more,.bi-ux-launch-kicker,.bi-ux-hint){font-size:max(var(--kecb-type-meta), max(14px,1em))}
body :where(.working-numbers,[data-surface="dark"],.dark,.spx-dark,.k2-dark) :where(h1,h2,h3,h4){color:#fffdf9}


/* ---------- DEPLOY 567 canonical correctness + rhythm closure ---------- */
/* Explicit light hero surfaces. High specificity is intentional only at the legacy boundary. */
html:root body :where(.tonight-hero,.artist-halls-hero,.dir-hero,.edu-hero,.tools-book-first-hero,.bi-hero,.system-hero,.upgrade-hero,.book-resources-hero,.section-visual-hero,.fs-hero,.bartender-hero,.bar2-lesson-hero,.bar2-track-hero,.bar2-home-hero,.k2-hero,.k2-home-hero,.chef-lesson-hero,.tool-suite-hero,.tool-category-guide-hero,.role-library-hero,.editorial-role-hero,.visual-hero,.analysis-hero,.compact-hero,.start-here-hero,.org-hero,.dl-hero,.whats-new-hero,.sh-hero,.bar-home-hero,.speakeasy-hero,.founder-page-hero,.pulse-hero,.saved-work-hero,.tool-guides-hero,.dt-tools-hero,.food-truck-hero,.kitchen-hero,.dt-hero,.spx-hero){
  background:var(--kecb-paper-warm);background-image:none;color:var(--kecb-ink);
  border-bottom:1px solid var(--kecb-line);box-shadow:var(--kecb-shadow-none);
}
html:root body :where(.tonight-hero,.artist-halls-hero,.dir-hero,.edu-hero,.tools-book-first-hero,.bi-hero,.system-hero,.upgrade-hero,.book-resources-hero,.section-visual-hero,.fs-hero,.bartender-hero,.bar2-lesson-hero,.bar2-track-hero,.bar2-home-hero,.k2-hero,.k2-home-hero,.chef-lesson-hero,.tool-suite-hero,.tool-category-guide-hero,.role-library-hero,.editorial-role-hero,.visual-hero,.analysis-hero,.compact-hero,.start-here-hero,.org-hero,.dl-hero,.whats-new-hero,.sh-hero,.bar-home-hero,.speakeasy-hero,.founder-page-hero,.pulse-hero,.saved-work-hero,.tool-guides-hero,.dt-tools-hero,.food-truck-hero,.kitchen-hero,.dt-hero,.spx-hero) :where(h1,h2,h3,h4,strong,b){color:var(--kecb-ink)}
html:root body :where(.tonight-hero,.artist-halls-hero,.dir-hero,.edu-hero,.tools-book-first-hero,.bi-hero,.system-hero,.upgrade-hero,.book-resources-hero,.section-visual-hero,.fs-hero,.bartender-hero,.bar2-lesson-hero,.bar2-track-hero,.bar2-home-hero,.k2-hero,.k2-home-hero,.chef-lesson-hero,.tool-suite-hero,.tool-category-guide-hero,.role-library-hero,.editorial-role-hero,.visual-hero,.analysis-hero,.compact-hero,.start-here-hero,.org-hero,.dl-hero,.whats-new-hero,.sh-hero,.bar-home-hero,.speakeasy-hero,.founder-page-hero,.pulse-hero,.saved-work-hero,.tool-guides-hero,.dt-tools-hero,.food-truck-hero,.kitchen-hero,.dt-hero,.spx-hero) :where(p,li,span,small){color:var(--kecb-ink-soft)}
html:root body :where(.visual-hero,.section-visual-hero)::before,html:root body :where(.visual-hero,.section-visual-hero)::after{content:none;background:none}
html:root body .surface-light::before,html:root body .surface-light::after{background:none;background-image:none;box-shadow:var(--kecb-shadow-none)}

/* One eyebrow decision, surface aware. */
html:root body :where(.eyebrow,.tonight-eyebrow,.artist-halls-eyebrow,.dir-kicker,.edu-kicker,.book-first-kicker,.bi-eyebrow,.section-kicker,.spx-kicker,.k2-kicker,.artist-hall-kicker,.artist-section-kicker,.tonight-active-kicker,.fs-kicker,.bartender-kicker,.chef-kicker,.tool-suite-kicker,.role-library-kicker,.visual-kicker,.analysis-kicker,.dl-kicker,.sh-kicker){font-size:max(var(--kecb-type-meta), 14px);line-height:1.3;color:var(--kecb-brass-deep)}
html:root body .surface-dark :where(.eyebrow,[class*="kicker"],[class*="eyebrow"]){color:#e0c08a}

/* action correctness: explicit component focus beats legacy component resets. */
html:root body.role-router-page .role-router-card:focus-visible, html:root body.tonight-page .tonight-date-shortcuts button:focus-visible{outline:3px solid #9c4b2c;outline-offset:3px;box-shadow:0 0 0 1px #fff,0 0 0 4px #9c4b2c}
html:root body.artists-halls-page .artist-halls-page-share .kecb-share-standout{background:#fff;border-color:var(--kecb-line-strong);color:var(--kecb-ink)}
html:root body.artists-halls-page .artist-halls-page-share .kecb-share-standout:hover,
html:root body.artists-halls-page .artist-halls-page-share .kecb-share-standout:focus-visible{background:#fffaf1;border-color:var(--kecb-brass);color:var(--kecb-ink)}

/* Deep-content back navigation must remain visible and hit-testable. */
html:root body :where(.bar2-lesson-hero,.bar2-track-hero,.bar2-home-hero,.academy-lesson-hero,.academy-track-hero) :where(.bar2-back,.academy-back){position:relative;z-index:90;display:inline-flex;align-items:center;min-height:40px;padding:.28rem 0;color:var(--kecb-oxblood);pointer-events:auto;text-decoration-thickness:1px;text-underline-offset:.2em}
html:root body :where(.bar2-lesson-hero,.bar2-track-hero,.academy-lesson-hero,.academy-track-hero){position:relative;isolation:isolate}

/* Text floor for the remaining known labels. */
html:root body :where(.venue-why-label,.venue-experience-label,.vad-kicker,.vad-radius-label,.vad-map-detail,.vad-boundary,.vad-more,.bi-ux-launch-kicker,.bi-ux-hint,.bi-eyebrow,.edu-kicker){font-size:max(var(--kecb-type-meta), 14px);line-height:1.35}

/* Professional-school spec rows share the label baseline. */
html:root body .fs-spec,html:root body .number-grid{align-items:stretch}
html:root body .fs-spec>div,html:root body .number-grid>div{display:grid;grid-template-rows:minmax(2.6em,auto) auto;align-content:stretch}
html:root body .fs-spec>div>span,html:root body .number-grid>div>span{align-self:end}

/* Subnavs scroll rather than clip at intermediate desktop widths. */
html:root body :where(.k2-subnav,.spx-subnav,.bar2-subnav) :where(.k2-wrap,.spx-wrap,.bar2-wrap){overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;overscroll-behavior-inline:contain}
html:root body :where(.k2-subnav,.spx-subnav,.bar2-subnav) a{flex:0 0 auto;white-space:nowrap}

/* Site rhythm: sections get three predictable spacing modes. */
body main>section{scroll-margin-top:76px}
body main>section+section{margin-top:0}
body main :where(.section-compact,.compact-section){padding-block:var(--kecb-s3)}
body main :where(.section-standard,.content-section){padding-block:var(--kecb-s4)}
body main :where(.section-major,.feature-section){padding-block:var(--kecb-s5)}

/* Directory cards: every venue is a distinct, scan-friendly record. */
html:root body .dir-section>.dir-wrap{max-width:1080px}
html:root body .dir-section #dir-list{display:block}
html:root body .dir-section .dir-letter{display:flex;align-items:center;gap:.7rem;margin:1.35rem 0 .55rem;color:var(--kecb-oxblood);font-family:var(--kecb-serif);font-size:max(var(--kecb-type-meta), var(--kecb-type-small));font-weight:700;letter-spacing:.04em;line-height:1;text-decoration:none;border-bottom:0;padding-bottom:0}
html:root body .dir-section .dir-letter::after{content:"";flex:1 1 auto;height:1px;background:var(--kecb-line-strong)}
html:root body .dir-section .dir-card{display:grid;grid-template-columns:minmax(16rem,.9fr) minmax(0,1.1fr);gap:.3rem 1.15rem;align-items:center;margin:0 0 .72rem;padding:.9rem 1rem;border:1px solid var(--kecb-line);border-left:3px solid rgba(184,138,72,.72);border-radius:var(--kecb-radius-card);background:var(--kecb-paper);box-shadow:var(--kecb-shadow-card);transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}
html:root body .dir-section .dir-card:hover{border-color:var(--kecb-line-strong);border-left-color:var(--kecb-brass-deep);background:#fffaf4;box-shadow:var(--kecb-shadow-card)}
html:root body .dir-section .dir-card .dir-name{grid-column:1;grid-row:1;margin:0;font-size:max(var(--kecb-type-meta), var(--kecb-type-subhead));line-height:1.2;min-width:0;overflow-wrap:normal;word-break:normal}
html:root body .dir-section .dir-card .dir-name a{color:var(--kecb-ink);text-decoration:none;font-weight:700}
html:root body .dir-section .dir-card .dir-name a:hover{text-decoration:underline;text-decoration-color:var(--kecb-brass);text-underline-offset:.16em}
html:root body .dir-section .dir-card .dir-meta{grid-column:1;grid-row:2;margin:.12rem 0 0;color:var(--kecb-ink-soft);font-size:max(var(--kecb-type-meta), var(--kecb-type-small));line-height:1.35;min-width:0;overflow-wrap:normal;word-break:normal}
html:root body .dir-section .dir-card .dir-links{grid-column:2;grid-row:1 / span 2;display:flex;flex-wrap:wrap;align-self:center;justify-content:flex-end;gap:.4rem;min-width:0;width:100%;margin:0}
html:root body .dir-section .dir-card .dir-link{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:.5rem .7rem;border:1px solid var(--kecb-line-strong);border-radius:var(--kecb-radius-control);background:#fff;color:var(--kecb-ink);font-size:max(var(--kecb-type-meta), 14px);font-weight:750;line-height:1.1;text-decoration:none;white-space:nowrap;box-shadow:var(--kecb-shadow-none)}
html:root body .dir-section .dir-card .dir-link:hover,html:root body .dir-section .dir-card .dir-link:focus-visible{border-color:var(--kecb-brass-deep);background:var(--kecb-paper-warm);color:var(--kecb-ink)}
html:root body .dir-section .dir-card .dir-link:first-child{border-color:var(--kecb-oxblood);background:var(--kecb-oxblood);color:#fff}
html:root body .dir-section .dir-card .dir-link:first-child:hover,html:root body .dir-section .dir-card .dir-link:first-child:focus-visible{border-color:#59211c;background:#59211c;color:#fff}

/* Tools: keep priority cards; turn the 121-item catalog into lean library rows. */
html:root body.page-tool .tool-card-grid{display:grid;grid-template-columns:1fr;gap:0;border-top:1px solid var(--kecb-line)}
html:root body.page-tool .tool-source-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.35rem 1rem;min-height:0;margin:0;padding:.72rem .08rem;border:0;border-bottom:1px solid var(--kecb-line);border-radius:0;background:transparent;box-shadow:var(--kecb-shadow-none)}
html:root body.page-tool .tool-source-card:hover{background:var(--kecb-paper-warm);transform:none}

/* Booking Intelligence: answer/research hierarchy outranks the control inventory. */
html:root body.booking-intelligence-page .bi-main{max-width:var(--kecb-working);margin-inline:auto}
html:root body.booking-intelligence-page .bi-main>.bi-section:first-child{border-color:var(--kecb-line-strong)}
html:root body.booking-intelligence-page .bi-task-grid{gap:.55rem}
html:root body.booking-intelligence-page .bi-task{min-height:0;padding:.72rem .78rem}
html:root body.booking-intelligence-page .bi-advanced-tools{margin-top:.8rem;border-top:1px solid var(--kecb-line);padding-top:.8rem}

/* Academy: curriculum scans as a sequence, not a wall of equal-weight cards. */
html:root body.academy-complete .academy-track-grid{display:grid;grid-template-columns:1fr;gap:0;border-top:1px solid var(--kecb-line)}
html:root body.academy-complete .academy-track-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.35rem 1rem;align-items:center;margin:0;padding:.78rem .08rem;border:0;border-bottom:1px solid var(--kecb-line);border-radius:0;background:transparent;box-shadow:var(--kecb-shadow-none)}
html:root body.academy-complete .academy-track-card:hover{background:var(--kecb-paper-warm);transform:none}

html:root body.academy-complete .mastery-school-card{border-radius:var(--kecb-radius-card);box-shadow:var(--kecb-shadow-none)}

/* Shift Desk: one stage at a time, lean operational panels, no dashboard bulk. */
html:root body.shift-desk-page .tonight-stage-grid{gap:.35rem;margin:.75rem 0}
html:root body.shift-desk-page .tonight-stage-grid :is(button,a){min-height:42px;border-radius:var(--kecb-radius-control)}
html:root body.shift-desk-page .tonight-action-panel{border:1px solid var(--kecb-line);border-radius:var(--kecb-radius-card);padding:.82rem;box-shadow:var(--kecb-shadow-none)}
html:root body.shift-desk-page .tonight-action{border-radius:var(--kecb-radius-control);box-shadow:var(--kecb-shadow-none)}
html:root body.shift-desk-page .workspace-shortcut-panel{border-radius:var(--kecb-radius-card);box-shadow:var(--kecb-shadow-none)}

/* Canonical geometry. Normal content rests on the page; only true floating layers elevate. */
html:root body main :where(.card,.panel,.info-card,.resource-card,.event-card,.venue-card,.artist-card,.academy-card,.tool-card){box-shadow:var(--kecb-shadow-none)}
html:root body :where(button,.button,.btn,input,select,textarea){border-radius:var(--kecb-radius-control)}

/* Mobile keeps touch clarity without restoring bulk. */
@media(max-width:860px){
  html:root body .dir-section>.dir-wrap{max-width:100%}
  html:root body .dir-section .dir-letter{margin-top:1.05rem}
  html:root body .dir-section .dir-card{grid-template-columns:1fr;gap:.22rem;margin-bottom:.62rem;padding:.82rem .85rem}
  html:root body .dir-section .dir-card .dir-name{grid-column:1;grid-row:auto;font-size:max(var(--kecb-type-meta), var(--kecb-type-subhead))}
  html:root body .dir-section .dir-card .dir-meta{grid-column:1;grid-row:auto}
  html:root body .dir-section .dir-card .dir-links{grid-column:1;grid-row:auto;justify-content:flex-start;margin-top:.42rem}
  html:root body .dir-section .dir-card .dir-link{min-height:40px}
  html:root body.page-tool .tool-source-card{grid-template-columns:1fr}
  body main :where(p,li,dd){max-width:100%}
}

/* Shared mobile shell is owned here so every public page gets the same behavior. */

body .ux-mobile-dock{display:none}
@media(max-width:720px){
  body:has(.ux-mobile-dock){padding-bottom:76px}
  body .ux-mobile-dock{
    position:fixed;z-index:180;left:max(.5rem,env(safe-area-inset-left));right:max(.5rem,env(safe-area-inset-right));bottom:max(.5rem,env(safe-area-inset-bottom));
    display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.2rem;padding:.28rem;border:1px solid rgba(23,25,26,.16);border-radius:var(--kecb-radius-card);
    background:rgba(255,253,249,.97);box-shadow:var(--kecb-shadow-card);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)
  }
  body .ux-mobile-dock a,body .ux-mobile-dock button{
    display:grid;place-items:center;gap:.15rem;min-height:52px;padding:.26rem .12rem;border:0;border-radius:var(--kecb-radius-card);background:transparent;color:var(--kecb-ink);
    font-size:max(var(--kecb-type-meta), 14px);font-weight:750;line-height:1.05;text-decoration:none
  }
  body .ux-mobile-dock a:hover,body .ux-mobile-dock a:focus-visible{background:var(--kecb-paper-soft);color:var(--kecb-ink)}
  body .ux-mobile-dock a[aria-current="page"]{background:var(--kecb-black);color:#fff}
  body .ux-mobile-dock .ux-dock-icon{font-size:max(var(--kecb-type-meta), 1rem);line-height:1;color:inherit}
}
@media print{body .ux-mobile-dock{display:none}}

/* Canonical type scale and readable prose measure. */
html:root body main h1{font-size:max(var(--kecb-type-meta), var(--kecb-type-h1));line-height:1.01}
html:root body main h2{font-size:max(var(--kecb-type-meta), var(--kecb-type-h2));line-height:1.08}
html:root body main h3{font-size:max(var(--kecb-type-meta), var(--kecb-type-h3));line-height:1.2}
html:root body main h4{font-size:max(var(--kecb-type-meta), var(--kecb-type-h4));line-height:1.25}
html:root body main :is(p,li,dd){max-width:var(--kecb-reading)}
html:root body main :is(.eyebrow,[class*="kicker"],[class*="eyebrow"],[class*="meta"],[class*="status"]){font-size:max(14px,var(--kecb-type-meta))}

/* One footer visual language across legacy and v3 markup. */
html:root body :is(footer.site,.site-footer,.site-footer-v3){background:var(--kecb-black-2);color:#d9d0c5;border-top:1px solid rgba(184,138,72,.45);box-shadow:var(--kecb-shadow-none)}
html:root body :is(footer.site,.site-footer,.site-footer-v3) :is(a,strong){color:#f8f1e7}
html:root body :is(footer.site,.site-footer,.site-footer-v3) p{color:#cfc6bb}

/* Homepage resilience: service degradation stays useful and visually intentional. */
html:root body .home-live-fallback{display:grid;place-items:center;align-content:center;gap:.4rem;min-height:clamp(220px,36vw,430px);padding:1.5rem;border:1px solid var(--kecb-line);background:var(--kecb-paper-warm);color:var(--kecb-ink);text-align:center}
html:root body .home-live-fallback strong{font-family:var(--kecb-serif);font-size:max(var(--kecb-type-meta), clamp(1.2rem,2.4vw,1.6rem));color:var(--kecb-ink)}
html:root body .home-live-fallback span{max-width:48ch;color:var(--kecb-ink-soft)}

/* Artists index: scan first; richer tour/link evidence opens on demand. */
html:root body.artists-halls-page #artist-grid{gap:.65rem}
html:root body.artists-halls-page .artist-hall-card{border-radius:var(--kecb-radius-card);box-shadow:var(--kecb-shadow-none);padding:.82rem .9rem}
html:root body.artists-halls-page .artist-hall-card>header{padding-bottom:.58rem}
html:root body.artists-halls-page .artist-next-texas{margin:.58rem 0;padding:.55rem .68rem;border-left-width:2px}
html:root body.artists-halls-page .artist-card-more{margin-top:.45rem;border-top:1px solid var(--kecb-line)}
html:root body.artists-halls-page .artist-card-more>summary{cursor:pointer;display:flex;align-items:center;min-height:40px;padding:.45rem 0;color:var(--kecb-oxblood);font-weight:760}
html:root body.artists-halls-page .artist-card-more-body{padding:.05rem 0 .25rem}
html:root body.artists-halls-page .artist-official-links a{border-radius:var(--kecb-radius-control)}

/* Booking Intelligence: five primary research modes read as choices; advanced inventory stays collapsed. */
html:root body.booking-intelligence-page .bi-main>.bi-section:first-child>.bi-task-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
html:root body.booking-intelligence-page .bi-main>.bi-section:first-child>.bi-task-grid>.bi-task{min-height:76px;border-radius:var(--kecb-radius-card)}
@media(max-width:720px){html:root body.booking-intelligence-page .bi-main>.bi-section:first-child>.bi-task-grid{grid-template-columns:1fr}}

/* Final contrast/tap-floor closure for repeated audit offenders. */
html:root body.booking-intelligence-page :where(.bi-eyebrow,.bi-ux-launch-kicker){color:var(--kecb-brass-deep)}
html:root body.edu-page .edu-kicker{color:var(--kecb-brass-deep)}
html:root body :is(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid #9c4b2c;outline-offset:3px;box-shadow:0 0 0 1px #fff,0 0 0 4px #9c4b2c}
html:root body main :is(button,.button,.btn,input:not([type="checkbox"]):not([type="radio"]),select,textarea,summary){min-height:40px}

/* Card/panel geometry is a sitewide visual primitive, not a page-local invention. */
html:root body main :where(.card,[class$="-card"],[class*="-card "],.panel,[class$="-panel"],[class*="-panel "]){border-radius:var(--kecb-radius-card);box-shadow:var(--kecb-shadow-none)}
html:root body main :where([class*="badge"],[class*="pill"],[class*="chip"]){border-radius:var(--kecb-radius-pill);box-shadow:var(--kecb-shadow-none)}

/* Lean-row child placement: compact without scrambling information order. */
html:root body.page-tool .tool-source-card>strong{grid-column:1;grid-row:1}
html:root body.page-tool .tool-source-card>p{grid-column:1;grid-row:2;margin:.12rem 0 0}
html:root body.page-tool .tool-source-card>small{grid-column:2;grid-row:1 / span 2;align-self:center;white-space:nowrap}
html:root body.academy-complete .academy-track-card>.academy-track-count{grid-column:1;grid-row:1}
html:root body.academy-complete .academy-track-card>strong{grid-column:1;grid-row:2}
html:root body.academy-complete .academy-track-card>p{grid-column:1;grid-row:3;margin:.12rem 0 0}
html:root body.academy-complete .academy-track-card>.academy-track-link{grid-column:2;grid-row:1 / span 3;align-self:center;white-space:nowrap}
@media(max-width:720px){
  html:root body.page-tool .tool-source-card>small{grid-column:1;grid-row:3;white-space:normal;margin-top:.25rem}
  html:root body.academy-complete .academy-track-card{grid-template-columns:1fr}
  html:root body.academy-complete .academy-track-card>.academy-track-link{grid-column:1;grid-row:4;white-space:normal;margin-top:.25rem}
}

/* DEPLOY-567 final browser-verified closure.
   Legacy dark-hero selectors used html:root +; light surfaces must decisively own their descendants. */
html:root body .surface-light.surface-light :is(p,li,dd,span,small):not(.button *):not(button *){
  color:var(--kecb-ink-soft);
}
html:root body .surface-light.surface-light :is(.eyebrow,.tonight-eyebrow,.artist-halls-eyebrow,.dir-kicker,.edu-kicker,.book-first-kicker,.bi-eyebrow,.section-kicker,.spx-kicker,.k2-kicker,.artist-hall-kicker,.artist-section-kicker,.tonight-active-kicker,.fs-kicker,.bartender-kicker,.chef-kicker,.tool-suite-kicker,.role-library-kicker,.visual-kicker,.analysis-kicker,.dl-kicker,.sh-kicker){
  color:var(--kecb-brass-deep);
}
html:root body .surface-light.surface-light :is(h1,h2,h3,h4) :is(span,small){color:inherit}
html:root body .tonight-hero.surface-light h1 span{color:var(--kecb-brass-deep)}
html:root body.booking-intelligence-page .bi-hero.surface-light .bi-maturity-top,
html:root body.booking-intelligence-page .bi-hero.surface-light .bi-maturity-top :is(.bi-eyebrow,.bi-maturity-live,.bi-meta,p,li,span,small){color:#51483f}
html:root body .surface-light.surface-light :is(.upgrade-actions,.book-first-actions) a.secondary{
  color:var(--kecb-oxblood);border-color:var(--kecb-brass);background:transparent;
}
html:root body .book-first-actions a[hidden]{display:none}
/* A relative subnav must not retain the old sticky offset; that offset caused academy hero overlap. */
html:root body :is(.bar2-subnav,.k2-subnav,.spx-subnav,.culture-subnav){top:auto}


/* ==========================================================================\n   DEPLOY 572 — VISUAL CLARITY / INFORMATION CHUNKING\n   Quiet semantic hierarchy: SECTION → GROUP → ROW.\n   Containment belongs to meaningful groups; individual rows stay lean.\n   ========================================================================== */
:root{
  --kecb-group-surface:#fffdf9;
  --kecb-group-active:#fff8ee;
  --kecb-group-line:#d8cfc3;
  --kecb-group-accent:#a77b43;
}

/* Shared section language for information-dense surfaces. */
body main :where(.academy-section-heading,.academy-curriculum-heading){max-width:760px}
body main :where(.academy-section-kicker){margin:0 0 .32rem;color:var(--kecb-brass-deep);font:800 max(var(--kecb-type-meta), 13px)/1.25 var(--kecb-sans);letter-spacing:.115em;text-transform:uppercase}
body main :where(.academy-section-heading,.academy-curriculum-heading) h2{margin:.08rem 0 .38rem;color:var(--kecb-ink);font:700 clamp(1.45rem,2.4vw,1.9rem)/1.12 var(--kecb-serif);letter-spacing:-.022em}
body main :where(.academy-section-heading,.academy-curriculum-heading)>p:last-child{margin:.1rem 0 0;max-width:68ch;color:var(--kecb-ink-soft);line-height:1.55}

/* Academy overview = one SECTION containing metric and explanation GROUPS. */
html:root body:is(.bartender-page,.chef-path-index) .academy-overview-zone{margin:0 0 clamp(2rem,4vw,2.8rem);padding:0 0 clamp(1.8rem,3.4vw,2.4rem);border-bottom:1px solid var(--kecb-line)}
html:root body:is(.bartender-page,.chef-path-index) .academy-overview-zone>.academy-section-heading{margin-bottom:.9rem}
html:root body:is(.bartender-page,.chef-path-index) :where(.bartender-stats,.chef-path-summary){display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem;margin:0 0 1rem;padding:0;border:0;background:transparent}
html:root body:is(.bartender-page,.chef-path-index) :where(.bartender-stats>div,.chef-stat){min-width:0;min-height:68px;padding:.68rem .78rem;border:1px solid var(--kecb-group-line);border-radius:var(--kecb-radius-card);background:var(--kecb-group-surface);box-shadow:var(--kecb-shadow-none)}
html:root body:is(.bartender-page,.chef-path-index) :where(.bartender-stats>div,.chef-stat) strong{display:block;margin:0 0 .08rem;color:var(--kecb-ink);font:700 clamp(1.35rem,2.3vw,1.7rem)/1 var(--kecb-serif);letter-spacing:-.025em}
html:root body:is(.bartender-page,.chef-path-index) :where(.bartender-stats>div span,.chef-stat){color:var(--kecb-ink-soft);font-size:max(var(--kecb-type-meta), .78rem);line-height:1.3}
html:root body:is(.bartender-page,.chef-path-index) .academy-overview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.72rem}
html:root body:is(.bartender-page,.chef-path-index) .academy-info-group{margin:0;padding:1rem 1.05rem;border:1px solid var(--kecb-group-line);border-radius:var(--kecb-radius-card);background:#fff;box-shadow:var(--kecb-shadow-none)}
html:root body:is(.bartender-page,.chef-path-index) .academy-info-group h3{margin:0 0 .48rem;color:var(--kecb-ink);font:700 clamp(1.08rem,1.7vw,1.28rem)/1.18 var(--kecb-serif);letter-spacing:-.012em}
html:root body:is(.bartender-page,.chef-path-index) .academy-info-group p{margin:.48rem 0 0;max-width:66ch;color:var(--kecb-ink-soft);line-height:1.58}
html:root body:is(.bartender-page,.chef-path-index) .academy-info-group p:first-of-type{margin-top:0}

/* Curriculum SECTION starts unmistakably, then phases become the primary GROUPS. */
html:root body:is(.bartender-page,.chef-path-index) .academy-curriculum-heading{margin:0 0 1rem;padding-top:.1rem}
html:root body:is(.bartender-page,.chef-path-index) :where(.bartender-stage-list,.chef-path-list){display:grid;gap:.62rem;margin:0}
html:root body:is(.bartender-page,.chef-path-index) details.academy-phase{margin:0;border:1px solid var(--kecb-group-line);border-radius:var(--kecb-radius-card);background:#fff;box-shadow:var(--kecb-shadow-none);overflow:hidden}
html:root body:is(.bartender-page,.chef-path-index) details.academy-phase[open]{border-color:#c8af8a;border-left:3px solid var(--kecb-group-accent);background:var(--kecb-group-active)}
html:root body:is(.bartender-page,.chef-path-index) details.academy-phase>summary{display:flex;align-items:center;gap:.7rem;min-height:48px;padding:.68rem .78rem;color:var(--kecb-ink);font-family:var(--kecb-serif);font-size:max(var(--kecb-type-meta), 1rem);font-weight:720;line-height:1.2;background:transparent;cursor:pointer}
html:root body:is(.bartender-page,.chef-path-index) details.academy-phase>summary:hover{background:var(--kecb-paper-warm)}
html:root body:is(.bartender-page,.chef-path-index) details.academy-phase>summary .academy-phase-meta{margin-left:auto;padding:.18rem .4rem;border:1px solid var(--kecb-line);border-radius:var(--kecb-radius-control);background:var(--kecb-paper-soft);color:var(--kecb-ink-soft);font-family:var(--kecb-sans);font-size:max(var(--kecb-type-meta), 14px);font-weight:720;line-height:1.15;letter-spacing:.025em;text-transform:uppercase;white-space:nowrap}
html:root body:is(.bartender-page,.chef-path-index) details.academy-phase[open]>summary{padding-bottom:.72rem;border-bottom:1px solid rgba(167,123,67,.28)}
html:root body:is(.bartender-page,.chef-path-index) .academy-phase-body{padding:0 .78rem .55rem;background:transparent}
html:root body:is(.bartender-page,.chef-path-index) .academy-phase-body ol{margin:0;padding:0;list-style:none}
body.bartender-page .academy-phase-body ol{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 1.15rem}
body.chef-path-index .academy-phase-body ol{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 1.15rem}
html:root body:is(.bartender-page,.chef-path-index) .academy-phase-body li{min-width:0;margin:0;padding:0}
html:root body:is(.bartender-page,.chef-path-index) .academy-phase-body li a{display:block;height:100%;padding:.72rem .05rem;border:0;border-top:1px solid #e8e0d5;border-radius:0;background:transparent;color:var(--kecb-ink);text-decoration:none;box-shadow:var(--kecb-shadow-none)}
html:root body:is(.bartender-page,.chef-path-index) .academy-phase-body li a:hover,html:root body:is(.bartender-page,.chef-path-index) .academy-phase-body li a:focus-visible{background:rgba(255,255,255,.72);color:var(--kecb-oxblood)}
html:root body:is(.bartender-page,.chef-path-index) .academy-phase-body li :where(span,.chef-module-number){display:block;margin:0 0 .16rem;color:var(--kecb-brass-deep);font-size:max(var(--kecb-type-meta), 14px);font-weight:780;letter-spacing:.06em;text-transform:uppercase}
html:root body:is(.bartender-page,.chef-path-index) .academy-phase-body li :where(strong,.chef-module-title){display:block;margin:.12rem 0;color:var(--kecb-ink);font-family:var(--kecb-serif);font-size:max(var(--kecb-type-meta), 1rem);font-weight:700;line-height:1.22;letter-spacing:-.008em}
html:root body:is(.bartender-page,.chef-path-index) .academy-phase-body li small{display:block;margin-top:.2rem;color:var(--kecb-ink-soft);font-size:max(var(--kecb-type-meta), .78rem);line-height:1.42}

/* Long lessons: spacing + divider make each headed concept legible before reading. */
body main .academy-lesson-layout{align-items:start;gap:clamp(1.2rem,3vw,2.1rem)}
body main :where(article.bartender-prose,article.chef-lesson-prose)>h2{margin:2rem 0 .55rem;padding-top:1.15rem;border-top:1px solid var(--kecb-line);color:var(--kecb-ink);font:700 clamp(1.22rem,2vw,1.48rem)/1.2 var(--kecb-serif);letter-spacing:-.015em}
body main :where(article.bartender-prose,article.chef-lesson-prose)>h2:first-child{margin-top:0;padding-top:0;border-top:0}
body main :where(article.bartender-prose,article.chef-lesson-prose)>h3{margin:1.3rem 0 .42rem;color:var(--kecb-ink);font-family:var(--kecb-serif)}
body main .academy-lesson-map{border:1px solid var(--kecb-group-line);border-radius:var(--kecb-radius-card);background:var(--kecb-paper-warm);box-shadow:var(--kecb-shadow-none)}

/* Tools: the category is the GROUP; tools inside it remain light ROWS. */
body.page-tool .tool-book-group{margin:0 0 1rem;border:1px solid var(--kecb-group-line);border-radius:var(--kecb-radius-card);background:#fff;box-shadow:var(--kecb-shadow-none);overflow:hidden}
body.page-tool .tool-book-group>header{margin:0;padding:.85rem .95rem;border-bottom:1px solid var(--kecb-line);background:var(--kecb-paper-warm)}
body.page-tool .tool-book-group>header :where(h2,h3,strong){margin-top:0;color:var(--kecb-ink)}
body.page-tool .tool-book-group>header p{max-width:70ch;color:var(--kecb-ink-soft)}
body.page-tool .tool-book-group>.tool-card-grid{padding:0 .9rem .45rem;gap:0 1rem}
body.page-tool .tool-book-group .tool-source-card{min-height:0;padding:.78rem .05rem;background:transparent}
body.page-tool .tools-guide-promo{border-bottom:1px solid var(--kecb-line);background:#fff}
body.page-tool .tools-catalog-shell{border-bottom:1px solid var(--kecb-line);background:var(--kecb-paper-soft)}

/* Booking Intelligence: related measurements live in restrained section GROUPS. */
body.booking-intelligence-page .bi-main{gap:1rem;padding-block:1rem}
body.booking-intelligence-page .bi-main>.bi-section{border:1px solid var(--kecb-group-line);border-left:3px solid rgba(167,123,67,.72);border-radius:var(--kecb-radius-card);background:#fff;box-shadow:var(--kecb-shadow-none)}
body.booking-intelligence-page .bi-main>.bi-section>.bi-eyebrow{margin-bottom:.35rem}
body.booking-intelligence-page .bi-main>.bi-section>h2{margin-top:0}
body.booking-intelligence-page :where(.bi-card,.bi-panel,.bi-result-card,.bi-chart,.bi-viz,.bi-graph,.bi-chart-card){border-radius:var(--kecb-radius-card)}
body.booking-intelligence-page :where(.bi-chart,.bi-viz,.bi-graph,.bi-chart-card){border:1px solid var(--kecb-line);background:var(--kecb-group-surface)}

/* Tonight: location is one compact control GROUP, not a loose line of fields. */
body.tonight-page .tonight-distance{padding:.72rem 0;background:var(--kecb-paper-soft)}
body.tonight-page .tonight-distance-panel{margin:0;padding:.78rem .88rem;border:1px solid var(--kecb-group-line);border-radius:var(--kecb-radius-card);background:#fff;box-shadow:var(--kecb-shadow-none)}
body.tonight-page .tonight-distance-copy{padding-right:.5rem}
body.tonight-page .tonight-quick-controls{border-top:0;border-bottom:1px solid var(--kecb-line);background:#fff}

/* Venue profiles: preserve cards, strengthen group identity without dashboard bulk. */
body.venue-profile-page .vp-main>.vp-card{border-left:3px solid rgba(167,123,67,.55);border-radius:var(--kecb-radius-card)}
body.venue-profile-page .vp-main>.vp-card :where(h2,h3){margin-top:0}

/* Responsive: hierarchy survives on phones without inflating vertical mass. */
@media(max-width:760px){
  html:root body:is(.bartender-page,.chef-path-index) :where(.bartender-stats,.chef-path-summary){grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem}
  html:root body:is(.bartender-page,.chef-path-index) .academy-overview-grid{grid-template-columns:1fr;gap:.55rem}
  html:root body:is(.bartender-page,.chef-path-index) :where(.bartender-stage-list,.chef-path-list){gap:.52rem}
  html:root body:is(.bartender-page,.chef-path-index) details.academy-phase>summary{min-height:46px;padding:.62rem .7rem}
  html:root body:is(.bartender-page,.chef-path-index) .academy-phase-body{padding-inline:.7rem}
  body.bartender-page .academy-phase-body ol,body.chef-path-index .academy-phase-body ol{grid-template-columns:1fr;gap:0}
  body.page-tool .tool-book-group>.tool-card-grid{padding-inline:.72rem}
  body.booking-intelligence-page .bi-main>.bi-section{border-left-width:2px}
  body.venue-profile-page .vp-main>.vp-card{border-left-width:2px}
}
@media(max-width:420px){
  html:root body:is(.bartender-page,.chef-path-index) :where(.bartender-stats,.chef-path-summary){grid-template-columns:repeat(2,minmax(0,1fr))}
  html:root body:is(.bartender-page,.chef-path-index) :where(.bartender-stats>div,.chef-stat){min-height:62px;padding:.6rem .65rem}
  html:root body:is(.bartender-page,.chef-path-index) .academy-info-group{padding:.82rem .86rem}
  html:root body:is(.bartender-page,.chef-path-index) details.academy-phase>summary .academy-phase-meta{font-size:max(var(--kecb-type-meta), 13px)}
}


/* ---------- DEPLOY 648 visual QA + readability closure ---------- */
/* Component typography is allowed to express hierarchy. The zero-specificity 13px guard
   in the foundation bundle remains the only global floor. */
html:root body main .recommend-card{justify-content:flex-start}
html:root body main a.quick-card{min-height:auto;justify-content:flex-start}
html:root body main a.quick-card small{margin-top:.75rem}
html:root body main article.expansion-card{justify-content:flex-start}

/* Light-surface controls own light-surface colors. */
html:root body .surface-light .button.secondary,
html:root body :is(.visual-hero,.section-visual-hero).surface-light .button.secondary{
  background:#fff;color:var(--kecb-ink);border-color:var(--kecb-ink);
}
html:root body .dt-hero .dt-button.secondary{
  background:#fff;color:var(--kecb-ink);border-color:var(--kecb-ink);
}
html:root body .dt-hero .kecb-u-color-gold-soft{color:#6f3023}
html:root body .fv-choice-grid a:first-child :is(strong,b){color:#fffdf9}
html:root body .fv-choice-grid a:first-child span{color:#e7e1d8;opacity:1}
html:root body .start-here-primary-grid a:first-child b{color:#f0c96e}

/* Show History search remains a deliberate dark control surface after global light-card rules. */
html:root body.show-history .sh-search-card{background:#111419;color:#fff;border-color:#2b3036}
html:root body.show-history .sh-search-card .sh-search-primary label{color:#fffdf9}
html:root body.show-history .sh-search-card .sh-filter-row label{color:#d8dde3}
html:root body.show-history .sh-search-card .sh-filter-summary{color:#d8dde3}

/* Venue discovery labels never shrink below the site's declared visible-text floor on phones. */
@media(max-width:680px){
  html:root body.venue-profile-page :is(
    .entity-profile-visual figcaption,.venue-section-label,.vp-detail strong,
    .vad-stat span,.vad-tabs button,.vad-radius button,.vad-radius-label,.vad-map-note,
    .vad-map-detail,.vad-row-meta,.vad-row-reason,.vad-distance,.vad-boundary,.vad-more,
    .venue-experience-item,.venue-experience-empty,.venue-owner-strip>div>span,
    .venue-owner-strip small,.venue-owner-strip>a,.venue-current h2:before,.venue-next-date,
    .venue-next-copy small,.venue-program h2:before
  ){font-size:max(var(--kecb-type-meta), 14px);line-height:1.35}
  html:root body.venue-profile-page :is(.venue-verification-fact,.venue-back-link,[data-seo-observed-history] p){font-size:max(var(--kecb-type-meta), 14px)}
}

/* Three section rhythm tokens; recurring long discovery/topic blocks get an unmistakable break. */
html:root body main > .discovery-section + .discovery-section{
  margin-top:var(--kecb-section-gap-standard);
  border-top:1px solid var(--kecb-line-strong);
  padding-top:var(--kecb-section-gap-major);
}
html:root body main .topic-section + .topic-section{
  margin-top:var(--kecb-section-gap-standard);
  border-top:1px solid var(--kecb-line-strong);
  padding-top:var(--kecb-section-gap-major);
}
html:root body main > .kecb-related{margin-top:var(--kecb-section-gap-standard)}


/* ---------- DEPLOY 649 visual QA residual closure ---------- */
/* Eyebrow colors are owned by surface, not by a misleading semantic class name. */
html:root body{
  --kecb-eyebrow-on-light:#7f5c29;
  --kecb-eyebrow-on-dark:#f3d587;
}
html:root body main :is(.academy-full-details,.guide-full-details,.academy-promise-panel,.chapter-connected-learning) :is(.eyebrow,.eyebrow-on-dark){
  color:var(--kecb-eyebrow-on-light);
}
html:root body main :is(.surface-dark,.analysis-hero,.section-visual-hero) :is(.eyebrow,.eyebrow-on-dark){
  color:var(--kecb-eyebrow-on-dark);
}

/* Start Here: the entire dark choice owns a dark-surface type palette. */
html:root body main .start-here-primary-grid>a:first-child{
  background:var(--kecb-black);
  border-color:var(--kecb-black);
  color:#fffdf9;
}
html:root body main .start-here-primary-grid>a:first-child :is(strong,b){color:#fffdf9}
html:root body main .start-here-primary-grid>a:first-child>span{
  color:#e9edf2;
  opacity:1;
  font-size:max(var(--kecb-type-meta), max(14px,var(--kecb-type-micro)));
}
html:root body main .start-here-primary-grid>a:first-child>b{color:#f0c96e}

/* Venue discovery microcopy: the 13px floor belongs to the component at every width. */
html:root body.venue-profile-page :is(
  .entity-profile-visual figcaption,.venue-section-label,.vp-detail strong,
  .vad-stat span,.vad-tabs button,.vad-radius button,.vad-radius-label,.vad-map-note,
  .vad-map-detail,.vad-row-meta,.vad-row-reason,.vad-distance,.vad-boundary,.vad-more,
  .venue-experience-item,.venue-experience-empty,.venue-owner-strip>div>span,
  .venue-owner-strip small,.venue-owner-strip>a,.venue-current h2:before,.venue-next-date,
  .venue-next-copy small,.venue-program h2:before
){font-size:max(var(--kecb-type-meta), 14px);line-height:1.35}
html:root body.venue-profile-page :is(.venue-verification-fact,.venue-back-link,[data-seo-observed-history] p){font-size:max(var(--kecb-type-meta), 14px)}

/* Recommend cards size to content; hierarchy no longer depends on reserved blank height. */
html:root body main .recommend-card{min-height:auto}

/* Continuity handoff microcopy clears AA on its light editorial surface. */
html:root body .kecb-handoff p>span,
html:root body .kecb-handoff-recent>span{color:#555f68}

/* DEPLOY 657 — Tonight light-hero contrast closure.
   The legacy cream emphasis was effectively invisible on the warm-paper hero.
   Oxblood keeps the title accent while clearing WCAG AA/AAA contrast. */
html:root body.tonight-page .tonight-hero.surface-light h1 em{color:var(--kecb-oxblood);font-style:normal}

/* Small/meta text on light surfaces uses the same readable muted token when no component owns it. */
html:root body main :is(.surface-light,.pr-library-excerpt,.book-source-banner) small{color:#5b554d}


/* ---------- DEPLOY 650 no-blue public-surface closure ---------- */
/*
   Public decorative surfaces use the warm KECB palette. Navy is reserved for
   data semantics and explicit reader modes, never as a generic page-section fill.
*/
html:root body{
  --kecb-espresso:#1b1512;
  --kecb-espresso-2:#241b17;
  --kecb-band-paper:#f3ece3;
}

/* Large legacy dark bands become light editorial surfaces. */
html:root body main :is(
  .expansion-band,.field-center-strip,.role-related,.decision-band,.founder-principles,
  .k2-dark,.spx-dark,.directory-methodology,.discovery-band,.food-truck-feature-band,
  .food-truck-reviewed,.free-tools-home,.home-academy-callout,.home-directory-callout,
  .home-discovery,.home-discovery-carousel,.next-steps-efficient,.guided-system-card,
  .artist-complete-callout,.artist-directory-cta,.artist-intent-panel,.bar-academy-feature,
  .bartender-station,.chapter-connect-cta,.chapter-connected-learning,.recipe-culture-door,
  .path-progress-card,.search-browse-card,.tool-all-card,.academy-promise-panel,
  .mastery-deepen-panel,.mastery-sidebar,.visual-banner,.whats-new-feature-side,
  .food-truck-snapshot-side,.guide-full-details details
){
  background:var(--kecb-band-paper);
  background-image:none;
  color:var(--kecb-ink);
  border-color:var(--kecb-line);
  box-shadow:var(--kecb-shadow-none);
}
html:root body main :is(
  .expansion-band,.field-center-strip,.role-related,.decision-band,.founder-principles,
  .k2-dark,.spx-dark,.directory-methodology,.discovery-band,.food-truck-feature-band,
  .food-truck-reviewed,.free-tools-home,.home-academy-callout,.home-directory-callout,
  .home-discovery,.home-discovery-carousel,.next-steps-efficient,.guided-system-card,
  .artist-complete-callout,.artist-directory-cta,.artist-intent-panel,.bar-academy-feature,
  .bartender-station,.chapter-connect-cta,.chapter-connected-learning,.recipe-culture-door,
  .path-progress-card,.search-browse-card,.tool-all-card,.academy-promise-panel,
  .mastery-deepen-panel,.mastery-sidebar,.visual-banner,.whats-new-feature-side,
  .food-truck-snapshot-side,.guide-full-details details
) :is(h1,h2,h3,h4,strong,b){color:var(--kecb-ink)}
html:root body main :is(
  .expansion-band,.field-center-strip,.role-related,.decision-band,.founder-principles,
  .k2-dark,.spx-dark,.directory-methodology,.discovery-band,.food-truck-feature-band,
  .food-truck-reviewed,.free-tools-home,.home-academy-callout,.home-directory-callout,
  .home-discovery,.home-discovery-carousel,.next-steps-efficient,.guided-system-card,
  .artist-complete-callout,.artist-directory-cta,.artist-intent-panel,.bar-academy-feature,
  .bartender-station,.chapter-connect-cta,.chapter-connected-learning,.recipe-culture-door,
  .path-progress-card,.search-browse-card,.tool-all-card,.academy-promise-panel,
  .mastery-deepen-panel,.mastery-sidebar,.visual-banner,.whats-new-feature-side,
  .food-truck-snapshot-side,.guide-full-details details
) :is(p,li,dd,span,small){color:var(--kecb-ink-soft)}
html:root body main :is(
  .expansion-band,.field-center-strip,.role-related,.decision-band,.founder-principles,
  .k2-dark,.spx-dark,.directory-methodology,.discovery-band,.food-truck-feature-band,
  .food-truck-reviewed,.free-tools-home,.home-academy-callout,.home-directory-callout,
  .home-discovery,.home-discovery-carousel,.next-steps-efficient,.guided-system-card,
  .artist-complete-callout,.artist-directory-cta,.artist-intent-panel,.bar-academy-feature,
  .bartender-station,.chapter-connect-cta,.chapter-connected-learning,.recipe-culture-door,
  .path-progress-card,.search-browse-card,.tool-all-card,.academy-promise-panel,
  .mastery-deepen-panel,.mastery-sidebar,.visual-banner,.whats-new-feature-side,
  .food-truck-snapshot-side,.guide-full-details details
) :is(.eyebrow,[class*="kicker"]){color:var(--kecb-brass-deep)}

/* The former navy expansion cards are now crisp paper cards on a warm band. */
html:root body main .expansion-band :is(
  .expansion-card,.culture-definition,.resource-link,.system-step,.preservation-tool-card,
  .callout-box,.culture-note,.workflow-card
){
  background:#fff;
  background-image:none;
  color:var(--kecb-ink);
  border-color:var(--kecb-line);
  box-shadow:var(--kecb-shadow-none);
}
html:root body main .expansion-band :is(
  .expansion-card,.culture-definition,.resource-link,.system-step,.preservation-tool-card,
  .callout-box,.culture-note,.workflow-card
) :is(h2,h3,h4,strong,b){color:var(--kecb-ink)}
html:root body main .expansion-band :is(
  .expansion-card,.culture-definition,.resource-link,.system-step,.preservation-tool-card,
  .callout-box,.culture-note,.workflow-card
) :is(p,li,span,small){color:var(--kecb-ink-soft)}
html:root body main .expansion-band :is(.expansion-card,.resource-link,.preservation-tool-card,.culture-note) a{color:var(--kecb-oxblood)}

/* Dark-card variants no longer use navy as decoration. */
html:root body main :is(.spx-card.dark,.academy-assessment-card,.academy-at-glance article,.academy-concept-grid article,.academy-rubric article,.academy-tool-grid article){
  background:#fff;background-image:none;color:var(--kecb-ink);
  border-color:var(--kecb-line);box-shadow:var(--kecb-shadow-none);
}
html:root body main :is(.spx-card.dark,.academy-assessment-card,.academy-at-glance article,.academy-concept-grid article,.academy-rubric article,.academy-tool-grid article) :is(h2,h3,h4,strong){color:var(--kecb-ink)}
html:root body main :is(.spx-card.dark,.academy-assessment-card,.academy-at-glance article,.academy-concept-grid article,.academy-rubric article,.academy-tool-grid article) :is(p,li,span,small){color:var(--kecb-ink-soft)}

/* Secondary navigation may remain dark, but dark means warm near-black—not blue. */
html:root body :is(.culture-subnav,.k2-subnav,.spx-subnav,.bar2-subnav,.speakeasy-nav,.role-quickbar){
  background:var(--kecb-espresso);
  background-image:none;
  color:#f8f1e7;
  border-color:rgba(184,138,72,.42);
  box-shadow:var(--kecb-shadow-none);
}
html:root body :is(.culture-subnav,.k2-subnav,.spx-subnav,.bar2-subnav,.speakeasy-nav,.role-quickbar) a{
  color:#f5eee4;
  border-color:rgba(255,255,255,.16);
}
html:root body :is(.culture-subnav,.k2-subnav,.spx-subnav,.bar2-subnav,.speakeasy-nav,.role-quickbar) a:is(:hover,:focus-visible,[aria-current="page"],.active){
  background:var(--kecb-paper-soft);
  color:var(--kecb-ink);
  border-color:var(--kecb-paper-soft);
}

/* Data insets can stay dark, but use espresso rather than navy. */
html:root body main :is(.working-numbers,.school-footer){
  background:var(--kecb-espresso);
  background-image:none;
  color:#f8f1e7;
  border-color:rgba(184,138,72,.42);
}
html:root body main :is(.working-numbers,.school-footer) :is(h1,h2,h3,h4,strong,p,li,span,small,a){color:#f8f1e7}

/* Start Here and compact primary controls use black, not navy. */
html:root body main .start-here-primary-grid>a:first-child{
  background:var(--kecb-black);
  border-color:var(--kecb-black);
}
html:root body.tonight-page main .tonight-links>a.primary{
  background:var(--kecb-black);
  color:#fff;
  border-color:var(--kecb-black);
}
html:root body main :is(.surface-light .button.secondary,.dt-hero .dt-button.secondary){
  color:var(--kecb-ink);
  border-color:var(--kecb-ink);
}

/* Large public sections must never resolve to the legacy navy gradient. */
html:root body main :is(.expansion-band,.field-center-strip,.role-related,.decision-band,.founder-principles,.k2-dark,.spx-dark){background-image:none}

/* ---------- DEPLOY 650 emerging discovery density closure ---------- */
/* Discovery cards own a compact record scale; canonical section h2 sizing must not turn names into page headings. */
html:root body.emerging-halls-page .emerging-hero{
  padding:1.35rem 0 .8rem;
}
html:root body.emerging-halls-page .emerging-hero h1{
  max-width:760px;
  margin:0 0 .42rem;
  font-size:max(var(--kecb-type-meta), clamp(2rem,3.7vw,3.15rem));
  line-height:1;
}
html:root body.emerging-halls-page .emerging-lead{
  max-width:700px;
  margin:.45rem 0 0;
  font-size:max(var(--kecb-type-meta), 1rem);
  line-height:1.5;
}
html:root body.emerging-halls-page .emerging-controls{
  padding:.7rem 0;
}
html:root body.emerging-halls-page .emerging-controls-row,
html:root body.emerging-halls-page .emerging-location-row{gap:.45rem .6rem}
html:root body.emerging-halls-page .emerging-location-row{margin-top:.45rem}
html:root body.emerging-halls-page .emerging-controls label{gap:.22rem;font-size:max(var(--kecb-type-meta), 14px)}
html:root body.emerging-halls-page .emerging-controls :is(input,select,button){min-height:38px}
html:root body.emerging-halls-page .emerging-meta{margin-top:.45rem;font-size:max(var(--kecb-type-meta), 14px)}
html:root body.emerging-halls-page .emerging-results{padding:.9rem 0 2.6rem}
html:root body.emerging-halls-page #emerging-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.65rem;
  align-items:start;
}
html:root body.emerging-halls-page .emerging-card{
  align-self:start;
  padding:.8rem .9rem;
  border-radius:var(--kecb-radius-card);
  box-shadow:var(--kecb-shadow-none);
}
html:root body.emerging-halls-page .emerging-card h2,
html:root body.emerging-halls-page .emerging-card h2 a{
  margin:0;
  color:var(--kecb-oxblood);
  font-family:var(--kecb-sans);
  font-size:max(var(--kecb-type-meta), clamp(1.18rem,1.65vw,1.42rem));
  font-weight:760;
  line-height:1.08;
  letter-spacing:-.025em;
  text-decoration:none;
}
html:root body.emerging-halls-page .emerging-card-context{margin-top:.38rem;gap:.25rem}
html:root body.emerging-halls-page .emerging-chip{padding:.16rem .42rem;font-size:max(var(--kecb-type-meta), 14px)}
html:root body.emerging-halls-page :is(.emerging-card-area,.emerging-next){
  margin:.48rem 0 0;
  font-size:max(var(--kecb-type-meta), var(--kecb-type-micro));
  line-height:1.38;
}
html:root body.emerging-halls-page .emerging-next{padding-top:.48rem}
html:root body.emerging-halls-page .emerging-socials{margin:.45rem 0 0;padding-top:.42rem;font-size:max(var(--kecb-type-meta), 14px);line-height:1.4}
html:root body.emerging-halls-page .emerging-card-actions{
  margin-top:.52rem;
  padding-top:.1rem;
  gap:.35rem;
}
html:root body.emerging-halls-page .emerging-card-actions :is(a,button){
  min-height:38px;
  padding:.34rem .55rem;
  border-radius:var(--kecb-radius-control);
  font-size:max(var(--kecb-type-meta), 14px);
  line-height:1.1;
}
/* The PR excerpt remains distinctive, but discovery pages use an editorial inset rather than a billboard. */
html:root body.emerging-halls-page .pr-library-excerpt--feature{
  width:min(100%,720px);
  margin:.7rem auto .9rem;
  padding:.85rem 1rem;
  border-radius:var(--kecb-radius-card);
  box-shadow:var(--kecb-shadow-card);
}
html:root body.emerging-halls-page .pr-library-excerpt--feature .pr-library-source{padding-right:.85rem}
html:root body.emerging-halls-page .pr-library-excerpt--feature .pr-library-copy{padding-left:2.25rem}
html:root body.emerging-halls-page .pr-library-excerpt--feature .pr-library-quote-mark{
  top:-.28rem;
  font-size:max(var(--kecb-type-meta), 3.25rem);
}
html:root body.emerging-halls-page .pr-library-excerpt--feature blockquote p{
  max-width:54ch;
  font-size:max(var(--kecb-type-meta), clamp(var(--kecb-type-body),1.35vw,1.16rem));
  line-height:1.42;
  letter-spacing:-.008em;
}
html:root body.emerging-halls-page .pr-library-excerpt--feature .pr-library-link{
  margin-top:.5rem;
  font-size:max(var(--kecb-type-meta), 14px);
}
@media(min-width:760px){
  html:root body.emerging-halls-page .pr-library-excerpt--feature{
    grid-template-columns:minmax(125px,150px) 1fr;
    column-gap:1rem;
  }
}
@media(max-width:900px){
  html:root body.emerging-halls-page #emerging-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:640px){
  html:root body.emerging-halls-page .emerging-hero{padding:1rem 0 .7rem}
  html:root body.emerging-halls-page .emerging-hero h1{font-size:max(var(--kecb-type-meta), clamp(1.9rem,9vw,2.55rem))}
  html:root body.emerging-halls-page #emerging-grid{grid-template-columns:1fr}
  html:root body.emerging-halls-page .emerging-card{padding:.72rem .78rem}
  html:root body.emerging-halls-page .pr-library-excerpt--feature{width:calc(100% - .75rem);margin:.65rem .375rem .8rem;padding:.75rem .78rem}
  html:root body.emerging-halls-page .pr-library-excerpt--feature .pr-library-copy{padding-left:1.85rem}
  html:root body.emerging-halls-page .pr-library-excerpt--feature .pr-library-quote-mark{font-size:max(var(--kecb-type-meta), 2.75rem)}
  html:root body.emerging-halls-page .pr-library-excerpt--feature blockquote p{font-size:max(var(--kecb-type-meta), 1rem);line-height:1.4}
}


/* ---------- DEPLOY 650 legacy blue-surface second sweep ---------- */
/* Smaller legacy families were still able to expose old navy from earlier bundles. */
html:root body main :is(
  .home-hero,.dt-tool-header,.role-library-hero,.spx-preview,.spx-stat,
  .section-image-card,.edu-cta,.front-door-founder
){
  background:var(--kecb-paper-warm);
  background-image:none;
  color:var(--kecb-ink);
  border-color:var(--kecb-line);
  box-shadow:var(--kecb-shadow-none);
}
html:root body main :is(
  .home-hero,.dt-tool-header,.role-library-hero,.spx-preview,.spx-stat,
  .section-image-card,.edu-cta,.front-door-founder
) :is(h1,h2,h3,h4,strong,b){color:var(--kecb-ink)}
html:root body main :is(
  .home-hero,.dt-tool-header,.role-library-hero,.spx-preview,.spx-stat,
  .section-image-card,.edu-cta,.front-door-founder
) :is(p,li,span,small){color:var(--kecb-ink-soft)}
html:root body main .role-library-gate>summary{
  background:#fff;
  background-image:none;
  color:var(--kecb-ink);
  border-color:var(--kecb-line-strong);
  box-shadow:var(--kecb-shadow-none);
}
html:root body main .role-library-gate>summary :is(strong,span,small){color:var(--kecb-ink)}
html:root body main .path-card .path-icon,
html:root body main .section-image-card .card-icon{
  background:var(--kecb-paper-soft);
  background-image:none;
  color:var(--kecb-brass-deep);
  border-color:var(--kecb-line);
}
html:root body main .food-truck-table th{
  background:var(--kecb-espresso);
  background-image:none;
  color:#f8f1e7;
  border-color:rgba(184,138,72,.42);
}
html:root body main :is(.recipe-mobile-actions,.dt-tool-header .button.primary){
  background:var(--kecb-black);
  background-image:none;
  color:#fff;
  border-color:var(--kecb-black);
}
html:root body main .chapter-work-actions a{
  background:#fff;
  background-image:none;
  color:var(--kecb-ink);
  border-color:var(--kecb-line-strong);
}


/* ---------- DEPLOY 656 compact warm continuation band ---------- */
/*
   The runtime inserts .next-steps-efficient between </main> and the footer.
   Earlier no-blue rules were scoped to `main`, so they could not reach the
   actual injected band. Own the component at body scope and keep it warm.
*/
html:root body .next-steps-efficient{
  width:min(var(--max,1180px),calc(100% - 2rem));
  margin:1.05rem auto;
  padding:.78rem .9rem;
  border:1px solid rgba(126,91,48,.28);
  border-radius:var(--kecb-radius-card);
  background:#f3ece3;
  background-image:none;
  color:#211d18;
  box-shadow:var(--kecb-shadow-none);
}
html:root body .next-steps-efficient>.eyebrow,
html:root body .next-steps-efficient p.eyebrow{
  margin:0 0 .12rem;
  color:#7f5c29;
  font-size:max(var(--kecb-type-meta), 14px);
  line-height:1.25;
}
html:root body .next-steps-efficient h2{
  margin:.08rem 0 .62rem;
  color:#211d18;
  font-size:max(var(--kecb-type-meta), clamp(1.55rem,3vw,2.15rem));
  line-height:1.05;
}
html:root body .next-steps-efficient>div{
  gap:.55rem;
}
html:root body .next-steps-efficient a{
  min-height:86px;
  padding:.62rem .7rem;
  border:1px solid rgba(70,54,41,.18);
  border-radius:var(--kecb-radius-card);
  background:#fffdf9;
  color:#211d18;
  box-shadow:var(--kecb-shadow-none);
}
html:root body .next-steps-efficient a:hover,
html:root body .next-steps-efficient a:focus-visible{
  border-color:#9a6f2d;
  background:#fffaf2;
}
html:root body .next-steps-efficient small{
  color:#7f5c29;
  font-size:max(var(--kecb-type-meta), 14px);
  line-height:1.2;
}
html:root body .next-steps-efficient strong{
  margin:.24rem 0;
  color:#211d18;
  font-size:max(var(--kecb-type-meta), var(--kecb-type-small));
  line-height:1.25;
}
html:root body .next-steps-efficient span{
  margin-top:auto;
  color:#8f2d24;
  font-size:max(var(--kecb-type-meta), 14px);
  line-height:1.2;
}
@media(max-width:650px){
  html:root body .next-steps-efficient{width:calc(100% - 1rem);margin:.8rem .5rem;padding:.68rem}
  html:root body .next-steps-efficient h2{font-size:max(var(--kecb-type-meta), 1.55rem);margin-bottom:.52rem}
  html:root body .next-steps-efficient a{min-height:76px}
}


/* ---------- DEPLOY 659 audit-remediation: semantic contrast ownership ---------- */
/*
   These rules deliberately target semantic classes rather than bare descendant tags.
   That prevents a later surface repaint from inheriting half of a dark-theme component.
*/
html:root body main .chapter-connect-cta .chapter-connect-action{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:42px;padding:.55rem .72rem;border:1px solid var(--kecb-line-strong);
  border-radius:var(--kecb-radius-card);background:#fffdf9;color:#211d18;text-decoration:none;font-weight:750;
}
html:root body main .chapter-connect-cta .chapter-connect-action:hover,
html:root body main .chapter-connect-cta .chapter-connect-action:focus-visible{background:#fff7ea;border-color:#8f2d24;color:#6f211c}
html:root body main .field-checklist .field-checklist-item{color:#2c2925}
html:root body main .recipe-culture-door .recipe-culture-link{color:#7d3028;font-weight:800;text-decoration-thickness:.08em;text-underline-offset:.16em}
html:root body main .spx-stats .spx-stat{background:#fffdf9;background-image:none;border:1px solid var(--kecb-line);color:#17191a}
html:root body main .spx-stats .spx-stat .spx-stat-value{color:#17191a}
html:root body main .spx-stats .spx-stat .spx-stat-label{color:#50565a}
html:root body main .start-here-primary-grid>a:first-child .start-here-choice-detail{color:#e9edf2;opacity:1}


/* ---------- DEPLOY 660 structural continuity + type + tap-target closure ---------- */
/* Exact destination uses the dark state; section descendants use a quieter location state. */
@media(max-width:720px){
  html:root body .ux-mobile-dock a[aria-current="location"]{
    background:var(--kecb-paper-soft);
    color:var(--kecb-oxblood);
    box-shadow:inset 0 0 0 1px var(--kecb-line-strong);
  }
}
/* Editorial reading copy may never collapse into microcopy even when legacy bundles carry smaller sizes. */
html:root body main :is(.chapter-content,.prose-section,.kitchen-longform,.legal-section,.analysis-body,.guide-body,.lesson-content) :is(p,li,dd){
  font-size:max(var(--kecb-type-meta), max(15px,1em));
}
/* The only confirmed WCAG 2.5.8 cluster: adjacent chapter tool links need a real gap and target height. */
html:root body main .chapter-tool-grid{gap:.62rem}
html:root body main .chapter-tool-card{
  display:grid;
  align-content:center;
  gap:.18rem;
  min-height:44px;
  padding:.62rem .72rem;
}
/* Unprimed continuity is intentionally lighter than entity-specific continuity, but always visible. */
html:root body .kecb-handoff-editorial.kecb-handoff-unprimed{
  background:#fbf6ee;
  border-color:#ded1bf;
}
}
