/* ============================================================================
   PATTAYA.GYM — DESIGN SYSTEM 2026 (light + volt)
   ============================================================================
   Replaces the 2025 black/neon/marquee stylesheet.

   WHAT CHANGED AND WHY
   - Light canvas, dark footer panel.
   - ONE accent (volt #f4f1ec) instead of five. Volt is a FILL, never text:
     every volt surface carries near-black ink. `--accent-ink` is the AA-safe
     variant for anything volt-flavoured that has to be readable as text.
   - No glow, no neon text-shadow, no marquee, no scroll-progress bar.
   - Scales: 1.200 type ratio, 0.85rem card radius, one shadow + motion ramp.

   LEGACY VARIABLE NAMES ARE LOAD-BEARING — DO NOT RENAME
   The generated HTML carries ~8,300 inline `style=` attributes that reference
   --s-*, --surface, --line, --r-lg, --r-pill, --muted, --text, --text-2,
   --hint, --cyan, --pink, --mint, --yellow, --font-mono, --font-display,
   --max, --pad, --t-fast and --text-muted. No stylesheet rule can reach an
   inline style, so those names are kept and simply repointed at the new
   palette. Renaming one silently breaks hundreds of pages.

   FONT URLS: keep the `/fonts/<name>.woff2?v=<digits>` shape — build-v2.js
   syncCssFontVersion() rewrites that query string on every build.
   ============================================================================ */

/* ============ FONTS (self-hosted; no third-party requests) ============ */









/* ============ TOKENS ============ */
:root {
  /* ---- Palette: semantic (use these in new code) ---- */
  --brand:         #55514d;  /* fill: chips, table headers, large areas       */
  --brand-ink:     #55514d;  /* AA-safe: link text, primary button background */
  --brand-bright:  #f4f1ec;  /* on dark surfaces only                          */
  --accent:        #f4f1ec;  /* THE volt. A fill. Never a text colour.        */
  --accent-ink:    #55514d;  /* AA-safe volt-flavoured text                   */

  --canvas:        #f4f1ec;
  --sunken:        #f4f1ec;
  --ink:           #0b0b0c;
  --ink-muted:     #55514d;
  --ink-subtle:    #55514d;
  --line-strong:   #bdb8b3;

  /* S2-H1, 2026-07-29 - control boundary.
     --line (#dad5ce) is 1.22:1 against the canvas and --line-strong is 1.55:1.
     Both are fine for a decorative divider and both fail WCAG 2.2 AA 1.4.11,
     which requires 3:1 for the visual information needed to identify a control.
     Inputs, selects and outlined buttons had no other boundary, so on this
     canvas they were effectively borderless. #55514d clears 3:1 against every
     surface the site uses - canvas 3.50, sunken 3.36, white 3.73, surface-3
     3.23 - and is the lightest value that does. Dividers keep --line. */
  --line-control:  #55514d;

  /* Dark panel — footer, dark bands */
  --panel:         #0b0b0c;
  --panel-sunken:  #0b0b0c;
  --panel-line:    #0b0b0c;
  --panel-ink:     #f4f1ec;
  --panel-muted:   #55514d;
  --panel-subtle:  #55514d;

  /* Status roles — not brand colours */
  --ok:      #bdb8b3; --ok-ink:     #55514d;
  --warn:    #bdb8b3; --warn-ink:   #55514d;
  --info:    #bdb8b3; --info-ink:   #55514d;
  --danger:  #55514d; --danger-ink: #55514d;

  /* ---- Legacy names — repointed, NOT renamed (see header note) ---- */
  --bg:          #f4f1ec;
  --surface:     #ffffff;
  --surface-2:   #ffffff;
  --surface-3:   #f4f1ec;
  --card:        #ffffff;
  --line:        #dad5ce;
  --line-soft:   #f4f1ec;
  --border:      #dad5ce;

  --text:        #0b0b0c;
  --text-2:      #55514d;
  --muted:       #55514d;
  --text-muted:  #55514d;  /* was referenced on 15 pages but never declared */
  --hint:        #55514d;
  --pure-white:  #ffffff;

  /* The old five accents now all resolve into the single volt/brand family,
     which is what flattens the multi-colour look inside inline styles too. */
  --cyan:   #55514d;
  --mint:   #55514d;
  --pink:   #55514d;
  --yellow: #55514d;
  --red:    #55514d;
  --orange: #55514d;

  /* Glow tokens neutralised rather than deleted: any stylesheet or inline rule
     still referencing them now gets a flat, tasteful shadow instead of neon. */
  --glow-pink:   0 1px 2px rgba(11, 11, 12, 0.06);
  --glow-cyan:   0 1px 2px rgba(11, 11, 12, 0.06);
  --glow-yellow: 0 1px 2px rgba(11, 11, 12, 0.06);
  --glow-mint:   0 1px 2px rgba(11, 11, 12, 0.06);
  --glow-red:    0 1px 2px rgba(11, 11, 12, 0.06);

  /* ---- Faces ---- */
  --font-display: Geist, Geist, system-ui, -apple-system, sans-serif;
  --font-body:    Geist, system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
  --font-mono:    Geist, ui-monospace, SFMono-Regular, Consolas, monospace;

  /* ---- Type scale: 1.200 minor third (network token) ---- */
  --text-2xs:  0.694rem;
  --text-xs:   0.833rem;
  --text-sm:   0.9rem;
  --text-base: 1rem;
  --text-lg:   1.2rem;
  --text-xl:   1.44rem;
  --text-2xl:  1.728rem;
  --text-3xl:  2.074rem;
  --text-4xl:  2.488rem;

  /* ---- Space ---- */
  --s-1: 4px;  --s-2: 8px;  --s-3: 12px; --s-4: 16px; --s-5: 20px;
  --s-6: 24px; --s-7: 28px; --s-8: 32px; --s-10: 40px; --s-12: 48px; --s-16: 56px; --s-20: 64px;

  /* ---- Radius ---- */
  --r-sm: 6px; --r-md: 10px; --r-lg: 14px; --r-xl: 18px; --r-pill: 999px;

  /* ---- Elevation ---- */
  --shadow-flat:   0 1px 2px rgba(11, 11, 12, 0.05);
  --shadow-soft:   0 1px 2px rgba(11, 11, 12, 0.05), 0 8px 24px rgba(11, 11, 12, 0.06);
  --shadow-raised: 0 2px 4px rgba(11, 11, 12, 0.07), 0 16px 40px rgba(11, 11, 12, 0.10);
  --shadow-card:   var(--shadow-soft);
  --panel-soft:    #0b0b0c;

  /* ---- Layout ---- */
  --max: 1120px;
  --pad: 20px;
  --nav-h: 60px;

  /* ---- Motion ---- */
  --t-fast: 120ms;
  --t-base: 220ms;
  --easing: cubic-bezier(0.16, 1, 0.3, 1);

  color-scheme: light;
  accent-color: var(--brand-ink);
}
@media (min-width: 768px) { :root { --pad: 32px; } }

/* ============ RESET ============ */
*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; overflow-x: clip; }
html {
  background: var(--canvas);
  -webkit-text-size-adjust: 100%;
  scroll-padding-top: calc(var(--nav-h) + 16px);
  scroll-behavior: smooth;
}
body {
  min-height: 100vh;
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.6;
  color: var(--ink);
  background: var(--canvas);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-feature-settings: "cv11", "ss01";
}
img, svg, video { display: block; max-width: 100%; height: auto; }
button, input, select { font: inherit; color: inherit; }
button { background: none; border: 0; cursor: pointer; padding: 0; }
a { color: inherit; text-decoration: none; }
ul { margin: 0; padding: 0; list-style: none; }
h1, h2, h3, p { margin: 0; }
::selection { background: var(--accent); color: var(--ink); }
[hidden] { display: none !important; }

/* ============ SKIP LINK ============ */
.skip-link {
  position: absolute; left: var(--s-4); top: -100px; z-index: 200;
  background: var(--ink); color: #fff;
  padding: 0.7rem 1.1rem; border-radius: var(--r-md);
  font-weight: 600; font-size: var(--text-sm);
  transition: top var(--t-fast) var(--easing);
}
.skip-link:focus { top: var(--s-4); }

/* ============ LAYOUT ============ */
.wrap {
  width: 100%;
  max-width: var(--max);
  margin-inline: auto;
  padding-inline: var(--pad);
}
.section { padding-block: var(--s-12); }
@media (min-width: 900px) { .section { padding-block: var(--s-16); } }
.section + .section { padding-top: 0; }

/* ============ TYPOGRAPHY ============ */
h1, h2, h3 {
  font-family: var(--font-display);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.15;
  color: var(--ink);
  text-wrap: balance;
}

/* Section eyebrow — small caps label, optionally numbered.
   `.num` is the leading counter; it is the one place volt appears as text-like
   colour, and it uses the AA-safe accent-ink, never raw volt. */

/* Heading highlight spans. The old palette gave every heading a different neon
   word; they now all resolve to one calm family. */

/* ============ HEADER ============
   Slim, sticky, one row, hairline bottom. The old header was a 2-row dark bar
   with a starred neon CTA; this is 60px of white with a volt pill. */
.nav {
  position: sticky; top: 0; z-index: 100;
  background: rgba(255, 255, 255, 0.9);
  -webkit-backdrop-filter: saturate(1.4) blur(10px);
  backdrop-filter: saturate(1.4) blur(10px);
  border-bottom: 1px solid var(--line);
}
.nav-row {
  width: 100%; max-width: var(--max);
  margin-inline: auto;
  padding-left: max(var(--pad), env(safe-area-inset-left));
  padding-right: max(var(--pad), env(safe-area-inset-right));
  height: var(--nav-h);
  display: flex; align-items: center; gap: var(--s-5);
}
.brand {
  display: inline-flex; align-items: center; gap: 0.5rem;
  min-height: 2.75rem;
  font-family: var(--font-display);
  font-size: 1.06rem; font-weight: 700; letter-spacing: -0.03em;
  color: var(--ink); white-space: nowrap; flex-shrink: 0;
}
/* Brand mark: volt tile with a dark ring glyph. Drawn in CSS so no extra
   request, and it survives at any size. */
.brand::before {
  content: "";
  width: 26px; height: 26px; flex-shrink: 0;
  border-radius: 8px;
  background: var(--accent);
  box-shadow: inset 0 0 0 4px var(--ink), inset 0 0 0 6px var(--accent);
}

.nav-links {
  display: none;
  align-items: center; gap: var(--s-5);
  margin-left: auto;
  font-size: var(--text-sm); font-weight: 500;
}
@media (min-width: 1040px) { .nav-links { display: flex; } }
.nav-links a {
  color: var(--ink-muted);
  padding-block: 4px;
  border-bottom: 2px solid transparent;
  transition: color var(--t-fast) var(--easing), border-color var(--t-fast) var(--easing);
  white-space: nowrap;
}
.nav-links a:hover { color: var(--ink); border-bottom-color: var(--accent); }
.nav-links a[aria-current="page"] { color: var(--ink); border-bottom-color: var(--brand-ink); }

.nav-cta {
  display: none;
  align-items: center; gap: 0.4rem;
  min-height: 2.75rem;
  background: var(--accent); color: var(--ink);
  font-size: var(--text-sm); font-weight: 700;
  padding: 0.5rem 1rem; border-radius: var(--r-pill);
  border: 1px solid rgba(11, 11, 12, 0.1);
  white-space: nowrap; flex-shrink: 0;
  transition: background-color var(--t-fast) var(--easing), transform var(--t-fast) var(--easing);
}
@media (min-width: 720px) { .nav-cta { display: inline-flex; margin-left: auto; } }
@media (min-width: 1040px) { .nav-cta { margin-left: 0; } }
.nav-cta:hover { background: var(--ink); color: var(--accent); }
.nav-cta:active { transform: translateY(1px); }

.nav-burger {
  display: inline-flex; flex-direction: column; justify-content: center; gap: 4px;
  width: 44px; height: 44px; margin-left: auto;
  border-radius: var(--r-md);
  border: 1px solid var(--line);
  align-items: center; flex-shrink: 0;
  transition: border-color var(--t-fast) var(--easing);
}
.nav-burger:hover { border-color: var(--line-strong); }
@media (min-width: 1040px) { .nav-burger { display: none; } }
@media (min-width: 720px) { .nav-burger { margin-left: var(--s-2); } }
.nav-burger-bar {
  display: block; width: 17px; height: 2px;
  background: var(--ink); border-radius: 2px;
  transition: transform var(--t-fast) var(--easing), opacity var(--t-fast) var(--easing);
}
.nav-burger[aria-expanded="true"] .nav-burger-bar:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.nav-burger[aria-expanded="true"] .nav-burger-bar:nth-child(2) { opacity: 0; }
.nav-burger[aria-expanded="true"] .nav-burger-bar:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

/* Mobile drawer */
.nav-mobile {
  position: sticky; top: var(--nav-h); z-index: 99;
  display: grid; gap: 2px;
  background: var(--surface);
  border-bottom: 1px solid var(--line);
  box-shadow: var(--shadow-soft);
  padding-top: var(--s-3);
  padding-right: max(var(--pad), env(safe-area-inset-right));
  padding-bottom: max(var(--s-4), env(safe-area-inset-bottom));
  padding-left: max(var(--pad), env(safe-area-inset-left));
  max-height: calc(100vh - var(--nav-h));
  max-height: calc(100dvh - var(--nav-h));
  overflow-y: auto;
}
@media (min-width: 1040px) { .nav-mobile { display: none !important; } }
.nav-mobile-link {
  padding: 0.7rem 0.25rem;
  font-size: var(--text-base); font-weight: 500;
  color: var(--ink);
  border-bottom: 1px solid var(--line-soft);
}
.nav-mobile-link[aria-current="page"] {
  padding-inline: var(--s-3);
  border-radius: var(--r-md);
  background: var(--sunken);
  color: var(--brand-ink);
  font-weight: 750;
}
.nav-mobile-link:hover { color: var(--brand-ink); }
.nav-mobile-group {
  margin-top: var(--s-3);
  padding: var(--s-2) 0.25rem 0;
  color: var(--ink-subtle);
  font: 700 var(--text-2xs)/1.2 var(--font-mono);
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.nav-mobile-group:first-child { margin-top: 0; }
body.nav-open { overflow: hidden; }

body.nav-open .privacy-consent { display: none; }

/* ============ BREADCRUMB ============ */

/* ============ HERO ============
   No marquee, no gradient wash, no oversized fluid type. */
.hero {
  padding-block: var(--s-12) var(--s-10);
  border-bottom: 1px solid var(--line);
  background:
    radial-gradient(120% 90% at 92% -20%, rgba(244, 241, 236, 0.16) 0%, rgba(244, 241, 236, 0) 60%),
    var(--canvas);
}
@media (min-width: 900px) { .hero { padding-block: var(--s-16) var(--s-12); } }

/* Homepage search block, sits directly under the h1 */

/* Inline editorial links must remain identifiable without relying on color. */

/* ============ BUTTONS ============ */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.45rem;
  min-height: 2.875rem;
  padding: 0.68rem 1rem;
  border-radius: var(--r-md);
  font-size: var(--text-sm); font-weight: 600; line-height: 1.1;
  text-align: center; white-space: nowrap;
  border: 1px solid transparent;
  transition: background-color var(--t-fast) var(--easing),
              border-color var(--t-fast) var(--easing),
              color var(--t-fast) var(--easing),
              transform var(--t-fast) var(--easing);
}
.btn:active { transform: translateY(1px); }
.btn-secondary { background: var(--ink); color: #fff; border-color: var(--ink); }
.btn-secondary:hover { background: var(--brand-ink); border-color: var(--brand-ink); }
.btn-ghost { background: var(--surface); color: var(--ink); border-color: var(--line-control); }
.btn-ghost:hover { border-color: var(--line-strong); background: var(--sunken); }
.btn:disabled,
.btn[aria-disabled="true"] {
  transform: none;
  border-color: var(--line);
  background: var(--sunken);
  color: var(--ink-subtle);
  box-shadow: none;
  cursor: not-allowed;
  opacity: 0.72;
}
 .home-more-toggle { font-size: var(--text-xs); }

/* Progressive disclosure of the secondary venue CTAs */

/* ============ CARD BASE ============ */
.card, .cat-venue-card,
.result-card, .tool-empty-card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-flat);
}

