/*
Theme Name: Kadence Knox
Theme URI: https://knoxesports.gg
Description: Knox Esports child theme. Light look since Oct 2, 2026 (Chris): white and soft-grey bands, rounded panels and pill buttons, #F59535 orange as the accent. Type since Oct 6, 2026: Bebas Neue headlines with Gotham text (Montserrat stands in until Knox has a Gotham web licence).
Author: Knox Esports
Template: kadence
Version: 0.9.9
*/

/* ---- Corners: the style guide's square-corner rule was lifted for the light site (Oct 2, 2026).
   Panels, photos and buttons are rounded; flyers and schedule cards keep their own square corners. ---- */

/* ---- Headings: the base rule; h1/h2 switch to the display face in TYPE at the end of this file (Oct 6, 2026) ---- */
h1, h2, h3, h4, .wp-block-heading {
  font-family: var(--knox-font-text);
  text-transform: none;
  letter-spacing: -0.02em;
  font-weight: 700;
  text-wrap: balance;
}

/* ---- Design element: chevron ---- */
.knox-chevron-divider {
  display: block; width: 100%; height: 26px; line-height: 0;
  background: #000;
}
.knox-chevron-divider::after {
  content: ""; display: block; width: 100%; height: 26px;
  background: #F59535;
  clip-path: polygon(0 0, 50% 62%, 100% 0, 100% 100%, 0 100%);
}
.knox-kicker {
  display: flex; align-items: center; gap: 9px;
  font-size: 11px; font-weight: 700; letter-spacing: 0.2em;
  text-transform: uppercase; color: #F59535; margin-bottom: 14px;
}
.knox-kicker::before {
  content: ""; width: 16px; height: 9px; background: #F59535; flex: 0 0 auto;
  clip-path: polygon(0 0, 58% 0, 100% 50%, 58% 100%, 0 100%, 42% 50%);
}

/* ---- Design element: perspectival hatching ---- */
.knox-hatch { position: relative; }
.knox-hatch > * { position: relative; z-index: 1; }
.knox-hatch::before {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background: repeating-linear-gradient(115deg, transparent 0 30px, rgba(255,255,255,.05) 30px 32px);
}
.knox-hatch-light::before {
  background: repeating-linear-gradient(115deg, transparent 0 22px, rgba(0,0,0,.045) 22px 24px);
}

/* ---- Accessibility: orange text never sits on white (2.3:1 fails AA) ---- */
.has-knox-orange-color { background-clip: initial; }

