/* Appearance control and the optional Light palette ("Blue-hour morning", D-059).
   Dark stays the default and owns every value outside [data-pmvr-theme='light'].
   html:root[data-pmvr-theme] (0,2,1) outranks brand-tokens.css html:root (0,1,1)
   and every template :root block (0,1,0) without !important.

   Measured on the #E9ECF6 ground: ink #0E1330 15.41 / secondary #33395A 9.50 /
   muted #555B7C 5.61 / action-as-text #4B3CC8 6.40; white on the #4B3CC8
   button 7.56, on the #3C2FA6 hover 9.77. --brand-vivid becomes #5B41E6 (5.32 on
   the ground, white on it 6.28): Dark uses it only as glow, but several
   templates set it as heading-accent TEXT, which #6D52F4 fails in Light (4.27). */

/* ── Control: native disclosure + labelled radios (THV D-026 pattern) ─────── */
.pmvr-appearance { display: none; position: relative; font: 400 .9rem/1.4 var(--font-b); }
html[data-pmvr-appearance-ready] .pmvr-appearance { display: block; }
/* Reserve the desktop slot before hydration, without exposing an inert control. */
html[data-pmvr-appearance] .clx-nav .pmvr-appearance { display: block; visibility: hidden; }
html[data-pmvr-appearance-ready] .clx-nav .pmvr-appearance { visibility: visible; }
.pmvr-appearance summary { list-style: none; display: flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 9px; color: var(--nav); cursor: pointer; white-space: nowrap; }
.pmvr-appearance summary::-webkit-details-marker { display: none; }
.pmvr-appearance summary:hover { color: var(--text); }
.pmvr-appearance summary:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
.clx-nav .pmvr-appearance summary { padding: 0 8px; font-family: var(--font-b); font-size: .7rem; font-weight: 500; letter-spacing: .07em; text-transform: uppercase; }
/* Header budget (D-060). The nav shows from 1280px. Up to 1679px the control is
   icon-only (its accessible name is still "Appearance") and the nav links give
   back 3px a side; the full label needs ~1616px of row, so it appears at 1680. */
