/* ============================================================
   SOHO SESSIONS — Brand layer
   Sits on top of Bootstrap 5.3 so the result never reads as
   "default Bootstrap". We override Bootstrap's own CSS custom
   properties (no SCSS compile step required) then hand-roll the
   industrial / Venezuelan-kinetic component styling.
   Dark · industrial · mechanical. border-radius: 0 everywhere.
   ============================================================ */

/* ---- 1. Map brand tokens onto Bootstrap's CSS variables ------ */
:root {
  --bs-primary:        var(--ss-red);
  --bs-primary-rgb:    220, 38, 38;
  --bs-body-bg:        var(--ss-black);
  --bs-body-bg-rgb:    0, 0, 0;
  --bs-body-color:     var(--ss-bone);
  --bs-body-color-rgb: 237, 232, 224;
  --bs-body-font-family: var(--ss-body);
  --bs-border-radius:        0;
  --bs-border-radius-sm:     0;
  --bs-border-radius-lg:     0;
  --bs-border-radius-xl:     0;
  --bs-border-radius-pill:   0;
  --bs-border-color:   var(--ss-line);
  --bs-link-color:     var(--ss-red-bright);
  --bs-link-color-rgb: 239, 68, 68;
  --bs-link-hover-color: var(--ss-bone);
  --bs-emphasis-color: var(--ss-bone);
  --bs-secondary-color: var(--ss-bone-dim);
  --bs-tertiary-bg:    var(--ss-near-black);

  /* brand theme-colour utilities (.text-kinetic / .bg-hazard etc.) */
  --bs-kinetic: var(--ss-blue);
  --bs-hazard:  var(--ss-amber);
}

/* ---- 2. Base ------------------------------------------------- */
* { border-radius: 0 !important; }   /* industrial edge, no exceptions */

html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body {
  background: var(--ss-black);
  color: var(--ss-bone);
  font-family: var(--ss-body);
  font-weight: 500;
  letter-spacing: 0.01em;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

h1, h2, h3, h4, .display, .ss-display {
  font-family: var(--ss-display);
  font-weight: 400;
  letter-spacing: 0.02em;
  line-height: 0.92;
  text-transform: uppercase;
  color: var(--ss-bone);
}

/* fluid heading / lead size utilities (map to tokens) */
.ss-fs-h1 { font-size: var(--ss-fs-h1); }
.ss-fs-h2 { font-size: var(--ss-fs-h2); }
.ss-fs-h3 { font-size: var(--ss-fs-h3); }
.ss-fs-lead { font-size: var(--ss-fs-lead); font-weight: 500; color: var(--ss-bone); line-height: 1.45; }
h1 { font-size: var(--ss-fs-h1); }
h2 { font-size: var(--ss-fs-h2); }
h3 { font-size: var(--ss-fs-h3); }

p { color: var(--ss-bone-dim); line-height: 1.6; }
a { text-decoration: none; transition: color var(--ss-dur-fast) var(--ss-ease-mech); }

/* mono instrument-panel label */
.ss-label {
  font-family: var(--ss-mono);
  font-size: var(--ss-fs-label);
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--ss-bone-dim);
}
.ss-label--red   { color: var(--ss-red-bright); }
.ss-label--blue  { color: var(--ss-blue); }

.ss-section { padding-block: var(--ss-section-y); position: relative; }
.ss-section--alt { background: var(--ss-near-black); }
.container, .ss-wrap { max-width: var(--ss-maxw); }