/* ---- Tables ---- */
.wp-block-table th {
  background: #000; color: #fff; text-transform: uppercase;
  font-size: 11px; letter-spacing: 0.13em;
}
.wp-block-table td, .wp-block-table th { border: 1px solid #DEDEDE; padding: 13px 15px; }

/* ---- Headings inherit the section's text colour (fixes dark-on-black) ---- */
.wp-block-group h1, .wp-block-group h2, .wp-block-group h3,
.wp-block-group h4, .wp-block-group .wp-block-heading,
.wp-block-cover h1, .wp-block-cover h2, .wp-block-cover .wp-block-heading { color: inherit; }

/* ---- Kadence stamps a page-title banner; sections carry their own headers ---- */
.page .entry-hero-container-inner,
.page .entry-hero,
.home .entry-hero-container-inner,
.home .entry-hero { display: none !important; }

/* ---- Full-bleed sections shouldn't inherit the content wrapper's padding ---- */
.content-area .site-main,
.content-container.site-container { padding-top: 0; padding-bottom: 0; }
.entry-content-wrap { padding: 0 !important; }
.single-content .alignfull { margin-left: 0; margin-right: 0; width: 100%; max-width: 100%; }

/* ---- Logo is the wordmark; don't repeat the site name beside it ---- */
.site-branding .site-title-wrap,
.site-branding .site-title,
.site-branding .site-description { display: none !important; }
.site-branding .custom-logo { max-height: 46px; width: auto; }

/* ===== KNOX: The Events Calendar brand overrides (orange accent, Michroma titles, square corners) ===== */
body .tribe-common, body .tribe-events, body .tribe-events-view, .tribe-common.tribe-common, .tribe-events.tribe-events, :root {
  --tec-color-accent-primary: #F59535;
  --tec-color-accent-primary-hover: #ffa552;
  --tec-color-accent-primary-active: #e0862c;
  --tec-color-accent-primary-background: rgba(245,149,53,.08);
  --tec-color-link-primary: #000000;
  --tec-color-link-accent: #000000;
  --tec-color-link-accent-hover: #AD5A0C;
  --tec-color-text-primary: #000000;
  --tec-color-text-secondary: #444444;
  --tec-color-border-default: #d9d9d9;
  --tec-color-border-active: #F59535;
  --tec-color-day-marker-current-month: #000000;
  --tec-color-day-marker-month: #000000;
  --tec-color-background-events-bar-submit-button: #F59535;
  --tec-color-background-events-bar-submit-button-hover: #ffa552;
  --tec-color-background-events-bar-submit-button-active: #e0862c;
  --tec-color-background-view-selector-list-item-hover: #F0F0F0;
  --tec-color-background-secondary: #F0F0F0;
  --tec-color-background-messages: #F0F0F0;
  --tec-color-icon-active: #F59535;
  --tec-color-accent-primary-background-medium: rgba(245,149,53,.16);
  --tec-border-radius-default: 0;
  --tec-border-radius-day-marker: 0;
  --tec-border-radius-events-bar: 0;
  --tec-border-radius-tooltip: 0;
  --tec-font-family-sans-serif: var(--knox-font-text);
  --tec-color-text-events-bar-submit-button: #000000;
  --tec-color-text-events-bar-submit-button-hover: #000000;
  --tec-color-text-events-bar-submit-button-active: #000000;
}
.tribe-events .tribe-events-c-search__button,
.tribe-common .tribe-common-c-btn, .tribe-common .tribe-common-c-btn:visited,
.tribe-common a.tribe-common-c-btn, .tribe-common a.tribe-common-c-btn:visited { color: #000000 !important; }
.tribe-events .tribe-events-calendar-list__event-title,
.tribe-events .tribe-events-calendar-day__event-title,
.tribe-events .tribe-events-calendar-month__calendar-event-title,
.tribe-events .tribe-events-calendar-month__multiday-event-title,
.tribe-events .tribe-events-calendar-month-mobile-events__mobile-event-title,
.tribe-events .tribe-events-calendar-latest-past__event-title,
.tribe-events-single .tribe-events-single-event-title,
.tribe-events .tribe-events-c-top-bar__datepicker-button,
.tribe-events .tribe-events-calendar-list__month-separator-text {
  font-family: var(--knox-font-display); text-transform: uppercase; letter-spacing: .08em; font-weight: 400;
}
.tribe-events .tribe-events-calendar-list__event-title { font-size: 19px; line-height: 1.4; }
.tribe-events .tribe-events-calendar-month__calendar-event-title,
.tribe-events .tribe-events-calendar-month__multiday-event-title { font-size: 11px; letter-spacing: .04em; }
.tribe-events .tribe-events-calendar-month__day--current .tribe-events-calendar-month__day-date-daynum,
.tribe-events .tribe-events-calendar-month__day-cell--selected { color: #000; }
.tribe-events .tribe-events-calendar-month__day-cell--selected,
.tribe-events .tribe-events-calendar-month__day-cell--selected:hover { background-color: #F59535; }
.tribe-events .tribe-events-c-view-selector__list-item--active .tribe-events-c-view-selector__list-item-link::after,
.tribe-events .tribe-events-c-view-selector__list-item-link:hover::after { background-color: #F59535; }
.tribe-events .tribe-events-c-search__input, .tribe-common input, .tribe-common .tribe-common-c-btn-border { border-radius: 0 !important; }
.tribe-events-single .tribe-events-schedule, .tribe-events-single .tribe-events-cost { font-family: var(--knox-font-text); }
.event-tickets .tribe-common-c-btn, .event-tickets .tribe-tickets__rsvp-actions-button-going { background-color: #F59535 !important; color: #000 !important; border-color: #F59535 !important; border-radius: 0 !important; }

/* ===== KNOX: phone headings (Oct 2, 2026: Sora is narrower than Michroma, so only the size steps down) ===== */
@media (max-width: 480px) {
  .single-content h2, h2.wp-block-heading { font-size: clamp(26px, 7.4vw, 32px); }
}

/* ===== KNOX: full-width sections sit flush =====
   Kadence puts --global-md-spacing (32px) under every top-level block, which showed as white strips
   between coloured bands. Each section carries its own padding, so the gap isn't needed. */
.entry-content.single-content > .alignfull { margin-top: 0; margin-bottom: 0; }

/* ===== KNOX: hero video (Cover block with .knox-hero-video) ===== */
/* The Cover's inner container adds a second 24px side inset on top of the block's own padding.
   Drop it so hero text lines up with the other 24px sections (and "Tennessee's" fits on a phone). */
.knox-hero-video > .wp-block-cover__inner-container { padding-left: 0 !important; padding-right: 0 !important; }

/* The video overlay is 50% so the footage reads clearly. Measured on the brightest frames, that keeps the headline and
   white paragraph above WCAG AA; the small orange eyebrow sits on a black tag (9.2:1), and a soft shadow adds margin. */
.knox-hero-video .knox-hero-eyebrow {
  display: block; width: fit-content; background: #000; padding: 6px 10px 5px; line-height: 1.4;
  /* Line the tag up with the 1140px constrained content instead of letting the layout centre it. */
  margin-left: max(0px, (100% - 1140px) / 2) !important; margin-right: auto !important;
}
.knox-hero-video h1, .knox-hero-video p:not(.knox-hero-eyebrow) { text-shadow: 0 1px 3px rgba(0,0,0,.5); }
/* Soft bottom vignette over the 50% overlay (the editor's overlay slider still sets the base). The upper half keeps the
   brighter footage; the paragraph band gets just enough extra depth to hold 4.5:1 on the loop's brightest frame.
   Core's legacy ::before overlay rules only match when the wrapper itself has .has-background-dim, which this block doesn't. */
.knox-hero-video::before {
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; opacity: 1; background-color: transparent;
  /* Bottom vignette, plus a left-hand scrim (Sep 20, 2026) behind the headline column: the orange word in
     "Gaming / Education / Entertainment" only clears 3:1 on the brightest frames with this extra depth. */
  background-image:
    linear-gradient(to bottom, rgba(0,0,0,0) 45%, rgba(0,0,0,.35) 100%),
    linear-gradient(to right, rgba(0,0,0,.82) 0%, rgba(0,0,0,.6) 34%, rgba(0,0,0,.14) 62%, rgba(0,0,0,0) 80%);
}
/* The vignette shades the video only: hero text and buttons sit above it, the pause control above both. */
.knox-hero-video > .wp-block-cover__inner-container { position: relative; z-index: 2; }

/* ===== KNOX: hero video pause control (injected by assets/js/knox-hero-video.js) ===== */
.knox-video-toggle {
  position: absolute; right: 16px; bottom: 16px; z-index: 3;
  display: grid; place-items: center; width: 44px; height: 44px; padding: 0;
  background: rgba(0,0,0,.55); color: #fff; border: 2px solid #fff; box-shadow: none; cursor: pointer;
}
.knox-video-toggle:hover { background: #000; color: #F59535; border-color: #F59535; }
.knox-video-toggle:focus-visible { outline: 2px solid #F59535; outline-offset: 2px; }
.knox-video-toggle svg { width: 16px; height: 16px; fill: currentColor; }

/* ================================================================
   Home redesign, Sep 20, 2026 — three-brand logo bar, dark menu row,
   dark calendar board, category cards. Follows the approved mockup.
   ================================================================ */

/* ---- Logo bar: Knox Esports, iCode, Math Lab, evenly spaced ---- */
.knox-logobar{background:#000;border-bottom:1px solid #2a2a2a}
.knox-logobar__inner{max-width:1440px;margin:0 auto;padding:20px 0;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-evenly;gap:16px 0}
.knox-logobar__logo{display:block;line-height:0;text-decoration:none;box-shadow:none}
.knox-logobar__img{display:block;width:auto;height:auto}
.knox-logobar__img--knox{width:206px}
.knox-logobar__img--icode{width:180px}
.knox-logobar__img--mathlab{width:auto;height:50px}

/* ---- Header row below it: menu only, centred, on black ---- */
.site-header-wrap,#main-header,.site-header-row-container-inner,.site-main-header-wrap{background:#000!important}
.site-main-header-inner-wrap.site-header-row-has-sides{grid-template-columns:1fr!important}
.site-header-main-section-left{display:none!important}
.site-header-main-section-right{justify-content:center!important}
.site-header-wrap .header-navigation .header-menu-container>ul>li>a{color:#fff;font-weight:600;letter-spacing:.04em;padding-top:18px;padding-bottom:18px;border-bottom:2px solid transparent}
.site-header-wrap .header-navigation .header-menu-container>ul>li>a:hover{color:#F59535}
.site-header-wrap .header-navigation .header-menu-container>ul>li.current-menu-item>a{color:#F59535;border-bottom-color:#F59535}
.site-header-wrap .drawer-toggle,.site-header-wrap .menu-toggle-open{color:#fff}
/* Mobile row: the logo bar above already carries the lockup. */
.site-mobile-header-wrap .site-header-mobile-section-left{display:none!important}
.site-mobile-header-wrap .site-header-mobile-section-right{justify-content:flex-end!important}

@media (max-width:1024px){
  .knox-logobar__img--knox{width:168px}
  .knox-logobar__img--icode{width:148px}
  .knox-logobar__img--mathlab{height:42px}
}
@media (max-width:620px){
  .knox-logobar__inner{padding:14px 0;gap:12px 0}
  .knox-logobar__logo--knox{flex:1 0 100%;display:flex;justify-content:center}
  .knox-logobar__img--knox{width:176px}
  .knox-logobar__img--icode{width:124px}
  .knox-logobar__img--mathlab{height:34px}
}

/* ---- Stats strip: dark, Michroma numerals in orange ---- */
.knox-stats{border-top:1px solid #2a2a2a;border-bottom:1px solid #2a2a2a}
.knox-stats .wp-block-column{border-right:1px solid #2a2a2a}
.knox-stats .wp-block-column:last-child{border-right:0}
.knox-stats p{margin:0;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#fff;line-height:1.6}
.knox-stats strong{display:block;font-family:var(--knox-font-display);font-size:26px;letter-spacing:.04em;color:#F59535;line-height:1.1;margin-bottom:4px}
@media (max-width:781px){.knox-stats .wp-block-column{border-right:0;border-bottom:1px solid #2a2a2a;padding:10px 0}.knox-stats .wp-block-column:last-child{border-bottom:0}}

/* ---- Calendar board: month grid and upcoming events side by side ---- */
.knox-board .knox-panel{background:#171717;border:1px solid #2a2a2a;padding:24px}
.knox-board .knox-panel>*:first-child{margin-top:0}
.knox-board .knox-panel h2{font-size:clamp(18px,2vw,24px);margin-bottom:18px;color:#fff}
.knox-board .knox-panel .knox-panel__link{font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#F59535}
@media (max-width:781px){.knox-board .knox-panel{padding:18px}}

/* ---- Category cards: Gaming / Education / Entertainment ---- */
.knox-cats .wp-block-column{border:1px solid #dedede;border-top:4px solid #F59535;padding:24px 22px}
.knox-cats h3{font-size:15px;margin:0 0 10px}
.knox-cats p{font-size:14px;color:#444;margin:0 0 14px}
.knox-cats ul{list-style:none;margin:0!important;padding:0!important;display:flex;flex-wrap:wrap;gap:6px}
.knox-cats ul li{margin:0!important;font-size:12px;font-weight:600;letter-spacing:.04em;color:#222;background:#F0F0F0;padding:4px 9px}  /* no uppercase: iCode keeps its brand casing */

/* Preset colour classes aren't emitted for this palette, so the hero's orange word needs its own rule. */
.has-knox-orange-color{color:#F59535}

/* The What's On grid sizes its columns off the viewport, so inside a narrow board panel it gets one card
   per row; a full-width board section (How to Play tournaments) keeps the normal grid. */
.knox-board .knox-panel .knox-wo ul.knox-wo__grid{grid-template-columns:1fr!important}
.knox-board .knox-panel .knox-wo__status{margin-bottom:10px}
.knox-board .knox-panel .knox-wo__more{margin-top:14px}

/* ---- Pass cards (How to Play), same card language as the category cards ---- */
.knox-passes .wp-block-column{border:1px solid #dedede;border-top:4px solid #F59535;padding:26px 22px;background:#fff;display:flex;flex-direction:column}
.knox-passes h3{font-size:14px;margin:0 0 14px}
.knox-passes .knox-price{font-family:var(--knox-font-display);font-size:clamp(22px,2.4vw,28px);letter-spacing:.02em;line-height:1.15;color:#000;margin:0}
.knox-passes .knox-price-unit{margin:6px 0 20px;font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:#555}
.knox-passes .knox-meta{margin:0 0 14px;font-size:14.5px;line-height:1.5}
.knox-passes .knox-price + .knox-meta{margin-top:18px}  /* a card whose price is still a placeholder has no unit line under it */
.knox-passes .knox-meta:last-child{margin-bottom:0}
.knox-passes .knox-meta strong{display:block;font-size:10.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#555;margin-bottom:2px}
.knox-passes__note{margin-top:26px;font-size:14.5px;color:#444}

/* A dark section that holds event cards but no filter panel (How to Play tournaments). */
.knox-board .knox-wo{margin-top:0}

/* Outline buttons: the block sets border-color and width but no style, so nothing draws. */
.wp-block-button__link.has-border-color{border-style:solid}

/* ---- Placeholder chip: a value we are deliberately not inventing yet ---- */
.knox-tbd{display:inline-block;font-family:var(--knox-font-text);font-style:normal;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#6B4715;background:#F6ECE0;border:1px dashed #AD5A0C;padding:4px 9px}

/* ---- Numbered steps (Birthday Parties booking flow) ---- */
.knox-steps .wp-block-column{background:#fff;border:1px solid #dedede;border-top:4px solid #F59535;padding:22px 20px}
.knox-steps .knox-step-n{margin:0 0 12px;font-family:var(--knox-font-display);font-size:26px;line-height:1;color:#F59535}
.knox-steps .wp-block-column p:not(.knox-step-n){margin:0;font-size:14.5px;line-height:1.55}

/* ---- Two-column Q&A (Birthday Parties, "for parents") ---- */
.knox-qa .wp-block-column p{margin:0 0 22px}
.knox-qa .wp-block-column p:last-child{margin-bottom:0}
.knox-qa .wp-block-column p strong{display:block;margin-bottom:3px;font-size:15.5px}
@media (min-width:782px){.knox-qa .wp-block-columns{gap:44px}}

/* ---- Info cards (Plan Your Visit: hours, directions) ---- */
.knox-infocards .wp-block-column{background:#fff;border:1px solid #dedede;border-top:4px solid #F59535;padding:26px 24px}
.knox-infocards h3{font-size:14px;margin:0 0 18px}
.knox-infocards .knox-meta{margin:0 0 16px;font-size:15px;line-height:1.5}
.knox-infocards .knox-meta:last-child{margin-bottom:0}
.knox-infocards .knox-meta strong{display:block;margin-bottom:2px;font-size:10.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#555}
.knox-infocards .knox-meta a{color:#AD5A0C;font-weight:600}

/* Opening hours read as a schedule, not a data table. */
.knox-hours{margin:0}
.knox-hours table{width:100%;border-collapse:collapse}
.knox-hours td{border:0;border-bottom:1px solid #e6e6e6;padding:11px 0;font-size:15px}
.knox-hours tr:last-child td{border-bottom:0}
.knox-hours td:first-child{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#555;white-space:nowrap}
.knox-hours td:last-child{text-align:right;font-variant-numeric:tabular-nums}
.knox-hours td strong{font-weight:700;color:#000}
@media (max-width:480px){.knox-hours td{font-size:13.5px;padding:9px 0}.knox-hours td:first-child{font-size:10px;letter-spacing:.08em}}

/* ================================================================
   Category colour coding — Gaming = black, Education = Math Lab blue,
   Entertainment = orange (Chris, Sep 30, 2026; was Gaming = white).
   Black reads on the slate theme, so one value serves light and dark.
   ================================================================ */
:root{
  --knox-c-gaming:#000000;
  --knox-c-gaming-on-light:#000000;
  --knox-c-education:#0066FF;
  --knox-c-entertainment:#F59535;
}
.knox-c-gaming{color:var(--knox-c-gaming)}
.knox-c-education{color:var(--knox-c-education)}
.knox-c-entertainment{color:var(--knox-c-entertainment)}

/* Category cards take their own colour on the top rule and heading marker. */
.knox-cats .knox-cat--gaming{border-top-color:var(--knox-c-gaming-on-light)}
.knox-cats .knox-cat--education{border-top-color:var(--knox-c-education)}
.knox-cats .knox-cat--entertainment{border-top-color:var(--knox-c-entertainment)}
.knox-cats .knox-cat--education h3{color:var(--knox-c-education)}   /* 4.83:1 on white, so the brand blue stands */
.knox-cats .knox-cat--entertainment h3{color:#AD5A0C}               /* orange as text on white never passes; use the link orange */

/* ================================================================
   The Events Calendar archive in the site look (Sep 20, 2026):
   branded hero, colour legend, and list rows as cards keyed to
   the three categories.
   ================================================================ */
.knox-eventshero{background:#000;color:#fff;padding:76px 24px 64px;position:relative}
.knox-eventshero__inner{max-width:1300px;margin:0 auto}
.knox-eventshero__title{font-family:var(--knox-font-display);font-weight:400;text-transform:uppercase;letter-spacing:.1em;font-size:clamp(24px,4.6vw,44px);line-height:1.25;margin:0 0 16px;color:#fff}
.knox-eventshero__sub{max-width:62ch;margin:0;font-size:18px;color:#DADADA}

.knox-legend{display:flex;flex-wrap:wrap;gap:10px 22px;list-style:none;margin:26px 0 0;padding:0;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#B9B9B9}
.knox-legend__key{display:flex;align-items:center;gap:9px;margin:0}
.knox-legend__key::before{content:"";width:16px;height:4px;flex:0 0 auto}
.knox-legend__key--gaming::before{background:var(--knox-c-gaming)}
.knox-legend__key--education::before{background:var(--knox-c-education)}
.knox-legend__key--entertainment::before{background:var(--knox-c-entertainment)}

/* List view: each event reads as a card, with its category on the left edge. */
.tribe-events .tribe-events-calendar-list__event-row{margin-bottom:16px!important}
.tribe-events .tribe-events-calendar-list__event{border:1px solid #dedede;border-left:4px solid #9a9a9a;background:#fff;padding:20px 22px;transition:border-color .15s}
.tribe-events .tribe-events-calendar-list__event:hover{border-color:#bdbdbd;border-left-color:#9a9a9a}
.tribe-events .knox-cat-gaming{border-left-color:var(--knox-c-gaming-on-light)}
.tribe-events .knox-cat-education{border-left-color:var(--knox-c-education)}
.tribe-events .knox-cat-entertainment{border-left-color:var(--knox-c-entertainment)}
.tribe-events .knox-cat-gaming:hover{border-left-color:var(--knox-c-gaming-on-light)}
.tribe-events .knox-cat-education:hover{border-left-color:var(--knox-c-education)}
.tribe-events .knox-cat-entertainment:hover{border-left-color:var(--knox-c-entertainment)}
/* The date column sits beside the card rather than inside it. */
.tribe-events .tribe-events-calendar-list__event-date-tag{padding-top:18px}
.tribe-events .tribe-events-calendar-list__event-date-tag-daynum{font-family:var(--knox-font-display);font-size:22px}
.tribe-events .tribe-events-calendar-list__event-date-tag-weekday{letter-spacing:.14em}
/* Month separators pick up the kicker treatment. */
.tribe-events .tribe-events-calendar-list__month-separator-text{font-family:var(--knox-font-display);font-size:13px;letter-spacing:.14em}

/* Month view: same colour key, and titles in Sora so a day cell stays readable. */
.tribe-events .tribe-events-calendar-month__calendar-event{border-left:3px solid #9a9a9a;padding-left:8px}
.tribe-events .tribe-events-calendar-month__calendar-event.knox-cat-gaming{border-left-color:var(--knox-c-gaming-on-light)}
.tribe-events .tribe-events-calendar-month__calendar-event.knox-cat-education{border-left-color:var(--knox-c-education)}
.tribe-events .tribe-events-calendar-month__calendar-event.knox-cat-entertainment{border-left-color:var(--knox-c-entertainment)}
.tribe-events .tribe-events-calendar-month__calendar-event-title,
.tribe-events .tribe-events-calendar-month__calendar-event-title a,
.tribe-events .tribe-events-calendar-month__multiday-event-bar-title{font-family:var(--knox-font-text);font-size:12.5px;line-height:1.35;letter-spacing:0;text-transform:none}
.tribe-events .tribe-events-calendar-month__calendar-event-datetime{font-size:11px;letter-spacing:.04em}
.tribe-events .tribe-events-calendar-month__day-date-daynum{font-family:var(--knox-font-display);font-size:14px}

/* TEC's date picker is a fixed 363px and runs past the right edge on a 375px phone. */
@media (max-width:480px){
  /* TEC's own rule is width:363px / max-width:calc(100% + 66px) and loads after this file, hence !important. */
  .tribe-events .tribe-events-c-top-bar__datepicker .tribe-events-c-top-bar__datepicker-container{width:calc(100vw - 48px)!important;max-width:calc(100vw - 48px)!important}
}

/* ---- Google map embed (Plan Your Visit). Keyless embed, so it works on any host. ---- */
.knox-map{border:1px solid #dedede;border-top:4px solid var(--knox-c-entertainment);background:#fff;padding:0}
.knox-map iframe{display:block;width:100%;height:380px;border:0;filter:saturate(.92)}
.knox-map__note{margin:0;padding:14px 20px;border-top:1px solid #ededed;font-size:14px}
.knox-map__note a{color:#AD5A0C;font-weight:600}
@media (max-width:781px){.knox-map iframe{height:300px}}

/* ================================================================
   SLATE THEME (Sep 30, 2026, Chris's call): the dark sections move
   from black to a medium slate. Measured contrast on --knox-slate
   (#475262): white 7.9:1, #D3DAE3 body copy 5.6:1, orange numerals
   3.5:1 (large text only), so small labels on slate are white and
   orange stays a fill, a marker, or large type.
   ================================================================ */
:root{
  --knox-slate-deep:#343D4A;   /* logo bar, menu row, footer */
  --knox-slate:#475262;        /* dark sections (was #000) */
  --knox-slate-strip:#3B4553;  /* stats strips — orange numerals hold 4.3:1 here */
  --knox-slate-panel:#3E4857;  /* recessed panels on a slate section */
  --knox-slate-raised:#566273; /* cards raised on a slate section */
  --knox-slate-line:#6A778A;   /* hairlines on slate */
  --knox-on-slate-muted:#D3DAE3;
  --knox-light:#EEF1F5;        /* light sections (was #F0F0F0) — a cool grey that sits with the slate */
}
body{background:#fff}
.knox-chevron-divider{background:var(--knox-slate)}
.wp-block-table th{background:var(--knox-slate-deep)}

/* Kickers: black on light sections, white on slate (orange text is 3.5:1 on slate — too low at 11px). The chevron stays orange. */
.knox-kicker{color:#000}
.knox-dark .knox-kicker,.knox-hero-video .knox-kicker,.knox-eventshero .knox-kicker,[style*="color:#ffffff"] .knox-kicker{color:#fff}

/* Logo bar and menu row */
.knox-logobar{background:var(--knox-slate-deep);border-bottom:1px solid rgba(255,255,255,.12)}
.site-header-wrap,#main-header,.site-header-row-container-inner,.site-main-header-wrap{background:var(--knox-slate-deep)!important}
.site-header-wrap .header-navigation .header-menu-container>ul>li>a{padding-left:.9em;padding-right:.9em}
@media (max-width:1240px){.site-header-wrap .header-navigation .header-menu-container>ul>li>a{font-size:14px;padding-left:.62em;padding-right:.62em;letter-spacing:.02em}}
#mobile-drawer .drawer-inner{background:var(--knox-slate-deep)}
#mobile-drawer .drawer-inner a{color:#fff}

/* Stats strip and the calendar board */
.knox-stats{border-top-color:rgba(255,255,255,.12);border-bottom-color:rgba(255,255,255,.12)}
.knox-stats .wp-block-column{border-right-color:rgba(255,255,255,.14)}
@media (max-width:781px){.knox-stats .wp-block-column{border-bottom-color:rgba(255,255,255,.14)}}
.knox-board .knox-panel{background:var(--knox-slate-panel);border-color:rgba(255,255,255,.1)}
.knox-eventshero{background:var(--knox-slate)}
.knox-eventshero__sub{color:var(--knox-on-slate-muted)}
.knox-legend{color:var(--knox-on-slate-muted)}
.knox-legend__key::before{height:10px;width:16px;outline:1px solid rgba(255,255,255,.35)}

/* Light sections drawn with the old #f0f0f0 pick up the cool grey. */
.has-background[style*="background-color:#f0f0f0"]{background-color:var(--knox-light)!important}

/* Hero video: a slate overlay and scrim instead of black. */
.knox-hero-video .knox-hero-eyebrow{background:var(--knox-slate-deep)}
.knox-hero-video::before{
  background-image:
    linear-gradient(to bottom, rgba(52,61,74,0) 45%, rgba(52,61,74,.4) 100%),
    linear-gradient(to right, rgba(52,61,74,.86) 0%, rgba(52,61,74,.64) 34%, rgba(52,61,74,.16) 62%, rgba(52,61,74,0) 80%);
}
.knox-video-toggle{background:rgba(52,61,74,.7)}
.knox-video-toggle:hover{background:var(--knox-slate-deep)}

/* Hero words carry the category colours as tags: Gaming black, Education blue, Entertainment orange.
   Black and blue text would sink into the video, so each word sits on its own colour. */
.knox-word{display:inline-block;padding:.06em .32em .02em;margin:.06em 0;line-height:1.2;text-shadow:none!important}
.knox-word--gaming{background:#000;color:#fff}
.knox-word--education{background:#0066FF;color:#fff}         /* 4.8:1 */
.knox-word--entertainment{background:#F59535;color:#000}     /* 9.2:1 */
.knox-hero-video h1{line-height:1.12!important}

/* Footer */
.site-footer,.site-footer .site-bottom-footer-wrap,.site-footer .site-footer-row-container-inner{background:var(--knox-slate-deep)!important;color:var(--knox-on-slate-muted)}
.site-footer a{color:#fff}
.site-footer a:hover{color:#F59535}
.knox-footer{display:flex;flex-wrap:wrap;gap:6px 22px;align-items:center;justify-content:center;margin:0;font-size:14px}
.knox-footer a{font-weight:600}

/* ---- Shared card for the new pages (Education, Events & Venue) ---- */
.knox-offers .wp-block-column{background:#fff;border:1px solid #dedede;border-top:4px solid #000;padding:28px 26px}
.knox-offers .wp-block-column.knox-offer--orange{border-top-color:#F59535}
.knox-offers .wp-block-column.knox-offer--blue{border-top-color:#0066FF}
.knox-offers h3{font-size:16px;margin:0 0 12px}
.knox-offers p{font-size:16px;line-height:1.6}
.knox-offers ul{margin:0 0 6px;padding-left:0;list-style:none}
.knox-offers ul li{position:relative;padding:7px 0 7px 26px;border-bottom:1px solid #ececec;font-size:15.5px}
.knox-offers ul li:last-child{border-bottom:0}
.knox-offers ul li::before{content:"";position:absolute;left:0;top:14px;width:13px;height:8px;background:#F59535;clip-path:polygon(0 0,58% 0,100% 50%,58% 100%,0 100%,42% 50%)}

/* Education: iCode left, Math Lab right */
.knox-edu .wp-block-column{background:#fff;border:1px solid #dedede;padding:0;display:flex;flex-direction:column}
.knox-edu__head{padding:26px 28px;min-height:118px;display:flex;align-items:center}
.knox-edu__head--icode{background:var(--knox-slate-deep)}
.knox-edu__head--mathlab{background:#fff;border-bottom:1px solid #e3e6ea;border-top:4px solid #0066FF}
.knox-edu__head img{display:block;height:auto;width:auto;max-height:62px;max-width:240px}
.knox-edu__body{padding:26px 28px 30px;display:flex;flex-direction:column;gap:0;flex:1}
.knox-edu__body h3{font-size:14px;margin:26px 0 10px}
.knox-edu__body h3:first-child{margin-top:0}
.knox-edu__body p{font-size:16px;line-height:1.6;margin:0 0 12px}
.knox-edu__body ul{margin:0 0 8px;padding:0;list-style:none}
.knox-edu__body li{padding:9px 0;border-bottom:1px solid #ececec;font-size:15.5px;line-height:1.5}
.knox-edu__body li:last-child{border-bottom:0}
.knox-edu__body li strong{display:block}
.knox-edu__price{display:flex;justify-content:space-between;gap:12px;align-items:baseline}
.knox-edu__price span:last-child{font-family:var(--knox-font-display);font-size:15px;white-space:nowrap}
.knox-edu__plan{background:var(--knox-light);border-left:4px solid #0066FF;padding:18px 20px;margin:0 0 6px}
.knox-edu__plan .knox-edu__price{margin-bottom:6px}
.knox-edu__plan .knox-edu__price span:first-child{font-weight:700}
.knox-edu__cta{margin-top:auto;padding-top:18px;font-size:15px}
.knox-edu__cta a{color:#AD5A0C;font-weight:700}
@media (max-width:781px){.knox-edu__head,.knox-edu__body{padding-left:20px;padding-right:20px}}

/* Contact band (Events & Venue, About) */
.knox-contactband{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:18px 30px}
.knox-contactband p{margin:0}

/* Event flyer lists on a page section ([knox_flyer_list]) get breathing room under their heading. */
.knox-flyers-section .knox-fl{margin-top:8px}

/* ---- Sep 30, 2026 pages: Play, Birthday Parties, Calendar, Cards & Community, Education ---- */
html{scroll-padding-top:72px}
.knox-dark{color:#fff}
/* :where() keeps this rule light, so links inside white cards on a gray section can take the link orange back. */
.knox-dark :where(a:not(.wp-block-button__link):not(.kft):not(.kfp):not(.knox-btn):not(.knox-month__nav)){color:#fff;text-decoration:underline;text-underline-offset:3px}
.knox-board__hint{margin:-6px 0 18px;font-size:14px;color:var(--knox-on-slate-muted)}

/* Four pass cards: 4 across, 2×2 on tablets */
@media (min-width:782px) and (max-width:1120px){
  .knox-passes4{flex-wrap:wrap!important}
  .knox-passes4>.wp-block-column{flex:0 0 calc(50% - 1em)!important}
}
.knox-passes .wp-block-column .knox-desk{margin:auto 0 0;padding-top:16px;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#3E4652}
ul.knox-perks{list-style:none;margin:4px 0 0!important;padding:0!important}
ul.knox-perks li{position:relative;margin:0!important;padding:8px 0 8px 22px;border-top:1px solid #ececec;font-size:14.5px;line-height:1.45}
ul.knox-perks li::before{content:"";position:absolute;left:0;top:13px;width:12px;height:7px;background:#F59535;clip-path:polygon(0 0,58% 0,100% 50%,58% 100%,0 100%,42% 50%)}
.knox-perks__fine{display:block;font-size:12.5px;color:#56606E}
.knox-perks__no{color:#56606E}
ul.knox-perks li:has(.knox-perks__no)::before{background:#9AA4B2;clip-path:polygon(15% 0,50% 35%,85% 0,100% 15%,65% 50%,100% 85%,85% 100%,50% 65%,15% 100%,0 85%,35% 50%,0 15%)}

/* Party price rows */
.knox-pricelist{margin:0 0 18px!important;display:flex;flex-direction:column}
.knox-pricelist__row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:9px 0;border-bottom:1px solid #e3e6ea}
.knox-pricelist__row:first-child{border-top:1px solid #e3e6ea}
.knox-pricelist__row span{font-size:14px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#3E4652}
.knox-pricelist__row strong{font-family:var(--knox-font-display);font-weight:400;font-size:clamp(20px,2.2vw,26px);color:#000}

/* Calendar key under the month grid */
.knox-calkey .knox-kicker::before{width:14px;height:14px;clip-path:none;outline:1px solid rgba(0,0,0,.2)}
.knox-calkey .wp-block-column:nth-child(1) .knox-kicker::before{background:#000}
.knox-calkey .wp-block-column:nth-child(2) .knox-kicker::before{background:#0066FF}
.knox-calkey .wp-block-column:nth-child(3) .knox-kicker::before{background:#F59535}
.knox-calkey p:not(.knox-kicker){font-size:15px;color:#3E4652;margin:0}

/* Gift card band */
@media (min-width:782px){.knox-giftcta{display:flex;justify-content:flex-end}}

/* Education anchors land below the sticky menu */
.knox-edu__anchor{position:relative;top:-80px;height:0}
.knox-edu .wp-block-column{flex-basis:50%}
.knox-edu__body li strong{margin-bottom:2px}
.knox-edu__body li.knox-edu__price{display:flex}
.knox-edu__body li.knox-edu__price small{font-size:13px;color:#56606E}
/* A meta label is already a block, so the <br> after it would add an empty line. */
.knox-meta strong+br{display:none}

/* ================================================================
   SLATE +10% (Oct 1, 2026, Chris's call): every slate tone is 10%
   lighter (HSL lightness), e.g. sections #475262 → #5C6B80.
   White on section slate is 5.4:1. Small orange text no longer
   clears AA on these slates, so the menu's current/hover state is
   white with the orange underline, and body copy on slate is #EEF1F5.
   ================================================================ */
:root{
  --knox-slate-deep:#495668;   /* logo bar, menu row, footer (was #343D4A) */
  --knox-slate:#5C6B80;        /* dark sections (was #475262) */
  --knox-slate-strip:#495668;  /* stats strips: the deep tone, so orange numerals keep 3.3:1 (a +10% strip would be 2.9:1) */
  --knox-slate-panel:#536175;  /* recessed panels (was #3E4857) */
  --knox-slate-raised:#6C7B90;
  --knox-slate-line:#8591A2;
  --knox-on-slate-muted:#EEF1F5;
  --knox-tint-blue:#E3EEFF;    /* home-page section rotation: light blue */
  --knox-tint-orange:#FDEAD7;  /* home-page section rotation: light orange */
}
.site-header-wrap .header-navigation .header-menu-container>ul>li>a:hover{color:#fff;border-bottom-color:#F59535}
.site-header-wrap .header-navigation .header-menu-container>ul>li.current-menu-item>a{color:#fff;border-bottom-color:#F59535}
.site-footer a:hover{color:#fff;text-decoration:underline;text-underline-offset:3px}
/* The hero's small orange eyebrow keeps a darker tag: 4.8:1 there, 3.3:1 on the lighter slate. */
.knox-hero-video .knox-hero-eyebrow{background:#343D4A}
.knox-hero-video::before{
  background-image:
    linear-gradient(to bottom, rgba(73,86,104,0) 45%, rgba(73,86,104,.42) 100%),
    linear-gradient(to right, rgba(73,86,104,.88) 0%, rgba(73,86,104,.66) 34%, rgba(73,86,104,.18) 62%, rgba(73,86,104,0) 80%);
}
.knox-video-toggle{background:rgba(73,86,104,.75)}
/* Cards that sit on tinted sections need their own white ground. */
.knox-cats .wp-block-column{background:#fff}

/* ---- Section colour rotation on every page (Oct 1, 2026): light blue → gray → light orange ---- */
.knox-dark .knox-calkey p:not(.knox-kicker){color:#EEF1F5}
.knox-dark .knox-calkey .knox-kicker::before{outline-color:rgba(255,255,255,.45)}
/* White cards and panels keep their own dark type when their section turns gray. */
.knox-dark .knox-infocards .wp-block-column,.knox-infocards.knox-dark .wp-block-column,.knox-dark .knox-map{color:#151515}
.knox-dark .knox-passes__note,.knox-passes.knox-dark .knox-passes__note{color:#EEF1F5}

/* Links inside white cards stay link-orange (5:1 on white), even when the section around them is gray. */
.knox-dark .knox-infocards .wp-block-column a,.knox-infocards.knox-dark .wp-block-column a,
.knox-dark .knox-map a,
.knox-dark .knox-passes .wp-block-column a,.knox-passes.knox-dark .wp-block-column a,
.knox-dark .knox-steps .wp-block-column a,.knox-steps.knox-dark .wp-block-column a,
.knox-dark .knox-offers .wp-block-column a,
.knox-dark .knox-cats .wp-block-column a,.knox-cats.knox-dark .wp-block-column a,
.knox-dark .knox-edu a{color:#AD5A0C;text-decoration:underline;text-underline-offset:3px}
/* Education: buttons into My Knox (Oct 1, 2026) */
.knox-edu__actions{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0 4px!important}
.knox-edu__actions .knox-btn{min-height:42px;padding:0 16px;font-size:12px;text-decoration:none}
.knox-edu__actions .knox-btn--ghost{color:#151515}

/* =========================================================================================
   LIGHT HEADER + LIGHT HOME PAGE (Oct 1, 2026 — Concept 4, "Play. Learn. Gather.")
   The header is shared by every page: white, one row, Knox | iCode | Math Lab on the left, the
   menu and a "Book a party" pill on the right. The home page sections are scoped to .kl-*.
   ========================================================================================= */
:root{--kl-ink:#1D1D1F;--kl-muted:#6E6E73;--kl-soft:#F5F5F7;--kl-line:#E3E3E8;--kl-link:#AD5A0C;--kl-night:#0B0D12;--kl-nline:#262B36}

/* ---- Header ---- */
.site-header-wrap,#main-header,.site-header-row-container-inner,.site-main-header-wrap,#mobile-header .site-header-row-container-inner{background:#fff!important}
.site-main-header-wrap .site-header-row-container-inner,#mobile-header .site-main-header-wrap .site-header-row-container-inner{border-bottom:1px solid #E8E8ED}
.site-main-header-inner-wrap.site-header-row-has-sides{grid-template-columns:auto minmax(0,1fr)!important;min-height:66px!important}
.site-header-main-section-left{display:flex!important}
.site-header-main-section-right{justify-content:flex-end!important}
.knox-brand{display:flex;align-items:center;gap:15px}
.knox-brand a{display:block;line-height:0;box-shadow:none;text-decoration:none}
.knox-brand .knox-brand__img{display:block;width:auto!important;max-height:none!important}
.knox-brand .knox-brand__img--knox{height:27px}
.knox-brand .knox-brand__img--icode{height:20px}
.knox-brand .knox-brand__img--mathlab{height:33px}
.knox-brand__sep{width:1px;height:24px;background:#D2D2D7}
.site-header-wrap .header-navigation .header-menu-container>ul>li>a{color:#3A3A3C;font-family:var(--knox-font-text);font-weight:500;font-size:14px;letter-spacing:0;text-transform:none;padding:23px .72em;border-bottom:2px solid transparent}
.site-header-wrap .header-navigation .header-menu-container>ul>li>a:hover{color:var(--kl-ink);border-bottom-color:#F59535}
.site-header-wrap .header-navigation .header-menu-container>ul>li.current-menu-item>a{color:var(--kl-ink);border-bottom-color:#F59535}
.site-header-wrap .header-navigation .header-menu-container>ul>li.knox-nav-cta{display:flex;align-items:center}
.site-header-wrap .header-navigation .header-menu-container>ul>li.knox-nav-cta>a{background:#F59535;color:var(--kl-ink);font-weight:600;border-radius:980px;padding:9px 18px;margin-left:10px;border-bottom:0}
.site-header-wrap .header-navigation .header-menu-container>ul>li.knox-nav-cta>a:hover{background:#F7A14A;color:var(--kl-ink)}
@media (max-width:1360px){.site-header-wrap .header-navigation .header-menu-container>ul>li>a{font-size:13px;padding-left:.55em;padding-right:.55em}.knox-brand{gap:11px}.knox-brand .knox-brand__img--knox{height:24px}.knox-brand .knox-brand__img--icode{height:17px}.knox-brand .knox-brand__img--mathlab{height:29px}}
@media (max-width:1180px){.site-header-wrap .header-navigation .header-menu-container>ul>li.knox-nav-cta{display:none}}
.site-mobile-header-wrap .site-header-mobile-section-left{display:flex!important}
#mobile-header .site-main-header-inner-wrap{min-height:60px!important}
#mobile-header .knox-brand{gap:10px}
#mobile-header .knox-brand .knox-brand__img--knox{height:22px}
#mobile-header .knox-brand .knox-brand__img--icode{height:15px}
#mobile-header .knox-brand .knox-brand__img--mathlab{height:25px}
#mobile-header .knox-brand__sep{height:18px}
.site-header-wrap .drawer-toggle,.site-header-wrap .menu-toggle-open,#mobile-header .menu-toggle-open{color:var(--kl-ink)!important}
#mobile-drawer .menu-item.knox-nav-cta>a{color:#F59535!important;font-weight:700}

/* ---- Home: shared ---- */
body.home{background:#fff}
.kl{font-family:var(--knox-font-text);color:var(--kl-ink)}
.entry-content .kl .kl-h1,.entry-content .kl .kl-h2,.kl .kl-h2{font-family:var(--knox-font-text);text-transform:none;font-weight:700;color:var(--kl-ink);text-align:center}
.entry-content .kl .kl-h2,.kl .kl-h2{font-size:clamp(36px,4.6vw,64px);line-height:1.08;letter-spacing:-.03em;margin:0 0 12px}
.kl .kl-sub{text-align:center;font-size:clamp(17px,1.6vw,22px);line-height:1.45;color:var(--kl-muted);margin:0 auto 46px;max-width:860px}

/* ---- 1 · Play. Learn. Gather. ---- */
.kl-hero{padding:88px 24px 0!important;background:#fff}
.entry-content .kl .kl-h1{font-size:clamp(46px,7.4vw,104px);line-height:1.02;letter-spacing:-.035em;margin:0}
.kl .kl-lede{text-align:center;font-size:clamp(19px,2vw,26px);line-height:1.35;color:var(--kl-muted);margin:22px auto 0;max-width:880px}
.kl-bento{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:250px;gap:16px;margin:64px 0 0}
.kl-bento figure{margin:0;border-radius:26px;overflow:hidden;position:relative;background:#E8E8ED}
.kl-bento figure>img{width:100%;height:100%;object-fit:cover;display:block}
.kl-bento figcaption{position:absolute;left:18px;bottom:16px;background:rgba(255,255,255,.92);color:var(--kl-ink);font-size:14px;font-weight:600;line-height:1.2;padding:7px 13px;border-radius:980px;display:flex;align-items:center;gap:9px;margin:0}
.kl-bento figcaption img{height:17px;width:auto;display:block}
.kl-bento figcaption img.ml{height:24px;margin:-4px 0}
.kl .kl-facts{display:flex;justify-content:center;flex-wrap:wrap;gap:10px 48px;padding:30px 0 84px;margin:0;font-size:16px;color:var(--kl-muted)}
.kl-facts strong{color:var(--kl-ink);font-weight:600}
@media (max-width:900px){.kl-hero{padding-top:60px!important}.kl-bento{grid-template-columns:repeat(2,1fr);grid-auto-rows:200px;margin-top:44px}.kl .kl-facts{padding-bottom:60px}}
@media (max-width:560px){.kl-bento{gap:10px;grid-auto-rows:150px}.kl-bento figure{border-radius:18px}.kl-bento figcaption{left:9px;bottom:9px;font-size:12px;padding:5px 9px;gap:6px}.kl-bento figcaption img{height:13px}.kl-bento figcaption img.ml{height:18px}.kl .kl-facts{gap:6px 20px;font-size:14px}}

/* ---- 2 · Day and night lanes ([knox_week_lanes]) ---- */
.kl-week{background:var(--kl-soft);padding:96px 24px 100px!important}
.knox-lanes__grid{display:grid;grid-template-columns:1fr 1fr;border-radius:28px;overflow:hidden}
.knox-lanes__lane{padding:34px 38px 22px}
.knox-lanes__lane--day{background:#fff}
.knox-lanes__lane--night{background:var(--kl-night);color:#fff}
.entry-content .knox-lanes h3.knox-lanes__head{font-family:var(--knox-font-text);font-size:14px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;margin:0 0 18px;display:flex;align-items:center;gap:9px;color:var(--kl-link)}
.entry-content .knox-lanes .knox-lanes__lane--night h3.knox-lanes__head{color:#F59535}
.knox-lanes__ico{width:15px;height:15px;flex:none}
.knox-lanes__list{list-style:none;margin:0!important;padding:0!important}
.knox-lanes__row{display:grid;grid-template-columns:130px minmax(0,1fr) auto;gap:18px;align-items:baseline;padding:15px 0;border-top:1px solid #E5E7EC;margin:0!important}
.knox-lanes__lane--night .knox-lanes__row{border-top-color:var(--kl-nline)}
.knox-lanes__when b{display:block;font-size:14px;font-weight:700;letter-spacing:.05em}
.knox-lanes__when small{display:block;font-size:14px;color:var(--kl-muted);margin-top:2px}
.knox-lanes__lane--night .knox-lanes__when small{color:#98A1B0}
.knox-lanes a.knox-lanes__name{font-size:17px;font-weight:600;line-height:1.35;color:inherit;text-decoration:none}
.knox-lanes a.knox-lanes__name:hover{text-decoration:underline;text-underline-offset:3px}
.knox-lanes__tag{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:4px 9px;border-radius:980px;white-space:nowrap}
.knox-lanes__tag--education{background:#0066FF;color:#fff}
.knox-lanes__lane--day .knox-lanes__tag--gaming{background:var(--kl-ink);color:#fff}
.knox-lanes__lane--night .knox-lanes__tag--gaming{background:#fff;color:var(--kl-ink)}
.knox-lanes__tag--entertainment{background:#F59535;color:var(--kl-ink)}
.knox-lanes__tag--none{background:#D2D2D7;color:var(--kl-ink)}
.knox-lanes__empty{color:var(--kl-muted);margin:0 0 12px}
.knox-lanes__lane--night .knox-lanes__empty{color:#98A1B0}
.knox-lanes .knox-lanes__more{text-align:center;margin:30px 0 0;font-size:19px}
.knox-lanes .knox-lanes__more a{color:var(--kl-link);text-decoration:none}
@media (max-width:900px){.kl-week{padding:64px 16px 70px!important}.knox-lanes__grid{grid-template-columns:1fr;border-radius:20px}.knox-lanes__lane{padding:26px 20px 12px}.knox-lanes__row{grid-template-columns:96px minmax(0,1fr);gap:4px 14px}.knox-lanes__tag{grid-column:2;justify-self:start;margin-top:6px}}

/* ---- 3 · Something's always on (the existing [knox_whats_on] row) ---- */
.kl-wo{background:#fff;padding:96px 24px 100px!important}
@media (max-width:900px){.kl-wo{padding:64px 16px 70px!important}}

/* ---- 4 · Find your thing: a sideways row of tiles ---- */
.kl-find{background:var(--kl-soft);padding:96px 24px 104px!important;overflow:hidden}
.kl-tilerow{position:relative;max-width:1200px;margin:0 auto}
.kl-tiles{display:grid;grid-auto-flow:column;grid-auto-columns:384px;gap:16px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;padding:0 0 18px;margin-right:calc(-1 * max(24px, (100vw - 1200px) / 2));overscroll-behavior-x:contain}
.kl-tiles::-webkit-scrollbar{display:none}
.kl-tiles:focus-visible{outline:2px solid #F59535;outline-offset:4px}
.kl-tile{scroll-snap-align:start;height:560px;border-radius:28px;overflow:hidden;background:#fff;text-align:center;display:flex;flex-direction:column}
.kl-tile .kl-tile__t{padding:44px 32px 22px}
.entry-content .kl-tile h3{font-family:var(--knox-font-text);font-size:34px;line-height:1.15;letter-spacing:-.025em;font-weight:700;text-transform:none;margin:0;color:inherit}
.kl-tile p{font-size:17px;line-height:1.45;color:var(--kl-muted);margin:10px auto 0}
.kl-tile .kl-tile__links{margin-top:16px;display:flex;flex-wrap:wrap;gap:6px 20px;justify-content:center;font-size:16px}
.kl-tile .kl-tile__links a{color:var(--kl-link);text-decoration:none}
.kl-tile .kl-tile__links a:hover{text-decoration:underline}
.kl-tile .kl-tile__pic{flex:1;min-height:0;margin:0 22px 22px;border-radius:18px;overflow:hidden}
.kl-tile .kl-tile__pic img{width:100%;height:100%;object-fit:cover;display:block}
.kl-tile .kl-tile__logo{height:30px;width:auto;margin:0 auto 12px;display:block}
.kl-tile .kl-tile__logo--ml{height:40px;margin-bottom:8px}
.kl-tile--dark{background:#0B0B0C;color:#F5F5F7}
.kl-tile--dark p{color:#A1A1A6}
.kl-tile--dark .kl-tile__links a{color:#F7A14A}
.kl-tile--blue{background:#F2F7FF}
.kl-tile--warm{background:#FFF4E8}
.kl-tile .kl-tile__games{flex:1;min-height:0;margin:0 22px 22px;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:8px}
.kl-tile .kl-tile__games img{width:100%;height:100%;object-fit:cover;border-radius:12px;display:block}
.kl-arrow{position:absolute;top:258px;width:44px;height:44px;border-radius:50%;border:0;background:rgba(29,29,31,.84);color:#fff;font-size:26px;line-height:1;display:grid;place-items:center;cursor:pointer;z-index:2;padding:0}
.kl-arrow:hover{background:var(--kl-ink)}
.kl-arrow:disabled{opacity:.25;cursor:default}
.kl-arrow--prev{left:-22px}
.kl-arrow--next{right:-22px}
.kl-dots{display:flex;gap:8px;justify-content:center;margin-top:18px;min-height:8px}
.kl-dot{width:8px;height:8px;border-radius:50%;border:0;padding:0;background:#C7C7CC;cursor:pointer;transition:width .2s}
.kl-dot.is-on{width:26px;border-radius:980px;background:var(--kl-ink)}
@media (max-width:1290px){.kl-arrow--prev{left:6px}.kl-arrow--next{right:6px}}
@media (max-width:700px){.kl-find{padding:64px 16px 70px!important}.kl-tiles{grid-auto-columns:82vw;margin-right:-16px}.kl-tile{height:510px;border-radius:22px}.kl-arrow{display:none}}

/* ---- 5 · Come see us ---- */
.kl-visit{background:#fff;padding:96px 24px 90px!important}
.kl-cards2{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:48px}
.kl-card{background:var(--kl-soft);border-radius:28px;padding:44px 48px}
.entry-content .kl-card h3{font-family:var(--knox-font-text);font-size:30px;letter-spacing:-.02em;font-weight:700;text-transform:none;margin:0 0 18px;color:var(--kl-ink)}
.kl-card .knox-hours{margin:0}
.kl-card .knox-hours table{width:100%;border-collapse:collapse;font-size:18px;border:0}
.kl-card .knox-hours td{padding:10px 0;border:0;border-bottom:1px solid #E3E3E8;background:none}
.kl-card .knox-hours td+td{text-align:right;color:var(--kl-muted)}
.kl-card .knox-hours tr.is-today td{color:var(--kl-ink)}
.kl-card .knox-hours__today{display:inline-block;margin-left:8px;background:#F59535;color:var(--kl-ink);font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:2px 8px;border-radius:980px;vertical-align:2px}
.kl .kl-addr{font-size:22px;line-height:1.5;margin:0 0 18px}
.kl .kl-addr a{color:var(--kl-link);text-decoration:none}
.kl a.kl-map{display:block;height:186px;border-radius:18px;background:linear-gradient(135deg,#E9EEF5,#F4F6FA);position:relative;overflow:hidden;text-decoration:none;box-shadow:none}
.kl a.kl-map::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 38px,#DDE3EC 38px 40px),repeating-linear-gradient(90deg,transparent 0 58px,#DDE3EC 58px 60px)}
.kl a.kl-map b{position:absolute;left:50%;top:46%;width:26px;height:26px;margin:-13px 0 0 -13px;background:#F59535;border-radius:50% 50% 50% 0;transform:rotate(-45deg);box-shadow:0 6px 14px rgba(0,0,0,.18)}
.kl a.kl-map span{position:absolute;left:14px;bottom:12px;background:#fff;color:var(--kl-link);font-size:15px;font-weight:600;padding:7px 13px;border-radius:980px}
.kl-brands{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:30px 72px;margin-top:70px}
.kl-brands img{height:38px;width:auto;display:block}
.kl-brands img.ic{height:30px}
.kl-brands img.ml{height:46px}
@media (max-width:900px){.kl-visit{padding:64px 16px 70px!important}.kl-cards2{grid-template-columns:1fr}.kl-card{padding:30px 24px;border-radius:22px}.kl-brands{gap:24px 40px;margin-top:50px}.kl-brands img{height:30px}.kl-brands img.ic{height:24px}.kl-brands img.ml{height:38px}}
/* Light header, fitted (Oct 1, 2026): ten menu items + three logos on one row from 1180px up. */
.knox-brand{gap:12px}
.knox-brand .knox-brand__img--knox{height:24px}
.knox-brand .knox-brand__img--icode{height:17px}
.knox-brand .knox-brand__img--mathlab{height:29px}
.knox-brand__sep{height:22px}
.site-header-wrap .header-navigation .header-menu-container>ul>li>a{font-size:13px;padding-left:7px;padding-right:7px}
.site-header-wrap .header-navigation .header-menu-container>ul>li.knox-nav-cta>a{margin-left:6px;padding:8px 15px}
@media (max-width:1360px){.knox-brand{gap:10px}.knox-brand .knox-brand__img--knox{height:22px}.knox-brand .knox-brand__img--icode{height:15px}.knox-brand .knox-brand__img--mathlab{height:27px}.site-header-wrap .header-navigation .header-menu-container>ul>li>a{font-size:13px;padding-left:6px;padding-right:6px}}
/* Hours in the "Come see us" card: plain rows, not the old small capitals. */
.entry-content .kl-card .knox-hours td{font-size:17px;text-transform:none;letter-spacing:0;font-family:var(--knox-font-text)}
.entry-content .kl-card .knox-hours td:first-child{font-weight:500;color:var(--kl-ink)}
.entry-content .kl-card .knox-hours tr.is-today td{background:none}
/* 1181–1280px: a little tighter still; below 1181 Kadence switches to the mobile header (theme mod header_mobile_switch = 1181px). */
@media (max-width:1280px){.knox-brand{gap:9px}.knox-brand .knox-brand__img--knox{height:21px}.knox-brand .knox-brand__img--icode{height:14px}.knox-brand .knox-brand__img--mathlab{height:25px}.site-header-wrap .header-navigation .header-menu-container>ul>li>a{font-size:12.5px;padding-left:5px;padding-right:5px}.site-header-wrap .header-navigation .header-menu-container>ul>li.knox-nav-cta>a{padding:7px 12px}}
@media (max-width:560px){.kl .kl-wide{display:none}}
/* Menu chips (Chris, Oct 2, 2026): a slightly smaller font, more room between items, and a soft chip
   behind each one, coloured by audience: Gaming (Play, Cards & Community) slate, Entertainment
   (Birthday Parties, Events & Venue) peach, Education blue, the rest light grey. The colour comes
   from the menu item's CSS class (knox-nav--gaming / --entertainment / --education, set by
   seed-light-home.php). The current page gets a dark outline; "Book a party" stays the orange pill. */
.site-header-wrap .header-navigation .header-menu-container>ul{column-gap:5px;align-items:center}
.site-header-wrap .header-navigation .header-menu-container>ul>li:not(.knox-nav-cta)>a{--chip:#F2F2F5;--chip-on:#E5E5EA;font-size:12px;font-weight:500;line-height:1.3;color:var(--kl-ink);background:var(--chip);border-radius:8px;padding:6px 8px;border-bottom:0}
.site-header-wrap .header-navigation .header-menu-container>ul>li.knox-nav--gaming>a{--chip:#E7EBF2;--chip-on:#D8DEE9}
.site-header-wrap .header-navigation .header-menu-container>ul>li.knox-nav--entertainment>a{--chip:#FFEBD6;--chip-on:#FFDCB8}
.site-header-wrap .header-navigation .header-menu-container>ul>li.knox-nav--education>a{--chip:#E3EEFF;--chip-on:#CFE1FF}
.site-header-wrap .header-navigation .header-menu-container>ul>li:not(.knox-nav-cta)>a:hover{background:var(--chip-on);color:var(--kl-ink)}
.site-header-wrap .header-navigation .header-menu-container>ul>li.current-menu-item:not(.knox-nav-cta)>a{box-shadow:inset 0 0 0 1.5px var(--kl-ink)}
.site-header-wrap .header-navigation .header-menu-container>ul>li.knox-nav-cta>a{font-size:12px;margin-left:5px;padding:7px 14px}
/* 1181–1240px: a touch smaller so the row still fits beside the three logos. */
@media (max-width:1240px){.site-header-wrap .header-navigation .header-menu-container>ul{column-gap:3px}.site-header-wrap .header-navigation .header-menu-container>ul>li:not(.knox-nav-cta)>a{font-size:11.5px;padding:6px 7px}.site-header-wrap .header-navigation .header-menu-container>ul>li.knox-nav-cta>a{margin-left:3px;padding:7px 12px}}

/* =========================================================================================
   LIGHT SITE (Oct 2, 2026 — Chris: "Update all other pages to this new aesthetic")
   Every page now matches the light home page: white and soft-grey bands, Sora headlines,
   rounded panels, pill buttons. The inner pages are built by pages/light-2026-10-02/ and use
   the kl-* classes below; the plugins' own parts (booking, shop, sign-in, month calendar,
   flyer lists) get their light look at the end of their own stylesheets.
   ========================================================================================= */

/* ---- Site-wide: kickers, buttons, tables, footer, phone menu ---- */
.knox-kicker,.knox-dark .knox-kicker{display:block;margin:0 0 10px;font-size:15px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--kl-link)}
.knox-kicker::before{display:none}
.wp-block-button__link{border-radius:980px;font-family:var(--knox-font-text);font-weight:600;letter-spacing:0;text-transform:none}
.wp-block-table th{background:var(--kl-soft);color:var(--kl-ink);text-transform:none;font-size:14px;letter-spacing:0}
.wp-block-table td,.wp-block-table th{border-color:var(--kl-line)}
.site-footer,.site-footer .site-bottom-footer-wrap,.site-footer .site-footer-row-container-inner{background:var(--kl-soft)!important;color:var(--kl-muted)}
.site-footer{border-top:1px solid var(--kl-line)}
.site-footer a{color:var(--kl-ink)}
.site-footer a:hover{color:var(--kl-link);text-decoration:underline;text-underline-offset:3px}
.knox-footer{font-size:13.5px}
#mobile-drawer .drawer-inner{background:#fff}
#mobile-drawer .drawer-inner a{color:var(--kl-ink)}
#mobile-drawer .drawer-header .drawer-toggle,#mobile-drawer .drawer-header .menu-toggle-close{color:var(--kl-ink)}
#mobile-drawer .mobile-navigation ul li>a,#mobile-drawer .mobile-navigation ul li.menu-item-has-children>.drawer-nav-drop-wrap{border-bottom-color:var(--kl-line)}
#mobile-drawer .menu-item.knox-nav-cta>a{color:var(--kl-link)!important}
#mobile-drawer .mobile-navigation ul li>a{font-family:var(--knox-font-text);font-size:16px;font-weight:500;letter-spacing:0}
#mobile-drawer .mobile-navigation ul li.current-menu-item>a{font-weight:700}
body{color:var(--kl-ink)}
/* Kadence's own palette was never set, so its default blue showed on focused buttons (and would on any
   stray link). Knox colours instead: accent = link orange, buttons = orange pill, hover/focus = ink. */
:root{--global-palette1:#AD5A0C;--global-palette2:#8F4A08;
  --global-palette-btn-bg:#F59535;--global-palette-btn:#1D1D1F;--global-palette-btn-bg-hover:#1D1D1F;--global-palette-btn-hover:#fff;
  --global-palette-btn-sec-bg:#E8E8ED;--global-palette-btn-sec:#1D1D1F;--global-palette-btn-sec-bg-hover:#1D1D1F;--global-palette-btn-sec-hover:#fff}
/* Close buttons take focus when their window opens; they stay grey until a keyboard user tabs to them. */
.kfm__close:focus:not(:focus-visible),.kcart__close:focus:not(:focus-visible),.kpb__nav:focus:not(:focus-visible){background:#E8E8ED;color:#1D1D1F;box-shadow:none}

/* ---- The Events Calendar (event pages, the events list) ---- */
body .tribe-common,body .tribe-events,body .tribe-events-view,.tribe-common.tribe-common,.tribe-events.tribe-events,:root{
  --tec-border-radius-default:12px;--tec-border-radius-day-marker:980px;--tec-border-radius-events-bar:14px;--tec-border-radius-tooltip:12px;
  --tec-color-text-primary:#1D1D1F;--tec-color-text-secondary:#6E6E73;--tec-color-border-default:#E3E3E8;--tec-color-background-secondary:#F5F5F7;
  --tec-color-link-accent-hover:#AD5A0C}
.tribe-events .tribe-events-calendar-list__event-title,.tribe-events .tribe-events-calendar-day__event-title,.tribe-events .tribe-events-calendar-month__calendar-event-title,
.tribe-events .tribe-events-calendar-month__multiday-event-title,.tribe-events .tribe-events-calendar-month-mobile-events__mobile-event-title,.tribe-events .tribe-events-calendar-latest-past__event-title,
.tribe-events-single .tribe-events-single-event-title,.tribe-events .tribe-events-c-top-bar__datepicker-button,.tribe-events .tribe-events-calendar-list__month-separator-text{
  font-family:var(--knox-font-text);text-transform:none;letter-spacing:-.01em;font-weight:700}
.tribe-events-single .tribe-events-single-event-title{font-size:clamp(34px,4.6vw,56px);letter-spacing:-.03em;line-height:1.08}
.tribe-events .tribe-events-calendar-list__event{border:1px solid var(--kl-line);border-left-width:4px;border-radius:18px;padding:22px 24px}
.tribe-events .tribe-events-calendar-list__event.knox-cat-gaming{border-left-color:#000}
.tribe-events .tribe-events-calendar-list__event.knox-cat-education{border-left-color:#0066FF}
.tribe-events .tribe-events-calendar-list__event.knox-cat-entertainment{border-left-color:#F59535}
.tribe-events .tribe-events-calendar-list__event-date-tag-daynum,.tribe-events .tribe-events-calendar-month__day-date-daynum{font-family:var(--knox-font-text);font-weight:700;letter-spacing:-.02em}
.tribe-events .tribe-events-calendar-list__month-separator-text{font-size:15px;letter-spacing:0;color:var(--kl-muted)}
.tribe-events .tribe-events-c-search__input,.tribe-common input,.tribe-common .tribe-common-c-btn-border{border-radius:12px!important}
.event-tickets .tribe-common-c-btn,.event-tickets .tribe-tickets__rsvp-actions-button-going{border-radius:980px!important}
.knox-eventshero{background:#fff;color:var(--kl-ink);padding:96px 24px 36px;text-align:center}
.knox-eventshero__title{font-family:var(--knox-font-text);font-weight:700;text-transform:none;letter-spacing:-.035em;font-size:clamp(44px,6.2vw,88px);line-height:1.04;color:var(--kl-ink)}
.knox-eventshero__sub{margin:0 auto;color:var(--kl-muted);font-size:clamp(17px,1.6vw,22px)}
.knox-legend{justify-content:center;color:var(--kl-muted);letter-spacing:0;text-transform:none;font-size:14px}
.knox-legend__key::before{width:12px;height:12px;border-radius:4px;outline:0}
.knox-eventshero .knox-kicker{display:none}  /* heroes open on the headline, like the home page */
/* TEC's "Subscribe to calendar" / "Add to calendar" text was the bright orange (2.3:1 on white); link orange passes. */
.tribe-events .tribe-events-c-subscribe-dropdown__button,.tribe-events .tribe-events-c-subscribe-dropdown__button-text,
.tribe-events .tribe-events-c-subscribe-dropdown__button .tribe-common-c-svgicon{color:var(--kl-link)!important}
.tribe-events .tribe-events-c-subscribe-dropdown__button{border-color:var(--kl-line)!important;border-radius:980px!important}

/* ---- Inner pages: hero and bands ---- */
.kl-phero{padding:104px 24px 76px!important;background:#fff}
.entry-content .kl .kl-h1.kl-h1--page{font-size:clamp(44px,6.2vw,88px);line-height:1.04;letter-spacing:-.035em}
.kl-phero .kl-lede{max-width:820px}
.kl .kl-lede strong,.kl .kl-sub strong{color:var(--kl-ink);font-weight:600}
.kl .kl-sub a,.kl .kl-lede a{color:var(--kl-link);text-decoration:none}
.kl-phero .kl-facts{padding:30px 0 0}
.kl-band{padding:96px 24px!important;background:#fff}
.kl-band--soft{background:var(--kl-soft)}
.kl-band--tight{padding-top:56px!important;padding-bottom:76px!important}
.kl-band--calendar{padding-top:64px!important}
.kl-band--account{padding-top:64px!important;padding-bottom:110px!important}
.kl-band--cta .kl-sub{margin-bottom:30px}
.kl-band--statement .kl-sub{margin-bottom:0;max-width:820px}

/* ---- Panels in a grid ---- */
.kl-grid{display:grid;grid-template-columns:repeat(var(--kl-cols,3),minmax(0,1fr));gap:16px}
.kl-grid--2{--kl-cols:2}.kl-grid--3{--kl-cols:3}.kl-grid--4{--kl-cols:4}
.kl-panel{display:flex;flex-direction:column;min-width:0;background:#fff;border-radius:28px;padding:36px 32px}
.kl-band:not(.kl-band--soft) .kl-panel{background:var(--kl-soft)}
.entry-content .kl-panel h3{font-family:var(--knox-font-text);font-size:24px;line-height:1.2;letter-spacing:-.02em;font-weight:700;text-transform:none;color:var(--kl-ink);margin:0 0 12px}
.kl-panel p{margin:0 0 14px;font-size:16.5px;line-height:1.6;color:var(--kl-ink)}
.kl-panel p:last-child{margin-bottom:0}
.kl-panel a:not(.kl-btn):not(.knox-btn){color:var(--kl-link);font-weight:600;text-decoration:none}
.kl-panel a:not(.kl-btn):not(.knox-btn):hover{text-decoration:underline;text-underline-offset:3px}
.kl .kl-note{max-width:860px;margin:30px auto 0;text-align:center;font-size:15px;line-height:1.55;color:var(--kl-muted)}
.kl .kl-note a{color:var(--kl-link);font-weight:600;text-decoration:none}

/* Prices, labels and lists inside panels */
.kl .kl-price{margin:6px 0 24px;font-size:46px;font-weight:700;letter-spacing:-.035em;line-height:1;color:var(--kl-ink)}
.kl .kl-price span{display:block;margin-top:8px;font-size:15px;font-weight:500;letter-spacing:0;color:var(--kl-muted)}
.kl dl.kl-meta{display:grid;gap:14px;margin:0 0 20px}
.kl-meta div{margin:0}
.kl-meta dt{margin:0;font-size:13.5px;font-weight:600;color:var(--kl-muted)}
.kl-meta dd{margin:2px 0 0;font-size:16.5px;line-height:1.45;color:var(--kl-ink)}
.kl-meta a{color:var(--kl-link);font-weight:600;text-decoration:none}
.kl ul.kl-checks{list-style:none;margin:0 0 22px!important;padding:0!important}
.kl-checks li{position:relative;margin:0!important;padding:10px 0 10px 28px;border-top:1px solid var(--kl-line);font-size:15.5px;line-height:1.45;color:var(--kl-ink)}
.kl-checks li:first-child{border-top:0}
.kl-checks li::before{content:"";position:absolute;left:3px;top:15px;width:11px;height:6px;border-left:2px solid var(--kl-link);border-bottom:2px solid var(--kl-link);transform:rotate(-45deg)}
.kl-checks li.is-no{color:var(--kl-muted)}
.kl-checks li.is-no::before{content:"×";left:2px;top:6px;width:auto;height:auto;border:0;transform:none;font-size:20px;line-height:1;color:var(--kl-muted)}
.kl-checks small{display:block;margin-top:2px;font-size:13px;color:var(--kl-muted)}
.kl ul.kl-rows{list-style:none;margin:4px 0 22px!important;padding:0!important}
.kl-rows li{display:flex;justify-content:space-between;align-items:baseline;gap:14px;margin:0!important;padding:13px 0;border-bottom:1px solid var(--kl-line);font-size:17px;color:var(--kl-ink)}
.kl-rows li:first-child{border-top:1px solid var(--kl-line)}
.kl-rows strong{font-size:26px;font-weight:700;letter-spacing:-.02em;white-space:nowrap}
.kl-rows small{font-size:13.5px;color:var(--kl-muted)}

/* Play: pass and membership cards */
.kl-pass .kl-pass__desk{margin:auto 0 0;padding-top:18px;font-size:15px;font-weight:600;color:var(--kl-muted)}
.kl-pass .knox-join{padding-top:6px}
/* Oct 20, 2026 (Chris): billing and cancellation terms under each membership, in small print */
.kl-pass .kl-pass__fine{margin:10px 0 0;font-size:12.5px;line-height:1.45;color:var(--kl-muted)}
.kl-pass .kl-pass__fine + .kl-pass__fine{margin-top:6px}
.kl-promo{flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px 48px;padding:52px 56px}
.entry-content .kl .kl-promo__title{margin:0 0 12px;font-family:var(--knox-font-text);font-size:clamp(30px,3.4vw,46px);font-weight:700;letter-spacing:-.03em;line-height:1.08;text-transform:none;color:var(--kl-ink)}
.kl-promo p{max-width:640px;font-size:18px;color:var(--kl-muted)}
.kl-promo__cta{flex:0 0 auto}
.kl-size .kl-meta{grid-template-columns:1fr 1fr}

/* Numbered steps and questions */
.kl ol.kl-steps{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:0 auto!important;padding:0!important}
.kl-steps li{margin:0!important;padding:30px 26px;border-radius:24px;background:#fff}
.kl-band:not(.kl-band--soft) .kl-steps li{background:var(--kl-soft)}
.kl-steps b{display:grid;place-items:center;width:40px;height:40px;margin:0 0 18px;border-radius:50%;background:#F59535;color:var(--kl-ink);font-size:17px;font-weight:700}
.kl-steps p{margin:0;font-size:16px;line-height:1.55;color:var(--kl-muted)}
.kl-steps p strong{color:var(--kl-ink);font-weight:600}
.kl-qa{display:grid;grid-template-columns:1fr 1fr;gap:0 56px;max-width:1080px;margin:0 auto}
.kl-qa dl{margin:0}
.kl-qa dl>div{padding:22px 0;border-top:1px solid var(--kl-line)}
.kl-qa dt{margin:0 0 6px;font-size:19px;font-weight:600;color:var(--kl-ink)}
.kl-qa dd{margin:0;font-size:16.5px;line-height:1.6;color:var(--kl-muted)}

/* Buttons */
.kl .kl-actions{display:flex;flex-wrap:wrap;gap:12px;margin:22px 0 0}
.kl .kl-actions--center{justify-content:center;margin-top:0}
.kl-band>.kl-actions{margin-left:auto;margin-right:auto}
/* A headline with no sub line under it keeps the same gap before the content. */
.kl-band .kl-h2:not(:has(+ .kl-sub)){margin-bottom:48px}
.kl a.kl-btn{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 28px;border-radius:980px;font-size:17px;font-weight:600;line-height:1.2;text-align:center;text-decoration:none;box-shadow:none;transition:background-color .15s,color .15s}
.kl a.kl-btn--primary{background:#F59535;color:var(--kl-ink)}
.kl a.kl-btn--primary:hover{background:#F7A14A;color:var(--kl-ink)}
.kl a.kl-btn--ghost{background:transparent;color:var(--kl-ink);box-shadow:inset 0 0 0 1.5px var(--kl-ink)}
.kl a.kl-btn--ghost:hover{background:var(--kl-ink);color:#fff}
.kl-panel a.kl-btn{min-height:44px;padding:0 20px;font-size:15px}

/* Calendar key */
.kl-key{padding:28px 30px}
.entry-content .kl-key h3{display:flex;align-items:center;gap:10px;font-size:20px;margin-bottom:8px}
.kl-swatch{display:inline-block;flex:0 0 auto;width:14px;height:14px;border-radius:4px}
.kl-swatch--gaming{background:#000}.kl-swatch--education{background:#0066FF}.kl-swatch--entertainment{background:#F59535}
.kl-key p{font-size:15.5px;color:var(--kl-muted)}

/* Education: iCode and Math Lab */
.kl-edu{padding:44px 44px 40px;scroll-margin-top:90px}
.kl-edu .kl-edu__logo{display:block;align-self:flex-start;width:auto;max-width:100%;height:40px;margin:0 0 30px}  /* a flex item would otherwise stretch to the card's width */
.kl-edu .kl-edu__logo--ml{height:56px;margin-top:-8px;margin-bottom:22px}
.entry-content .kl-edu h3{font-size:26px;margin:34px 0 12px}
.entry-content .kl-edu .kl-edu__logo+h3{margin-top:0}
.entry-content .kl-edu h4{margin:26px 0 6px;font-family:var(--knox-font-text);font-size:17px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--kl-ink)}
.kl ul.kl-list{list-style:none;margin:0 0 18px!important;padding:0!important}
.kl-list li{margin:0!important;padding:13px 0;border-bottom:1px solid var(--kl-line);font-size:16px;line-height:1.5;color:var(--kl-muted)}
.kl-list li:last-child{border-bottom:0}
.kl-list li strong{display:block;margin-bottom:2px;font-weight:600;color:var(--kl-ink)}
.kl-plan{margin:0 0 8px;padding:24px 26px;border-radius:20px;background:var(--kl-soft)}
.kl .kl-plan__head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin:0 0 4px;font-size:17px;font-weight:600}
.kl-plan__head strong{font-size:24px;letter-spacing:-.02em;white-space:nowrap}
.kl-plan .kl-list{margin-bottom:6px!important}
.kl-plan .kl-actions{margin-top:14px}
.kl-edu .kl-rows strong{font-size:22px}
.kl .kl-edu__cta{margin-top:auto;padding-top:22px;font-size:15.5px;color:var(--kl-muted)}

/* About: who we are, contact, map, what we run */
.kl-split{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:56px;align-items:center}
.entry-content .kl .kl-h2.kl-h2--left{text-align:left;font-size:clamp(34px,3.8vw,52px);margin:0 0 20px}
.kl-split p{margin:0 0 16px;font-size:18px;line-height:1.6;color:var(--kl-muted)}
.kl-split__pic{margin:0;aspect-ratio:4/3;border-radius:28px;overflow:hidden}
.kl-split__pic img{display:block;width:100%;height:100%;object-fit:cover}
.kl-card .kl-meta{gap:18px;margin:0}
.kl-card .kl-meta dd{font-size:18px}
.kl-mapframe{margin-top:16px;border-radius:28px;overflow:hidden;background:var(--kl-soft)}
.kl-mapframe iframe{display:block;width:100%;height:380px;border:0}
.kl .kl-mapframe p{margin:0;padding:16px 26px;font-size:15px;color:var(--kl-muted)}
.kl-mapframe a{color:var(--kl-link);font-weight:600;text-decoration:none}
.kl .kl-cat{display:inline-flex;align-self:flex-start;margin:0 0 16px;padding:6px 14px;border-radius:980px;font-size:14px;font-weight:600;line-height:1.2}
.kl .kl-cat--gaming{background:#1D1D1F;color:#fff}
.kl .kl-cat--education{background:#0066FF;color:#fff}
.kl .kl-cat--entertainment{background:#F59535;color:var(--kl-ink)}
.kl ul.kl-tags{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:auto 0 0!important;padding:16px 0 0!important}
.kl-tags li{margin:0!important;padding:5px 12px;border-radius:980px;background:#fff;font-size:13.5px;font-weight:500;color:var(--kl-ink)}

@media (max-width:1100px){.kl-grid--4{--kl-cols:2}.kl ol.kl-steps{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:900px){
  .kl-phero{padding:68px 16px 56px!important}
  .kl-band{padding:64px 16px!important}
  .kl-band--tight{padding-top:40px!important;padding-bottom:56px!important}
  .kl-grid--3,.kl-grid--2{--kl-cols:1}
  .kl-qa{grid-template-columns:1fr}
  .kl-qa dl+dl>div:first-child{border-top:1px solid var(--kl-line)}
  .kl-split{grid-template-columns:1fr;gap:32px}
  .kl-promo{padding:36px 28px}
  .kl-edu{padding:32px 24px 30px}
  .knox-eventshero{padding:64px 16px 28px}
}
@media (max-width:600px){
  .kl-grid--4{--kl-cols:1}
  .kl ol.kl-steps{grid-template-columns:1fr}
  .kl-panel{padding:28px 22px;border-radius:22px}
  .kl .kl-price{font-size:40px}
  .kl-mapframe iframe{height:300px}
  .kl a.kl-btn{width:100%}
  .kl .kl-actions--center a.kl-btn{width:auto}
  .kl .kl-plan__head{flex-direction:column;align-items:flex-start;gap:2px}  /* the price sits under the label, so "Membership" never breaks */
}

/* =========================================================================================
   TYPE (Oct 6, 2026 — Chris: "Change the fonts on the site to a combination of Gotham and
   Benus Nueve", i.e. Bebas Neue). Headlines, prices and big numbers: Bebas Neue — tall,
   condensed capitals with one weight, so it stays at 400 and faux bold is switched off.
   Everything else: Gotham. Gotham needs a web licence (Hoefler&Co); until Knox has one,
   Montserrat, its closest free match, stands in. To switch: add Gotham's @font-face in
   theme.json and put 'Gotham' first in --knox-font-text. Both stand-in files are SIL OFL.
   ========================================================================================= */
:root{
  --knox-font-text:'Montserrat',system-ui,sans-serif;
  --knox-font-display:'Bebas Neue','Arial Narrow',Impact,sans-serif;
  --global-body-font-family:var(--knox-font-text);--global-heading-font-family:var(--knox-font-display);
  font-synthesis-weight:none}
body{font-family:var(--knox-font-text)}
h1,h2,h1.wp-block-heading,h2.wp-block-heading{font-family:var(--knox-font-display);font-weight:400;text-transform:uppercase;letter-spacing:.01em;line-height:.95}

/* Headlines */
.entry-content .kl .kl-h1,.entry-content .kl .kl-h2,.kl .kl-h2,.entry-content .kl .kl-promo__title,.knox-eventshero__title,
.tribe-events-single .tribe-events-single-event-title{font-family:var(--knox-font-display);font-weight:400;text-transform:uppercase;letter-spacing:.012em}
.entry-content .kl .kl-h1{font-size:clamp(64px,10vw,148px);line-height:.9}
.entry-content .kl .kl-h1.kl-h1--page,.knox-eventshero__title{font-size:clamp(58px,8.4vw,124px);line-height:.9}
.entry-content .kl .kl-h2,.kl .kl-h2{font-size:clamp(46px,5.8vw,86px);line-height:.95}
.entry-content .kl .kl-h2.kl-h2--left{font-size:clamp(44px,5vw,70px)}
.entry-content .kl .kl-promo__title{font-size:clamp(40px,4.4vw,62px);line-height:.95}
.tribe-events-single .tribe-events-single-event-title{font-size:clamp(46px,6vw,80px);line-height:.95}

/* Prices and big numbers */
.kl .kl-price{font-family:var(--knox-font-display);font-size:58px;font-weight:400;letter-spacing:.01em;line-height:.9}
.kl-rows strong,.kl-plan__head strong{font-family:var(--knox-font-display);font-weight:400;letter-spacing:.02em}
.kl-rows strong{font-size:32px}
.kl-plan__head strong{font-size:30px}
.kl-edu .kl-rows strong{font-size:28px}
@media (max-width:600px){.kl .kl-price{font-size:50px}}


/* Home photo tiles are links (Oct 6, 2026): the whole tile opens its section; the photo eases in on hover. */
.kl-bento a.kl-bento__tile{display:block;height:100%;border-radius:26px;text-decoration:none;color:inherit;box-shadow:none}
.kl-bento a.kl-bento__tile figure{height:100%}
.kl-bento a.kl-bento__tile figure>img{transition:transform .35s ease}
.kl-bento a.kl-bento__tile:hover figure>img{transform:scale(1.04)}
.kl-bento a.kl-bento__tile:focus-visible{outline:3px solid #1D1D1F;outline-offset:3px}
@media (max-width:560px){.kl-bento a.kl-bento__tile{border-radius:18px}}
@media (prefers-reduced-motion:reduce){.kl-bento a.kl-bento__tile figure>img{transition:none}}

/* "Buy a gift card" (Oct 6, 2026): a second header pill, outlined, so "Book a party" stays the main one. */
.site-header-wrap .header-navigation .header-menu-container>ul>li.knox-nav-gift>a{background:#fff;color:var(--kl-ink);box-shadow:inset 0 0 0 1.5px var(--kl-ink)}
.site-header-wrap .header-navigation .header-menu-container>ul>li.knox-nav-gift>a:hover{background:var(--kl-ink);color:#fff}
#mobile-drawer .menu-item.knox-nav-gift>a{color:var(--kl-ink)!important;font-weight:700}

/* Header with two pills (Oct 6, 2026): "Buy a gift card" + "Book a party" make eleven items, so the desktop
   header runs a little wider than the page (1360px), the chips step down to 11.5px and the logos to their
   compact size. That fits one row from 1325px up; below it Kadence shows the ☰ header
   (theme mod header_mobile_switch = 1325px, was 1181px). */
#main-header .site-header-row-container-inner>.site-container{max-width:1360px}
.site-header-wrap .header-navigation .header-menu-container>ul{column-gap:4px}
.site-header-wrap .header-navigation .header-menu-container>ul>li:not(.knox-nav-cta)>a{font-size:11.5px;padding:6px 7px}
.site-header-wrap .header-navigation .header-menu-container>ul>li.knox-nav-cta>a{font-size:12px;padding:7px 12px;margin-left:3px}
.knox-brand{gap:10px}
.knox-brand .knox-brand__img--knox{height:22px}
.knox-brand .knox-brand__img--icode{height:15px}
.knox-brand .knox-brand__img--mathlab{height:27px}
.knox-brand__sep{height:20px}

/* About (Oct 6, 2026): hours and contact now sit on the soft-grey band, so their cards and the map turn white. */
.kl-band--soft .kl-card,.kl-band--soft .kl-mapframe{background:#fff}
/* Footer (Oct 6, 2026): Montserrat runs wider than Sora, so a hair smaller with tighter gaps keeps it on one line from 1290px up. */
.knox-footer{font-size:13px;gap:6px 18px}
.knox-footer .knox-hours-line{font-size:inherit}

/* =========================================================================================
   TRIANGLE HEADER (Oct 7, 2026, Chris): the three logos move above the menu in a triangle,
   Knox Esports on top and half again as large as iCode and Math Lab, and the menu buttons grow
   to fill the whole row beneath them. The ☰ header (phones, tablets) keeps the same triangle,
   smaller. With the menu on a row of its own it fits from 1180px up again, so Kadence's desktop
   header starts there (theme mod header_mobile_switch = 1180px, was 1325px).
   ========================================================================================= */

/* ---- The triangle: Knox on top, centred over the line between iCode and Math Lab ---- */
.knox-brand{display:grid;grid-template-columns:1fr auto 1fr;grid-template-areas:"knox knox knox" "icode sep ml";align-items:center;column-gap:18px;row-gap:10px}
.knox-brand .knox-brand__home{grid-area:knox;justify-self:center}
.knox-brand .knox-brand__link--icode{grid-area:icode;justify-self:end}
.knox-brand .knox-brand__link--mathlab{grid-area:ml;justify-self:start}
.knox-brand .knox-brand__sep{grid-area:sep;height:26px}
/* The old one-row sizes (Knox 22px, iCode 15px, Math Lab 27px tall) read as equal; Knox now takes 1.5 times its share. */
.knox-brand .knox-brand__img--knox{height:45px}
.knox-brand .knox-brand__img--icode{height:20.5px}
.knox-brand .knox-brand__img--mathlab{height:36px}

/* ---- Desktop: logos on the first row, the menu across the second ---- */
#main-header .site-main-header-inner-wrap.site-header-row-has-sides{grid-template-columns:minmax(0,1fr)!important;row-gap:14px;min-height:0!important;padding:18px 0 16px}
#main-header .site-header-main-section-left{justify-content:center!important}
#main-header .site-header-main-section-left>.site-header-item{margin:0}
#main-header .site-header-main-section-right{justify-content:stretch!important}
#main-header .site-header-main-section-right>.site-header-item{flex:1 1 auto}
#main-header .header-navigation,#main-header .header-menu-container{width:100%}
#main-header .header-menu-container>ul{flex-wrap:nowrap;column-gap:8px;width:100%}
/* Each button starts at its label's width and takes an equal share of what's left, so the row runs edge to edge. */
#main-header .header-menu-container>ul>li{display:flex;flex:1 1 auto}
#main-header .header-menu-container>ul>li>a{flex:1 1 auto;text-align:center;white-space:nowrap;font-size:15px;line-height:1.3;padding:11px 8px;margin-left:0}
#main-header .header-menu-container>ul>li:not(.knox-nav-cta)>a{border-radius:10px}
@media (max-width:1439px){#main-header .header-menu-container>ul{column-gap:6px}#main-header .header-menu-container>ul>li>a{font-size:14px}}
@media (max-width:1324px){#main-header .header-menu-container>ul{column-gap:5px}#main-header .header-menu-container>ul>li>a{font-size:13px;padding:10px 7px}}

/* ---- ☰ header (below 1180px): the same triangle on the left, smaller ---- */
#mobile-header .site-main-header-inner-wrap{min-height:0!important;padding:10px 0}
#mobile-header .knox-brand{column-gap:12px;row-gap:6px}
#mobile-header .knox-brand .knox-brand__img--knox{height:31px}
#mobile-header .knox-brand .knox-brand__img--icode{height:14px}
#mobile-header .knox-brand .knox-brand__img--mathlab{height:24.5px}
#mobile-header .knox-brand__sep{height:18px}

/* Knox Esports logo in the header half again as large (Oct 12, 2026, Chris): 45px → 67.5px tall on the
   desktop header, 31px → 46.5px on the ☰ header. The small logos at the foot of the home page stay as they are. */
.knox-brand .knox-brand__img--knox{height:67.5px}
#mobile-header .knox-brand .knox-brand__img--knox{height:46.5px}

/* =========================================================================================
   HOME PHOTO CAROUSEL (Oct 12, 2026, Chris): the six photo tiles under "Play. Learn. Gather." are
   now one large tile at a time, with the neighbours' edges showing so it reads as something you can
   move. knox-carousel.js moves it on every 3 seconds, loops it and adds the arrows, dots and pause.
   Each move is a 1-second slide, and the tiles fade over the same second (Oct 12 evening).
   ========================================================================================= */
.kl-carousel{position:relative;margin:64px 0 0}
.kl-carousel__stage{position:relative}
/* The side padding sets the peek: each slide fills the track's content box, 80% of its width (84% on phones). */
.kl-carousel__track{position:relative;display:flex;gap:16px;padding:4px 10%;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.kl-carousel__track::-webkit-scrollbar{display:none}
.kl-carousel__slide{flex:0 0 100%;aspect-ratio:16/9;scroll-snap-align:center;scroll-snap-stop:always;opacity:.5;transition:opacity 1s ease-in-out}
.kl-carousel__slide.is-active{opacity:1}
.kl-carousel__track.is-jumping .kl-carousel__slide{transition:none}
.kl-carousel a.kl-carousel__tile{display:block;height:100%;border-radius:26px;overflow:hidden;text-decoration:none;color:inherit;box-shadow:none}
.kl-carousel figure{position:relative;height:100%;margin:0;background:#E8E8ED}
.kl-carousel figure>img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.kl-carousel__slide.is-active a.kl-carousel__tile:hover figure>img{transform:scale(1.03)}
.kl-carousel a.kl-carousel__tile:focus-visible{outline:3px solid #1D1D1F;outline-offset:3px}
.kl-carousel figcaption{position:absolute;left:22px;bottom:20px;display:flex;align-items:center;gap:10px;margin:0;padding:10px 18px;border-radius:980px;background:rgba(255,255,255,.94);color:var(--kl-ink);font-size:17px;font-weight:600;line-height:1.2}
.kl-carousel figcaption img{display:block;width:auto;height:20px}
.kl-carousel figcaption img.ml{height:28px;margin:-4px 0}
.kl-carousel__arrow{appearance:none;position:absolute;top:50%;z-index:2;display:flex;align-items:center;justify-content:center;width:46px;height:46px;margin-top:-23px;padding:0 0 3px;border:0;border-radius:50%;background:#fff;color:var(--kl-ink);font-size:30px;line-height:1;cursor:pointer;box-shadow:0 2px 10px rgba(0,0,0,.18)}
.kl-carousel__arrow--prev{left:calc(10% - 23px)}
.kl-carousel__arrow--next{right:calc(10% - 23px)}
.kl-carousel__arrow:hover{background:var(--kl-ink);color:#fff}
.kl-carousel__arrow:focus-visible,.kl-carousel__dot:focus-visible,.kl-carousel__pause:focus-visible{outline:3px solid #F59535;outline-offset:2px}
.kl-carousel__bar{display:flex;align-items:center;justify-content:center;gap:14px;margin:18px 0 0}
.kl-carousel__dots{display:flex;align-items:center;gap:8px}
.kl-carousel__dot{appearance:none;width:9px;height:9px;padding:0;border:0;border-radius:980px;background:#D2D2D7;cursor:pointer;box-shadow:none;transition:width .3s ease,background .3s ease}
.kl-carousel__dot.is-on{width:26px;background:var(--kl-ink)}
.kl-carousel__pause{appearance:none;position:relative;width:32px;height:32px;padding:0;border:0;border-radius:50%;background:#E8E8ED;cursor:pointer;box-shadow:none}
.kl-carousel__pause::before,.kl-carousel__pause::after{content:"";position:absolute;top:10px;width:3px;height:12px;border-radius:1px;background:var(--kl-ink)}
.kl-carousel__pause::before{left:11.5px}
.kl-carousel__pause::after{left:17.5px}
.kl-carousel__pause.is-paused::before{left:12px;top:9px;width:0;height:0;border-radius:0;background:none;border-style:solid;border-width:7px 0 7px 11px;border-color:transparent transparent transparent var(--kl-ink)}
.kl-carousel__pause.is-paused::after{display:none}
.kl-carousel__pause:hover{background:#D2D2D7}
/* Kadence colours every focused or pressed button ink; keep the carousel's own colours instead. */
.kl-carousel .kl-carousel__pause,.kl-carousel .kl-carousel__pause:focus,.kl-carousel .kl-carousel__pause:active{background:#E8E8ED;color:var(--kl-ink)}
.kl-carousel .kl-carousel__pause:hover{background:#D2D2D7}
.kl-carousel .kl-carousel__arrow:focus,.kl-carousel .kl-carousel__arrow:active{background:#fff;color:var(--kl-ink)}
.kl-carousel .kl-carousel__arrow:hover{background:var(--kl-ink);color:#fff}
.kl-carousel .kl-carousel__dot:focus,.kl-carousel .kl-carousel__dot:active,.kl-carousel .kl-carousel__dot:hover{background:#AEAEB2}
.kl-carousel .kl-carousel__dot.is-on,.kl-carousel .kl-carousel__dot.is-on:focus,.kl-carousel .kl-carousel__dot.is-on:hover{background:var(--kl-ink)}
@media (max-width:900px){.kl-carousel{margin-top:44px}}
@media (max-width:600px){
  .kl-carousel__track{margin:0 -24px;padding:4px 8%;gap:10px}
  .kl-carousel__slide{aspect-ratio:5/4}
  .kl-carousel a.kl-carousel__tile{border-radius:18px}
  .kl-carousel figcaption{left:12px;bottom:12px;gap:7px;padding:7px 12px;font-size:13.5px}
  .kl-carousel figcaption img{height:15px}
  .kl-carousel figcaption img.ml{height:21px}
  .kl-carousel__arrow{display:none}
}
@media (prefers-reduced-motion:reduce){.kl-carousel__slide,.kl-carousel figure>img,.kl-carousel__dot{transition:none}}

/* Policy pages (Oct 24, 2026): Privacy Policy, Terms of Service, Refunds & Cancellations, FAQ, Rules & Conduct.
   Long-form text reads in one left-aligned column. .kl-jump is the FAQ's row of topic links.
   .kl-draftbox and the yellow .kl-todo highlights mark decisions still to make: both come out before publishing. */
.kl .kl-legal{max-width:760px;margin:0 auto;text-align:left}
.entry-content .kl-legal h2.wp-block-heading{font-size:clamp(36px,4vw,48px);line-height:.95;margin:64px 0 16px;color:var(--kl-ink)}
.entry-content .kl-legal>h2.wp-block-heading:first-child{margin-top:0}
.entry-content .kl-legal h3.wp-block-heading{font-family:var(--knox-font-text);font-size:19px;font-weight:700;line-height:1.3;letter-spacing:-.01em;text-transform:none;margin:30px 0 10px;color:var(--kl-ink)}
.kl-legal p,.kl-legal li{font-size:16.5px;line-height:1.65;color:var(--kl-ink)}
.kl .kl-legal p{margin:0 0 16px}
.kl .kl-legal ul{margin:0 0 20px!important;padding-left:22px!important}
.kl .kl-legal li{margin:0 0 8px!important}
.kl-legal strong{font-weight:600}
.kl-legal a,.kl-qa dd a,.kl-lede a{color:var(--kl-link);font-weight:600;text-decoration:none}
.kl-legal a:hover,.kl-qa dd a:hover{text-decoration:underline;text-underline-offset:3px}
.kl .kl-jump{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;max-width:1040px;margin:34px auto 0}
.kl-jump a{padding:8px 16px;border-radius:980px;background:var(--kl-soft);color:var(--kl-ink);font-size:14.5px;font-weight:600;text-decoration:none}
.kl-jump a:hover{background:var(--kl-ink);color:#fff}
.kl-jump a:focus-visible{outline:3px solid #1D1D1F;outline-offset:2px}
.kl-band[id]{scroll-margin-top:24px}
.kl mark.kl-todo{background:#FFE58A!important;color:var(--kl-ink);padding:1px 5px;border-radius:5px;font-weight:600;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.kl .kl-draftbox{max-width:760px;margin:40px auto 0;padding:24px 28px;border:2px dashed #B98A00;border-radius:22px;background:#FFF8DB;text-align:left}
.kl .kl-draftbox p,.kl .kl-draftbox li{font-size:15.5px;line-height:1.55;color:var(--kl-ink)}
.kl .kl-draftbox p{margin:0 0 10px}
.kl .kl-draftbox ul{margin:0!important;padding-left:20px!important}
.kl .kl-draftbox li{margin:0 0 6px!important}
@media (max-width:600px){.kl .kl-draftbox{padding:20px 18px}.entry-content .kl-legal h2.wp-block-heading{margin-top:48px}}

/* ---- Math Lab tutoring prices by grade (Nov 2, 2026): a 3×3 table on the Education page, styled like .kl-rows ---- */
.kl-ptable-wrap{overflow-x:auto;margin:4px 0 22px;-webkit-overflow-scrolling:touch}
.kl table.kl-ptable{width:100%;min-width:440px;border-collapse:collapse;border:0;margin:0;font-size:16px;color:var(--kl-ink)}
.kl-ptable th,.kl-ptable td{padding:12px 10px;border:0;border-bottom:1px solid var(--kl-line);background:none;text-align:right;vertical-align:baseline}
.kl-ptable thead th{padding-top:0;font-size:13px;font-weight:700;letter-spacing:.04em;color:var(--kl-muted);white-space:nowrap}
.kl-ptable tbody tr:first-child th,.kl-ptable tbody tr:first-child td{border-top:1px solid var(--kl-line)}
.kl-ptable th[scope=row]{text-align:left;font-weight:400;padding-left:0}
.kl-ptable th[scope=row] small{display:block;font-size:13.5px;color:var(--kl-muted)}
.kl-ptable td strong{display:block;font-family:var(--knox-font-display);font-weight:400;font-size:28px;line-height:1.05;letter-spacing:.02em;white-space:nowrap}
.kl-ptable td small{display:block;font-size:13px;color:var(--kl-muted);white-space:nowrap}
.kl-ptable td:last-child,.kl-ptable thead th:last-child{padding-right:0}
@media (max-width:600px){.kl table.kl-ptable{min-width:0;font-size:14px}.kl-ptable__g{display:none}.kl-ptable th,.kl-ptable td{padding:10px 4px}.kl-ptable td strong{font-size:22px}.kl-ptable td small{white-space:normal;font-size:12px}.kl-ptable th[scope=row] small{font-size:12px}}
