/* ============================================================================
   POKER SECTION  —  /css/venues/poker.css
   contentPage (Poker landing + leaves) / pokerTournaments / pokerTournament
   ----------------------------------------------------------------------------
   BRAND STYLESHEET — loaded per-node via the `branding` composition, NOT globally.
   `brandStylesheet = poker` is set on the Poker landing node
   (601c9d4f-501c-4122-af97-60a20bdb297e); _Layout's AncestorsOrSelf() walk
   inherits it down the whole /poker/ branch, so every descendant gets the sheet
   plus the body class `sc-hotel-brand--poker` with no per-type composition.
   (Until 2026-07-24 this file lived at /css/poker.css and was hard-linked in
   _Layout for EVERY page on EVERY site — see tasks/feat-poker-brand-stylesheet.md.)

   Static stylesheet (served directly, never Razor-processed) → ALWAYS plain
   @media, NEVER @@media (CLAUDE §7).

   ════════════════════════════════════════════════════════════════════════════
   CORRECTED 2026-07-28 — tasks/_done/poker-03-stylesheet-correction.md (R1–R11)
   ════════════════════════════════════════════════════════════════════════════
   The 24 Jul build shipped on a premise that turned out to be INVERTED.
   tasks/_done/poker-02-design-decode.md read the live U7 design and found:

     WAS (24 Jul, wrong):  blue #0051FF as the BODY background, with panels
                           built as translucent black over blue.
     IS  (live, decoded):  a #10161F SHELL with OPAQUE #0051FF panels.
                           Of 20 top-level sections across the 3 redesigned
                           pages, exactly 4 declare a background — all 4 blue.

   CHROME = OPTION B (Adam, 2026-07-28). Standard SkyCity nav, search,
   breadcrumb and footer, unchanged site-wide. **This sheet no longer paints
   chrome.** The 24 Jul body-level surface move is REVERTED: the surface now
   scopes to the page CONTENT AREA only (`body > main`, which _Layout renders
   with the nav/drawer/footer as siblings OUTSIDE it).
   ⚠ Do NOT reintroduce a chrome override here. "Nothing unowned touched" is
   exactly what makes chrome B zero-risk. Blue chrome AS WELL AS standard
   chrome shape is a different and larger job — ask, don't assume.

   Full evidence, per-section surface map and contrast table:
   content-snapshots/poker-design-decode-2026-07-28.md
   ============================================================================ */

/* ── Design tokens ───────────────────────────────────────────────────────────
   Keyed on the BODY class so they reach every node in the /poker/ branch,
   including the landing and leaf contentPages, which render through the
   generic ContentPage.cshtml and emit no .sc-poker wrapper. Tokens only
   DECLARE — nothing here paints, so keeping them on the body class is safe
   under chrome B.

   PALETTE: SkyCity Poker Room rebrand. Sub-brand palette in the same category
   as the per-hotel sheets (CLAUDE §2 exempts those) — it must never leak into
   the global tokens in site.css.

   THREE surfaces, used with strict discipline (decode §1.3):
     --poker-shell   #10161F  the resting surface. Everything below the hero.
     --poker-panel   #0051FF  hero band + every card/panel. NEVER a body bg.
     --poker-inset   #0A0A0A  data rows INSIDE blue panels; primary pill fill.

   CONTRAST — measured, not assumed (decode §10):
     on SHELL #10161F      white 18.16:1 · .85 13.22:1 · .72 9.74:1 · .60 7.08:1
                           #0051FF 3.13:1  ✓ LARGE ONLY (rules/fills — never text)
                           #0A0A0A 1.09:1  ✗ INVISIBLE — see the accent note below
     on PANEL #0051FF      white  5.80:1 ✓ AA · .85 white 4.58:1 ✓ AA (no margin)
                           #0A0A0A 3.41:1 ✓ AA LARGE ONLY — never small body copy
     on INSET #0A0A0A      white 19.80:1 · .85 14.16:1 · .72 10.20:1

   ⚠ THE ACCENT FLIPPED WITH THE SURFACE (R11). The 24 Jul split of
   --poker-accent (fill/border/rule) from --poker-accent-text (small accent
   text) was correct and is KEPT — but the accent VALUE could not survive the
   inversion. Black was the accent because everything sat on blue; on the
   #10161F shell black measures 1.09:1 and simply disappears. The accent that
   reads on the shell is BLUE. Black survives only as an inset INSIDE a blue
   panel, which is what --poker-inset is for. Use the right one:
     --poker-accent       fills / borders / rules / active pills   (BLUE)
     --poker-accent-text  eyebrows, CTAs, timestamps, links        (WHITE —
                          differentiated by weight + letter-spacing, not hue)

   Gold stays retired from this section — not in the new palette.
   ───────────────────────────────────────────────────────────────────── */
.sc-hotel-brand--poker {
	/* Surfaces */
	--poker-shell: #10161F;
	--poker-panel: #0051FF;
	--poker-inset: #0A0A0A;

	/* Foregrounds — a SCALE, not one muted value (R5). The live design uses
	   four distinct levels and that is what makes the dark shell work. */
	--poker-on: var(--sc-white);
	--poker-muted: rgba(255, 255, 255, .85);      /* body copy      13.22:1 */
	--poker-muted-2: rgba(255, 255, 255, .72);    /* links / meta    9.74:1 */
	--poker-muted-3: rgba(255, 255, 255, .60);    /* footnotes       7.08:1 */

	/* LARGE TEXT ONLY on a blue panel — 3.41:1. Headings, numerals, wordmark.
	   NEVER body copy, never a 15px button label (that is AA failure #3). */
	--poker-on-panel: #0A0A0A;

	/* Accent — see the note above. Blue on the shell, NOT black. */
	--poker-accent: #0051FF;
	--poker-accent-text: var(--sc-white);

	/* Body-copy link colour, U7's own (added 2026-07-29, Phase 5).
	   ⚠ SHELL ONLY — 7.49:1 on #10161F, but just 2.39:1 on a #0051FF panel.
	   Used solely by `.sc-poker-rte` (the two bespoke templates, which only
	   render on the shell). Links on a blue band stay WHITE (5.80:1) via the
	   `.sc-blk--bg-*` rules — do not repoint those at this token. */
	--poker-link: #6AA8FF;

	/* Lines + lifts */
	--poker-line: rgba(255, 255, 255, .14);       /* live divider value (R3) */
	--poker-raised: rgba(255, 255, 255, .05);     /* subtle lift ON the shell */
	--poker-raised-hover: rgba(255, 255, 255, .09);

	/* Geometry (R9) — the ONLY rounded things in this design are the pills,
	   and they are 40px, not the 100px site pill. Cards are hard-edged. */
	--poker-radius-card: 0;
	--poker-radius-pill: 40px;
}

/* ── Surface — CONTENT AREA ONLY (chrome B) ──────────────────────────────
   _Layout renders `<main id="main-content">` as a DIRECT CHILD of <body>,
   with _Nav / _MobileDrawer / _Footer as siblings outside it — so `> main`
   paints exactly the page content and leaves every chrome surface standard.
   The child combinator also stops this hitting ContentPage's nested
   `<main class="sc-main-col">` in the side-nav branch.

   The .sc-poker rule covers PokerTournaments/PokerTournament, which emit
   that wrapper themselves.

   ⚠ _Layout:181 can put an INLINE background on this same <main> when a node
   sets the page-background field. An inline declaration outranks this rule by
   design — that is an editor opting out per node, not a bug. Do not fight it
   with !important.
   ───────────────────────────────────────────────────────────────────── */
body.sc-hotel-brand--poker > main,
.sc-hotel-brand--poker .sc-poker {
	background: var(--poker-shell);
	color: var(--poker-on);
}

/* Fallback page-header (no hero image) — re-skin the light default onto the
   shell so the section stays cohesive. */
.sc-hotel-brand--poker .sc-page-header {
	background: var(--poker-raised);
	border-bottom: 1px solid var(--poker-line);
}
.sc-hotel-brand--poker .sc-page-header__title { color: var(--poker-on); }

/* ── Rich text on the dark surface (RTE overrides — !important per CLAUDE §7) ──
   .sc-poker-rte is the poker templates' own class; .sc-rte is what the generic
   ContentPage.cshtml emits for bodyContent. BOTH are needed — a bare poker
   contentPage leaf with no Content Builder blocks renders through .sc-rte
   alone, and site.css colours that --sc-text (#333), which is illegible here. */
.sc-poker-rte,
.sc-poker-rte p,
.sc-poker-rte li,
.sc-poker-rte h2,
.sc-poker-rte h3,
.sc-poker-rte h4,
.sc-hotel-brand--poker .sc-rte,
.sc-hotel-brand--poker .sc-rte p,
.sc-hotel-brand--poker .sc-rte li,
.sc-hotel-brand--poker .sc-rte h2,
.sc-hotel-brand--poker .sc-rte h3,
.sc-hotel-brand--poker .sc-rte h4 { color: var(--poker-on) !important; }
.sc-poker-rte a,
.sc-hotel-brand--poker .sc-rte a:not(.sc-btn) { color: var(--poker-accent-text) !important; text-decoration: underline; text-underline-offset: 3px; }

.sc-poker-intro { padding-bottom: 0; }

/* ── When (date / time header) ─────────────────────────────────────────────── */
.sc-poker-when { margin: 0 0 1.75rem; }
.sc-poker-when__eyebrow {
	display: block;
	font-size: .6875rem;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--poker-accent-text);
	margin-bottom: .4rem;
}
.sc-poker-when__row { display: inline-flex; align-items: center; gap: .5rem; }
.sc-poker-when__icon { font-size: 1.35rem; color: var(--poker-accent-text); }
.sc-poker-when__v { font-size: 1.125rem; font-weight: 600; }

/* ── At-a-glance facts ─────────────────────────────────────────────────────── */
.sc-poker-facts {
	margin: 0 0 2rem;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1px;
	background: var(--poker-line);
	border: 1px solid var(--poker-line);
	border-radius: var(--poker-radius-card);
	overflow: hidden;
}
/* Rows are an INSET on the shell — the panel colour is reserved for real
   panels, and a blue fact grid would read as a card it is not. */
.sc-poker-facts__row {
	margin: 0;
	padding: 1rem 1.25rem;
	background: var(--poker-raised);
	display: flex;
	flex-direction: column;
	gap: .25rem;
}
.sc-poker-facts__label {
	font-size: .6875rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--poker-muted);
	margin: 0;
}
.sc-poker-facts__value { font-size: 1.0625rem; font-weight: 600; margin: 0; }

/* ── Structure-PDF button spacing ──────────────────────────────────────────── */
.sc-poker-pdf { margin: 0 0 2rem; }
.sc-poker-pdf .sc-btn { display: inline-flex; align-items: center; gap: .5rem; }
.sc-poker-pdf .material-symbols-outlined { font-size: 1.25rem; }

/* ── Registration note ─────────────────────────────────────────────────────── */
.sc-poker-note {
	display: flex;
	align-items: flex-start;
	gap: .75rem;
	margin: 0 0 2rem;
	padding: 1rem 1.25rem;
	background: var(--poker-raised);
	border-left: 3px solid var(--poker-accent);
	border-radius: 0;
}
.sc-poker-note__icon { font-size: 1.35rem; color: var(--poker-accent-text); flex-shrink: 0; }
.sc-poker-note__text { margin: 0; font-size: .9375rem; line-height: 1.6; color: var(--poker-muted); }

/* ── Tag block + chips (detail page) ───────────────────────────────────────── */
.sc-poker-tagblock { margin: 0; }
.sc-poker-tagblock__eyebrow {
	display: block;
	font-size: .6875rem;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--poker-accent-text);
	margin-bottom: .6rem;
}
.sc-poker-tags { display: flex; flex-wrap: wrap; gap: .5rem; }
.sc-poker-tag {
	display: inline-block;
	padding: .35rem .85rem;
	font-size: .8125rem;
	font-weight: 600;
	color: var(--poker-on);
	text-decoration: none;
	background: var(--poker-raised);
	border: 1px solid var(--poker-line);
	border-radius: var(--poker-radius-pill);
	transition: background .15s ease, border-color .15s ease, color .15s ease;
}
/* Active/hover fills with the BLUE accent + white label = 5.80:1. Under the
   old model this filled BLACK, which on the shell would now be 1.09:1. */
.sc-poker-tag:hover { background: var(--poker-accent); border-color: var(--poker-accent); color: var(--sc-white); }

/* ── Fixtures: filter chips ────────────────────────────────────────────────── */
.sc-poker-filter { padding: 1.5rem 0 0; }
.sc-poker-chiprow { display: flex; flex-wrap: wrap; gap: .5rem; }
.sc-poker-chip {
	display: inline-block;
	padding: .45rem 1rem;
	font-size: .8125rem;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--poker-on);
	text-decoration: none;
	background: var(--poker-raised);
	border: 1px solid var(--poker-line);
	border-radius: var(--poker-radius-pill);
	transition: background .15s ease, border-color .15s ease, color .15s ease;
}
.sc-poker-chip:hover { border-color: var(--poker-accent); color: var(--poker-accent-text); }
.sc-poker-chip.is-active { background: var(--poker-accent); border-color: var(--poker-accent); color: var(--sc-white); }

