/**
 * Dark mode — stessa struttura del sito, palette notturna.
 * Disattiva: in functions.php imposta VATICAN_DARK_MODE a false.
 */
html:has(body.vla-dark-mode) {
  color-scheme: dark;
  --vla-dark: #e8eef6;
  --vla-dark-2: #06090d;
  --vla-text: #b9c7d9;
  --vla-text-light: #8494a8;
  --vla-white: #1a2332;
  --vla-beige: #0c1018;
  --vla-beige-2: #243044;
  --vla-orange: #7a9ec4;
  --vla-orange-hover: #93b5d9;
  --vla-accent-soft: rgba(122, 158, 196, 0.18);
  --vla-accent-glow: rgba(122, 158, 196, 0.45);
  --vla-shadow-sm: 0 2px 12px rgba(0, 0, 0, 0.35);
  --vla-shadow-md: 0 10px 36px rgba(0, 0, 0, 0.48);
  --vla-shadow-lg: 0 24px 64px rgba(0, 0, 0, 0.55);
  background: var(--vla-beige);
}

body.vla-dark-mode {
  background:
    radial-gradient(ellipse 120% 80% at 100% 0%, rgba(63, 92, 122, 0.14) 0%, transparent 50%),
    radial-gradient(ellipse 80% 50% at 0% 100%, rgba(36, 48, 68, 0.5) 0%, transparent 45%),
    linear-gradient(180deg, #0f141c 0%, var(--vla-beige) 45%, #0a0e14 100%) !important;
}

body.vla-dark-mode ::selection {
  background: rgba(122, 158, 196, 0.35);
  color: var(--vla-dark);
}

/* Header */
body.vla-dark-mode .vla-header.vla-header--at-top {
  background: rgba(16, 22, 32, 0.92) !important;
  border-bottom-color: rgba(122, 158, 196, 0.12);
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.4);
}

body.vla-dark-mode .vla-header:not(.vla-header--at-top) {
  background: rgba(14, 20, 30, 0.78) !important;
  border-bottom-color: rgba(122, 158, 196, 0.14);
  box-shadow: 0 8px 40px rgba(0, 0, 0, 0.45);
}

body.vla-dark-mode .vla-logo img {
  box-shadow:
    0 0 0 2px rgba(30, 40, 55, 0.9),
    0 4px 24px rgba(0, 0, 0, 0.45);
}

body.vla-dark-mode .vla-mobile-toggle span {
  background: var(--vla-dark);
}

body.vla-dark-mode .vla-lang-btn {
  background: rgba(30, 40, 55, 0.75) !important;
  color: var(--vla-dark) !important;
  border-color: rgba(122, 158, 196, 0.35);
}

body.vla-dark-mode .vla-lang-btn:hover {
  background: var(--vla-orange) !important;
  color: #ffffff !important;
}

body.vla-dark-mode .vla-lang-dropdown {
  background: rgba(22, 30, 44, 0.96);
  border-color: rgba(122, 158, 196, 0.2);
}

body.vla-dark-mode .vla-btn-primary,
body.vla-dark-mode .vla-btn-primary:hover {
  color: #ffffff !important;
  background: #5a7d9e !important;
  border-color: rgba(255, 255, 255, 0.28) !important;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.35);
}
body.vla-dark-mode .vla-btn-primary:hover {
  background: #6d92b5 !important;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.45);
}

body.vla-dark-mode .vla-btn-white {
  background: #243044 !important;
  color: var(--vla-dark) !important;
  box-shadow: var(--vla-shadow-sm);
}

body.vla-dark-mode .vla-btn-white:hover {
  background: #2d3d54 !important;
  color: #f0f4fa !important;
}

body.vla-dark-mode.home .vla-hero {
  background: var(--vla-beige);
}

/* Hero: testi sempre chiari (il titolo non usa --vla-white che in dark è scuro) */
body.vla-dark-mode .vla-hero h1 {
  color: #ffffff !important;
  text-shadow: 0 2px 40px rgba(0, 0, 0, 0.55);
}
body.vla-dark-mode .vla-hero-sub {
  color: rgba(255, 255, 255, 0.85) !important;
}
body.vla-dark-mode .vla-hero-kicker {
  color: rgba(255, 255, 255, 0.65);
  border-bottom-color: rgba(255, 255, 255, 0.18);
}
body.vla-dark-mode .vla-btn-hero-secondary {
  color: rgba(255, 255, 255, 0.92) !important;
  border-bottom-color: rgba(255, 255, 255, 0.4) !important;
}
body.vla-dark-mode .vla-btn-hero-secondary:hover {
  color: #ffffff !important;
  border-bottom-color: rgba(255, 255, 255, 0.9) !important;
}

