/*
 * Brett's page-by-page brand calls (07 Oct 2026), loaded last on every page after components.css
 * (functions.php): the token sweep's page sections (Your Visit family, Citizens + Gift vouchers, Home,
 * What's on, the event page, Your Visit, Citizens, Bar & Food, Gift vouchers + Contact, the default page
 * and the 404). The tokens and the shared components moved to components.css (design system, phase 1).
 */

/* ==== Token sweep (Brett, 07 Oct): every page's sections, cards, buttons, pills, labels and colours
   point at the :root tokens (components.css). Section rhythm: var(--cr-section-pad) top and bottom (96px; 64px at
   <=768px), on the section itself, never on a parent and its child both. (Night cards 10px and date tabs
   7px held until the polish pass made them 16px and 6px.) ==== */

/* Your Visit family: Visit, Contact, the default page / index and the 404 share the hero
   (template-parts/pages/hero.php), the cards, the help card, the index and the drawn map. */
/* Hero: the section pad top and bottom; the mic keeps its place beside the kicker (16px above it; 12px under 900px). */
.crd.crd .yv-hero{padding-top:var(--cr-section-pad);padding-bottom:var(--cr-section-pad)}
.crd.crd .yv-hero .yv-hero__char{top:calc(var(--cr-section-pad) - 16px)}
@media (max-width:899px){
  .crd.crd .yv-hero .yv-hero__char{top:calc(var(--cr-section-pad) - 12px)}
}
/* Closing cards (Visit's Still stuck? / Book, Contact's Planning your visit? / Book): a band of their own. */
.crd.crd .yv-end{margin-top:0;padding-top:var(--cr-section-pad);padding-bottom:var(--cr-section-pad)}
/* Cards: every .pg-card (Visit, Contact, Bar, default page, index), the On this page index, the Visit /
   Contact map and the green food / venue-hire band. */
.crd.crd :is(.pg-card,.yv-toc,.yv-map,.yv-food){border-radius:var(--cr-radius-card)}
/* Help card (Still stuck?, Questions?, no results): the off-palette #F1EDDA is cream, its marigold icon
   cream on the ink tile; the arrow links beside it are ink, not green. */
.crd.crd .yv-stuck{background:var(--cr-cream)}
.crd.crd .sys-link,.crd.crd .sys-link:hover{color:var(--cr-ink)}
/* On this page index (Visit, default page): button corners, the active number cream; under 900px the
   chips are the hairline outline, the active one solid ink. */
.crd.crd .yv-toc__link{border-radius:var(--cr-radius-btn)}
@media (max-width:899px){
  .crd.crd .yv-toc__link{border:0;box-shadow:inset 0 0 0 1px currentColor}
  .crd.crd .yv-toc__link.is-on{box-shadow:inset 0 0 0 1px var(--cr-ink)}
}
/* Green food / venue-hire band (Visit, Contact): cream copy; the button is a cream hairline (the sitewide
   ink outline is 2.6:1 on the green) and fills cream on hover. */
.crd.crd .yv-food__copy,.crd.crd .yv-food__btn{color:var(--cr-cream)}
.crd.crd .yv-food__copy strong{color:inherit}
.crd.crd .yv-food__btn:hover{background:var(--cr-cream);color:var(--cr-ink);box-shadow:inset 0 0 0 1px var(--cr-cream)}
/* Open in Maps (Visit, Contact, Bar, event page): the secondary button, 5px corners and a 1px line, no
   drop or nudge; it keeps its cream fill to read over the map and fills ink on hover. */
.crd.crd :is(.pg-map__open,.ev-map__open){border-radius:var(--cr-radius-btn);box-shadow:inset 0 0 0 1px currentColor;transform:none}
.crd.crd :is(.pg-map__open,.ev-map__open):hover{background:var(--cr-ink);color:var(--cr-cream);box-shadow:inset 0 0 0 1px var(--cr-ink);transform:none}

/* Citizens (page-citizens.php; page-gift-vouchers.php reuses the ct-get__*, ct-maths and ct-cta blocks). */
/* Bands in <main> (top grid, You'd have saved, Questions, closing band): the section pad, no margins.
   The intro and the card column start on the pad line (the hero's own 56px / 30px and the column's
   56px drop would double it). */