/* ── Fixtures: month heading ───────────────────────────────────────────────── */
/* DISPLAY TYPE — see the FONTS block at the tail of this file.
   ⚠ CORRECTED 2026-07-28: this rule previously set Montserrat + italic on a
   FALSE Phase 1 finding ("no Specter, Montserrat only"). The live U7 head sets
   `font-family: "zuume-edge" !important` on every h1–h4 inside #sc-poker-shell.
   Family is now inherited from the FONTS block; only the metrics live here. */
.sc-poker-month {
	font-size: clamp(1.5rem, 3vw, 2.25rem);
	font-weight: 700;
	letter-spacing: 0;
	line-height: .95;
	text-transform: uppercase;
	margin: 2.5rem 0 1.25rem;
	padding-bottom: .6rem;
	border-bottom: 2px solid var(--poker-accent);
}
.sc-poker-month:first-child { margin-top: 0; }

/* ── Card grid + stretched-link card (fixtures + landing tiles) ────────────── */
.sc-poker-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: 1.5rem;
}
/* Cards are OPAQUE BLUE PANELS on the shell (R1/R2) — the live design's
   defining move. Not a translucent lift over a blue body. */
.sc-poker-card {
	position: relative;                          /* positioning context for __stretch::after */
	display: flex;
	flex-direction: column;
	background: var(--poker-panel);
	border: 0;
	border-radius: var(--poker-radius-card);
	overflow: hidden;
	transition: transform .2s ease, box-shadow .2s ease;
}
.sc-poker-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 14px 30px rgba(0, 0, 0, .45);
}
/* Fixed-height crop (R8) — the live design crops card headers to a fixed
   pixel height, not an aspect ratio. */
.sc-poker-card__img-wrap { height: 300px; background: var(--poker-inset); overflow: hidden; }
.sc-poker-card__img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s ease; }
/* 🔴 `.sc-poker-card:hover .sc-poker-card__img { transform: scale(1.04) }`
   was DELETED 2026-08-07 (Adam) — image hover effects are removed site-wide.
   This one survived the 2026-07-03 pass only because poker.css is a brand
   sheet and no override block reached it. The card lift above is unaffected. */
.sc-poker-card__body { display: flex; flex-direction: column; gap: .55rem; padding: 1.25rem 1.35rem 1.4rem; }
/* WHITE on blue = 5.80:1. NOT #0A0A0A — that is 3.41:1 and this is 13px. */
.sc-poker-card__when {
	font-size: .8125rem;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--poker-on);
	margin: 0;
}
/* Card title is LARGE (20px bold) → --poker-on-panel is legitimate here at
   3.41:1. Display family comes from the FONTS block at the tail of this file
   (⚠ was Montserrat + italic on the false Phase 1 finding — corrected 28 Jul). */
.sc-poker-card__title {
	font-size: 1.25rem;
	font-weight: 700;
	line-height: 1.2;
	text-transform: uppercase;
	margin: 0;
	color: var(--poker-on-panel);
}
/* .85 white on blue = 4.58:1 — passes AA body, with little margin. Do not
   lower this opacity. */
.sc-poker-card__summary { margin: 0; font-size: .9375rem; line-height: 1.6; color: var(--poker-muted); }
.sc-poker-card__facts { display: flex; flex-wrap: wrap; gap: .35rem 1.25rem; margin: .15rem 0 0; }
.sc-poker-card__fact { margin: 0; display: flex; align-items: baseline; gap: .4rem; }
.sc-poker-card__fact dt {
	font-size: .6875rem;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--poker-muted);
}
.sc-poker-card__fact dd { margin: 0; font-size: .9375rem; font-weight: 600; color: var(--poker-on); }
.sc-poker-card__cta {
	margin-top: .5rem;
	display: inline-flex;
	align-items: center;
	gap: .35rem;
	font-size: .8125rem;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--poker-on);
	text-decoration: none;
}
.sc-poker-card__cta > .sc-poker-card__arrow { font-size: 1.05em; line-height: 1; }
/* Stretched link — the whole card face navigates (CLAUDE §4 stretched-link).
   NOTE: the ::after here is the click overlay ONLY — do not also give this link a
   decorative ::after (same pseudo-element), or the two rules collide. */
.sc-poker-card__stretch::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

/* ── Empty + R20 ───────────────────────────────────────────────────────────── */
.sc-poker-empty { color: var(--poker-muted); font-size: 1.0625rem; text-align: center; margin: 2rem 0; }
.sc-poker-r20 { padding-top: 0; }
.sc-poker-r20 p { margin: 0; font-size: .8125rem; color: var(--poker-muted-3); text-align: center; }

/* ── Terms & Conditions block on the dark surface (tcs.css light-text override) ── */
.sc-poker .sc-tcs,
.sc-hotel-brand--poker .sc-tcs { border-top-color: var(--poker-line); }
.sc-poker .sc-tcs__heading,
.sc-hotel-brand--poker .sc-tcs__heading { color: var(--poker-on); }
.sc-poker .sc-tcs__body,
.sc-hotel-brand--poker .sc-tcs__body { color: var(--poker-muted-3); }
.sc-poker .sc-tcs__body a,
.sc-hotel-brand--poker .sc-tcs__body a { color: var(--poker-accent-text); text-decoration: underline; }

/* ============================================================================
   APPENDED 2026-07-28 — blocks that did not exist before the correction.
   Kept at the tail so the diff stays reversible (parent-programme gotcha).
   ============================================================================ */

/* ── Content Builder bands on the poker branch ───────────────────────────────
   _ContentBlocks emits `.sc-blk--bg-{none|grey|dark|gold}` from the block's
   own background setting; hero.css resolves `dark` to --sc-plum and `gold` to
   --sc-gold. Repointing them HERE, scoped to the brand class, gives the
   per-section blue bands the decode's surface map calls for **without
   touching hero.css or adding a `blue` option to the Block Grid data type**
   (decode §11). Editors pick "Dark" and get the poker panel.
   `grey`/`gold` are re-pointed too so a light band can never strand dark text
   on a dark page. */
.sc-hotel-brand--poker .sc-blk--bg-dark,
.sc-hotel-brand--poker .sc-blk--bg-grey,
.sc-hotel-brand--poker .sc-blk--bg-gold {
	background: var(--poker-panel);
	color: var(--poker-on);
}
.sc-hotel-brand--poker .sc-blk--bg-dark .sc-blk-heading__title,
.sc-hotel-brand--poker .sc-blk--bg-grey .sc-blk-heading__title,
.sc-hotel-brand--poker .sc-blk--bg-gold .sc-blk-heading__title {
	color: var(--poker-on-panel);      /* display scale → 3.41:1 is in policy */
}
.sc-hotel-brand--poker .sc-blk--bg-dark .sc-blk-heading__eyebrow,
.sc-hotel-brand--poker .sc-blk--bg-dark .sc-blk-heading__sub,
.sc-hotel-brand--poker .sc-blk--bg-grey .sc-blk-heading__eyebrow,
.sc-hotel-brand--poker .sc-blk--bg-grey .sc-blk-heading__sub,
.sc-hotel-brand--poker .sc-blk--bg-gold .sc-blk-heading__eyebrow,
.sc-hotel-brand--poker .sc-blk--bg-gold .sc-blk-heading__sub {
	color: var(--poker-on);            /* small text on blue → WHITE, 5.80:1 */
}
/* hero.css sends dark-band RTE links to --sc-gold; gold is retired here. */
.sc-hotel-brand--poker .sc-blk--bg-dark .sc-rte a:not(.sc-btn),
.sc-hotel-brand--poker .sc-blk--bg-grey .sc-rte a:not(.sc-btn),
.sc-hotel-brand--poker .sc-blk--bg-gold .sc-rte a:not(.sc-btn) {
	color: var(--poker-accent-text);
	text-decoration: underline;
}

/* Block headings on the SHELL (no band) — the display heading is blue on the
   shell in the live design (3.13:1, large only). Display family comes from the
   FONTS block at the tail (⚠ was Montserrat + italic on the false Phase 1
   finding — corrected 28 Jul). */
.sc-hotel-brand--poker .sc-blk-heading__title {
	font-weight: 700;
	letter-spacing: 0;
	line-height: .95;
	text-transform: uppercase;
	color: var(--poker-accent);
}
.sc-hotel-brand--poker .sc-blk-heading__eyebrow { color: var(--poker-on); }
.sc-hotel-brand--poker .sc-blk-heading__sub { color: var(--poker-muted); }

/* Feature cards + page tiles land on the shell — give them the panel fill so
   they read as cards rather than floating text. */
.sc-hotel-brand--poker .sc-feature-card,
.sc-hotel-brand--poker .sc-page-tiles > * {
	background: var(--poker-panel);
	border-radius: var(--poker-radius-card);
	border: 0;
}
.sc-hotel-brand--poker .sc-feature-card__heading { color: var(--poker-on-panel); }
.sc-hotel-brand--poker .sc-feature-card__eyebrow,
.sc-hotel-brand--poker .sc-feature-card__summary,
.sc-hotel-brand--poker .sc-feature-card__cta { color: var(--poker-on); }

/* FAQ accordion on the shell */
/* ── FAQ — rebuilt for the new design (2026-08-20, spec 02a) ──────────────────
   🔴 THE OLD BLOCK HERE TARGETED CLASSES THAT DO NOT EXIST. It styled `.sc-faq__q` and
   `.sc-faq__a`; the partial emits `.sc-faq__question` and `.sc-faq__answer`. Three of its
   four rules could therefore never have matched anything, on any page, since the day they
   were written — and nobody noticed because `/casino/table-games/poker/` publishes **zero**
   FAQ items, so the block has no live referent either way.
   ✅ Adam's ruling 2026-08-20: FIX THE SELECTORS, DO NOT DELETE THE BLOCK — poker must be
   able to carry FAQs later, so it is brought up to the new design like the three hotels.

   ⚠️ HONESTY NOTE FOR WHOEVER VERIFIES THIS: it cannot be checked by looking at a page.
   There is no poker FAQ content to render. The only real check available is that these
   selectors exist and match in the live CSSOM under `.sc-hotel-brand--poker` — do that, and
   do not invent a visual test that cannot fail.

   Poker is a dark sub-brand, so it takes its own dark section rather than the base's cream.
   Contrast measured on this sheet's own surface:
     white  #FFFFFF on section #0D1219 ..... 18.79:1
     white  #FFFFFF on open panel #0A1F47 .. 16.16:1
     muted  #D3D4D6 on section ............. 12.67:1
   🔴 --poker-panel (#0051FF) is a FILL, never text: as a foreground on the dark shell it
   measures 3.13:1. That is this sheet's own documented rule (--poker-accent vs
   --poker-accent-text) and it is followed here — blue fills the open panel, white carries
   the words.
   🔴 Poker keeps its documented FONT exemption (Zuume Edge / Kaneda Gothic, CLAUDE.md §2).
   Nothing here reintroduces var(--sc-font-display); do not "fix" poker onto Specter. */