@media (min-width: 1280px) and (max-width: 1679px) {
	.clx-nav .pmvr-appearance__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
	.clx-nav .clx-nav__link { padding-left: 6px; padding-right: 6px; }
}
.pmvr-appearance fieldset { position: absolute; right: 0; top: 100%; z-index: 120; width: 176px; margin: 0; padding: 8px; border: 1px solid var(--border); background: var(--card); color: var(--text); box-shadow: 0 12px 28px rgb(0 0 0 / .35); }
.pmvr-appearance legend { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.pmvr-appearance label { display: flex; align-items: center; gap: 12px; min-height: 44px; margin: 0; padding: 8px; color: var(--text); font-size: .9rem; letter-spacing: normal; text-transform: none; cursor: pointer; }
.pmvr-appearance input { appearance: auto; width: 16px; height: 16px; margin: 0; flex: 0 0 16px; accent-color: var(--brand-primary); }
.pmvr-appearance label:has(input:checked) { font-weight: 700; }
.pmvr-appearance label:hover { background: var(--gold-m); }
.clx-mobile-menu .pmvr-appearance { margin: 1.5rem 0 0; }
.clx-mobile-menu .pmvr-appearance summary { padding: 0; font-family: var(--font-d); font-size: 1.1rem; font-weight: 300; }
.clx-mobile-menu .pmvr-appearance fieldset { position: static; width: 100%; box-shadow: none; }
@media (forced-colors: active) {
	.pmvr-appearance fieldset { border: 1px solid CanvasText; }
	.pmvr-appearance input { forced-color-adjust: auto; }
}

/* ── Light tokens ─────────────────────────────────────────────────────────── */
html:root[data-pmvr-theme='light'] {
	/* --brand-primary, --brand-primary-hover, --brand-vivid, --color-bg and
	   --color-text live in brand-tokens.css (the quality.yml brand-palette
	   guard locks those names to that file); the rest of the palette is here. */
	--color-bg-deep:        #E9ECF6;
	--color-surface:        #F5F6FB;
	--color-surface-raised: #FFFFFF;
	--color-muted:          #555B7C;
	--color-border:         rgba(14, 19, 48, 0.14);
	--color-overlay-soft:   rgba(75, 60, 200, 0.10);
	--color-on-primary:     #FFFFFF;
	--gold-b:               rgba(75, 60, 200, 0.30);
	--gold-border:          rgba(75, 60, 200, 0.30);
	--gold-m:               rgba(75, 60, 200, 0.08);
	--gold-muted:           rgba(75, 60, 200, 0.08);
	--black:                #E9ECF6;
	--soft:                 #33395A;
	/* header.php */
	--primary-h:            #3C2FA6;
	--bg-drop:              rgba(245, 246, 251, 0.98);
	--nav:                  #33395A;
	/* Hooks for literals that carry !important in the templates. Each source
	   reads var(--hook, <its original literal>), so Dark — where the hook is
	   never defined — is unchanged, and photo surfaces reset it to `initial`. */
	--pmvr-on-accent:  #FFFFFF;
	--pmvr-accent-ink: #4B3CC8;
	--pmvr-band-end:   #E9ECF6;
	--pmvr-footer-bg:   #F5F6FB;
	--pmvr-footer-glow: transparent;
	--pmvr-sticky-ink:  #0E1330;
	color-scheme: light;
}
/* Page-local tokens. Their templates declare them on :root (0,1,0); they are
   re-declared on each page's wrapper rather than on the root, because the
   villa template and the sticky bar read --pmvr-* names of their own. */
html:root[data-pmvr-theme='light'] :is(.pmvr-about, .pmvr-how, .pmvr-comm, .pmvr-chef) {
	--g:  #4B3CC8;
	--gh: #3C2FA6;
	--b:  #E9ECF6;
}
html:root[data-pmvr-theme='light'] :is(.pmvr-request, .pmvr-events) {
	--pmvr-g:      #4B3CC8;
	--pmvr-gh:     #3C2FA6;
	--pmvr-b:      #E9ECF6;
	--pmvr-bg:     #E9ECF6;
	--pmvr-card:   #F5F6FB;
	--pmvr-text:   #0E1330;
	--pmvr-soft:   #33395A;
	--pmvr-muted:  #555B7C;
	--pmvr-border: rgba(14, 19, 48, 0.14);
}

/* ── Photo surfaces keep DARK grounds and light ink in Light (THV D-026, RRC
   D-013/D-037). Custom properties inherit as COMPUTED values, so every alias
   brand-tokens.css derives on html:root (--gold, --text, --card...) is declared
   again here, or it would arrive already resolved to the Light value. body's
   ink is inherited as a computed colour too: `color` is re-stated. ───── */
html:root[data-pmvr-theme='light'] :is(
	.clr-hero, .pmvr-pagehero, .clx-dest-hero, .clx-dest-final, .pmvr-area-hero,
	.clx-mega__feature, .clx-villa-card__media, .clx-dest-area-card__img,
	.pmvr-cslider__media) {
	/* The five names brand-tokens.css locks (D-042, quality.yml) are NOT
	   re-declared: the aliases below take the Dark values directly. */
	--color-bg-deep:        #070615;
	--color-surface:        #141227;
	--color-surface-raised: #1B1830;
	--color-muted:          #C2BCE0;
	--color-border:         rgba(251, 251, 251, 0.10);
	--color-overlay-soft:   rgba(158, 140, 248, 0.15);
	--color-on-primary:     #0A0818;
	--gold:        #9E8CF8;
	--gold-hover:  #B9ADFA;
	--gold-h:      #B9ADFA;
	--gold-b:      rgba(158, 140, 248, 0.24);
	--gold-border: rgba(158, 140, 248, 0.24);
	--gold-m:      rgba(158, 140, 248, 0.10);
	--gold-muted:  rgba(158, 140, 248, 0.10);
	--primary:     #9E8CF8;
	--bg:          #0B0A1A;
	--bg2:         var(--color-bg-deep);
	--black:       #020706;
	--card:        var(--color-surface);
	--card2:       var(--color-surface-raised);
	--text:        #FBFBFB;
	--muted:       var(--color-muted);
	--soft:        rgba(251, 251, 251, 0.80);
	--border:      var(--color-border);
	--on-primary:  var(--color-on-primary);
	--primary-h:   #161536;
	--nav:         rgba(251, 251, 251, 0.7);
	--g:           #9E8CF8;
	--gh:          #B9ADFA;
	--b:           #020706;
	--pmvr-g:      #9E8CF8;
	--pmvr-gh:     #B9ADFA;
	--pmvr-b:      #020706;
	--pmvr-bg:     #070615;
	--pmvr-card:   #111023;
	--pmvr-text:   #F7F4EC;
	--pmvr-soft:   rgba(247, 244, 236, 0.78);
	--pmvr-muted:  #A3A9C4;
	--pmvr-border: rgba(255, 255, 255, 0.10);
	--pmvr-on-accent:  initial;
	--pmvr-accent-ink: initial;
	--pmvr-band-end:   initial;
	--pmvr-footer-bg:   initial;
	--pmvr-footer-glow: initial;
	color: #FBFBFB;
	color-scheme: dark;
}

/* The one direct read of a locked brand name on a photo surface: the home
   hero stats use var(--brand-vivid), which is #5B41E6 in Light. */
html:root[data-pmvr-theme='light'] .clr-hero .clr-hero__stat-num { color: #6D52F4; }

/* ── Header, mega menu, mobile menu (header.php literals) ─────────────────── */
html:root[data-pmvr-theme='light'] .clx-header,
html:root[data-pmvr-theme='light'] .clx-header.scrolled { background: #F5F6FB; box-shadow: 0 1px 0 rgba(14, 19, 48, 0.08); }
html:root[data-pmvr-theme='light'] .clx-header.scrolled { box-shadow: 0 4px 24px rgba(14, 19, 48, 0.10); }
html:root[data-pmvr-theme='light'] .clx-header::before { background: linear-gradient(90deg, transparent, rgba(75, 60, 200, 0.35), transparent); }
html:root[data-pmvr-theme='light'] :is(.clx-logo__mark, .footer-logo-mark) :is([stroke='#9E8CF8'], [stroke='#B9ADFA']) { stroke: #4B3CC8; }
html:root[data-pmvr-theme='light'] :is(.clx-logo__mark, .footer-logo-mark) [fill='#9E8CF8'] { fill: #4B3CC8; }
html:root[data-pmvr-theme='light'] :is(.clx-logo__mark, .footer-logo-mark) [stroke^='rgba(255,255,255'] { stroke: rgba(14, 19, 48, 0.30); }
html:root[data-pmvr-theme='light'] :is(.clx-nav__link:hover, .clx-nav__item.open .clx-nav__link, .clx-mega__item:hover) { background: rgba(14, 19, 48, 0.05); }
html:root[data-pmvr-theme='light'] .clx-btn-ghost { border-color: rgba(14, 19, 48, 0.28); }
html:root[data-pmvr-theme='light'] .clx-btn-ghost:hover { border-color: rgba(14, 19, 48, 0.5); background: rgba(14, 19, 48, 0.05); }
html:root[data-pmvr-theme='light'] .clx-mega { box-shadow: 0 30px 80px rgba(14, 19, 48, 0.16); }
html:root[data-pmvr-theme='light'] :is(.clx-mega__name, .clx-mega__chip, .clx-mobile-sub__chips a) { color: var(--soft); }
html:root[data-pmvr-theme='light'] .clx-vns { background: #FFFFFF; border-color: rgba(14, 19, 48, 0.24); }
html:root[data-pmvr-theme='light'] .clx-vns .clx-vns__go { border-left-color: rgba(14, 19, 48, 0.24); }
html:root[data-pmvr-theme='light'] .pmvr-appearance fieldset { box-shadow: 0 12px 28px rgba(14, 19, 48, 0.14); }
html:root[data-pmvr-theme='light'] .clx-vns .clx-vns__input::placeholder { opacity: 1; }

/* ── Home (front-page.php, shortlist filter, crystal slider) ──────────────── */
/* The shortlist bar overlaps the hero's lower edge and continues onto the page,
   so it becomes a white panel (RRC D-013 rule 2) rather than a dark one. */
html:root[data-pmvr-theme='light'] .pmvr-filter { background: #FFFFFF; box-shadow: 0 24px 60px rgba(14, 19, 48, 0.14); }
html:root[data-pmvr-theme='light'] .pmvr-filter__input option { background: #FFFFFF; color: var(--text); }
html:root[data-pmvr-theme='light'] :is(.pmvr-filter__submit, .pmvr-filter .pmvr-filter__submit:focus) { color: #FFFFFF; }
html:root[data-pmvr-theme='light'] .pmvr-filter__note { opacity: 1; }
html:root[data-pmvr-theme='light'] .clr-match-strip__inner { background: var(--card); }
html:root[data-pmvr-theme='light'] .btn-ghost:not(:is(.clr-hero, .clx-dest-hero, .clx-dest-final, .pmvr-pagehero, .pmvr-area-hero) *) { background: rgba(255, 255, 255, 0.55); }
html:root[data-pmvr-theme='light'] .pmvr-cslider__controls { background: rgba(14, 19, 48, 0.04); }
html:root[data-pmvr-theme='light'] .pmvr-cslider__controls .pmvr-cslider__nav:is(:hover, :focus) { background: var(--gold-m); }
/* Icon-only arrows: the Dark hairline (--gold-border) is 1.8:1 on the Light
   ground, under WCAG 1.4.11's 3:1 for a control boundary; the full accent is 6.40. */
html:root[data-pmvr-theme='light'] :is(.pmvr-rail-nav .pmvr-rail-btn, .pmvr-cslider__controls .pmvr-cslider__nav) { border-color: var(--gold); }
html:root[data-pmvr-theme='light'] .pmvr-rail-nav .pmvr-rail-btn { background: rgba(255, 255, 255, 0.7); }
html:root[data-pmvr-theme='light'] .pmvr-rail-nav .pmvr-rail-btn:is(:hover, :focus):not(:disabled) { background: var(--gold-m); }

/* ── Magazine index and article (archive.php, single.php literals) ────────── */
html:root[data-pmvr-theme='light'] :is(.pmvr-mag, .pmvr-magindex) { color: var(--text); }
html:root[data-pmvr-theme='light'] :is(.pmvr-mag, .pmvr-magindex) a { color: var(--gold); }
html:root[data-pmvr-theme='light'] .pmvr-mag__crumbs { color: var(--muted); }
html:root[data-pmvr-theme='light'] .pmvr-mag__crumbs a { color: var(--soft); }
html:root[data-pmvr-theme='light'] :is(.pmvr-mag__crumbs a, .pmvr-side-links a, .pmvr-mag__body a):hover { color: var(--gold-h); }
html:root[data-pmvr-theme='light'] :is(.pmvr-mag__eyebrow, .pmvr-magindex__eyebrow, .pmvr-feature__kicker, .pmvr-magcard__cat, .pmvr-feature__more, .pmvr-magcard__more, .pmvr-side-links a::after) { color: var(--gold); }
html:root[data-pmvr-theme='light'] :is(.pmvr-mag__h1, .pmvr-mag__body :is(h2, h3, strong), .pmvr-side-card :is(h2, h3), .pmvr-mag__kr h2, .pmvr-mag__kr-card span, .pmvr-mag__cta-inner h2,
	.pmvr-magindex__h1, .pmvr-magindex__hero-card h2, .pmvr-magindex__side-card h3, .pmvr-feature h2, .pmvr-magindex__group-title, .pmvr-magcard__title, .pmvr-magindex__cta-inner h2) { color: var(--text); }
html:root[data-pmvr-theme='light'] :is(.pmvr-mag__body, .pmvr-mag__body blockquote, .pmvr-side-card p, .pmvr-side-links a, .pmvr-mag__cta-inner p,
	.pmvr-magindex__lede, .pmvr-magindex__hero-card p, .pmvr-magindex__side-card p, .pmvr-feature p, .pmvr-magcard__excerpt, .pmvr-magindex__empty, .pmvr-magindex__cta-inner p, .pmvr-magindex__pagination .page-numbers) { color: var(--soft); }
html:root[data-pmvr-theme='light'] :is(.pmvr-mag__meta, .pmvr-side-note) { color: var(--muted); }
html:root[data-pmvr-theme='light'] :is(.pmvr-mag__body hr, .pmvr-mag__kr) { border-top-color: var(--border); }
html:root[data-pmvr-theme='light'] :is(.pmvr-side-links a, .pmvr-magindex__pagination .page-numbers) { border-color: var(--border); }
html:root[data-pmvr-theme='light'] :is(.pmvr-side-card, .pmvr-magindex__side-card, .pmvr-mag__cta-inner, .pmvr-magindex__cta-inner) { background: linear-gradient(180deg, rgba(75, 60, 200, 0.06), rgba(255, 255, 255, 0.6)); }
html:root[data-pmvr-theme='light'] :is(.pmvr-feature, .pmvr-magcard, .pmvr-mag__kr-card) { background: rgba(255, 255, 255, 0.6); }
html:root[data-pmvr-theme='light'] :is(.pmvr-feature, .pmvr-magcard, .pmvr-mag__kr-card):hover { box-shadow: 0 22px 60px rgba(14, 19, 48, 0.12); }
html:root[data-pmvr-theme='light'] :is(.pmvr-side-btn, .pmvr-mag__cta-btn):not(.pmvr-side-btn--ghost) { background: var(--gold); }
html:root[data-pmvr-theme='light'] :is(.pmvr-side-btn, .pmvr-mag__cta-btn):not(.pmvr-side-btn--ghost):hover { background: var(--gold-h); }
html:root[data-pmvr-theme='light'] .pmvr-side-btn--ghost { background: transparent; }
html:root[data-pmvr-theme='light'] .pmvr-side-btn--ghost:hover { background: var(--gold-m); }
html:root[data-pmvr-theme='light'] .pmvr-magindex__pagination .page-numbers.current { background: var(--gold); border-color: var(--gold); color: #FFFFFF; }

/* ── Villa single (single-villa.css owns a scoped token set on .pmvr-property) */
html:root[data-pmvr-theme='light'] :is(.pmvr-property, .pmvr-sticky-bar, .pmvr-mobile-cta) {
	--pmvr-bg:         #E9ECF6;
	--pmvr-bg2:        #E9ECF6;
	--pmvr-bg3:        #F5F6FB;
	--pmvr-card:       #F5F6FB;
	--pmvr-card-hover: #FFFFFF;
	--pmvr-card-2:     #F5F6FB;
	--pmvr-accent:     #4B3CC8;
	--pmvr-accent-l:   #3C2FA6;
	--pmvr-accent-d:   #3C2FA6;
	--pmvr-accent-dim: rgba(75, 60, 200, 0.10);
	--pmvr-accent-bg:  rgba(75, 60, 200, 0.06);
	--pmvr-text:       #0E1330;
	--pmvr-muted:      #33395A;
	--pmvr-soft:       #555B7C;
	--pmvr-border:     rgba(14, 19, 48, 0.12);
	--pmvr-border-a:   rgba(75, 60, 200, 0.24);
	--pmvr-glow:       rgba(75, 60, 200, 0.10);
}
/* The villa hero keeps the villa's own Dark token set. */
html:root[data-pmvr-theme='light'] .pmvr-property .pmvr-hero {
	--pmvr-bg:         #000000;
	--pmvr-bg2:        #050505;
	--pmvr-bg3:        #0A0A0A;
	--pmvr-card:       #11181F;
	--pmvr-card-hover: #161E26;
	--pmvr-card-2:     #0F151C;
	--pmvr-accent:     #9E8CF8;
	--pmvr-accent-l:   #B9ADFA;
	--pmvr-accent-d:   #5044AA;
	--pmvr-accent-dim: rgba(158, 140, 248, 0.10);
	--pmvr-accent-bg:  rgba(158, 140, 248, 0.06);
	--pmvr-text:       #F5F7FA;
	--pmvr-muted:      #9CA8B5;
	--pmvr-soft:       #6B7480;
	--pmvr-border:     rgba(155, 175, 195, 0.08);
	--pmvr-border-a:   rgba(158, 140, 248, 0.18);
	--pmvr-glow:       rgba(158, 140, 248, 0.13);
	--pmvr-on-accent:  initial;
	--pmvr-accent-ink: initial;
	color: var(--pmvr-text);
	color-scheme: dark;
}
html:root[data-pmvr-theme='light'] :is(.pmvr-about__panels, .pmvr-dest-card) { background: rgba(255, 255, 255, 0.65); box-shadow: 0 24px 60px rgba(14, 19, 48, 0.10); }
html:root[data-pmvr-theme='light'] .pmvr-sim-card__body { background: var(--pmvr-card); }
html:root[data-pmvr-theme='light'] .pmvr-sim-card__name { color: var(--pmvr-text); }
html:root[data-pmvr-theme='light'] :is(.pmvr-sim-card__loc, .pmvr-sim-card__specs) { color: var(--pmvr-soft); }
html:root[data-pmvr-theme='light'] .pmvr-sim-card__footer { border-top-color: var(--pmvr-border); }
html:root[data-pmvr-theme='light'] .pmvr-sim-card:hover { box-shadow: 0 16px 48px rgba(14, 19, 48, 0.14), 0 0 0 1px rgba(75, 60, 200, 0.12); }
html:root[data-pmvr-theme='light'] .pmvr-stats__meta-row { border-top-color: var(--pmvr-border); }
html:root[data-pmvr-theme='light'] :is(.pmvr-gallery__more:hover, .pmvr-about__arrow:hover, .pmvr-about__arrow:focus) { color: #FFFFFF; }
html:root[data-pmvr-theme='light'] .pmvr-form__message.error { color: #9B2031; }

/* ── Shared buttons, panels and archive text (template literals) ─────────── */
/* .btn-gold carries #020706 ink on --gold; on the Light #4B3CC8 that is 2.68:1.
   Photo surfaces keep the Dark pair. */
html:root[data-pmvr-theme='light'] :is(.btn-gold, .btn-gold:hover, .btn-gold:focus, .clx-vf-pagelinks__a.is-current):not(:is(.clr-hero, .clx-dest-hero, .clx-dest-final, .pmvr-pagehero, .pmvr-area-hero) *) { color: #FFFFFF; }
html:root[data-pmvr-theme='light'] .pmvr-archive { color: var(--text); }
html:root[data-pmvr-theme='light'] :is(.pmvr-about, .pmvr-how, .pmvr-owner, .pmvr-chef, .pmvr-comm) :is(.panel, .form-card):not(.pmvr-pagehero *),
html:root[data-pmvr-theme='light'] :is(.pmvr-request, .pmvr-events) .pmvr-panel { background: var(--card); }
html:root[data-pmvr-theme='light'] :is(.btn2, .pmvr-btn-ghost):not(:is(.clr-hero, .clx-dest-hero, .clx-dest-final, .pmvr-pagehero, .pmvr-area-hero) *) { border-color: rgba(14, 19, 48, 0.28); }
html:root[data-pmvr-theme='light'] .pmvr-area .pmvr-btn-ghost:not(.pmvr-area-hero *) { background: rgba(255, 255, 255, 0.55); border-color: var(--gold); }
html:root[data-pmvr-theme='light'] .pmvr-area-features__card { background: var(--card); }
html:root[data-pmvr-theme='light'] .pmvr-collection-cta { background: linear-gradient(180deg, rgba(75, 60, 200, 0.06), rgba(255, 255, 255, 0.6)); }
html:root[data-pmvr-theme='light'] .pmvr-collection-cta a { color: var(--gold); }
html:root[data-pmvr-theme='light'] .pmvr-chef .faq__q { color: var(--text); }
html:root[data-pmvr-theme='light'] .pmvr-chef .faq__a { color: var(--soft); }
html:root[data-pmvr-theme='light'] :is(.pmvr-about, .pmvr-how, .pmvr-owner, .pmvr-chef, .pmvr-comm) :is(.stats, .grid, .steps, .strip-grid),
html:root[data-pmvr-theme='light'] :is(.pmvr-request, .pmvr-events) :is(.pmvr-grid, .pmvr-steps, .pmvr-strip__grid),
html:root[data-pmvr-theme='light'] .clr-seo-cards { background: rgba(14, 19, 48, 0.08); border-color: rgba(14, 19, 48, 0.08); }

/* The sticky bar and the phone CTA bar sit OUTSIDE .pmvr-property, so they are
   listed beside it on the villa token block above; their !important ink reads
   --pmvr-sticky-ink. */
html:root[data-pmvr-theme='light'] :is(.pmvr-sticky-bar, .pmvr-mobile-cta) { background: rgba(245, 246, 251, 0.96); }
html:root[data-pmvr-theme='light'] .pmvr-sticky-bar__name { text-shadow: none; }

/* ── Footer (footer.php literals). It follows the Light palette on a raised
   #F5F6FB ground; front-page.php's !important repaint reads --pmvr-footer-bg. */
html:root[data-pmvr-theme='light'] .site-footer { background: var(--pmvr-footer-bg); color: var(--text); }
html:root[data-pmvr-theme='light'] .site-footer::before { background: linear-gradient(90deg, transparent 0%, #4B3CC8 22%, #5B41E6 50%, #4B3CC8 78%, transparent 100%); box-shadow: none; }
html:root[data-pmvr-theme='light'] .footer-atmosphere { background: radial-gradient(ellipse 70% 55% at 72% 4%, rgba(75, 60, 200, 0.08) 0%, transparent 72%), var(--pmvr-footer-bg); }
html:root[data-pmvr-theme='light'] .footer-atmosphere::after { background: none; }
html:root[data-pmvr-theme='light'] :is(.footer-upper, .footer-main, .pmvr-footer-news) { border-color: var(--border); }
html:root[data-pmvr-theme='light'] .footer-main { background: none; }
html:root[data-pmvr-theme='light'] .footer-bottom { background: rgba(14, 19, 48, 0.04); }
html:root[data-pmvr-theme='light'] :is(.footer-statement-eyebrow, .footer-statement-title em, .footer-logo-sub, .footer-col-title, .la, .response-badge, .footer-copy span) { color: var(--gold); }
html:root[data-pmvr-theme='light'] :is(.footer-statement-eyebrow::before, .footer-col-title::before) { background: var(--gold); }
html:root[data-pmvr-theme='light'] .footer-col-title { border-bottom-color: rgba(75, 60, 200, 0.22); }
html:root[data-pmvr-theme='light'] :is(.footer-statement-title, .footer-logo-name) { color: var(--text); text-shadow: none; }
html:root[data-pmvr-theme='light'] :is(.footer-brand-desc, .footer-links a, .contact-label, .pmvr-footer-reviews__label, .pmvr-footer-news__title) { color: var(--soft); }
html:root[data-pmvr-theme='light'] :is(.footer-response, .contact-sub, .pmvr-footer-reviews__sub, .footer-copy, .footer-legal a, .pmvr-footer-news__date) { color: var(--muted); }
html:root[data-pmvr-theme='light'] :is(.footer-links a:hover, .footer-legal a:hover, .pmvr-footer-award:hover .pmvr-footer-award__meta, .pmvr-footer-news:hover .pmvr-footer-news__title) { color: var(--text); }
html:root[data-pmvr-theme='light'] :is(.contact-icon, .pmvr-footer-reviews__icon) svg { stroke: var(--gold); }
html:root[data-pmvr-theme='light'] :is(.btn-footer-primary, .btn-footer-primary:hover) { color: #FFFFFF; }
html:root[data-pmvr-theme='light'] .btn-footer-primary { background: var(--gold); border-color: var(--gold); }
html:root[data-pmvr-theme='light'] .btn-footer-primary:hover { background: var(--gold-h); border-color: var(--gold-h); }
html:root[data-pmvr-theme='light'] .btn-footer-ghost { background: rgba(255, 255, 255, 0.6); color: var(--gold); border-color: rgba(75, 60, 200, 0.4); }
html:root[data-pmvr-theme='light'] .btn-footer-ghost:hover { background: var(--gold-m); border-color: var(--gold); }

/* The destination page's closing band paints its photograph with
   background-attachment: fixed over a TRANSPARENT box. Where the photo does not
   paint (fixed attachment ignored, image not loaded) the Light page would show
   through the 85% black overlay as grey under pinned white ink. In Dark the page
   under it is already #020706, so this matches Dark exactly. */
html:root[data-pmvr-theme='light'] .clx-dest-final { background-color: var(--black); }

/* Destination phone conversion bar (taxonomy-destination.php): a fixed bar,
   so the contrast sweep never measures it. It follows the Light palette like
   the villa booking bars. */
html:root[data-pmvr-theme='light'] .clx-dest-mobilecta { background: rgba(245, 246, 251, 0.96); border-top: 1px solid var(--border); }
html:root[data-pmvr-theme='light'] .clx-dest-mobilecta__btn--primary { color: #FFFFFF; }
html:root[data-pmvr-theme='light'] .clx-dest-mobilecta__btn--wa { background: #FFFFFF; border-color: rgba(14, 19, 48, 0.24); }

/* Site popup (site-popup.css) reads the brand tokens and follows Light on its
   own; only its error ink is a local literal (#F4B8A8, 1.5:1 on #F5F6FB).
   #9B2031 is 7.36 on the Light panel. */
html:root[data-pmvr-theme='light'] .pmvr-popup { --pmvr-popup-error: #9B2031; }