.crd.crd :is(.ct-top,.ct-saved,.ct-faq,.ct-cta){margin-top:0;padding-top:var(--cr-section-pad);padding-bottom:var(--cr-section-pad)}
.crd.crd .ct-intro{padding-top:0}
@media (min-width:900px){
  .crd.crd .ct-side{margin-top:0}
}
/* Cards: the pass, the perk / step rows and the closing band; the receipt keeps its torn bottom edge square. */
.crd.crd :is(.ct-pass,.ct-get__item,.ct-cta__band){border-radius:var(--cr-radius-card)}
.crd.crd .ct-maths{border-radius:var(--cr-radius-card) var(--cr-radius-card) 0 0}
/* The pass's frame lines stay concentric with its card corners. */
.crd.crd .ct-pass__inner::before{border-radius:calc(var(--cr-radius-card) - 10px)}
.crd.crd .ct-pass__inner::after{border-radius:calc(var(--cr-radius-card) - 14px)}
/* Closing band: near-black. */
.crd.crd .ct-cta__band{background:var(--cr-black)}

/* Open in Maps' arrow sat on the button's top-left corner, over the "O" (the maps' svg{position:absolute;
   inset:0} caught it); it follows the label now. */
.crd.crd :is(.pg-map__open,.ev-map__open) .cr-ico{position:static}


/* ---- Home (front-page.php, template-parts/home-*, components/night-card, components/show-row) ---- */
/* (Every homepage band's section pad is in design-home.css 27, 28 and 30; the billboard keeps its height.) */
/* Cards: the Bar tiles at the card radius (Most booked's cards already are). */
.crd.crd .cr-barcard{border-radius:var(--cr-radius-card)}
/* Billboard Tickets: the 5px buy shape wherever it is a button (a phone billboard without a photo keeps its arrow circle). */
.crd.crd .cr-promo.is-media .cr-promo__cta{border-radius:var(--cr-radius-btn)}
@media (min-width:600px){
  .crd.crd .cr-promo__cta{border-radius:var(--cr-radius-btn)}
}
/* New here's outline button stays a 1px hairline on hover (the port thickened it to 1.5px). */
.crd.crd .cr-new .cr-btn--ghost:hover{box-shadow:inset 0 0 0 1px currentColor}
/* All future dates: month arrows and day cells take the sm corner (6px since the polish pass) and a
   1px line. */
.crd.crd .cr-calbtn{border:0;border-radius:var(--cr-radius-btn);box-shadow:inset 0 0 0 1px currentColor}
.crd.crd .cr-cal__cell{border-width:1px;border-radius:var(--cr-radius-btn)}
/* Labels: the calendar's weekday initials. */
.crd.crd .cr-cal__dow{letter-spacing:var(--cr-label-track)}
/* Dark surfaces on the tokens: billboard, Tonight band, Bar tiles; the wells under photos are raised black.
   The Tonight band needs body.home to beat design-home.css's body.home rule. */
.crd.crd .cr-promo,.crd.crd .cr-bar .cr-barcard__art{background:var(--cr-black)}
body.home .crd .cr-tonight{background:var(--cr-black)}
.crd.crd .cr-day .cr-hero,.crd.crd .cr-popart--photo,.crd.crd .cr-new__photo{background-color:var(--cr-black-raised)}
/* Paper: the All future dates card (was a #FFFDF6 to #FAF4DF fade) and its day cells (were #fff); the
   cells stay at single .crd so .is-dark, .is-tight and .is-blank keep their own backgrounds. */
.crd.crd .cr-allf{background:var(--cr-paper)}
.crd .cr-cal__cell{background:var(--cr-paper)}
/* Light type on oxblood is cream (was #FFF6E0). */
.crd a.cr-cal__cell.is-tight:hover{color:var(--cr-cream)}
/* Marigold means buy. 10. The Bar tiles' script ("house", "martini", "local"): brass, 6.6:1 on the
   near-black tiles; cream would merge it with the cream first line. */
.crd.crd .cr-bar .cr-typetile__b{color:var(--cr-brass)}
/* New here's stat numerals: brass, not the dark gold #A87700 (Brett, 07 Oct: marigold and its golds are buy only). */
.crd.crd .cr-stat__n{color:var(--cr-brass)}
/* New here's photo on the card radius (night cards too, since the polish pass). */
.crd.crd .cr-new__photo{border-radius:var(--cr-radius-card)}