.sc-hotel-brand--poker .sc-faq { background: #0D1219; }
.sc-hotel-brand--poker .sc-faq__heading { color: var(--poker-on); }
.sc-hotel-brand--poker .sc-faq__item { border-top-color: var(--poker-line); }
/* Each :has() rule in its OWN block (CLAUDE.md §7) */
.sc-hotel-brand--poker .sc-faq__item:has(.sc-faq__question[aria-expanded="true"]) { background: #0A1F47; }
.sc-hotel-brand--poker .sc-faq__item:hover { background: #0C1830; }
.sc-hotel-brand--poker .sc-faq__item:has(.sc-faq__question[aria-expanded="true"]):hover { background: #0A1F47; }
.sc-hotel-brand--poker .sc-faq__question { color: var(--poker-on); }
.sc-hotel-brand--poker .sc-faq__question:focus-visible { outline-color: var(--poker-panel); }
.sc-hotel-brand--poker .sc-faq__icon { background: #2A2E35; color: var(--poker-on); }
.sc-hotel-brand--poker .sc-faq__question[aria-expanded="true"] .sc-faq__icon { background: var(--poker-panel); color: var(--poker-on); }
.sc-hotel-brand--poker .sc-faq__answer { color: #D3D4D6; }
.sc-hotel-brand--poker .sc-faq__answer a { color: var(--poker-on); }

/* Side nav (poker leaves with showInNav) */
.sc-hotel-brand--poker .sc-sidenav a { color: var(--poker-muted-2); }
.sc-hotel-brand--poker .sc-sidenav a:hover,
.sc-hotel-brand--poker .sc-sidenav .is-active > a { color: var(--poker-on); }

/* ── RTE CONTENT TABLES on the poker surfaces ────────────────────────────────
   Phase 4 authors the cash-game rake card as a FOUR-COLUMN RTE content table
   (Adam, 2026-07-28 — a deliberate deviation from the live design's
   two-column flex rows, which pre-concatenate all four data points into one
   string and cannot survive a Tiptap save anyway).

   🔴 SCOPING — read CLAUDE §7 before touching this block.
   site.css styles content tables as `table:not([class])` and NOTHING ELSE, so
   that a template-built table (which always carries a class, e.g.
   .sc-pt-table) can never be caught. That scope was won the hard way: an
   unscoped 8 Jul block leaked into the Sky Tower price cards on 13 Jul, and
   the 16 Jul header fix punched back through the patch. EVERY rule below
   keeps `table:not([class])` AND adds the brand class, so it is doubly
   scoped — it cannot reach another section, let alone another site.

   TIPTAP CONSTRAINTS — all five verified against the live site.css blocks:
     1. No <thead>. The header row is `> tbody > tr:first-child > th`.
        A `thead th` rule silently no-ops. Both are matched below.
     2. That header row sits in <tbody>, consuming a zebra slot and shifting
        nth-child parity — site.css re-shifts it with :has() rules, which are
        higher-specificity than the base zebra. Overridden here at the same
        shape so the parity stays correct on the dark surface.
     3. <colgroup> inline widths are injected by the column resizer.
        site.css already neutralises them with author-!important; nothing owed
        here, and nothing below fights it.
     4. <small> is stripped — a second <p> in a cell is the sub-line.
        site.css styles `th > p ~ p`; only its colour needs restating.
     5. Author tables the way Tiptap stores them (no <thead>, a <p> per cell).

   ⚠ :has() SELECTORS ARE ISOLATED in their own blocks — never grouped with a
   plain selector, or an engine that cannot parse :has() drops the whole
   comma group (CLAUDE §7). */

/* Base — the table sits ON the shell, not on white. */
.sc-hotel-brand--poker table:not([class]) {
	color: var(--poker-muted);
	background: transparent;
}
.sc-hotel-brand--poker table:not([class]) th,
.sc-hotel-brand--poker table:not([class]) td {
	border-color: var(--poker-line);
}

/* Header row — <thead> (hand-authored) OR the first tbody row of <th>
   (Tiptap). All three selectors are plain, so grouping them is safe.
   Blue panel + WHITE label = 5.80:1. site.css sends this to plum text on a
   cream tint with a gold underline — all three are wrong here. */
.sc-hotel-brand--poker table:not([class]) > thead > tr > th,
.sc-hotel-brand--poker table:not([class]) > thead > tr > td,
.sc-hotel-brand--poker table:not([class]) > tbody > tr:first-child > th {
	background: var(--poker-panel);
	color: var(--poker-on);
	border-bottom: 2px solid var(--poker-accent);
}
/* Header sub-line (constraint 4) — inherits the header colour; only the
   opacity carries the de-emphasis, so it stays legible on blue. */
.sc-hotel-brand--poker table:not([class]) th > p ~ p { color: var(--poker-on); }

/* Zebra — default parity (no Tiptap header row present). */
.sc-hotel-brand--poker table:not([class]) > tbody > tr:nth-child(even) > td {
	background: var(--poker-raised);
}

/* Zebra parity shift (constraint 2) — mirrors site.css's :has() pair so the
   stripe does not land against the header tint. ISOLATED, one per block. */
.sc-hotel-brand--poker table:not([class]):has(> tbody > tr:first-child > th) > tbody > tr:nth-child(even) > td {
	background: transparent;
}
.sc-hotel-brand--poker table:not([class]):has(> tbody > tr:first-child > th) > tbody > tr:nth-child(odd) > td {
	background: var(--poker-raised);
}

/* Row hover — !important is required to beat site.css's own !important hover
   rule. Safe ONLY because this selector is doubly scoped (brand class +
   :not([class])); an unscoped !important here is what defeated skytower.css's
   insulation block on 16 Jul. */
@media (hover: hover) {
	.sc-hotel-brand--poker table:not([class]) > tbody > tr:hover > td {
		background: var(--poker-raised-hover) !important;
	}
}

/* ── Responsive ────────────────────────────────────────────────────────────── */
@media (max-width: 640px) {
	.sc-poker-facts { grid-template-columns: 1fr; }
	.sc-poker-grid { grid-template-columns: 1fr; }
}

/* ============================================================================
   APPENDED 2026-07-28 — tasks/_done/poker-06-landing-polish.md
   Fonts (CORRECTION), logo aspect, page-header suppression, compact footer.
   ============================================================================ */

/* ── FONTS — 🔴 CORRECTS A FALSE FINDING ─────────────────────────────────────
   Phase 1 (poker-02-design-decode) reported "no Specter anywhere; Montserrat
   is the only font-family declared; display type is bold + italic". **That was
   wrong**, and it propagated into this sheet, the decode document and
   CLAUDE §2. All three corrected 2026-07-28.

   HOW THE ERROR HAPPENED — worth keeping, it is repeatable:
   the redesigned U7 blocks declare NO font-family on their inline styles; they
   inherit from a <style> block in the page HEAD, which Phase 1 never read:

       #sc-poker-shell h1, #sc-poker-shell h2,
       #sc-poker-shell h3, #sc-poker-shell h4 { font-family:"zuume-edge"    !important; }
       #sc-poker-shell [style*="uppercase"]   { font-family:"kaneda-gothic" !important; }

   Inline styles inheriting a family look identical to inline styles with no
   typography at all. **Read the <head> before declaring a type system.**

   TWO FACES:
     zuume-edge     → display headings (U7: every h1–h4 inside the shell)
     kaneda-gothic  → the uppercase eyebrows / kickers / micro-labels
   Both ship in Adobe kit **bsg2bme**, already loaded site-wide by
   _Layout.cshtml:111 — no new request, no second kit, no _Layout change.
   (The spec said _SeoHead; the link is actually in _Layout. Same kit.)

   ✅ Both families carry REAL italics in the kit (400/700, normal + italic),
   so `font-style: italic` renders a true italic, not a synthesised oblique.
   U7 keeps `font-style: italic` on its inline heading styles and its head rule
   overrides only the FAMILY — so the live U7 face is *italic Zuume Edge*. That
   is preserved here: the family changed, the italic axis did not.

   ⚠ BODY COPY STAYS MONTSERRAT. U7 sets `body { font-family:"Montserrat" }`
   and these rules deliberately target headings/eyebrows only — never `.sc-rte`.
   ───────────────────────────────────────────────────────────────────── */
.sc-hotel-brand--poker .sc-blk-heading__title,
.sc-hotel-brand--poker .sc-feature-card__heading,
.sc-hotel-brand--poker .sc-page-header__title,
.sc-hotel-brand--poker .sc-hero__title,
.sc-hotel-brand--poker .sc-rte h2,
.sc-hotel-brand--poker .sc-rte h3,
.sc-hotel-brand--poker .sc-rte h4,
.sc-poker .sc-poker-month,
.sc-poker .sc-poker-card__title {
	font-family: "zuume-edge", var(--sc-font);
	font-style: italic;
	font-weight: 700;
	letter-spacing: 0;
	line-height: .95;
}

/* Uppercase eyebrows / kickers / micro-labels — Kaneda Gothic.
   U7 targets `[style*="uppercase"]`; U17 gives them real classes. */
.sc-hotel-brand--poker .sc-blk-heading__eyebrow,
.sc-hotel-brand--poker .sc-feature-card__eyebrow,
.sc-hotel-brand--poker .sc-feature-card__cta,
.sc-poker .sc-poker-when__eyebrow,
.sc-poker .sc-poker-tagblock__eyebrow,
.sc-poker .sc-poker-facts__label,
.sc-poker .sc-poker-card__when,
.sc-poker .sc-poker-card__cta,
.sc-poker .sc-poker-chip {
	font-family: "kaneda-gothic", var(--sc-font);
	text-transform: uppercase;
}

/* ── LOGO / MARK — undo hero.css's 4:3 photo crop ────────────────────────────
   hero.css:143 forces `aspect-ratio: 4/3; object-fit: cover` on ANY image
   block sitting inside a row column, to keep card grids on a common baseline.
   Correct for a photograph, destructive for a wide lockup — it cropped the
   POKER ROOM wordmark down to a giant "P" and the roundel. The floor map
   escapes only because it is a TOP-LEVEL image block, so the rule never
   reaches it.

   ⚠ hero.css is the SHARED Block Grid sheet used by every Content Builder
   template on every site — it must not be edited. Overridden here instead.

   TARGETING TRADE-OFF (the honest part): the <img> carries no class that
   distinguishes a logo from a photo — both are `.sc-blk-image__img`. Options
   weighed:
     (a) filename match `[src*="logo"]`  — precise, but breaks SILENTLY the
         moment anyone renames the asset, and catches nothing else.
     (b) structural (nth-child / first image in the hero row) — survives a
         rename but breaks on any layout change, and layout is still moving.
     (c) **file-type match `[src$=".png"]` — CHOSEN.** In the Poker media
         folder the split is exact and semantic: every mark is a PNG (the
         lockup + the four suit glyphs), every photograph is a JPEG. It
         therefore encodes "mark, not photo" rather than one filename, survives
         renames AND layout changes, and covers future marks for free.
     Residual risk, stated: a PNG *photograph* dropped into a poker row column
     would keep its natural ratio instead of being cropped. That failure is
     benign (an uncropped photo) where the current failure is destructive (a
     ruined logo), so the asymmetry is deliberate.

   📌 For Adam: the lockup is brand furniture, not content. Every option here
   works around a photo-shaped block holding a logo — a dedicated logo/brand
   block would remove the problem rather than route around it. */
.sc-hotel-brand--poker .sc-blk-row .sc-blk-col .sc-blk-image__img[src$=".png"] {
	aspect-ratio: auto;
	object-fit: contain;
	width: 100%;
	height: auto;
}

/* ── PAGE HEADER — deliberately NO override here ─────────────────────────────
   An earlier draft of this pass visually-hid `.sc-page-header`, on the
   assumption that clearing `heroImage` would drop the landing onto the
   page-header fallback. **It does not.** ContentPage's hero chain
   (`:36–57`) walks ancestors-or-self testing, in order:
       1. useColourHeader  → solid colour band, BREAK
       2. heroImage        → photo hero,        BREAK
       3. listingImage     → photo hero,        BREAK
   With `heroImage` cleared the landing fell straight through to its own
   `listingImage` and rendered a *different* photo — the page-header branch was
   never reached. Solved on the CONTENT side instead (`useColourHeader` +
   `headerColour: #0051FF`), which short-circuits at step 1 and downloads no
   image at all.

   The hide rule was therefore removed rather than left in: `.sc-page-header`
   now only renders on a poker page that has no colour header, no hero image
   and no listing image — and on such a page it carries the ONLY <h1>. Hiding
   it there would be a real accessibility regression for zero benefit.
   The re-skin rule further up this file (background + border) still applies. */

/* ── COMPACT FOOTER (Adam's brief, 2026-07-28) ───────────────────────────────
   Deliberately NOT a copy of U7's: no R20 / Game Responsibly line (already
   persistent in the site footer — duplicating a compliance statement invites
   the two drifting apart) and no address block. Play links only, laid out
   inline rather than as a vertical list.

   Authored as a single rich-text block so editors manage the links as content;
   this rule only handles the layout. The hook is the block's own **anchorId**
   setting (`poker-footer`), which _ContentBlocks:61 emits as `id=` on the
   wrapper — an existing mechanism, so no new block type and no class invented. */
.sc-hotel-brand--poker #poker-footer,
.sc-hotel-brand--poker .sc-poker-footer {
	border-top: 1px solid var(--poker-line);
	padding-top: 1.25rem;
}
.sc-hotel-brand--poker #poker-footer p,
.sc-hotel-brand--poker .sc-poker-footer p {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .5rem 1.75rem;
	margin: 0;
	font-size: .9375rem;
}
.sc-hotel-brand--poker #poker-footer a,
.sc-hotel-brand--poker .sc-poker-footer a {
	color: var(--poker-muted-2) !important;
	text-decoration: none !important;
	font-family: "kaneda-gothic", var(--sc-font);
	text-transform: uppercase;
	letter-spacing: .08em;
	font-size: .8125rem;
	font-weight: 700;
}
.sc-hotel-brand--poker #poker-footer a:hover,
.sc-hotel-brand--poker .sc-poker-footer a:hover,
.sc-hotel-brand--poker #poker-footer a:focus-visible,
.sc-hotel-brand--poker .sc-poker-footer a:focus-visible {
	color: var(--poker-on) !important;
	text-decoration: underline !important;
	text-underline-offset: 4px;
}

/* ============================================================================
   APPENDED 2026-07-28 (b) — TYPE SCALE, read off the live U7 page.
   ============================================================================
   The FONTS block above swapped the FAMILIES but set no `font-size` anywhere,
   so every size was still the one site.css/hero.css calibrated for Montserrat.
   Zuume Edge is condensed and Kaneda Gothic is narrower than Montserrat — at
   identical pixel sizes both read materially smaller, which is why the section
   looked undersized the moment the font correction landed.

   🔴 THESE ARE THE LIVE U7 VALUES, read off the rendered elements — not derived,
   not eyeballed. Taken 2026-07-28 from the "RUNNING DAILY / CASH GAMES" block:

     eyebrow   font-size: clamp(16px, 4vw, 46px); letter-spacing:.08em;
               line-height:1; font-weight:bold; margin-bottom:8px
     heading   font-size: clamp(38px,10vw,124px); font-style:italic;
               font-weight:bold; letter-spacing:0; line-height:.95; margin:0 0 14px
     body      inherits 17px / 1.65 from #sc-poker-shell; max-width:640px
     footnote  font-size:14px

   The vw components transplant directly — both are viewport-relative, and U7's
   inner max-width (1200px) is close to U17's --sc-max-width (1400px).

   ⚠ NOT every heading takes the display scale. U7's oversized pair is the
   SECTION kicker + title only. Card titles, RTE sub-headings and card eyebrows
   are separate, smaller steps — at 124px/46px they would blow the page apart
   (the card eyebrow would be larger than the card title). Each step below is
   its own rule for that reason: DO NOT merge them into one selector list.

   📌 Phase 5 restyles PokerTournaments/PokerTournament against these same two
   faces and should INHERIT this scale, not re-derive one. Taking it from source
   rather than tuning by eye is precisely what makes that possible.
   ------------------------------------------------------------------------- */

/* Section kicker — the large Kaneda label above a display heading. */
.sc-hotel-brand--poker .sc-blk-heading__eyebrow {
	font-size: clamp(16px, 4vw, 46px);
	letter-spacing: .08em;
	line-height: 1;
	font-weight: 700;
	margin-bottom: .5rem;
}

/* Section display heading — the defining element of the design.
   The fixtures <h1> was added to this rule on 2026-07-29 (Phase 5): it is the
   display heading of that page, so it takes the step from here rather than
   declaring a second copy of the same clamp. */
.sc-hotel-brand--poker .sc-blk-heading__title,
.sc-poker .sc-page-header__title {
	font-size: clamp(38px, 10vw, 124px);
	margin: 0 0 14px;
}

/* Section standfirst — body size, not a heading size (U7 declares none on it,
   so it inherits the 17px shell value). */
.sc-hotel-brand--poker .sc-blk-heading__sub {
	font-size: 1.0625rem;
	line-height: 1.65;
	max-width: 640px;
}

/* RTE headings — a step DOWN from the section scale. `.sc-rte h2` is a
   rich-text block heading ("Carded Play & SkyCare"); `.sc-rte h3` is a panel
   title ("Texas Hold'em" above a rake table) and must stay small enough to sit
   inside a blue card. */
.sc-hotel-brand--poker .sc-rte h2 { margin: 0 0 .5rem; }   /* size: the ONE shared h2-step rule, Phase 5 block at the tail */
.sc-hotel-brand--poker .sc-rte h3 { font-size: clamp(22px, 2.5vw, 30px); margin: 0 0 .75rem; }
.sc-hotel-brand--poker .sc-rte h4 { font-size: clamp(18px, 2vw, 22px); }

/* Feature cards — their own step. The card eyebrow is a micro-label, NOT the
   section kicker. */
.sc-hotel-brand--poker .sc-feature-card__heading { font-size: clamp(20px, 2vw, 26px); line-height: 1.05; }
.sc-hotel-brand--poker .sc-feature-card__eyebrow,
.sc-hotel-brand--poker .sc-feature-card__cta { font-size: .875rem; letter-spacing: .1em; }

/* Compact footer — Kaneda at 13px was too small to read as a nav row.
   Overrides the .8125rem set in the footer block above. */
.sc-hotel-brand--poker #poker-footer a,
.sc-hotel-brand--poker .sc-poker-footer a { font-size: .9375rem; }

/* ============================================================================
   APPENDED 2026-07-28 (c) — RAKE / DATA TABLES restyled to the U7 look.
   ============================================================================
   Reference: the live U7 "CASH GAMES" panels. A blue card, a black Zuume title,
   then black data rows floating on the blue with gaps between them — no grid
   lines, no zebra, no white table.

   🔴 STRUCTURE IS DELIBERATELY *NOT* MATCHED — only the aesthetic is.
   U7 has NO header row: each row is two cells, with the labels concatenated
   into the right-hand string ("Buy-in $100–$400 · Rake 10% cap $15 · Jackpot
   $1"), repeated in every row. U17 authors a FOUR-COLUMN table with a header
   (Adam, 2026-07-28 — the programme's first recorded deviation). That stands:
   the header names each column ONCE instead of three times per row, and it is
   what makes the cells announce as "Buy-in: $100–$400" to a screen reader.
   Matching U7 literally would mean re-authoring content and reversing a logged
   decision — do not do it without Adam.

   ⚠ SCOPING — every rule keeps `table:not([class])` AND the brand class, so it
   is doubly scoped and cannot reach a template-built table (.sc-pt-table etc.)
   or another section. See CLAUDE §7 — an unscoped table rule leaked into the
   Sky Tower price cards twice.

   ⚠ These rules OVERRIDE the earlier table block in this file (blue header +
   zebra on the shell). The `:has()` parity rules there are higher-specificity
   than a plain selector, so the zebra kills below deliberately MIRROR their
   `:has()` shape rather than relying on source order. Each `:has()` stays in
   its OWN block — never grouped with a plain selector (CLAUDE §7).
   ------------------------------------------------------------------------- */

/* The panel. `.sc-rte` wraps the h3 + table together, so it is the card. */
.sc-hotel-brand--poker .sc-rte:has(> table:not([class])) {
	background: var(--poker-panel);
	padding: clamp(1.5rem, 3vw, 2.5rem);
}

/* Panel title — BLACK on blue. Legitimate at this size: --poker-on-panel is
   3.41:1, which is AA for large text and this is ~24px+ (see the token note). */
.sc-hotel-brand--poker .sc-rte:has(> table:not([class])) > h3 {
	color: var(--poker-on-panel) !important;
	text-transform: uppercase;
	margin: 0 0 1.25rem;
}

/* Rows float as separate blocks — `border-spacing` is what creates the gaps,
   so `border-collapse` MUST be `separate` (the browser default is collapse,
   under which border-spacing is ignored entirely). */
.sc-hotel-brand--poker table:not([class]) {
	width: 100%;
	background: transparent;
	border-collapse: separate;
	border-spacing: 0 10px;
}

/* Data cells — black blocks, no rules. */
.sc-hotel-brand--poker table:not([class]) > tbody > tr > td {
	background: var(--poker-inset);
	border: 0;
	padding: 1rem 1.35rem;
	vertical-align: middle;
}
/* First cell = the stake. Bold white, 19.80:1 on the inset. */
.sc-hotel-brand--poker table:not([class]) > tbody > tr > td:first-child {
	color: var(--poker-on);
	font-weight: 700;
	white-space: nowrap;
}
/* Remaining cells = the detail, right-aligned as U7 does. 14.16:1. */
.sc-hotel-brand--poker table:not([class]) > tbody > tr > td:not(:first-child) {
	color: var(--poker-muted);
	text-align: right;
}

/* Header row — kept (see the note above) but reduced to a quiet label strip on
   the blue, not the filled bar the earlier block gives it.
   WHITE, not --poker-on-panel: this is ~12px, and black on blue is 3.41:1 =
   large-text-only. Small text on a panel must be white (5.80:1). */
.sc-hotel-brand--poker table:not([class]) > thead > tr > th,
.sc-hotel-brand--poker table:not([class]) > tbody > tr:first-child > th {
	background: transparent;
	border: 0;
	color: var(--poker-on);
	font-family: "kaneda-gothic", var(--sc-font);
	font-size: .75rem;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	padding: 0 1.35rem .35rem;
	text-align: left;
}
.sc-hotel-brand--poker table:not([class]) > thead > tr > th:not(:first-child),
.sc-hotel-brand--poker table:not([class]) > tbody > tr:first-child > th:not(:first-child) {
	text-align: right;
}

/* Kill the zebra — rows are uniform black in this design. Mirrors the earlier
   block's `:has()` shape so specificity matches; ISOLATED, one per block. */
.sc-hotel-brand--poker table:not([class]):has(> tbody > tr:first-child > th) > tbody > tr:nth-child(even) > td {
	background: var(--poker-inset);
}
.sc-hotel-brand--poker table:not([class]):has(> tbody > tr:first-child > th) > tbody > tr:nth-child(odd) > td {
	background: var(--poker-inset);
}

/* Hover — !important only to beat site.css's own !important hover rule. Safe
   ONLY because this selector is doubly scoped. */
@media (hover: hover) {
	.sc-hotel-brand--poker table:not([class]) > tbody > tr:hover > td {
		background: var(--poker-raised-hover) !important;
	}
}

/* Mobile — the right-aligned detail column needs to stop fighting the stake
   for width before it wraps mid-string. */
@media (max-width: 560px) {
	.sc-hotel-brand--poker table:not([class]) > tbody > tr > td { padding: .75rem 1rem; }
	.sc-hotel-brand--poker table:not([class]) > tbody > tr > td:not(:first-child) { font-size: .875rem; }
}

/* ============================================================================
   APPENDED 2026-07-28 (d) — LONE HERO TITLE: hide visually, keep semantically.
   ============================================================================
   The landing renders a colour-header hero carrying nothing but an <h1>:

       <div class="sc-hero__inner">
           <h1 class="sc-hero__title" style="color:#FFFFFF;">SkyCity Poker Room</h1>
       </div>

   On screen that duplicates the POKER ROOM lockup immediately below it, and
   the hero band's own min-height opens a large empty gap above the lockup.

   🔴 NOT `display:none`. That removes the h1 from the accessibility tree and
   search engines discount it — which would undo the exact reason the <h1> was
   added in poker-06 (the page previously had none at all). Visually-hidden
   keeps it for screen readers and crawlers while the lockup carries the visual.
   The lockup <img> can therefore stay alt="" as decoration: the h1 holds the
   text, and duplicating it in alt would make a screen reader announce it twice.

   ⚠ `:only-child` IS THE SAFETY. It fires ONLY where the title is the sole
   thing in the hero — i.e. the landing. A hero that also carries an eyebrow,
   subtitle or CTA buttons (Royal Jackpot, any bare poker leaf) is untouched and
   keeps its visible heading. Without this guard the rule would hide the ONLY
   heading on every other poker page, which is a real accessibility regression
   for zero benefit — the same reasoning that made poker-06 decline to hide
   `.sc-page-header` outright.
   ------------------------------------------------------------------------- */
.sc-hotel-brand--poker .sc-hero__inner > .sc-hero__title:only-child {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

/* Collapse the now-empty hero band so the blue starts at the lockup, as U7
   does. Same `:only-child` guard, so a hero with real content keeps its height.

   ⚠ The descendant combinator is deliberate: the intermediate `.sc-hero__content`
   wrapper is inferred from the image-hero markup, and the colour-header variant
   may nest differently. A descendant match survives either. If the gap persists
   after pasting, the band is NOT `.sc-hero` — grab the section's classes and
   retarget rather than adding !important.

   No visible seam results: the block immediately below is a blue band, so the
   colour is continuous where the header used to be. */
.sc-hotel-brand--poker .sc-hero:has(.sc-hero__inner > .sc-hero__title:only-child) {
	min-height: 0;
	height: auto;
	padding-top: 0;
	padding-bottom: 0;
}

/* ⚠ THE RULE ABOVE IS NOT ENOUGH ON ITS OWN, AND IT SAID SO — this is the retarget it
   asked for (2026-09-15). Zeroing the SECTION leaves `.sc-hero__content`, an inner
   wrapper carrying its own 48px top / 56px bottom, so the band still measured 104px.
   Measured on `internal`: .sc-hero min-height 0 and padding 0, .sc-hero__inner 0 (the
   title is position:absolute) — the whole 104px was this one element.
   It is 104px of DEAD BLUE between the breadcrumb and the lockup, and it reads as a
   missing page title, which is how it was reported (backlog/bug-poker-landing-hero-
   title-collapses.md). The h1 being 1×1 is the block above working as designed.
   🔴 TWO PAGES, not one: the landing AND /royal-jackpot/ both serve a lone-title hero.
   Royal Jackpot's visible "ROYAL JACKPOT" is an h2 content-block heading, not its h1.
   Same `:only-child` guard, so a hero with an eyebrow, subtitle or CTAs keeps its
   padding. ISOLATED :has() block — never grouped with a plain selector (CLAUDE §7). */
.sc-hotel-brand--poker .sc-hero:has(.sc-hero__inner > .sc-hero__title:only-child) .sc-hero__content {
	padding-top: 0;
	padding-bottom: 0;
}

/* ============================================================================
   APPENDED 2026-07-28 (e) — Adam's review pass: header + footer sizes, buttons.
   ============================================================================ */

/* Table header labels — 12px was too quiet against 15px data rows. Matched to
   the data size; Kaneda uppercase + letter-spacing keeps it reading as a label
   strip rather than another data row. */
.sc-hotel-brand--poker table:not([class]) > thead > tr > th,
.sc-hotel-brand--poker table:not([class]) > tbody > tr:first-child > th {
	font-size: .9375rem;
	padding-bottom: .5rem;
}

/* Compact footer links — another step up (was .9375rem). */
.sc-hotel-brand--poker #poker-footer a,
.sc-hotel-brand--poker .sc-poker-footer a { font-size: 1rem; }

/* ── BUTTONS — the poker pill pair ──────────────────────────────────────
   The programme's brand table specifies a BLACK pill primary with a white label
   and a white-outline secondary — U7's actual pair. U17 was rendering site.css's
   gold primary and plum outline, which is why the CTAs looked foreign.

   This has been an open flag since Phase 1 and was declined twice as "not a
   STOP": gold fill measures 3.01:1 against a blue panel — a pass by 0.01, which
   is a rounding error, not a margin — and the plum outline is 2.75:1 and fails
   outright. Adam called the primary on 2026-07-28; the secondary is included
   because a black primary beside a plum outline reads as half-finished, and the
   two are one component.

   🔴 THIS DOES NOT TOUCH THE GLOBAL GOLD EXCEPTION. CLAUDE §2's documented
   WCAG carve-out (gold fill + white label, 1.93:1, signed off by Adam as brand
   owner) is a SITE-WIDE rule and is unchanged. This is a sub-brand override in
   the same category as the per-hotel palettes §2 already exempts — gold is
   retired from the poker section, so the exception simply never arises here.

   Contrast, measured: white on #0A0A0A = 19.80:1. The pill's own edge against
   a blue panel is 3.41:1, which is a non-text boundary, not a text pair.
   ------------------------------------------------------------------------- */
.sc-hotel-brand--poker .sc-btn--gold {
	background: var(--poker-inset);
	border-color: var(--poker-inset);
	color: var(--sc-white);
}
.sc-hotel-brand--poker .sc-btn--gold:hover,
.sc-hotel-brand--poker .sc-btn--gold:focus-visible {
	background: #232D3A;                 /* U7's own hover on the black pill */
	border-color: #232D3A;
	color: var(--sc-white);
}

/* Secondary — white outline, white label, transparent fill. */
.sc-hotel-brand--poker .sc-btn--outline {
	background: transparent;
	border-color: var(--sc-white);
	color: var(--sc-white);
}
.sc-hotel-brand--poker .sc-btn--outline:hover,
.sc-hotel-brand--poker .sc-btn--outline:focus-visible {
	background: rgba(255, 255, 255, .14);
	border-color: var(--sc-white);
	color: var(--sc-white);
}

/* ============================================================================
   APPENDED 2026-07-29 — tasks/poker-07-tournament-templates.md (Phase 5)
   The two BESPOKE templates: PokerTournaments (fixtures) + PokerTournament.
   ============================================================================
   Everything below maps the LIVE U7 head CSS onto U17's DOM. The U7 rules were
   re-pulled from https://poker.skycity.co.nz/skycity-poker/tournaments/fixtures/
   on 2026-07-29 and are byte-identical to the Phase 0 capture, so the design
   has not moved (spec STOP #5 does not fire).

   🔴 VALUES ARE MAPPED, SELECTORS ARE NOT. U7 targets `.main .tournament`,
   `.main .tags.dates`, `.main .day .date`, `.u-more`, `.main .right-col:has(
   .main-content)` — a completely different DOM. Copying those selectors would
   match nothing here.

   🔴 THE TYPE SCALE IS INHERITED, NOT RE-DERIVED (spec decision #3). Not one
   heading or kicker font-size is invented below. The two display steps are
   taken by ADDING this section's classes to the existing APPENDED (b) rules,
   so there is literally one declaration per step and they cannot drift:
     · fixtures <h1>   → the section display step  clamp(38px, 10vw, 124px)
     · fixtures kicker → the section kicker step   clamp(16px, 4vw, 46px)
                         (reuses the .sc-blk-heading__eyebrow CLASS outright)
     · month heading   → the .sc-rte h2 step       clamp(28px, 4vw, 44px)
   The only explicit sizes here are COMPONENT values read off U7 — pill 14px,
   date 22px/14px, .u-more 14px — which are not type-scale steps.

   CONTRAST — every pair introduced, measured:
     white         on blue #0051FF   5.80:1  ✓ AA
     #0A0A0A       on blue #0051FF   3.41:1  ✓ AA large only — card <h3> only
     white         on inset #0A0A0A 19.80:1  ✓ AAA  (.u-more pill)
     white         on shell #10161F 18.16:1  ✓ AAA
     rgba(255….6)  on shell #10161F  7.08:1  ✓ AAA  (date ddd/mmm)
     #6AA8FF       on shell #10161F  7.49:1  ✓ AAA  (detail body links)
   ⚠ #6AA8FF measures only 2.39:1 on a BLUE panel and must never be used there —
   which is why the link rule below is scoped to .sc-poker-rte (the two bespoke
   templates' own class, which only ever renders on the shell) and the existing
   blue-band link rules further up this file, which stay WHITE, are untouched.
   ------------------------------------------------------------------------- */

/* ── FIXTURES: the hero band ─────────────────────────────────────────────────
   `pokerTournaments` composes only seoMeta + rawHtmlFields — there is no
   `headerStyle`, so the landing's `useColourHeader` trick is not available and
   the blue band has to come from CSS. `.sc-page-header` is the branch the
   template already renders when no hero image is set.

   ⚠ SCOPED `.sc-poker .sc-page-header` ON PURPOSE. `.sc-poker` is emitted by
   these two bespoke templates and by nothing else, so a poker contentPage leaf
   falling through to its own page-header keeps the existing subtle-lift
   treatment further up this file. Do not widen this to the brand class. */
.sc-poker .sc-page-header {
	background: var(--poker-panel);
	border-bottom: 0;
	padding: clamp(2.5rem, 6vw, 5rem) 0 clamp(2rem, 4vw, 3.25rem);
}
.sc-poker .sc-page-header__title { color: var(--poker-on-panel); }

/* The kicker above the title reuses .sc-blk-heading__eyebrow outright, so it
   inherits Kaneda + the section kicker step + the band colour rules already
   defined for a blue band. Only the margin is this section's business. */
.sc-poker .sc-page-header .sc-blk-heading__eyebrow {
	display: block;
	color: var(--poker-on);
}

/* ── FIXTURES: filter pills — U7's ghost pill ────────────────────────────────
   U7 ships TWO controls: `.tags.dates` ghost pills (Today / This Week / This
   Month) and a `.select-wrapper` dropdown styled to match, which is the TAG
   filter and holds exactly ONE option, "ALL TOURNAMENTS" — it is live but
   unpopulated (Phase 0 §2.4).

   U17 inverts that: there is no date filter, and the pills ARE the tag filter,
   with "All Tournaments" as the first pill. So one pill row does both jobs and
   NO dropdown is built — inventing a second control to mirror a U7 element
   that renders one dead option would be copying the markup, not the design.
   The ghost-pill VALUES transplant exactly. */
.sc-poker-filter { padding: clamp(1.75rem, 4vw, 2.75rem) 0 0; }
.sc-poker-chiprow { gap: 8px; }
.sc-poker .sc-poker-chip {
	display: inline-flex;
	align-items: center;
	height: 44px;
	padding: 0 22px;
	background: transparent;
	border: 2px solid var(--sc-white);
	border-radius: var(--poker-radius-pill);
	color: var(--sc-white);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: .04em;
}
.sc-poker .sc-poker-chip:hover,
.sc-poker .sc-poker-chip.is-active {
	background: var(--poker-accent);
	border-color: var(--poker-accent);
	color: var(--sc-white);
}

/* ── FIXTURES: month heading ─────────────────────────────────────────────────
   Size comes from the shared .sc-rte h2 rule below — NOT from here. The old
   hand-tuned clamp(1.5rem, 3vw, 2.25rem) on .sc-poker-month is overridden by
   that shared rule, which is later in the cascade at equal specificity. */
.sc-poker .sc-poker-month {
	border-bottom: 0;
	padding-bottom: 0;
	margin: clamp(2rem, 5vw, 3.25rem) 0 1rem;
	color: var(--poker-on);
}
.sc-poker .sc-poker-month:first-of-type { margin-top: clamp(1.5rem, 3vw, 2rem); }

/* `.sc-poker-h2` is the same step for a NON-month section heading ("Before you
   play"), so the month rule's margins and :first-of-type reset stay meaningful. */
.sc-poker .sc-poker-h2 {
	margin: 0 0 1rem;
	color: var(--poker-on);
	text-transform: uppercase;
}

/* THE inherited step. Grouping .sc-poker-month with .sc-rte h2 is the whole
   point — one declaration, so the month heading can never drift from the RTE
   sub-heading step it is supposed to share. */
.sc-hotel-brand--poker .sc-rte h2,
.sc-hotel-brand--poker .sc-poker-month,
.sc-hotel-brand--poker .sc-poker-h2,
.sc-hotel-brand--poker .sc-poker-empty__title,
.sc-hotel-brand--poker .sc-poker-doc__title,
.sc-hotel-brand--poker .sc-blk-row--3col .sc-blk-heading__title { font-size: clamp(28px, 4vw, 44px); }

/* ── FIXTURES: date-group header ─────────────────────────────────────────────
   U7's `.main .day .date` — DDD / DD / MMM on one baseline. U7 kills a
   light-grey background the old site put behind it; U17 never had one. */
.sc-poker-day + .sc-poker-day { margin-top: 26px; }
.sc-poker-date {
	display: flex;
	align-items: baseline;
	gap: 8px;
	margin: 0 0 12px;
}
.sc-poker-date__ddd,
.sc-poker-date__mmm {
	font-family: "kaneda-gothic", var(--sc-font);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--poker-muted-3);
}
.sc-poker-date__dd {
	font-size: 22px;
	font-weight: 700;
	color: var(--poker-on);
}

/* ── FIXTURES: the tournament card ───────────────────────────────────────────
   U7 stacks full-width blue cards with a 10px gutter — NOT a tile grid. The
   3 Jul U17 build shipped an auto-fill minmax(300px) grid with a 300px image
   crop; the stack is the live design and is what the landing's rhythm expects.

   📌 The image is kept but made CONDITIONAL. U7's fixtures carry no imagery at
   all, yet `pokerTournament` inherits `listingImage` from the generic
   listingDisplay composition, so an editor CAN set one. The old markup emitted
   the wrapper unconditionally, and with `height:300px; background:#0A0A0A` that
   rendered a **black 300px void on every image-less card** — which is every
   card, since no tournament has ever had an image. Fixed in the template (the
   wrapper is now inside the `if`); the strip below only applies when one is set. */
.sc-poker-grid {
	display: block;                       /* was: auto-fill minmax(300px,1fr) grid */
	gap: 0;
}
.sc-poker .sc-poker-card {
	display: block;
	margin: 0 0 10px;
	background: var(--poker-panel);
	border-radius: var(--poker-radius-card);
}
/* U7 gives the card no lift and no shadow — it is a flat blue block. */
.sc-poker .sc-poker-card:hover {
	transform: none;
	box-shadow: none;
	background: #0047E0;
}
.sc-poker .sc-poker-card__img-wrap { height: clamp(160px, 22vw, 240px); }
.sc-poker .sc-poker-card__body {
	display: block;
	padding: clamp(24px, 3vw, 36px);
}
.sc-poker .sc-poker-card__when {
	margin: 0 0 10px;
	font-size: 14px;
	letter-spacing: .04em;
	color: var(--poker-on-panel);
}
/* Black italic h3 on blue — 3.41:1, legitimate at this size and no smaller. */
.sc-poker .sc-poker-card__title {
	margin: 0 0 10px;
	font-size: clamp(22px, 2.6vw, 32px);
	color: var(--poker-on-panel);
}
.sc-poker .sc-poker-card__facts {
	margin: 0 0 4px;
	gap: .35rem 1.5rem;
}
.sc-poker .sc-poker-card__fact dt { color: var(--poker-on-panel); }
.sc-poker .sc-poker-card__fact dd { color: var(--poker-on); }

/* `.u-more` — the black pill CTA. Not a .sc-btn: U7 sizes it 40px/14px, which
   is a tighter component than the site pill, and it lives inside a card. */
.sc-poker .sc-poker-card__cta {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	height: 40px;
	margin-top: 8px;
	padding: 0 20px;
	background: var(--poker-inset);
	border-radius: var(--poker-radius-pill);
	color: var(--sc-white);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: .04em;
}
.sc-poker .sc-poker-card:hover .sc-poker-card__cta { background: #232D3A; }

/* Keyboard focus — U7's own treatment, and the stretched link is the only
   focusable thing in the card, so this is what a keyboard user lands on. */
.sc-poker a:focus-visible {
	outline: 2px solid var(--sc-white);
	outline-offset: 3px;
	border-radius: 8px;
}

/* ── FIXTURES: the empty state, DESIGNED ─────────────────────────────────────
   🔴 This is the launch state, not a fallback. There are no real tournaments
   yet, so this is what the page IS on day one — a bare centred sentence on a
   dark band reads as broken rather than quiet. It gets a real blue panel with
   the section's own type, and the page keeps all its other furniture (hero
   band, filter row when tags exist, "Before you play"), exactly as U7 does. */
.sc-poker-empty {
	margin: clamp(1.5rem, 3vw, 2rem) 0 0;
	padding: clamp(28px, 5vw, 56px);
	background: var(--poker-panel);
	text-align: left;
	color: var(--poker-on);
}
.sc-poker-empty__eyebrow {
	display: block;
	margin-bottom: .5rem;
	font-family: "kaneda-gothic", var(--sc-font);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--poker-on);
}
.sc-poker-empty__title {
	margin: 0 0 .75rem;
	font-family: "zuume-edge", var(--sc-font);
	font-style: italic;
	font-weight: 700;
	letter-spacing: 0;
	line-height: .95;
	text-transform: uppercase;
	color: var(--poker-on-panel);            /* size: the shared h2 step above */
}
.sc-poker-empty__text {
	margin: 0;
	max-width: 640px;
	font-size: 1.0625rem;
	line-height: 1.65;
	color: var(--poker-on);
}

/* ── FIXTURES: "Before you play" ─────────────────────────────────────────────
   Supporting furniture that must survive an empty fixtures list. Rendered on
   the shell, not on blue, so it reads as secondary to the cards. */
.sc-poker-info { padding-top: clamp(2rem, 5vw, 3.5rem); }
.sc-poker-info__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 1px;
	background: var(--poker-line);
	border: 1px solid var(--poker-line);
}
.sc-poker-info__item {
	padding: clamp(20px, 3vw, 28px);
	background: var(--poker-raised);
}
.sc-poker-info__label {
	display: block;
	margin-bottom: .5rem;
	font-family: "kaneda-gothic", var(--sc-font);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--poker-on);
}
.sc-poker-info__text { margin: 0; font-size: .9375rem; line-height: 1.6; color: var(--poker-muted); }
.sc-poker-info__text a { color: var(--poker-link); text-decoration: underline; text-underline-offset: 3px; }

/* ── DETAIL: the constrained document column ─────────────────────────────────
   U7: `max-width:900px; margin:0 auto; padding: clamp(80px,10vw,110px)
   clamp(20px,4vw,48px) clamp(48px,6vw,80px)`. Transplanted verbatim — the
   generous top padding is U7 clearing its fixed header, and U17's fixed nav is
   already reserved by the body padding, so the top step is reduced to the
   rhythm value rather than the clearance value.

   The class sits ON `.sc-container`, so it must out-specify site.css's
   max-width. `.sc-poker .sc-poker-doc` is two classes and wins. */
.sc-poker .sc-poker-doc {
	max-width: 900px;
	margin: 0 auto;
	padding: clamp(2.5rem, 6vw, 4.5rem) clamp(20px, 4vw, 48px) clamp(48px, 6vw, 80px);
	box-sizing: border-box;
	color: var(--poker-on);
}
.sc-poker-doc__title {
	margin: 0 0 1.5rem;
	color: var(--poker-on);                  /* size: the shared h2 step above */
	text-transform: uppercase;
}

/* U7 sends every heading AND `strong` inside the document column to white —
   `strong` matters because the tournament bodies lead every paragraph with a
   bold label ("Tournament Format:", "Freezeout:"), which site.css would leave
   at --sc-text on the dark surface. */
.sc-poker .sc-poker-doc h1,
.sc-poker .sc-poker-doc h2,
.sc-poker .sc-poker-doc h3,
.sc-poker .sc-poker-doc h4,
.sc-poker .sc-poker-doc h5,
.sc-poker .sc-poker-doc strong { color: var(--poker-on); }

/* Body links — U7's #6AA8FF. Scoped to `.sc-poker-rte`, which only these two
   bespoke templates emit and which only ever sits on the shell (7.49:1). The
   blue-band link rules further up this file stay WHITE: #6AA8FF on blue is
   2.39:1 and would fail outright. Specificity here (0,3,1) ties the general
   brand rule, so source order — this block is last — is what carries it. */
.sc-hotel-brand--poker .sc-poker-rte a:not(.sc-btn) {
	color: var(--poker-link) !important;
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* ── Responsive ────────────────────────────────────────────────────────────── */
@media (max-width: 640px) {
	.sc-poker .sc-poker-chip { height: 40px; padding: 0 16px; }
	.sc-poker-date__dd { font-size: 20px; }
}

/* ── DETAIL: back-link + the footer's width on a document page ───────────────
   `.sc-poker-back` is the "← All tournaments" row: U7 relies on its injected
   breadcrumb for the way out, and under chrome B the site breadcrumb does that
   job, but a bottom-of-page return is worth having after a long tournament body. */
.sc-poker-back { margin: 2rem 0 0; }
.sc-poker-back a {
	font-family: "kaneda-gothic", var(--sc-font);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--poker-muted-2);
	text-decoration: none;
}
.sc-poker-back a:hover,
.sc-poker-back a:focus-visible { color: var(--poker-on); text-decoration: underline; text-underline-offset: 4px; }

/* The shared footer partial renders at full container width. On a DOCUMENT page
   it should align with the 900px column instead, or the rule above it runs wider
   than everything it belongs to. ISOLATED :has() block (CLAUDE §7). */
.sc-poker:has(.sc-poker-doc) .sc-poker-footer-wrap .sc-container {
	max-width: 900px;
	padding-left: clamp(20px, 4vw, 48px);
	padding-right: clamp(20px, 4vw, 48px);
}

/* ============================================================================
   APPENDED 2026-07-29 (b) — Adam's review of the fixtures page.
   ============================================================================ */

/* ── "Before you play" cards → BLUE PANELS ──────────────────────────────
   Phase 5 rendered these on the shell as a hairline-divided grid of subtle
   lifts, reasoning they should "read as secondary to the cards". U7 does the
   opposite — its "Good to know" trio are full blue panels with real gaps
   between them, the same treatment as every other card on the page. Adam
   called it 2026-07-29; matching U7 wins.

   🔴 THE LINK COLOUR HAD TO MOVE WITH THE SURFACE — this is the whole reason
   this is a block and not a one-line change. `.sc-poker-info__text a` was set
   to --poker-link (#6AA8FF), which is 7.49:1 on the shell and a legitimate
   choice while these cards were dark. On a #0051FF panel the SAME token
   measures **2.39:1 and fails outright** — the exact trap the Phase 5 token
   note warns about ("#6AA8FF … must never be used there"). Flipping the
   background without flipping the link would have shipped an AA failure that
   no visual review would catch, because a mid-blue link on blue still *looks*
   like a link. White on blue = 5.80:1.

   The label stays WHITE rather than U7's black. At 14px, black on blue is
   3.41:1 — large-text-only — and it is one of the three live AA failures the
   programme decided to FIX rather than inherit (poker-03 R-list). Deliberate
   deviation from U7, consistent with that standing decision.
   ──────────────────────────────────────────────────────────── */
.sc-poker-info__grid {
	gap: 10px;                       /* U7's card gutter, not a 1px hairline */
	background: transparent;
	border: 0;
}
.sc-poker-info__item {
	background: var(--poker-panel);
}
.sc-poker-info__text { color: var(--poker-on); }          /* .85 → solid: 5.80:1 */
.sc-poker-info__text a {
	color: var(--poker-on);                                  /* NOT --poker-link */
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* ── Date-group header — rescaled for U17's page, not U7's ─────────────────
   Phase 5 transplanted U7's values exactly (dd 22px / ddd+mmm 14px) and they
   are right — for U7's page, where the date group is the LARGEST type on the
   fixtures list and no month heading sits above it (U7 splits months onto
   separate schedule pages).

   U17 groups months inline, so the same values now sit directly under a 44px
   month heading and the drop reads as a mistake rather than a hierarchy.
   Scaled up to restore the RELATIONSHIP — which is what matching a design
   means — rather than the absolute numbers.

   ⚠ If the month-cards IA question is later settled in U7's favour (month
   cards linking to per-month schedules), revert these two to 22px/14px: the
   month heading disappears from this page and U7's original values become
   correct again. */
.sc-poker-date__dd { font-size: 28px; }
.sc-poker-date__ddd,
.sc-poker-date__mmm { font-size: 15px; }

@media (max-width: 640px) {
	.sc-poker-date__dd { font-size: 24px; }
}

/* ── FONT-FAMILY GAP — two Phase 5 headings got the step but not the face ─────
   Phase 5 added `.sc-poker-h2` ("Before you play") and `.sc-poker-doc__title`
   (the tournament detail <h1>) to the SHARED SIZE rule — correctly, that is the
   whole point of one declaration per step — but not to the FONTS selector list
   at the tail of the poker-06 block. So both inherited the right clamp and the
   wrong typeface: upright Montserrat sitting beside italic Zuume Edge.

   Visible as "AUGUST TOURNAMENTS" (Zuume, italic) against "BEFORE YOU PLAY"
   (Montserrat, upright) on the same page.

   ⚠ `.sc-poker-empty__title` is NOT listed here — it already declares the
   family, weight and italic axis in its own rule, so adding it would be a
   second declaration of the same thing. That asymmetry is deliberate.

   📌 The underlying trap: the SIZE and the FAMILY live in two different rules,
   so a new heading class has to be added to BOTH. Anything added to the shared
   step rule must also be added here, or it silently renders in the body face. */
.sc-hotel-brand--poker .sc-poker-h2,
.sc-hotel-brand--poker .sc-poker-doc__title {
	font-family: "zuume-edge", var(--sc-font);
	font-style: italic;
	font-weight: 700;
	letter-spacing: 0;
	line-height: .95;
}

/* ── FIXTURES: multi-column card grid (Adam, 2026-07-29) ───────────────────
   Phase 5 set `.sc-poker-grid` to `display:block` so cards stacked full-width,
   matching U7. U7 gets away with that because it splits months across separate
   schedule pages, so any one page holds a handful of cards; U17 groups every
   month inline, so a stack becomes a very long scroll fast.

   Adam's call: 2 columns minimum on desktop, 3 where there is room, 1 on
   mobile. `auto-fill` + a 420px floor does all three with no breakpoints — at
   the 1400px container that is 3, around 900px it is 2, and below ~440px it
   collapses to 1 on its own.

   ⚠ `margin-bottom` had to go with it. The stack spaced cards with
   `margin: 0 0 10px`; inside a grid that ADDS to the row gap, giving 20px
   between rows and 10px between columns — a mismatch that reads as broken
   alignment rather than as spacing.

   ⚠ The image height also had to change. `clamp(160px, 22vw, 240px)` is
   VIEWPORT-relative, which was right when a card spanned the full width. In a
   3-up grid each card is roughly a third of that width while 22vw keeps
   measuring the whole viewport, so the crop grows disproportionately tall as
   the card narrows. An aspect-ratio is card-relative and holds at every count.
   ──────────────────────────────────────────────────────────── */
.sc-poker-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(420px, 1fr));
	gap: 10px;
	align-items: stretch;
}
.sc-poker .sc-poker-card {
	margin: 0;                                  /* the grid gap now owns spacing */
	display: flex;
	flex-direction: column;
}
/* Card-relative crop, so it holds at 1, 2 or 3 across. */
.sc-poker .sc-poker-card__img-wrap {
	height: auto;
	aspect-ratio: 16 / 9;
}
/* Body fills the remaining height so CTAs line up across a row of cards with
   different title lengths. */
.sc-poker .sc-poker-card__body {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
}
.sc-poker .sc-poker-card__cta { margin-top: auto; align-self: flex-start; }
/* Title steps down in a multi-column card — 32px in a ~440px column wraps a
   long tournament name to four lines. Full-width cards keep the larger step. */
@media (min-width: 900px) {
	.sc-poker .sc-poker-card__title { font-size: clamp(20px, 1.6vw, 26px); }
}
@media (max-width: 640px) {
	.sc-poker-grid { grid-template-columns: 1fr; }
}

/* ============================================================================
   APPENDED 2026-07-29 (b) — tasks/_done/poker-08-fixtures-hero-and-copy.md
   ============================================================================ */

/* ── 🔴 THE <h1> DISPLAY-FONT DEFEAT — the ONE !important in this sheet's font
   handling, and the rule it beats is named ────────────────────────────────────
   BEATS: site.css:2678

       h1,
       .sc-hero__heading,
       .sc-mosaic__title--hero {
           font-family: "specter", var(--sc-font) !important;
           font-weight: 800 !important;
       }

   A bare `h1` TYPE selector — specificity (0,0,1), the lowest there is — carrying
   `!important`. `!important` outranks specificity outright, so the poker FONTS
   block at (0,2,0) could never win, no matter how specific it got or how late it
   loaded. Measured, not assumed: `venues/poker.css` is stylesheet #16 of 16 on
   this template (it DOES load last), and it is the ONLY `font-family !important`
   in the entire loaded cascade — all 13 sheets were scanned.

   ⚠ THE TELL, worth remembering: `font-style: italic` was applying while
   `font-family` was not. That is this rule exactly — it declares only family and
   weight, so every other property in the poker FONTS block landed normally. A
   partial failure like that means a property-level defeat, not a selector miss.

   BLAST RADIUS IS `<h1>` ONLY. The rule matches the ELEMENT, not the class, so it
   reaches exactly the three poker display classes that render as an h1. It never
   touched `.sc-poker-h2`, `.sc-poker-month`, `.sc-poker-empty__title` (all h2),
   `.sc-blk-heading__title` (_ContentBlocks emits h2) or `.sc-poker-card__title`
   (h3) — those are handled by the plain rules above and stay non-important.

   WEIGHT MATTERS TOO, and this is not cosmetic. Adobe kit bsg2bme ships
   **zuume-edge at 400/700 only** (normal + italic); `specter` ships **800 normal,
   with no italic at all**. So the inherited `font-weight: 800 !important` was
   making the browser SYNTHESISE a faux-bold from the 700 face — and the poker
   `font-style: italic` was synthesising a faux-oblique from an upright Specter.
   Both are restored to real faces here.

   🔴 Scope: `font-family` + `font-weight` ONLY, on three classes. Do NOT promote
   the rest of the FONTS block to `!important` — nothing else is contested, and a
   blanket `!important` would make the next real conflict undiagnosable. */
.sc-hotel-brand--poker .sc-page-header__title,
.sc-hotel-brand--poker .sc-hero__title,
.sc-hotel-brand--poker .sc-poker-doc__title {
	font-family: "zuume-edge", var(--sc-font) !important;
	font-weight: 700 !important;
}

/* ── HERO BAND — two columns, photo INSET beside the copy ────────────────────
   U7's hero is a band with the copy on the left and the photograph inset on the
   right, NOT a full-bleed banner strip above the band. Six elements: back link,
   kicker, display heading, two paragraphs, two CTAs, photo.

   The band is `.sc-page-header` (already blue, from the Phase 5 block above).
   Below 900px it stacks and the photo drops under the copy. */
.sc-poker .sc-page-header__inner {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
	gap: clamp(24px, 4vw, 56px);
	align-items: center;
}
.sc-poker .sc-page-header__col { min-width: 0; }

/* The ← back link. Derived from the parent node, so it can never point wrong. */
.sc-poker-back-link {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	margin: 0 0 clamp(12px, 2vw, 20px);
	font-family: "kaneda-gothic", var(--sc-font);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	/* WHITE on the blue band — 5.80:1. NOT --poker-link, which is 2.39:1 here. */
	color: var(--sc-white);
	text-decoration: none;
}
.sc-poker-back-link:hover,
.sc-poker-back-link:focus-visible { text-decoration: underline; text-underline-offset: 4px; }

/* Intro copy inside the band. `.sc-poker-hero-intro` wraps the RTE, so U7's two
   paragraphs (the second bold) render as authored.
   ⚠ WHITE, not --poker-muted: this is body copy ON a blue panel. White is
   5.80:1; .85 white would be 4.58:1, which passes but with no margin at all. */
.sc-poker-hero-intro {
	max-width: 46ch;
	margin: 0 0 clamp(16px, 2.5vw, 24px);
}
.sc-poker-hero-intro p {
	margin: 0 0 .85em;
	font-size: 1.0625rem;
	line-height: 1.65;
	color: var(--sc-white) !important;      /* beats the .sc-rte colour rules above */
}
.sc-poker-hero-intro p:last-child { margin-bottom: 0; }
.sc-poker-hero-intro strong { color: var(--sc-white); font-weight: 700; }
.sc-poker-hero-intro a { color: var(--sc-white) !important; text-decoration: underline; text-underline-offset: 3px; }

/* CTA row — first link is the black primary, second the white outline, matching
   the poker button pair established in APPENDED (e). */
.sc-poker-hero-ctas { display: flex; flex-wrap: wrap; gap: 12px; margin: 0; }

/* The inset photo. `aspect-ratio` keeps the crop stable as the column narrows. */
.sc-poker-hero-media {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

@media (max-width: 900px) {
	.sc-poker .sc-page-header__inner { grid-template-columns: 1fr; }
	.sc-poker .sc-page-header__col--media { order: -1; }
	.sc-poker-hero-media { aspect-ratio: 16 / 9; }
}

/* ── "GOOD TO KNOW" cards — blue panels, per the surface model ───────────────
   Phase 5 built these as a `--poker-raised` lift on the shell. They are CARDS,
   and in this design cards are opaque blue panels — the same call the fixture
   cards already follow.

   🔴 CONTRAST CONSEQUENCE, and it is the reason this block exists rather than a
   one-line background swap: on blue, small text MUST be white.
     · label  → white  5.80:1  (was already white)
     · body   → white  5.80:1  (was --poker-muted .85 = 4.58:1 — passes, but with
                                no margin; on a panel there is no reason to sit
                                that close to the floor)
     · link   → WHITE, NOT --poker-link. #6AA8FF on #0051FF is **2.39:1** and
                fails outright. This is the exact trap the spec warns about. */
.sc-poker-info__grid {
	background: transparent;
	border: 0;
	gap: 10px;
}
.sc-poker-info__item { background: var(--poker-panel); }
.sc-poker-info__text { color: var(--sc-white); }
.sc-poker-info__text a {
	color: var(--sc-white);
	text-decoration: underline;
	text-underline-offset: 3px;
}
.sc-poker-info__text a:hover,
.sc-poker-info__text a:focus-visible { text-decoration-thickness: 2px; }

/* ── Section rhythm for the three stacked blocks ─────────────────────────────
   The fixtures block is now a kicker/heading section, then the filter row, then
   the list — three siblings that each carry `.sc-section` padding, which stacks
   into a large gap. Collapse the joins so they read as ONE section. */
.sc-poker-fixtures-head { padding-bottom: 0; }
.sc-poker .sc-poker-filter { padding-top: clamp(12px, 2vw, 20px); }
.sc-poker-info { padding-top: clamp(2.5rem, 5vw, 4rem); }

/* Anchor target for the hero's "View all fixtures" CTA. A zero-height marker
   rather than an id on the section itself, so the scroll offset can clear the
   fixed nav without adding padding to anything visible. */
.sc-poker-anchor {
	display: block;
	height: 0;
	scroll-margin-top: calc(var(--sc-nav-height, 64px) + 16px);
}

/* The kicker/heading pair sits directly on the shell in these two sections, so
   it takes the shell treatment already defined for `.sc-blk-heading__*`
   (white eyebrow, blue display title). Only the spacing is this block's job. */
.sc-poker-fixtures-head .sc-blk-heading__title,
.sc-poker-info .sc-blk-heading__title { margin-bottom: 0; }
.sc-poker-info .sc-blk-heading__title { margin-bottom: clamp(16px, 3vw, 28px); }

/* ============================================================================
   APPENDED 2026-07-29 (c) — tasks/_done/poker-09-royal-jackpot.md
   Royal Jackpot: the BLACK panels, and the treatments the Block Grid cannot express.
   ============================================================================
   🔴 THE THIRD SURFACE PROBLEM, and the documented way out.

   This design uses THREE surfaces — blue #0051FF, black #0A0A0A, and the
   #10161F shell. The Block Grid's background setting offers `none | grey | dark
   | gold`, and on this branch the earlier block in this file repoints ALL THREE
   coloured options to the blue panel. So **black is unreachable through block
   settings** — there is no fourth option and one must not be invented (adding a
   `blue`/`black` option to the shared data type would change every Content
   Builder page on every site).

   THE ESCAPE HATCH: `blockSettings.anchorId`. `_ContentBlocks:61` emits it as
   `id=` on the block wrapper, so an editor-visible existing field becomes a
   styling hook — no new block type, no new data type, no ContentPage.cshtml
   edit. Used twice here, and the prefix form means one rule covers a panel made
   of several blocks:

       #jackpot-head / #jackpot-figure / #jackpot-note   → [id^="jackpot-"]
       #ready-to-play / #ready-to-play-cta               → [id^="ready-to-play"]

   ⚠ WHY A PREFIX AND NOT ONE ID: a panel that contains a heading, an embed and a
   note is THREE blocks, and `anchorId` is per-block. Grouping them in a row
   would make each column half-width. The shared prefix keeps it one CSS rule
   while letting each block keep its own id.

   ⚠ FOREGROUNDS CHANGE WITH THE SURFACE — the blue-panel rules above do NOT
   apply here, because these blocks carry no `.sc-blk--bg-*` class at all; they
   inherit the SHELL treatment, which sends `.sc-blk-heading__title` to BLUE.
   Blue on black measures **3.41:1** — large-text-only, and visually wrong next
   to U7's white. Forced to white below.

   CONTRAST on #0A0A0A, measured:
     white                       19.80:1  ✓ AAA
     --poker-muted   (.85 white) 14.16:1  ✓ AAA
     --poker-muted-2 (.72 white) 10.20:1  ✓ AAA
     --poker-accent  (#0051FF)    3.41:1  ✗ large-only — deliberately not used
   ------------------------------------------------------------------------- */

.sc-hotel-brand--poker [id^="jackpot-"],
.sc-hotel-brand--poker [id^="ready-to-play"] {
	background: var(--poker-inset);
}

/* Joined padding — the blocks are siblings, so the panel's top and bottom
   padding sit on the first and last block and the middles carry none. */
.sc-hotel-brand--poker #jackpot-head { padding: clamp(28px, 5vw, 56px) 0 0; }
.sc-hotel-brand--poker #jackpot-figure { padding: clamp(8px, 1.5vw, 16px) 0; }
.sc-hotel-brand--poker #jackpot-note { padding: 0 0 clamp(28px, 5vw, 56px); }
.sc-hotel-brand--poker #ready-to-play { padding: clamp(28px, 4vw, 44px) 0 0; }
.sc-hotel-brand--poker #ready-to-play-cta { padding: clamp(12px, 2vw, 20px) 0 clamp(28px, 4vw, 44px); }

/* The jackpot heading and note sit on black, not blue. */
.sc-hotel-brand--poker #jackpot-head .sc-rte h2 { margin: 0; color: var(--sc-white) !important; }
.sc-hotel-brand--poker #jackpot-note .sc-rte p { margin: 0; color: var(--poker-muted) !important; }

/* "Ready to play?" — the shell rule would make this BLUE on black (3.41:1).
   U7 has it white, and white is 19.80:1. */
.sc-hotel-brand--poker #ready-to-play .sc-blk-heading__title { color: var(--sc-white); }
.sc-hotel-brand--poker #ready-to-play .sc-blk-heading__eyebrow { color: var(--sc-white); }
.sc-hotel-brand--poker #ready-to-play .sc-blk-heading__sub { color: var(--poker-muted); }

/* ── The live jackpot figure, and what it degrades to ────────────────────────
   🔴 EDGE CASE, answered deliberately. This is a live third-party iframe on a
   gambling page: if the feed fails, times out or returns empty, the iframe
   still occupies its box and renders nothing.

   `.sc-blk-embed--16-9` would reserve a 16:9 box for what is ONE LINE of text —
   so a failed feed leaves a large empty black void under a heading that
   promises a number. Constraining it to a text-height strip means a failure
   degrades to a small blank gap between "The current jackpot is" and "Updated
   live and climbing…", which still reads as a sentence rather than as broken.

   Deliberately NOT hidden entirely on failure: CSS cannot detect a cross-origin
   iframe's content, and hiding the panel would need JS reaching into another
   origin, which it cannot do either. A quiet gap is the honest floor. */
.sc-hotel-brand--poker #jackpot-figure .sc-blk-embed {
	aspect-ratio: auto;
	height: clamp(80px, 12vw, 140px);
}
.sc-hotel-brand--poker #jackpot-figure .sc-blk-embed__frame {
	width: 100%;
	height: 100%;
	border: 0;
}

/* ── The ← back link (a rich-text block, styled to match the fixtures page) ── */
.sc-hotel-brand--poker #rj-back { padding-bottom: clamp(8px, 1.5vw, 14px); }
.sc-hotel-brand--poker #rj-back .sc-rte p { margin: 0; }
.sc-hotel-brand--poker #rj-back .sc-rte a {
	font-family: "kaneda-gothic", var(--sc-font);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	/* WHITE on the blue hero band — 5.80:1. */
	color: var(--sc-white) !important;
	text-decoration: none;
}
.sc-hotel-brand--poker #rj-back .sc-rte a:hover,
.sc-hotel-brand--poker #rj-back .sc-rte a:focus-visible { text-decoration: underline; text-underline-offset: 4px; }