/* ============ GRIDS ============ */
 .guide-hub-grid {
  display: grid;
  gap: var(--s-4);
  grid-template-columns: 1fr;
}
@media (min-width: 640px) {
   .guide-hub-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 980px) {
   .guide-hub-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

/* ============ VENUE LISTING CARD ============ */
.cat-venue-card {
  display: flex; flex-direction: column;
  padding: var(--s-5);
  transition: transform var(--t-base) var(--easing),
              box-shadow var(--t-base) var(--easing),
              border-color var(--t-base) var(--easing);
}
.cat-venue-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-soft);
  border-color: var(--line-strong);
}
.record-status {
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  width: fit-content;
  margin-top: var(--s-2);
  padding: 0.35rem 0.55rem;
  border: 1px solid color-mix(in srgb, var(--warn-ink) 38%, #fff);
  border-radius: var(--r-pill);
  background: color-mix(in srgb, var(--warn) 14%, #fff);
  color: var(--warn-ink);
  font: 700 var(--text-2xs)/1.2 var(--font-mono);
  letter-spacing: 0.05em;
  text-transform: uppercase;
}
.record-status.is-closed {
  border-color: color-mix(in srgb, var(--danger-ink) 35%, #fff);
  background: color-mix(in srgb, var(--danger) 12%, #fff);
  color: var(--danger-ink);
}
.cat-venue-card.is-unresolved,
.result-card.is-unresolved { border-color: color-mix(in srgb, var(--warn-ink) 34%, var(--line)); }

.result-card.is-unresolved .result-card-arrow { color: var(--warn-ink); }
.cat-venue-card > p {
  font-size: var(--text-sm); line-height: 1.55;
  color: var(--ink-muted);
  margin-top: var(--s-2);
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical;
  overflow: hidden;
}

/* ============ NUMBERED CARD ============ */

/* ============ INTENT ROUTER ("start here") ============ */

/* ============ CHANNEL CARDS (social / contact) ============ */
/* Platform tint: a 3px left edge, the one place brand colours differ per card */

/* ============ TRUST BAR / PILLS ============ */

/* ============ FAVOURITES ============ */
.favorite-btn {
  display: inline-flex; align-items: center; gap: 0.35rem;
  flex-shrink: 0;
  min-height: 2.75rem;
  padding: 0.58rem 0.8rem;
  border-radius: var(--r-md);
  border: 1px solid var(--line-control);
  background: var(--surface);
  font-size: var(--text-xs); font-weight: 600;
  color: var(--ink-muted);
  transition: border-color var(--t-fast) var(--easing), color var(--t-fast) var(--easing);
}
.favorite-btn:hover { border-color: var(--line-strong); color: var(--ink); }
.favorite-btn.is-saved {
  border-color: color-mix(in srgb, var(--accent) 55%, #fff);
  background: color-mix(in srgb, var(--accent) 22%, #fff);
  color: var(--accent-ink);
}
.fav-heart { line-height: 1; font-size: 0.9em; }
.fav-btn-label { white-space: nowrap; }
.favorite-list-actions { display: flex; flex-wrap: wrap; gap: var(--s-3); margin-top: var(--s-5); }
.pg-fw-inner {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  min-height: 2.75rem;
  padding: 0.55rem 0.8rem;
  border: 1px solid var(--panel-line);
  border-radius: var(--r-md);
  background: var(--panel);
  color: var(--panel-ink);
  box-shadow: var(--shadow-raised);
  font-size: var(--text-xs);
}
.pg-fw-inner:hover { border-color: var(--brand-bright); color: var(--brand-bright); }
.pg-fw-heart { color: var(--brand-bright); }

/* ============ PROSE / EDITORIAL BODY ============ */
.guide-price-note {
  font-size: var(--text-xs); color: var(--ink-subtle); margin-top: var(--s-2);
}

/* Server-rendered guide navigation and keyboard-scrollable data tables. */
.guide-toc-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--s-2);
  margin: 0;
  padding: 0;
  list-style: none;
}
.guide-toc-list a {
  display: flex;
  align-items: center;
  gap: var(--s-3);
  min-height: 2.75rem;
  padding: .55rem .7rem;
  border: 1px solid transparent;
  border-radius: var(--r-md);
  color: var(--ink);
  font-size: var(--text-sm);
  font-weight: 650;
  line-height: 1.3;
  text-decoration: none;
}
.guide-toc-list a:hover,
.guide-toc-list a:focus-visible { border-color: var(--line-control); background: var(--surface); }
.guide-toc-list a[aria-current="location"] {
  border-color: color-mix(in srgb, var(--brand-ink) 42%, var(--line));
  background: var(--surface);
  box-shadow: inset 3px 0 0 var(--brand-ink);
}

/* ============ VENUE PAGE ============ */

/* Jump nav — injected by the inline script on venue pages with 3+ sections */
.jump-nav-pills { display: flex; flex-wrap: wrap; gap: var(--s-2); }
.jump-nav-pills a {
  display: inline-flex; align-items: center; gap: 0.35rem;
  min-height: 2.75rem;
  background: var(--surface); border: 1px solid var(--line-control);
  border-radius: var(--r-md);
  padding: 0.5rem 0.75rem;
  font-size: var(--text-xs); font-weight: 500; color: var(--ink);
  transition: border-color var(--t-fast) var(--easing);
}
.jump-nav-pills a:hover { border-color: var(--brand-ink); color: var(--brand-ink); }
.jump-nav-pills a.is-active {
  border-color: var(--ink);
  background: var(--ink);
  color: #fff;
}
.jump-nav-pills a.is-active .n { color: var(--accent); }
.jump-nav-pills a .n { color: var(--ink-subtle); font-size: var(--text-2xs); }

/* Collapsible venue sections (mobile) */
@media (max-width: 899px) {
  .jump-nav-pills {
    flex-wrap: nowrap;
    margin-inline: calc(var(--s-4) * -1);
    padding: 2px var(--s-4) var(--s-2);
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-width: none;
  }
  .jump-nav-pills::-webkit-scrollbar { display: none; }
  .jump-nav-pills a { flex: 0 0 auto; }
}

/* Recently viewed */

/* ============ GUIDES ============ */

/* Guide discovery: compact intent routing first, complete SSR library second. */

.guide-filter-status {
  color: var(--ink-muted);
  font: 700 var(--text-2xs)/1.35 var(--font-mono);
  letter-spacing: .08em;
  text-transform: uppercase;
}
.guide-filter-empty { padding: var(--s-4); border-radius: var(--r-md); background: var(--sunken); color: var(--ink-muted); }
.guide-filter-empty a { color: var(--brand-ink); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }

/* ============ FAQ ============ */

/* ============ TOOLS: SEARCH ============ */
.search-hero { padding-block: var(--s-10) var(--s-6); }
.search-toolbar {
  position: sticky; top: var(--nav-h); z-index: 50;
  background: rgba(244, 241, 236, 0.94);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  padding-block: var(--s-3);
  border-bottom: 1px solid transparent;
  transition: border-color var(--t-fast) var(--easing);
}
.search-toolbar.is-stuck { border-bottom-color: var(--line); box-shadow: var(--shadow-flat); }
.search-input-wrap {
  display: flex; align-items: center; gap: var(--s-3);
  background: var(--surface);
  border: 1px solid var(--line-control);
  border-radius: var(--r-pill);
  padding: 0.15rem var(--s-5);
  box-shadow: var(--shadow-flat);
}
.search-input-wrap:focus-within { border-color: var(--brand-ink); }
.search-input-wrap:has(.search-input:focus-visible) {
  outline: 3px solid var(--info-ink);
  outline-offset: 3px;
}
.search-icon { color: var(--ink-subtle); flex-shrink: 0; }
.search-input {
  flex: 1 1 auto; min-width: 0;
  border: 0; background: none; outline: none;
  padding-block: 0.7rem;
  font-size: var(--text-base); color: var(--ink);
}
.search-input::placeholder { color: var(--ink-subtle); }
.search-404-form { display: flex; gap: var(--s-2); max-width: 420px; margin-top: var(--s-5); }
.search-404-form .search-input {
  border: 1px solid var(--line-strong); border-radius: var(--r-pill);
  background: var(--surface); padding: 0.65rem var(--s-4);
}
.search-filters, .search-filter-panel {
  display: flex; flex-wrap: wrap; gap: var(--s-2);
  margin-top: var(--s-3);
}
.sf-pill {
  min-height: 2.75rem;
  font-size: var(--text-xs); font-weight: 600;
  background: var(--surface); border: 1px solid var(--line-control);
  border-radius: var(--r-pill); padding: 0.35rem 0.8rem;
  color: var(--ink-muted); cursor: pointer;
  transition: border-color var(--t-fast) var(--easing), background-color var(--t-fast) var(--easing);
}
.sf-pill:hover { border-color: var(--line-strong); color: var(--ink); }
.sf-pill.is-active {
  background: var(--accent); border-color: rgba(11, 11, 12, 0.14);
  color: var(--ink);
}
.search-check { display: inline-flex; align-items: center; gap: 0.4rem; font-size: var(--text-xs); }
.search-stats {
  font-family: var(--font-mono); font-size: var(--text-xs);
  color: var(--ink-subtle); margin-block: var(--s-4);
}
.search-results { display: grid; gap: var(--s-4); scroll-margin-top: calc(var(--nav-h) + var(--s-4)); }
.result-card {
  padding: var(--s-4) var(--s-5);
  transition: border-color var(--t-fast) var(--easing), box-shadow var(--t-fast) var(--easing);
}
.result-card:hover { border-color: var(--line-strong); box-shadow: var(--shadow-soft); }
.result-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--s-3); }
.result-card-main { min-width: 0; }
.result-card-name { font-family: var(--font-display); font-size: var(--text-base); font-weight: 700; letter-spacing: -0.015em; }
.result-card:hover .result-card-name { color: var(--brand-ink); }
.result-card-desc {
  font-size: var(--text-sm); color: var(--ink-muted); margin-top: 0.3rem;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.result-card-meta {
  font-family: var(--font-mono); font-size: var(--text-2xs);
  text-transform: uppercase; letter-spacing: 0.07em; color: var(--ink-subtle);
}
.result-card-price { font-family: var(--font-mono); font-size: var(--text-xs); color: var(--accent-ink); font-weight: 600; }
.result-card-price.is-unavailable { color: var(--ink-subtle); font-weight: 500; }
.result-card-tag {
  font-size: var(--text-2xs); font-weight: 600;
  background: var(--sunken); color: var(--ink-muted);
  border-radius: var(--r-pill); padding: 0.15rem 0.5rem;
}
.result-card-foot { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-2); margin-top: var(--s-3); }
.result-card-arrow { color: var(--ink-subtle); flex-shrink: 0; }
.search-empty, .tool-empty-card {
  text-align: center; padding: var(--s-10) var(--s-5);
  color: var(--ink-muted);
}
.tool-empty-card { text-align: left; padding: var(--s-6); }
.tool-empty-actions { display: flex; flex-wrap: wrap; gap: var(--s-3); margin-top: var(--s-4); }
.search-load-more-wrap { display: flex; justify-content: center; margin-top: var(--s-6); }

/* ============ TOOLS: COMPARE ============ */

.search-filter-panel select:focus-visible {
  outline: 3px solid var(--info-ink);
  outline-offset: 3px;
}

/* ============ TOOLS: PLAN ============ */

/* ============ SPORT STATS / HOMEPAGE STRIP ============ */
/* legacy stat cards (sport-stats dashboard) */

/* ============ CHANGELOG ============ */

/* ============ BACK TO TOP ============ */
.back-to-top {
  position: fixed;
  right: max(var(--s-5), env(safe-area-inset-right));
  bottom: max(var(--s-5), env(safe-area-inset-bottom));
  z-index: 90;
  width: 44px; height: 44px;
  display: grid; place-items: center;
  background: var(--surface); color: var(--ink);
  border: 1px solid var(--line-strong); border-radius: 50%;
  box-shadow: var(--shadow-soft);
  opacity: 0; pointer-events: none;
  transform: translateY(6px);
  transition: opacity var(--t-base) var(--easing), transform var(--t-base) var(--easing);
}
.back-to-top.is-visible { opacity: 1; pointer-events: auto; transform: none; }
.back-to-top:hover { background: var(--accent); border-color: rgba(11, 11, 12, 0.14); }
/* The scroll-progress bar was pure decoration on a directory. Neutralised. */
.progress-bar { display: none !important; }
/* The marquee tickers are gone; this kills any stragglers the sweep missed. */

.search-empty-emoji {
  display: none !important;
}

/* ============================================================================
   FOOTER — FOOTER-SPEC-2026-V3
   ============================================================================
   Deliberately simple publication structure:
   brand block + one-line description + publisher credit + social row on the
   left, four link columns on the right, one legal bar, one small-print line.

   The publisher portrait, contact routes and socials stay together. Four
   task-based columns carry useful internal links; legal metadata gets one bar.

   Dark panel on a light site. The volt only ever appears as a fill (the mark)
   or via --brand-bright on dark, never as small text.
   ============================================================================ */
.footer {
  margin-top: var(--s-20);
  background: var(--panel);
  color: var(--panel-muted);
  border-top: 1px solid var(--panel-line);
}
.footer-wrap {
  width: 100%; max-width: var(--max);
  margin-inline: auto;
  padding: var(--s-16) var(--pad) var(--s-12);
}

/* --- Brand block --- */

/* --- Link columns --- */
.footer-nav {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--s-8);
  font-size: var(--text-sm);
}
@media (min-width: 640px) { .footer-nav { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.footer-col-h {
  margin-bottom: var(--s-3);
  font-family: var(--font-body);
  font-size: var(--text-2xs); font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.14em;
  color: var(--panel-ink);
}
.footer-col ul { display: grid; gap: 0.72rem; }
.footer-col a {
  color: var(--panel-muted);
  transition: color var(--t-fast) var(--easing);
}
.footer-col a:hover { color: var(--brand-bright); }
@media (max-width: 639px) {
  .footer-col a { display: inline-flex; align-items: center; min-height: 44px; }
}

/* --- Legal bar --- */
.footer-updated-line {
  margin-top: var(--s-4);
  font-size: var(--text-xs);
  color: var(--panel-muted);
}
/* legacy wrappers kept harmless in case a page still carries them */

/* Publication accountability and public data surfaces. */

/* ============ UTILITIES (generated markup depends on every one of these) ============ */

/* ============ STATE + A11Y HELPERS ============ */
.sr-only {
  position: absolute; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.is-expanded { }
.active, .is-active { }
/* The old neon star separator. Kept as a quiet dot so any leftover markup
   does not render a bright glyph. */
.n { font-family: var(--font-mono); font-variant-numeric: tabular-nums; }

/* ============ LIVE CARD (homepage status) ============ */

/* ============ MOTION + PRINT ============ */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  .cat-venue-card:hover { transform: none; }
}

/* Source-bounded location tools — /map/ and /find-my-coach/. */
@media print {
  .nav, .nav-mobile, .footer, .back-to-top,
  .search-toolbar, .favorite-btn { display: none !important; }
  body { background: #fff; color: #000; font-size: 11pt; }
  .hero { border: 0; background: none; padding-block: 0 var(--s-4); }
  .section { padding-block: var(--s-4); }
  a { text-decoration: underline; }
}

/* ============ REMAINING VOCABULARY ============
   Explicit rules for the classes the generated markup carries that would
   otherwise be unstyled. Keeping them here rather than leaving them undefined
   means the next person greps this file and finds the whole vocabulary. */
.home-hero-ctas-wrap { margin-top: var(--s-6); }

/* ============================================================================
   FIXES FROM THE FIRST VISUAL PASS
   ============================================================================
   Everything below was caught by rendering the built pages rather than by
   reading the markup. Kept in one block so it is obvious what was reactive.
   ============================================================================ */

/* .brand is a flex row so the mark can sit beside the wordmark, but the
   wordmark arrives as three text nodes ("pattaya", ".", "gym") which each
   became flex items — so `gap` was spacing out the letters: "pattaya . gym".
   Space the mark with a margin instead and let the wordmark close up. */
.brand { gap: 0; }
.brand::before { margin-right: 0.55rem; }

/* Card sub-elements are emitted as <span> in several templates, so the
   margin-bottom in their rules did nothing and every card ran together on one
   line. Blocking them is what turns them back into stacked cards. */

.footer-col-h, .result-card-name, .result-card-desc, .result-card-meta {
  display: block;
}

/* `.wrap.u-max-760` used to shrink the wrap itself to 760px. Because .wrap is
   centred, that pushed the column inward and knocked it out of alignment with
   the section headings above it. Keep the wrap full width and constrain its
   children instead, so the text still starts on the page's left margin. */

/* 22ch broke two-word venue names onto an awkward second line. */

/* Guide bylines are spans in a flex row; keep them on the baseline. */

/* ---- Second visual pass ---- */

/* Section h2s carry a top rule as a divider, suppressed on the first one.
   `:first-child` missed cases where the article starts with a comment or
   whitespace node, which drew a second rule right under the eyebrow's rule. */

/* The TL;DR block is an <ol>, so it already has decimal markers — the shared
   li::before was adding a volt dot next to every number. */

/* Brand mark: a volt tile with a dark inner rule — a ring, viewed from above.
   Previously the header and footer marks used different ring colours, so the
   header read as an outlined tile and the footer as a solid one. */
.brand::before {
  background: var(--accent);
  box-shadow: inset 0 0 0 3px var(--ink);
}

/* ============================================================================
   THIRD VISUAL PASS — tool pages, 404, mobile header
   ============================================================================
   Found by rendering /search/, /compare/, /plan-my-trip/, /favorites/, /map/,
   /find-my-coach/, /sports/ and /404.html rather than trusting the sweep.
   ============================================================================ */

/* --- SEARCH: the page's sections are direct children of <main> with no .wrap,
   so they had no horizontal padding at all and ran edge to edge. --- */
.search-hero, .search-results, .search-stats,
.search-load-more-wrap, .search-empty {
  width: 100%;
  max-width: var(--max);
  margin-inline: auto;
  padding-inline: var(--pad);
}
.search-toolbar { padding-inline: 0; }
.search-hero h1 {
  font-size: clamp(1.95rem, 5.4vw, 3rem);
  line-height: 1.08;
  letter-spacing: -0.035em;
  margin-bottom: var(--s-3);
}
.search-hero .lede { margin-bottom: var(--s-5); }

/* Bare `.accent` is a heading highlight everywhere except the footer wordmark. */

/* The markup uses `.active`, not `.is-active`. Support both rather than
   rewriting a class name that three scripts toggle. */
.sf-pill.active, .sf-pill[aria-pressed="true"] {
  background: var(--accent);
  border-color: rgba(11, 11, 12, 0.14);
  color: var(--ink);
}

/* Native select/checkbox controls were completely unstyled. */
.search-filter-panel {
  align-items: center;
  gap: var(--s-4);
  margin-top: var(--s-4);
  padding-top: var(--s-4);
  border-top: 1px solid var(--line);
}
.search-filter-panel label {
  display: inline-flex; align-items: center; gap: 0.5rem;
  font-family: var(--font-mono);
  font-size: var(--text-2xs); font-weight: 600;
  text-transform: uppercase; letter-spacing: 0.1em;
  color: var(--ink-subtle);
}
.search-filter-panel select {
  font-family: var(--font-body);
  font-size: var(--text-sm); font-weight: 500;
  text-transform: none; letter-spacing: 0;
  color: var(--ink);
  background: var(--surface);
  border: 1px solid var(--line-control);
  border-radius: var(--r-md);
  padding: 0.45rem 0.6rem;
}
.search-filter-panel select { min-height: 2.75rem; }
.search-filter-panel select:focus { border-color: var(--brand-ink); }
.search-check input[type="checkbox"] { width: 16px; height: 16px; accent-color: var(--brand-ink); }

/* The search field's icon was a 🔍 emoji. Same glyph, drawn in CSS: monochrome,
   brand-colourable, and sized against the type scale. */
.search-icon {
  font-size: 0; line-height: 0;
  width: 17px; height: 17px;
  position: relative; flex-shrink: 0;
  color: var(--ink-subtle);
}
.search-icon::before {
  content: ""; position: absolute;
  top: 0; left: 0; width: 12px; height: 12px;
  border: 2px solid currentColor; border-radius: 50%;
}
.search-icon::after {
  content: ""; position: absolute;
  right: 1px; bottom: 1px; width: 7px; height: 2px;
  background: currentColor; border-radius: 2px;
  transform: rotate(45deg); transform-origin: right center;
}

/* Result cards: `.result-card-tag` is a <div>, so the pill background stretched
   the full width of the card. `.result-card-main` is the <a> wrapper. */
.result-card-main { display: block; flex: 1 1 auto; min-width: 0; }
.result-card-tag {
  display: inline-flex;
  font-family: var(--font-mono);
  margin-bottom: 0.35rem;
}
.result-card-foot { justify-content: flex-start; }
.result-card-price { font-variant-numeric: tabular-nums; }

/* --- COMPARE: four pickers in a three-column grid orphaned the fourth. --- */

/* --- UTILITY / 404 PAGES: their body is `.venue-body`, so the prose link rule
   was underlining buttons and whole cards. Component links opt out. --- */

/* --- HEADER: the CTA was hidden below 720px, so on a phone every interior page
   had no visible way to search — only the burger. It fits at 360px. --- */
.nav-cta { display: inline-flex; margin-left: auto; }
.nav-burger { margin-left: var(--s-2); }
@media (max-width: 519px) {
  .nav-cta { padding: 0.45rem 0.7rem; font-size: var(--text-xs); }
  .brand { font-size: 0.98rem; }
  .brand::before { width: 22px; height: 22px; margin-right: 0.4rem; }
}
@media (max-width: 380px) {
  .nav-row {
    gap: var(--s-2);
    padding-left: max(12px, env(safe-area-inset-left));
    padding-right: max(12px, env(safe-area-inset-right));
  }
  .nav-cta { padding-inline: 0.6rem; }
  .nav-burger { margin-left: 0; }
}
@media (max-width: 339px) {
  .nav-cta { display: none; }
  .nav-burger { margin-left: auto; }
}
@media (min-width: 1040px) { .nav-cta { margin-left: 0; } }
@media (min-width: 1040px) { .nav-burger { display: none; } }

/* ============================================================================
   FAQ CONTAINER FIX
   ============================================================================
   `.venue-faq` and `.guide-faq` are on the <section> element in the generated
   markup — NOT on the list of questions:

       <section class="section u-pt-0 venue-faq guide-faq"><div class="wrap ...">

   So grouping them with `.faq-list` and giving all three `display:grid` plus
   `max-width:68ch` shrank the entire section to 686px and pinned it flush to the
   left edge with no gutter, while every other section stayed centred. Only
   `.faq-list` is an actual list of items.
   ============================================================================ */
/* The guide shell emits a bare <section class="guide-faq"> with no .wrap, so it
   inherits the gutter from the 880px article it sits inside. Only give it the
   page gutter when it is a top-level section instead. */

/* ============================================================================
   PERMANENTLY CLOSED
   ============================================================================
   Four records in data.js carry `status: closed`. build-v2.js had no rendering
   for that field, so a closed venue page showed a green "Verified by Tim" pill
   and a live "Checking hours…" indicator, with the closure mentioned only in
   body prose — a reader scanning the top of the page would have concluded it was
   open. This is the one pill that must out-shout the rest of the trust bar.
   ============================================================================ */
/* A closed venue keeps its verified date — we did check that it is shut — but it
   should not read as an endorsement sitting beside the closure notice. */

/* A qualified record - unverified, not in Pattaya, informational, timetable
   unconfirmed - must carry that qualification in the same bar that carries the
   verification date, or the page reads as a plainly operating venue (S1-3).
   Softer than the closure notice: these are open questions, not settled facts. */

/* ============================================================================
   PRESS KIT
   ============================================================================
   Components used only by /press/. Kept in the main stylesheet rather than a
   separate file because the site ships one CSS request by design, and this is
   ~1 KB. Generated by scripts/build-press-kit.js.
   ============================================================================ */

/* The press tables live inside `.venue-body`, whose prose `th` rule paints every
   header cell dark with white text. That is right for a column header and very
   wrong for a row header — the fast-facts labels rendered as solid dark blocks
   with invisible text. Row headers opt out; column headers keep the treatment. */

/* ============================================================================
   FLAGSHIP 2027 — evidence, consent, stable interaction and accessibility
   ============================================================================ */

.privacy-consent {
  position: fixed;
  z-index: 1000;
  inset: auto max(12px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s-5);
  width: min(860px, calc(100% - 24px));
  margin-inline: auto;
  padding: var(--s-4);
  color: var(--panel-ink);
  background: rgba(11, 11, 12, .97);
  border: 1px solid var(--panel-line);
  border-radius: var(--r-xl);
  box-shadow: 0 24px 70px rgba(11, 11, 12, .32);
}
.privacy-consent-copy { display: grid; gap: 2px; min-width: 0; }
.privacy-consent-copy strong { font-family: var(--font-display); font-size: var(--text-lg); }
.privacy-consent-copy span { color: var(--panel-muted); font-size: var(--text-sm); }
.privacy-consent-copy a { color: var(--brand-bright); font-size: var(--text-xs); text-decoration: underline; text-underline-offset: 2px; }
.privacy-consent-actions { display: flex; flex-wrap: wrap; flex: 0 0 auto; gap: var(--s-2); }
.privacy-consent .btn-ghost { color: var(--panel-ink); background: transparent; border-color: #55514d; }
.privacy-consent .btn-primary { background: var(--brand-bright); color: var(--ink); }

.search-results .result-card {
  min-height: 0;
  height: 100%;
  content-visibility: auto;
  contain-intrinsic-block-size: auto 17rem;
}

@media (min-width: 900px) {
  .search-results { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 680px) {
  .search-toolbar { position: static; top: auto; }
  .search-toolbar.is-stuck { border-bottom-color: transparent; box-shadow: none; }
  .search-filter-hint {
    display: flex;
    align-items: center;
    gap: var(--s-2);
    margin-top: var(--s-3);
    color: var(--ink-muted);
    font: 650 var(--text-2xs)/1.35 var(--font-mono);
  }
  .search-filter-hint::before { content: "↔"; color: var(--brand-ink); font-size: var(--text-sm); }
  .search-filters {
    flex-wrap: nowrap;
    margin-inline: calc(var(--pad) * -1);
    padding: 2px var(--pad) var(--s-2);
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-width: none;
  }
  .search-filters::-webkit-scrollbar { display: none; }
  .search-filters .sf-pill { flex: 0 0 auto; }
  .search-filter-panel {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: end;
  }
  .search-filter-panel label { min-width: 0; }
  .search-filter-panel select { width: 100%; min-height: 2.75rem; }
  .search-filter-panel label[for="status-filter"] { grid-column: 1 / -1; }
  .search-filter-panel #status-filter { flex: 1 1 auto; min-width: 0; }
  .search-filter-panel .search-check { grid-column: 1 / -1; min-height: 2.75rem; }
}

@media (max-width: 359px) {
  .search-filter-panel > label:not(.search-check) {
    flex-direction: column;
    align-items: stretch;
    gap: var(--s-1);
  }
}

@media (max-width: 680px) {
  .privacy-consent {
    inset: auto max(8px, env(safe-area-inset-right)) max(8px, env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left));
    align-items: stretch;
    flex-direction: column;
    gap: .65rem;
    width: min(860px, calc(100% - 16px));
    padding: .75rem;
    border-radius: 1rem;
  }
  .privacy-consent-copy { gap: 1px; }
  .privacy-consent-copy strong { font-size: 1rem; line-height: 1.15; }
  .privacy-consent-copy span { font-size: .78rem; line-height: 1.35; }
  .privacy-consent-copy a { font-size: .72rem; }
  .privacy-consent-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .privacy-consent .btn { min-height: 2.75rem; padding: .5rem .65rem; font-size: .83rem; }
  .guide-toc-list a { height: 100%; border-color: var(--line); background: color-mix(in srgb, var(--surface) 88%, transparent); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
}
/* ========================================================================== */
/* PRODUCT-REDESIGN-2027-V1 — Pattaya movement, decision-first experience      */
/* ========================================================================== */

body.product-redesign-2027 {
  --canvas: #f4f1ec;
  --sunken: #dad5ce;
  --ink: #0b0b0c;
  --ink-muted: #55514d;
  --ink-subtle: #55514d;
  --line: #bdb8b3;
  --line-soft: #dad5ce;
  --line-strong: #55514d;
  --surface: #ffffff;
  --surface-2: #ffffff;
  --surface-3: #dad5ce;
  --card: #ffffff;
  --brand: #55514d;
  --brand-ink: #55514d;
  --brand-bright: #dad5ce;
  --accent: #dad5ce;
  --accent-ink: #55514d;
  --panel: #0b0b0c;
  --panel-sunken: #0b0b0c;
  --panel-line: #55514d;
  --panel-ink: #ffffff;
  --panel-muted: #bdb8b3;
  --panel-subtle: #bdb8b3;
  --pg-coral: #55514d;
  --pg-sun: #dad5ce;
  --pg-pool: #bdb8b3;
  --pg-leaf: #55514d;
  --pg-night: #0b0b0c;
  --font-body: Geist, system-ui, -apple-system, sans-serif;
  --font-display: Geist, system-ui, -apple-system, sans-serif;
  --font-mono: Geist, system-ui, -apple-system, sans-serif;
  --max: 1240px;
  background: var(--canvas);
  color: var(--ink);
}

body.product-redesign-2027 .wrap { max-width: 1240px; }

body.product-redesign-2027 .section { padding-block: clamp(3.25rem, 7vw, 6rem); }
body.product-redesign-2027 .section + .section { padding-top: 0; }
body.product-redesign-2027 .btn { min-height: 46px; border-radius: 999px; padding-inline: 1.15rem; }
body.product-redesign-2027 .btn-secondary,
body.product-redesign-2027 .btn-ghost { background: transparent; color: var(--ink); border-color: #55514d; }

/* Header */
body.product-redesign-2027 .nav {
  position: sticky;
  top: 0;
  z-index: 100;
  height: 68px;
  background: rgba(255, 255, 255, 0.94);
  border-bottom: 1px solid rgba(11, 11, 12, 0.12);
  box-shadow: none;
  backdrop-filter: blur(14px);
}
body.product-redesign-2027 .nav-row {
  max-width: 1240px;
  height: 68px;
  padding-inline: clamp(1rem, 3vw, 2rem);
  gap: clamp(1rem, 2.4vw, 2.2rem);
}
body.product-redesign-2027 .brand {
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 1.28rem;
  font-weight: 700;
  letter-spacing: -0.055em;
  white-space: nowrap;
}
body.product-redesign-2027 .nav-links { margin-inline: auto; gap: clamp(0.8rem, 2vw, 1.65rem); }
body.product-redesign-2027 .nav-links a {
  color: #55514d;
  font-size: 0.88rem;
  font-weight: 650;
}
body.product-redesign-2027 .nav-links a:hover { color: var(--brand-ink); }
body.product-redesign-2027 .nav-cta {
  min-height: 42px;
  padding: 0.65rem 1.05rem;
  border: 0;
  border-radius: 999px;
  background: var(--pg-sun);
  color: #0b0b0c;
  font-weight: 750;
  box-shadow: none;
}
body.product-redesign-2027 .nav-burger { width: 46px; height: 46px; border: 1px solid #55514d; border-radius: 50%; }
body.product-redesign-2027 .nav-mobile {
  position: fixed;
  inset: 68px 0 auto 0;
  max-height: calc(100dvh - 68px);
  overflow: auto;
  padding: 1.25rem 1rem max(1.5rem, env(safe-area-inset-bottom));
  background: #ffffff;
  border-bottom: 1px solid var(--line);
  box-shadow: 0 24px 50px rgba(11, 11, 12, 0.18);
}
body.product-redesign-2027 .nav-mobile-group { color: var(--brand-ink); }
body.product-redesign-2027 .nav-mobile-link { min-height: 46px; padding-block: 0.68rem; }

/* Home: one emotional visual, then fast decisions */

.result-card-visual {
  position: relative;
  overflow: hidden;
  background: linear-gradient(145deg, #55514d, #bdb8b3);
  color: #fff;
  isolation: isolate;
}

.result-card-visual::before {
  content: "";
  position: absolute;
  inset: -30%;
  z-index: -1;
  background: repeating-radial-gradient(circle at 75% 20%, transparent 0 18px, rgba(255, 255, 255, .18) 19px 21px, transparent 22px 38px);
  transform: rotate(-10deg);
}

[data-category="muay-thai"] .result-card-visual { background: linear-gradient(145deg, #55514d, #55514d); }

[data-category="fitness"] .result-card-visual { background: linear-gradient(145deg, #55514d, #55514d); }

[data-category="racquet"] .result-card-visual { background: linear-gradient(145deg, #55514d, #dad5ce); color: #0b0b0c; }
[data-category="yoga"] .result-card-visual { background: linear-gradient(145deg, #55514d, #bdb8b3); }
[data-category="watersports"] .result-card-visual,
[data-category="swimming"] .result-card-visual { background: linear-gradient(145deg, #55514d, #bdb8b3); }
[data-category="golf"] .result-card-visual { background: linear-gradient(145deg, #55514d, #bdb8b3); }

/* Search and discovery */
body.page-search #main { width: min(1240px, 100%); margin-inline: auto; padding: 0 clamp(1rem, 4vw, 2rem) 5rem; }
body.page-search .search-hero {
  max-width: none;
  margin: 1rem 0 1.3rem;
  padding: clamp(1.5rem, 4vw, 3rem);
  border: 0;
  border-radius: 26px;
  background: linear-gradient(125deg, #f4f1ec 0%, #dad5ce 48%, #dad5ce 100%);
  box-shadow: none;
}
.search-hero-copy { max-width: 760px; }
.search-hero-copy .home-eyebrow { color: var(--brand-ink); }
body.page-search .search-hero h1 { margin: 0; font-size: clamp(2.25rem, 5vw, 4.6rem); line-height: .98; letter-spacing: -.055em; }
.search-hero-copy > p:last-child { margin: 0.85rem 0 1.3rem; color: #55514d; font-size: 1rem; line-height: 1.6; }
body.page-search .search-input-wrap { position: relative; width: min(820px, 100%); margin: 0; }
body.page-search .search-input {
  width: 100%;
  min-height: 62px;
  padding: 0 3.2rem 0 1.1rem;
  border: 2px solid #55514d;
  border-radius: 16px;
  background: #ffffff;
  color: var(--ink);
  font-size: 1rem;
  box-shadow: 0 10px 30px rgba(11, 11, 12, .08);
}
body.page-search .search-icon { right: 1.1rem; color: var(--brand-ink); font-size: 1.6rem; }
.search-quick-row { display: flex; width: 100%; align-items: center; gap: 0.5rem; margin-top: 0.85rem; overflow-x: auto; padding: 2px 0 6px; scrollbar-width: thin; }
.search-quick-row .sf-pill { flex: 0 0 auto; }
body.page-search .sf-pill { min-width: 44px; min-height: 44px; padding: 0.55rem 0.82rem; border: 1px solid #55514d; border-radius: 999px; background: rgba(255, 255, 255, .75); color: #55514d; font-size: .78rem; font-weight: 720; }
body.page-search .sf-pill.active { border-color: var(--brand-ink); background: var(--brand-ink); color: #fff; }
.search-map-link { display: inline-flex; min-height: 44px; flex: 0 0 auto; align-items: center; padding: .55rem .9rem; border-radius: 999px; background: #0b0b0c; color: #fff; font-size: .78rem; font-weight: 750; }
.search-filter-toggle { display: none; }
body.page-search .search-toolbar { position: static; margin-top: 1rem; padding: 0; border: 0; background: transparent; box-shadow: none; }
.search-filter-drawer { padding: 1rem; border: 1px solid #bdb8b3; border-radius: 18px; background: rgba(255, 255, 255, .82); }
.search-filter-drawer-head { display: flex; justify-content: space-between; gap: 1rem; margin-bottom: .8rem; }
.search-filter-drawer-head strong { font-family: var(--font-display); }
.search-filter-drawer-head span { color: var(--ink-muted); font-size: .76rem; }
body.page-search .search-filters { display: flex; flex-wrap: wrap; gap: .45rem; margin: 0 0 .8rem; overflow: visible; }
body.page-search .search-filter-panel { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(220px, auto); align-items: end; gap: .75rem; padding: 0; border: 0; background: transparent; }
body.page-search .search-filter-panel label { color: #55514d; font-size: .72rem; font-weight: 750; }
body.page-search .search-filter-panel select { width: 100%; min-height: 46px; margin-top: .3rem; border: 1px solid #55514d; border-radius: 11px; background: #fff; }
body.page-search .search-check { min-height: 46px; align-items: center; padding: .5rem .7rem; border: 1px solid #55514d; border-radius: 11px; background: #fff; }
body.page-search .search-stats { margin: 1.1rem 0; padding: 0; color: #55514d; font-size: .86rem; }
body.page-search .search-results { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin: 0; }
body.page-search .result-card {
  display: flex;
  min-width: 0;
  overflow: hidden;
  flex-direction: column;
  border: 0;
  border-radius: 22px;
  background: #ffffff;
  box-shadow: 0 10px 32px rgba(11, 11, 12, .08);
}
body.page-search .result-card.is-unresolved { opacity: .76; }
body.page-search .result-card-visual { display: flex; min-height: 120px; align-items: flex-end; padding: 1rem; }
body.page-search .result-card-visual span { font-family: var(--font-display); font-size: 1.65rem; font-weight: 800; letter-spacing: -.06em; }
body.page-search .result-card-head { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: start; flex: 1 1 auto; padding: 1.05rem 1.05rem 0; }
body.page-search .result-card-main { min-width: 0; padding: 0; }
body.page-search .result-card-tag { color: var(--brand-ink); font-family: var(--font-mono); font-size: .66rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
body.page-search .result-card-name { margin: .45rem 0 .3rem; font-size: 1.2rem; line-height: 1.12; }
body.page-search .result-card-meta { color: #55514d; font-size: .76rem; }
body.page-search .result-card-desc { margin-top: .75rem; color: #55514d; font-size: .82rem; line-height: 1.5; }
body.page-search .result-card-hours { margin-top: .8rem; color: #55514d; font-size: .74rem; line-height: 1.4; }
body.page-search .result-card-hours span { display: block; color: var(--brand-ink); font-size: .64rem; font-weight: 800; text-transform: uppercase; }
body.page-search .result-card-facts { display: flex; margin-top: .8rem; }
body.page-search .result-card-price { display: inline-block; max-width: 100%; padding: .35rem .55rem; overflow: hidden; border-radius: 8px; background: #dad5ce; color: #55514d; font-size: .69rem; font-weight: 720; text-overflow: ellipsis; white-space: nowrap; }
body.page-search .result-card .favorite-btn { width: 44px; min-width: 44px; height: 44px; border-color: #55514d; }
body.page-search .result-card-actions { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 1rem; border-top: 1px solid var(--line-soft); }
body.page-search .result-card-actions a { display: flex; min-height: 44px; align-items: center; justify-content: center; padding: .55rem .35rem; border-right: 1px solid var(--line-soft); color: #55514d; font-size: .72rem; font-weight: 750; text-align: center; }
body.page-search .result-card-actions a:last-child { border-right: 0; }
body.page-search .search-empty { grid-column: 1 / -1; min-height: 300px; justify-content: center; border: 0; border-radius: 24px; background: #ffffff; }

@media (min-width: 768px) and (max-width: 900px) {
  body.page-search .search-filter-panel { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.page-search .search-filter-panel .search-check { grid-column: 1 / -1; }
}

/* Directory/listing pages */

/* Venue details: practical first, evidence quieter */

/* Editorial guides */

/* About */

/* Source-bounded map: choices first, coordinate surface on demand */

/* Compact trust footer */
body.product-redesign-2027 .footer { margin-top: 0; padding: clamp(2.8rem, 6vw, 4.5rem) 0 max(1.2rem, env(safe-area-inset-bottom)); background: #0b0b0c; color: #f4f1ec; }
body.product-redesign-2027 .footer-wrap { max-width: 1240px; padding-inline: clamp(1rem, 4vw, 2rem); }
body.product-redesign-2027 .footer-nav { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 1.5rem; }
body.product-redesign-2027 .footer-col-h { margin: 0 0 .7rem; color: #dad5ce; font-size: .67rem; letter-spacing: .15em; }
body.product-redesign-2027 .footer-col ul { display: grid; gap: .18rem; }
body.product-redesign-2027 .footer-col a { display: flex; min-height: 38px; align-items: center; color: #dad5ce; font-size: .79rem; }

body.product-redesign-2027 .footer-updated-line { color: #bdb8b3; font-size: .68rem; line-height: 1.55; }
body.product-redesign-2027 .footer-updated-line { margin-top: .6rem; }

@media (min-width: 768px) {
  body.product-redesign-2027 .footer { padding: 1.5rem 0 .75rem; }
  body.product-redesign-2027 .footer-wrap { padding-block: 0; }
  body.product-redesign-2027 .footer-updated-line { margin-top: .35rem; }
}

/* Small, consent-first—not the first product screen */
body.product-redesign-2027 .privacy-consent {
  position: fixed;
  z-index: 300;
  right: 1rem;
  bottom: max(1rem, env(safe-area-inset-bottom));
  left: 1rem;
  display: flex;
  width: min(880px, calc(100% - 2rem));
  min-height: 72px;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-inline: auto;
  padding: .8rem .9rem .8rem 1rem;
  border: 1px solid #55514d;
  border-radius: 16px;
  background: #0b0b0c;
  color: #fff;
  box-shadow: 0 20px 55px rgba(11, 11, 12, .28);
}
body.product-redesign-2027 .privacy-consent-copy { display: flex; min-width: 0; flex: 1 1 auto; align-items: baseline; gap: .55rem; }
body.product-redesign-2027 .privacy-consent-copy strong { flex: 0 0 auto; color: #fff; font-size: .78rem; }
body.product-redesign-2027 .privacy-consent-copy span { color: #dad5ce; font-size: .72rem; line-height: 1.4; }
body.product-redesign-2027 .privacy-consent-copy a { flex: 0 0 auto; color: #dad5ce; font-size: .7rem; text-decoration: underline; }
body.product-redesign-2027 .privacy-consent-actions { display: flex; flex: 0 0 auto; gap: .45rem; }
body.product-redesign-2027 .privacy-consent .btn { min-height: 42px; padding-inline: .85rem; font-size: .72rem; }
body.product-redesign-2027 .privacy-consent .btn-ghost { border-color: #55514d; color: #fff; }
body.product-redesign-2027 .privacy-consent .btn-primary { background: #dad5ce; border-color: #dad5ce; color: #0b0b0c; }

@media (max-width: 1050px) {
  body.product-redesign-2027 .nav-links { display: none; }
  body.product-redesign-2027 .nav-row { justify-content: space-between; }
  body.product-redesign-2027 .nav-cta { margin-left: auto; }
  body.product-redesign-2027 .nav-burger { display: inline-flex; }
  body.page-search .search-results { grid-template-columns: repeat(2, minmax(0,1fr)); }
}

@media (max-width: 767px) {
  body.product-redesign-2027 .nav { height: 62px; }
  body.product-redesign-2027 .nav-row { height: 62px; padding-inline: .9rem; }
  body.product-redesign-2027 .brand { font-size: 1.12rem; }
  body.product-redesign-2027 .nav-cta { min-height: 40px; padding-inline: .8rem; font-size: .74rem; }
  body.product-redesign-2027 .nav-burger { width: 44px; height: 44px; }
  body.product-redesign-2027 .nav-mobile { inset-block-start: 62px; max-height: calc(100dvh - 62px); }

  body.page-search #main { padding-inline: .75rem; }
  body.page-search .search-hero { margin-top: .65rem; padding: 1.15rem; border-radius: 20px; }
  body.page-search .search-hero h1 { font-size: clamp(2.15rem, 11vw, 3.2rem); }
  .search-hero-copy > p:last-child { font-size: .88rem; }
  body.page-search .search-input { min-height: 54px; padding-right: 2.8rem; }
  .search-quick-row { margin-right: -1.15rem; width: calc(100% + 1.15rem); padding-right: 1.15rem; }
  .search-filter-toggle { display: flex; width: 100%; min-height: 46px; align-items: center; justify-content: space-between; margin-top: .7rem; padding: .65rem .8rem; border: 1px solid #55514d; border-radius: 12px; background: #ffffff; color: var(--ink); font-size: .82rem; font-weight: 750; }
  .search-filter-toggle span { display: grid; width: 25px; height: 25px; place-items: center; border-radius: 50%; background: #dad5ce; font-size: .7rem; }
  .search-filter-toggle.has-active-filters span { background: var(--pg-coral); color: #0b0b0c; }
  body.page-search .search-toolbar { margin-top: .5rem; }
  .search-filter-drawer { display: none; padding: .85rem; }
  .search-filter-drawer[data-open="true"] { display: block; }
  .search-filter-drawer-head { flex-direction: column; gap: .15rem; }
  body.page-search .search-filters { flex-wrap: nowrap; overflow-x: auto; margin-right: -.85rem; padding-right: .85rem; }
  body.page-search .search-filter-panel { grid-template-columns: 1fr; }
  body.page-search .search-results { grid-template-columns: 1fr; gap: .85rem; }
  body.page-search .result-card { display: grid; grid-template-columns: 96px minmax(0,1fr); border-radius: 18px; }
  body.page-search .result-card-visual { grid-row: 1 / 3; min-height: 100%; padding: .7rem; }
  body.page-search .result-card-visual span { font-size: 1.1rem; writing-mode: vertical-rl; transform: rotate(180deg); }
  body.page-search .result-card-head { padding: .9rem .85rem 0; }
  body.page-search .result-card-name { font-size: 1.08rem; }
  body.page-search .result-card-desc { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
  body.page-search .result-card-actions { grid-column: 2; margin-top: .8rem; }
  body.page-search .result-card-actions a { font-size: .68rem; }

  body.product-redesign-2027 .footer { padding: .75rem 0 max(.5rem, env(safe-area-inset-bottom)); }
  body.product-redesign-2027 .footer-wrap { padding-block: 0; }
  body.product-redesign-2027 .footer-nav { grid-template-columns: repeat(3, minmax(0,1fr)); gap: .55rem; }
  body.product-redesign-2027 .footer-col-h { margin-bottom: .35rem; font-size: .59rem; }
  body.product-redesign-2027 .footer-col ul { gap: 0; }
  body.product-redesign-2027 .footer-col a { min-height: 28px; font-size: .66rem; line-height: 1.2; }
  body.product-redesign-2027 .footer-col:last-child { grid-column: auto; }
  body.product-redesign-2027 .footer-col:last-child ul { grid-template-columns: 1fr; }
  body.product-redesign-2027 .footer-updated-line { margin-top: .25rem; }

  body.product-redesign-2027 .privacy-consent { display: grid; grid-template-columns: minmax(0,1fr) auto; min-height: 60px; align-items: center; gap: .45rem; padding: .45rem .5rem .45rem .7rem; border-radius: 13px; }
  body.product-redesign-2027 .privacy-consent-copy { display: grid; grid-template-columns: auto auto; justify-content: start; gap: .1rem .45rem; }
  body.product-redesign-2027 .privacy-consent-copy strong { font-size: .72rem; }
  body.product-redesign-2027 .privacy-consent-copy span { display: none; }
  body.product-redesign-2027 .privacy-consent-copy a { margin: 0; align-self: center; }
  body.product-redesign-2027 .privacy-consent-actions { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: .3rem; }
  body.product-redesign-2027 .privacy-consent .btn { min-width: 64px; min-height: 44px; padding-inline: .55rem; }
}

@media (max-width: 380px) {
  body.product-redesign-2027 .nav-cta { display: none; }
  body.page-search .result-card { grid-template-columns: 82px minmax(0,1fr); }
  body.product-redesign-2027 .privacy-consent { right: .55rem; bottom: max(.55rem, env(safe-area-inset-bottom)); left: .55rem; width: calc(100% - 1.1rem); }
  body.product-redesign-2027 .privacy-consent-copy span { display: none; }
}
/* REFERENCE-REBUILD:START */
/* Visitor interface. Components own layout, typography and interaction states. */
:root,body.reference-rebuild{--brand:#0b0b0c;--brand-ink:#0b0b0c;--brand-bright:#f4f1ec;--accent:#0b0b0c;--accent-ink:#0b0b0c;--canvas:#f4f1ec;--surface:#fff;--surface-2:#f4f1ec;--surface-3:#f4f1ec;--sunken:#f4f1ec;--ink:#0b0b0c;--ink-muted:#55514d;--ink-subtle:#55514d;--text:#0b0b0c;--text-2:#55514d;--muted:#55514d;--hint:#55514d;--text-muted:#55514d;--line:#dad5ce;--line-strong:#bdb8b3;--line-control:#bdb8b3;--pink:#0b0b0c;--cyan:#0b0b0c;--mint:#0b0b0c;--yellow:#dad5ce;--font-body:Geist,Arial,sans-serif;--font-display:Geist,Arial,sans-serif;--font-mono:Geist,Arial,sans-serif;--max:1240px;--r-lg:16px;--r-pill:10px}
body.reference-rebuild{background:var(--canvas);color:var(--ink);font-family:Geist,Arial,sans-serif;font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}
body.reference-rebuild *,body.reference-rebuild *:before,body.reference-rebuild *:after{box-sizing:border-box}
body.reference-rebuild h1,body.reference-rebuild h2,body.reference-rebuild h3{font-family:Geist,Arial,sans-serif;color:var(--ink);letter-spacing:-.035em;line-height:1.2}
body.reference-rebuild :focus-visible{outline:3px solid #0b0b0c;outline-offset:4px}
body.reference-rebuild button,body.reference-rebuild input,body.reference-rebuild select{font:inherit}
body.reference-rebuild button{cursor:pointer}body.reference-rebuild button:disabled{cursor:default;opacity:.55}
body.reference-rebuild .wrap{width:100%;max-width:1240px;margin-inline:auto;padding-inline:28px}
body.reference-rebuild .section{padding-block:48px}
body.reference-rebuild .nav{background:#fff;border-bottom:1px solid var(--line);height:auto;min-height:76px;box-shadow:none;backdrop-filter:none}
body.reference-rebuild .nav-row{max-width:1240px;padding:0 28px;min-height:76px;gap:28px}
body.reference-rebuild .brand{font-size:24px;letter-spacing:-1px;font-weight:750;gap:10px;color:var(--ink);white-space:nowrap}
body.reference-rebuild .brand:before{display:none}body.reference-rebuild .brand img{width:33px;height:33px;object-fit:contain}
body.reference-rebuild .nav-links{gap:22px;margin-left:auto}body.reference-rebuild .nav-links a{font-size:14px;font-weight:600;color:#0b0b0c;padding:14px 0}
body.reference-rebuild .nav-links a:hover{color:var(--brand)}body.reference-rebuild .nav-cta{background:#f4f1ec;color:#0b0b0c;border:1px solid #dad5ce;border-radius:10px;min-height:44px;font-size:14px;padding:10px 16px}
body.reference-rebuild .nav-burger{border:1px solid var(--line);background:#fff;border-radius:10px;width:44px;height:44px}body.reference-rebuild .nav-mobile{background:#fff;top:76px}body.reference-rebuild .nav-mobile-link{font-size:18px;min-height:48px}
body.reference-rebuild .btn,body.reference-rebuild .sf-pill{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:46px;padding:11px 18px;border:1px solid var(--line-strong);border-radius:10px;background:#fff;color:var(--ink);font-size:14px;font-weight:650;line-height:1.45;text-decoration:none;box-shadow:none;white-space:normal}
body.reference-rebuild .btn-secondary,body.reference-rebuild .btn-ghost{background:#fff;color:var(--ink);border-color:var(--line-strong)}body.reference-rebuild .btn-secondary:hover,body.reference-rebuild .btn-ghost:hover{background:#f4f1ec;color:#0b0b0c}
/* Home: a useful finder is the visual focus; no generic gym photography. */
/* Shared venue card. Never inherit the old cv illustration and fixed column grid. */
body.reference-rebuild .pg-place-card{display:flex;flex-direction:column;position:relative;min-width:0;height:auto;min-height:0;padding:0;margin:0;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:none;overflow:hidden;transform:none;grid-template-columns:none;gap:0}
body.reference-rebuild .pg-place-card:hover{transform:none;box-shadow:0 8px 28px #0b0b0c08;border-color:#bdb8b3}
body.reference-rebuild .favorite-btn{position:static;display:inline-flex;align-items:center;justify-content:center;gap:8px;flex-shrink:0;width:auto;min-width:44px;min-height:44px;height:auto;margin:0;padding:10px 14px;line-height:1.4;font-size:14px;font-weight:600;background:#fff;color:#55514d;border:1px solid #dad5ce;border-radius:10px;box-shadow:none;white-space:nowrap}
body.reference-rebuild .favorite-btn .fav-heart{font-family:Arial,sans-serif;line-height:1;font-size:22px}body.reference-rebuild .favorite-btn .fav-btn-label{font:inherit}
body.reference-rebuild .result-card .favorite-btn{width:44px;height:44px;min-width:44px;padding:0;background:#f4f1ec;border:1px solid #dad5ce;border-radius:50%}
body.reference-rebuild .result-card .favorite-btn .fav-btn-label{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
body.reference-rebuild .favorite-btn:hover{background:#f4f1ec;color:var(--brand);border-color:#bdb8b3}body.reference-rebuild .favorite-btn.is-saved,body.reference-rebuild .favorite-btn[aria-pressed=true]{background:#f4f1ec;border-color:#bdb8b3;color:#0b0b0c}.record-status{display:inline-flex;width:fit-content;padding:6px 10px;background:#f4f1ec;border:1px solid #dad5ce;color:#55514d;border-radius:7px;font-size:12px!important;line-height:1.5;margin:12px 0}
.result-card-photo{margin:0;display:block}.result-card-photo img{display:block;aspect-ratio:16/9;object-fit:cover;width:100%;height:auto}.result-card-photo figcaption{padding:9px 16px;font-size:12px;color:#55514d;background:#f4f1ec}.result-card-photo figcaption a{color:var(--brand)}
/* Directory headers and guide links keep contrast independent of sport colours. */body.reference-rebuild .hero .btn{font-size:14px}
/* Venue pages bring price and practical facts ahead of long editorial copy. */body.reference-rebuild .jump-nav-pills a{font-size:14px;padding:10px 14px;border-radius:8px;background:#fff;color:var(--brand);min-height:44px}
/* Search results use a full-width title; save never steals a text column. */
body.reference-rebuild .search-hero{padding:38px 28px 8px;margin:0 auto;background:none;border-radius:0;max-width:1240px}.search-hero-copy{margin-bottom:24px}body.reference-rebuild .search-hero h1{font-size:42px!important;font-weight:750;line-height:1.15}body.reference-rebuild .search-hero-copy>p{font-size:17px;line-height:1.75;max-width:780px}.search-input-wrap{display:block;position:relative;border:0;padding:0;background:transparent;box-shadow:none;max-width:none}body.reference-rebuild .search-input{display:block;background:#fff;border:1px solid var(--line-control);border-radius:12px;width:100%;max-width:none;min-height:58px;font-size:16px;padding:15px 48px 15px 18px;box-shadow:none}.search-icon{position:absolute;top:50%;right:18px;left:auto;transform:translateY(-50%);font-size:24px;color:var(--muted)}
body.reference-rebuild .search-quick-row{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}.search-toolbar{margin-top:12px}body.reference-rebuild .sf-pill{font-size:13px;padding:10px 14px;min-height:44px;flex-shrink:0}body.reference-rebuild .sf-pill.active,body.reference-rebuild .sf-pill[aria-pressed=true]{background:var(--brand);border-color:var(--brand);color:#fff}body.reference-rebuild .search-map-link{background:#0b0b0c;color:#fff;border-color:#0b0b0c;border-radius:10px}.search-filter-toggle,.search-filter-close{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:10px 16px;background:#fff;border:1px solid var(--line-strong);border-radius:10px;color:var(--ink);font-size:14px}.search-filter-drawer{padding:24px;border:1px solid var(--line);border-radius:14px;background:#f4f1ec}.search-filter-drawer[data-open=false]{display:none!important}.search-filter-drawer[data-open=true]{display:block}.search-filter-drawer-head{font-size:18px;margin-bottom:22px}.search-filter-panel{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.search-filter-panel label{display:grid;gap:8px;font-size:14px;text-transform:none;letter-spacing:0;color:#55514d}.search-filter-panel select{width:100%;min-width:0;min-height:48px;font-size:16px;background:#fff;border:1px solid var(--line-control);border-radius:8px;padding:10px}.search-filter-panel .search-check{display:flex;align-items:center;gap:10px}.search-check input{width:20px;height:20px}#search-access-help{font-size:13px}.search-filter-close{margin-top:18px}.search-active-filters{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.search-active-filters button{min-height:38px;padding:7px 12px;background:#fff;border:1px solid var(--line-strong);border-radius:8px;font-size:13px}
body.reference-rebuild .search-results{gap:24px;align-items:stretch}body.reference-rebuild .result-card{display:flex;flex-direction:column;grid-template-columns:none;gap:0;min-height:0;height:auto;min-width:0;padding:0;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:none;overflow:hidden;transform:none}body.reference-rebuild .result-card-visual{display:none}body.reference-rebuild .result-card-head{display:block;position:relative;padding:24px;min-width:0;flex:1}.result-card-head>.favorite-btn{position:absolute!important;right:20px;top:20px}.result-card-main{display:block!important;min-width:0;width:100%;color:var(--ink);text-decoration:none}body.reference-rebuild .result-card-tag{display:block;background:transparent;color:#55514d;font-size:12px;font-weight:600;line-height:1.6;min-height:44px;padding:5px 56px 12px 0;text-transform:none;letter-spacing:0;border:0;border-radius:0}body.reference-rebuild .result-card-name{display:block!important;font-size:24px!important;font-weight:700!important;line-height:1.28;letter-spacing:-.035em;margin:0 0 9px;min-height:0}body.reference-rebuild .result-card-meta{font-size:14px;color:#55514d;line-height:1.6;margin:0 0 18px;letter-spacing:0;text-transform:none}body.reference-rebuild .result-card-desc{display:block;overflow:visible;max-height:none;-webkit-line-clamp:unset;font-size:15px;line-height:1.75;margin:0 0 16px;color:#55514d}body.reference-rebuild .result-card-access{font-size:13px;line-height:1.7;margin:0 0 14px;color:#55514d}body.reference-rebuild .result-card-hours{font-size:13px;line-height:1.7;margin-top:17px;color:#55514d}body.reference-rebuild .result-card-hours>span{display:block;font-size:13px;font-weight:650;line-height:1.6;letter-spacing:0;text-transform:none;color:#0b0b0c;margin-bottom:4px}body.reference-rebuild .result-card-facts{margin:18px 0 0}body.reference-rebuild .result-card-price{display:block;width:100%;padding:16px 0 0;margin:0;border-top:1px solid var(--line);border-radius:0;background:transparent;color:var(--ink);font-size:15px;line-height:1.7}.result-card-price.is-selected-product{display:grid!important;gap:4px}.result-card-product-label{font-size:13px;color:var(--muted)}.result-card-price strong{font-size:25px;line-height:1.4;letter-spacing:-.025em}.result-card-price small{font-size:12px;color:var(--muted)}body.reference-rebuild .result-card-actions{display:flex;align-items:center;justify-content:space-between;gap:14px;border-top:1px solid var(--line);padding:10px 24px;margin:0}.result-card-actions a{display:inline-flex;align-items:center;justify-content:center;padding:8px 0;min-height:44px;font-size:13px;border:0;border-radius:0;color:#55514d;text-decoration:none}.result-card-actions a:first-child{color:var(--brand);font-weight:650}
/* Publishing surfaces and consent. */
body.reference-rebuild .footer{background:#0b0b0c;color:#fff;padding:52px 0 28px;border-radius:0;margin:0;border:0}body.reference-rebuild .footer-wrap{max-width:1240px;padding-inline:28px}body.reference-rebuild .footer-nav a{font-size:14px;line-height:1.8;color:#dad5ce}body.reference-rebuild .footer-col-h{font-size:13px!important;color:#fff;letter-spacing:.04em}.footer-updated-line{font-size:12px;color:#bdb8b3}
body.reference-rebuild #privacy-consent{background:#0b0b0c;border:1px solid #55514d;border-radius:12px;color:#fff;padding:16px;gap:20px}#privacy-consent .privacy-consent-copy strong,#privacy-consent .privacy-consent-copy span{color:#fff;font-size:13px}#privacy-consent a{color:#dad5ce}#privacy-consent button{min-height:44px;font-size:13px}body.reference-rebuild #privacy-consent .btn-primary{background:#f4f1ec;color:#0b0b0c;border-color:#f4f1ec}body.reference-rebuild #privacy-consent .btn-ghost{background:transparent;color:#fff;border-color:#bdb8b3}body.reference-rebuild table{font-size:15px;line-height:1.7}
@media(max-width:1100px){.nav-row{gap:18px!important}body.reference-rebuild .nav-links{gap:16px}body.reference-rebuild .nav-links a{font-size:13px}body.reference-rebuild .nav-cta{display:none}}
@media(max-width:767px){
 body.reference-rebuild{font-size:16px;padding-bottom:66px}body.reference-rebuild .wrap{padding-inline:20px}body.reference-rebuild .section{padding-block:32px}body.reference-rebuild .nav,body.reference-rebuild .nav-row{min-height:68px}body.reference-rebuild .nav-row{padding-inline:20px}body.reference-rebuild .brand{font-size:22px}body.reference-rebuild .brand img{width:30px;height:30px}body.reference-rebuild .nav-links{display:none}body.reference-rebuild .nav-burger{display:flex;margin-left:auto}body.reference-rebuild .nav-mobile{top:68px;max-height:calc(100dvh - 68px);overflow:auto;padding-bottom:80px}
 body.reference-rebuild .pg-place-card{grid-template-columns:none;display:flex}
 body.reference-rebuild .search-hero{padding:28px 20px 6px}body.reference-rebuild .search-hero h1{font-size:34px!important}body.reference-rebuild .search-hero-copy>p{font-size:16px}.search-quick-row{overflow:visible;flex-wrap:wrap}.search-quick-row .sf-pill{font-size:12px;padding:9px 12px;min-height:44px}.search-toolbar{position:static!important;z-index:auto!important;backdrop-filter:none!important;transform:none!important}body.reference-rebuild .search-results{grid-template-columns:1fr;gap:18px}body.reference-rebuild .result-card{display:flex;grid-template-columns:none}body.reference-rebuild .result-card-head{padding:22px}body.reference-rebuild .result-card-name{font-size:25px!important}body.reference-rebuild .result-card-desc{font-size:16px}body.reference-rebuild .result-card-actions{padding:10px 22px}.result-card-actions a{font-size:14px}
 body.reference-rebuild:has(.search-filter-drawer[data-open=true]){overflow:hidden}body.reference-rebuild .search-filter-drawer[data-open=true]{position:fixed;inset:76px 10px 76px;z-index:1100;display:flex;flex-direction:column;gap:18px;width:auto;height:auto;max-width:none;max-height:none;margin:0;padding:20px;border-radius:14px;background:#f4f1ec;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;box-shadow:0 0 0 100vmax #0b0b0c99}.search-filter-drawer>*{flex:0 0 auto;min-width:0}.search-filter-drawer-head{display:flex;flex-direction:column;align-items:start;gap:5px;margin:0}.search-filter-drawer .sf-pill{flex:0 1 auto;max-width:100%;white-space:normal}.search-filter-panel{grid-template-columns:1fr;gap:18px;margin:0;padding:0;border:0}.search-filter-panel>label:not(.search-check){display:grid;grid-template-columns:1fr;gap:8px;width:100%;min-width:0;text-transform:none;letter-spacing:0;font-size:14px}.search-filter-panel select{font-size:16px;min-height:48px;max-width:100%;margin:0}.search-filter-panel .search-check{font-size:14px;min-height:44px}.search-filter-drawer #search-access-help{order:2;font-size:13px;margin:0}.search-filter-drawer .search-filter-close{position:sticky;bottom:0;z-index:2;order:3;width:100%;margin:0;background:var(--brand);border-color:var(--brand);color:#fff;justify-content:center;min-height:48px;box-shadow:0 -10px 0 8px #f4f1ec}body.reference-rebuild #privacy-consent{bottom:77px!important;left:12px;right:12px;width:auto;max-width:none;transform:none;max-height:45dvh;overflow:auto}.back-to-top{bottom:80px!important}
 body.reference-rebuild .footer{padding-block:40px 28px}body.reference-rebuild .footer-wrap{padding-inline:20px}.footer-nav{margin-top:32px;gap:20px}
}
@media(prefers-reduced-motion:reduce){body.reference-rebuild *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

body.reference-rebuild .favorite-list-actions{padding:16px 22px;border-top:1px solid var(--line);margin:0;gap:8px;flex-wrap:wrap}body.reference-rebuild .favorite-list-card .cv-head{margin:0;padding:0}.favorite-list-card .pg-place-area{margin-top:10px;margin-bottom:20px}.favorite-list-card .pg-place-content .record-status{margin-bottom:16px}

/* Remaining guide cards share the same readable sizing while their evidence markup stays stable. */
body.reference-rebuild .cat-venue-card:not(.pg-place-card){display:flex;flex-direction:column;gap:0;min-width:0;padding:24px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:none;grid-template-columns:none}
body.reference-rebuild .cat-venue-card:not(.pg-place-card)>p{display:block;overflow:visible;max-height:none;-webkit-line-clamp:unset;font-size:15px;line-height:1.8;margin:0 0 18px;padding:0;color:#55514d}
body.reference-rebuild .search-filter-drawer .search-filters{display:flex;flex-wrap:wrap;gap:8px;overflow:visible;margin:0 0 18px;padding:0}
body.reference-rebuild .search-filter-drawer .sf-pill{max-width:100%;white-space:normal;flex:0 1 auto;overflow-wrap:anywhere}
body.reference-rebuild .search-filter-drawer .search-filter-close{background:var(--brand);border-color:var(--brand);color:#fff}
@media(min-width:768px) and (max-width:1050px){body.reference-rebuild .nav-links{display:none}body.reference-rebuild .nav-burger{display:flex;margin-left:auto}body.reference-rebuild .nav-cta{display:inline-flex}body.reference-rebuild .nav-mobile{top:76px}}
@media(max-width:767px){
 body.reference-rebuild .search-hero-copy .home-eyebrow,body.reference-rebuild .search-hero-copy>p:last-child{display:none}
 body.reference-rebuild .search-hero-copy{margin-bottom:20px}body.reference-rebuild .search-hero h1{font-size:30px!important;margin:0;max-width:310px}
 body.reference-rebuild .search-quick-row .sf-pill[data-cat=racquet],body.reference-rebuild .search-quick-row .sf-pill[data-cat=yoga],body.reference-rebuild .search-quick-row .sf-pill[data-cat=kids-youth]{display:none}
 body.reference-rebuild .search-filter-drawer .pg-mobile-sport{display:inline-flex!important}
 body.reference-rebuild .search-quick-row{gap:6px;flex-wrap:wrap;margin-block:14px}
 body.reference-rebuild .search-quick-row .sf-pill{padding:9px 10px;font-size:12px}
 body.reference-rebuild .search-filter-toggle{width:auto;display:inline-flex;min-width:105px;padding:9px 14px;font-size:14px}
 body.reference-rebuild .search-filter-drawer .search-filters{gap:8px;margin-bottom:0;flex-wrap:wrap;overflow:visible}
 body.reference-rebuild .search-filter-drawer .search-filter-close{background:var(--brand);color:#fff;min-height:48px}
 body.reference-rebuild .search-filter-panel label{font-size:14px}
 body.reference-rebuild .search-filter-panel select{font-size:16px}
}

/* All retained public templates use the same calm header surface. */
body.reference-rebuild .hero:not(.pg-venue-hero){background:#f4f1ec!important;background-image:none!important;border:1px solid #dad5ce;border-radius:16px;min-height:0;padding:38px!important;color:var(--ink)!important}
body.reference-rebuild .hero:not(.pg-venue-hero):before,body.reference-rebuild .hero:not(.pg-venue-hero):after{display:none!important}
body.reference-rebuild .hero:not(.pg-venue-hero) h1{color:var(--ink)!important}
body.reference-rebuild .hero:not(.pg-venue-hero) h1 span{color:var(--brand)!important}
body.reference-rebuild .hero:not(.pg-venue-hero) .btn-secondary,body.reference-rebuild .hero:not(.pg-venue-hero) .btn-ghost{background:#fff!important;border-color:var(--line-strong)!important;color:var(--ink)!important}
@media(max-width:767px){body.reference-rebuild .hero:not(.pg-venue-hero){padding:26px 24px!important}}

/* Keep the native search clear control unobstructed. */
.search-input:not(:placeholder-shown)+.search-icon{display:none}

.pg-filter-scroll{display:contents}.pg-filter-summary{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.pg-filter-summary .search-active-filters{margin:0;flex:1}.pg-filter-summary .search-filter-toggle{margin:0}
@media(max-width:767px){body.reference-rebuild .search-hero{padding-top:20px}body.reference-rebuild .search-hero-copy{margin-bottom:18px}.pg-filter-summary{gap:8px;margin:0 0 8px}.pg-filter-summary .search-active-filters{gap:6px}.pg-filter-summary .search-active-filters button{min-height:44px;font-size:12px;padding:6px 9px}body.reference-rebuild .search-toolbar{margin-top:0!important}body.reference-rebuild .search-filter-drawer[data-open=true]{padding:0;gap:0;overflow:hidden}body.reference-rebuild .search-filter-drawer .pg-filter-scroll{display:flex;flex-direction:column;gap:20px;flex:1 1 auto;min-height:0;padding:20px;overflow-y:auto;overscroll-behavior:contain}body.reference-rebuild .search-filter-drawer .pg-filter-scroll>*{flex:0 0 auto}body.reference-rebuild .search-filter-drawer .search-filter-close{position:static;order:initial;width:calc(100% - 40px);margin:12px 20px 20px;flex:0 0 auto;box-shadow:none}body.reference-rebuild .search-filter-drawer #search-access-help{order:initial}body.reference-rebuild .search-filter-toggle{min-width:92px;padding-inline:10px}}

/* Retained publishing templates: readable text on the shared light hero. */

@media(min-width:768px) and (max-width:1050px){body.reference-rebuild .nav-mobile{max-height:calc(100dvh - 76px);overflow-y:auto}}

/* A local training publication: an identified place, then distinct training choices. */

/* Search is a working directory: place, price and actions precede background. */
body.reference-rebuild .search-hero{padding-top:28px;padding-bottom:0}
body.reference-rebuild .search-hero-copy{margin-bottom:18px}
body.reference-rebuild .search-hero-copy .home-eyebrow,body.reference-rebuild .search-hero-copy>p:last-child{display:none}
body.reference-rebuild .search-hero h1{font-size:34px!important;letter-spacing:-.04em;margin:0}
body.reference-rebuild .search-input-wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px}
body.reference-rebuild .search-input{padding:14px 18px;min-height:54px}
body.reference-rebuild .search-input-wrap .search-filter-toggle{margin:0;min-height:54px;min-width:105px;padding:12px 16px}
body.reference-rebuild .search-icon{display:none}
body.reference-rebuild .search-quick-row{margin:12px 0;gap:8px}
body.reference-rebuild .search-quick-row .sf-pill,body.reference-rebuild .search-quick-row .search-map-link{border-color:transparent;background:transparent;color:#55514d;border-radius:6px;font-size:14px;padding:9px 12px}
body.reference-rebuild .search-quick-row .sf-pill.active,body.reference-rebuild .search-quick-row .sf-pill[aria-pressed=true]{background:#0b0b0c;border-color:#0b0b0c;color:#fff}
body.reference-rebuild .search-quick-row .search-map-link{margin-left:auto;color:#0b0b0c;text-decoration:underline;text-underline-offset:4px}
body.reference-rebuild .pg-filter-summary{margin:0}
body.reference-rebuild .pg-filter-summary:has(.search-active-filters:empty){display:none}
body.reference-rebuild .search-active-filters{gap:8px;margin:0 0 12px}
body.reference-rebuild .search-stats{max-width:1240px;margin:12px auto 20px;padding:0 28px;font-size:14px;line-height:1.6}
body.reference-rebuild .search-results{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
body.reference-rebuild .result-card{border-radius:12px;background:#fff;box-shadow:none;align-self:start}
body.reference-rebuild .result-card-head{padding:24px 24px 18px;flex:none}
body.reference-rebuild .result-card-tag{min-height:0;padding:0;margin:0 0 10px;font-size:13px;line-height:1.5;color:#55514d}
body.reference-rebuild .result-card-name{font-size:26px!important;line-height:1.23;margin-bottom:8px}
body.reference-rebuild .result-card-meta{margin-bottom:0;font-size:14px}
body.reference-rebuild .result-card-facts{margin:18px 0 0}
body.reference-rebuild .result-card-price{padding:0;border:0;font-size:16px;color:#55514d;line-height:1.6}
body.reference-rebuild .result-card-price.is-selected-product{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:5px 14px}
body.reference-rebuild .result-card-product-label{font-size:14px;color:#55514d}
body.reference-rebuild .result-card-price strong{font-size:25px;line-height:1.3;letter-spacing:-.025em;color:#0b0b0c}
body.reference-rebuild .result-card-price small{grid-column:1/-1;font-size:12px;color:#55514d}
body.reference-rebuild .result-card-access{margin:14px 0 0;font-size:14px;line-height:1.6;color:#55514d}
body.reference-rebuild .result-card-actions{gap:12px;padding:8px 24px;border-top:1px solid #dad5ce;border-bottom:1px solid #dad5ce;background:#ffffff}
body.reference-rebuild .result-card-actions a{font-size:14px;min-height:44px;flex:1;justify-content:flex-start;padding:8px 0}
body.reference-rebuild .result-card-actions .favorite-btn{position:static!important;flex:0 0 44px;margin-left:auto;background:#fff;border-color:#dad5ce;border-radius:50%}
body.reference-rebuild .result-card-context{padding:20px 24px 24px}
body.reference-rebuild .result-card-context .result-card-desc{font-size:16px;line-height:1.65;margin:0;color:#55514d}
body.reference-rebuild .result-card-context .result-card-hours{margin-top:16px;font-size:14px;line-height:1.6}
@media(max-width:767px){
 body.reference-rebuild .search-hero{padding:18px 20px 0}
 body.reference-rebuild .search-hero-copy{margin-bottom:16px}
 body.reference-rebuild .search-hero h1{font-size:26px!important;max-width:none;line-height:1.2}
 body.reference-rebuild .search-input-wrap{gap:8px}
 body.reference-rebuild .search-input{min-height:52px;font-size:16px;padding:12px 14px}
 body.reference-rebuild .search-input-wrap .search-filter-toggle{min-height:52px;min-width:85px;padding:10px}
 body.reference-rebuild .search-quick-row{gap:3px;margin:10px 0}
 body.reference-rebuild .search-quick-row .sf-pill,body.reference-rebuild .search-quick-row .search-map-link{font-size:13px;padding:9px 10px;min-height:44px}
 body.reference-rebuild .search-stats{padding-inline:20px;margin:8px auto 16px;font-size:13px}
 body.reference-rebuild .search-results{grid-template-columns:1fr;gap:20px}
 body.reference-rebuild .result-card-head{padding:20px 20px 16px}
 body.reference-rebuild .result-card-name{font-size:25px!important}
 body.reference-rebuild .result-card-tag{font-size:12px;margin-bottom:8px}
 body.reference-rebuild .result-card-price.is-selected-product{gap:4px 12px}
 body.reference-rebuild .result-card-price strong{font-size:23px;white-space:nowrap}
 body.reference-rebuild .result-card-product-label{font-size:13px}
 body.reference-rebuild .result-card-actions{padding:8px 20px;gap:10px}
 body.reference-rebuild .result-card-actions a{font-size:13px}
 body.reference-rebuild .result-card-context{padding:18px 20px 20px}
}
@media(max-width:370px){body.reference-rebuild .result-card-price.is-selected-product{grid-template-columns:1fr}.result-card-price small{grid-column:auto}}

/* A place introduction and a distinct, compact visit panel. */

/* Comparison component. No dependency on legacy card or table class names. */

/* Planner: three starting choices, optional preferences and a useful shortlist. */

/* Google-served maps: the iframe is created only after visitor activation. */

/* Pattaya Gym / September 2026. Shared design language and editorial layouts. */
body.flagship-2026{--brand:#0b0b0c;--brand-ink:#0b0b0c;--brand-bright:#f4f1ec;--accent:#0b0b0c;--accent-ink:#0b0b0c;--canvas:#f4f1ec;--surface:#fff;--surface-2:#f4f1ec;--surface-3:#dad5ce;--sunken:#f4f1ec;--ink:#0b0b0c;--ink-muted:#55514d;--ink-subtle:#55514d;--text:#0b0b0c;--text-2:#55514d;--muted:#55514d;--hint:#55514d;--text-muted:#55514d;--line:#dad5ce;--line-strong:#bdb8b3;--line-control:#55514d;--pink:#0b0b0c;--cyan:#0b0b0c;--mint:#0b0b0c;--yellow:#dad5ce;--font-display:Geist,Geist,Arial,sans-serif;--font-mono:Geist,Arial,sans-serif;background:var(--canvas);color:var(--ink);line-height:1.7}
body.flagship-2026 :is(h1,h2,h3){font-family:var(--font-display);font-weight:600;color:var(--ink);letter-spacing:-.045em;text-wrap:balance}
body.flagship-2026 :focus-visible{outline:3px solid #55514d;outline-offset:4px}
body.flagship-2026 ::selection{background:#dad5ce;color:#0b0b0c}
body.flagship-2026 :is(.wrap,.nav-row,.footer-wrap){max-width:1304px;padding-inline:32px}
body.flagship-2026 .nav{background:#f4f1ecf5;border-bottom:1px solid #dad5ce;backdrop-filter:blur(16px)}
body.flagship-2026 .nav-row{min-height:88px;gap:28px}
body.flagship-2026 .brand{font-family:var(--font-display);font-size:27px;letter-spacing:-1.3px;gap:9px}
body.flagship-2026 .brand img{width:42px;height:42px}
body.flagship-2026 .nav-links{gap:25px}
body.flagship-2026 .nav-links a{font-size:14px;color:#0b0b0c;font-weight:550}
body.flagship-2026 .nav-links a[aria-current=page]{color:#0b0b0c;border-bottom:2px solid #0b0b0c}
body.flagship-2026 .nav-cta{background:#0b0b0c;color:#fff;border:1px solid #0b0b0c;border-radius:100px;padding:12px 20px;min-height:46px;font-size:13px}
body.flagship-2026 .nav-burger{border-radius:50%;background:transparent;border-color:#bdb8b3}
body.flagship-2026 .nav-mobile{top:88px;background:#f4f1ec}
body.flagship-2026 :is(.btn){border-radius:100px;min-height:48px;padding:12px 21px;font-size:14px;font-weight:600;transition:background-color .18s,border-color .18s,box-shadow .18s}
body.flagship-2026 :is(.btn-secondary,.btn-ghost){background:#fff;border-color:#bdb8b3;color:#0b0b0c}
body.flagship-2026 :is(.btn-secondary,.btn-ghost):hover{background:#f4f1ec;border-color:#55514d;color:#0b0b0c}
body.flagship-2026 .favorite-btn{color:#0b0b0c;background:#fff;border:1px solid #dad5ce;border-radius:100px;min-height:44px;box-shadow:none}
body.flagship-2026 .favorite-btn:is(.is-saved,[aria-pressed=true]){color:#0b0b0c;background:#dad5ce;border-color:#dad5ce}
body.flagship-2026 .favorite-btn .fav-heart{font-size:23px}
/* Category and editorial families keep their full content and anchors. */
body.flagship-2026 .hero:not(.pg-venue-hero){background:#dad5ce!important;background-image:none!important;border-color:#dad5ce;border-radius:26px;padding:50px!important;margin-block:24px}
body.flagship-2026 .hero:not(.pg-venue-hero) h1{font-family:var(--font-display);font-weight:600;font-size:clamp(38px,4.5vw,62px)!important;line-height:1.08!important;letter-spacing:-.055em}
body.flagship-2026 .hero:not(.pg-venue-hero) h1 span{color:#0b0b0c!important}
body.flagship-2026 .section{padding-block:48px}
body.flagship-2026 :is(.guide-hub-grid){gap:24px}
body.flagship-2026 .pg-place-card,body.flagship-2026 .cat-venue-card:not(.pg-place-card){border-radius:23px;border-color:#dad5ce;box-shadow:none;background:white}
body.flagship-2026 .pg-place-card:hover{border-color:#bdb8b3;box-shadow:0 12px 32px #0b0b0c09}
body.flagship-2026 .jump-nav-pills a{color:#0b0b0c;border-radius:100px}
/* Venue introduction: identifiable place, a distinct visit panel, readable detail. */
/* Footer is a calm end to the publication, with the same navigation and identity. */
body.flagship-2026 .footer{background:#dad5ce;border-top:1px solid #dad5ce;color:#0b0b0c;padding-block:64px 32px}
body.flagship-2026 .footer-col-h{font-family:Geist,Arial,sans-serif;font-size:13px;font-weight:650;color:#0b0b0c}
body.flagship-2026 .footer-col a{font-size:14px;color:#55514d;padding-block:8px}
body.flagship-2026 :is(.footer-updated-line){color:#55514d;border-color:#dad5ce}
@media(min-width:768px) and (max-width:1100px){body.flagship-2026 .nav-links{display:none}body.flagship-2026 .nav-burger{display:flex;margin-left:auto}body.flagship-2026 .nav-cta{display:inline-flex}}
@media(max-width:767px){
 body.flagship-2026{padding-bottom:calc(76px + env(safe-area-inset-bottom))}
 body.flagship-2026 :is(.wrap,.nav-row,.footer-wrap){padding-inline:20px}
 body.flagship-2026 .nav,body.flagship-2026 .nav-row{min-height:72px}
 body.flagship-2026 .brand{font-size:24px;letter-spacing:-1px;gap:7px}
 body.flagship-2026 .brand img{width:36px;height:36px}
 body.flagship-2026 .nav-links,body.flagship-2026 .nav-cta{display:none}
 body.flagship-2026 .nav-mobile{top:72px;max-height:calc(100dvh - 72px);padding-bottom:100px}
 body.flagship-2026 .nav-mobile-link{font-family:var(--font-display);font-size:22px;color:#0b0b0c}
 body.flagship-2026 .hero:not(.pg-venue-hero){padding:28px 24px!important;border-radius:22px;margin-block:20px}
 body.flagship-2026 .hero:not(.pg-venue-hero) h1{font-size:38px!important;line-height:1.1!important}
 body.flagship-2026 .section{padding-block:34px}
 body.flagship-2026 .footer{padding-block:42px 28px}
 body.flagship-2026 .footer-nav{gap:24px}
 body.flagship-2026 .footer-col a{font-size:13px}
 body.flagship-2026:has(#pg-compare-tray:not([hidden])){padding-bottom:calc(158px + env(safe-area-inset-bottom))}
 body.flagship-2026:has(#pg-compare-tray:not([hidden])) .back-to-top{bottom:calc(154px + env(safe-area-inset-bottom))!important}
 body.flagship-2026:has(#privacy-consent) :is(.back-to-top){visibility:hidden}
}
@media(prefers-reduced-motion:reduce){body.flagship-2026 *{transition:none!important;animation:none!important;scroll-behavior:auto!important}}

/* September 2026 tool surfaces. Append after the existing component styles.
   Presentation only: runtime visibility, native form controls and URL state remain owned by each tool. */
body.flagship-2026 {
  --ft-forest:#0b0b0c;
  --ft-ink:#0b0b0c;
  --ft-canvas:#f4f1ec;
  --ft-white:#fff;
  --ft-line:#dad5ce;
  --ft-control:#55514d;
  --ft-muted:#55514d;
  --ft-lime:#dad5ce;
  --ft-soft:#f4f1ec;
  --ft-heading:Geist,Geist,Arial,sans-serif;
}
body.flagship-2026 :is(.search-hero,.search-results) {
  color:var(--ft-ink);
  font-family:Geist,Arial,sans-serif;
  font-size:16px;
  line-height:1.65;
}
body.flagship-2026 :is(.search-hero,.search-results) [hidden] {display:none!important}
body.flagship-2026 :is(.search-hero,.search-results) :is(a,button,input,select,summary,[tabindex]):focus-visible {
  outline:3px solid var(--ft-forest);
  outline-offset:4px;
}
body.flagship-2026 :is(.search-hero,.search-results) :is(button,input,select):disabled {opacity:.55;cursor:default}
body.flagship-2026 :is(.search-hero,.search-results) :is(h1,h2,h3) {
  font-family:var(--ft-heading);
  color:var(--ft-ink);
  font-weight:700;
  letter-spacing:-.035em;
  text-transform:none;
}

/* Search: one clear search surface above a calm two-column directory. */
body.flagship-2026.page-search .search-hero {max-width:1240px;margin:0 auto;padding:36px 32px 0;background:transparent;border:0;box-shadow:none}
body.flagship-2026.page-search .search-hero-copy {margin-bottom:24px}
body.flagship-2026.page-search .search-hero h1 {font-size:48px!important;line-height:1.08;max-width:900px;margin:0;color:var(--ft-ink)}
body.flagship-2026.page-search .search-input-wrap {display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:8px;background:var(--ft-white);border:1px solid var(--ft-line);border-radius:22px;box-shadow:none}
body.flagship-2026.page-search .search-input {min-width:0;min-height:52px;border:0;border-radius:14px;background:var(--ft-white);padding:12px 18px;color:var(--ft-ink);font:400 17px/1.5 Geist,Arial,sans-serif;box-shadow:none}
body.flagship-2026.page-search .search-input::placeholder {color:var(--ft-muted);opacity:1}
body.flagship-2026.page-search .search-filter-toggle {min-height:52px;min-width:112px;justify-content:center;padding:12px 20px;border:1px solid var(--ft-forest);border-radius:15px;background:var(--ft-forest);color:var(--ft-white);font-size:15px;font-weight:600}
body.flagship-2026.page-search .search-filter-toggle:hover:not(:disabled),body.flagship-2026.page-search .search-filter-toggle[aria-expanded=true] {background:var(--ft-ink);border-color:var(--ft-ink)}
body.flagship-2026.page-search #active-filter-count {display:inline-grid;place-items:center;min-width:24px;min-height:24px;padding:0 5px;border-radius:50%;background:var(--ft-lime);color:var(--ft-ink);font-size:13px;font-weight:700}
body.flagship-2026.page-search .search-quick-row {display:flex;gap:8px;flex-wrap:wrap;margin:16px 0 20px;align-items:center}
body.flagship-2026.page-search .sf-pill {min-height:44px;padding:9px 15px;border:1px solid var(--ft-line);border-radius:999px;background:var(--ft-white);color:var(--ft-ink);font:500 14px/1.5 Geist,Arial,sans-serif;box-shadow:none}
body.flagship-2026.page-search .sf-pill:hover:not(:disabled) {background:var(--ft-soft);border-color:var(--ft-control)}
body.flagship-2026.page-search .sf-pill:is(.active,[aria-pressed=true]) {background:var(--ft-forest);border-color:var(--ft-forest);color:var(--ft-white)}
body.flagship-2026.page-search .search-map-link {display:inline-flex;align-items:center;justify-content:center;min-height:44px;margin-left:auto;padding:9px 16px;border:1px solid var(--ft-line);border-radius:999px;background:var(--ft-lime);color:var(--ft-ink);font-size:14px;font-weight:600;text-decoration:none}
body.flagship-2026.page-search .search-toolbar {background:transparent;border:0;box-shadow:none;backdrop-filter:none}
body.flagship-2026.page-search .search-filter-drawer {padding:28px;border:1px solid var(--ft-line);border-radius:24px;background:var(--ft-white);box-shadow:none}
body.flagship-2026.page-search .search-filter-drawer-head {align-items:baseline;margin-bottom:22px;color:var(--ft-ink)}
body.flagship-2026.page-search .search-filter-drawer-head strong {font:700 23px/1.3 var(--ft-heading);letter-spacing:-.025em}
body.flagship-2026.page-search .search-filter-drawer-head span {font-size:14px;color:var(--ft-muted)}
body.flagship-2026.page-search .search-filter-drawer .search-filters {gap:8px;margin:0 0 24px}
body.flagship-2026.page-search .search-filter-panel {grid-template-columns:repeat(3,minmax(0,1fr));gap:22px 24px;align-items:end;background:transparent}
body.flagship-2026.page-search .search-filter-panel label {font:600 14px/1.5 Geist,Arial,sans-serif;color:var(--ft-ink);letter-spacing:0;text-transform:none}
body.flagship-2026.page-search .search-filter-panel select {margin-top:0;min-height:52px;padding:12px 32px 12px 14px;border:1px solid var(--ft-control);border-radius:12px;background-color:var(--ft-white);color:var(--ft-ink);font:400 16px/1.5 Geist,Arial,sans-serif}
body.flagship-2026.page-search .search-filter-panel .search-check {min-height:52px;font-weight:400;color:var(--ft-muted)}
body.flagship-2026.page-search .search-check input {accent-color:var(--ft-forest);width:22px;height:22px;flex:0 0 22px}
body.flagship-2026.page-search #search-access-help {font-size:14px;line-height:1.6;color:var(--ft-muted)}
body.flagship-2026.page-search .search-filter-drawer .search-filter-close {min-height:48px;padding:12px 22px;border-radius:999px;background:var(--ft-forest);border-color:var(--ft-forest);color:var(--ft-white);font-size:15px;justify-content:center;box-shadow:none}
body.flagship-2026.page-search .search-active-filters {gap:8px;margin:0 0 16px}
body.flagship-2026.page-search .search-active-filters button {min-height:44px;padding:9px 14px;border-radius:999px;border:1px solid var(--ft-line);background:var(--ft-soft);color:var(--ft-forest);font-size:14px}
body.flagship-2026.page-search .search-stats {max-width:1240px;margin:24px auto;padding:0 32px;color:var(--ft-muted);font-size:15px;line-height:1.6}
body.flagship-2026.page-search .search-stats strong {color:var(--ft-ink)}
body.flagship-2026.page-search .search-results {max-width:1240px;padding:0 32px 40px;margin:0 auto;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px;align-items:start}
body.flagship-2026.page-search .result-card {display:flex;flex-direction:column;min-width:0;border:1px solid var(--ft-line);border-radius:24px;background:var(--ft-white);box-shadow:none;overflow:hidden;transform:none}
body.flagship-2026.page-search .result-card:hover {border-color:var(--ft-control);box-shadow:none;transform:none}
/* Flatten this non-semantic wrapper so the unchanged source markup can put
   background, hours and access above the price, with all actions in the footer. */
body.flagship-2026.page-search .result-card-head {display:contents;padding:0}
body.flagship-2026.page-search .result-card-main {display:block;order:1;padding:28px 28px 0;color:var(--ft-ink);text-decoration:none}
body.flagship-2026.page-search .result-card-tag {margin:0 0 12px;padding:0;border:0;background:transparent;color:var(--ft-muted);font:500 13px/1.5 Geist,Arial,sans-serif;letter-spacing:0;text-transform:none}
body.flagship-2026.page-search .result-card-name {font-size:28px!important;line-height:1.2;letter-spacing:-.035em;margin:0 0 10px;overflow-wrap:anywhere}
body.flagship-2026.page-search .result-card-meta {font-size:15px;line-height:1.6;color:var(--ft-muted)}
body.flagship-2026.page-search .result-card-facts {order:4;margin:0 28px 24px;padding:18px 20px;border:1px solid var(--ft-line);border-radius:16px;background:var(--ft-canvas)}
body.flagship-2026.page-search .result-card-price {color:var(--ft-muted);font-size:15px;line-height:1.6;background:transparent}
body.flagship-2026.page-search .result-card-price strong {color:var(--ft-ink);font:700 28px/1.25 var(--ft-heading);letter-spacing:-.025em}
body.flagship-2026.page-search .result-card-product-label {color:var(--ft-ink);font-size:14px;line-height:1.5}
body.flagship-2026.page-search .result-card-price small {color:var(--ft-muted);font-size:12px;line-height:1.5}
body.flagship-2026.page-search .result-card-access {order:3;margin:0 28px 20px;color:var(--ft-muted);font-size:15px;line-height:1.6}
body.flagship-2026.page-search .result-card-actions {order:5;padding:10px 28px;gap:12px;border-top:1px solid var(--ft-line);border-bottom:0;background:var(--ft-white);flex-wrap:wrap}
body.flagship-2026.page-search .result-card-actions a {min-height:44px;padding:8px 0;color:var(--ft-forest);font-size:14px;font-weight:600;text-decoration:none;white-space:normal}
body.flagship-2026.page-search .result-card-actions a:hover {text-decoration:underline;text-underline-offset:4px}
body.flagship-2026.page-search .result-card-context {order:2;padding:20px 28px}
body.flagship-2026.page-search .result-card-context .result-card-desc {font-size:16px;line-height:1.7;color:var(--ft-muted)}
body.flagship-2026.page-search .result-card-context .result-card-hours {font-size:14px;line-height:1.6;color:var(--ft-ink);margin-top:18px}
body.flagship-2026.page-search .result-card-hours span {color:var(--ft-muted)}
body.flagship-2026.page-search :is(.result-card-photo,.result-card-photo figcaption) {background:var(--ft-canvas);color:var(--ft-muted)}
body.flagship-2026.page-search :is(.search-load-more,.search-pagination) {color:var(--ft-ink)}

/* Save/Remove labels stay in the accessibility tree when the control is icon-only. */
body.flagship-2026 :is(.search-results) .favorite-btn {position:static!important;display:inline-flex;align-items:center;justify-content:center;flex:0 0 44px;width:44px;min-width:44px;height:44px;min-height:44px;padding:0;border:1px solid var(--ft-line);border-radius:50%;background:var(--ft-white);color:var(--ft-forest);box-shadow:none}
body.flagship-2026 :is(.search-results) .favorite-btn:hover:not(:disabled) {background:var(--ft-soft);border-color:var(--ft-control);color:var(--ft-forest)}
body.flagship-2026 :is(.search-results) .favorite-btn:is(.is-saved,[aria-pressed=true]) {background:var(--ft-lime);border-color:var(--ft-forest);color:var(--ft-forest)}
body.flagship-2026 :is(.search-results) .favorite-btn .fav-heart {font-family:Arial,sans-serif;font-size:24px;line-height:1;color:inherit}

/* Compare: selected venues, a clear product selector and an uninterrupted facts table. */

/* Planner: the three starting choices form a single useful object. */

/* Saved places are a useful card collection even when a record is unavailable. */
body.flagship-2026:has(#favorites-section) #main>.hero {max-width:1176px;margin:32px auto;background:var(--ft-soft)!important;border:1px solid var(--ft-line);border-radius:24px;padding:32px!important;box-shadow:none}
body.flagship-2026:has(#favorites-section) #main>.hero h1 {font:700 48px/1.08 var(--ft-heading);letter-spacing:-.035em;color:var(--ft-ink)!important;margin-bottom:16px}
body.flagship-2026:has(#favorites-section) #main>.hero h1 span {color:var(--ft-forest)!important}

/* Map filters, property cards and the opt-in Google map use the same control language. */

/* Route-local button overrides also cover empty, load-more and error states. */
body.flagship-2026 :is(.search-results) .btn,body.flagship-2026:has(#favorites-section) #main>.hero .btn {min-height:48px;padding:11px 20px;border-radius:999px;background:var(--ft-white)!important;border-color:var(--ft-control)!important;color:var(--ft-forest)!important;font:600 15px/1.5 Geist,Arial,sans-serif;box-shadow:none}
body.flagship-2026 :is(.search-results) .btn:hover:not(:disabled),body.flagship-2026:has(#favorites-section) #main>.hero .btn:hover:not(:disabled) {background:var(--ft-soft)!important;color:var(--ft-forest)!important}
@media(max-width:1000px) {
  body.flagship-2026:has(#favorites-section) #main>.hero {margin-inline:32px}
}
@media(max-width:767px) {
  body.flagship-2026.page-search .search-hero {padding:24px 20px 0}
  body.flagship-2026.page-search .search-hero-copy {margin-bottom:20px}
  body.flagship-2026.page-search .search-hero h1 {font-size:36px!important;line-height:1.1;max-width:none}
  body.flagship-2026.page-search .search-input-wrap {gap:6px;padding:6px;border-radius:20px}
  body.flagship-2026.page-search .search-input {min-height:50px;padding:12px;font-size:16px}
  body.flagship-2026.page-search .search-filter-toggle {min-height:50px;min-width:96px;padding:10px 12px;border-radius:14px;font-size:14px}
  body.flagship-2026.page-search .search-quick-row {gap:6px;margin:14px 0 16px}
  body.flagship-2026.page-search .sf-pill {padding:9px 12px;font-size:13px}
  body.flagship-2026.page-search .search-map-link {margin-left:0;padding:9px 14px;font-size:13px}
  body.flagship-2026.page-search .search-filter-drawer[data-open=true] {inset:max(12px,env(safe-area-inset-top,0px)) 12px max(12px,env(safe-area-inset-bottom,0px));z-index:3000;padding:0;gap:0;overflow:hidden;border-radius:24px;background:var(--ft-white);box-shadow:0 0 0 100vmax #0b0b0c99}
  body.flagship-2026.page-search .search-filter-drawer .pg-filter-scroll {padding:24px 20px;gap:20px;min-height:0;overscroll-behavior:contain}
  body.flagship-2026.page-search .search-filter-drawer-head {gap:8px;margin:0;align-items:flex-start}
  body.flagship-2026.page-search .search-filter-drawer-head strong {font-size:26px}
  body.flagship-2026.page-search .search-filter-drawer-head span {font-size:14px}
  body.flagship-2026.page-search .search-filter-drawer .search-filters {margin:0;gap:8px}
  body.flagship-2026.page-search .search-filter-panel {grid-template-columns:1fr;gap:20px}
  body.flagship-2026.page-search .search-filter-panel>label:not(.search-check) {font-size:14px;gap:8px}
  body.flagship-2026.page-search .search-filter-drawer .search-filter-close {flex:0 0 auto;position:static;min-height:50px;width:calc(100% - 40px);margin:12px 20px 20px;box-shadow:none}
  body.flagship-2026.page-search .search-stats {padding-inline:20px;margin:18px auto;font-size:14px}
  body.flagship-2026.page-search .search-results {grid-template-columns:1fr;padding:0 20px 32px;gap:20px}
  body.flagship-2026.page-search .result-card {border-radius:22px}
  body.flagship-2026.page-search .result-card-main {padding:22px 20px 0}
  body.flagship-2026.page-search .result-card-name {font-size:26px!important}
  body.flagship-2026.page-search .result-card-meta {font-size:14px}
  body.flagship-2026.page-search .result-card-facts {margin:0 20px 20px;padding:16px;border-radius:14px}
  body.flagship-2026.page-search .result-card-access {margin:0 20px 18px}
  body.flagship-2026.page-search .result-card-price strong {font-size:25px}
  body.flagship-2026.page-search .result-card-actions {padding:10px 20px;gap:10px}
  body.flagship-2026.page-search .result-card-actions a {font-size:13px}
  body.flagship-2026.page-search .result-card-context {padding:20px}
  body.flagship-2026.page-search .result-card-context .result-card-desc {font-size:15px;line-height:1.7}
  body.flagship-2026:has(#favorites-section) #main>.hero {margin:24px 20px;padding:24px!important;border-radius:22px}
  body.flagship-2026:has(#favorites-section) #main>.hero h1 {font-size:36px}
}
@media(max-width:370px) {
  body.flagship-2026.page-search .search-input-wrap {gap:4px}
  body.flagship-2026.page-search .search-filter-toggle {min-width:88px;padding-inline:10px}
  body.flagship-2026.page-search .result-card-price.is-selected-product {grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce) {
  body.flagship-2026 :is(.search-results) * {transition:none!important;animation:none!important;scroll-behavior:auto!important}
}

/* Venue layout: useful introduction, genuine media and a concise visit decision. */
body.flagship-2026 .pg-video-stage{position:relative;min-height:320px;flex:1;display:flex;background:#0b0b0c;aspect-ratio:16/9}
body.flagship-2026 .pg-video-stage>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
body.flagship-2026 .pg-video-stage:after{content:'';position:absolute;inset:45% 0 0;background:linear-gradient(transparent,#0b0b0ce8);pointer-events:none}
body.flagship-2026 .pg-video-stage iframe{width:100%;height:100%;position:absolute;inset:0;border:0;background:#0b0b0c;z-index:3}
body.flagship-2026 .pg-video-play{position:absolute;z-index:2;inset:0;display:flex;align-items:flex-end;gap:14px;padding:26px;color:#fff;background:none;border:0;text-decoration:none;text-align:left;font:600 19px Geist,Arial,sans-serif;cursor:pointer}
body.flagship-2026 .pg-video-play small{display:block;margin-top:7px;font-size:12px;font-weight:450;color:#fff}
@media(max-width:1000px){
 body.flagship-2026 .pg-video-stage{min-height:290px}
}
@media(max-width:760px){
 body.flagship-2026 .pg-video-stage{min-height:205px;aspect-ratio:16/10}
 body.flagship-2026 .pg-video-play{padding:19px;font-size:16px;gap:11px}
 body.flagship-2026 .pg-video-play small{font-size:11px}
}

/* Practical venue information: facts stay in the page; presentation groups the decisions. */
/* Pricing remains one exact product per row. Quantity, conditions and dated sources travel together. */
/* Helpful decisions share a rail, rather than interrupting the factual description. */
/* External resources are labelled as destinations. A map loads only on demand. */
/* Source and background material remain in native, keyboard-accessible disclosures. */

/* Venue continuation and the evidence-preserving fallback for entries without a practical profile. */

/* Fallback records use the same quiet reading width for practical details and their existing article. */

/* Publication design: retain Circuit PG, forest green, lime and local fonts. */
body.publication{--publication-ink:#0b0b0c;--publication-paper:#f4f1ec;--publication-line:#dad5ce;color:var(--publication-ink);background:var(--publication-paper)}.publication a{ text-underline-offset:4px}.publication :focus-visible{outline:3px solid #55514d;outline-offset:4px}.publication :target{scroll-margin-top:110px}.publication h1,.publication h2,.publication h3{font-family:Geist,Geist,sans-serif;letter-spacing:-.045em}.publication p{line-height:1.65}.publication .favorite-btn{border-radius:5px;min-width:48px;min-height:44px;display:inline-flex;gap:8px;align-items:center;justify-content:center}.publication .favorite-btn[aria-pressed=true]{background:#dad5ce;color:#0b0b0c}.publication .favorite-btn[aria-pressed=true] .pg-icon{fill:currentColor}.publication .fav-heart{font-size:0;display:inline-flex}.publication .fav-heart:before{display:none!important}.publication .fav-heart .pg-icon{font-size:16px}
/* One venue template, no photographic placeholders and no duplicate article. */
/* Existing live tool controllers remain the single interaction implementation. */
.publication .result-card{border-radius:5px!important;box-shadow:none!important;border-color:#bdb8b3!important;overflow:hidden}.publication .result-card:before{display:none!important}.publication .result-card-name{font-size:25px!important;line-height:1.15!important;letter-spacing:-.035em!important}.publication .result-card-tag{font-size:10px!important;letter-spacing:.07em!important;text-transform:uppercase}.publication .result-card-actions{border-top:1px solid #dad5ce!important;padding-top:15px!important}.publication .result-card-photo img{aspect-ratio:16/9;object-fit:cover}.publication .result-card-photo{margin:0!important}.publication .result-card-photo a{display:block}.publication #search-results{gap:22px!important}.publication .search-hero h1{font-size:54px!important;letter-spacing:-.055em!important}.publication .search-toolbar{border-radius:6px!important}.publication .footer{border-top:1px solid #dad5ce}.publication .back-to-top{font-size:0}
@media(min-width:1000px){.publication #search-results{grid-template-columns:repeat(3,minmax(0,1fr))!important}.publication .result-card{display:flex!important;flex-direction:column!important}.publication .result-card-actions{margin-top:auto!important;order:3}.publication .result-card-context{order:2}.publication .result-card-head{order:1}.publication .result-card-photo{order:0}.publication .result-card-desc{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}}
@media(max-width:760px){.publication .search-hero h1{font-size:37px!important}.publication .result-card-name{font-size:25px!important}.publication .result-card-actions a,.publication .result-card-actions button{min-height:44px}}
@media(prefers-reduced-motion:reduce){.publication *{scroll-behavior:auto!important;transition:none!important}}
.publication .favorite-card{border-radius:5px!important;box-shadow:none!important}.publication .search-hero .publication-kicker{font-size:10px!important;letter-spacing:.12em!important}

.publication button{font-family:Geist,sans-serif}

.publication .favorite-list-card{border-radius:6px!important;box-shadow:none!important}
/* Focused refinement: same identity, less introductory overhead. */.publication .favorite-list-card{padding-top:18px}.publication .favorite-list-card p{margin-block:10px}.publication .search-hero{padding-block:16px!important}.publication .search-hero-copy h1{font-size:40px!important;margin:0 0 8px!important}.publication .search-hero-copy p{margin:0!important}.publication .search-toolbar{margin-block:12px!important;padding:12px!important}.publication .result-card{padding:18px!important;gap:8px!important}.publication .result-card-name{font-size:23px!important}.publication .result-card-desc{display:none!important}.publication .result-card-actions{padding-top:10px!important;gap:8px!important}.publication .result-card-access{font-size:13px;line-height:1.5!important;margin:4px 0}
@media(max-width:760px){.publication .search-hero-copy h1{font-size:32px!important}.publication .search-hero-copy p{font-size:15px!important}.publication .search-hero{padding-top:12px!important;padding-bottom:8px!important}.publication .search-toolbar{padding:8px!important;margin:8px 0!important}.publication #search-results{gap:12px!important}.publication .result-card{padding:15px!important}.publication .result-card-name{font-size:22px!important}.publication .result-card-head{margin:0!important}.publication .result-card-actions a,.publication .result-card-actions button{min-height:44px!important}}.publication .search-toolbar:has(.search-filter-drawer:not(.is-open)){min-height:0}.publication .search-input-wrap{margin-block:12px!important}.publication .pg-filter-summary{padding-block:6px!important;margin:0!important}.publication .search-stats{margin-block:8px 12px!important}.publication .search-quick-row{margin-block:4px!important}.publication .favorite-list-card{min-height:0!important}.publication .favorite-list-card .cat-venue-desc{display:none}
@media(max-width:760px){.publication .search-input-wrap{height:52px!important}.publication .search-input{min-height:52px!important;height:52px!important}.publication .search-quick-row{overflow:auto;flex-wrap:nowrap!important;max-width:100%}.publication .search-quick-row .search-quick-pills{flex-wrap:nowrap!important}.publication .pg-filter-summary{min-height:44px!important}.publication .search-toolbar{padding:0!important}}
.publication .result-card-price,.publication .result-card-price *{white-space:normal!important;text-overflow:clip!important;overflow:visible!important;max-width:100%!important}.publication .result-card-head{padding:0!important}.publication .result-card-tag{margin-bottom:5px!important}.publication .result-card-price{border-radius:4px!important;padding:10px!important}.publication .result-card-head-main{gap:6px!important}.publication .result-card-area{margin-top:4px!important}.publication .result-card-access{margin:6px 0!important}.publication .search-hero{gap:6px!important}
.publication .result-card-main{padding:0!important}.publication .result-card-facts{padding:8px 10px!important;margin:8px 0!important;min-height:0!important;gap:4px!important}.publication .result-card-price{padding:0!important;font-size:15px!important;line-height:1.45!important}.publication .result-card-price strong{font-size:21px!important}.publication .result-card-actions{padding:8px 0 0!important}.publication .result-card-name{margin-bottom:6px!important}.publication .search-quick-row{scrollbar-width:thin}.publication .result-card-access{order:1}.publication .result-card-facts{order:2}

/* Shared map layout is self-contained, including outside legacy venue bodies. */
/* Corpus venue rollout: shared shell, compact onward journeys, no photo requirement. */
body.publication .publication-compact-card{min-height:0!important;border-radius:5px!important;display:flex!important;flex-direction:column!important;background:#fff!important;padding:0!important}.publication .publication-compact-card .record-status{font-size:13px;margin:8px 0}
/* Compact discovery rows: the same facts, fewer stacked decorative bands. */


/* Shared map layout is self-contained, including outside legacy venue bodies. */

/* Canonical sports layout primitives. */
body.sports-layout{--vc-ink:#0b0b0c;--vc-muted:#55514d;--vc-line:#dad5ce;--vc-accent:#55514d;--vc-paper:#fff;--ink:#0b0b0c;--paper:#fff;--brand:#0b0b0c;--accent:#55514d;background:#fff!important;color:var(--vc-ink)!important;font-family:Geist,Arial,sans-serif!important;font-size:16px;line-height:1.6}
.sports-layout *{box-sizing:border-box}.sports-layout h1,.sports-layout h2,.sports-layout h3{font-family:Geist,Arial,sans-serif!important;color:var(--vc-ink)!important;font-style:normal!important;letter-spacing:-.045em;line-height:1.12}
.sports-layout p{color:inherit}.sports-layout a{color:inherit}.sports-layout a:hover{color:var(--vc-accent)}.sports-layout :focus-visible{outline:3px solid #55514d!important;outline-offset:5px!important}.sports-layout svg{flex:none}.sports-layout [id]{scroll-margin-top:100px}.sports-layout [hidden]{display:none!important}
.sports-layout .nav{background:rgba(255, 255, 255, .98)!important;border-bottom:1px solid var(--vc-line)!important;box-shadow:none!important;backdrop-filter:none!important}.sports-layout .nav-row{max-width:1320px!important;height:82px!important;padding:0 36px!important;gap:30px}.sports-layout .brand{gap:10px!important}.sports-layout .brand img{filter:grayscale(1) brightness(.35)}.sports-layout .nav-links{gap:24px!important}.sports-layout .nav-links a{font-family:Geist,Arial,sans-serif!important;font-size:13px!important;font-weight:600!important;color:#0b0b0c!important}.sports-layout .nav-cta{border-radius:3px!important;background:#0b0b0c!important;color:white!important;font-family:Geist,Arial,sans-serif!important;font-size:13px!important;padding:12px 20px!important}.sports-layout .nav-burger{border-radius:3px!important;color:#0b0b0c!important}.sports-layout .nav-mobile{background:#fff!important}.sports-layout .nav-mobile-link,.sports-layout .nav-mobile-group{color:#0b0b0c!important}.sports-layout .back-to-top{background:white!important;color:#0b0b0c!important;border:1px solid #dad5ce!important;box-shadow:none!important}.sports-layout .favorite-btn{color:#0b0b0c!important;border:1px solid #bdb8b3!important;background:white!important;border-radius:3px!important;min-width:44px;min-height:44px}.sports-layout .favorite-btn[aria-pressed=true]{background:#0b0b0c!important;color:white!important}
/* Home: one photograph, one clear search, small practical rows. */
/* Venue: identity and practical facts first; no fake photo block. */.sports-layout details{border-radius:0!important;box-shadow:none!important}.sports-layout summary{min-height:48px;cursor:pointer;padding:14px 0!important;font-size:14px!important;line-height:1.55!important;color:#0b0b0c!important}.sports-layout .publication-compact-card{padding:20px 0!important;background:none!important;border:0!important;border-top:1px solid #dad5ce!important;border-radius:0!important;box-shadow:none!important}.sports-layout .publication-compact-card h3{font-size:20px!important}
/* Article: readable text, an answer at the top, contents in the margin. */
/* Shared finish: no repeated pale boxes or ornamental colour bands. */
.sports-layout .footer{background:#f4f1ec!important;border-top:1px solid #dad5ce!important;color:#0b0b0c!important;margin-top:30px!important;padding:40px 0!important}.sports-layout .footer-wrap{max-width:1248px!important;padding:0!important}.sports-layout .footer a,.sports-layout .footer h2,.sports-layout .footer p,.sports-layout .footer span{color:#55514d!important}.sports-layout .footer-nav h2{font-size:12px!important;text-transform:uppercase;letter-spacing:.08em}.sports-layout .progress-bar{background:#55514d!important}
@media(max-width:1100px){.sports-layout .nav-links{gap:14px!important}.sports-layout .nav-row{gap:16px!important}}
@media(max-width:760px){.sports-layout{padding-bottom:76px!important}.sports-layout .nav-row{height:64px!important;padding:0 20px!important}.sports-layout .brand img{width:29px!important;height:29px!important}.sports-layout .publication-compact-card{margin-bottom:20px!important}.sports-layout .footer{padding:30px 20px!important;margin-top:12px!important}.sports-layout .footer-wrap{width:100%!important}.sports-layout .footer-nav{gap:20px!important}.sports-layout .footer h2{font-size:13px!important}.sports-layout .footer a{font-size:12px}.sports-layout .back-to-top{bottom:78px!important}}
@media(prefers-reduced-motion:reduce){.sports-layout *{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
/* Refinements after inspecting the actual rendered pages. */
html:has(body.sports-layout){background:#fff!important}
.sports-layout .brand svg{filter:grayscale(1) brightness(.35)}
/* Visible control boundaries on white exceed 3:1. */
.sports-layout .favorite-btn,.sports-layout .nav-burger{border-color:#55514d!important}
/* Focused refinement: directory first, regional feature second. */
body.sports-layout.reference-rebuild.product-redesign-2027 .search-hero{display:block;padding:0;margin:0;background:none;border:0}
body.sports-layout.reference-rebuild.product-redesign-2027 .search-hero h1{font:700 40px/1.1 Geist,sans-serif;letter-spacing:-.04em;margin:8px 0}
body.sports-layout.reference-rebuild.product-redesign-2027 .search-hero-copy p{margin:6px 0 16px;font-size:15px}
body.sports-layout.reference-rebuild.product-redesign-2027 .search-input-wrap{max-width:none;margin:16px 0 10px}
body.sports-layout.reference-rebuild.product-redesign-2027 .search-quick-row{margin:8px 0 12px;gap:6px}
body.sports-layout.reference-rebuild.product-redesign-2027 .search-quick-row button,body.sports-layout.reference-rebuild.product-redesign-2027 .sf-pill{border-radius:0;min-height:40px;font-family:Geist,sans-serif}
body.sports-layout.reference-rebuild.product-redesign-2027 .search-filter-panel{padding:12px 0;background:none;border:0;gap:12px}
body.sports-layout.reference-rebuild.product-redesign-2027 .search-results{display:block}
body.sports-layout.reference-rebuild.product-redesign-2027.page-search .result-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 30px;background:none;border:0;border-bottom:1px solid #bdb8b3;border-radius:0;box-shadow:none;padding:20px 0;margin:0}
body.sports-layout.reference-rebuild.product-redesign-2027.page-search .result-card h3{font-size:23px;letter-spacing:-.025em;margin:4px 0}
body.sports-layout.reference-rebuild.product-redesign-2027.page-search .result-card-photo{display:none}
body.sports-layout.reference-rebuild.product-redesign-2027.page-search .result-card-head{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:8px 22px}
body.sports-layout.reference-rebuild.product-redesign-2027.page-search .result-card-main{grid-row:span 2}
body.sports-layout.reference-rebuild.product-redesign-2027.page-search .result-card-facts{font-size:17px}
body.sports-layout.reference-rebuild.product-redesign-2027.page-search .result-card-access{font-size:13px;line-height:1.5}
body.sports-layout.reference-rebuild.product-redesign-2027.page-search .result-card-actions{display:flex;flex-wrap:wrap;align-content:center;max-width:190px;gap:6px}
body.sports-layout.reference-rebuild.product-redesign-2027.page-search .result-card-actions>*{min-height:40px;border-radius:0;font-size:13px}
body.sports-layout.reference-rebuild.product-redesign-2027 #stats{margin:14px 0;font-size:14px}
@media(max-width:760px){
body.sports-layout.reference-rebuild.product-redesign-2027 .search-hero h1{font-size:32px}
body.sports-layout.reference-rebuild.product-redesign-2027.page-search .result-card{grid-template-columns:1fr;gap:10px;padding:16px 0}
body.sports-layout.reference-rebuild.product-redesign-2027.page-search .result-card-head{grid-template-columns:1fr;gap:7px}
body.sports-layout.reference-rebuild.product-redesign-2027.page-search .result-card h3{font-size:21px}
body.sports-layout.reference-rebuild.product-redesign-2027.page-search .result-card-actions{max-width:none}
body.sports-layout.reference-rebuild.product-redesign-2027 .search-quick-row{gap:4px}
body.sports-layout.reference-rebuild.product-redesign-2027 .search-quick-row button{padding:7px 9px;font-size:12px;min-height:36px}
}

body.sports-layout.page-search{--brand:#0b0b0c;--lime:#dad5ce;--ink:#0b0b0c;--muted:#55514d;--line:#dad5ce;--line-control:#55514d}
body.sports-layout.page-search .search-input-wrap,body.sports-layout.page-search .search-input-wrap input{border-radius:0}
body.sports-layout.page-search .search-filter-toggle,body.sports-layout.page-search .search-active-filters button,body.sports-layout.page-search .search-map-link{border-radius:0;background:#0b0b0c;color:white}
body.sports-layout.page-search #search-toolbar{padding:0;margin:0;min-height:0}
body.sports-layout.page-search #search-results{display:block}
body.sports-layout.page-search .result-card-head{padding:0}
body.sports-layout.page-search .result-card-main{order:0}
body.sports-layout.page-search .result-card-facts{margin:0;order:1}
body.sports-layout.page-search .result-card-access{margin:0;order:2}
body.sports-layout.page-search .result-card-price{border:0;background:none;padding:0;border-radius:0;display:block}
body.sports-layout.page-search .result-card-tag{min-height:0;padding:0;color:#55514d;font-size:11px}
body.sports-layout.page-search .result-card-meta{margin:4px 0;color:#55514d}
body.sports-layout.page-search .result-card-actions{padding:0;border:0;margin:0}
body.sports-layout.page-search .result-card-actions a{color:#0b0b0c;border:1px solid #bdb8b3;padding:7px 10px}
body.sports-layout.page-search .result-card-actions a:first-child{background:#0b0b0c;color:#fff}
body.sports-layout.page-search .search-hero-copy>p{display:none}
/* Scope beats the legacy search bundle, which carries high-specificity overrides. */
body.sports-layout.page-search .result-card{display:grid!important;grid-template-columns:minmax(0,1fr) 180px!important;padding:18px 0!important;gap:10px 24px!important;border:0!important;border-bottom:1px solid #bdb8b3!important;border-radius:0!important;min-height:0!important}
body.sports-layout.page-search .result-card-head{display:grid!important;grid-template-columns:minmax(0,1fr) 240px!important;padding:0!important;gap:8px 24px!important}
body.sports-layout.page-search .result-card-main{grid-row:1 / span 2!important}
body.sports-layout.page-search .result-card-price{background:none!important;border:0!important;border-radius:0!important;padding:0!important}
body.sports-layout.page-search .result-card-actions{grid-column:2;grid-row:1;display:flex!important;max-width:180px!important;padding:0!important;border:0!important;align-content:center!important;justify-content:start!important}
body.sports-layout.page-search .result-card .publication-result-conditions{grid-column:1/-1;grid-row:2;margin:0!important;padding:0!important}
body.sports-layout.page-search .result-card-name{font-size:23px!important}
body.sports-layout.page-search .search-hero{padding:0!important}
body.sports-layout.page-search .search-toolbar{padding:0!important;margin:0!important}
body.sports-layout.page-search #stats{margin:16px 0 0!important;padding:0!important}
@media(max-width:760px){body.sports-layout.page-search .result-card{grid-template-columns:1fr!important;gap:10px!important;padding:18px 0!important}body.sports-layout.page-search .result-card-head{grid-template-columns:1fr!important;gap:8px!important}body.sports-layout.page-search .result-card-main{grid-row:auto!important}body.sports-layout.page-search .result-card-actions{grid-column:1;grid-row:3;max-width:none!important}body.sports-layout.page-search .result-card-name{font-size:21px!important}body.sports-layout.page-search .result-card-price.is-selected-product{grid-template-columns:1fr auto!important}body.sports-layout.page-search .result-card-price small{grid-column:1/-1}body.sports-layout.page-search .search-hero h1{font-size:30px!important}body.sports-layout.page-search .search-quick-row .sf-pill{min-height:40px!important}}
body.sports-layout.reference-rebuild.product-redesign-2027.page-search .result-card .result-card-price{border-radius:0!important;background:none!important;border:0!important;padding:0!important}
body.sports-layout.reference-rebuild.product-redesign-2027.page-search .result-card .result-card-facts{margin:0!important}
body.sports-layout.reference-rebuild.product-redesign-2027.page-search .result-card .result-card-facts{background:transparent!important;border:0!important;border-radius:0!important;padding:0!important}
body.sports-layout.reference-rebuild.product-redesign-2027.page-search .search-filter-toggle-count{background:#f4f1ec;color:#0b0b0c}


body.sports-design.publication.reference-rebuild{--sp-dark:#0b0b0c;--sp-ink:#0b0b0c;--sp-paper:#f4f1ec;--sp-acid:#bdb8b3;--sp-line:#dad5ce;--brand:#0b0b0c;--ink:#0b0b0c;--muted:#55514d;--bg:#f4f1ec;--surface:#f4f1ec;--lime:#bdb8b3;--vc-line:#dad5ce;background:#f4f1ec!important;color:#0b0b0c!important;font-family:Geist,Arial,sans-serif!important}
body.sports-design.publication.reference-rebuild h1,body.sports-design.publication.reference-rebuild h2,body.sports-design.publication.reference-rebuild h3{font-family:BarlowSport,Impact,sans-serif!important;font-weight:700!important;letter-spacing:.005em!important}
body.sports-design.publication.reference-rebuild h2{font-size:36px!important;line-height:1.08!important}body.sports-design.publication.reference-rebuild h3{font-size:28px!important;line-height:1.12!important}
body.sports-design.publication.reference-rebuild a{color:inherit}body.sports-design.publication.reference-rebuild :focus-visible{outline:3px solid #55514d!important;outline-offset:4px!important}
body.sports-design.publication.reference-rebuild header.nav{background:#0b0b0c!important;color:#f4f1ec!important;border-bottom:1px solid #55514d!important;backdrop-filter:none!important}
body.sports-design.publication.reference-rebuild .nav-row{max-width:1280px;min-height:80px!important}body.sports-design.publication.reference-rebuild .brand img{filter:brightness(0) invert(1)!important}
body.sports-design.publication.reference-rebuild .nav-links a{color:#f4f1ec!important;font-size:13px!important}body.sports-design.publication.reference-rebuild .nav-cta{background:#bdb8b3!important;color:#0b0b0c!important;border:0!important;border-radius:4px!important;font-size:13px!important}body.sports-design.publication.reference-rebuild .nav-burger{color:#fff!important;border:1px solid #55514d!important;border-radius:4px!important;background:none!important}body.sports-design.publication.reference-rebuild .nav-burger-bar{background:#f4f1ec!important}
body.sports-design.publication.reference-rebuild #nav-mobile{background:#0b0b0c!important;color:#fff!important}body.sports-design.publication.reference-rebuild #nav-mobile a{color:#fff!important}
body.sports-design.publication.reference-rebuild .footer{background:#0b0b0c!important;color:#dad5ce!important;border:0!important;margin-top:0!important}body.sports-design.publication.reference-rebuild .footer p,body.sports-design.publication.reference-rebuild .footer a,body.sports-design.publication.reference-rebuild .footer h2,body.sports-design.publication.reference-rebuild .footer small{color:#dad5ce!important}body.sports-design.publication.reference-rebuild .footer h2{font:600 12px/1.5 Geist,sans-serif!important}body.sports-design.publication.reference-rebuild .footer .brand img{filter:brightness(0) invert(1)!important}
body.sports-design.publication.reference-rebuild .sp-search{display:flex;min-height:56px;background:#f4f1ec;border-radius:4px;overflow:hidden;margin:0}
body.sports-design.publication.reference-rebuild .sp-search input{background:transparent;border:0;min-width:0;flex:1;padding:15px;font:15px Geist,sans-serif;color:#0b0b0c;outline-offset:-4px!important}
body.sports-design.publication.reference-rebuild .sp-search button{display:flex;align-items:center;justify-content:center;gap:10px;background:#bdb8b3;color:#0b0b0c;font:600 13px Geist,sans-serif;border:0;min-height:56px;padding:12px 18px;cursor:pointer}
body.sports-design.publication.reference-rebuild .sp-search svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8}
/* Venue identity is a single composition, followed by a warm reading surface. */body.sports-design.publication.reference-rebuild .publication-compact-card{background:#dad5ce!important;padding:18px!important;border:0!important;border-radius:6px!important}body.sports-design.publication.reference-rebuild .publication-compact-card h3{font-size:26px!important}
/* Reading: contextual cover, options together, one continuous article. */
/* Compact discovery and shared shortlist states. */
body.sports-design.publication.reference-rebuild.page-search .search-hero{background:#0b0b0c!important;color:#f4f1ec!important;padding:22px!important;border-radius:8px!important}
body.sports-design.publication.reference-rebuild.page-search .search-hero h1{font-size:49px!important;color:#f4f1ec!important;margin:0 0 16px!important}body.sports-design.publication.reference-rebuild.page-search .search-input-wrap{background:#ffffff!important;border:0!important;border-radius:4px!important;padding:0!important;margin:0 0 12px!important}
body.sports-design.publication.reference-rebuild.page-search .search-input-wrap input{background:none!important;border:0!important;color:#0b0b0c!important;font:15px Geist,sans-serif!important}body.sports-design.publication.reference-rebuild.page-search .search-filter-toggle{background:#bdb8b3!important;color:#0b0b0c!important;border:0!important;border-radius:3px!important}
body.sports-design.publication.reference-rebuild.page-search .search-quick-row .sf-pill{background:#0b0b0c!important;color:#f4f1ec!important;border:1px solid #55514d!important;border-radius:4px!important}body.sports-design.publication.reference-rebuild.page-search .search-quick-row .sf-pill.active{background:#bdb8b3!important;color:#0b0b0c!important}
body.sports-design.publication.reference-rebuild.page-search .search-active-filters button{background:#dad5ce!important;color:#0b0b0c!important;border:1px solid #55514d!important;border-radius:4px!important}body.sports-design.publication.reference-rebuild.page-search .search-results{padding:0!important}
body.sports-design.publication.reference-rebuild.page-search .result-card{background:#ffffff!important;border:1px solid #bdb8b3!important;border-left:4px solid #bdb8b3!important;padding:18px!important;margin:12px 0!important;border-radius:6px!important}
body.sports-design.publication.reference-rebuild.page-search .result-card h3{font:700 30px/1.1 BarlowSport,sans-serif!important;letter-spacing:.005em!important}body.sports-design.publication.reference-rebuild.page-search .result-card-actions a:first-child{background:#bdb8b3!important;color:#0b0b0c!important;border:1px solid #bdb8b3!important}body.sports-design.publication.reference-rebuild.page-search .result-card-actions a,body.sports-design.publication.reference-rebuild.page-search .favorite-btn{border-radius:4px!important;background:transparent!important;color:#0b0b0c!important}
body.sports-design.publication.reference-rebuild.page-search .result-card-price strong{font:700 30px/1.2 BarlowSport,sans-serif!important}body.sports-design.publication.reference-rebuild.page-search .result-card-facts{background:transparent!important}body.sports-design.publication.reference-rebuild.page-search .search-filter-drawer{background:#f4f1ec!important;border-color:#55514d!important;border-radius:6px!important}body.sports-design.publication.reference-rebuild.page-search .search-filter-panel select{background:#ffffff!important;color:#0b0b0c!important;border-color:#55514d!important;border-radius:4px!important}body.sports-design.publication.reference-rebuild.page-search .sf-pill{border-radius:4px!important}body.sports-design.publication.reference-rebuild .fav-card{background:#ffffff!important;border:1px solid #bdb8b3!important;border-radius:6px!important}
@media(max-width:760px){
body.sports-design.publication.reference-rebuild .nav-row{min-height:68px!important}body.sports-design.publication.reference-rebuild .brand img{width:30px!important;height:30px!important}body.sports-design.publication.reference-rebuild .sp-search{min-height:50px}body.sports-design.publication.reference-rebuild .sp-search input{font-size:14px;padding:12px}body.sports-design.publication.reference-rebuild .sp-search button{min-height:50px;padding:10px;font-size:12px;max-width:110px}body.sports-design.publication.reference-rebuild .sp-search svg{width:16px;flex:none}body.sports-design.publication.reference-rebuild .publication-compact-card{padding:18px!important}body.sports-design.publication.reference-rebuild.page-search .search-hero{padding:17px!important}body.sports-design.publication.reference-rebuild.page-search .search-hero h1{font-size:38px!important}body.sports-design.publication.reference-rebuild.page-search .search-quick-row{gap:5px!important}body.sports-design.publication.reference-rebuild.page-search .search-quick-row button{font-size:11px!important;padding:8px!important}body.sports-design.publication.reference-rebuild.page-search .result-card{padding:15px!important;margin:10px 0!important}body.sports-design.publication.reference-rebuild.page-search .result-card h3{font-size:29px!important}body.sports-design.publication.reference-rebuild.page-search .result-card-price strong{font-size:27px!important}body.sports-design.publication.reference-rebuild.page-search .result-card-actions a{font-size:12px!important;padding:8px!important}body.sports-design.publication.reference-rebuild.page-search .search-map-link{font-size:11px!important;background:transparent!important;color:#f4f1ec!important}body.sports-design.publication.reference-rebuild.page-search .search-input-wrap input{font-size:14px!important}body.sports-design.publication.reference-rebuild.page-search .search-filter-toggle{padding:9px!important;font-size:12px!important}
}
@media(prefers-reduced-motion:reduce){body.sports-design.publication.reference-rebuild *,body.sports-design.publication.reference-rebuild *::before,body.sports-design.publication.reference-rebuild *::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
@media(max-width:760px){body.sports-design.publication.reference-rebuild .sp-search button{white-space:nowrap;max-width:none;min-width:85px}}
body.sports-design.publication.reference-rebuild .favorite-list-card{background:#ffffff!important;border:1px solid #bdb8b3!important;border-radius:6px!important;overflow:hidden}
body.sports-design.publication.reference-rebuild .favorite-list-card .result-card-photo figcaption{background:#dad5ce!important;color:#55514d!important;font-size:11px!important}
body.sports-design.publication.reference-rebuild .favorite-list-card .pg-place-name{font:700 30px/1.1 BarlowSport,sans-serif!important}
body.sports-design.publication.reference-rebuild .favorite-list-card .btn-primary{background:#bdb8b3!important;color:#0b0b0c!important;border-color:#bdb8b3!important}
body.sports-design.publication.reference-rebuild .favorite-list-card .btn{border-radius:4px!important}
@media(max-width:760px){body.sports-design.publication.reference-rebuild .favorite-list-card .result-card-photo img{max-height:170px!important;object-fit:cover!important}}
body.sports-design.publication.reference-rebuild .nav :focus-visible,body.sports-design.publication.reference-rebuild .footer :focus-visible{outline-color:#bdb8b3!important}
body.sports-design.publication.reference-rebuild #nav-mobile a[aria-current=page]{background:#bdb8b3!important;color:#0b0b0c!important;border-radius:4px!important}
body.sports-design.publication.reference-rebuild #nav-mobile .nav-mobile-group{color:#bdb8b3!important;font:600 11px/1.5 Geist,sans-serif!important;letter-spacing:.1em!important}
body.sports-design.publication.reference-rebuild #nav-mobile .nav-mobile-link{font-size:17px!important;min-height:44px!important;padding:11px 12px!important;border-color:#55514d!important}
body.sports-design.publication.reference-rebuild.page-search .search-filter-close{background:#bdb8b3!important;color:#0b0b0c!important;border:1px solid #bdb8b3!important;border-radius:4px!important}
body.sports-design.publication.reference-rebuild.page-search .search-filter-drawer .sf-pill.active{background:#bdb8b3!important;color:#0b0b0c!important;border-color:#55514d!important}
body.sports-design.publication.reference-rebuild.page-search .search-filter-drawer-head strong{font:700 30px/1.1 BarlowSport,sans-serif!important}
body.sports-design.publication.reference-rebuild .favorite-list-card .pg-place-description{font-size:14px!important;line-height:1.65!important}
body.sports-design.publication.reference-rebuild .tool-empty-card{background:#ffffff!important;border:1px solid #bdb8b3!important;border-radius:6px!important;min-height:0!important;padding:22px!important}
body.sports-design.publication.reference-rebuild .tool-empty-actions .btn{border-radius:4px!important;background:transparent!important;color:#0b0b0c!important;border:1px solid #55514d!important}
body.sports-design.publication.reference-rebuild .tool-empty-actions button:first-child{background:#bdb8b3!important;border-color:#bdb8b3!important}

/* Family-specific composition. Shared behavior and factual data remain separate. */
body.sports-design.publication.reference-rebuild{--paper:#f4f1ec;--lime:#bdb8b3;scroll-padding-bottom:120px}
body.sports-design.publication.reference-rebuild [id]{scroll-margin-top:110px;scroll-margin-bottom:150px}
body.sports-design.publication.reference-rebuild .hero{padding:28px 0!important;background:#dad5ce!important;color:#0b0b0c!important;text-align:left!important}
body.sports-design.publication.reference-rebuild .hero h1{font-size:clamp(38px,5vw,64px)!important;line-height:1.04!important;color:#0b0b0c!important;max-width:950px!important}
body.sports-design.publication.reference-rebuild .publication-compact-card,body.sports-design.publication.reference-rebuild .cat-venue-card{background:#ffffff!important;border:1px solid #bdb8b3!important;border-left:3px solid #bdb8b3!important;border-radius:5px!important;box-shadow:none!important;padding:22px!important}
body.sports-design.publication.reference-rebuild .btn,body.sports-design.publication.reference-rebuild button,body.sports-design.publication.reference-rebuild select,body.sports-design.publication.reference-rebuild input{border-radius:4px!important}
body.sports-design.publication.reference-rebuild select,body.sports-design.publication.reference-rebuild input{background:#ffffff;color:#0b0b0c;min-height:44px;font-size:16px}
body.sports-design.publication.reference-rebuild .btn-secondary,body.sports-design.publication.reference-rebuild .btn-ghost{background:transparent!important;color:#0b0b0c!important;border:1px solid #55514d!important;box-shadow:none!important}
body.sports-design.publication.reference-rebuild .footer{margin-top:40px!important}
body.sports-design.publication.reference-rebuild .nav{position:sticky!important;top:0}
body.sports-design.publication.reference-rebuild .back-to-top{bottom:calc(150px + env(safe-area-inset-bottom))!important}
body.sports-design.publication.reference-rebuild .nav-mobile{max-height:calc(100dvh - 80px)!important;overflow:auto!important;padding-bottom:120px!important}
body.sports-design.publication.reference-rebuild :focus-visible{scroll-margin-top:120px;scroll-margin-bottom:180px}
@media(max-width:760px){body.sports-design.publication.reference-rebuild{padding-bottom:100px!important}body.sports-design.publication.reference-rebuild .nav{position:relative!important}body.sports-design.publication.reference-rebuild .hero{padding:20px 0!important}body.sports-design.publication.reference-rebuild .hero h1{font-size:38px!important}body.sports-design.publication.reference-rebuild .cat-venue-card{padding:18px!important}body.sports-design.publication.reference-rebuild .footer{margin-top:24px!important}}
@media(max-width:360px){body.sports-design.publication.reference-rebuild .back-to-top{display:none!important}}
@media(max-height:500px){body.sports-design.publication.reference-rebuild .nav{position:relative!important}}
html{--pg-dock-height:74px;scroll-padding-top:110px;scroll-padding-bottom:180px}
body.sports-design:has(main :focus-visible) .back-to-top{display:none!important}
@media(max-width:760px){body.sports-design.publication.reference-rebuild .back-to-top{position:static!important;inset:auto!important;margin:16px auto!important;display:flex!important;transform:none!important}}
body.sports-design.publication.reference-rebuild .nav-row{height:auto!important;min-height:80px;flex-wrap:wrap;row-gap:12px;padding-top:12px!important;padding-bottom:12px!important}
body.sports-design.publication.reference-rebuild .nav-links{flex-wrap:wrap;min-width:0}
body.sports-design.publication.reference-rebuild .brand{min-width:0!important}
@media(max-width:760px){body.sports-design.publication.reference-rebuild .nav-row{flex-wrap:nowrap!important;padding:12px 20px!important}body.sports-design.publication.reference-rebuild .brand{flex:1 1 auto!important}body.sports-design.publication.reference-rebuild .nav-burger{flex:0 0 44px!important;margin-left:auto!important}body.sports-design.publication.reference-rebuild{padding-bottom:calc(var(--pg-dock-height,90px) + 80px)!important}html{scroll-padding-bottom:calc(var(--pg-dock-height,90px) + 100px)}}

/* Shared supporting components: neutral surfaces, primary citron, status colours retained. */
/* The guide hub starts with the task, not three introductions. */
/* One padding layer in discovery cards; retain all records and access qualifications. */
body.sports-design.publication.reference-rebuild .pg-place-card{padding:16px!important;min-height:0!important;gap:10px!important}body.sports-design.publication.reference-rebuild .pg-place-card :is(p,h3){margin:0!important}/* Keep the full name and save control in separate, in-flow columns. */
@media(max-width:760px){body.sports-design.publication.reference-rebuild .pg-place-card{padding:14px!important}}

/* Canonical product presentation: shared typography, finder and place components. */
#main.pd-page{--ink:#0b0b0c;--paper:#f4f1ec;--muted:#55514d;--line:#bdb8b3;--acid:#bdb8b3;box-sizing:border-box;max-width:none!important;width:100%!important;margin:0!important;padding:0 0 56px!important;background:var(--paper);color:var(--ink);font-family:Geist,Arial,sans-serif;font-size:1rem;line-height:1.6}
#main.pd-page *{box-sizing:border-box}
#main.pd-page [hidden]{display:none!important}
#main.pd-page :is(h1,h2,h3,p,figure,ul){margin:0}
#main.pd-page :is(h1,h2,h3){color:inherit!important;letter-spacing:-.025em!important;text-wrap:balance}
#main.pd-page h1{font-family:BarlowSport,Impact,sans-serif!important;font-weight:700!important;font-size:clamp(3.25rem,6.4vw,5.5rem)!important;line-height:.98!important;margin:0!important;text-transform:uppercase}
#main.pd-page h2{font-family:BarlowSport,Impact,sans-serif!important;font-weight:700!important;font-size:2.25rem!important;line-height:1.12!important;margin:0!important}
#main.pd-page h3{font-family:Geist,Arial,sans-serif!important;font-weight:700!important;font-size:1.25rem!important;line-height:1.3!important;margin:0!important}
#main.pd-page a{color:inherit;text-underline-offset:3px}
#main.pd-page :is(button,select,input){font:inherit}
#main.pd-page button{cursor:pointer}
#main.pd-page :is(a,button,input,select,summary):focus-visible{outline:3px solid #55514d!important;outline-offset:4px!important;scroll-margin-bottom:110px}
#main.pd-page :is(h2,h3,section,details,[id]){scroll-margin-top:104px}
#main.pd-page svg{flex:none;max-width:24px;max-height:24px;vertical-align:middle}
#main.pd-page :is(.pd-result-section,.pd-directory-index,.pd-finder){width:calc(100% - 96px);max-width:1248px;margin-left:auto!important;margin-right:auto!important}
#main.pd-page .pd-anchor{display:block;height:0}
#main.pd-page :is(.pd-place-link){display:inline-flex;align-items:center;justify-content:space-between;gap:16px;min-height:44px;padding:11px 17px;border:1px solid var(--ink);border-radius:3px;font-size:0.875rem;font-weight:650;line-height:1.4;text-decoration:none;background:transparent;color:var(--ink)}
#main.pd-page .pd-place-link:hover{filter:brightness(.94)}
/* The finder begins with a decision, not an undifferentiated inventory. */
#main.pd-page .pd-finder{padding:24px 0 0;margin-bottom:38px!important;position:relative}
#main.pd-page .pd-primary-filters{display:grid;grid-template-columns:1fr 1fr 1.6fr;gap:18px;align-items:start}
#main.pd-page .pd-primary-filters>label{display:block;font-size:0.6875rem;font-weight:750;letter-spacing:.06em}
#main.pd-page .pd-primary-filters select,#main.pd-page .pd-primary-filters input{width:100%;height:48px;min-width:0;border:1px solid #55514d;border-radius:3px;color:var(--ink);background:#f4f1ec;padding:10px 12px;font-size:0.9375rem;font-weight:450;letter-spacing:0;margin-top:7px}
#main.pd-page .search-input-wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0 8px;position:static!important;margin:0!important;height:auto!important;min-height:0}
#main.pd-page .search-input-wrap label{grid-column:1/-1;font-size:0.6875rem;font-weight:750;letter-spacing:.06em}
#main.pd-page .search-input-wrap #q{padding-left:12px!important;height:auto!important;min-height:48px;line-height:1.4;font-size:.9375rem!important}
#main.pd-page #search-filter-toggle{position:static!important;align-self:end;margin:7px 0 0!important;min-height:48px;background:var(--ink)!important;color:var(--paper)!important;border:1px solid var(--ink)!important;border-radius:3px!important;font-size:0.8125rem!important;padding:10px!important;white-space:nowrap}
#main.pd-page #active-filter-count{background:var(--acid);color:var(--ink);padding:0 4px;border-radius:2px}
#main.pd-page .search-toolbar{position:static!important;top:auto!important;background:transparent!important;border:0!important;box-shadow:none!important;padding:0!important;margin:0!important}
#main.pd-page .pg-filter-summary{margin:0!important;padding:0!important}
#main.pd-page .search-active-filters:empty{display:none}
#main.pd-page .search-active-filters{padding:12px 0 0;display:flex;gap:8px;flex-wrap:wrap}
#main.pd-page .search-active-filters button{min-height:36px;padding:5px 10px;border:1px solid #55514d;background:#dad5ce;color:var(--ink);border-radius:3px;font-size:0.8125rem}
#main.pd-page .search-filter-drawer[data-open="false"]{display:none!important}
#main.pd-page .search-filter-drawer[data-open="true"]{display:block;background:#dad5ce;padding:20px;margin-top:16px;border:1px solid var(--line);border-radius:3px;color:var(--ink)}
#main.pd-page .search-filter-drawer-head{margin-bottom:14px;font-size:1rem}
#main.pd-page .search-filter-panel{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px!important}
#main.pd-page .search-filter-panel label{display:flex;flex-direction:column;gap:6px;font-size:0.8125rem;font-weight:600;min-width:0}
#main.pd-page .search-filter-panel select{width:100%;min-height:44px;border:1px solid #55514d;border-radius:3px;padding:8px;background:#f4f1ec;color:var(--ink);font-size:0.875rem}
#main.pd-page .search-filter-panel .search-check{display:flex;flex-direction:row;align-items:center;gap:10px;min-height:44px;font-size:0.8125rem}
#main.pd-page .search-check input{width:20px;height:20px;flex:none}
#main.pd-page .search-filter-close{margin-top:16px;min-height:44px;background:var(--ink);color:var(--paper);border:0;border-radius:3px;padding:10px 20px}
#main.pd-page .favorite-btn[aria-pressed="true"]{background:var(--acid)!important;color:var(--ink)!important}
#main.pd-page .pd-status{display:inline-block;background:#dad5ce;padding:3px 7px;font-weight:700;font-size:0.75rem;line-height:1.5;margin-top:8px}
#main.pd-page .pd-product{font-size:0.6875rem;line-height:1.5;color:var(--muted);font-weight:600}
#main.pd-page a.pd-place-link{padding:8px 12px;min-height:44px;font-size:0.8125rem;background:var(--ink);color:var(--paper);border-color:var(--ink);white-space:nowrap}
#main.pd-page .search-results{display:block!important;margin:0!important}
#main.pd-page .search-stats{font-size:0.9375rem;font-weight:600;margin:0 0 6px!important}
#main.pd-page .search-empty{padding:30px 0;background:transparent;border:0}
#main.pd-page .pd-directory-index{margin-top:36px!important;border-top:1px solid var(--line);padding-top:18px;font-size:0.875rem}
#main.pd-page .pd-directory-index summary{cursor:pointer;min-height:44px;font-size:1rem;font-weight:650}
#main.pd-page .pd-directory-index summary span{font-size:0.75rem;font-weight:400;margin-left:16px}
#main.pd-page .pd-directory-index>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;margin-top:24px}
#main.pd-page .pd-directory-index ul{padding:12px 0 0;list-style:none}
#main.pd-page .pd-directory-index li{padding:5px 0;font-size:0.8125rem}
#main.pd-page .pd-directory-index li span{display:block;font-size:0.6875rem;color:var(--muted)}
/* A place, its admission and the journey sit together. */

@media(max-width:1000px){#main.pd-page :is(.pd-result-section,.pd-directory-index,.pd-finder){width:calc(100% - 48px)}#main.pd-page .pd-primary-filters{grid-template-columns:1fr 1fr}.pd-primary-filters>.search-input-wrap{grid-column:1/-1}}
@media(max-width:760px){
 #main.pd-page{padding-bottom:104px!important;font-size:1rem}
 #main.pd-page :is(.pd-result-section,.pd-directory-index,.pd-finder){width:calc(100% - 36px)}
 #main.pd-page :is(h2,h3,section,details,[id]){scroll-margin-top:88px}
 #main.pd-page h2{font-size:1.875rem!important}
 #main.pd-page .pd-finder{padding-top:19px;margin-bottom:29px!important}
 #main.pd-page .pd-primary-filters{gap:14px 10px}
 #main.pd-page .pd-primary-filters>label,#main.pd-page .search-input-wrap label{font-size:0.625rem}
 #main.pd-page .pd-primary-filters select,#main.pd-page .pd-primary-filters input{height:46px;font-size:0.875rem;padding-left:8px}
 #main.pd-page #search-filter-toggle{min-height:46px}
 #main.pd-page .search-filter-drawer[data-open="true"]{position:fixed!important;inset:85px 10px 90px!important;z-index:2000!important;max-height:calc(100dvh - 175px)!important;height:auto!important;overflow:auto!important;margin:0!important;padding:20px!important;box-shadow:0 0 0 100vmax #0b0b0ce8!important;display:flex!important;flex-direction:column}
 #main.pd-page .search-filter-panel{grid-template-columns:1fr!important;gap:15px!important}
 #main.pd-page .pg-filter-scroll{overflow-y:auto;min-height:0}
 #main.pd-page .search-filter-close{flex:none;width:100%;margin:14px 0 0!important}
 #main.pd-page .pd-directory-index{margin-top:25px!important}
 #main.pd-page .pd-directory-index summary{font-size:0.875rem}
 #main.pd-page .pd-directory-index summary span{display:block;margin-left:17px;margin-top:4px}
 #main.pd-page .pd-directory-index>div{grid-template-columns:1fr;gap:24px}
}
@media(max-width:350px){#main.pd-page .pd-primary-filters{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){#main.pd-page *{scroll-behavior:auto!important;transition:none!important}}
@media(max-width:760px){#main.pd-page.is-filtered .pd-finder{margin-bottom:23px!important}}

/* One canonical card across discovery, directories, related venues and saved places. */
body.sports-design.publication.reference-rebuild #main .pd-result{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:14px!important;padding:24px 0!important;margin:0!important;border:0!important;border-bottom:1px solid var(--line)!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;color:var(--ink)!important;min-width:0;overflow:visible!important}
body.sports-design.publication.reference-rebuild #main .pd-result>*{min-width:0}
body.sports-design.publication.reference-rebuild #main .pd-result-title{display:block;margin:0;padding:0}
body.sports-design.publication.reference-rebuild #main .pd-result h3{font-size:1.5rem!important;line-height:1.25!important;text-wrap:initial!important;overflow-wrap:anywhere}
body.sports-design.publication.reference-rebuild #main .pd-result h3 a{text-decoration:none}
body.sports-design.publication.reference-rebuild #main .pd-result h3 a:hover{text-decoration:underline}
body.sports-design.publication.reference-rebuild #main .pd-result-location{font-size:.8125rem;line-height:1.5;color:var(--muted);margin-top:6px}
body.sports-design.publication.reference-rebuild #main .pd-result-body{display:flex;flex-wrap:wrap;align-items:start;gap:14px 30px}
body.sports-design.publication.reference-rebuild #main .pd-status{width:fit-content;background:#dad5ce;color:#0b0b0c;padding:4px 8px;font-weight:700;font-size:.8125rem;line-height:1.5;margin-bottom:8px}
body.sports-design.publication.reference-rebuild #main .pd-result-price{display:flex;flex:0 1 16rem;flex-direction:column;gap:3px;min-width:0}
body.sports-design.publication.reference-rebuild #main .pd-product{font-size:.8125rem;line-height:1.5;font-weight:600;color:var(--muted)}
body.sports-design.publication.reference-rebuild #main .pd-result-price>strong{font-size:1.75rem;line-height:1.3;font-weight:750;letter-spacing:-.025em}
body.sports-design.publication.reference-rebuild #main .pd-result-price>strong small{font-size:.875rem;font-weight:450;letter-spacing:0}
body.sports-design.publication.reference-rebuild #main .pd-result-price>small{font-size:.75rem;color:var(--muted);line-height:1.5}
body.sports-design.publication.reference-rebuild #main .pd-result-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px;margin:0;font-size:.875rem}
body.sports-design.publication.reference-rebuild #main a.pd-place-link{padding:11px 16px;min-height:44px;font-size:.875rem;background:var(--ink);color:var(--paper);border-color:var(--ink);white-space:normal}
body.sports-design.publication.reference-rebuild #main .pd-save{position:static!important;inset:auto!important;width:auto!important;flex:0 0 auto!important;max-width:none!important;height:auto!important;min-width:44px!important;min-height:44px!important;display:inline-flex!important;align-items:center;justify-content:center;gap:7px!important;padding:9px 12px!important;border:1px solid #55514d!important;border-radius:3px!important;background:transparent!important;color:var(--ink)!important;box-shadow:none!important;margin:0!important;font-size:.875rem!important;line-height:1.4!important}
body.sports-design.publication.reference-rebuild #main .pd-save .fav-btn-label{position:static!important;width:auto!important;height:auto!important;clip-path:none!important;overflow:visible!important}
body.sports-design.publication.reference-rebuild #main .pd-save[aria-pressed="true"]{background:var(--acid)!important}
body.sports-design.publication.reference-rebuild #main .pd-feature{padding:22px!important;border:1px solid var(--line)!important;border-radius:4px!important;background:#f4f1ec!important;align-content:start}
body.sports-design.publication.reference-rebuild #main .pd-feature .pd-result-body{display:block}
body.sports-design.publication.reference-rebuild #main .pd-feature .pd-result-price{margin-top:14px}
body.sports-design.publication.reference-rebuild #main .pd-feature .pd-result-actions{align-self:end}
body.sports-design.publication.reference-rebuild #main .search-active-filters button{min-height:44px;font-size:.8125rem;padding:8px 12px;white-space:normal;text-align:left;line-height:1.5}
body.sports-design.publication.reference-rebuild #main .search-active-filters button:last-child{background:transparent;border-color:transparent;text-decoration:underline}
body.sports-design.publication.reference-rebuild #main .search-load-more-wrap button{min-height:44px;white-space:normal}
body.sports-design.publication.reference-rebuild #main .search-empty .tool-empty-actions{display:flex;flex-wrap:wrap;gap:12px}
body.sports-design.publication.reference-rebuild #main .search-empty .tool-empty-actions :is(a,button){min-height:44px;white-space:normal}
body.sports-design.publication.reference-rebuild #main .search-empty h3{margin-bottom:8px!important}
body.sports-design.publication.reference-rebuild #main .search-empty p{margin-bottom:16px}
@media(min-width:761px){
 body.sports-design.publication.reference-rebuild #main .pd-result.no-photo .pd-result-body{align-items:center}
}
@media(max-width:760px){
 #main.pd-discovery{padding-bottom:48px!important}
 body.sports-design.publication.reference-rebuild #main .pd-result{gap:12px!important;padding:20px 0!important}
 body.sports-design.publication.reference-rebuild #main .pd-result h3{font-size:1.375rem!important}
 body.sports-design.publication.reference-rebuild #main .pd-result-body{display:block}
 body.sports-design.publication.reference-rebuild #main .pd-result-price{margin-top:12px}
 body.sports-design.publication.reference-rebuild #main .pd-result-actions{gap:6px 14px}
 body.sports-design.publication.reference-rebuild #main .pd-feature .pd-result-price{margin-top:12px}
 body.sports-design.publication.reference-rebuild #main .pd-primary-filters :is(input,select){height:auto;min-height:46px;font-size:.9375rem;padding:10px 8px}
 body.sports-design.publication.reference-rebuild #main #search-filter-toggle{white-space:normal;font-size:.8125rem!important}
 body.sports-design.publication.reference-rebuild #main .search-input-wrap{grid-template-columns:minmax(0,1fr) auto}
}
@media(max-width:350px){
 body.sports-design.publication.reference-rebuild #main .pd-primary-filters{grid-template-columns:1fr}
 body.sports-design.publication.reference-rebuild #main .search-input-wrap{grid-template-columns:1fr}
 body.sports-design.publication.reference-rebuild #main .search-input-wrap #search-filter-toggle{justify-self:start}
}

body.sports-design.publication.reference-rebuild #main .pd-result{--ink:#0b0b0c;--paper:#f4f1ec;--muted:#55514d;--line:#bdb8b3;--acid:#bdb8b3;font-family:Geist,Arial,sans-serif;container-type:inline-size}
body.sports-design.publication.reference-rebuild #main .pd-result :is(p,h3,figure){margin:0!important}
body.sports-design.publication.reference-rebuild #main .pd-result h3{font-family:Geist,Arial,sans-serif!important;font-weight:700!important;text-transform:none!important;letter-spacing:-.025em!important}
body.sports-design.publication.reference-rebuild #main .pd-result svg{width:20px;height:20px;flex:none}
body.sports-design.publication.reference-rebuild #main .pd-result.is-unresolved{border-left:3px solid #55514d!important;padding-left:18px!important}
body.sports-design.publication.reference-rebuild #main .pd-result .pd-result-actions{justify-content:flex-start!important}
body.sports-design.publication.reference-rebuild #main .pd-result .pd-place-link{display:inline-flex;align-items:center;justify-content:space-between;gap:16px;border:1px solid var(--ink);border-radius:3px;text-decoration:none;font-weight:650;line-height:1.4}
body.sports-design.publication.reference-rebuild #main .pd-result [aria-pressed=true]{font-weight:650}
body.sports-design.publication.reference-rebuild #main .pd-result .pd-save:disabled{cursor:default;opacity:.65}
@media(max-width:760px){body.sports-design.publication.reference-rebuild #main .pd-result.no-photo{padding:18px 0!important}body.sports-design.publication.reference-rebuild #main .pd-result .pd-result-price{padding:0!important}}

/* Canonical venue variants extend the accepted photographic product composition. */
/* Shared user-requested map never depends on a retired parent layout. */
/* Keep admission tables independent of the legacy generic price-table skin. */

/* Long taxonomy lists reuse the accepted discovery card without compressing copy. */
/* Card layout rules later in the bundle use !important (including the desktop
   photo grid). Keep the runtime's native hidden state above both variants. */
body.sports-design #main .pd-directory-index{margin:22px 0;border-block:1px solid var(--directory-line)}
body.sports-design #main .pd-directory-index summary{padding:14px 0;cursor:pointer;font-weight:650}
body.sports-design #main .pd-directory-index ul{columns:2;column-gap:32px;margin:0 0 18px;padding-left:20px}
body.sports-design #main .pd-directory-index li{break-inside:avoid;padding:5px 0;line-height:1.6;font-size:.9375rem}
body.sports-design #main .pd-directory-index a{display:inline-block;padding:7px 0}
@media(max-width:760px){body.sports-design #main .pd-directory-index ul{columns:1}}
body.sports-design.publication.reference-rebuild #main section:has(>.wrap>.pd-directory-sports){padding-bottom:12px!important}

body.sports-design #main .pd-directory-index summary{font-size:.875rem!important}

/* Canonical guides: one reader system, with a decision table where appropriate. */

/* Day-pass guide: compact decisions first, comfortable supporting reading. */

/* Native guide controls remain usable in the same document without JS. */
/* Isolate the accepted comparison from legacy prose-table minimum widths. */

/* Ordinary comparison guides retain table relationships while placing each
   complete entry, including its conditions, in one mobile reading sequence. */

/* Pattaya Gym publication system: neutral surfaces, readable type, and no app dock. */
html{scroll-padding-bottom:0!important}
body.sports-design.publication.reference-rebuild{
  --sp-dark:#0b0b0c;--sp-ink:#0b0b0c;--sp-paper:#f4f1ec;--sp-acid:#55514d;
  --sp-accent-on-light:#55514d;--sp-accent-on-dark:#bdb8b3;
  --brand:#0b0b0c;--brand-ink:#0b0b0c;--ink:#0b0b0c;--text:#0b0b0c;
  --accent:#55514d;--accent-ink:#55514d;--canvas:#f4f1ec;--bg:#f4f1ec;
  --surface:#ffffff;--paper:#f4f1ec;--lime:#55514d;--vc-line:#dad5ce;
  --yellow:#55514d;background:#f4f1ec!important;color:#0b0b0c!important;
  padding-bottom:0!important;scroll-padding-bottom:0!important
}
body.sports-design.publication.reference-rebuild :is(h1,h2,h3){
  font-family:Geist,Arial,sans-serif!important;font-weight:750!important;
  letter-spacing:-.035em!important;text-transform:none!important
}
body.sports-design.publication.reference-rebuild #main :is(h1,h2,h3),
body.sports-design.publication.reference-rebuild #main :is(.result-card-price) strong{
  font-family:Geist,Arial,sans-serif!important;font-weight:750!important;
  letter-spacing:-.035em!important;text-transform:none!important
}
body.sports-design.publication.reference-rebuild :is(button,input,select,summary){
  font-family:Geist,Arial,sans-serif!important
}
body.sports-design.publication.reference-rebuild :is(a,button,input,select,summary):focus-visible{
  outline:3px solid #55514d!important;outline-offset:3px!important
}
body.sports-design.publication.reference-rebuild :is(.nav,.footer) :is(a,button,input,select,summary):focus-visible{
  outline-color:var(--sp-accent-on-dark)!important
}
body.sports-design.publication.reference-rebuild .skip-link{color:#ffffff!important}
body.sports-design.publication.reference-rebuild .skip-link:focus-visible{
  outline-color:var(--sp-accent-on-dark)!important
}
body.sports-design.publication.reference-rebuild header.nav,
body.sports-design.publication.reference-rebuild #nav-mobile,
body.sports-design.publication.reference-rebuild .footer{background:#0b0b0c!important}
body.sports-design.publication.reference-rebuild .nav-row{min-height:76px!important}
body.sports-design.publication.reference-rebuild .nav-links a{
  color:#f4f1ec!important;font:650 13px/1.35 Geist,Arial,sans-serif!important
}
body.sports-design.publication.reference-rebuild .nav-links a:hover,
body.sports-design.publication.reference-rebuild #nav-mobile a:hover{color:#bdb8b3!important}

/* Home: venue content follows the short search and sport choices. */
body.sports-design.publication.reference-rebuild .sp-search{
  max-width:620px;min-height:54px;background:#ffffff;border:1px solid #55514d;
  border-radius:4px;box-shadow:none
}
body.sports-design.publication.reference-rebuild .sp-search input{
  background:#ffffff;color:#0b0b0c;font-size:15px;padding:14px 16px
}
body.sports-design.publication.reference-rebuild .sp-search button{
  background:#0b0b0c;color:#ffffff;min-width:150px;min-height:53px;
  padding:12px 16px;font-size:13px;font-weight:700;border-radius:0 3px 3px 0
}
body.sports-design.publication.reference-rebuild .sp-search button:hover{background:#55514d}

@media(max-width:760px){
  body.sports-design.publication.reference-rebuild .nav-row{min-height:72px!important;padding:10px 18px!important}
  body.sports-design.publication.reference-rebuild .sp-search{min-height:48px}
  body.sports-design.publication.reference-rebuild .sp-search input{font-size:14px;padding:10px 11px}
  body.sports-design.publication.reference-rebuild .sp-search button{
    min-height:48px;min-width:105px;padding:9px 10px;font-size:12px
  }
}
@media(max-width:350px){
  body.sports-design.publication.reference-rebuild .sp-search button{min-width:94px}
}

/* Search, indexes and supporting pages use the same quiet publication surfaces. */
#main.pd-page{
  --ink:#0b0b0c;--paper:#f4f1ec;--muted:#55514d;--line:#dad5ce;--acid:#55514d;
  background:#f4f1ec!important
}
#main.pd-page #active-filter-count{color:#ffffff!important}
#main.pd-page .pd-primary-filters select,
#main.pd-page .pd-primary-filters input{background:#ffffff!important;border-color:#bdb8b3!important}
#main.pd-page .search-filter-drawer[data-open="true"]{background:#f4f1ec!important}

#main.pd-page .search-filter-drawer-head strong{
  font-family:Geist,Arial,sans-serif!important;font-weight:750!important;
  letter-spacing:-.035em!important;text-transform:none!important
}
#main.pd-page .pd-feature{
  background:#ffffff!important;border-color:#dad5ce!important
}
body.sports-design.publication.reference-rebuild .btn-secondary{
  background:transparent!important;color:#0b0b0c!important;border-color:#55514d!important
}
@media(max-width:760px){
  #main.pd-page .pd-finder{padding-top:13px;margin-bottom:15px!important}
}

/* Homepage composition only. Search and sport routes follow the introduction on narrow screens. */

/* Shared result cards: one venue distinction, a dated product only when published. */
body.sports-design.publication.reference-rebuild #main .pd-result .pd-result-body{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,14rem);gap:.4rem 1.4rem;align-items:start
}
body.sports-design.publication.reference-rebuild #main .pd-result .pd-result-body:not(:has(.pd-result-price)){
  grid-template-columns:minmax(0,1fr)
}
body.sports-design.publication.reference-rebuild #main .pd-result .pd-status{
  grid-column:1/-1;margin:0 0 .2rem!important
}
body.sports-design.publication.reference-rebuild #main .pd-result .pd-result-distinction{
  color:var(--ink);font-size:.9375rem;line-height:1.55;max-width:68ch;overflow-wrap:anywhere
}
body.sports-design.publication.reference-rebuild #main .pd-result .pd-result-price{
  width:100%;margin:0;gap:.2rem;padding-left:1rem;border-left:1px solid var(--line)
}
body.sports-design.publication.reference-rebuild #main .pd-result .pd-result-price>strong{
  font-size:1.35rem;line-height:1.3
}
body.sports-design.publication.reference-rebuild #main .pd-result .pd-result-actions{
  margin-top:.1rem
}
body.sports-design.publication.reference-rebuild #main .pd-result .pd-place-link{
  min-height:44px;padding:.45rem 0;background:transparent;color:var(--ink);border:0;
  border-bottom:1px solid currentColor;border-radius:0;font-weight:700
}
body.sports-design.publication.reference-rebuild #main .pd-result.favorite-list-card .pd-save{
  min-height:44px;white-space:normal
}

/* Practical facts and source context stay in the venue opening without tool clutter. */
@media(max-width:760px){
  body.sports-design.publication.reference-rebuild #main .pd-result .pd-result-body{
    display:block
  }
  body.sports-design.publication.reference-rebuild #main .pd-result .pd-result-price{
    margin-top:.75rem;padding-left:0;padding-top:.55rem;border-left:0;border-top:1px solid var(--line)
  }
}

/* Training Index: one publication surface across the generated site. */





:root{--ti-paper:#f4f1ec;--ti-ink:#0b0b0c;--ti-muted:#55514d;--ti-accent:#55514d;--ti-link:#55514d;--ti-line:#dad5ce;--ti-warm:#dad5ce;--ti-deep:#0b0b0c;--ti-width:1220px;--ti-prose:68ch}
html{scroll-behavior:smooth}
body.ti-publication{margin:0;background:var(--ti-paper)!important;color:var(--ti-ink)!important;font-family:Geist,Arial,sans-serif!important;font-size:16px;line-height:1.6;overflow-x:clip}
body.ti-publication *,body.ti-publication *::before,body.ti-publication *::after{box-sizing:border-box}
body.ti-publication :is(h1,h2,h3){font-family:Geist,Geist,Geist,sans-serif;letter-spacing:-.045em;text-wrap:balance;color:var(--ti-ink)}
body.ti-publication.sports-design.publication.reference-rebuild{--sp-dark:var(--ti-deep);--sp-ink:var(--ti-ink);--sp-paper:var(--ti-paper);--sp-acid:var(--ti-accent);--sp-line:var(--ti-line);--brand:var(--ti-ink);--ink:var(--ti-ink);--muted:var(--ti-muted);--bg:var(--ti-paper);--surface:var(--ti-paper);--lime:var(--ti-accent);--vc-line:var(--ti-line);background:var(--ti-paper)!important;color:var(--ti-ink)!important;padding-bottom:0!important}
body.ti-publication.sports-design.publication.reference-rebuild #main :is(h1,h2,h3),body.ti-publication.sports-design.publication.reference-rebuild :is(h1,h2,h3){font-family:Geist,Geist,Geist,sans-serif!important;font-weight:700!important;letter-spacing:-.045em!important;color:var(--ti-ink)!important}
body.ti-publication :is(p,li,figcaption,summary,input,select,button){font-family:Geist,Arial,sans-serif}
body.ti-publication a{color:var(--ti-link);text-underline-offset:.19em}
body.ti-publication a:hover{text-decoration-thickness:2px}
body.ti-publication :is(a,button,input,select,summary):focus-visible{outline:3px solid var(--ti-accent)!important;outline-offset:3px!important}
body.ti-publication :is(button,input,select){font-size:inherit}
body.ti-publication :is(button,a){-webkit-tap-highlight-color:transparent}
body.ti-publication .back-to-top{background:var(--ti-deep)!important;color:var(--ti-paper)!important;border:1px solid var(--ti-paper)!important}
body.ti-publication [hidden]{display:none!important}

/* Shared masthead and footer. Their generated markup is identical on all routes. */
body.ti-publication header.nav{position:relative!important;z-index:40!important;background:var(--ti-paper)!important;color:var(--ti-ink)!important;border:0!important;border-bottom:1px solid var(--ti-ink)!important;box-shadow:none!important}
body.ti-publication .nav-row{width:min(calc(100% - 64px),var(--ti-width))!important;min-height:90px!important;margin:auto!important;padding:14px 0!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:2rem!important}
body.ti-publication .brand{display:flex!important;align-items:center!important;min-width:0!important;margin:0!important;color:var(--ti-ink)!important;text-decoration:none!important}
body.ti-publication .nav-links{display:flex!important;align-items:center!important;flex-wrap:wrap!important;gap:clamp(.6rem,1.55vw,1.55rem)!important;margin:0!important}
body.ti-publication .nav-links a{display:inline-flex!important;align-items:center!important;min-height:44px!important;padding:4px 0!important;color:var(--ti-ink)!important;font:700 .83rem/1.25 Geist,Arial,sans-serif!important;text-decoration:none!important;border:0!important;background:transparent!important}
body.ti-publication .nav-links a:hover,body.ti-publication .nav-links a[aria-current=page]{color:var(--ti-link)!important;text-decoration:underline!important;text-underline-offset:6px!important}
body.ti-publication .nav-burger{display:none!important;width:44px!important;height:44px!important;border:1px solid var(--ti-ink)!important;border-radius:0!important;background:transparent!important;color:var(--ti-ink)!important;box-shadow:none!important}
body.ti-publication .nav-burger-bar{background:var(--ti-ink)!important}
body.ti-publication .nav-mobile:not([hidden]){display:none}
body.ti-publication .footer{background:var(--ti-deep)!important;color:#f4f1ec!important;border:0!important;padding:0!important;margin:0!important}
body.ti-publication .footer-wrap{width:min(calc(100% - 64px),var(--ti-width))!important;max-width:none!important;margin:auto!important;padding:clamp(3rem,6vw,5rem) 0 1.2rem!important}
body.ti-publication .footer :is(a,h2,p,span,time){color:inherit}
body.ti-publication .footer a{text-decoration:none!important}
body.ti-publication .footer a:hover{text-decoration:underline!important;text-underline-offset:4px!important}
body.ti-publication .footer-nav{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:1.5rem!important}
body.ti-publication .footer-col-h{margin:0 0 1rem!important;font:700 .72rem/1.4 Geist,Arial,sans-serif!important;letter-spacing:.13em!important;text-transform:uppercase!important;color:#bdb8b3!important}
body.ti-publication .footer-col ul{margin:0!important;padding:0!important;list-style:none!important}
body.ti-publication .footer-col li{margin:0!important;padding:.23rem 0!important;line-height:1.35!important}
body.ti-publication .footer-col a{font-size:.88rem!important;color:#dad5ce!important}
/* The former chrome layer used a four-class dark-header selector. The shared
   light masthead intentionally wins that exact cascade on every route. */
body.ti-publication.sports-design.publication.reference-rebuild header.nav{background:var(--ti-paper)!important;color:var(--ti-ink)!important;border-bottom:1px solid var(--ti-ink)!important;position:relative!important}
body.ti-publication.sports-design.publication.reference-rebuild .nav-links a{color:var(--ti-ink)!important;font:700 .83rem/1.25 Geist,Arial,sans-serif!important}
body.ti-publication.sports-design.publication.reference-rebuild .nav-links a:hover{color:var(--ti-link)!important}
body.ti-publication.sports-design.publication.reference-rebuild #nav-mobile{background:var(--ti-paper)!important;color:var(--ti-ink)!important}
body.ti-publication.sports-design.publication.reference-rebuild #nav-mobile :is(a,span){color:var(--ti-ink)!important}
body.ti-publication.sports-design.publication.reference-rebuild .nav-burger{color:var(--ti-ink)!important;border-color:var(--ti-ink)!important;border-radius:0!important;background:transparent!important}
body.ti-publication.sports-design.publication.reference-rebuild .nav-burger-bar{background:var(--ti-ink)!important}
body.ti-publication.sports-design.publication.reference-rebuild .footer{background:var(--ti-deep)!important;color:var(--ti-paper)!important}
body.ti-publication.sports-design.publication.reference-rebuild .footer .footer-col-h{color:#bdb8b3!important}
body.ti-publication.sports-design.publication.reference-rebuild :is(.nav,#nav-mobile) :is(a,button):focus-visible{outline-color:var(--ti-accent)!important}
@media(max-width:760px){body.ti-publication.sports-design.publication.reference-rebuild .back-to-top{position:fixed!important;inset:auto 16px 16px auto!important;margin:0!important;transform:translateY(6px)!important}body.ti-publication.sports-design.publication.reference-rebuild .back-to-top.is-visible{transform:none!important}}

/* Homepage: find, browse and see real places before promotional copy. */
body.ti-publication .ti-publication h2{margin:0!important;font:700 clamp(2.1rem,3.75vw,3.7rem)/1.08 Geist,Geist,sans-serif!important;letter-spacing:-.055em!important}
body.ti-publication .ti-publication{display:grid!important;grid-template-columns:1fr 1fr!important;gap:3rem!important;padding:clamp(3rem,5vw,5rem) 0!important}
body.ti-publication .ti-publication p:not(.ti-kicker){max-width:50ch!important;margin:0 0 1.2rem!important;color:var(--ti-muted)!important;font-size:1.04rem!important;line-height:1.62!important}
body.ti-publication .ti-publication>div:last-child>div{display:flex!important;flex-wrap:wrap!important;gap:.5rem 1.25rem!important;font-weight:700!important}

/* Search and reusable result cards. */
body.ti-publication main.ti-search{width:min(calc(100% - 64px),var(--ti-width))!important;max-width:none!important;margin:auto!important;padding:0 0 5rem!important;background:var(--ti-paper)!important;color:var(--ti-ink)!important}
body.ti-publication .ti-search-intro{max-width:none!important;min-height:0!important;margin:0!important;padding:clamp(2.5rem,5vw,4.5rem) 0 2.1rem!important;border:0!important;border-bottom:1px solid var(--ti-ink)!important;background:transparent!important;color:var(--ti-ink)!important;box-shadow:none!important}
body.ti-publication .ti-search-intro h1{margin:0 0 1rem!important;font:700 clamp(3rem,5vw,5.2rem)/1 Geist,Geist,sans-serif!important;letter-spacing:-.06em!important}
body.ti-publication .ti-search-intro>p:last-child{max-width:62ch!important;margin:0!important;color:var(--ti-muted)!important;font-size:1.07rem!important;line-height:1.6!important}
body.ti-publication .ti-search-finder{margin:0!important;padding:1.6rem 0 1rem!important;background:transparent!important;border:0!important;box-shadow:none!important}
body.ti-publication .ti-search-finder .sf-pill{min-height:42px!important;margin:0!important;padding:.55rem .8rem!important;border:1px solid var(--ti-ink)!important;border-radius:0!important;background:transparent!important;color:var(--ti-ink)!important;font:700 .8rem/1.25 Geist,sans-serif!important;box-shadow:none!important;cursor:pointer!important}
body.ti-publication .ti-search-finder .sf-pill span{margin-left:.45rem!important;color:var(--ti-muted)!important;font-size:.7rem!important}
body.ti-publication .ti-search-finder .sf-pill.active,body.ti-publication .ti-search-finder .sf-pill[aria-pressed=true]{background:var(--ti-ink)!important;color:#fff!important}
body.ti-publication .ti-search-finder .sf-pill.active span,body.ti-publication .ti-search-finder .sf-pill[aria-pressed=true] span{color:#dad5ce!important}
body.ti-publication .ti-search-finder .pd-primary-filters{display:grid!important;grid-template-columns:minmax(130px,.8fr) minmax(130px,.8fr) minmax(240px,1.45fr)!important;gap:.8rem!important;align-items:end!important;margin:0!important;padding:0!important;background:transparent!important;border:0!important}
body.ti-publication .ti-search-finder .pd-primary-filters label{display:block!important;min-width:0!important;margin:0!important;color:var(--ti-ink)!important;font:700 .75rem/1.35 Geist,sans-serif!important;text-transform:none!important;letter-spacing:0!important}
body.ti-publication .ti-search-finder .pd-primary-filters label span{display:block!important;margin-bottom:.4rem!important}
body.ti-publication .ti-search-finder :is(select,input[type=search]){width:100%!important;min-height:48px!important;margin-top:.4rem!important;padding:.65rem .8rem!important;border:1px solid var(--ti-ink)!important;border-radius:0!important;background:#fff!important;color:var(--ti-ink)!important;box-shadow:none!important}
body.ti-publication .ti-search-finder .search-input-wrap{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:end!important;gap:0 .55rem!important}
body.ti-publication .ti-search-finder .search-input-wrap label{grid-column:1/-1!important}
body.ti-publication .ti-search-finder .search-filter-toggle{min-height:48px!important;margin:0!important;padding:.55rem .8rem!important;border:1px solid var(--ti-ink)!important;border-radius:0!important;background:var(--ti-ink)!important;color:#fff!important;font-size:.76rem!important;font-weight:700!important;white-space:nowrap!important;box-shadow:none!important}
body.ti-publication .ti-search-finder .search-toolbar{margin:0!important;padding:0!important;background:transparent!important}
body.ti-publication .ti-search-finder .search-filter-drawer[data-open=true]{margin-top:1rem!important;padding:1rem!important;border:1px solid var(--ti-line)!important;background:#fff!important;box-shadow:none!important}
body.ti-publication .ti-search :is(.pd-result-section){margin:0!important;padding:1.5rem 0 3rem!important;background:transparent!important;border:0!important}
body.ti-publication .ti-search .search-stats{margin:.45rem 0 1rem!important;color:var(--ti-muted)!important;font-size:.83rem!important}
body.ti-publication .ti-search .search-results{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:1rem!important}
body.ti-publication .ti-search :is(.pd-result,.pg-place-card){min-width:0!important;max-width:none!important;margin:0!important;padding:1rem!important;border:1px solid var(--ti-line)!important;border-top:3px solid var(--ti-ink)!important;border-radius:0!important;background:#fff!important;color:var(--ti-ink)!important;box-shadow:none!important;transform:none!important}
body.ti-publication :is(.ti-search) :is(.pd-result,.pg-place-card,.cat-venue-card) :is(h2,h3){font-family:Geist,Geist,sans-serif!important;letter-spacing:-.035em!important;line-height:1.18!important;color:var(--ti-ink)!important}
body.ti-publication :is(.ti-search) :is(.pd-result,.pg-place-card,.cat-venue-card) p{color:var(--ti-muted)!important;line-height:1.52!important}
body.ti-publication :is(.ti-search) :is(.pd-result,.pg-place-card,.cat-venue-card) a{color:var(--ti-ink)!important}
body.ti-publication :is(.ti-search) :is(.pd-result,.pg-place-card,.cat-venue-card) :is(.pd-result-price,strong){color:var(--ti-ink)!important}
body.ti-publication :is(.ti-search) :is(.pd-result,.pg-place-card,.cat-venue-card) img{max-width:100%!important;object-fit:cover!important;border-radius:0!important}
body.ti-publication .ti-search .pd-directory-index{margin-top:2rem!important;padding:1rem 0!important;border:0!important;border-top:1px solid var(--ti-ink)!important;background:transparent!important}
body.ti-publication .ti-search .pd-directory-index summary{font-weight:700!important;color:var(--ti-ink)!important;cursor:pointer!important}
body.ti-publication .ti-search .pd-directory-index>div{columns:4!important;column-gap:1.5rem!important}
body.ti-publication .ti-search .pd-directory-index section{break-inside:avoid!important;margin:1.2rem 0!important}
body.ti-publication .ti-search .pd-directory-index h3{font-size:1.15rem!important}
body.ti-publication .ti-search .pd-directory-index ul{margin:0!important;padding:0!important;list-style:none!important}
body.ti-publication .ti-search .pd-directory-index li{padding:.25rem 0!important;font-size:.78rem!important}

/* Category and area pages keep their route facts and functional directory. */

/* Map and coach discovery are utilities but remain part of the publication. */

@media(max-width:950px){
 body.ti-publication .nav-links{display:none!important}
 body.ti-publication .nav-burger{display:flex!important;flex-direction:column!important;justify-content:center!important;align-items:center!important;gap:4px!important}
 body.ti-publication .nav-mobile:not([hidden]){display:block!important;background:var(--ti-paper)!important;color:var(--ti-ink)!important;border-bottom:1px solid var(--ti-ink)!important;padding:1rem 32px 1.5rem!important}
 body.ti-publication .nav-mobile-group{display:block!important;margin:1rem 0 .35rem!important;color:var(--ti-link)!important;font:700 .7rem/1.3 Geist,sans-serif!important;letter-spacing:.1em!important;text-transform:uppercase!important}
 body.ti-publication .nav-mobile-link{display:block!important;padding:.62rem 0!important;border-bottom:1px solid var(--ti-line)!important;color:var(--ti-ink)!important;font-weight:700!important;text-decoration:none!important}
}
@media(max-width:700px){
 body.ti-publication .nav-row{width:calc(100% - 36px)!important;min-height:76px!important}
 body.ti-publication .footer-wrap{width:calc(100% - 36px)!important}
 body.ti-publication .footer-nav{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:1.8rem!important}
 body.ti-publication .ti-publication h2{font-size:2.35rem!important}
 body.ti-publication .ti-publication{grid-template-columns:1fr!important;gap:1.3rem!important;padding:2.5rem 0!important}
 body.ti-publication main.ti-search{width:calc(100% - 36px)!important}
 body.ti-publication .ti-search-intro{padding:2.5rem 0 1.5rem!important}
 body.ti-publication .ti-search-intro h1{font-size:clamp(2.9rem,10vw,4rem)!important}
 body.ti-publication .ti-search-finder .pd-primary-filters{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 body.ti-publication .ti-search-finder .search-input-wrap{grid-column:1/-1!important}
 body.ti-publication .ti-search .search-results{grid-template-columns:1fr!important}
 body.ti-publication .ti-search .pd-directory-index>div{columns:2!important}
}
@media(max-width:390px){body.ti-publication .ti-search-finder .pd-primary-filters{grid-template-columns:1fr!important}body.ti-publication .ti-search .pd-directory-index>div{columns:1!important}}

/* One place card: the complete decision text stays together, with a photograph
   as supporting evidence. Unpictured places never reserve a media column. */
body.ti-publication.sports-design.publication.reference-rebuild #main .pd-result{display:flex!important;flex-direction:column!important;align-items:stretch!important;align-self:start!important;gap:0!important;min-height:0!important;height:auto!important;margin:0!important;padding:0!important;border:1px solid var(--ti-line)!important;border-top:2px solid var(--ti-ink)!important;border-radius:0!important;background:#fff!important;box-shadow:none!important;overflow:hidden!important;container-type:normal!important}
body.ti-publication.sports-design.publication.reference-rebuild #main .pd-result.no-photo{border:0!important;border-top:2px solid var(--ti-ink)!important;background:transparent!important;overflow:visible!important}
body.ti-publication.sports-design.publication.reference-rebuild #main .pd-result.is-unresolved{border-left:3px solid var(--ti-accent)!important}
body.ti-publication.sports-design.publication.reference-rebuild #main .pd-result-copy{display:flex!important;flex-direction:column!important;min-width:0!important;min-height:0!important;padding:1rem!important;gap:0!important}
body.ti-publication.sports-design.publication.reference-rebuild #main .pd-result.no-photo .pd-result-copy{padding:1rem .15rem!important}
body.ti-publication.sports-design.publication.reference-rebuild #main .pd-result-title{display:block!important;margin:0!important;padding:0!important}
body.ti-publication.sports-design.publication.reference-rebuild #main .pd-result h3{margin:0!important;font:700 clamp(1.24rem,1.8vw,1.6rem)/1.13 Geist,Geist,sans-serif!important;letter-spacing:-.035em!important;overflow-wrap:anywhere!important}
body.ti-publication.sports-design.publication.reference-rebuild #main .pd-result-location{margin:.23rem 0 0!important;color:var(--ti-muted)!important;font-size:.79rem!important;line-height:1.35!important}
body.ti-publication.sports-design.publication.reference-rebuild #main .pd-result-body{display:block!important;min-width:0!important;min-height:0!important;margin:0!important;padding:0!important;flex:none!important}
body.ti-publication.sports-design.publication.reference-rebuild #main .pd-result-distinction{display:block!important;margin:.62rem 0 0!important;padding:0!important;color:var(--ti-ink)!important;font-size:.9rem!important;line-height:1.45!important}
body.ti-publication.sports-design.publication.reference-rebuild #main .pd-status{display:inline-block!important;width:auto!important;margin:.65rem 0 0!important;padding:.25rem .45rem!important;background:#dad5ce!important;color:#55514d!important;font-size:.72rem!important;line-height:1.3!important}
body.ti-publication.sports-design.publication.reference-rebuild #main .pd-result-price{display:block!important;width:100%!important;min-width:0!important;flex:none!important;margin:.7rem 0 0!important;padding:.62rem 0 0!important;border-top:1px solid var(--ti-line)!important;background:none!important}
body.ti-publication.sports-design.publication.reference-rebuild #main .pd-price-primary{display:flex!important;flex-wrap:wrap!important;align-items:baseline!important;gap:.15rem .55rem!important;margin:0!important;padding:0!important;color:var(--ti-ink)!important}
body.ti-publication.sports-design.publication.reference-rebuild #main .pd-price-primary strong{display:inline!important;margin:0!important;color:var(--ti-ink)!important;font:700 1.2rem/1.25 Geist,Geist,sans-serif!important;letter-spacing:-.025em!important;white-space:nowrap!important}
body.ti-publication.sports-design.publication.reference-rebuild #main .pd-price-primary strong small{font:600 .79rem/1.25 Geist,sans-serif!important;letter-spacing:0!important;white-space:nowrap!important}
body.ti-publication.sports-design.publication.reference-rebuild #main .pd-product{display:inline!important;color:var(--ti-ink)!important;font:600 .77rem/1.35 Geist,sans-serif!important}
body.ti-publication.sports-design.publication.reference-rebuild #main .pd-result-price>small{display:block!important;margin-top:.25rem!important;color:var(--ti-muted)!important;font-size:.71rem!important;line-height:1.38!important}
body.ti-publication.sports-design.publication.reference-rebuild #main .pd-result-actions{display:flex!important;align-items:flex-start!important;justify-content:flex-start!important;min-height:0!important;margin:.68rem 0 0!important;padding:0!important;gap:.5rem!important;flex:none!important}
body.ti-publication.sports-design.publication.reference-rebuild #main a.pd-place-link{display:inline-flex!important;min-height:36px!important;align-items:center!important;margin:0!important;padding:0!important;border:0!important;border-bottom:1px solid var(--ti-ink)!important;border-radius:0!important;background:transparent!important;color:var(--ti-ink)!important;font:700 .79rem/1.25 Geist,sans-serif!important;text-decoration:none!important;box-shadow:none!important}
body.ti-publication.sports-design.publication.reference-rebuild #main a.pd-place-link:hover{color:var(--ti-link)!important;border-color:var(--ti-link)!important}
body.ti-publication .ti-search :is(.search-results){align-items:start!important}

/* Search opens directly on usable results. Its complete native directory and
   filter controls stay available when the browser enhancement cannot load. */
body.ti-publication.sports-design.publication.reference-rebuild #main.ti-search{width:min(calc(100% - 64px),var(--ti-width))!important;max-width:none!important;margin:0 auto!important;padding:0 0 4rem!important}
body.ti-publication.sports-design.publication.reference-rebuild #main.ti-search .ti-search-intro{width:100%!important;margin:0!important;padding:clamp(1.4rem,2.5vw,2.6rem) 0 1rem!important;border:0!important}
body.ti-publication.sports-design.publication.reference-rebuild #main.ti-search .ti-search-intro h1{max-width:none!important;margin:0 0 .4rem!important;font:700 clamp(2.15rem,4vw,3.8rem)/1.05 Geist,Geist,sans-serif!important;letter-spacing:-.055em!important}
body.ti-publication.sports-design.publication.reference-rebuild #main.ti-search .ti-search-intro p{max-width:72ch!important;margin:0!important;color:var(--ti-muted)!important;font-size:.96rem!important;line-height:1.45!important}
body.ti-publication.sports-design.publication.reference-rebuild #main.ti-search .ti-search-finder{margin:0!important;padding:.5rem 0 .7rem!important;border-bottom:1px solid var(--ti-line)!important}
body.ti-publication.sports-design.publication.reference-rebuild #main.ti-search .pd-primary-filters{display:grid!important;grid-template-columns:minmax(250px,1.7fr) repeat(2,minmax(140px,.8fr))!important;gap:.65rem!important;align-items:end!important;margin:0!important;padding:0!important}
body.ti-publication.sports-design.publication.reference-rebuild #main.ti-search .search-input-wrap{grid-column:1!important;grid-row:1!important;display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:0 .45rem!important;align-items:end!important}
body.ti-publication.sports-design.publication.reference-rebuild #main.ti-search .search-input-wrap label{grid-column:1/-1!important}
body.ti-publication.sports-design.publication.reference-rebuild #main.ti-search .pd-primary-filters>label{margin:0!important;font-size:.72rem!important}
body.ti-publication.sports-design.publication.reference-rebuild #main.ti-search .pd-primary-filters label span{margin:0 0 .2rem!important}
body.ti-publication.sports-design.publication.reference-rebuild #main.ti-search :is(.pd-primary-filters select,.pd-primary-filters input[type=search]){height:44px!important;min-height:44px!important;margin:0!important;padding:.45rem .65rem!important;font-size:.88rem!important}
body.ti-publication.sports-design.publication.reference-rebuild #main.ti-search .search-filter-toggle{height:44px!important;min-height:44px!important;margin:0!important;padding:.45rem .7rem!important;font-size:.75rem!important}
body.ti-publication.sports-design.publication.reference-rebuild #main.ti-search .pd-result-section{margin:0!important;padding:.5rem 0 2.25rem!important;border:0!important}
body.ti-publication.sports-design.publication.reference-rebuild #main.ti-search .search-stats{margin:0 0 .55rem!important;color:var(--ti-muted)!important;font-size:.78rem!important;line-height:1.4!important}
body.ti-publication.sports-design.publication.reference-rebuild #main.ti-search .search-results{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:.8rem!important;align-items:start!important}
body.ti-publication.sports-design.publication.reference-rebuild #main.ti-search .ti-visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
body.ti-publication.sports-design.publication.reference-rebuild #main.ti-search .pd-directory-index{margin-top:.3rem!important}
@media(max-width:760px){
 body.ti-publication.sports-design.publication.reference-rebuild #main.ti-search{width:calc(100% - 36px)!important;margin-inline:auto!important}
 body.ti-publication.sports-design.publication.reference-rebuild #main.ti-search .ti-search-intro{padding:1rem 0 .6rem!important}
 body.ti-publication.sports-design.publication.reference-rebuild #main.ti-search .ti-search-intro h1{font-size:2.18rem!important;line-height:1.04!important;margin-bottom:.3rem!important}
 body.ti-publication.sports-design.publication.reference-rebuild #main.ti-search .ti-search-intro p{font-size:.87rem!important;line-height:1.42!important}
 body.ti-publication.sports-design.publication.reference-rebuild #main.ti-search .ti-search-finder{padding:.35rem 0 .55rem!important}
 body.ti-publication.sports-design.publication.reference-rebuild #main.ti-search .pd-primary-filters{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:.45rem!important}
 body.ti-publication.sports-design.publication.reference-rebuild #main.ti-search .search-input-wrap{grid-column:1/-1!important;grid-row:1!important}
 body.ti-publication.sports-design.publication.reference-rebuild #main.ti-search .pd-primary-filters>label{grid-row:2!important}
 body.ti-publication.sports-design.publication.reference-rebuild #main.ti-search .search-results{grid-template-columns:1fr!important;gap:.45rem!important}
 body.ti-publication.sports-design.publication.reference-rebuild #main.ti-search .pd-result-section{padding:.4rem 0 1.5rem!important}
}

/* Place-first taxonomy pages. Keep the introduction, one filter group and
   actual results in a single reading sequence across category and area routes. */

/* Training Index venue profile. Load after the earlier venue layers. */
/* The retired global heading rule carries !important and three body classes. */

/* Training Index · guide system. Appended after the retired guide layers. */

/* Retired ranked-guide selectors have extra specificity and once made these
   two essential lines nearly white against the new chalk cover. */

/* The earlier dark-cover shortcut colour is too pale on this paper cover. */

/* Guide index: a searchable catalogue, not another article cover. */

/* Training Index / publication and utility pages. This file is appended to
   the shared stylesheet by the final build; all rules are scoped to support
   routes so ordinary directory and article pages keep their own templates. */

/* The people and their genuine portrait are the opening, not a second panel
   after an abstract masthead. */

/* A usable contact route without a six-card social dashboard. */

/* The human index stays dense and useful. Legacy tools get one quiet line. */

/* Downloads and evidence remain open and readable, without tile-heavy chrome. */

/* Press writer owns figures and assets; this supplies the publication rhythm. */

/* The data index has its own generator and inline CSS. More specific rules
   align that independent rendering path without changing its byte contract. */

/* Historical changelog keeps its entries, with current publication chrome. */

/* REFERENCE-REBUILD:END */