/* ---- What's on (/whats-on/ list + /whats-on/calendar/): archive-show.php, template-parts/whats-on/night.php ---- */
/* Sections: the hero (title, search, filters) and the calendar + list band, the pad top and bottom, no margin between. */
.crd.crd .wo-hero{padding-top:var(--cr-section-pad);padding-bottom:var(--cr-section-pad)}
.crd.crd .wo-layout{margin-top:0;padding-top:var(--cr-section-pad);padding-bottom:var(--cr-section-pad)}
/* "On every week" sits inside the list column: one pad above its heading, its double rule centred in the gap. */
.crd.crd .wo-reg{margin-top:calc(var(--cr-section-pad) / 2);padding-top:calc(var(--cr-section-pad) / 2)}
/* Cards: the month card, show rows, weekly-regular cards, the empty state and the "... only" date bar. */
.crd.crd :is(.wo-cal,.wo-row,.wo-reg__card,.wo-empty,.wo-datebar){border-radius:var(--cr-radius-card)}
/* Secondary buttons (month arrows, Show all dates): the 5px hairline outline; a filled hover keeps an ink ring. */
.crd.crd :is(.wo-calbtn,.wo-datebar__clear){border:0;border-radius:var(--cr-radius-btn);box-shadow:inset 0 0 0 1px currentColor}
.crd.crd .wo-calbtn:hover:not(:disabled){box-shadow:inset 0 0 0 1px var(--cr-ink)}
/* The search box's clear button takes the button corner. */
.crd.crd .wo-search__clear{border-radius:var(--cr-radius-btn)}
/* Status pills: TONIGHT / TOMORROW full round, no gold halo. */
.crd.crd .wo-when{border-radius:var(--cr-radius-pill);box-shadow:none}
/* The regulars' round arrow takes the hairline weight. */
.crd.crd .wo-reg__go{border-width:1px}
/* Labels: the calendar's M T W T F S S. */
.crd.crd .wo-cal__dow{letter-spacing:var(--cr-label-track)}
/* Day cells on paper (single .crd so the past / dark / today / selected states still win); today's tint
   from the tokens (not while selected); the selected day's type and dots cream, no offset shadow. */
.crd .wo-cell{background:var(--cr-paper)}
.crd .wo-cell.is-today:not(.is-sel){background:color-mix(in srgb,var(--cr-oxblood) 6%,var(--cr-paper))}
.crd .wo-cell.is-sel{color:var(--cr-cream);box-shadow:none}
.crd .wo-cell.is-sel .wo-dots i{background:var(--cr-cream)}
/* Sold-out row: the palette cream instead of #F1EDDA. Search placeholder: muted ink. */
.crd .wo-row.is-sold{background:var(--cr-cream)}
.crd .wo-search__input::placeholder{color:var(--cr-ink-muted)}

/* the filter chips change from full-round pills to 5px hairline buttons (they are aria-pressed
   toggles, like the homepage's .cr-pill); use var(--cr-radius-pill) here if Brett reads them as pills. */
.crd.crd .wo-chip{border:0;border-radius:var(--cr-radius-btn);box-shadow:inset 0 0 0 1px currentColor}
.crd.crd .wo-chip.is-on{box-shadow:inset 0 0 0 1px var(--cr-ink)}


/* ---- Event page (single-show.php, template-parts/event/, template-parts/flicket-embed.php): one-off and season ---- */
/* Rhythm: one pad under the hero, between the body sections and above the footer. The sections sit in the
   body column beside the sticky booking panel, so each takes the pad as a top margin and the grid closes
   with it (padding top and bottom on each would put 192px between short blocks). */