/* ── The footnote — muted, on the shell (7.08:1). ─────────────────────────── */
.sc-hotel-brand--poker #rj-footnote .sc-rte p {
	margin: 0;
	font-size: .875rem;
	line-height: 1.6;
	color: var(--poker-muted-3) !important;
}

/* ── Two-up: the blue and black columns must align ───────────────────────────
   col1 is ONE block (a heading with a subheading, painted blue by its own
   background setting); col2 is TWO blocks painted black by the id rule above.
   Without this the columns are different heights and the join looks accidental. */
.sc-hotel-brand--poker .sc-blk-row--50-50 { align-items: stretch; }

/* ── PANEL PADDING inside a row column (Adam, 2026-07-29) ──────────────────
   "The Pool" and "Get Seated" had their content flush against the panel edges.

   CAUSE: the padding above is written `clamp(…) 0 0` — **vertical only, zero
   horizontal**. That is correct for the JACKPOT panel, which is full-bleed: its
   blocks each hold a `.sc-container`, and the container supplies the inset, so
   adding horizontal padding there would double it.

   It is wrong inside a ROW COLUMN. The page container's padding stops at the
   row — each `.sc-blk-col` is flush to its own edge — so a panel painted inside
   a column has nothing insetting it and the text meets the colour boundary.
   The full-bleed case and the in-column case need opposite treatment, which is
   why one rule cannot cover both.

   ⚠ SPECIFICITY: the `#ready-to-play` rules above are (1,1,0) — an ID beats any
   number of classes, so an attribute or descendant selector here would lose
   silently. These deliberately re-use the SAME id selectors at equal
   specificity and win on source order instead.

   ⚠ SCOPING for the blue side: `.sc-blk-col > .sc-blk--bg-*` matches only a
   coloured block that is a DIRECT CHILD of a column. The landing's blue bands
   put `bg-dark` on the ROW, with uncoloured blocks inside the columns, so this
   cannot reach them.
   ──────────────────────────────────────────────────────────── */

