/* ============================================================================
   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 #cbff3c) 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) ============ */
@font-face {
  font-family: "Space Grotesk";
  font-style: normal; font-weight: 300 700; font-display: optional;
  src: url("/fonts/space-grotesk.woff2?v=562") format("woff2-variations");
}
@font-face { font-family: "Inter"; font-style: normal; font-weight: 400; font-display: optional; src: url("/fonts/inter-400.woff2?v=562") format("woff2"); }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 500; font-display: optional; src: url("/fonts/inter-500.woff2?v=562") format("woff2"); }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 600; font-display: optional; src: url("/fonts/inter-600.woff2?v=562") format("woff2"); }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 700; font-display: optional; src: url("/fonts/inter-700.woff2?v=562") format("woff2"); }
@font-face { font-family: "JetBrains Mono"; font-style: normal; font-weight: 500; font-display: optional; src: url("/fonts/jetbrains-mono-500.woff2?v=562") format("woff2"); }
@font-face { font-family: "JetBrains Mono"; font-style: normal; font-weight: 600; font-display: optional; src: url("/fonts/jetbrains-mono-600.woff2?v=562") format("woff2"); }
@font-face { font-family: "JetBrains Mono"; font-style: normal; font-weight: 700; font-display: optional; src: url("/fonts/jetbrains-mono-700.woff2?v=562") format("woff2"); }

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

  --canvas:        #f7f8f3;
  --sunken:        #edf0e5;
  --ink:           #14180f;
  --ink-muted:     #5b6151;
  --ink-subtle:    #6b7262;
  --line-strong:   #c6ccb6;

  /* S2-H1, 2026-07-29 - control boundary.
     --line (#dfe3d4) 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. #7f8775 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:  #7f8775;

  /* Dark panel — footer, dark bands */
  --panel:         #171c11;
  --panel-sunken:  #10140b;
  --panel-line:    #2b3223;
  --panel-ink:     #f2f4ec;
  --panel-muted:   #9aa38d;
  --panel-subtle:  #7e876f;

  /* Status roles — not brand colours */
  --ok:      #4ade80; --ok-ink:     #2f6b1f;
  --warn:    #ffb020; --warn-ink:   #795000;
  --info:    #38bdf8; --info-ink:   #0678aa;
  --danger:  #f87171; --danger-ink: #b42318;

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

  --text:        #14180f;
  --text-2:      #5b6151;
  --muted:       #5b6151;
  --text-muted:  #5b6151;  /* was referenced on 15 pages but never declared */
  --hint:        #6b7262;
  --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:   #3f6212;
  --mint:   #3f6212;
  --pink:   #4c5f00;
  --yellow: #4c5f00;
  --red:    #b42318;
  --orange: #9e6600;

  /* 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(20, 24, 15, 0.06);
  --glow-cyan:   0 1px 2px rgba(20, 24, 15, 0.06);
  --glow-yellow: 0 1px 2px rgba(20, 24, 15, 0.06);
  --glow-mint:   0 1px 2px rgba(20, 24, 15, 0.06);
  --glow-red:    0 1px 2px rgba(20, 24, 15, 0.06);

  /* ---- Faces ---- */
  --font-display: "Space Grotesk", "Inter", system-ui, -apple-system, sans-serif;
  --font-body:    "Inter", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
  --font-mono:    "JetBrains Mono", 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(20, 24, 15, 0.05);
  --shadow-soft:   0 1px 2px rgba(20, 24, 15, 0.05), 0 8px 24px rgba(20, 24, 15, 0.06);
  --shadow-raised: 0 2px 4px rgba(20, 24, 15, 0.07), 0 16px 40px rgba(20, 24, 15, 0.10);
  --shadow-card:   var(--shadow-soft);
  --panel-soft:    #202719;

  /* ---- 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, textarea { 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);
}
.brand .dot { color: var(--brand-ink); }

.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-tools-link { color: var(--ink-subtle) !important; }
.nav-tools-link:hover { color: var(--ink) !important; }

.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(20, 24, 15, 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; }
.nav-mobile-cta {
  margin-top: var(--s-3);
  display: block; text-align: center;
  background: var(--accent); color: var(--ink);
  font-weight: 700; padding: 0.8rem 1rem;
  border-radius: var(--r-pill);
}
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(203, 255, 60, 0.16) 0%, rgba(203, 255, 60, 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-primary {
  background: var(--accent); color: var(--ink);
  border-color: rgba(20, 24, 15, 0.18);
  box-shadow: 0 1px 0 rgba(20, 24, 15, 0.14), 0 8px 18px rgba(76, 95, 0, 0.10);
}
.btn-primary:hover { background: var(--ink); color: #fff; border-color: var(--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 {
  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 {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-flat);
}

/* ============ GRIDS ============ */
 .guide-hub-grid, .favorites-list {
  display: grid;
  gap: var(--s-4);
  grid-template-columns: 1fr;
}
@media (min-width: 640px) {
   .guide-hub-grid, .favorites-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 980px) {
   .guide-hub-grid, .favorites-list {
    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);
}
.cat-venue-card.is-unresolved,
.result-card.is-unresolved { border-color: color-mix(in srgb, var(--warn-ink) 34%, var(--line)); }
.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-favorites-widget {
  position: fixed;
  z-index: 85;
  right: max(var(--s-5), env(safe-area-inset-right));
  bottom: calc(max(var(--s-5), env(safe-area-inset-bottom)) + 56px);
}
.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 */
.recently-viewed {
  margin-top: var(--s-10); padding-top: var(--s-6);
  border-top: 1px solid var(--line);
}
.recently-viewed-h {
  font-family: var(--font-mono); font-size: var(--text-2xs); font-weight: 600;
  text-transform: uppercase; letter-spacing: 0.12em;
  color: var(--ink-subtle); margin-bottom: var(--s-3);
}
.recently-viewed-list { display: flex; flex-wrap: wrap; gap: var(--s-2); }
.recently-viewed-item {
  font-size: var(--text-xs);
  background: var(--surface); border: 1px solid var(--line);
  border-radius: var(--r-pill); padding: 0.3rem 0.7rem;
  color: var(--ink-muted);
}
.recently-viewed-item:hover { border-color: var(--brand-ink); color: var(--brand-ink); }

/* ============ 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 ============ */
.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); }

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

/* ============ 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(20, 24, 15, 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. */

/* ============================================================================
   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);
}
.footer-top {
  display: grid;
  gap: var(--s-10);
  grid-template-columns: 1fr;
}
@media (min-width: 900px) {
  .footer-top { grid-template-columns: minmax(0, 1fr) 2fr; gap: var(--s-16); }
}

/* --- Brand block --- */
.footer-brand {
  display: inline-flex; align-items: center; gap: 0.6rem;
  font-family: var(--font-display);
  font-size: 1.16rem; font-weight: 700; letter-spacing: -0.03em;
  color: var(--panel-ink);
}
.footer-mark {
  width: 34px; height: 34px; flex-shrink: 0;
  border-radius: 10px;
  background: var(--accent);
  box-shadow: inset 0 0 0 5px var(--panel), inset 0 0 0 7px var(--accent);
}
.footer-brand .accent { color: var(--brand-bright); }
.footer-desc {
  margin-top: var(--s-4);
  max-width: 34ch;
  font-size: var(--text-sm);
  line-height: 1.65;
  color: var(--panel-muted);
}
.footer-desc strong { color: var(--panel-ink); font-weight: 600; }
.footer-people { display: flex; align-items: center; gap: var(--s-3); margin-top: var(--s-4); }
.footer-people-photo { width: 48px; height: 48px; flex: 0 0 48px; overflow: hidden; border: 1px solid var(--panel-line); border-radius: 50%; background: var(--panel-soft); }
.footer-people-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 42%; }
.footer-publisher-copy { display: grid; gap: 0.12rem; color: var(--panel-muted); font-size: var(--text-sm); line-height: 1.45; }
.footer-publisher-copy strong { color: var(--panel-ink); font-weight: 700; }
.footer-publisher-copy a { justify-self: start; color: var(--brand-bright); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.footer-contact {
  display: flex; flex-wrap: wrap; gap: 0.45rem 1rem;
  margin-top: var(--s-4);
  font-size: var(--text-sm);
}
.footer-contact a { display: inline-flex; align-items: center; min-height: 44px; color: var(--panel-ink); text-decoration: underline; text-underline-offset: 3px; }
.footer-contact a:hover { color: var(--brand-bright); }
.footer-social {
  display: flex; align-items: center; gap: var(--s-2);
  margin-top: var(--s-4);
}
.footer-social-btn {
  display: grid; place-items: center;
  width: 44px; height: 44px;
  border-radius: 50%;
  border: 1px solid var(--panel-line);
  color: var(--panel-muted);
  transition: border-color var(--t-fast) var(--easing), color var(--t-fast) var(--easing);
}
.footer-social-btn:hover { border-color: var(--brand-bright); color: var(--brand-bright); }
.footer-social-btn svg { width: 16px; height: 16px; }

/* --- 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-base {
  margin-top: var(--s-12);
  padding-top: var(--s-6);
  border-top: 1px solid var(--panel-line);
  display: flex; flex-direction: column; gap: var(--s-3);
  font-size: var(--text-xs);
  color: var(--panel-muted);
}
@media (min-width: 640px) {
  .footer-base { flex-direction: row; align-items: center; justify-content: space-between; }
}
.footer-legal { display: flex; flex-wrap: wrap; align-items: center; gap: 0 1.1rem; }
.footer-legal :where(a, button) {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  color: var(--panel-muted);
}
.footer-legal button {
  padding: 0;
  border: 0;
  background: transparent;
  font: inherit;
  cursor: pointer;
}
.footer-legal :where(a, button):hover { color: var(--brand-bright); }
.footer-note {
  margin-top: var(--s-4);
  max-width: 92ch;
  font-size: var(--text-xs);
  line-height: 1.6;
  color: var(--panel-subtle);
}
.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. */
.dot { color: var(--brand-ink); }
.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, .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; }
.footer-brand { gap: 0; }
.footer-mark { margin-right: 0.6rem; }