.crd.crd :is(.ev-pick,.ev-sec,.ev-pair,.ev-solo,.ev-visit){margin-top:var(--cr-section-pad)}
.crd.crd .ev-solo .ev-house{margin-top:0}
.crd.crd .ev-grid{padding-bottom:var(--cr-section-pad)}
/* Cards: content panels and tiles. */
.crd.crd :is(.ev-act,.ev-house,.ev-card,.ev-visit,.ev-cit,.ev-reg,.ev-tile,.ev-calcard,.ev-pickstub,.ev-flicket__frame){border-radius:var(--cr-radius-card)}
/* Booking ticket: card corners, notches kept; inner keylines stay concentric with the new corners. */
.crd.crd .ev-ticket__top,.crd.crd .ev-ticket__top::before{border-radius:var(--cr-radius-card) var(--cr-radius-card) 0 0}
.crd.crd .ev-ticket__stub{border-radius:0 0 var(--cr-radius-card) var(--cr-radius-card)}
.crd.crd .ev-visit::after{border-radius:calc(var(--cr-radius-card) - 9px)}
.crd.crd .ev-cit::after{border-radius:calc(var(--cr-radius-card) - 7px)}
@media (max-width:899px){
  .crd.crd .ev-panel.is-season .ev-ticket__top{border-radius:var(--cr-radius-card)}
  .crd.crd .ev-visit::after{border-radius:calc(var(--cr-radius-card) - 7px)}
  .crd.crd .ev-cit::after{border-radius:calc(var(--cr-radius-card) - 6px)}
}
/* Waitlist / See what's on stub: grey and notches kept, no drop, no press. */
.crd.crd .ev-buy--wait,.crd.crd .ev-buy--wait:hover,.crd.crd .ev-buy--wait:active{filter:none;transform:none}
/* Secondary controls (hero Play video, calendar month arrows): the 5px hairline outline. */
.crd.crd .ev-play,.crd.crd .ev-mnav{border:0;border-radius:var(--cr-radius-btn);box-shadow:inset 0 0 0 1px currentColor}
.crd.crd .ev-mnav:hover:not(:disabled){box-shadow:inset 0 0 0 1px var(--cr-ink)}
/* Round icon controls stay round but lose the hard drop and nudge; the weekend cards' arrow ring goes hairline. */
.crd.crd .ev-vid__btn,.crd.crd .ev-vid__btn:hover,.crd.crd .ev-carbtn,.crd.crd .ev-carbtn:hover{box-shadow:none;transform:none}
.crd.crd .ev-card__go{border:0;box-shadow:inset 0 0 0 1px currentColor}
/* Hero flag pill (Last tickets): no folded-corner clip, no drop. */
.crd.crd .ev-flagwrap{filter:none}
.crd.crd .ev-flag{clip-path:none}
/* Small-caps labels at the one tracking. */
.crd.crd :is(.ev-vid__label,.ev-quote__src,.ev-badge__dow,.ev-badge__m,.ev-act__role,.ev-fact dt,.ev-tile__dow,.ev-tile__m,.ev-tile__so,.ev-calcard__dow){letter-spacing:var(--cr-label-track)}
/* Light type on dark is cream (was #FFF6E0, #FFD772, ivory at 78%). */
.crd.crd .ev-badge__dow,.crd.crd .ev-tile.is-sel:not(.is-sold),.crd.crd .ev-tile.is-sel:not(.is-sold) .ev-tile__st,.crd.crd .ev-cell.is-sel:not(.is-sold),.crd.crd .ev-cell.is-sel:not(.is-sold) .ev-cell__s{color:var(--cr-cream)}
.crd.crd .ev-quote__src,.crd.crd .ev-tile.is-sel:not(.is-sold) :is(.ev-tile__dow,.ev-tile__m){color:color-mix(in srgb,var(--cr-cream) 78%,transparent)}
/* Status words lose green: a tile's word is muted and its dot carries the colour (few left in brass, as
   .cr-status--fast); a calendar cell's time is ink. */
.crd.crd .ev-tile__st--ok,.crd.crd .ev-tile__st--few{color:var(--cr-ink-muted)}
.crd.crd .ev-tile__st--ok i{background:var(--green)}
.crd.crd .ev-tile__st--few i{background:var(--cr-brass)}
.crd.crd .ev-tile.is-sel:not(.is-sold) .ev-tile__st i{background:currentColor}
.crd.crd .ev-cell__s--ok{color:var(--cr-ink)}
/* White surfaces are paper; single .crd on purpose so the cells' states (selected, sold, no show, past, blank) still win. */
.crd .ev-badge,.crd .ev-cell,.crd .ev-lg--on{background-color:var(--cr-paper)}
/* Dark surfaces: the carousel ground and video frame black, a slide's base raised black (keep the :not():
   art and season-logo slides keep their own colours). */
.crd.crd .ev-car,.crd.crd .ev-vidframe{background-color:var(--cr-black)}
.crd.crd .ev-slide:not(.ev-slide--art,.ev-slide--msart){background-color:var(--cr-black-raised)}
/* Marigold means buy (item 10): the dark weekend tiles' script goes cream (these tiles take staff tones,
   where brass would be weak on green); the gold art tone keeps its oxblood. */