/* Black column — keep the existing vertical rhythm, add the missing sides. */
.sc-hotel-brand--poker #ready-to-play,
.sc-hotel-brand--poker #ready-to-play-cta {
	padding-left: clamp(24px, 3vw, 36px);
	padding-right: clamp(24px, 3vw, 36px);
}

/* Blue column — a single block, so it takes all four sides in one declaration.
   Matches the black column's horizontal step so the two-up reads as a pair. */
.sc-hotel-brand--poker .sc-blk-col > .sc-blk--bg-dark,
.sc-hotel-brand--poker .sc-blk-col > .sc-blk--bg-grey,
.sc-hotel-brand--poker .sc-blk-col > .sc-blk--bg-gold {
	padding: clamp(28px, 4vw, 44px) clamp(24px, 3vw, 36px);
}

/* The heading block's own trailing margin stacks on top of the new panel
   padding and pushes the copy off-centre. */
.sc-hotel-brand--poker .sc-blk-col > .sc-blk--bg-dark .sc-blk-heading__sub:last-child,
.sc-hotel-brand--poker .sc-blk-col > .sc-blk--bg-grey .sc-blk-heading__sub:last-child,
.sc-hotel-brand--poker .sc-blk-col > .sc-blk--bg-gold .sc-blk-heading__sub:last-child { margin-bottom: 0; }