/* selection */
::selection { background: var(--ss-red); color: #fff; }

/* ---- 3. Focus visibility (accessibility — red ring) ---------- */
a:focus-visible, button:focus-visible, input:focus-visible,
textarea:focus-visible, select:focus-visible, .btn:focus-visible,
[tabindex]:focus-visible, .accordion-button:focus-visible {
  outline: 3px solid var(--ss-red-bright) !important;
  outline-offset: 2px;
  box-shadow: none !important;
}

/* ---- 4. Texture layers (decorative; motion-gated) ------------ */
/* grid background utility — apply per section */
.ss-grid-bg::before {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background-image:
    linear-gradient(var(--ss-line) 1px, transparent 1px),
    linear-gradient(90deg, var(--ss-line) 1px, transparent 1px);
  background-size: 48px 48px;
  opacity: 0.18;
  mask-image: radial-gradient(ellipse at center, #000 30%, transparent 80%);
}
.ss-grid-bg > * { position: relative; z-index: 1; }

/* fixed film-grain noise overlay */
.ss-noise {
  position: fixed; inset: 0; z-index: 1; pointer-events: none; opacity: 0.05;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
/* scanlines — very low opacity */
.ss-scanlines {
  position: fixed; inset: 0; z-index: 1; pointer-events: none; opacity: 0.06;
  background-image: repeating-linear-gradient(
    to bottom, rgba(255,255,255,0.6) 0 1px, transparent 1px 3px);
}
/* Cruz-Diez vertical stripe backdrop */
.ss-stripes::before {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none; opacity: 0.10;
  background-image: repeating-linear-gradient(
    90deg, var(--ss-red) 0 2px, transparent 2px 9px,
    var(--ss-bone) 9px 11px, transparent 11px 18px);
}
.ss-stripes > * { position: relative; z-index: 1; }

/* Gego line-network backdrop (SVG, blue-deco, decoration only) */
.ss-gego::before {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none; opacity: 0.22;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='400' fill='none' stroke='%23172554' stroke-width='1'%3E%3Cpath d='M20 30L180 90L120 260L300 200L380 340M60 380L200 220L340 60M10 200L160 160L260 360'/%3E%3Ccircle cx='180' cy='90' r='3'/%3E%3Ccircle cx='120' cy='260' r='3'/%3E%3Ccircle cx='300' cy='200' r='3'/%3E%3Ccircle cx='200' cy='220' r='3'/%3E%3C/svg%3E");
  background-size: 460px 460px;
}
.ss-gego > * { position: relative; z-index: 1; }

@media (prefers-reduced-motion: reduce) {
  .ss-noise, .ss-scanlines { display: none; }
}

/* ---- 5. Corner-bracket panel --------------------------------- */
.ss-panel {
  position: relative;
  background: var(--ss-panel);
  border: 1px solid var(--ss-line);
  padding: clamp(1.25rem, 4vw, 2.25rem);
}
.ss-bracket { position: relative; }
.ss-bracket::before, .ss-bracket::after {
  content: ""; position: absolute; width: 18px; height: 18px; pointer-events: none;
  border-color: var(--ss-red); border-style: solid; border-width: 0;
}
.ss-bracket::before { top: 8px; left: 8px;  border-top-width: 2px; border-left-width: 2px; }
.ss-bracket::after  { bottom: 8px; right: 8px; border-bottom-width: 2px; border-right-width: 2px; }
/* second pair via inner wrapper for full four-corner brackets */
.ss-bracket > .ss-bracket-tr,
.ss-bracket > .ss-bracket-bl { position: absolute; width: 18px; height: 18px; pointer-events: none; border-color: var(--ss-red); border-style: solid; border-width: 0; }
.ss-bracket > .ss-bracket-tr { top: 8px; right: 8px; border-top-width: 2px; border-right-width: 2px; }
.ss-bracket > .ss-bracket-bl { bottom: 8px; left: 8px; border-bottom-width: 2px; border-left-width: 2px; }

/* ---- 6. Buttons (replace Bootstrap defaults) ----------------- */
.btn { border-radius: 0; font-family: var(--ss-body); font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.12em; border-width: 1px;
  min-height: var(--ss-tap); display: inline-flex; align-items: center;
  justify-content: center; gap: 0.5rem; transition: all var(--ss-dur-fast) var(--ss-ease-mech); }

.btn-ticket, .btn-primary {
  background: var(--ss-red); color: #fff; border: 1px solid var(--ss-red-deep);
  padding: 0.7rem 1.6rem; box-shadow: var(--ss-glow-red);
}
.btn-ticket:hover, .btn-primary:hover,
.btn-ticket:focus, .btn-primary:focus {
  background: var(--ss-red-bright); color: #fff; transform: translateY(-1px);
}
.btn-ticket::after { content: "→"; font-family: var(--ss-mono); }

.btn-ghost {
  background: transparent; color: var(--ss-bone); border: 1px solid var(--ss-line);
  padding: 0.7rem 1.4rem;
}
.btn-ghost:hover { border-color: var(--ss-bone); color: #fff; }

.btn-kinetic {
  background: transparent; color: var(--ss-blue); border: 1px solid var(--ss-blue-lg);
  padding: 0.7rem 1.4rem;
}
.btn-kinetic:hover { background: var(--ss-blue-lg); color: #fff; }

.btn-soldout { background: var(--ss-line); color: var(--ss-bone-dim); pointer-events: none; }

/* ---- 7. Amber scarcity chip + status pill (sanctioned uses) -- */
.ss-chip {
  display: inline-flex; align-items: center; gap: 0.5ch;
  font-family: var(--ss-mono); font-size: var(--ss-fs-label);
  letter-spacing: 0.2em; text-transform: uppercase;
  color: var(--ss-amber-bright); background: rgba(245,158,11,0.10);
  border: 1px solid var(--ss-amber-deep); padding: 0.35rem 0.7rem; line-height: 1;
}
.ss-chip::before { content: "▲"; color: var(--ss-amber); font-size: 0.7em; }
.ss-pill {
  display: inline-flex; align-items: center; gap: 0.5ch;
  font-family: var(--ss-mono); font-size: 0.72rem; letter-spacing: 0.18em;
  text-transform: uppercase; color: var(--ss-amber-bright);
}
.ss-pill::before { content: ""; width: 8px; height: 8px; background: var(--ss-amber);
  display: inline-block; box-shadow: 0 0 8px var(--ss-amber); }
@media (prefers-reduced-motion: no-preference) {
  .ss-pill::before { animation: ss-blink 1.4s steps(2, jump-none) infinite; }
}
@keyframes ss-blink { 50% { opacity: 0.25; } }

/* ---- 8. Live bar --------------------------------------------- */
.ss-livebar {
  background: var(--ss-near-black); border-bottom: 1px solid var(--ss-line);
  font-family: var(--ss-mono); font-size: 0.78rem; letter-spacing: 0.1em;
}
.ss-livebar .ss-livebar-inner { display: flex; align-items: center; gap: 1rem;
  padding: 0.5rem 1rem; min-height: var(--ss-tap); }
.ss-livebar__date { color: var(--ss-bone); text-transform: uppercase; }
.ss-livebar__dismiss { margin-left: auto; background: none; border: 0;
  color: var(--ss-bone-dim); width: var(--ss-tap); height: var(--ss-tap); cursor: pointer; }
.ss-livebar__dismiss:hover { color: var(--ss-bone); }
.ss-livebar[hidden] { display: none; }

/* ---- 9. Navbar + offcanvas ----------------------------------- */
.ss-navbar {
  background: rgba(0,0,0,0.86); backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--ss-line);
}
.ss-navbar .navbar-brand { font-family: var(--ss-display); font-size: 1.5rem;
  letter-spacing: 0.06em; color: var(--ss-bone); text-transform: uppercase; line-height: 1; }
.ss-navbar .navbar-brand b { color: var(--ss-red); font-weight: 400; }
.ss-nav-link {
  font-family: var(--ss-body); font-weight: 700; text-transform: uppercase;
  letter-spacing: 0.14em; font-size: 0.92rem; color: var(--ss-bone-dim);
  padding: 0.5rem 0.85rem; min-height: var(--ss-tap); display: flex; align-items: center;
}
.ss-nav-link:hover { color: var(--ss-bone); }
.ss-nav-link[aria-current="page"], .ss-nav-link.active {
  color: var(--ss-bone);
  box-shadow: inset 0 -2px 0 var(--ss-red);
}
.ss-navbar .navbar-toggler { border: 1px solid var(--ss-line); color: var(--ss-bone);
  width: var(--ss-tap); height: var(--ss-tap); padding: 0; }
.ss-navbar .navbar-toggler:focus { box-shadow: none; }
.ss-offcanvas { background: var(--ss-near-black); border-left: 1px solid var(--ss-line);
  --bs-offcanvas-width: min(86vw, 360px); width: min(86vw, 360px); }
.ss-offcanvas .ss-nav-link { font-size: 1.4rem; padding-block: 0.75rem; }
.ss-offcanvas .btn-close { filter: invert(1); }
/* Neutralise Bootstrap's scrollbar-compensation padding jump. On this
   full-bleed dark layout (overflow-x already hidden) the offcanvas
   scroll-lock otherwise mis-measures and pads <body>, collapsing the
   content column. Keep body/sticky padding flat. */
body { padding-right: 0 !important; }
.ss-navbar.sticky-top, .navbar.fixed-top { padding-right: 0 !important; }

/* ---- 10. Hero ------------------------------------------------ */
.ss-hero { position: relative; min-height: clamp(560px, 92vh, 900px);
  display: flex; align-items: flex-end; overflow: hidden; }
.ss-hero__bg { position: absolute; inset: 0; z-index: 0;
  background: radial-gradient(ellipse at 70% 10%, #1a0606 0%, #000 60%); }
.ss-hero__num { font-family: var(--ss-display); font-size: var(--ss-fs-mega);
  line-height: 0.8; color: var(--ss-bone); }
.ss-hero__num em { font-style: normal; color: var(--ss-red); }
.ss-hero__title { font-size: var(--ss-fs-h1); color: var(--ss-bone); }
.ss-hero__meta { font-family: var(--ss-mono); letter-spacing: 0.12em;
  text-transform: uppercase; color: var(--ss-bone); font-size: 0.95rem; }
.ss-hero__meta strong { color: var(--ss-red-bright); }

/* ---- 11. Countdown (instrument panel) ------------------------ */
.ss-countdown { display: flex; gap: 0.75rem; font-family: var(--ss-display); }
.ss-countdown__unit { text-align: center; min-width: 64px;
  border: 1px solid var(--ss-line); background: var(--ss-panel); padding: 0.5rem 0.4rem; }
.ss-countdown__val { font-size: clamp(1.8rem, 7vw, 3rem); line-height: 1; color: var(--ss-bone); }
.ss-countdown__lab { font-family: var(--ss-mono); font-size: 0.6rem;
  letter-spacing: 0.2em; color: var(--ss-bone-dim); text-transform: uppercase; }

/* ---- 12. Lineup tiles + TBA reveal --------------------------- */
.ss-lineup-grid { display: grid; gap: 1px; background: var(--ss-line);
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); border: 1px solid var(--ss-line); }
.ss-lineup-tile { background: var(--ss-near-black); padding: clamp(1rem,3vw,1.8rem);
  min-height: 120px; display: flex; flex-direction: column; justify-content: flex-end; }
.ss-lineup-tile__name { font-family: var(--ss-display); font-size: 1.6rem; color: var(--ss-bone); }
.ss-lineup-tile__role { font-family: var(--ss-mono); font-size: 0.68rem;
  letter-spacing: 0.2em; text-transform: uppercase; color: var(--ss-bone-dim); }
.ss-lineup-tile--tba .ss-lineup-tile__name { color: var(--ss-amber); }
.ss-lineup-tile--tba { border-left: 2px solid var(--ss-amber-deep); }

/* ---- 13. Stats strip (mono numerals) ------------------------- */
.ss-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px,1fr));
  gap: 1px; background: var(--ss-line); border: 1px solid var(--ss-line); }
.ss-stat { background: var(--ss-black); padding: clamp(1.25rem,4vw,2rem); text-align: center; }
.ss-stat__num { font-family: var(--ss-mono); font-size: clamp(2rem,7vw,3.25rem);
  color: var(--ss-bone); line-height: 1; }
.ss-stat__lab { font-family: var(--ss-mono); font-size: 0.7rem; letter-spacing: 0.2em;
  text-transform: uppercase; color: var(--ss-bone-dim); margin-top: 0.5rem; }

/* ---- 14. Kinetic Blue content sections ----------------------- */
.ss-kinetic-section { background: var(--ss-near-black);
  border-block: 1px solid var(--ss-blue-deco); }
.ss-kinetic-section .ss-label { color: var(--ss-blue); }
.ss-kinetic-section h2 { color: var(--ss-bone); }
.ss-eq { display: flex; align-items: flex-end; gap: 3px; height: 40px; }
.ss-eq span { width: 5px; background: var(--ss-blue); height: 30%; }
@media (prefers-reduced-motion: no-preference) {
  .ss-eq span { animation: ss-eq 0.9s var(--ss-ease-mech) infinite alternate; }
  .ss-eq span:nth-child(2){animation-delay:.1s}.ss-eq span:nth-child(3){animation-delay:.2s}
  .ss-eq span:nth-child(4){animation-delay:.3s}.ss-eq span:nth-child(5){animation-delay:.15s}
  .ss-eq span:nth-child(6){animation-delay:.25s}
}
@keyframes ss-eq { to { height: 100%; } }

/* ---- 15. Cards / list items (no default BS cards) ------------ */
.ss-card { background: var(--ss-panel); border: 1px solid var(--ss-line);
  padding: clamp(1.25rem,3vw,1.75rem); height: 100%;
  transition: border-color var(--ss-dur-base) var(--ss-ease-mech); }
.ss-card:hover { border-color: var(--ss-red-deep); }
.ss-card a.stretched-link::after { content: ""; }

/* ---- 16. Footer ---------------------------------------------- */
.ss-footer { background: var(--ss-near-black); border-top: 1px solid var(--ss-line);
  padding-top: var(--ss-section-y); }
.ss-footer h3 { font-family: var(--ss-mono); font-size: 0.78rem; letter-spacing: 0.24em;
  color: var(--ss-bone-dim); text-transform: uppercase; margin-bottom: 1rem; }
.ss-footer ul { list-style: none; padding: 0; margin: 0; }
.ss-footer li { margin-bottom: 0.55rem; }
.ss-footer a { color: var(--ss-bone); }
.ss-footer a:hover { color: var(--ss-red-bright); }
/* LISTEN column — the one sanctioned footer use of Kinetic Blue */
.ss-footer .ss-col-listen h3 { color: var(--ss-blue); }
.ss-footer .ss-col-listen a:hover { color: var(--ss-blue); }
.ss-footer__bar-nudge { border-top: 1px solid var(--ss-line);
  font-family: var(--ss-mono); font-size: 0.78rem; color: var(--ss-bone-dim);
  text-align: center; padding: 1.25rem 1rem; }
.ss-footer__legal { border-top: 1px solid var(--ss-line);
  font-family: var(--ss-mono); font-size: 0.72rem; color: var(--ss-bone-dim);
  padding: 1rem; }

/* ---- 17. Sticky mobile CTA ----------------------------------- */
.ss-sticky-cta {
  position: fixed; bottom: 0; left: 0; right: 0; z-index: 1040;
  display: flex; align-items: center; gap: 0.75rem;
  background: rgba(10,10,10,0.96); border-top: 1px solid var(--ss-red-deep);
  padding: 0.6rem 0.9rem; backdrop-filter: blur(8px);
}
.ss-sticky-cta__info { font-family: var(--ss-mono); font-size: 0.72rem;
  text-transform: uppercase; letter-spacing: 0.08em; color: var(--ss-bone); line-height: 1.25; }
.ss-sticky-cta__info b { color: var(--ss-red-bright); }
.ss-sticky-cta .btn-ticket { margin-left: auto; padding: 0.6rem 1.1rem; }
@media (min-width: 992px) { .ss-sticky-cta { display: none !important; } }

/* ---- 18. Accordion (FAQ / logistics) ------------------------- */
.accordion { --bs-accordion-bg: transparent; --bs-accordion-border-color: var(--ss-line);
  --bs-accordion-active-bg: var(--ss-panel); --bs-accordion-active-color: var(--ss-bone);
  --bs-accordion-btn-color: var(--ss-bone); --bs-accordion-color: var(--ss-bone-dim);
  --bs-accordion-btn-focus-box-shadow: none; --bs-accordion-btn-bg: var(--ss-near-black);
  /* bone chevron for BOTH states — never the default blue (which would
     invert to amber and break the amber-rarity rule, §4.3) */
  --bs-accordion-btn-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23EDE8E0' stroke-width='2'%3E%3Cpath d='M3 6l5 5 5-5'/%3E%3C/svg%3E");
  --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23EF4444' stroke-width='2'%3E%3Cpath d='M3 6l5 5 5-5'/%3E%3C/svg%3E"); }
.accordion-button { font-family: var(--ss-display); font-size: 1.25rem;
  letter-spacing: 0.02em; text-transform: uppercase; }
.accordion-button::after { filter: none; }
.accordion-body { font-family: var(--ss-body); }

/* ---- 19. Forms ----------------------------------------------- */
.form-control, .form-select { background: var(--ss-black); border: 1px solid var(--ss-line);
  color: var(--ss-bone); min-height: var(--ss-tap); font-family: var(--ss-body); }
.form-control:focus, .form-select:focus { background: var(--ss-black);
  border-color: var(--ss-red); color: var(--ss-bone); box-shadow: none; }
.form-control::placeholder { color: #5d5851; }
.form-label { font-family: var(--ss-mono); font-size: 0.74rem; letter-spacing: 0.16em;
  text-transform: uppercase; color: var(--ss-bone-dim); }
.ss-form-feedback { font-family: var(--ss-mono); font-size: 0.8rem; }
.ss-form-feedback--ok { color: var(--ss-blue); }
.ss-form-feedback--err { color: var(--ss-red-bright); }

/* email capture inline group */
.ss-email-group { display: flex; gap: 0; border: 1px solid var(--ss-line); }
.ss-email-group .form-control { border: 0; }
.ss-email-group .btn { white-space: nowrap; }

/* ---- 20. Map embed ------------------------------------------- */
.ss-map { border: 1px solid var(--ss-line); width: 100%; aspect-ratio: 16/9;
  filter: grayscale(1) invert(0.9) contrast(0.9); }

/* ---- 21. Reveal animation (motion-gated) --------------------- */
.ss-reveal { opacity: 1; }
@media (prefers-reduced-motion: no-preference) {
  .ss-reveal { opacity: 0; transform: translateY(18px);
    transition: opacity var(--ss-dur-slow) var(--ss-ease-mech),
                transform var(--ss-dur-slow) var(--ss-ease-mech); }
  .ss-reveal.is-in { opacity: 1; transform: none; }
}

/* ---- 22. Utilities ------------------------------------------- */
.text-kinetic { color: var(--ss-blue) !important; }
.text-amber   { color: var(--ss-amber-bright) !important; }
.bg-near      { background: var(--ss-near-black) !important; }
.ss-divider   { height: 1px; background: var(--ss-line); border: 0; }
.ss-skip-link { position: absolute; left: -9999px; top: 0; z-index: 2000;
  background: var(--ss-red); color: #fff; padding: 0.75rem 1rem; }
.ss-skip-link:focus { left: 0; }
.ss-prefooter-pad { padding-bottom: 5rem; }
@media (min-width: 992px) { .ss-prefooter-pad { padding-bottom: 0; } }

/* ---- 23. Editable content (the WordPress editor body) -------- */
/* Styles whatever KOKOH types into a Page, so prose + shortcodes read
   in-brand without any block-by-block formatting. */
.ss-prose > h2, .ss-home-content > h2 { font-size: var(--ss-fs-h2); margin: 2.75rem 0 1rem; }
.ss-prose > h3, .ss-home-content > h3 { font-size: var(--ss-fs-h3); margin: 2rem 0 .75rem; }
.ss-prose > :first-child, .ss-home-content > :first-child { margin-top: 0; }
.ss-prose p, .ss-home-content p { margin-bottom: 1rem; max-width: 70ch; }
.ss-prose > ul, .ss-prose > ol, .ss-home-content > ul {
  list-style: none; padding: 0; margin: 0 0 1.5rem; max-width: 70ch; }
.ss-prose > ul > li, .ss-home-content > ul > li {
  position: relative; padding-left: 1.4rem; margin-bottom: .6rem; color: var(--ss-bone); }
.ss-prose > ul > li::before, .ss-home-content > ul > li::before {
  content: "→"; position: absolute; left: 0; color: var(--ss-red); font-family: var(--ss-mono); }
.ss-prose .btn, .ss-home-content .btn { margin: .25rem .5rem .25rem 0; }
.ss-prose img, .ss-home-content img { max-width: 100%; height: auto; }

/* The homepage editable body sits in evenly-spaced sections. */
.ss-home-content { padding: var(--ss-section-y) 0; }
.ss-home-content > .container,
.ss-home-content { } /* shortcodes bring their own grids */
.ss-home-content { max-width: var(--ss-maxw); margin-inline: auto; padding-inline: var(--bs-gutter-x, 1.5rem); }
.ss-home-content .ss-stats, .ss-home-content .ss-lineup-grid,
.ss-home-content .row { margin-block: 1.5rem; }