.crd.crd :is(.ev-card__art--ink,.ev-card__art--ox,.ev-card__art--blue,.ev-card__art--green) .ev-typetile__b{color:var(--cr-cream)}
/* No 3D type: the art slide's title and the weekend tiles' type. */
.crd.crd .ev-arttype,.crd.crd .ev-art--gold .ev-arttype,.crd.crd .ev-typetile__a{text-shadow:none}

/* The hero lands one pad under the header on desktop by sizing the back link's margin; 56px is the
   link's 44px min-height plus .ev-grid's 12px margin-top, so it drifts if either changes (link hidden on phones). */
.crd.crd .ev-back{margin-top:calc(var(--cr-section-pad) - 56px)}


/* ---- Your Visit (page-visit.php, page-your-visit.php, template-parts/visit/) ---- */
/* Sections: the six content sections carry the pad (the hero and closing cards are shared above); the
   two-column wrapper carries none, so nothing is padded twice. */
.crd.crd .yv-layout{margin-top:0;padding-bottom:0;row-gap:0}
.crd.crd .yv-sec{padding-top:var(--cr-section-pad);padding-bottom:var(--cr-section-pad)}
.crd.crd .yv-sec+.yv-sec{margin-top:0}
/* The street door card; its note cream (was marigold), the plaque number ink; the stair flights muted ink, not green. */
.crd.crd .yv-street{border-radius:var(--cr-radius-card)}
.crd.crd .yv-street__num{color:var(--cr-ink)}
.crd.crd .yv-flight{color:var(--cr-ink-muted)}

/* the sticky index takes the pad as margin so it lines up with the first heading and stops level
   with the closing cards; check the scroll at 900-1199px. */
.crd.crd .yv-layout>.yv-toc{margin-block:var(--cr-section-pad)}
@media (max-width:899px){
  .crd.crd .yv-layout>.yv-toc{margin-block:0}
}
/* negative scroll-margin (the pad comes off it) keeps index and #anchor jumps landing the heading
   112px under the top (84px under 900px); check /your-visit/#getting in Safari and Chrome. */
.crd.crd .yv-sec{scroll-margin-top:calc(23px - var(--cr-section-pad))}
@media (min-width:900px) and (max-width:959px){
  .crd.crd .yv-sec{scroll-margin-top:calc(41px - var(--cr-section-pad))}
}
@media (max-width:899px){
  .crd.crd .yv-sec{scroll-margin-top:calc(13px - var(--cr-section-pad))}
}


/* ---- Citizens (page-citizens.php; the blocks it shares with Gift vouchers are above) ---- */
/* The saved panel and show cards on the card radius; the panel's inner frame follows. */
.crd.crd :is(.ct-saved__panel,.ct-show){border-radius:var(--cr-radius-card)}
.crd.crd .ct-saved__panel::after{border-radius:calc(var(--cr-radius-card) - 8px)}
@media (max-width:899px){
  .crd.crd .ct-saved__panel::after{border-radius:calc(var(--cr-radius-card) - 4px)}
}
/* Green leaves the type: Citizen prices in the receipt and on the saved cards are ink. The receipt total
   is left out so it stays oxblood (a plain .ct-maths__row b ties with the port's total rule and wins). */
.crd.crd .ct-maths__row:not(.ct-maths__row--total) b,.crd.crd .ct-show__price b{color:var(--cr-ink)}


/* ---- Bar & Food (page-bar.php, template-parts/bar/) ---- */
/* Sections: every band in <main> on the pad; the ported margins go. The heading's own top padding sat
   inside the intro band, so the band's replaces it; the hours card keeps its 8px drop below the kicker. */
.crd.crd :is(.bf-herowrap,.bf-intro,.bf-sec,.bf-food,.bf-findwrap,.bf-cta){margin-top:0;margin-bottom:0;padding-top:var(--cr-section-pad);padding-bottom:var(--cr-section-pad)}
.crd.crd .bf-intro__copy.pg-hero{padding-top:0}
@media (min-width:900px){
  .crd.crd .bf-hours{margin-top:8px}
}
/* Cards: drink tiles and dish cards (hours and Finding us are .pg-card, shared above); Finding us' inner
   hairline frame stays concentric (inset 9px; 7px under 900px). */