/* ── EQUAL-HEIGHT PANELS — paint the COLUMN, not the blocks ────────────────
   `align-items: stretch` above already makes both COLUMNS equal height — that
   part works. What it cannot do is stretch the BLOCKS inside them: a block is a
   normal-flow child and takes only its content height, so the shorter column's
   colour stops early and the shell shows through beneath it. "Get Seated" is
   two blocks (`#ready-to-play` + `#ready-to-play-cta`); "The Pool" is one, and
   happens to be the taller of the two, which is why only the black side showed
   the gap.

   Fix: paint the COLUMN. A stretched column already fills the row, so the
   colour reaches the bottom whichever side is shorter — and it stays correct if
   the copy changes and the tall/short roles swap. The block-level backgrounds
   above are kept: same colour, no visible difference, and they still carry the
   panel on any page where these blocks are NOT in a two-up.

   ⚠ A flex/`fill` approach was rejected: making every `.sc-blk-col` a flex
   column would reach the landing's hero and cash-game rows too, where images
   and buttons would start stretching. Painting the column touches nothing else.

   ⚠ Each `:has()` sits in its OWN block, never grouped with a plain selector —
   an engine that cannot parse `:has()` drops the entire comma group (CLAUDE §7).

   ⚠ SCOPING: `:has(> …)` requires the painted thing to be a DIRECT CHILD of the
   column. The landing puts `bg-dark` on the ROW with uncoloured blocks inside
   its columns, so neither rule can reach it.
   ──────────────────────────────────────────────────────────── */
