/* VVS Centrale — thème sombre global
   Fond noir, texte blanc, accent or (logo).
   Chargé après theme.min.css sur toutes les pages. */

:root {
  --vvs-bg: #0a0a0a;
  --vvs-surface: #151515;
  --vvs-surface-2: #1d1d1d;
  --vvs-border: #2a2a2a;
  --vvs-text: #f5f5f5;
  --vvs-muted: #b9b9b9;
  --vvs-gold: #d4af37;
  --vvs-gold-strong: #c9a227;
  --bs-body-bg: var(--vvs-bg);
  --bs-body-color: var(--vvs-text);
  --bs-border-color: var(--vvs-border);
  --bs-heading-color: var(--vvs-text);
  --bs-emphasis-color: var(--vvs-text);
  --bs-secondary-color: var(--vvs-muted);
  --bs-tertiary-bg: var(--vvs-surface);
  --bs-link-color: var(--vvs-gold);
  --bs-link-hover-color: #e6c85c;
}

html, body {
  background-color: var(--vvs-bg) !important;
  color: var(--vvs-text) !important;
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6,
.display-1, .display-2, .display-3, .display-4, .display-5, .display-6 {
  color: var(--vvs-text);
}

p, li, span, label, small, .fs-sm, .form-label {
  color: inherit;
}

a { color: var(--vvs-gold); }
a:hover, a:focus { color: #e6c85c; }

.text-dark { color: var(--vvs-text) !important; }
.text-muted, .text-body-secondary { color: var(--vvs-muted) !important; }
.text-primary { color: var(--vvs-gold) !important; }
.text-success { color: #6fcf8f !important; }

/* Fonds clairs du thème d'origine */
.bg-light, .bg-white,
section[style*="f8f9fa"],
section[style*="ffffff"] {
  background: var(--vvs-bg) !important;
}
.bg-secondary-subtle, .bg-body-tertiary { background-color: var(--vvs-surface) !important; }
.bg-info { background-color: var(--vvs-surface-2) !important; }

/* Header / navigation */
header, .navbar, .navbar-expand-lg, .navbar-stuck {
  background-color: rgba(10, 10, 10, 0.96) !important;
  border-bottom: 1px solid var(--vvs-border);
}
.navbar .nav-link, .navbar .navbar-brand { color: var(--vvs-text) !important; }
.navbar .nav-link:hover, .navbar .nav-link.active { color: var(--vvs-gold) !important; }
.navbar-toggler { color: var(--vvs-text); border-color: var(--vvs-border); }
.navbar-toggler-icon { filter: invert(1); }
.dropdown-menu {
  background-color: var(--vvs-surface-2);
  border: 1px solid var(--vvs-border);
}
.dropdown-item { color: var(--vvs-text); }
.dropdown-item:hover, .dropdown-item:focus {
  background-color: var(--vvs-surface);
  color: var(--vvs-gold);
}
.offcanvas, .offcanvas-body { background-color: var(--vvs-bg); color: var(--vvs-text); }

/* Boutons */
.btn-primary {
  background-color: var(--vvs-gold-strong) !important;
  border-color: var(--vvs-gold-strong) !important;
  color: #0a0a0a !important;
  font-weight: 600;
}
.btn-primary:hover, .btn-primary:focus {
  background-color: #e6c85c !important;
  border-color: #e6c85c !important;
  color: #0a0a0a !important;
}
.btn-outline-dark, .btn-outline-secondary {
  color: var(--vvs-text) !important;
  border-color: var(--vvs-border) !important;
  background: transparent;
}
.btn-outline-dark:hover, .btn-outline-secondary:hover {
  background-color: var(--vvs-surface-2) !important;
  border-color: var(--vvs-gold) !important;
  color: var(--vvs-gold) !important;
}
.btn-outline-light:hover { background-color: var(--vvs-gold-strong); border-color: var(--vvs-gold-strong); color: #0a0a0a; }

/* Cartes et surfaces */
.card {
  background-color: var(--vvs-surface);
  border: 1px solid var(--vvs-border);
  color: var(--vvs-text);
}
.card .card-title, .card .card-body { color: var(--vvs-text); }
.shadow-lg, .shadow-sm, .shadow { box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.6) !important; }

/* Bloc réservation (hero) */
#reservations-forms {
  background-color: var(--vvs-surface) !important;
  border: 1px solid var(--vvs-border);
}
.info-reservation {
  background-color: rgba(212, 175, 55, 0.08) !important;
  border-left: 4px solid var(--vvs-gold) !important;
  color: var(--vvs-text);
}
.info-reservation i { color: var(--vvs-gold) !important; }
.checklist-text { color: var(--vvs-text) !important; }
.checklist .d-flex:hover .checklist-text { color: var(--vvs-gold) !important; }

/* Onglets */
.nav-tabs { border-bottom-color: var(--vvs-border); }
.nav-tabs .nav-link { color: var(--vvs-muted); }
.nav-tabs .nav-link.active {
  background-color: var(--vvs-surface);
  border-color: var(--vvs-border) var(--vvs-border) var(--vvs-surface);
  color: var(--vvs-gold);
}
.nav-tabs .nav-link:hover { color: var(--vvs-gold); border-color: var(--vvs-border); }

/* Formulaires */
.form-control, .form-select, textarea.form-control {
  background-color: var(--vvs-surface-2) !important;
  border-color: var(--vvs-border) !important;
  color: var(--vvs-text) !important;
}
.form-control::placeholder, textarea.form-control::placeholder { color: #8a8a8a; }
.form-control:focus, .form-select:focus {
  border-color: var(--vvs-gold) !important;
  box-shadow: 0 0 0 0.2rem rgba(212, 175, 55, 0.15) !important;
}
.form-select {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23d4af37' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
}
.input-group .btn-outline-secondary { border-color: var(--vvs-border) !important; }
.form-text { color: var(--vvs-muted); }

/* Alertes */
.alert-info {
  background-color: rgba(212, 175, 55, 0.08);
  border-color: rgba(212, 175, 55, 0.35);
  color: var(--vvs-text);
}
.alert-success {
  background-color: rgba(111, 207, 143, 0.1);
  border-color: rgba(111, 207, 143, 0.4);
  color: #a9e5bd;
}
.alert-warning {
  background-color: rgba(230, 200, 92, 0.1);
  border-color: rgba(230, 200, 92, 0.4);
  color: #eedc9a;
}
.alert-danger {
  background-color: rgba(220, 80, 80, 0.12);
  border-color: rgba(220, 80, 80, 0.4);
  color: #f0a8a8;
}

/* Badges étapes */
.badge.bg-primary { background-color: var(--vvs-gold-strong) !important; color: #0a0a0a; }
.badge.bg-secondary { background-color: var(--vvs-surface-2) !important; color: var(--vvs-muted); border: 1px solid var(--vvs-border); }

/* Accordéons, modales, popovers */
.accordion-item { background-color: var(--vvs-surface); border-color: var(--vvs-border); color: var(--vvs-text); }
.accordion-button { background-color: var(--vvs-surface); color: var(--vvs-text); }
.accordion-button:not(.collapsed) { background-color: var(--vvs-surface-2); color: var(--vvs-gold); }
.modal-content { background-color: var(--vvs-surface); color: var(--vvs-text); border: 1px solid var(--vvs-border); }
.modal-header, .modal-footer { border-color: var(--vvs-border); }
.btn-close { filter: invert(1); }

/* Tableaux */
.table { --bs-table-bg: transparent; --bs-table-color: var(--vvs-text); color: var(--vvs-text); border-color: var(--vvs-border); }
.table > :not(caption) > * > * { background-color: transparent; color: var(--vvs-text); border-color: var(--vvs-border); }
.table-striped > tbody > tr:nth-of-type(odd) > * { background-color: var(--vvs-surface); }

/* Hero : l'overlay existant fonctionne déjà sur fond sombre */
.hero-section::before { background-color: rgba(0, 0, 0, 0.65) !important; }

/* Footer */
footer.bg-dark { background-color: #060606 !important; border-top: 1px solid var(--vvs-border); }
footer .text-primary, footer i.text-primary { color: var(--vvs-gold) !important; }
footer hr.border-secondary { border-color: var(--vvs-border) !important; }

/* Séparateurs et bordures */
hr { border-color: var(--vvs-border); opacity: 1; }
.border, .border-top, .border-bottom, .border-start, .border-end { border-color: var(--vvs-border) !important; }

/* Breadcrumbs */
.breadcrumb-item, .breadcrumb-item a { color: var(--vvs-muted); }
.breadcrumb-item.active { color: var(--vvs-text); }

/* Widgets tiers */
.iti__country-list { background-color: var(--vvs-surface-2); color: var(--vvs-text); border-color: var(--vvs-border); }
.iti__country.iti__highlight { background-color: var(--vvs-surface); }
.iti__selected-flag { background-color: transparent !important; }
.iti__dial-code { color: var(--vvs-muted); }
.flatpickr-calendar { background: var(--vvs-surface-2); color: var(--vvs-text); box-shadow: 0 4px 20px rgba(0,0,0,0.7); }
.flatpickr-day { color: var(--vvs-text); }
.flatpickr-day.selected { background: var(--vvs-gold-strong); border-color: var(--vvs-gold-strong); color: #0a0a0a; }
.swal2-popup { background: var(--vvs-surface) !important; color: var(--vvs-text) !important; }
.swal2-title, .swal2-html-container { color: var(--vvs-text) !important; }
.choices__inner, .choices__list--dropdown, .choices__list[aria-expanded] {
  background-color: var(--vvs-surface-2);
  border-color: var(--vvs-border);
  color: var(--vvs-text);
}

/* Autocomplete adresses (widget VVS) */
.vvs-suggest {
  position: absolute;
  z-index: 4000;
  left: 0;
  right: 0;
  background: var(--vvs-surface-2);
  border: 1px solid var(--vvs-border);
  border-top: none;
  max-height: 240px;
  overflow-y: auto;
}
.vvs-suggest button {
  display: block;
  width: 100%;
  text-align: left;
  background: none;
  border: none;
  color: var(--vvs-text);
  padding: 10px 14px;
  font-size: 0.9rem;
  cursor: pointer;
}
.vvs-suggest button:hover, .vvs-suggest button.active {
  background: var(--vvs-surface);
  color: var(--vvs-gold);
}

/* Carte Leaflet */
#map { background: var(--vvs-surface-2); }
.leaflet-container { background: var(--vvs-surface-2); }

/* Sections décoratives héritées du clone */
section[style*="linear-gradient(135deg, #f8f9fa"] { background: var(--vvs-bg) !important; }

/* Cookie consent */
#cookie-consent-banner, .cookie-banner, .cc-window {
  background-color: var(--vvs-surface-2) !important;
  color: var(--vvs-text) !important;
  border-color: var(--vvs-border) !important;
}

/* Tuiles OSM assombries (pas de clé requise) */
.vvs-dark-tiles { filter: invert(1) hue-rotate(180deg) brightness(0.75) contrast(0.95) saturate(0.4); }
.leaflet-control-attribution { background: rgba(10,10,10,0.8) !important; color: #8a8a8a !important; }
.leaflet-control-attribution a { color: #b9b9b9 !important; }
.leaflet-control-zoom a { background: #1d1d1d !important; color: #f5f5f5 !important; border-color: #2a2a2a !important; }

/* Barre d'onglets : aucun fond clair résiduel */
.nav-tabs { background: transparent !important; }

/* Pictos maison (remplacent les illustrations du clone) */
.vvs-feature-icon {
  width: 84px;
  height: 84px;
  border-radius: 50%;
  border: 1px solid rgba(212, 175, 55, 0.5);
  background: rgba(212, 175, 55, 0.07);
  color: var(--vvs-gold);
  font-size: 2.1rem;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Boutons outline primaires (pages légales) */
.btn-outline-primary {
  color: var(--vvs-gold) !important;
  border-color: var(--vvs-gold) !important;
  background: transparent;
}
.btn-outline-primary:hover, .btn-outline-primary:focus {
  background-color: var(--vvs-gold-strong) !important;
  border-color: var(--vvs-gold-strong) !important;
  color: #0a0a0a !important;
}

/* Sélecteur de langue (drapeaux) */
#vvs-lang-switcher { position: relative; }
.vvs-lang-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: transparent;
  border: 1px solid var(--vvs-border);
  border-radius: 0.5rem;
  color: var(--vvs-text);
  padding: 7px 9px;
  font-size: 0.8rem;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
}
@media (min-width: 992px) and (max-width: 1450px) {
  .navbar .nav-link { padding-left: 0.55rem !important; padding-right: 0.55rem !important; white-space: nowrap; }
}
.vvs-lang-btn:hover { border-color: var(--vvs-gold); color: var(--vvs-gold); }
.vvs-lang-btn img { border-radius: 2px; display: block; }
.vvs-lang-menu {
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  min-width: 160px;
  background: var(--vvs-surface-2);
  border: 1px solid var(--vvs-border);
  border-radius: 0.5rem;
  padding: 6px;
  z-index: 5000;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.6);
}
.vvs-lang-item {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  background: none;
  border: none;
  color: var(--vvs-text);
  padding: 8px 10px;
  border-radius: 0.35rem;
  font-size: 0.85rem;
  text-align: left;
  cursor: pointer;
}
.vvs-lang-item:hover { background: var(--vvs-surface); color: var(--vvs-gold); }
.vvs-lang-item.active { color: var(--vvs-gold); }
.vvs-lang-item img { border-radius: 2px; }

/* Google Translate : bandeau et artefacts masqués */
.goog-te-banner-frame, .skiptranslate iframe { display: none !important; }
body { top: 0 !important; }
.goog-te-gadget, #google_translate_element { display: none !important; }
font[style] { background: transparent !important; box-shadow: none !important; }