.crd.crd :is(.bf-item,.bf-dish){border-radius:var(--cr-radius-card)}
.crd.crd .bf-find::after{border-radius:calc(var(--cr-radius-card) - 9px)}
@media (max-width:899px){
  .crd.crd .bf-find::after{border-radius:calc(var(--cr-radius-card) - 7px)}
}
/* Status pills: full round, no folded-corner clip, no drop. */
.crd.crd .bf-today{border-radius:var(--cr-radius-pill)}
.crd.crd .bf-flag{clip-path:none}
.crd.crd .bf-flagwrap{filter:none}
/* Colours: the drink tag (MOST ORDERED, was #4A463F / #FFF6E0) black with cream type; the hero sub line
   cream (was peach rgba(255,236,196,.88)); the map label is shared above. */
.crd.crd .bf-item__chip{background:var(--cr-black);color:var(--cr-cream)}
.crd.crd .bf-hero__sub{color:var(--cr-cream)}
/* Marigold means buy (Brett, 07 Oct): "house" on the ox tile and the dark dish tile's script ("all
   night") are brass, like the homepage's bar tiles. */
.crd .cr-art--ox .bf-type__b,.crd .bf-dish__art--type .bf-type__b{color:var(--cr-brass)}

/* under 900px the hero is a full-bleed band flush under the header, so no cream pad above or below
   it (the literal 64px would read as a gap). Same call as the event and homepage heroes. */
@media (max-width:899px){
  .crd.crd .bf-herowrap{padding-top:0;padding-bottom:0}
}
/* The inset hero panel on the card radius (desktop only; was 28px). */
@media (min-width:900px){
  .crd.crd .bf-hero{border-radius:var(--cr-radius-card)}
}


/* ---- Contact (page-contact.php) ---- */
/* Contact: Find us, Venue hire and the end cards each carry the pad (the hero and end cards are shared
   above); the wrapper adds none. */
.crd.crd .ctc-sec{margin-top:0;padding-top:var(--cr-section-pad);padding-bottom:var(--cr-section-pad)}
.crd.crd .ctc-layout{margin-top:0;padding-bottom:0}

/* negative scroll-margin keeps #find-us and #venue-hire (the footer's links) landing the heading
   112px down (84px under 900px). */
.crd.crd .ctc-sec{scroll-margin-top:calc(23px - var(--cr-section-pad))}
@media (min-width:900px) and (max-width:959px){
  .crd.crd .ctc-sec{scroll-margin-top:calc(41px - var(--cr-section-pad))}
}
@media (max-width:899px){
  .crd.crd .ctc-sec{scroll-margin-top:calc(13px - var(--cr-section-pad))}
}


/* ---- Default page (page.php; index.php shares it) and the 404 (404.php) ---- */
/* Body bands: no top margin, the pad top and bottom (the hero is shared above). */
.crd.crd .dp-layout{margin-top:0;padding-top:var(--cr-section-pad);padding-bottom:var(--cr-section-pad)}
.crd.crd .nf-next{padding-top:var(--cr-section-pad);padding-bottom:var(--cr-section-pad)}
/* The 404's empty note on the card radius (its show cards are .cr-sp__item, shared above). */
.crd.crd .nf-next .cr-sp__empty{border-radius:var(--cr-radius-card)}
/* 404 What's on (oxblood primary): 5px, no press shadow or shift, cream type; hover deepens the oxblood. */
.crd.crd .nf-actions .cr-btn--ox{border-radius:var(--cr-radius-btn);box-shadow:none;transform:none;color:var(--cr-cream)}
.crd.crd .nf-actions .cr-btn--ox:hover{background:color-mix(in srgb,var(--cr-oxblood) 80%,var(--cr-black))}
/* Password-protected page: the submit is a 5px button with no shadow. */
.crd.crd .dp-card .post-password-form input[type="submit"]{border-radius:var(--cr-radius-btn);box-shadow:none}
/* Prose: links and list markers ink, not green; hover thickens the underline instead of changing colour. */
.crd.crd .dp-card .pg-prose a{color:var(--cr-ink)}
.crd.crd .dp-card .pg-prose li::marker{color:var(--cr-ink)}
.crd.crd .dp-card .pg-prose a:hover{text-decoration-thickness:2.5px}

/* results pagination goes from 44px circles to 5px hairline squares (the WordPress "..." span
   takes the outline too, as it took the 1.5px border); the current page stays filled ink. */