.sc-hotel-brand--poker .sc-blk-col:has(> [id^="ready-to-play"]) {
	background: var(--poker-inset);
}
.sc-hotel-brand--poker .sc-blk-col:has(> .sc-blk--bg-dark) {
	background: var(--poker-panel);
}
.sc-hotel-brand--poker .sc-blk-col:has(> .sc-blk--bg-grey) {
	background: var(--poker-panel);
}
.sc-hotel-brand--poker .sc-blk-col:has(> .sc-blk--bg-gold) {
	background: var(--poker-panel);
}

/* ── Adam's polish, 2026-07-29 ────────────────────────────────────── */

/* Compact footer links — 1rem → 1.3rem. Third step up (.8125 → .9375 → 1 → 1.3);
   Kaneda is narrow enough that it still reads as a nav row, not a heading. */
.sc-hotel-brand--poker #poker-footer a,
.sc-hotel-brand--poker .sc-poker-footer a { font-size: 1.3rem; }

/* "← BACK TO POKER ROOM" — 14px → 18px. BOTH implementations, or the two pages
   drift: the fixtures/detail templates emit `.sc-poker-back-link`, while Royal
   Jackpot's is a rich-text block hooked by its anchorId (`#rj-back`).
   ⚠ `.sc-poker-back` (the "← All tournaments" link at the BOTTOM of a tournament
   detail page) is deliberately left at 14px — different element, different job,
   and Adam asked only for the one at the top. */