body.vla-dark-mode .vla-calendar-widget--home .vla-card-title {
  color: #e8eef6 !important;
  border-bottom-color: rgba(255, 255, 255, 0.12);
  font-weight: 700;
}

/* Galleria appartamento: pallini visibili su sfondo scuro */
body.vla-dark-mode .vla-beb-slider-dots button {
  background: rgba(255, 255, 255, 0.38);
  border-color: rgba(255, 255, 255, 0.2);
}
body.vla-dark-mode .vla-beb-slider-dots button.is-active {
  background: var(--vla-orange);
  border-color: transparent;
}
body.vla-dark-mode .vla-beb-slider-caption {
  color: var(--vla-text);
}

body.vla-dark-mode .vla-ristorante-card {
  background: rgba(26, 35, 50, 0.88) !important;
  border-color: rgba(122, 158, 196, 0.12) !important;
}
body.vla-dark-mode .vla-ristorante-card h4 {
  color: #e8eef6 !important;
}

body.vla-dark-mode .vla-roma-news-back-btn {
  color: #e8eef6 !important;
  border-color: rgba(122, 158, 196, 0.5) !important;
  background: rgba(26, 35, 50, 0.5) !important;
}
body.vla-dark-mode .vla-roma-news-back-btn:hover {
  background: rgba(122, 158, 196, 0.22) !important;
  color: #ffffff !important;
  border-color: rgba(122, 158, 196, 0.75) !important;
}

body.vla-dark-mode.home .vla-hero-overlay {
  background:
    linear-gradient(
      180deg,
      rgba(12, 18, 28, 0.5) 0%,
      rgba(10, 14, 22, 0.65) 42%,
      rgba(8, 12, 20, 0.78) 68%,
      rgba(12, 16, 24, 0.96) 92%,
      var(--vla-beige) 100%
    ),
    radial-gradient(ellipse 95% 55% at 22% 18%, rgba(63, 92, 122, 0.28) 0%, transparent 52%);
}

body.vla-dark-mode .vla-hero-btns .vla-btn-outline:hover {
  color: #0c1018 !important;
}

body.vla-dark-mode .vla-page-hero-overlay {
  background:
    linear-gradient(180deg, rgba(15, 22, 32, 0.55) 0%, rgba(8, 12, 18, 0.88) 100%),
    radial-gradient(ellipse 70% 50% at 50% 0%, rgba(63, 92, 122, 0.25) 0%, transparent 60%);
}

/* Hero pagine interne: --vla-white in dark è scuro → forza bianco sul titolo sopra foto */
body.vla-dark-mode .vla-page-hero:not(.vla-page-hero-short) h1 {
  color: #ffffff !important;
  text-shadow: 0 2px 32px rgba(0, 0, 0, 0.55);
}

