:root{color-scheme:light}
.theme-toggle{width:44px;height:44px;min-width:44px;display:inline-grid;place-items:center;padding:0;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--ink);font-size:1.25rem;line-height:1;transition:background .18s,border-color .18s,transform .18s}
.theme-toggle:hover{background:var(--soft);border-color:var(--ink);transform:translateY(-1px)}
.theme-toggle:focus-visible{outline:3px solid #11627e;outline-offset:3px}
.theme-toggle [data-theme-icon]{display:block;transform:translateY(-1px)}

html[data-theme=dark]{color-scheme:dark;--paper:#111214;--soft:#1a1c1f;--ink:#f5f5f1;--muted:#a8acb2;--line:#373a3f}
html[data-theme=dark] body{background:var(--paper);color:var(--ink)}
html[data-theme=dark] p{color:var(--muted)}
html[data-theme=dark] .header{background:rgba(17,18,20,.96);border-bottom-color:var(--line)}
html[data-theme=dark] .mobile-nav{background:#141518;box-shadow:0 14px 28px #0008}
html[data-theme=dark] .brand img,
html[data-theme=dark] .hero-logo-paper,
html[data-theme=dark] .graphic-logo{background:#fff}
html[data-theme=dark] .metro-mark{background:#1b1d20;border-color:#45484e;color:#e8c9b8}
html[data-theme=dark] .button.dark{background:#f4f4ef;color:#111214;border-color:#f4f4ef}
html[data-theme=dark] .button.outline{border-color:#555961}
html[data-theme=dark] .button.outline:hover{border-color:#f5f5f1}
html[data-theme=dark] .button.yellow,
html[data-theme=dark] .button.pink,
html[data-theme=dark] .button.cyan{color:#171717;border-color:#171717}
html[data-theme=dark] .skip-link{color:#171717}
html[data-theme=dark] input,
html[data-theme=dark] textarea,
html[data-theme=dark] select{background:#17191c!important;color:#f5f5f1!important;border-color:#45484e!important}
html[data-theme=dark] input::placeholder,
html[data-theme=dark] textarea::placeholder{color:#858a92}
html[data-theme=dark] input[type=checkbox],
html[data-theme=dark] input[type=radio]{accent-color:var(--yellow)}
html[data-theme=dark] dialog{background:#15171a;color:var(--ink);border-color:#44474d;box-shadow:0 24px 80px #000b}
html[data-theme=dark] dialog::backdrop{background:#000b}
html[data-theme=dark] .dialog-close{background:#202226;color:var(--ink);border-color:#4a4e55}

html[data-theme=dark] .ribbon,
html[data-theme=dark] .collection-section,
html[data-theme=dark] .footer,
html[data-theme=dark] .contacts-section,
html[data-theme=dark] .reviews-band,
html[data-theme=dark] .mini-top100-section{background:#0b0c0e;color:#fff}
html[data-theme=dark] .prices-section,
html[data-theme=dark] .rules-section,
html[data-theme=dark] .rental-rates-section,
html[data-theme=dark] .rental-request-section,
html[data-theme=dark] .home-booking-band{background:#16181b}
html[data-theme=dark] .price-card,
html[data-theme=dark] .review-card,
html[data-theme=dark] .events-empty,
html[data-theme=dark] .event-empty-copy,
html[data-theme=dark] .inline-enquiry,
html[data-theme=dark] .first-visit-panel,
html[data-theme=dark] .rules-disclosure,
html[data-theme=dark] .chat-rules,
html[data-theme=dark] .faq-item,
html[data-theme=dark] .catalog-empty,
html[data-theme=dark] .boot-error>div{background:#1a1c1f;color:var(--ink);border-color:var(--line)}
html[data-theme=dark] .review-card blockquote p,
html[data-theme=dark] .first-visit-copy strong{color:var(--ink)}
html[data-theme=dark] .weekday-cap{background:#393718;color:#f7ef9c}
html[data-theme=dark] .map-label{background:#181a1de8;color:var(--ink)}
html[data-theme=dark] .home-events-section{background:#24151f;border-color:#5c354f;box-shadow:7px 7px 0 #6d355d}
html[data-theme=dark] .home-faq-section{background:#17191c;border-color:#4a4d53}
html[data-theme=dark] .home-faq-section .faq-item,
html[data-theme=dark] .home-booking-band .booking-list li{border-color:#3b3e43}
html[data-theme=dark] .rules-section .rules-disclosure>summary small{color:var(--muted)}
html[data-theme=dark] .filter.active{background:#f4f4ef;color:#171717;border-color:#f4f4ef}

html[data-theme=dark] .service-card,
html[data-theme=dark] .benefit-card,
html[data-theme=dark] .zone-card,
html[data-theme=dark] .buy-option,
html[data-theme=dark] .event-art,
html[data-theme=dark] .hero-sticker,
html[data-theme=dark] .small-sticker,
html[data-theme=dark] .mood-card,
html[data-theme=dark] .club-note{color:#171717;border-color:#171717}
html[data-theme=dark] .service-card p,
html[data-theme=dark] .service-card .service-link,
html[data-theme=dark] .benefit-card p,
html[data-theme=dark] .benefit-card .text-link,
html[data-theme=dark] .zone-card p,
html[data-theme=dark] .buy-option p,
html[data-theme=dark] .club-note p,
html[data-theme=dark] .club-note .text-link{color:#262626}
html[data-theme=dark] .service-card:hover,
html[data-theme=dark] .button.yellow:hover{box-shadow:0 6px 0 #000}
html[data-theme=dark] .community-band{background:#dff5fc;color:#171717}
html[data-theme=dark] .community-band p,
html[data-theme=dark] .community-band .text-link{color:#353535}

html[data-theme=dark] .catalogue-page,
html[data-theme=dark] .top100-shell,
html[data-theme=dark] #catalog-root{background:var(--paper)}
html[data-theme=dark] .catalog-mode-switch>button,
html[data-theme=dark] .catalog-card,
html[data-theme=dark] .top100-card,
html[data-theme=dark] .mini-top100-card,
html[data-theme=dark] .top100-intro,
html[data-theme=dark] .top100-categories button,
html[data-theme=dark] .catalog-pagination button,
html[data-theme=dark] .period-picker label>span,
html[data-theme=dark] .catalog-location.compact,
html[data-theme=dark] .family-variant-item{background:#191b1e;color:var(--ink);border-color:#3c3f44}
html[data-theme=dark] .catalog-mode-switch>button[aria-pressed=true],
html[data-theme=dark] .top100-categories button[aria-pressed=true],
html[data-theme=dark] .period-picker input:checked+span,
html[data-theme=dark] .catalog-pagination button[aria-current]{background:var(--yellow);color:#171717;border-color:#171717}
html[data-theme=dark] .catalog-filter-panel,
html[data-theme=dark] .catalog-mode-note,
html[data-theme=dark] .game-location-detail,
html[data-theme=dark] .detail-rate-grid>div,
html[data-theme=dark] .top100-all-cta{background:#17191c;border-color:#3c3f44}
html[data-theme=dark] .catalog-view-switch{background:#0d0e10;border-color:#34373c}
html[data-theme=dark] .catalog-view-switch>button[aria-pressed=true]{background:#282b2f;color:#fff;box-shadow:0 2px 10px #0007}
html[data-theme=dark] .top100-intro p,
html[data-theme=dark] .top100-teaser,
html[data-theme=dark] dialog p.top100-detail-copy{color:#b8bbc1}
html[data-theme=dark] .top100-category,
html[data-theme=dark] .top100-meta,
html[data-theme=dark] .top100-location,
html[data-theme=dark] .mini-top100-meta,
html[data-theme=dark] .mini-top100-category,
html[data-theme=dark] .catalog-note{color:#969ba3}
html[data-theme=dark] .mini-top100-body>p{color:#b8bbc1}
html[data-theme=dark] .mini-top100-link{border-top-color:#3c3f44}
html[data-theme=dark] .top100-card-arrow{background:#2b2e33;color:#f5f5f1}
html[data-theme=dark] .top100-card:hover{border-color:#565a61;box-shadow:0 14px 32px #0008}
html[data-theme=dark] .availability{border:1px solid #ffffff18}
html[data-theme=dark] .price-confirm,
html[data-theme=dark] .detail-rate-grid small{color:#ffd38e}
html[data-theme=dark] .detail-warning{background:#3a2e15;color:#ffe0a4;border-color:#6f5927}
html[data-theme=dark] .detail-club-play,
html[data-theme=dark] .top100-detail-actions{background:#343216;border-color:#65602a}
html[data-theme=dark] dialog .detail-club-play p,
html[data-theme=dark] dialog .top100-detail-actions p{color:#e8e3b4}
html[data-theme=dark] .top100-photo-placeholder,
html[data-theme=dark] .top100-image-frame.has-media-error{background:#202327}
html[data-theme=dark] #game-dialog .dialog-close{background:#202327;border-color:#464a50;box-shadow:0 3px 12px #0008}
html[data-theme=dark] #game-dialog{background:#15171a;color:var(--ink)}
html[data-theme=dark] .top100-gallery-arrow,
html[data-theme=dark] .top100-gallery-expand{background:rgba(24,26,29,.94);color:#fff;border-color:#5b5f66}
html[data-theme=dark] .top100-gallery-arrow:hover{background:var(--yellow);color:#171717}
html[data-theme=dark] .top100-gallery-thumb{background:#202327;border-color:#464a50}
html[data-theme=dark] .top100-gallery-thumb.active{border-color:#f5f5f1;box-shadow:0 0 0 1px #f5f5f1}
html[data-theme=dark] .catalog-mobile-filter-trigger,
html[data-theme=dark] .catalog-filter-panel,
html[data-theme=dark] .catalog-filter-sheet-head,
html[data-theme=dark] .catalog-filter-sheet-head button,
html[data-theme=dark] .catalog-filter-sheet-actions{background:#181a1d;color:var(--ink);border-color:#44474d}

html[data-theme=dark] .game-header{border-bottom-color:var(--line)}
html[data-theme=dark] .game-meta span{border-color:var(--line)}
html[data-theme=dark] .location{background:#1b1d20}
html[data-theme=dark] .game-about p{color:#c2c5ca}
html[data-theme=dark] .game-cover{background:#202327;border-color:#44474d}
html[data-theme=dark] .game-header+main,
html[data-theme=dark] footer{background:var(--paper);color:var(--ink)}

html[data-theme=dark] .service-card,
html[data-theme=dark] .buy-option,
html[data-theme=dark] .rental-rate-card,
html[data-theme=dark] .benefit-card,
html[data-theme=dark] .zone-card,
html[data-theme=dark] .solo-callout{background:#1a1c1f!important;color:#f5f5f1;border-color:#484b51}
html[data-theme=dark] .service-card p,
html[data-theme=dark] .service-card .service-link,
html[data-theme=dark] .buy-option p,
html[data-theme=dark] .rental-rate-card p,
html[data-theme=dark] .rental-rate-card>strong,
html[data-theme=dark] .benefit-card p,
html[data-theme=dark] .benefit-card .text-link,
html[data-theme=dark] .zone-card p,
html[data-theme=dark] .solo-callout p{color:#d3d6da}
html[data-theme=dark] .brand-graphic,
html[data-theme=dark] .brand-graphic.yellow,
html[data-theme=dark] .brand-graphic.pink,
html[data-theme=dark] .brand-graphic.cyan,
html[data-theme=dark] .event-art,
html[data-theme=dark] .category-card.yellow .category-art,
html[data-theme=dark] .category-card.pink .category-art,
html[data-theme=dark] .category-card.cyan .category-art{background:#0d0e10!important;color:#fff}
html[data-theme=dark] .catalogue-stamp{background:#1a1c1f!important;color:#fff;border-color:#565a61;box-shadow:6px 7px 0 var(--yellow)}

@media(max-width:580px){.theme-toggle{width:40px;height:40px;min-width:40px;font-size:1.12rem}.header-actions{gap:4px}}
@media(prefers-reduced-motion:no-preference){body,.header,.price-card,.catalog-card,.top100-card,dialog{transition:background-color .22s,color .22s,border-color .22s}}


/* 2026-09-28 dark readability pass v3 */
html[data-theme=dark]{
  --muted:#c3c7cd;
  --line:#4b5058;
  --soft:#1d2024;
}

html[data-theme=dark] p,
html[data-theme=dark] .muted,
html[data-theme=dark] .hero-location small,
html[data-theme=dark] .card-play-options dt,
html[data-theme=dark] .card-home-option small,
html[data-theme=dark] .card-rental-note,
html[data-theme=dark] .review-card figcaption a,
html[data-theme=dark] .rules-disclosure>summary small,
html[data-theme=dark] .booking-options>summary small,
html[data-theme=dark] .game-teaser,
html[data-theme=dark] .game-guide a,
html[data-theme=dark] .breadcrumbs,
html[data-theme=dark] .location span{
  color:var(--muted);
}

html[data-theme=dark] .theme-toggle{
  background:#17191c;
  border-color:#555a63;
}
html[data-theme=dark] .theme-toggle:hover{
  background:#24272c;
  border-color:#d9dce1;
}
html[data-theme=dark] button:focus-visible,
html[data-theme=dark] a:focus-visible,
html[data-theme=dark] summary:focus-visible,
html[data-theme=dark] input:focus-visible,
html[data-theme=dark] textarea:focus-visible,
html[data-theme=dark] select:focus-visible,
html[data-theme=dark] .theme-toggle:focus-visible{
  outline-color:#72d6f4;
}

html[data-theme=dark] input::placeholder,
html[data-theme=dark] textarea::placeholder{
  color:#aeb3bb;
  opacity:1;
}

html[data-theme=dark] .rules-grid ul,
html[data-theme=dark] .rules-grid li{
  color:#d3d6db;
}
html[data-theme=dark] .rules-grid h3,
html[data-theme=dark] .rules-disclosure>summary strong,
html[data-theme=dark] .booking-list b{
  color:#f3f4f2;
}
html[data-theme=dark] .home-booking-band .booking-list li{
  border-bottom-color:#444950;
}

html[data-theme=dark] .catalog-card-meta,
html[data-theme=dark] .catalog-card-meta i,
html[data-theme=dark] .top100-photo-placeholder>span:last-child{
  color:#aeb3bb;
}
html[data-theme=dark] .top100-category,
html[data-theme=dark] .top100-meta,
html[data-theme=dark] .top100-location,
html[data-theme=dark] .mini-top100-meta,
html[data-theme=dark] .mini-top100-category,
html[data-theme=dark] .catalog-note{
  color:#b7bcc4;
}
html[data-theme=dark] .top100-meta i,
html[data-theme=dark] .mini-top100-meta i{
  color:#8f959e;
}
html[data-theme=dark] .top100-intro p,
html[data-theme=dark] .top100-teaser,
html[data-theme=dark] .mini-top100-body>p,
html[data-theme=dark] dialog p.top100-detail-copy{
  color:#cbd0d6;
}
html[data-theme=dark] dialog .top100-detail-actions p,
html[data-theme=dark] dialog .detail-club-play p{
  color:#e0ddb9;
}

html[data-theme=dark] .availability{
  background:#2b2f34;
  color:#e5e7ea;
  border-color:#555a62;
}
html[data-theme=dark] .availability.in_club{
  background:#173728;
  color:#b5e8c6;
  border-color:#2d6245;
}
html[data-theme=dark] .availability.reserved{
  background:#3b3212;
  color:#ffe58b;
  border-color:#6a5b22;
}
html[data-theme=dark] .availability.rented{
  background:#1c2d46;
  color:#bfd7ff;
  border-color:#38557e;
}
html[data-theme=dark] .availability.unavailable{
  background:#41211e;
  color:#ffc0b8;
  border-color:#714039;
}

html[data-theme=dark] .catalog-card,
html[data-theme=dark] .top100-card,
html[data-theme=dark] .mini-top100-card,
html[data-theme=dark] .price-card,
html[data-theme=dark] .review-card,
html[data-theme=dark] .faq-item,
html[data-theme=dark] .rules-disclosure,
html[data-theme=dark] .inline-enquiry,
html[data-theme=dark] .first-visit-panel{
  border-color:#4b5058;
}
html[data-theme=dark] .catalog-card:hover,
html[data-theme=dark] .top100-card:hover,
html[data-theme=dark] .mini-top100-card:hover{
  border-color:#707680;
}

html[data-theme=dark] .game-about p{
  color:#cbd0d6;
}
html[data-theme=dark] .game-meta span{
  color:#e3e5e8;
}
html[data-theme=dark] .location strong{
  color:#f3f4f2;
}

html[data-theme=dark] .dialog-close,
html[data-theme=dark] .top100-gallery-arrow,
html[data-theme=dark] .top100-gallery-expand,
html[data-theme=dark] .catalog-filter-sheet-head button{
  border-color:#5a6069;
}

@media(max-width:580px){
  html[data-theme=dark] .top100-category,
  html[data-theme=dark] .top100-meta,
  html[data-theme=dark] .top100-location,
  html[data-theme=dark] .mini-top100-meta,
  html[data-theme=dark] .mini-top100-category{
    color:#c0c4ca;
  }
}


/* 2026-09-28 yellow-on-dark contrast pass v4 */
/* Bright yellow is always paired with dark text in dark mode. */
html[data-theme=dark] .highlight{
  color:#171717;
  background:var(--yellow);
  padding:.01em .07em .045em;
  border-radius:.045em;
  -webkit-box-decoration-break:clone;
  box-decoration-break:clone;
}

html[data-theme=dark] .button.yellow,
html[data-theme=dark] .button.yellow:visited,
html[data-theme=dark] .button.yellow:hover,
html[data-theme=dark] .review-score,
html[data-theme=dark] .review-score *,
html[data-theme=dark] .zone-card .eyebrow,
html[data-theme=dark] .buy-option>span,
html[data-theme=dark] .service-card.yellow .circle-arrow,
html[data-theme=dark] .event-date,
html[data-theme=dark] .step>span,
html[data-theme=dark] .active-collection,
html[data-theme=dark] .filter-all-games:hover,
html[data-theme=dark] .contacts-section .button.dark,
html[data-theme=dark] .mood-card.active,
html[data-theme=dark] .mood-card[aria-pressed=true],
html[data-theme=dark] .catalog-mode-switch>button[aria-pressed=true],
html[data-theme=dark] .top100-categories button[aria-pressed=true],
html[data-theme=dark] .period-picker input:checked+span,
html[data-theme=dark] .catalog-pagination button[aria-current],
html[data-theme=dark] .top100-card:hover .top100-card-arrow,
html[data-theme=dark] .top100-gallery-arrow:hover{
  color:#171717!important;
}

html[data-theme=dark] .zone-card .eyebrow,
html[data-theme=dark] .buy-option>span,
html[data-theme=dark] .service-card.yellow .circle-arrow{
  border-color:#171717;
}

/* Inactive mood filters must stay readable on the dark surface. */
html[data-theme=dark] .mood-card:not(.active):not([aria-pressed=true]){
  color:#e7e9ec!important;
  border-color:#5f646c;
  background:transparent;
}
html[data-theme=dark] .mood-card:not(.active):not([aria-pressed=true]):hover{
  color:#fff!important;
  background:#292c31;
  border-color:#858b94;
}

/* Form/filter labels and entered values remain clearly legible. */
html[data-theme=dark] .catalog-filter-panel label,
html[data-theme=dark] .inline-enquiry label,
html[data-theme=dark] dialog label,
html[data-theme=dark] .field-row label{
  color:#e7e9ec;
}
html[data-theme=dark] input,
html[data-theme=dark] textarea,
html[data-theme=dark] select{
  caret-color:#fff;
}
html[data-theme=dark] select option{
  background:#17191c;
  color:#f5f5f1;
}

/* Yellow review badge: secondary copy also uses dark ink. */
html[data-theme=dark] .review-score small{
  color:#4d4b32!important;
}


/* 2026-09-28 vector mobile icons v1 */
.icon-ui{display:inline-block;flex:0 0 auto;vertical-align:-.15em;pointer-events:none}
.theme-toggle [data-theme-icon]{display:grid;place-items:center}
.theme-toggle .icon-theme{width:20px;height:20px;vertical-align:middle}
.catalog-filter-trigger-icon{display:inline-grid;place-items:center}
.catalog-filter-trigger-icon .icon-filter{width:19px;height:19px}
.location-icon{display:inline-flex;align-items:center;justify-content:center}
.catalog-location .icon-pin,.game-location-detail .icon-pin{width:16px;height:16px;margin-right:5px;vertical-align:-.16em}
.dialog-close .icon-close,.catalog-filter-sheet-head .icon-close,.top100-lightbox-toolbar .icon-close{width:20px;height:20px;vertical-align:middle}
.rules-expand .icon-plus,.booking-options>summary .icon-plus,.chat-rules summary .icon-plus{width:19px;height:19px;vertical-align:middle}
.rule-icon .icon-ui{width:22px;height:22px;vertical-align:middle}
.review-score-stars{display:flex;align-items:center;gap:3px;letter-spacing:0!important}
.review-score-stars .icon-star{width:13px;height:13px;vertical-align:middle}