/* 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 {
  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, .footer-mark {
  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. --- */

/* Bare `.accent` is a heading highlight everywhere except the footer wordmark. */
.accent { color: var(--brand-ink); }
.footer-brand .accent { color: var(--brand-bright); }

/* The markup uses `.active`, not `.is-active`. Support both rather than
   rewriting a class name that three scripts toggle. */

/* Native select/checkbox controls were completely unstyled. */

/* The search field's icon was a 🔍 emoji. Same glyph, drawn in CSS: monochrome,
   brand-colourable, and sized against the type scale. */

/* 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. */

/* --- 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(23, 28, 17, .97);
  border: 1px solid var(--panel-line);
  border-radius: var(--r-xl);
  box-shadow: 0 24px 70px rgba(20, 24, 15, .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: #8b967e; }
.privacy-consent .btn-primary { background: var(--brand-bright); color: var(--ink); }

@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: #f5efe4;
  --sunken: #e9e0d2;
  --ink: #102d2d;
  --ink-muted: #536564;
  --ink-subtle: #596a69;
  --line: #d7cdbd;
  --line-soft: #e8dfd1;
  --line-strong: #aa9f8f;
  --surface: #fffdf8;
  --surface-2: #fffdf8;
  --surface-3: #e9e0d2;
  --card: #fffdf8;
  --brand: #08766d;
  --brand-ink: #075d57;
  --brand-bright: #ffc94a;
  --accent: #ffc94a;
  --accent-ink: #725100;
  --panel: #0e302d;
  --panel-sunken: #082421;
  --panel-line: #31524f;
  --panel-ink: #fff9ee;
  --panel-muted: #c1d1cc;
  --panel-subtle: #9bb3ad;
  --pg-coral: #ff765f;
  --pg-sun: #ffc94a;
  --pg-pool: #80d8dc;
  --pg-leaf: #83a844;
  --pg-night: #123c40;
  --font-body: "Space Grotesk", system-ui, -apple-system, sans-serif;
  --font-display: "Space Grotesk", system-ui, -apple-system, sans-serif;
  --font-mono: "Space Grotesk", 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-primary { background: var(--brand-ink); color: #fff; border-color: var(--brand-ink); }
body.product-redesign-2027 .btn-primary:hover { background: #064b47; border-color: #064b47; }

body.product-redesign-2027 .btn-ghost { background: transparent; color: var(--ink); border-color: #877e70; }

/* Header */
body.product-redesign-2027 .nav {
  position: sticky;
  top: 0;
  z-index: 100;
  height: 68px;
  background: rgba(255, 253, 248, 0.94);
  border-bottom: 1px solid rgba(16, 45, 45, 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 .brand .dot { color: var(--pg-coral); }
body.product-redesign-2027 .nav-links { margin-inline: auto; gap: clamp(0.8rem, 2vw, 1.65rem); }
body.product-redesign-2027 .nav-links a {
  color: #304c4a;
  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,
body.product-redesign-2027 .nav-mobile-cta {
  min-height: 42px;
  padding: 0.65rem 1.05rem;
  border: 0;
  border-radius: 999px;
  background: var(--pg-sun);
  color: #18302d;
  font-weight: 750;
  box-shadow: none;
}
body.product-redesign-2027 .nav-burger { width: 46px; height: 46px; border: 1px solid #8d897d; 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: #fffdf8;
  border-bottom: 1px solid var(--line);
  box-shadow: 0 24px 50px rgba(16, 45, 45, 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 */

/* Search and discovery */

/* 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: #0d302d; color: #fff8ec; }
body.product-redesign-2027 .footer-wrap { max-width: 1240px; padding-inline: clamp(1rem, 4vw, 2rem); }
body.product-redesign-2027 .footer-top { display: grid; grid-template-columns: minmax(280px, .9fr) minmax(0, 1.55fr); gap: clamp(2rem, 6vw, 5rem); }
body.product-redesign-2027 .footer-brand { color: #fff; font-size: 1.35rem; letter-spacing: -.045em; }
body.product-redesign-2027 .footer-mark { width: 14px; height: 14px; border: 0; border-radius: 50%; background: #ffc94a; }
body.product-redesign-2027 .footer-desc { max-width: 340px; margin-top: .8rem; color: #c9d9d4; font-size: .9rem; line-height: 1.55; }
body.product-redesign-2027 .footer-people { margin-top: 1.1rem; }
body.product-redesign-2027 .footer-people-photo { width: 44px; height: 44px; }
body.product-redesign-2027 .footer-publisher-copy p { color: #c9d9d4; font-size: .76rem; }
body.product-redesign-2027 .footer-publisher-copy strong { color: #fff; }
body.product-redesign-2027 .footer-publisher-copy a { color: #ffe29a; }
body.product-redesign-2027 .footer-contact { display: flex; flex-wrap: wrap; gap: .5rem 1rem; margin-top: 1rem; }
body.product-redesign-2027 .footer-contact a { min-height: 38px; color: #fff; font-size: .76rem; }
body.product-redesign-2027 .footer-social { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: .8rem; }
body.product-redesign-2027 .footer-social-btn { display: inline-flex; width: auto; min-width: 44px; height: 44px; align-items: center; gap: .4rem; padding: 0 .65rem; border: 1px solid #4a6965; border-radius: 999px; color: #e9f2ef; }
body.product-redesign-2027 .footer-social-btn svg { width: 15px; height: 15px; }
body.product-redesign-2027 .footer-social-btn span { font-size: .68rem; font-weight: 650; }
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: #ffc94a; 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: #d8e5e1; font-size: .79rem; }
body.product-redesign-2027 .footer-base { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-top: 2rem; padding-top: 1.15rem; border-top: 1px solid #365652; }
body.product-redesign-2027 .footer-base > p:first-child,
body.product-redesign-2027 .footer-updated-line,
body.product-redesign-2027 .footer-note { color: #aebfba; font-size: .68rem; line-height: 1.55; }
body.product-redesign-2027 .footer-legal { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .5rem 1rem; }
body.product-redesign-2027 .footer-legal a { min-height: 32px; color: #dce8e4; font-size: .7rem; }
body.product-redesign-2027 .footer-updated-line { margin-top: .6rem; }
body.product-redesign-2027 .footer-note { max-width: 720px; margin-top: .25rem; }

@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-desc,
  body.product-redesign-2027 .footer-people,
  body.product-redesign-2027 .footer-contact,
  body.product-redesign-2027 .footer-social { margin-top: .5rem; }
  body.product-redesign-2027 .footer-publisher-copy { font-size: .7rem; line-height: 1.3; }
  body.product-redesign-2027 .footer-social-btn { width: 44px; justify-content: center; padding: 0; }
  body.product-redesign-2027 .footer-social-btn span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  body.product-redesign-2027 .footer-base { margin-top: 1rem; padding-top: .75rem; }
  body.product-redesign-2027 .footer-updated-line { margin-top: .35rem; }
  body.product-redesign-2027 .footer-note { margin-top: .2rem; }
}

/* 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 #44635f;
  border-radius: 16px;
  background: #0d302d;
  color: #fff;
  box-shadow: 0 20px 55px rgba(3,25,23,.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: #c7d8d3; font-size: .72rem; line-height: 1.4; }
body.product-redesign-2027 .privacy-consent-copy a { flex: 0 0 auto; color: #ffe096; 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: #829a95; color: #fff; }
body.product-redesign-2027 .privacy-consent .btn-primary { background: #ffc94a; border-color: #ffc94a; color: #17312f; }

@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; }
}

@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.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-top { grid-template-columns: 1fr; gap: .75rem; }
  body.product-redesign-2027 .footer-desc { margin-top: .45rem; font-size: .78rem; }
  body.product-redesign-2027 .footer-people { margin-top: .55rem; }
  body.product-redesign-2027 .footer-people-photo { width: 40px; height: 40px; flex-basis: 40px; }
  body.product-redesign-2027 .footer-publisher-copy { font-size: .7rem; line-height: 1.3; }
  body.product-redesign-2027 .footer-contact { margin-top: .55rem; }
  body.product-redesign-2027 .footer-social { flex-wrap: nowrap; margin-top: .45rem; }
  body.product-redesign-2027 .footer-social-btn { width: 44px; height: 44px; justify-content: center; padding: 0; }
  body.product-redesign-2027 .footer-social-btn span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  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-base { margin-top: .75rem; padding-top: .5rem; }
  body.product-redesign-2027 .footer-base { flex-direction: column; }
  body.product-redesign-2027 .footer-legal { justify-content: flex-start; gap: .35rem .875rem; }
  body.product-redesign-2027 .footer-legal a { min-height: 28px; }
  body.product-redesign-2027 .footer-updated-line { margin-top: .25rem; }
  body.product-redesign-2027 .footer-note { margin-top: .15rem; }

  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.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:#163b32;--brand-ink:#163b32;--brand-bright:#edf1e9;--accent:#163b32;--accent-ink:#163b32;--canvas:#f7f7f0;--surface:#fff;--surface-2:#edf1e9;--surface-3:#edf1e9;--sunken:#edf1e9;--ink:#142d27;--ink-muted:#58685e;--ink-subtle:#58685e;--text:#142d27;--text-2:#58685e;--muted:#58685e;--hint:#58685e;--text-muted:#58685e;--line:#dce2d8;--line-strong:#bac7b7;--line-control:#bac7b7;--pink:#163b32;--cyan:#163b32;--mint:#163b32;--yellow:#f6dda3;--font-body:Inter,Arial,sans-serif;--font-display:Inter,Arial,sans-serif;--font-mono:Inter,Arial,sans-serif;--max:1240px;--r-lg:16px;--r-pill:10px}
body.reference-rebuild{background:var(--canvas);color:var(--ink);font-family:Inter,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:Inter,Arial,sans-serif;color:var(--ink);letter-spacing:-.035em;line-height:1.2}
body.reference-rebuild :focus-visible{outline:3px solid #163b32;outline-offset:4px}
body.reference-rebuild button,body.reference-rebuild input,body.reference-rebuild select,body.reference-rebuild textarea{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 .brand .dot{color:inherit}
body.reference-rebuild .nav-links{gap:22px;margin-left:auto}body.reference-rebuild .nav-links a{font-size:14px;font-weight:600;color:#142d27;padding:14px 0}
body.reference-rebuild .nav-links a:hover{color:var(--brand)}body.reference-rebuild .nav-cta{background:#edf1e9;color:#163b32;border:1px solid #dce2d8;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{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-primary{background:var(--brand);border-color:var(--brand);color:#fff}
body.reference-rebuild .btn-ghost{background:#fff;color:var(--ink);border-color:var(--line-strong)}
body.reference-rebuild .btn-primary:hover{background:#163b32;color:#fff}body.reference-rebuild .btn-ghost:hover{background:#edf1e9;color:#142d27}
/* 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 #142d2708;border-color:#bac7b7}
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:#58685e;border:1px solid #dce2d8;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:#edf1e9;border:1px solid #dce2d8;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:#edf1e9;color:var(--brand);border-color:#bac7b7}body.reference-rebuild .favorite-btn.is-saved,body.reference-rebuild .favorite-btn[aria-pressed=true]{background:#edf1e9;border-color:#bac7b7;color:#163b32}
.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:#58685e;background:#edf1e9}.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 .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 #pg-compare-tray{position:fixed;display:flex;align-items:center;justify-content:space-between;gap:12px;left:50%;bottom:24px;transform:translateX(-50%);width:max-content;max-width:calc(100% - 32px);padding:8px;background:#142d27;color:#fff;border:1px solid #58685e;border-radius:12px;z-index:76;box-shadow:0 4px 28px #142d2730}body.reference-rebuild #pg-compare-tray a{color:#fff;min-height:44px}#pg-compare-tray button{min-height:44px;color:#fff;border:1px solid #8191a7;background:transparent}
.pg-toast{position:fixed;top:88px;left:50%;transform:translateX(-50%);z-index:110;max-width:calc(100% - 32px);width:max-content;padding:14px 18px;border:1px solid #58685e;border-radius:10px;background:#142d27;color:#fff;font-size:14px;line-height:1.5;box-shadow:0 4px 18px #142d2726;pointer-events:none;opacity:0;transition:opacity .16s ease}.pg-toast.show{opacity:1}
@media(max-width:767px){body.reference-rebuild #pg-compare-tray{width:auto;transform:none;bottom:calc(78px + env(safe-area-inset-bottom))!important}.pg-toast{top:80px}}
/* Publishing surfaces and consent. */
body.reference-rebuild .footer{background:#142d27;color:#fff;padding:52px 0 28px;border-radius:0;margin:0;border:0}body.reference-rebuild .footer-wrap{max-width:1240px;padding-inline:28px}.footer-top{gap:60px}body.reference-rebuild .footer-brand{font-size:27px;color:#fff;letter-spacing:-.03em}.footer-brand .accent{color:#fff}.footer-mark{background:transparent;border:0;box-shadow:none}.footer-mark:before{display:none}.footer-mark img{width:34px;height:34px;filter:brightness(0) invert(1)}body.reference-rebuild .footer-desc{font-size:15px;color:#bac7b7;line-height:1.8;max-width:390px}body.reference-rebuild .footer-nav a,body.reference-rebuild .footer-contact a{font-size:14px;line-height:1.8;color:#dce2d8}body.reference-rebuild .footer-col-h{font-size:13px!important;color:#fff;letter-spacing:.04em}body.reference-rebuild .footer-base{border-color:#ffffff25;color:#bac7b7;font-size:12px}.footer-note,.footer-updated-line,body.reference-rebuild .footer-legal a{font-size:12px;color:#bac7b7}.footer-publisher-copy p{font-size:13px;color:#bac7b7}.footer-publisher-copy a{color:#c8d8ff}.footer-social-btn{background:transparent;color:#fff;border-color:#58685e}
body.reference-rebuild #privacy-consent{background:#142d27;border:1px solid #58685e;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:#dbe5ff}#privacy-consent button{min-height:44px;font-size:13px}body.reference-rebuild #privacy-consent .btn-primary{background:#edf1e9;color:#142d27;border-color:#edf1e9}body.reference-rebuild #privacy-consent .btn-ghost{background:transparent;color:#fff;border-color:#bac7b7}
.rg-mobile-dock{display:none}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 .result-card{display:flex;grid-template-columns:none}
 body.reference-rebuild:has(.search-filter-drawer[data-open=true]){overflow:hidden}
 .rg-mobile-dock{position:fixed;bottom:0;left:0;right:0;z-index:65;display:grid;grid-template-columns:repeat(4,1fr);background:#fff;border-top:1px solid #dce2d8;min-height:64px;padding-bottom:env(safe-area-inset-bottom)}.rg-mobile-dock a{display:flex;align-items:center;justify-content:center;min-height:64px;color:#142d27;font-size:13px;font-weight:600;text-decoration:none}.rg-mobile-dock a:hover{color:var(--brand);background:#edf1e9}body.reference-rebuild #pg-favorites-widget{display:none}body.reference-rebuild #pg-compare-tray{bottom:calc(78px + env(safe-area-inset-bottom))!important;left:12px;right:12px;max-width:calc(100% - 24px);font-size:13px}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-top{display:block}.footer-nav{margin-top:32px;gap:20px}.footer-base{display:block}.footer-legal{display:flex;flex-wrap:wrap;gap:14px;margin-top:18px}.footer-note{line-height:1.8}
}
@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:#58685e}
body.reference-rebuild #pg-favorites-widget{display:none}
@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}}

/* All retained public templates use the same calm header surface. */
body.reference-rebuild .hero:not(.pg-venue-hero){background:#edf1e9!important;background-image:none!important;border:1px solid #dce2d8;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-primary{background:var(--brand)!important;border-color:var(--brand)!important;color:#fff!important}
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. */

body.reference-rebuild .hero:not(.pg-venue-hero) h1 em{color:var(--brand)!important;font-style:normal}

/* Retained publishing templates: readable text on the shared light hero. */
body.reference-rebuild .footer-mark{display:inline-flex;align-items:center;justify-content:center;flex:0 0 34px;width:34px;height:34px;margin:0 8px 0 0;background:transparent;border:0;border-radius:0}
body.reference-rebuild .footer-mark img{display:block;width:34px;height:34px;max-width:none}

@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 .result-card{border-radius:12px;background:#fff;box-shadow:none;align-self:start}

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

/* Comparison component. No dependency on legacy card or table class names. */
body .pg-compare-card-actions{display:flex;justify-self:end;gap:14px;margin:0;padding:0}
body .pg-compare-card-actions button{min-height:44px}

/* 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:#163b32;--brand-ink:#163b32;--brand-bright:#e8eee6;--accent:#163b32;--accent-ink:#163b32;--canvas:#f7f7f0;--surface:#fff;--surface-2:#edf1e9;--surface-3:#e5ebdf;--sunken:#edf1e9;--ink:#142d27;--ink-muted:#58685e;--ink-subtle:#58685e;--text:#142d27;--text-2:#58685e;--muted:#58685e;--hint:#58685e;--text-muted:#58685e;--line:#dce2d8;--line-strong:#bac7b7;--line-control:#82957f;--pink:#163b32;--cyan:#163b32;--mint:#163b32;--yellow:#d8ed72;--font-display:'Space Grotesk',Inter,Arial,sans-serif;--font-mono:Inter,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 #527338;outline-offset:4px}
body.flagship-2026 ::selection{background:#d8ed72;color:#142d27}
body.flagship-2026 :is(.wrap,.nav-row,.footer-wrap){max-width:1304px;padding-inline:32px}
body.flagship-2026 .nav{background:#f7f7f0f5;border-bottom:1px solid #dce2d8;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:#263e33;font-weight:550}
body.flagship-2026 .nav-links a[aria-current=page]{color:#163b32;border-bottom:2px solid #163b32}
body.flagship-2026 .nav-cta{background:#163b32;color:#fff;border:1px solid #163b32;border-radius:100px;padding:12px 20px;min-height:46px;font-size:13px}
body.flagship-2026 .nav-burger{border-radius:50%;background:transparent;border-color:#bac7b7}
body.flagship-2026 .nav-mobile{top:88px;background:#f7f7f0}
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-primary){background:#163b32;border-color:#163b32;color:#fff}
body.flagship-2026 :is(.btn-ghost){background:#fff;border-color:#bac7b7;color:#142d27}
body.flagship-2026 :is(.btn-primary):hover{background:#264e3c;border-color:#264e3c;color:#fff}
body.flagship-2026 :is(.btn-ghost):hover{background:#edf1e9;border-color:#82957f;color:#142d27}
body.flagship-2026 .favorite-btn{color:#163b32;background:#fff;border:1px solid #c7d2c2;border-radius:100px;min-height:44px;box-shadow:none}
body.flagship-2026 .favorite-btn:is(.is-saved,[aria-pressed=true]){color:#163b32;background:#d8ed72;border-color:#c5d966}
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:#e9eddf!important;background-image:none!important;border-color:#dce2d8;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:#163b32!important}
body.flagship-2026 .hero:not(.pg-venue-hero) .btn-primary{background:#163b32!important;border-color:#163b32!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:#dce2d8;box-shadow:none;background:white}
body.flagship-2026 .pg-place-card:hover{border-color:#a3b69a;box-shadow:0 12px 32px #163b3209}
body.flagship-2026 .jump-nav-pills a{color:#163b32;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:#e9eddf;border-top:1px solid #d7dfcf;color:#142d27;padding-block:64px 32px}
body.flagship-2026 .footer-top{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:90px}
body.flagship-2026 .footer-brand{font-family:var(--font-display);font-size:30px;font-weight:600;letter-spacing:-1.3px;color:#163b32}
body.flagship-2026 .footer-brand .accent{color:#163b32}
body.flagship-2026 .footer-mark,body.flagship-2026 .footer-mark img{width:40px;height:40px;flex-basis:40px}
body.flagship-2026 .footer-mark img{filter:none}
body.flagship-2026 .footer-desc{font-size:16px;line-height:1.75;color:#58685e;max-width:390px}
body.flagship-2026 .footer-col-h{font-family:Inter,Arial,sans-serif;font-size:13px;font-weight:650;color:#163b32}
body.flagship-2026 .footer-col a{font-size:14px;color:#38503e;padding-block:8px}
body.flagship-2026 :is(.footer-contact a,.footer-publisher-copy a,.footer-legal a){color:#163b32}
body.flagship-2026 .footer-social-btn{border-radius:100px;background:transparent;border-color:#b8c6af;color:#163b32}
body.flagship-2026 :is(.footer-base,.footer-updated-line,.footer-note,.footer-publisher-copy p){color:#58685e;border-color:#cbd6c2}
body.flagship-2026 .footer-base>p:first-child{color:#58685e;font-size:12px;line-height:1.7}
body.flagship-2026 .footer-publisher-copy strong{color:#163b32}
body.flagship-2026 .footer-people-photo{border-radius:50%;overflow:hidden}
@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}body.flagship-2026 .footer-top{gap:45px}}
@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:#163b32}
 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 .footer-top{display:block}
 body.flagship-2026 .footer-desc{font-size:15px}
 body.flagship-2026 .rg-mobile-dock{min-height:72px;background:#f7f7f0f7;border-color:#d1daca;backdrop-filter:blur(16px);padding-top:4px}
 body.flagship-2026 .rg-mobile-dock a{min-height:68px;flex-direction:column;gap:4px;color:#58685e;font-size:10px;font-weight:600;line-height:1.3;padding-block:8px}
 body.flagship-2026 .rg-mobile-dock svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
 body.flagship-2026 .rg-mobile-dock a[aria-current=page]{color:#163b32;background:#e6eddd}
 body.flagship-2026 .rg-mobile-dock a:hover{color:#163b32;background:#e6eddd}
 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(#pg-compare-tray,.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:#163b32;
  --ft-ink:#142d27;
  --ft-canvas:#f7f7f0;
  --ft-white:#fff;
  --ft-line:#dce2d8;
  --ft-control:#83978c;
  --ft-muted:#58685e;
  --ft-lime:#d8ed72;
  --ft-soft:#edf2e8;
  --ft-heading:'Space Grotesk',Inter,Arial,sans-serif;
}

/* Search: one clear search surface above a calm two-column directory. */
/* 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. */

/* Save/Remove labels stay in the accessibility tree when the control is icon-only. */

/* 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}
body.flagship-2026 #favorites-list {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}
body.flagship-2026 #favorites-empty {max-width:none;margin:0;padding:36px;border:1px solid var(--ft-line);border-radius:24px;background:var(--ft-white);color:var(--ft-ink)}
body.flagship-2026 #favorites-empty h2 {font-size:30px;line-height:1.25}
body.flagship-2026 #favorites-empty p {max-width:700px;font-size:16px;line-height:1.7;color:var(--ft-muted)}

/* 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: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 Inter,Arial,sans-serif;box-shadow:none}
body.flagship-2026:has(#favorites-section) #main>.hero .btn-primary {background:var(--ft-forest)!important;border-color:var(--ft-forest)!important;color:var(--ft-white)!important}
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:1100px) {
  body.flagship-2026 #favorites-list {grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:1000px) {
  body.flagship-2026:has(#favorites-section) #main>.hero {margin-inline:32px}
}
@media(max-width:767px) {
  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}
  body.flagship-2026 #favorites-list {grid-template-columns:1fr;gap:20px}
  body.flagship-2026 #favorites-empty {padding:28px 22px}
  body.flagship-2026 #favorites-empty h2 {font-size:26px}
}
@media(max-width:540px) {
  body.flagship-2026 .pg-compare-card-actions {justify-self:end;gap:12px}
  body.flagship-2026 .pg-compare-card-actions .pg-compare-link-button {min-height:44px;padding:6px 0;font-size:13px}
}

/* 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:#17281f;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,#071c13e8);pointer-events:none}
body.flagship-2026 .pg-video-stage iframe{width:100%;height:100%;position:absolute;inset:0;border:0;background:#17281f;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 Inter,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:#193d32;--publication-paper:#f7f7f0;--publication-line:#ced5c9;color:var(--publication-ink);background:var(--publication-paper)}
.publication .pg-icon{width:20px;height:20px;display:inline-block;vertical-align:middle;flex:none}.publication a{ text-underline-offset:4px}.publication :focus-visible{outline:3px solid #456c24;outline-offset:4px}.publication :target{scroll-margin-top:110px}.publication h1,.publication h2,.publication h3{font-family:'Space Grotesk',Inter,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:#d9ed85;color:#193d32}.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:#c7d1bf!important;overflow:hidden}.publication .result-card:before{display:none!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 .footer{border-top:1px solid #cbd5c3}.publication .back-to-top{font-size:0}.publication .back-to-top .pg-icon{font-size:16px}
@media(min-width:1000px){.publication .result-card{display:flex!important;flex-direction:column!important}.publication .result-card-photo{order:0}}
@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 .pg-compare-card-actions{display:flex;flex-wrap:wrap;gap:10px}.publication .pg-compare-link-button{min-height:44px}.publication .pg-compare-tray{bottom:85px}@media(min-width:761px){.publication .pg-compare-tray{bottom:15px}}

.publication button{font-family:Inter,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 .pg-compare-tray{position:static!important;transform:none!important;width:auto!important;max-width:1240px;margin:20px auto 90px!important}.publication .result-card{padding:18px!important;gap:8px!important}.publication .pg-compare-card-actions{gap:12px}
@media(max-width:760px){.publication .result-card{padding:15px!important}.publication .pg-compare-card-actions{grid-column:1/-1;gap:18px}.publication .pg-compare-card-actions button{padding:6px 0;min-height:44px}.publication .pg-compare-tray{margin:16px 20px 88px!important}}.publication .favorite-list-card{min-height:0!important}.publication .favorite-list-card .cat-venue-desc{display:none}

/* 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}
/* 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:#171b20;--vc-muted:#555d65;--vc-line:#d9dde0;--vc-accent:#b9360c;--vc-paper:#fff;--ink:#171b20;--paper:#fff;--brand:#171b20;--accent:#b9360c;background:#fff!important;color:var(--vc-ink)!important;font-family:Inter,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:Inter,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 #bf3a13!important;outline-offset:5px!important}.sports-layout svg{flex:none}.sports-layout .pg-icon{width:22px!important;height:22px!important;vertical-align:middle}.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,.sports-layout .footer-mark img{filter:grayscale(1) brightness(.35)}.sports-layout .brand-wordmark{font-family:Inter,Arial,sans-serif!important;font-size:25px!important;font-weight:700!important;letter-spacing:-1.3px!important;color:#171b20!important}.sports-layout .brand .dot{color:#b9360c!important}.sports-layout .nav-links{gap:24px!important}.sports-layout .nav-links a{font-family:Inter,Arial,sans-serif!important;font-size:13px!important;font-weight:600!important;color:#333b43!important}.sports-layout .nav-cta{border-radius:3px!important;background:#171b20!important;color:white!important;font-family:Inter,Arial,sans-serif!important;font-size:13px!important;padding:12px 20px!important}.sports-layout .nav-burger{border-radius:3px!important;color:#171b20!important}.sports-layout .nav-mobile{background:#fff!important}.sports-layout .nav-mobile-link,.sports-layout .nav-mobile-group{color:#171b20!important}.sports-layout .nav-mobile-cta{background:#171b20!important;color:white!important}.sports-layout .rg-mobile-dock{background:#fff!important;border-top:1px solid #d9dde0!important}.sports-layout .rg-mobile-dock a{color:#171b20!important}.sports-layout .back-to-top{background:white!important;color:#171b20!important;border:1px solid #d9dde0!important;box-shadow:none!important}.sports-layout .favorite-btn{color:#171b20!important;border:1px solid #adb4b9!important;background:white!important;border-radius:3px!important;min-width:44px;min-height:44px}.sports-layout .favorite-btn[aria-pressed=true]{background:#171b20!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:#171b20!important}.sports-layout .publication-compact-card{padding:20px 0!important;background:none!important;border:0!important;border-top:1px solid #d9dde0!important;border-radius:0!important;box-shadow:none!important}.sports-layout .publication-compact-card h3{font-size:20px!important}.sports-layout #recently-viewed-mount{margin:28px 0}
/* 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:#f1f3f4!important;border-top:1px solid #d9dde0!important;color:#171b20!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:#394149!important}.sports-layout .footer-brand{font-family:Inter,Arial,sans-serif!important;font-weight:700!important;letter-spacing:-1px}.sports-layout .footer-top{gap:60px!important}.sports-layout .footer-desc{font-size:13px!important}.sports-layout .footer-publisher-copy p{font-size:11px!important}.sports-layout .footer-nav h2{font-size:12px!important;text-transform:uppercase;letter-spacing:.08em}.sports-layout .footer-social-btn{border-radius:3px!important;background:white!important}.sports-layout .footer-legal{font-size:11px!important}.sports-layout .progress-bar{background:#b9360c!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-wordmark{font-size:23px!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-top{gap:25px!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 .footer-brand{font-size:25px!important}.sports-layout .rg-mobile-dock{height:62px!important}.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,.sports-layout .footer-mark svg{filter:grayscale(1) brightness(.35)}
/* Visible control boundaries on white exceed 3:1. */
.sports-layout .favorite-btn,.sports-layout .nav-burger{border-color:#707980!important}
/* Focused refinement: directory first, regional feature second. */
/* Scope beats the legacy search bundle, which carries high-specificity overrides. */

@font-face{font-family:BarlowSport;src:url('/fonts/barlow-condensed-bold.woff2?v=562') format('woff2');font-weight:700;font-style:normal;font-display:swap}
body.sports-design.publication.reference-rebuild{--sp-dark:#181d20;--sp-ink:#202629;--sp-paper:#f3f0e8;--sp-acid:#dfff43;--sp-line:#d0d0c5;--brand:#252d30;--ink:#202629;--muted:#545c5b;--bg:#f3f0e8;--surface:#f3f0e8;--lime:#dfff43;--vc-line:#d0d0c5;background:#f3f0e8!important;color:#202629!important;font-family:Inter,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 #537300!important;outline-offset:4px!important}body.sports-design.publication.reference-rebuild svg.pg-icon{width:20px;height:20px}
body.sports-design.publication.reference-rebuild header.nav{background:#181d20!important;color:#f3f0e8!important;border-bottom:1px solid #414849!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-wordmark{font:700 30px/1 BarlowSport,Impact,sans-serif!important;letter-spacing:.01em!important;text-transform:uppercase!important;color:#f3f0e8!important}body.sports-design.publication.reference-rebuild .brand img{filter:brightness(0) invert(1)!important}body.sports-design.publication.reference-rebuild .brand .dot{color:#dfff43!important}
body.sports-design.publication.reference-rebuild .nav-links a{color:#eceee5!important;font-size:13px!important}body.sports-design.publication.reference-rebuild .nav-cta{background:#dfff43!important;color:#181d20!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 #69716c!important;border-radius:4px!important;background:none!important}body.sports-design.publication.reference-rebuild .nav-burger-bar{background:#f3f0e8!important}
body.sports-design.publication.reference-rebuild #nav-mobile{background:#181d20!important;color:#fff!important}body.sports-design.publication.reference-rebuild #nav-mobile a{color:#fff!important}
body.sports-design.publication.reference-rebuild .footer{background:#181d20!important;color:#e9eadf!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:#e9eadf!important}body.sports-design.publication.reference-rebuild .footer h2{font:600 12px/1.5 Inter,sans-serif!important}body.sports-design.publication.reference-rebuild .footer .brand img{filter:brightness(0) invert(1)!important}
body.sports-design.publication.reference-rebuild .pg-compare-tray{background:#dfff43!important;color:#181d20!important}body.sports-design.publication.reference-rebuild .pg-compare-tray a,body.sports-design.publication.reference-rebuild .pg-compare-tray button{color:#181d20!important}
body.sports-design.publication.reference-rebuild .sp-label{font:600 11px/1.5 Inter,sans-serif!important;letter-spacing:.11em!important;margin:0 0 12px!important}
body.sports-design.publication.reference-rebuild .sp-home{max-width:none!important;padding:0!important;margin:0!important}
body.sports-design.publication.reference-rebuild .sp-arena{position:relative;overflow:hidden;background:#181d20;color:#f3f0e8;padding:42px max(24px,calc((100vw - 1240px)/2)) 40px}
body.sports-design.publication.reference-rebuild .sp-court{position:absolute;inset:0;width:100%;height:100%;color:#69734b;opacity:.23;pointer-events:none;stroke-width:1.5}
body.sports-design.publication.reference-rebuild .sp-arena-inner{position:relative;display:grid;grid-template-columns:1.18fr 1fr;gap:80px;align-items:center}
body.sports-design.publication.reference-rebuild .sp-arena .sp-label{color:#dfff43!important}
body.sports-design.publication.reference-rebuild .sp-arena h1{font-size:clamp(68px,7.2vw,106px)!important;line-height:.91!important;letter-spacing:-.005em!important;margin:0 0 24px!important;color:#f3f0e8!important;max-width:none!important}
body.sports-design.publication.reference-rebuild .sp-arena h1 em{font-style:normal;color:#dfff43}body.sports-design.publication.reference-rebuild .sp-deck{font-size:17px;line-height:1.6;color:#e1e5dc;margin:0 0 25px}
body.sports-design.publication.reference-rebuild .sp-search{display:flex;min-height:56px;background:#f3f0e8;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 Inter,sans-serif;color:#202629;outline-offset:-4px!important}
body.sports-design.publication.reference-rebuild .sp-search button{display:flex;align-items:center;justify-content:center;gap:10px;background:#dfff43;color:#181d20;font:600 13px Inter,sans-serif;border:0;min-height:56px;padding:12px 18px;cursor:pointer}
body.sports-design.publication.reference-rebuild .sp-search svg,body.sports-design.publication.reference-rebuild .sp-map-link svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8}
body.sports-design.publication.reference-rebuild .sp-sports{padding:26px;background:#252c2d;border:1px solid #495047;border-radius:8px;box-shadow:12px 12px 0 #101517}
body.sports-design.publication.reference-rebuild .sp-sports-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px}
body.sports-design.publication.reference-rebuild .sp-sports h2{font-size:27px!important;margin:0!important;color:#f3f0e8!important}body.sports-design.publication.reference-rebuild .sp-sports-head>a{font-size:12px;color:#dfff43;text-underline-offset:4px}
body.sports-design.publication.reference-rebuild .sp-sports-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
body.sports-design.publication.reference-rebuild .sp-sports-grid a{display:flex;align-items:center;gap:13px;background:#343c3b;border:1px solid #5b635b;border-radius:4px;text-decoration:none;padding:17px 12px;min-height:72px;font-size:13px;font-weight:600;color:#f3f0e8}
body.sports-design.publication.reference-rebuild .sp-sports-grid a:hover{background:#dfff43;color:#181d20}body.sports-design.publication.reference-rebuild .sp-sports-grid svg{width:27px;height:27px;flex:none;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
body.sports-design.publication.reference-rebuild .sp-map-link{display:flex;justify-content:space-between;align-items:center;font-size:13px;text-decoration:none;margin-top:18px;color:#f3f0e8}
body.sports-design.publication.reference-rebuild .sp-area-band{display:grid;grid-template-columns:220px 1fr;gap:40px;align-items:center;background:#e8e3d8;padding:22px max(24px,calc((100vw - 1240px)/2))}
body.sports-design.publication.reference-rebuild .sp-area-band h2{font-size:24px!important;margin:0!important}body.sports-design.publication.reference-rebuild .sp-area-band h2 span{font:12px/1.5 Inter,sans-serif;text-transform:none;color:#545c5b}
body.sports-design.publication.reference-rebuild .sp-area-band>div{display:flex;flex-wrap:wrap;gap:8px}body.sports-design.publication.reference-rebuild .sp-area-band a{display:inline-flex;align-items:center;min-height:42px;border:1px solid #8d9586;border-radius:4px;padding:8px 13px;text-decoration:none;font-size:13px;background:#f3f0e8}
body.sports-design.publication.reference-rebuild .sp-discover{max-width:1240px;margin:auto;padding:48px 0}
body.sports-design.publication.reference-rebuild .sp-section-head{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:24px}body.sports-design.publication.reference-rebuild .sp-section-head h2{font-size:48px!important;margin:0!important}body.sports-design.publication.reference-rebuild .sp-section-head>a{font-size:13px;text-underline-offset:5px}
body.sports-design.publication.reference-rebuild .sp-feature-grid{display:grid;grid-template-columns:1.55fr 1fr;gap:26px}
body.sports-design.publication.reference-rebuild .sp-venue-feature{background:#fffdf6;border:1px solid #d0d0c5;border-radius:8px;overflow:hidden}
body.sports-design.publication.reference-rebuild .sp-photo-link{display:block;position:relative;overflow:hidden}body.sports-design.publication.reference-rebuild .sp-photo-link img{width:100%;height:310px;object-fit:cover;display:block}body.sports-design.publication.reference-rebuild .sp-photo-tag{position:absolute;left:20px;bottom:18px;background:#dfff43;color:#181d20;padding:8px 10px;font-size:10px;letter-spacing:.08em;font-weight:700}
body.sports-design.publication.reference-rebuild .sp-feature-info{padding:24px;display:grid;grid-template-columns:1fr 130px;gap:14px 25px}body.sports-design.publication.reference-rebuild .sp-feature-info h3{font-size:34px!important;margin:0 0 10px!important}body.sports-design.publication.reference-rebuild .sp-feature-info h3 a{text-decoration:none}body.sports-design.publication.reference-rebuild .sp-feature-info p:not(.sp-label):not(.sp-credit){font-size:13px;margin:0;line-height:1.6}
body.sports-design.publication.reference-rebuild .sp-feature-price{border-left:1px solid #c8cdc0;padding-left:20px}body.sports-design.publication.reference-rebuild .sp-feature-price strong{font:700 44px/1 BarlowSport,sans-serif;display:block}body.sports-design.publication.reference-rebuild .sp-feature-price span,body.sports-design.publication.reference-rebuild .sp-feature-price small{display:block;font-size:11px;margin-top:5px}
body.sports-design.publication.reference-rebuild .sp-primary{display:inline-flex;align-items:center;justify-content:center;min-height:46px;background:#dfff43;color:#181d20!important;padding:12px 18px;border:1px solid #bed337;border-radius:4px;font-size:13px;font-weight:700;text-decoration:none}
body.sports-design.publication.reference-rebuild .sp-feature-info .sp-primary{justify-self:start}body.sports-design.publication.reference-rebuild .sp-credit{font:11px/1.6 Inter,sans-serif!important;color:#60665b;margin:0!important;grid-column:1/-1}body.sports-design.publication.reference-rebuild .sp-credit a{text-decoration:underline}
body.sports-design.publication.reference-rebuild .sp-discipline-feature{background:#252c2d;color:#f3f0e8;border-radius:8px;overflow:hidden;display:grid;grid-template-columns:.9fr 1fr;align-items:stretch}
body.sports-design.publication.reference-rebuild .sp-discipline-feature .sp-photo-link img{height:100%;object-position:43% center}body.sports-design.publication.reference-rebuild .sp-discipline-feature .sp-photo-tag{left:10px;bottom:12px;max-width:140px;font-size:9px}
body.sports-design.publication.reference-rebuild .sp-discipline-info{padding:28px 22px;display:flex;flex-direction:column;align-items:start}body.sports-design.publication.reference-rebuild .sp-discipline-info h3{color:#f3f0e8!important;font-size:41px!important;margin:0 0 16px!important}body.sports-design.publication.reference-rebuild .sp-discipline-info>p{font-size:14px;line-height:1.65}body.sports-design.publication.reference-rebuild .sp-discipline-info>a{font-size:13px;color:#dfff43;margin:10px 0 28px}body.sports-design.publication.reference-rebuild .sp-discipline-info .sp-credit{color:#bec6b9;margin-top:auto!important}
body.sports-design.publication.reference-rebuild .sp-decision{background:#dfe8c9;padding:40px max(24px,calc((100vw - 1240px)/2));display:grid;grid-template-columns:1fr 1fr;gap:90px}
body.sports-design.publication.reference-rebuild .sp-decision h2{font-size:48px!important;margin:0 0 18px!important}body.sports-design.publication.reference-rebuild .sp-decision-title>p:not(.sp-label){font-size:15px;line-height:1.65;max-width:450px}body.sports-design.publication.reference-rebuild .sp-decision-title>div{display:flex;align-items:center;gap:22px;font-size:13px;margin-top:20px}
body.sports-design.publication.reference-rebuild .sp-decision-options{display:grid;gap:10px}body.sports-design.publication.reference-rebuild .sp-decision-options>a{display:block;padding:15px 20px;background:#f3f0e8;border:1px solid #b5bea9;border-radius:5px;text-decoration:none}body.sports-design.publication.reference-rebuild .sp-decision-options span{display:block;font-size:10px;letter-spacing:.08em;color:#545c5b}body.sports-design.publication.reference-rebuild .sp-decision-options strong{display:block;font:700 25px/1.2 BarlowSport,sans-serif;margin:6px 0}body.sports-design.publication.reference-rebuild .sp-decision-options small{font-size:12px}
/* Venue identity is a single composition, followed by a warm reading surface. */body.sports-design.publication.reference-rebuild .publication-compact-card{background:#e8e3d8!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 .fav-card{background:#fffdf6!important;border:1px solid #c6cbbb!important;border-radius:6px!important}
@media(max-width:1000px){body.sports-design.publication.reference-rebuild .sp-arena-inner{gap:35px}body.sports-design.publication.reference-rebuild .sp-sports{padding:20px}body.sports-design.publication.reference-rebuild .sp-discover{padding:36px 24px}body.sports-design.publication.reference-rebuild .sp-discipline-feature{grid-template-columns:1fr}body.sports-design.publication.reference-rebuild .sp-discipline-feature .sp-photo-link img{height:220px;object-position:center 35%}body.sports-design.publication.reference-rebuild .sp-discipline-info{padding:20px}body.sports-design.publication.reference-rebuild .sp-discipline-info h3 br{display:none}body.sports-design.publication.reference-rebuild .sp-discipline-info h3{font-size:34px!important}body.sports-design.publication.reference-rebuild .sp-discipline-info .sp-credit{margin-top:16px!important}}
@media(max-width:760px){
body.sports-design.publication.reference-rebuild .nav-row{min-height:68px!important}body.sports-design.publication.reference-rebuild .brand-wordmark{font-size:28px!important}body.sports-design.publication.reference-rebuild .brand img{width:30px!important;height:30px!important}
body.sports-design.publication.reference-rebuild .sp-arena{padding:24px 20px 28px}body.sports-design.publication.reference-rebuild .sp-arena-inner{grid-template-columns:1fr;gap:26px}body.sports-design.publication.reference-rebuild .sp-arena h1{font-size:66px!important;line-height:.94!important;margin-bottom:16px!important}body.sports-design.publication.reference-rebuild .sp-deck{font-size:15px;margin-bottom:18px}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 .sp-court{width:200%;left:-50%;opacity:.22}
body.sports-design.publication.reference-rebuild .sp-sports{padding:15px;box-shadow:6px 6px 0 #101517}body.sports-design.publication.reference-rebuild .sp-sports-head{margin-bottom:12px}body.sports-design.publication.reference-rebuild .sp-sports h2{font-size:24px!important}body.sports-design.publication.reference-rebuild .sp-sports-grid{gap:6px}body.sports-design.publication.reference-rebuild .sp-sports-grid a{padding:12px 9px;min-height:50px;font-size:12px;gap:9px}body.sports-design.publication.reference-rebuild .sp-sports-grid svg{width:22px;height:22px}body.sports-design.publication.reference-rebuild .sp-map-link{margin-top:14px;font-size:12px}
body.sports-design.publication.reference-rebuild .sp-area-band{grid-template-columns:1fr;gap:14px;padding:20px}body.sports-design.publication.reference-rebuild .sp-area-band h2 br{display:none}body.sports-design.publication.reference-rebuild .sp-area-band h2 span{display:block;margin-top:4px}body.sports-design.publication.reference-rebuild .sp-area-band a{font-size:12px;padding:7px 10px;min-height:38px}body.sports-design.publication.reference-rebuild .sp-area-band>div{gap:6px}
body.sports-design.publication.reference-rebuild .sp-discover{padding:30px 20px}body.sports-design.publication.reference-rebuild .sp-section-head{display:block;margin-bottom:18px}body.sports-design.publication.reference-rebuild .sp-section-head h2{font-size:38px!important;margin-bottom:12px!important}body.sports-design.publication.reference-rebuild .sp-feature-grid{grid-template-columns:1fr;gap:20px}body.sports-design.publication.reference-rebuild .sp-photo-link img{height:240px}body.sports-design.publication.reference-rebuild .sp-feature-info{padding:18px;grid-template-columns:1fr 90px;gap:15px}body.sports-design.publication.reference-rebuild .sp-feature-info h3{font-size:28px!important}body.sports-design.publication.reference-rebuild .sp-feature-price{padding-left:12px}body.sports-design.publication.reference-rebuild .sp-feature-price strong{font-size:36px}body.sports-design.publication.reference-rebuild .sp-feature-info .sp-primary{grid-column:1/-1;justify-self:stretch}
body.sports-design.publication.reference-rebuild .sp-discipline-feature{grid-template-columns:.8fr 1fr}body.sports-design.publication.reference-rebuild .sp-discipline-feature .sp-photo-link img{height:100%;object-position:35% center}body.sports-design.publication.reference-rebuild .sp-discipline-info{padding:20px 16px}body.sports-design.publication.reference-rebuild .sp-discipline-info h3{font-size:32px!important}body.sports-design.publication.reference-rebuild .sp-discipline-info>p{font-size:13px}body.sports-design.publication.reference-rebuild .sp-discipline-info .sp-credit{font-size:10px!important}body.sports-design.publication.reference-rebuild .sp-discipline-info>a{margin:0 0 10px}
body.sports-design.publication.reference-rebuild .sp-decision{padding:28px 20px;grid-template-columns:1fr;gap:26px}body.sports-design.publication.reference-rebuild .sp-decision h2{font-size:38px!important}body.sports-design.publication.reference-rebuild .sp-decision-title>div{gap:15px}body.sports-design.publication.reference-rebuild .sp-decision-options{gap:8px}body.sports-design.publication.reference-rebuild .publication-compact-card{padding:18px!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-arena-inner{gap:22px}body.sports-design.publication.reference-rebuild .sp-arena h1{font-size:66px!important}body.sports-design.publication.reference-rebuild .sp-arena .sp-deck{margin-bottom:16px}body.sports-design.publication.reference-rebuild .sp-search button{white-space:nowrap;max-width:none;min-width:85px}}
body.sports-design.publication.reference-rebuild .pg-compare-link-button{color:#333e2a!important;min-height:38px!important}
body.sports-design.publication.reference-rebuild .favorite-list-card{background:#fffdf6!important;border:1px solid #c6cbbb!important;border-radius:6px!important;overflow:hidden}
body.sports-design.publication.reference-rebuild .favorite-list-card .result-card-photo figcaption{background:#e8e3d8!important;color:#515a4b!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:#dfff43!important;color:#181d20!important;border-color:#b9cc31!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 .footer-brand,body.sports-design.publication.reference-rebuild .footer-brand span{color:#f3f0e8!important;font:700 30px/1 BarlowSport,sans-serif!important;text-transform:uppercase;letter-spacing:.01em!important}
body.sports-design.publication.reference-rebuild .footer-mark img{filter:brightness(0) invert(1)!important}
body.sports-design.publication.reference-rebuild .footer-social-btn{background:#303735!important;color:#f3f0e8!important;border:1px solid #68705f!important;border-radius:4px!important}
body.sports-design.publication.reference-rebuild .footer-social-btn svg{color:#f3f0e8!important;fill:currentColor!important}
body.sports-design.publication.reference-rebuild .footer-publisher-copy strong{color:#f3f0e8!important}
body.sports-design.publication.reference-rebuild .pg-compare-tray a{background:#181d20!important;color:#f3f0e8!important;border-radius:4px!important}
body.sports-design.publication.reference-rebuild .pg-compare-tray button{background:transparent!important;color:#181d20!important;border-color:#62731a!important;border-radius:4px!important}
body.sports-design.publication.reference-rebuild .sp-arena :focus-visible,body.sports-design.publication.reference-rebuild .nav :focus-visible,body.sports-design.publication.reference-rebuild .footer :focus-visible{outline-color:#dfff43!important}
body.sports-design.publication.reference-rebuild #nav-mobile a[aria-current=page]{background:#dfff43!important;color:#181d20!important;border-radius:4px!important}
body.sports-design.publication.reference-rebuild #nav-mobile .nav-mobile-group{color:#dfff43!important;font:600 11px/1.5 Inter,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:#4f594b!important}
body.sports-design.publication.reference-rebuild #nav-mobile .nav-mobile-cta{background:#dfff43!important;color:#181d20!important;border-radius:4px!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 #recently-viewed-mount h2,body.sports-design.publication.reference-rebuild #recently-viewed-mount h3{font:600 12px/1.5 Inter,sans-serif!important;letter-spacing:.06em!important}

/* Family-specific composition. Shared behavior and factual data remain separate. */
body.sports-design.publication.reference-rebuild{--paper:#f3f0e8;--lime:#dfff43;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:#e8e3d8!important;color:#202629!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:#202629!important;max-width:950px!important}
body.sports-design.publication.reference-rebuild .publication-compact-card,body.sports-design.publication.reference-rebuild .cat-venue-card{background:#fffdf6!important;border:1px solid #bfc2b5!important;border-left:3px solid #c3d739!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,body.sports-design.publication.reference-rebuild textarea{border-radius:4px!important}
body.sports-design.publication.reference-rebuild select,body.sports-design.publication.reference-rebuild input,body.sports-design.publication.reference-rebuild textarea{background:#fffdf6;color:#202629;min-height:44px;font-size:16px}
body.sports-design.publication.reference-rebuild .btn-primary{background:#dfff43!important;color:#181d20!important;border:1px solid #a7b52d!important;box-shadow:none!important}
body.sports-design.publication.reference-rebuild .btn-ghost{background:transparent!important;color:#202629!important;border:1px solid #8c9483!important;box-shadow:none!important}
body.sports-design.publication.reference-rebuild .sp-primary{min-height:44px}
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 .rg-mobile-dock{padding-bottom:env(safe-area-inset-bottom);height:auto!important;min-height:62px}
body.sports-design.publication.reference-rebuild .pg-compare-tray{bottom:calc(74px + env(safe-area-inset-bottom))!important;max-width:calc(100vw - 24px)!important}
body.sports-design.publication.reference-rebuild .pg-toast{top:auto!important;bottom:calc(145px + env(safe-area-inset-bottom))!important;height:auto;max-width:calc(100vw - 24px)!important;white-space:normal!important;background:#202626;border-radius:4px}
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 .rg-mobile-dock a{min-height:48px!important;font-size:12px!important}body.sports-design.publication.reference-rebuild .footer{margin-top:24px!important}}
@media(max-width:360px){body.sports-design.publication.reference-rebuild .rg-mobile-dock{position:static!important;display:grid!important}body.sports-design.publication.reference-rebuild .pg-compare-tray{position:static!important;margin:12px!important}body.sports-design.publication.reference-rebuild .back-to-top{display:none!important}}
@media(max-height:500px){body.sports-design.publication.reference-rebuild .rg-mobile-dock,body.sports-design.publication.reference-rebuild .pg-compare-tray{position:static!important}body.sports-design.publication.reference-rebuild .nav{position:relative!important}}
body.sports-design.publication.reference-rebuild .rg-mobile-dock{background:#181d20!important;color:#f3f0e8!important;border-color:#414849!important}body.sports-design.publication.reference-rebuild .rg-mobile-dock a,body.sports-design.publication.reference-rebuild .rg-mobile-dock svg{color:#f3f0e8!important}body.sports-design.publication.reference-rebuild .rg-mobile-dock a[aria-current=page],body.sports-design.publication.reference-rebuild .rg-mobile-dock a[aria-current=page] svg{background:#dfff43!important;color:#181d20!important}
body.sports-design.publication.reference-rebuild .sp-guide-links{display:flex;flex-wrap:wrap;gap:12px 30px;padding:18px max(20px,calc((100vw - 1240px)/2));background:#e8e3d8;font:500 13px/1.5 Inter,sans-serif}body.sports-design.publication.reference-rebuild .sp-guide-links a{min-height:32px;display:flex;align-items:center}
html{--pg-dock-height:74px;scroll-padding-top:110px;scroll-padding-bottom:180px}
body.sports-design:has(main :focus-visible) .rg-mobile-dock,body.sports-design:has(main :focus-visible) .pg-compare-tray{position:static!important;margin-top:16px!important}
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}
body.sports-design.publication.reference-rebuild .pg-compare-tray{bottom:calc(var(--pg-dock-height,74px) + 12px)!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 .brand-wordmark{white-space:normal!important;overflow-wrap:anywhere;max-width:calc(100vw - 140px);line-height:1.1!important}body.sports-design.publication.reference-rebuild .nav-burger{flex:0 0 44px!important;margin-left:auto!important}body.sports-design.publication.reference-rebuild .rg-mobile-dock a{padding:8px 4px!important;min-width:0!important}body.sports-design.publication.reference-rebuild .rg-mobile-dock span{white-space:normal!important;overflow-wrap:anywhere;max-width:100%;line-height:1.3!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)}}
@media(max-width:760px){body.sports-design.publication.reference-rebuild .rg-mobile-dock{display:flex!important;flex-wrap:wrap!important}body.sports-design.publication.reference-rebuild .rg-mobile-dock a{flex:1 1 auto!important;min-width:max-content!important}body.sports-design.publication.reference-rebuild .rg-mobile-dock span{white-space:nowrap!important;overflow-wrap:normal}}

/* 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. */
/* The finder begins with a decision, not an undifferentiated inventory. */
/* A place, its admission and the journey sit together. */

/* 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-photo{margin:0;width:100%}
body.sports-design.publication.reference-rebuild #main .pd-result-photo>a{display:block}
body.sports-design.publication.reference-rebuild #main .pd-result-photo img{display:block;width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;border-radius:3px}
body.sports-design.publication.reference-rebuild #main .pd-result-photo figcaption{font-size:.75rem;line-height:1.5;color:var(--muted);padding-top:8px;overflow-wrap:anywhere}
body.sports-design.publication.reference-rebuild #main .pd-result-photo figcaption a{text-decoration:underline}
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-result-facts{flex:1 1 20rem;min-width:0}
body.sports-design.publication.reference-rebuild #main .pd-result-access{font-size:.875rem;font-weight:650;line-height:1.5;margin:0 0 4px}
body.sports-design.publication.reference-rebuild #main .pd-result-includes{font-size:.8125rem;line-height:1.6;color:var(--muted);max-width:64ch}
body.sports-design.publication.reference-rebuild #main .pd-status{width:fit-content;background:#f4dfb9;color:#45300d;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-price>strong.pd-price-unknown{font-size:1.1875rem;letter-spacing:0}
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 .pd-result-secondary{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;min-width:0}
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-result-secondary>a{display:inline-flex;align-items:center;min-height:44px;text-decoration:underline}
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 #929b88!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:#faf8ef!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}
@media(min-width:761px){
 body.sports-design.publication.reference-rebuild #main .pd-result.has-photo:not(.pd-feature){grid-template-columns:minmax(220px,30%) minmax(0,1fr)!important;column-gap:28px!important;align-content:start}
 body.sports-design.publication.reference-rebuild #main .pd-result.has-photo:not(.pd-feature) .pd-result-photo{grid-column:1;grid-row:1/4}
 body.sports-design.publication.reference-rebuild #main .pd-result.has-photo:not(.pd-feature) :is(.pd-result-title,.pd-result-body,.pd-result-actions){grid-column:2}
 body.sports-design.publication.reference-rebuild #main .pd-result.no-photo .pd-result-body{align-items:center}
}
@media(max-width:760px){
 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.has-photo{padding:18px!important;border:1px solid var(--line)!important;border-radius:4px!important;background:#faf8ef!important;margin:0 0 16px!important}
 body.sports-design.publication.reference-rebuild #main .pd-result.has-photo .pd-result-photo img{aspect-ratio:1.6}
 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-result-secondary{gap:12px}
 body.sports-design.publication.reference-rebuild #main .pd-feature .pd-result-price{margin-top:12px}
}
@media(max-width:350px){
 body.sports-design.publication.reference-rebuild #main .pd-result.has-photo{padding:14px!important}
}

body.sports-design.publication.reference-rebuild #main .pd-result{--ink:#202626;--paper:#f3f0e7;--muted:#565d57;--line:#cbcbbf;--acid:#dcf744;font-family:Inter,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:Inter,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 #aa7240!important;padding-left:18px!important}
body.sports-design.publication.reference-rebuild #main :is(#favorites-list){display:grid!important;grid-template-columns:1fr!important;gap:0!important}
body.sports-design.publication.reference-rebuild #main .pd-result.has-photo{margin:0!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-result-photo{align-self:start}
body.sports-design.publication.reference-rebuild #main .pd-result .pd-result-photo figcaption{display:block!important;width:100%!important;max-width:none!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.has-photo{margin-bottom:16px!important}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. */
/* Reserve the controls' natural geometry until enhancement is ready. The
   full inventory stays visible if JavaScript fails or is unavailable. */
body.sports-design #main .pd-directory-pager{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-block:1px solid var(--directory-line);margin:14px 0;font-size:.875rem}
body.sports-design #main .pd-directory-pager span{text-align:center}
body.sports-design #main .pd-directory-empty{padding:24px 0}
body.sports-design #main .pd-directory-empty h3{font-size:1.5rem}
@media(max-width:350px){body.sports-design #main .pd-directory-pager{gap:8px;flex-wrap:wrap}body.sports-design #main .pd-directory-pager span{order:-1;flex-basis:100%;text-align:left}}
body.sports-design.publication.reference-rebuild #main section:has(>.wrap>.pd-directory-sports){padding-bottom:12px!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. */

/* REFERENCE-REBUILD:END */