body.vla-dark-mode .vla-page-hero-short {
  background: linear-gradient(180deg, #121820 0%, var(--vla-beige) 100%);
  border-bottom-color: rgba(122, 158, 196, 0.12);
}

body.vla-dark-mode .vla-stat,
body.vla-dark-mode .vla-calendar-widget,
body.vla-dark-mode .vla-servizio-card,
body.vla-dark-mode .vla-recensione,
body.vla-dark-mode .vla-faq-item,
body.vla-dark-mode .vla-esperienza-row,
body.vla-dark-mode .vla-trasporto-card,
body.vla-dark-mode .vla-beb-compact-block {
  background: rgba(26, 35, 50, 0.88) !important;
  border-color: rgba(122, 158, 196, 0.12) !important;
}

body.vla-dark-mode .vla-beb {
  background: linear-gradient(180deg, rgba(20, 28, 40, 0.6) 0%, var(--vla-white) 35%, var(--vla-beige) 100%);
}

body.vla-dark-mode .vla-servizi-cards {
  background: var(--vla-white);
}

body.vla-dark-mode .vla-posizione {
  background: linear-gradient(180deg, var(--vla-white) 0%, var(--vla-beige) 100%);
  border-top-color: rgba(122, 158, 196, 0.1);
}

body.vla-dark-mode .vla-recensioni {
  background: linear-gradient(180deg, var(--vla-beige) 0%, rgba(63, 92, 122, 0.08) 50%, var(--vla-beige) 100%);
}

body.vla-dark-mode .vla-trasporti {
  background: var(--vla-white);
}

body.vla-dark-mode .vla-field input,
body.vla-dark-mode .vla-field select,
body.vla-dark-mode .vla-form input,
body.vla-dark-mode .vla-form textarea {
  background: rgba(12, 16, 24, 0.85);
  border-color: rgba(122, 158, 196, 0.25);
  color: var(--vla-text);
}

body.vla-dark-mode .vla-calendar-widget-hero {
  box-shadow:
    0 24px 64px rgba(0, 0, 0, 0.55),
    0 0 0 1px rgba(122, 158, 196, 0.1) inset;
}

body.vla-dark-mode .vla-outro-cta-section {
  background:
    radial-gradient(ellipse 100% 80% at 50% 100%, rgba(63, 92, 122, 0.12) 0%, transparent 55%),
    linear-gradient(180deg, rgba(20, 28, 40, 0.35) 0%, var(--vla-beige) 100%);
}

body.vla-dark-mode .vla-outro-card {
  background: linear-gradient(165deg, rgba(28, 38, 54, 0.98) 0%, rgba(22, 30, 44, 0.96) 100%);
  border-color: rgba(122, 158, 196, 0.18);
  box-shadow: var(--vla-shadow-lg), 0 1px 0 rgba(255, 255, 255, 0.04) inset;
}

body.vla-dark-mode .vla-faq-item[open] > summary::after {
  color: #fff;
}

body.vla-dark-mode .vla-roma-news-card {
  background: var(--vla-white);
  border-color: rgba(122, 158, 196, 0.15);
}

body.vla-dark-mode .vla-roma-news-search-input {
  background: rgba(12, 16, 24, 0.85);
  border-color: var(--vla-beige-2);
  color: var(--vla-text);
}

body.vla-dark-mode .vla-prenotazione-summary,
body.vla-dark-mode .vla-prenotazione-box,
body.vla-dark-mode .vla-prenotazione-airbnb-ref-box,
body.vla-dark-mode .vla-prenotazione-cost-box,
body.vla-dark-mode .vla-prenotazione-form-card {
  background: var(--vla-white);
  border-color: rgba(122, 158, 196, 0.15);
}

body.vla-dark-mode .vla-form-status--success {
  background: rgba(34, 70, 50, 0.45);
  color: #b8e6c8;
  border-color: rgba(80, 180, 120, 0.35);
}

body.vla-dark-mode .vla-form-status--error {
  background: rgba(70, 30, 30, 0.45);
  color: #f0b4b4;
  border-color: rgba(200, 80, 80, 0.35);
}

body.vla-dark-mode .vla-phone-prefix-wrap {
  background: rgba(12, 16, 24, 0.6);
  border-color: rgba(122, 158, 196, 0.25);
}

body.vla-dark-mode .vla-footer {
  background: linear-gradient(180deg, #0a0e14 0%, #05070a 100%);
}

body.vla-dark-mode .vla-footer-social a {
  background: rgba(63, 92, 122, 0.45);
  border-color: rgba(255, 255, 255, 0.08);
}

body.vla-dark-mode .vla-whatsapp-fab {
  background: linear-gradient(145deg, #243044 0%, #1a2332 100%);
  box-shadow:
    0 8px 32px rgba(0, 0, 0, 0.5),
    0 0 0 1px rgba(122, 158, 196, 0.2) inset;
}

body.vla-dark-mode .vla-mobile-menu {
  background:
    radial-gradient(ellipse 100% 80% at 100% 0%, rgba(63, 92, 122, 0.15) 0%, transparent 50%),
    linear-gradient(180deg, #141c28 0%, #0d1219 100%);
}

body.vla-dark-mode .vla-mobile-menu .vla-nav-list li {
  border-bottom-color: rgba(255, 255, 255, 0.06);
}

body.vla-dark-mode .vla-mobile-menu-close {
  color: var(--vla-dark);
}

body.vla-dark-mode .flatpickr-calendar {
  background: #1a2332;
  border-color: rgba(122, 158, 196, 0.25);
  box-shadow: var(--vla-shadow-lg);
}

body.vla-dark-mode .flatpickr-months .flatpickr-month,
body.vla-dark-mode .flatpickr-current-month .flatpickr-monthDropdown-months,
body.vla-dark-mode .flatpickr-current-month input.cur-year {
  color: var(--vla-text) !important;
}

body.vla-dark-mode .flatpickr-weekdays,
body.vla-dark-mode span.flatpickr-weekday {
  color: var(--vla-text-light) !important;
}

body.vla-dark-mode .flatpickr-day {
  color: var(--vla-text) !important;
}

body.vla-dark-mode .flatpickr-day.prevMonthDay,
body.vla-dark-mode .flatpickr-day.nextMonthDay {
  color: rgba(255, 255, 255, 0.25) !important;
}

body.vla-dark-mode .vla-roma-news-pagination .page-numbers {
  background: var(--vla-white);
  border-color: rgba(122, 158, 196, 0.2);
  color: var(--vla-text);
}

body.vla-dark-mode .vla-roma-news-pagination .page-numbers:hover,
body.vla-dark-mode .vla-roma-news-pagination .page-numbers.current {
  background: var(--vla-orange);
  border-color: var(--vla-orange);
  color: #fff;
}

body.vla-dark-mode .vla-map-placeholder {
  background: rgba(12, 16, 24, 0.5);
  border-color: rgba(122, 158, 196, 0.2);
}
body.vla-dark-mode .vla-map-iframe {
  filter: invert(90%) hue-rotate(180deg) saturate(0.8) contrast(0.92) brightness(0.95);
}

body.vla-dark-mode .vla-gallery-item span {
  background: linear-gradient(transparent, rgba(0, 0, 0, 0.85));
}

/* Guide pillar: tabelle (override inline chiaro su thead / righe) */
body.vla-dark-mode .vla-guide-table thead tr,
body.vla-dark-mode .vla-pillar-page table.vla-guide-table thead tr {
  background: rgba(26, 35, 50, 0.98) !important;
}
body.vla-dark-mode .vla-guide-table thead th,
body.vla-dark-mode .vla-pillar-page table.vla-guide-table thead th {
  color: #e8eef6 !important;
  border-bottom-color: rgba(122, 158, 196, 0.45) !important;
}
body.vla-dark-mode .vla-guide-table tbody td,
body.vla-dark-mode .vla-pillar-page table.vla-guide-table tbody td {
  color: var(--vla-text) !important;
  border-bottom-color: rgba(122, 158, 196, 0.18) !important;
}
body.vla-dark-mode .vla-pillar-page table.vla-table thead th {
  color: #e8eef6 !important;
  border-bottom-color: rgba(201, 169, 110, 0.45) !important;
  background: rgba(26, 35, 50, 0.95) !important;
}
body.vla-dark-mode .vla-pillar-page table.vla-table thead tr {
  background: rgba(26, 35, 50, 0.98) !important;
}
body.vla-dark-mode .vla-pillar-page table tbody tr {
  background: transparent !important;
}
body.vla-dark-mode .vla-pillar-page table tbody tr:nth-child(odd) td {
  background: rgba(26, 35, 50, 0.55) !important;
}
body.vla-dark-mode .vla-pillar-page table tbody tr:nth-child(even) td {
  background: rgba(20, 28, 40, 0.72) !important;
}
body.vla-dark-mode .vla-guide-footnote {
  color: rgba(200, 210, 224, 0.88) !important;
}
body.vla-dark-mode .vla-guide-see-also {
  color: #f0f4fa !important;
  border-top-color: rgba(122, 158, 196, 0.35) !important;
}
body.vla-dark-mode .vla-guide-see-also a {
  color: #b8d4f0 !important;
}
body.vla-dark-mode .vla-guide-see-also a:hover {
  color: #ffffff !important;
}
body.vla-dark-mode .vla-guide-updated {
  color: rgba(200, 210, 224, 0.75) !important;
}
body.vla-dark-mode .vla-btn.vla-btn-outline.vla-roma-news-back-btn {
  color: #f0f4fa !important;
  border-color: rgba(230, 238, 248, 0.55) !important;
  background: rgba(12, 18, 28, 0.65) !important;
}
body.vla-dark-mode .vla-btn.vla-btn-outline.vla-roma-news-back-btn:hover {
  background: rgba(122, 158, 196, 0.22) !important;
  color: #ffffff !important;
  border-color: rgba(230, 238, 248, 0.85) !important;
}
