/* Shared dark Riviera skin. Canonical values are generated from design/esp-tokens.json.
   Keep this after esp-modules.css; public shortcodes also emit legacy inline CSS. */
/* cyrillic */
@font-face {
  font-family: 'Manrope ESP';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('../fonts/manrope-1.woff2') format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* latin-ext */
@font-face {
  font-family: 'Manrope ESP';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('../fonts/manrope-4.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Manrope ESP';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('../fonts/manrope-5.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'DM Sans ESP';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('../fonts/dm-sans-0.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'DM Sans ESP';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('../fonts/dm-sans-1.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}


html { color-scheme: dark; background: var(--esp-dark-background); scroll-padding-top: 110px; }
body.esp-theme { background: var(--esp-dark-background); color: var(--esp-dark-text); }
body.esp-theme .shell { width: min(1320px, 88%); }
body.esp-theme :is(h1, h2, h3, h4) { font-family: var(--esp-display); font-weight: 500; line-height: 1.2; letter-spacing: -.035em; }
body.esp-theme :is(h1, h2) { text-wrap: balance; }
body.esp-theme :is(h1, h2, h3, h4) em { font-family: Georgia, serif; font-weight: 400; color: var(--esp-dark-accent); }
body.esp-theme a { color: var(--esp-dark-accent); }
body.esp-theme a:hover { color: var(--esp-dark-accent-hover); }
body.esp-theme .eyebrow { color: var(--esp-dark-accent); font-size: .65rem; letter-spacing: .2em; font-weight: 700; }
body.esp-theme .site-header { background: rgba(17, 22, 21, .96); color: var(--esp-dark-text); border-color: var(--esp-dark-line); box-shadow: none; }
body.esp-theme.home .site-header:not(.is-scrolled) { background: rgba(17, 22, 21, .28); color: var(--esp-dark-text); border-color: var(--esp-dark-line); box-shadow: none; }
body.esp-theme .header-shell { min-height: 94px; }
body.esp-theme .brand { color: var(--esp-dark-text); }
body.esp-theme .brand-mark { background: transparent; border: 0; color: var(--esp-dark-accent); }
.brand-mark svg { width: 48px; height: 48px; fill: none; stroke: currentColor; stroke-width: 1.2; }
body.esp-theme .brand-text { font-family: var(--esp-display); font-size: .85rem; line-height: 1.5; font-weight: 700; letter-spacing: .17em; text-transform: uppercase; }
.brand-text small { display: block; font-size: .63rem; letter-spacing: .18em; }
body.esp-theme .site-nav a { color: var(--esp-dark-text); font-size: .8rem; font-weight: 500; border-radius: 0; padding: 10px; }
body.esp-theme .site-nav a:hover { background: var(--esp-dark-surface-raised); color: var(--esp-dark-accent); transform: none; }
body.esp-theme .site-nav li:first-child a { border: 1px solid var(--esp-dark-line); }
body.esp-theme .nav-toggle { background: var(--esp-dark-surface); color: var(--esp-dark-text); border: 1px solid var(--esp-dark-line); border-radius: 4px; box-shadow: none; }
body.esp-theme .nav-toggle:hover { background: var(--esp-dark-surface-raised); transform: none; }

/* The functional finder follows the cinematic hero, with no nested scroll area. */
body.esp-theme .theme-hero { min-height: 760px; min-height: max(760px, 92svh); align-items: center; background: var(--esp-dark-background); }
body.esp-theme .theme-hero__shade { background: linear-gradient(90deg, rgba(8,17,17,.88), rgba(8,17,17,.24) 85%), linear-gradient(0deg, #111615, transparent 38%); }
body.esp-theme .theme-hero__image { object-position: 65% center; }
body.esp-theme .theme-hero__inner { display: block; padding: 160px 0 110px; color: var(--esp-dark-text); }
body.esp-theme .theme-hero__copy { max-width: 1000px; padding: 0; }
body.esp-theme .theme-hero h1 { max-width: 950px; font-size: clamp(2.7rem, 5.7vw, 5.25rem); line-height: 1.1; letter-spacing: -.045em; }
body.esp-theme .theme-hero .eyebrow { font-size: .65rem; margin-bottom: 24px; }
body.esp-theme .theme-hero p:not(.eyebrow) { max-width: 580px; font-size: 1rem; line-height: 1.8; color: var(--esp-dark-text); }
body.esp-theme .hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
body.esp-theme .hero-seals { margin-top: 32px; gap: 24px; }
body.esp-theme .hero-seals span { border: 0; background: none; padding: 0; color: var(--esp-dark-muted); font-size: .65rem; letter-spacing: .06em; font-weight: 400; text-transform: none; }
body.esp-theme .finder-band { padding: 76px 0; background: var(--esp-dark-background); border-bottom: 1px solid var(--esp-dark-line); }
body.esp-theme .section-band { background: var(--esp-dark-background); }
body.esp-theme .section-band--collections::before,
body.esp-theme .mood-band::before { display: none; }
body.esp-theme .mood-band { background: var(--esp-dark-surface); color: var(--esp-dark-text); }
body.esp-theme .section-head { margin-bottom: 36px; }
body.esp-theme .section-head :is(h1, h2),
body.esp-theme .detail-hero h1 { font-size: clamp(2.2rem, 4.1vw, 3.8rem); }
body.esp-theme :is(.section-head p, .detail-lede, .mood-band .section-head p, .esp-meta, .esp-location-status) { color: var(--esp-dark-muted); }
body.esp-theme .section-head .eyebrow { color: var(--esp-dark-accent); }
body.esp-theme .category-tiles { grid-template-columns: repeat(auto-fit, minmax(min(180px, 100%), 1fr)); }
body.esp-theme .category-tiles a { background: var(--esp-dark-background); border-color: var(--esp-dark-line); box-shadow: none; color: var(--esp-dark-text); min-height: 140px; }
body.esp-theme .category-tiles a::before { border-width: 1px; border-color: var(--esp-dark-line); }
body.esp-theme .category-tiles a:hover { border-color: var(--esp-dark-accent); }
body.esp-theme .category-tiles span { font-family: var(--esp-display); font-weight: 500; font-size: 1.5rem; }
body.esp-theme .trust-line { background: var(--esp-dark-background); color: var(--esp-dark-muted); border-color: var(--esp-dark-line); }
body.esp-theme .trust-line span { font-weight: 400; font-size: .8rem; }
body.esp-theme .trust-line strong { background: none; color: var(--esp-dark-accent); }

/* Editorial, archives, details and utility pages share the same surfaces. */
body.esp-theme :is(.page-shell--editorial, .detail-wrap) { background: var(--esp-dark-background); }
body.esp-theme .detail-wrap { padding-top: 60px; }
body.esp-theme .detail-wrap > .content-page { max-width: none; }
body.esp-theme :is(.theme-card, .detail-content, .not-found-panel, .esp-contact-card, .esp-static-note, .esp-privacy-section) { background: var(--esp-dark-surface); color: var(--esp-dark-text); border: 1px solid var(--esp-dark-line); box-shadow: none; }
body.esp-theme .theme-card:hover { border-color: var(--esp-dark-accent); box-shadow: none; }
body.esp-theme .theme-card__body::before { display: none; }
body.esp-theme .theme-card :is(h2, h3) { font-size: clamp(1.3rem, 2vw, 1.7rem); }
body.esp-theme .theme-card :is(h2, h3) a { color: var(--esp-dark-text); text-decoration: none; }
body.esp-theme :is(.theme-card p, .entry-content p, .entry-content li, .esp-contact-card p, .esp-static-note p, .esp-privacy-section p, .esp-note-list) { color: var(--esp-dark-muted); }
body.esp-theme :is(.esp-static-hero h1, .esp-contact-card h2, .esp-static-note h2, .esp-privacy-section h2) { color: var(--esp-dark-text); }
body.esp-theme .esp-contact-card span { color: var(--esp-dark-accent); }
body.esp-theme :is(.page-featured, .detail-hero__media) { box-shadow: none; }
body.esp-theme :is(.entry-content, .detail-content, .esp-static-page) { overflow-wrap: anywhere; }
body.esp-theme :is(blockquote, pre, code) { background: var(--esp-dark-surface-raised); color: var(--esp-dark-text); }
body.esp-theme pre { padding: 20px; overflow: auto; }
body.esp-theme blockquote { margin-inline: 0; padding: 20px; border-left: 2px solid var(--esp-dark-accent); }
body.esp-theme .entry-content :is(table, th, td) { border-color: var(--esp-dark-line); }
body.esp-theme .entry-content table { width: 100%; border-collapse: collapse; }
body.esp-theme .entry-content :is(th, td) { padding: 12px; border-bottom: 1px solid var(--esp-dark-line); }
body.esp-theme .entry-content th { color: var(--esp-dark-text); background: var(--esp-dark-surface); }
body.esp-theme .wp-block-table { overflow-x: auto; }
body.esp-theme .pagination :is(a, span) { background: var(--esp-dark-surface); color: var(--esp-dark-text); }
body.esp-theme .pagination .current { background: var(--esp-dark-accent); color: var(--esp-dark-on-accent); }

/* Explicit component scope beats shortcode <style> blocks without recoloring maps/photos. */
body.esp-theme :is(.esp-intent-wrap, .esp-grid, .esp-filter, .esp-hunt-pass) { color: var(--esp-dark-text); }
body.esp-theme :is(.esp-intent-panel, .esp-form, .esp-trust-dossier, .esp-trust-box, .esp-card, .esp-intent-card, .esp-hunt-hero, .esp-hunt-pass-head, .esp-hunt-badges, .esp-hunt-station, .esp-ticket, .esp-empty-state, .esp-map-empty, .esp-collection-item, .esp-trust-fact, .esp-cta-trust) { background: var(--esp-dark-surface); color: var(--esp-dark-text); border-color: var(--esp-dark-line); border-radius: var(--esp-radius); box-shadow: none; }
body.esp-theme :is(.esp-intent-panel h2, .esp-trust-dossier h2, .esp-intent-grid h3, .esp-card h3, .esp-intent-card h3, .esp-trust-box h3, .esp-collection-item h3, .esp-hunt-hero h2, .esp-hunt-pass h1, .esp-hunt-pass h2, .esp-empty-state h2) { color: var(--esp-dark-text); font-family: var(--esp-display); font-weight: 500; line-height: 1.2; letter-spacing: -.035em; }
body.esp-theme :is(.esp-card-body, .esp-intent-card-body)::before { display: none; }
body.esp-theme :is(.esp-card, .esp-intent-card):hover { border-color: var(--esp-dark-accent); box-shadow: none; }
body.esp-theme :is(.esp-card, .esp-intent-card):not(:has(img))::before { background: linear-gradient(145deg, #162725, #34443c); }
body.esp-theme :is(.esp-card, .esp-intent-card):not(:has(img))::after { border-width: 1px; border-color: var(--esp-dark-accent); }
body.esp-theme :is(.esp-intent-chip, .esp-reason-chip) { background: var(--esp-dark-surface-raised); color: var(--esp-dark-text); border-color: var(--esp-dark-line); font-size: .82rem; font-weight: 400; }
body.esp-theme .esp-intent-chip:has(input:checked),
body.esp-theme .esp-intent-chip:hover { background: var(--esp-dark-accent); color: var(--esp-dark-on-accent); border-color: var(--esp-dark-accent); }
body.esp-theme :is(.esp-price, .esp-trust-fact strong, .esp-cta-trust strong, .esp-hunt-progress) { color: var(--esp-dark-accent); font-family: var(--esp-display); }
body.esp-theme .esp-collection-num { background: var(--esp-dark-surface-raised); color: var(--esp-dark-accent); font-family: var(--esp-display); }
body.esp-theme :is(.esp-map-empty p, .esp-trust-fact span, .esp-hunt-hero p, .esp-hunt-pass-head p) { color: var(--esp-dark-muted); }
body.esp-theme .esp-trust-columns { grid-template-columns: repeat(3, minmax(0, 1fr)); }
body.esp-theme .esp-map { background: var(--esp-dark-surface); border-color: var(--esp-dark-line); }
body.esp-theme .leaflet-container { color-scheme: light; }
body.esp-theme .leaflet-container :is(a, p) { color: #17211f; }
body.esp-theme .leaflet-popup-content-wrapper { color: #17211f; }

/* A few public modules emit inline color values. Restrict important overrides to those contracts. */
body.esp-theme .esp-form[style*="background:#fff"],
body.esp-theme .esp-hunt-region[style] { background: var(--esp-dark-surface) !important; color: var(--esp-dark-text) !important; border-color: var(--esp-dark-line) !important; }
body.esp-theme .esp-form[style*="#dcfce7"],
body.esp-theme .esp-badge.ok { background: #21382b !important; color: var(--esp-dark-success) !important; border-color: #497557 !important; }
body.esp-theme .esp-form[style*="#fef9c3"],
body.esp-theme .esp-hunt-notice[style*="#fef9c3"],
body.esp-theme .esp-badge.warn { background: #393220 !important; color: var(--esp-dark-warning) !important; border-color: #857448 !important; }
body.esp-theme .esp-badge.in { background: #203540; color: var(--esp-dark-info); }
body.esp-theme .esp-error { background: #3a2525; color: var(--esp-dark-error); border-color: #905b55; }
body.esp-theme .esp-hunt-notice { background: #21382b; color: var(--esp-dark-success); border-color: #497557; }
body.esp-theme .esp-badge { background: var(--esp-dark-surface-raised); color: var(--esp-dark-accent); border-color: var(--esp-dark-line); }
body.esp-theme .esp-ticket :is(h2, h3, p)[style*="color:"] { color: var(--esp-dark-text) !important; }

body.esp-theme :is(.button, .esp-btn, button, input[type="submit"], .wp-block-button__link) { background: var(--esp-dark-accent); color: var(--esp-dark-on-accent); border: 1px solid var(--esp-dark-accent); border-radius: 3px; box-shadow: none; font-size: .85rem; font-weight: 700; }
/* Plugin esp_css() sets .esp-btn color with !important. */
body.esp-theme .esp-btn { color: var(--esp-dark-on-accent) !important; }
body.esp-theme :is(.button, .esp-btn, button, input[type="submit"], .wp-block-button__link):hover { background: var(--esp-dark-accent-hover); color: var(--esp-dark-on-accent); box-shadow: none; }
body.esp-theme .esp-btn[style*="background:#94a3b8"],
body.esp-theme :is(.button--secondary, .esp-location-button, .nav-toggle) { background: var(--esp-dark-surface) !important; color: var(--esp-dark-text) !important; border-color: var(--esp-dark-line); }
body.esp-theme :is(.button--secondary, .esp-location-button, .nav-toggle):hover { background: var(--esp-dark-surface-raised) !important; }
body.esp-theme :is(button, input):disabled { opacity: .55; cursor: not-allowed; transform: none; }
body.esp-theme :is(input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="hidden"]), select, textarea) { background: var(--esp-dark-background); color: var(--esp-dark-text); border: 1px solid var(--esp-dark-line); box-shadow: none; max-width: 100%; }
body.esp-theme :is(input, textarea)::placeholder { color: var(--esp-dark-muted); opacity: 1; }
body.esp-theme :is(input[type="checkbox"], input[type="radio"]) { accent-color: var(--esp-dark-accent); }
body.esp-theme .esp-form label { color: var(--esp-dark-text); }
body.esp-theme .site-main .esp-form .login-remember input[type="checkbox"] { border-color: var(--esp-dark-muted) !important; background: var(--esp-dark-background); }
body.esp-theme .site-main .esp-form .login-remember input[type="checkbox"]:checked { border-color: var(--esp-dark-accent) !important; background: var(--esp-dark-accent); }
body.esp-theme :is(.esp-intent-form-row, .esp-filter) select { min-width: 0; }
body.esp-theme :is(.esp-error, .esp-hunt-notice, .esp-form[style*="#dcfce7"], .esp-form[style*="#fef9c3"]) p { color: inherit; }

body.esp-theme .site-footer { background: #0d1210; color: var(--esp-dark-text); border-top: 1px solid var(--esp-dark-line); }
body.esp-theme .site-footer::before { display: none; }
body.esp-theme .footer-trust { border-color: var(--esp-dark-line); }
body.esp-theme .footer-trust span { color: var(--esp-dark-muted); font-size: .75rem; font-weight: 400; }
body.esp-theme .footer-brand h2 { font-size: clamp(1.7rem, 3vw, 2.65rem); }
body.esp-theme :is(.footer-nav a, .footer-language a) { color: var(--esp-dark-text); }
body.esp-theme .skip-link { background: var(--esp-dark-accent); color: var(--esp-dark-on-accent); }
body.esp-theme :focus-visible { outline: 2px solid var(--esp-dark-accent); outline-offset: 4px; }
body.esp-theme #gt_float_wrapper .gt_options { background: var(--esp-dark-surface) !important; border-color: var(--esp-dark-line) !important; }
body.esp-theme #gt_float_wrapper .gt_options a { background: var(--esp-dark-surface-raised) !important; }

@media (max-width: 1100px) and (min-width: 901px) {
  body.esp-theme .header-shell { gap: 12px; }
  body.esp-theme .brand-text { max-width: 145px; }
  body.esp-theme .site-nav a { font-size: .72rem; padding: 8px 6px; }
}
@media (max-width: 900px) {
  body.esp-theme .header-shell { min-height: 78px; }
  body.esp-theme .site-nav { top: 78px; background: var(--esp-dark-surface); color: var(--esp-dark-text); border-color: var(--esp-dark-line); max-height: calc(100svh - 120px); overflow-y: auto; }
  body.esp-theme .theme-hero { min-height: 740px; }
  body.esp-theme .theme-hero__inner { padding: 145px 0 90px; }
  body.esp-theme .theme-hero h1 { font-size: clamp(2.5rem, 7vw, 4rem); }
  body.esp-theme .esp-trust-columns { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  /* No overflow clipping: long labels and public forms must actually fit. */
  html, body.esp-theme { overflow-x: visible; }
  body.esp-theme .theme-hero__inner { width: 88%; max-width: 88%; }
  body.esp-theme .theme-hero h1 { font-size: clamp(2.25rem, 9vw, 3.4rem); line-height: 1.12; overflow-wrap: normal; }
  body.esp-theme .hero-actions { flex-direction: column; align-items: flex-start; }
  body.esp-theme .hero-seals { gap: 14px; }
  body.esp-theme .finder-band { padding: 48px 0; }
  body.esp-theme :is(.theme-grid, .esp-collections-grid, .esp-filter) { padding-left: 0; }
  body.esp-theme .theme-grid { grid-template-columns: minmax(0, 1fr); }
  body.esp-theme .esp-hunt-stations { grid-template-columns: minmax(0, 1fr); }
  body.esp-theme .footer-grid { gap: 30px; }
  body.esp-theme .site-footer .shell { padding-left: 0; }
  body.esp-theme .esp-filter { flex-wrap: wrap; }
  body.esp-theme .esp-filter select { width: 100%; }
  body.esp-theme .detail-wrap { padding-top: 38px; }
  body.esp-theme .esp-static-hero h1 { font-size: 2.5rem; }
}
@media print {
  body.esp-theme { background: white; color: black; }
  body.esp-theme :is(.site-header, .site-footer, #gt_float_wrapper) { display: none !important; }
  body.esp-theme .site-main { padding-top: 0; }
  body.esp-theme :is(.esp-ticket, .detail-content, .esp-privacy-section) { background: white; color: black; box-shadow: none; }
  body.esp-theme .esp-ticket :is(h2, h3, p)[style*="color:"] { color: black !important; }
}

/* Native ESP language selector (fallback when GTranslate is absent). */
body.esp-theme #esp-lang-badge { background: var(--esp-dark-surface); border-color: var(--esp-dark-line); font-family: var(--esp-sans); box-shadow: none; }
body.esp-theme #esp-lang-badge a { color: var(--esp-dark-muted); }
body.esp-theme #esp-lang-badge a.esp-lang-active { color: var(--esp-dark-accent); }
body.esp-theme .site-main .esp-form .login-remember input[type="checkbox"]:checked::after { border-color: var(--esp-dark-on-accent); }
@media print {
  body.esp-theme .site-main, body.esp-theme .site-main * { color: #111 !important; background: transparent !important; box-shadow: none !important; }
  body.esp-theme #esp-lang-badge { display: none !important; }
}