.crd.crd .dp-pages .page-numbers{border:0;border-radius:var(--cr-radius-btn);box-shadow:inset 0 0 0 1px currentColor}
.crd.crd .dp-pages .page-numbers.current{box-shadow:inset 0 0 0 1px var(--cr-ink)}

/* Footer socials (Brett, 08 Oct): Instagram and YouTube as icons under "Seven nights a week", every
   page. Outline icons, 24px, cream at 70%, marigold on hover (an icon hover); each a 44px tap target,
   pulled back by its padding so the first icon lines up with the address and the column keeps its
   height. */
.crd.crd .cr-footer .cr-footer__social{display:flex;align-items:center;gap:0;margin:6px 0 -10px -10px}
.crd.crd .cr-footer .cr-footer__social a{display:grid;place-items:center;width:44px;height:44px;padding:0;color:color-mix(in srgb,var(--cr-cream) 70%,transparent);text-decoration:none;background:none}
.crd.crd .cr-footer .cr-footer__social a:hover{color:var(--cr-marigold)}
.crd.crd .cr-footer .cr-footer__social svg{width:24px;height:24px}

/* Ticket pop-up (inc/ticket-popup.php; Brett, 08 Oct): on a show with "Get tickets in a pop-up", Get
   tickets opens Flicket's booking in a dialog over the event page. A black bar with the show and
   Close, Flicket's frame filling the rest, a plain link to open it in a new tab. Phones: full screen.
   It's printed after .crd, so it sets its own type. */
.cr-tpop{box-sizing:border-box;width:min(760px,calc(100vw - 48px));height:min(880px,calc(100dvh - 48px));max-width:none;max-height:none;padding:0;border:0;border-radius:var(--cr-radius-lg);background:var(--cr-paper);color:var(--cr-ink);box-shadow:var(--cr-shadow-card);overflow:hidden;font-family:var(--cr-font-body)}
.cr-tpop[open]{display:flex;flex-direction:column}
/* The backdrop: --cr-black at 70% over the page grain (Brett, 08 Oct). Written out: ::backdrop doesn't
   inherit custom properties in Safari or older Chrome, so a var() there painted nothing. */
.cr-tpop::backdrop{background:rgb(15 14 12 / .7) url('../design/grain.webp') 0 0/220px 220px;background-blend-mode:multiply}
.cr-tpop__bar{display:flex;flex:none;align-items:center;justify-content:space-between;gap:16px;min-height:56px;padding:6px 8px 6px 20px;background:var(--cr-black);color:var(--cr-cream)}
.cr-tpop__title{min-width:0;margin:0;overflow:hidden;font-family:var(--cr-font-display);font-weight:800;font-size:var(--cr-fs-h4);line-height:1.1;text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis;color:var(--cr-cream)}
.cr-tpop__close{flex:none;min-height:44px;padding:0 12px;border:0;background:none;color:var(--cr-cream);font-family:var(--cr-font-body);font-weight:700;font-size:var(--cr-fs-link);line-height:1;cursor:pointer}
.cr-tpop__close:hover{color:var(--cr-marigold)}
.cr-tpop__close:focus-visible,.cr-tpop__fallback a:focus-visible{outline:3px solid var(--cr-marigold);outline-offset:2px}
.cr-tpop__body{position:relative;flex:1;min-height:0;background:var(--cr-paper)}
.cr-tpop__loading{position:absolute;inset:0;display:grid;place-items:center;margin:0;font-size:var(--cr-fs-body);color:var(--cr-ink-muted)}
.cr-tpop__frame{position:absolute;inset:0;width:100%;height:100%;border:0;background:var(--cr-paper);opacity:0;transition:opacity .2s ease}
.cr-tpop.is-loaded .cr-tpop__frame{opacity:1}
.cr-tpop__fallback{flex:none;margin:0;padding:10px 20px;border-top:1px solid var(--cr-ink-line);font-size:var(--cr-fs-fine);color:var(--cr-ink-muted)}
.cr-tpop__fallback a{color:var(--cr-ink);text-decoration:underline;text-underline-offset:3px}
html.cr-tpop-open,html.cr-tpop-open body{overflow:hidden}
@media (max-width:599px){
  .cr-tpop{width:100vw;height:100dvh;max-height:100dvh;border-radius:0}
}
@media (prefers-reduced-motion:reduce){
  .cr-tpop__frame{transition:none}
}