.sc-hotel-brand--poker .sc-poker-back-link { font-size: 18px; }
.sc-hotel-brand--poker #rj-back .sc-rte a { font-size: 18px; }

/* ── Adam's polish — round 2, 2026-07-29 ─────────────────────────────── */

/* 1. DATE GROUP — one size for all three parts.
   The 28/15 split was U7's own hierarchy (the numeral dominant, the day and
   month as quiet flanking labels). Adam wants them level, so the numeral drops
   to the row rather than the labels climbing: overrides both APPENDED (b)
   values in one place, and keeps the mobile step proportional. */
.sc-hotel-brand--poker .sc-poker-date__dd,
.sc-hotel-brand--poker .sc-poker-date__ddd,
.sc-hotel-brand--poker .sc-poker-date__mmm { font-size: 22px; }

@media (max-width: 640px) {
	.sc-hotel-brand--poker .sc-poker-date__dd,
	.sc-hotel-brand--poker .sc-poker-date__ddd,
	.sc-hotel-brand--poker .sc-poker-date__mmm { font-size: 18px; }
}

/* 2. FEATURE-CARD CTA — the last gold left in the section.
   APPENDED (e) retired gold from `.sc-btn--gold` / `.sc-btn--outline`, but the
   feature card's "Read more" is NOT a .sc-btn — it is `.sc-feature-card__cta`,
   which hero.css styles as its own gold pill. Different component, so the
   earlier override never reached it.
   Black pill + white label = 19.80:1, matching the poker primary. */
.sc-hotel-brand--poker .sc-feature-card__cta {
	background: var(--poker-inset);
	border-color: var(--poker-inset);
	color: var(--sc-white);
}
.sc-hotel-brand--poker .sc-feature-card:hover .sc-feature-card__cta,
.sc-hotel-brand--poker .sc-feature-card__cta:hover,
.sc-hotel-brand--poker .sc-feature-card__cta:focus-visible {
	background: #232D3A;
	border-color: #232D3A;
	color: var(--sc-white);
}

/* 3. HEADING UNDERLINE — gold → white.
   site.css draws a short gold bar under section headings. On this branch gold
   is retired entirely, so it is wrong everywhere it appears, not just on the
   one heading Adam spotted — hence the full sweep rather than a single fix.

   ⚠ BOTH mechanisms are covered because the rule is drawn differently in
   different places: a `::after` bar on some headings, a `border-bottom` on
   others. Setting only one leaves gold behind somewhere and it will resurface
   on a page nobody is looking at.

   White on blue is 5.80:1 and on the shell 18.16:1 — both well past the 3:1
   floor for a non-text graphic. */
.sc-hotel-brand--poker .sc-rte h2::after,
.sc-hotel-brand--poker .sc-rte h3::after,
.sc-hotel-brand--poker .sc-rte h4::after,
.sc-hotel-brand--poker .sc-blk-heading__title::after,
.sc-hotel-brand--poker .sc-poker-h2::after,
.sc-hotel-brand--poker .sc-poker-doc__title::after,
.sc-hotel-brand--poker .sc-poker-empty__title::after,
.sc-hotel-brand--poker .sc-tcs__heading::after {
	background: var(--sc-white);
	background-color: var(--sc-white);
	border-color: var(--sc-white);
}
.sc-hotel-brand--poker .sc-rte h2,
.sc-hotel-brand--poker .sc-rte h3,
.sc-hotel-brand--poker .sc-rte h4,
.sc-hotel-brand--poker .sc-blk-heading__title,
.sc-hotel-brand--poker .sc-tcs__heading { border-bottom-color: var(--sc-white); }

/* ── Adam's polish — round 3, 2026-07-29 ───────────────────────────────
   Both were 14px, transplanted from U7 where the fixture card spans the full
   page width. In U17's 2–3 column grid the same values sit in a ~440px card and
   read noticeably smaller — the same relative-vs-absolute problem the date-group
   header hit earlier. Stepped to 16px; the 40px pill still has room.

   Equal specificity (0,2,0) to the Phase 5 rules they override, winning on
   source order — same pattern as the rest of this file's overrides. */
.sc-poker .sc-poker-card__when { font-size: 16px; }
.sc-poker .sc-poker-card__cta { font-size: 16px; }





/* ── SCHEDULE — recurring fixtures (feat-poker-tournament-recurrence, 2026-09-09) ─
   NEW CLASSES ONLY. Nothing above this block was edited: `.sc-poker-when__eyebrow`
   is reused unchanged and it is a MEMBER OF THE KANEDA COMMA GROUP at the "Uppercase
   eyebrows" rule — restyling it there would have silently restyled the tagblock
   eyebrow, the facts labels, both card classes and the filter chips (CLAUDE.md §7).

   The detail page's When block gains `.sc-poker-schedule` alongside `.sc-poker-when`,
   so every existing `.sc-poker-when*` rule still applies and a single-date tournament
   renders exactly as it did before this build. That is the no-regression case.

   NOTE ON TYPE: no `font-family` is set here on purpose. These are body-copy elements
   and the poker branch keeps Montserrat for body (CLAUDE.md §2's sub-brand exemption —
   Zuume Edge is headings only). Nothing here is an <h1>, so `site.css`'s bare-h1
   `font-family !important` is not in play and no `!important` is needed. */
.sc-poker .sc-poker-schedule__list {
	list-style: none;
	margin: .85rem 0 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: .35rem;
}

.sc-poker .sc-poker-schedule__item {
	display: flex;
	align-items: baseline;
	gap: .6rem;
	font-size: 1rem;
	line-height: 1.45;
}

/* A leading rule keeps the list legible against the shell without a border box. */
.sc-poker .sc-poker-schedule__item::before {
	content: "";
	flex: 0 0 auto;
	width: 10px;
	height: 1px;
	background: var(--poker-accent-text);
	opacity: .55;
	transform: translateY(-.3em);
}

.sc-poker .sc-poker-schedule__date { font-weight: 600; }

/* The per-night time override. Only rendered when an Extra Dates row supplied its
   own time, so it must read as secondary to the date beside it. */
.sc-poker .sc-poker-schedule__time {
	opacity: .8;
	font-size: .9375rem;
}

@media (max-width: 480px) {
	.sc-poker .sc-poker-schedule__item { font-size: .9375rem; }
}

/* ============================================================================
   APPENDED 2026-09-09 (b) — Adam's review of the recurrence build.
   Month-level grid · larger filter chips · one contrast fix that came with them.
   ============================================================================ */

/* ── THE GRID — and the rule that was NOT the problem ────────────────────────
   The fixtures page rendered as a narrow left-hand stack after the recurrence
   build. The cause was in the TEMPLATE, not here: it emitted one
   `.sc-poker-grid` per DATE, and recurrence put every occurrence on its own
   date, so each grid held a single card and left its other tracks empty.
   `PokerTournaments.cshtml` now emits ONE grid per MONTH.

   🔴 Recorded because the wrong diagnosis is the obvious one: a grid that looks
   like a stack looks exactly like a broken `grid-template-columns`. It was not.
   The 29 Jul `auto-fill, minmax(420px, 1fr)` was doing precisely what it was
   told with one item to place.

   With the count fixed, the track definition moves to the ESTATE STANDARD — a
   FIXED three-column grid stepping to 2 then 1, which is what `.sc-wo-grid`
   (What's On) uses at `repeat(3, 1fr)` / ≤1100px `repeat(2, 1fr)` / ≤560px `1fr`.
   Fixed tracks are the right instrument now that a month holds 4–10 cards:
   `auto-fill` re-flows the column count with the viewport and a short month
   would sit at a different width from a long one on the same page.

   ⚠ The mobile step is 640px, NOT the estate's 560px, and that is deliberate:
   an earlier `@media (max-width: 640px)` block in this file already sends
   `.sc-poker-grid` to `1fr`. Using 560 here would leave 560–640px matching the
   2-column rule below (later in source, so it would win) and quietly undo the
   older rule. Matching the existing breakpoint keeps one answer per width.
   ─────────────────────────────────────────────────────── */
.sc-poker-grid {
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
}
@media (max-width: 1100px) {
	.sc-poker-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
	.sc-poker-grid { grid-template-columns: 1fr; }
}

/* ── CARD DATE — black → WHITE, and this is a real contrast fix ──────────────
   `.sc-poker-card__when` was `--poker-on-panel` (#0A0A0A) at 16px. Black on the
   blue panel measures 3.41:1 — this sheet's own token note says that value is
   LARGE TEXT ONLY and small text on a panel must be white (5.80:1). At 16px it
   was already outside policy.

   🔴 It became load-bearing rather than merely wrong when the DDD/DD/MMM date
   header was removed: this line is now the ONLY date on the card. A fact a
   visitor has to read cannot sit at 3.41:1.

   📌The card TITLE keeps `--poker-on-panel` and that is correct, not an
   inconsistency — it is 22–32px, which is genuinely large text. */
.sc-poker .sc-poker-card__when { color: var(--sc-white); }

/* ── FILTER CHIPS — sized for the screen we actually have (Adam, 2026-09-09) ──
   The 44px / 14px pill is U7's own value, transplanted in Phase 5. U7 renders
   it under a narrow schedule column; U17 puts it under a 1400px container with
   seven chips in one row and a great deal of space around them, so the same
   absolute numbers read as undersized. Same relative-vs-absolute problem the
   date group and the card CTA both hit earlier in this file — third instance,
   and the reason each of those blocks says so.

   Mobile goes UP too (was 40px / inherited 14px), a step smaller than desktop
   rather than a different component.

   ⚠ `.sc-poker-chip` is a member of the Kaneda comma group in the
   "Uppercase eyebrows" rule — the FAMILY is set there, alongside five other
   classes. Only the metrics are set here. Do not move a size into that group
   (CLAUDE.md §7: a comma group is a shared declaration).

   ⚠ Equal specificity (0,2,0) to the Phase 5 chip rule it overrides; it wins on
   source order, which is this file's established override pattern. */
.sc-poker-chiprow { gap: 12px; }
.sc-poker .sc-poker-chip {
	height: 52px;
	padding: 0 28px;
	font-size: 17px;
}
@media (max-width: 640px) {
	.sc-poker .sc-poker-chip {
		height: 46px;
		padding: 0 20px;
		font-size: 15px;
	}
}

/* 📌DEAD, recorded not swept: `.sc-poker-day`, `.sc-poker-date`,
   `.sc-poker-date__ddd/__dd/__mmm`. No template emits them since the
   month-level grid landed. They are spread across five blocks in this file,
   two of them comma groups, so removing them is its own measured pass rather
   than a passing tidy — deleting a comma group because one member matched is
   how 14 rules across 9 nodes were lost on 2026-09-04. */
