/* ===========================================
   OVERRIDES — chargé APRÈS theme.php
   =========================================== */

/* Bouton "Demander un devis" — plus visible sur fond sombre */
.btn-outline {
  border: 1.5px solid var(--gold, #C6A96C) !important;
  color: var(--gold, #C6A96C) !important;
  background: rgba(198,169,108,.08) !important;
}
.btn-outline:hover {
  background: var(--gold, #C6A96C) !important;
  color: var(--noir, #0a0a0a) !important;
  border-color: var(--gold, #C6A96C) !important;
}

/* Salles — gradient allégé + texte lisible par la typo */
.salle-card-overlay {
  background: linear-gradient(to top,
    rgba(5,5,5,.65) 0%,
    rgba(5,5,5,.15) 45%,
    transparent 70%
  ) !important;
}
.salle-card-overlay h3 {
  font-size: 2rem !important;
  font-weight: 700 !important;
  color: #fff !important;
  text-shadow:
    0 0 3px #000, 0 0 3px #000, 0 0 3px #000,
    0 0 18px rgba(0,0,0,1),
    0 0 40px rgba(0,0,0,.95),
    0 3px 6px #000 !important;
  letter-spacing: .01em !important;
}
.salle-card-overlay p {
  color: #fff !important;
  font-size: .95rem !important;
  font-weight: 500 !important;
  text-shadow:
    0 0 3px #000, 0 0 3px #000,
    0 0 16px rgba(0,0,0,1),
    0 2px 4px #000 !important;
}

/* ── Événements — style "salle-card" : image pleine + overlay bas ── */
.evt-card { position: relative !important; overflow: hidden !important; height: 360px !important; }
.evt-card-img { position: absolute !important; inset: 0 !important; height: 100% !important; }
.evt-card-img img { filter: brightness(1.3) !important; height: 100% !important; }
.evt-card:hover .evt-card-img img { filter: brightness(1.35) !important; transform: scale(1.06) !important; }
.evt-card-img::after { display: none !important; }
.evt-card-body { position: absolute !important; bottom: 0 !important; left: 0 !important; right: 0 !important; background: linear-gradient(transparent, rgba(5,5,5,.35) 20%) !important; padding: 3rem 1.5rem 1.5rem !important; }
.evt-card-body p { color: rgba(240,234,224,.85) !important; }
.evt-icon-overlay { bottom: auto !important; top: 1.2rem !important; }
.evt-icon-overlay h3 { color: #FEFCF9 !important; text-shadow: 0 2px 10px rgba(0,0,0,.8) !important; }
.evt-svg-icon { stroke: #FEFCF9 !important; }
.evt-card:hover { border-color: var(--gold, #C6A96C) !important; box-shadow: 0 8px 40px rgba(198,169,108,.2) !important; transform: translateY(-5px) !important; }

/* ── Hébergements — style "salle-card" : image pleine + overlay bas ── */
.heb-card { position: relative !important; overflow: hidden !important; height: 420px !important; }
.heb-card-img { position: absolute !important; inset: 0 !important; height: 100% !important; }
.heb-card-img img { filter: brightness(1.3) !important; height: 100% !important; }
.heb-card:hover .heb-card-img img { filter: brightness(1.35) !important; transform: scale(1.06) !important; }
.heb-card-img::after { display: none !important; }
.heb-card-body { position: absolute !important; bottom: 0 !important; left: 0 !important; right: 0 !important; background: linear-gradient(transparent, rgba(5,5,5,.35) 20%) !important; padding: 3rem 2rem 1.8rem !important; }
.heb-card-body h3 { color: #FEFCF9 !important; text-shadow: 0 2px 10px rgba(0,0,0,.7) !important; }
.heb-card-body p { color: rgba(240,234,224,.85) !important; }
.heb-card:hover { border-color: var(--gold, #C6A96C) !important; box-shadow: 0 8px 40px rgba(198,169,108,.2) !important; }

/* CTA Banner — fond = couleur du thème */
.cta-banner { background: var(--noir, #0A0A0A) !important; padding: 4rem 4rem !important; }
.cta-banner:not(:has(.cta-banner-bg)) .cta-banner-overlay { display: none !important; }
.cta-banner-overlay { background: linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,.7)) !important; }
.cta-banner-content h2 { color: var(--white, #FEFCF9) !important; text-shadow: none; }
.cta-banner-content p { color: var(--text-light, #B8B0A0) !important; text-shadow: none; }

/* Galerie — légende sur photo */
.gal-slide-caption { color: #FEFCF9 !important; }

/* ===== NAV SCROLLÉ — texte toujours lisible (max specificity avec #nav) ===== */
#nav.scrolled .nav-links a:not(.nav-cta) {
  color: #3A3630 !important;
  text-shadow: none !important;
}
#nav.scrolled .nav-links a:not(.nav-cta):hover {
  color: #8B7D3C !important;
}
#nav.scrolled .nav-logo-text,
#nav.scrolled .logo-top,
#nav.scrolled .logo-bottom {
  color: #3A3630 !important;
}
#nav.scrolled .hamburger span {
  background: #3A3630 !important;
}

/* ===== BOUTON RÉSERVER — toujours lisible ===== */
#nav .nav-cta,
#nav.scrolled .nav-cta {
  border: 1px solid #8B7D3C !important;
  color: #8B7D3C !important;
  background: transparent !important;
}
#nav .nav-cta:hover,
#nav.scrolled .nav-cta:hover {
  background: #8B7D3C !important;
  color: #FFFFFF !important;
  border-color: #8B7D3C !important;
}

/* ===== NAV DROPDOWN — même fond que le nav scrollé (desktop uniquement) ===== */
@media(min-width:1101px) {
  .nav-sub,
  .nav-dropdown > .nav-sub {
    background: var(--noir, #0A0A0A) !important;
    border-color: rgba(198,169,108,.15) !important;
    backdrop-filter: blur(20px);
  }
  .nav.scrolled .nav-sub,
  .nav.scrolled .nav-dropdown > .nav-sub {
    background: var(--noir, #0A0A0A) !important;
  }
}
.nav-sub li a {
  color: var(--text-light, #B8B0A0) !important;
  text-shadow: none !important;
}
.nav-sub li a:hover {
  color: var(--gold, #C6A96C) !important;
}

/* ===== MOBILE MENU — plein écran, couleurs du thème ===== */
@media(max-width:768px) {
  .nav-links {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100vh !important;
    height: 100dvh !important;
    background: var(--noir, #0A0A0A) !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: center !important;
    z-index: 1000 !important;
    overflow-y: auto !important;
  }
  .nav-links a,
  .nav.scrolled .nav-links a {
    color: var(--cream, #FEFCF9) !important;
    text-shadow: none !important;
    font-size: .9rem !important;
  }
  .nav-links a:hover,
  .nav.scrolled .nav-links a:hover {
    color: var(--gold, #C6A96C) !important;
  }
  .nav-sub li a,
  .nav.scrolled .nav-sub li a {
    color: var(--text-light, #B8B0A0) !important;
  }
  .nav-sub li a:hover,
  .nav.scrolled .nav-sub li a:hover {
    color: var(--gold, #C6A96C) !important;
  }
  .nav-cta,
  .nav.scrolled .nav-cta {
    border-color: var(--gold, #C6A96C) !important;
    color: var(--gold, #C6A96C) !important;
    text-shadow: none !important;
  }
  .nav-dropdown > .nav-sub {
    background: transparent !important;
    border: none !important;
  }
  .hamburger span {
    background: var(--gold, #C6A96C) !important;
  }
}
/* ══════════════════════════════════════════════════════
   CARTES — Style pleine image avec overlay révélateur
   ══════════════════════════════════════════════════════ */

/* ── Hébergements ── */
.heb-card {
  position: relative !important;
  height: 460px !important;
  overflow: hidden !important;
  transform: none !important;
}
.heb-card:hover {
  transform: none !important;
  box-shadow: 0 0 0 2px rgba(198,169,108,.35), 0 24px 60px rgba(0,0,0,.55) !important;
}
.heb-card-img {
  position: absolute !important;
  inset: 0 !important;
  height: 100% !important;
}
.heb-card-img img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  transform: scale(1.05) !important;
  transition: transform 1s cubic-bezier(.16,1,.3,1) !important;
}
.heb-card:hover .heb-card-img img {
  transform: scale(1.12) !important;
}
/* Supprimer l'ancien demi-gradient de l'image */
.heb-card .heb-card-img::after { display: none !important; }

/* Gradient sombre permanent sur la carte */
.heb-card::after {
  content: '' !important;
  position: absolute !important;
  inset: 0 !important;
  background: linear-gradient(to top,
    rgba(5,5,5,.75) 0%,
    rgba(5,5,5,.2) 40%,
    transparent 65%
  ) !important;
  z-index: 2 !important;
  transition: background .6s !important;
  pointer-events: none !important;
}
.heb-card:hover::after {
  background: linear-gradient(to top,
    rgba(5,5,5,.85) 0%,
    rgba(5,5,5,.35) 50%,
    transparent 75%
  ) !important;
}

/* Corps positionné en bas de la carte */
.heb-card-body {
  position: absolute !important;
  bottom: 0 !important; left: 0 !important; right: 0 !important;
  background: none !important;
  padding: 2rem !important;
  z-index: 3 !important;
}
.heb-card-body h3 {
  color: #fff !important;
  font-size: 2rem !important;
  font-weight: 700 !important;
  margin-bottom: .5rem !important;
  text-shadow:
    0 0 3px #000, 0 0 3px #000, 0 0 3px #000,
    0 0 18px rgba(0,0,0,1),
    0 0 40px rgba(0,0,0,.95),
    0 3px 6px #000 !important;
  letter-spacing: .01em !important;
}
/* Description : cachée au repos, révélée au survol */
.heb-card-body p {
  color: #fff !important;
  font-size: .95rem !important;
  font-weight: 500 !important;
  text-shadow:
    0 0 3px #000, 0 0 3px #000,
    0 0 16px rgba(0,0,0,1),
    0 2px 4px #000 !important;
  max-height: 0 !important;
  overflow: hidden !important;
  opacity: 0 !important;
  transform: translateY(8px) !important;
  transition:
    max-height .55s cubic-bezier(.16,1,.3,1),
    opacity .4s ease .1s,
    transform .4s ease .1s,
    margin .4s !important;
  margin-bottom: 0 !important;
}
.heb-card:hover .heb-card-body p {
  max-height: 5rem !important;
  opacity: 1 !important;
  transform: translateY(0) !important;
  margin-bottom: 1rem !important;
}
.heb-card-features { margin-bottom: .8rem !important; }
.heb-feature {
  color: var(--gold, #C6A96C) !important;
  text-shadow: 0 0 4px #000, 0 0 10px rgba(0,0,0,.9), 0 1px 3px #000 !important;
  font-weight: 600 !important;
}
.heb-card-body .card-link {
  opacity: 1 !important;
  color: var(--gold, #C6A96C) !important;
  text-shadow: 0 0 4px #000, 0 0 10px rgba(0,0,0,.9), 0 1px 3px #000 !important;
  font-weight: 600 !important;
}
.heb-card:hover .heb-card-body .card-link { gap: 1rem !important; }

/* Salles — lien DÉCOUVRIR en or lisible */
.salle-card-overlay .card-link {
  color: var(--gold, #C6A96C) !important;
  opacity: 1 !important;
  text-shadow: 0 0 4px #000, 0 0 10px rgba(0,0,0,.9), 0 1px 3px #000 !important;
  font-weight: 600 !important;
}

@media(max-width:768px) {
  .heb-card { height: 380px !important; }
  .heb-card-body p {
    max-height: none !important; opacity: 1 !important;
    transform: none !important; margin-bottom: .8rem !important;
  }
}

/* ── Événements ── */
.evt-card {
  position: relative !important;
  overflow: hidden !important;
  height: 380px !important;
  border: 1px solid rgba(198,169,108,.1) !important;
  transform: none !important;
}
.evt-card:hover {
  transform: none !important;
  box-shadow: 0 0 0 2px rgba(198,169,108,.3), 0 20px 55px rgba(0,0,0,.5) !important;
}
.evt-card-img {
  position: absolute !important;
  inset: 0 !important;
  height: 100% !important;
}
.evt-card-img img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  transform: scale(1.05) !important;
  transition: transform 1s cubic-bezier(.16,1,.3,1) !important;
}
.evt-card:hover .evt-card-img img { transform: scale(1.12) !important; }

.evt-card::after {
  content: '' !important;
  position: absolute !important;
  inset: 0 !important;
  background: linear-gradient(to top,
    rgba(5,5,5,.7) 0%,
    rgba(5,5,5,.15) 40%,
    transparent 65%
  ) !important;
  z-index: 2 !important;
  transition: background .6s !important;
  pointer-events: none !important;
}
.evt-card:hover::after {
  background: linear-gradient(to top,
    rgba(5,5,5,.8) 0%,
    rgba(5,5,5,.25) 50%,
    transparent 75%
  ) !important;
}

/* Icône + titre en haut à gauche */
.evt-icon-overlay {
  position: absolute !important;
  top: 1.5rem !important; left: 1.5rem !important;
  bottom: auto !important;
  z-index: 4 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  text-align: left !important;
  gap: .5rem !important;
}
.evt-svg-icon { width: 26px !important; height: 26px !important; opacity: .9 !important; }
.evt-icon-overlay h3 {
  font-size: 1.8rem !important;
  font-weight: 700 !important;
  margin: 0 !important;
  color: #fff !important;
  text-shadow:
    0 0 3px #000, 0 0 3px #000, 0 0 3px #000,
    0 0 18px rgba(0,0,0,1),
    0 0 40px rgba(0,0,0,.95),
    0 3px 6px #000 !important;
  letter-spacing: .01em !important;
}

/* Description + lien en bas */
.evt-card-body {
  position: absolute !important;
  bottom: 0 !important; left: 0 !important; right: 0 !important;
  padding: 1.5rem 2rem !important;
  z-index: 3 !important;
  background: none !important;
}
.evt-card-body p {
  color: rgba(245,240,232,.85) !important;
  text-shadow: 0 1px 6px rgba(0,0,0,.5) !important;
  font-size: .9rem !important;
  max-height: 0 !important;
  overflow: hidden !important;
  opacity: 0 !important;
  transform: translateY(6px) !important;
  transition:
    max-height .5s cubic-bezier(.16,1,.3,1),
    opacity .4s ease .1s,
    transform .4s ease .1s,
    margin .4s !important;
  margin-bottom: 0 !important;
}
.evt-card:hover .evt-card-body p {
  max-height: 4rem !important;
  opacity: 1 !important;
  transform: translateY(0) !important;
  margin-bottom: .8rem !important;
}
.evt-card-body .card-link {
  color: var(--gold, #C6A96C) !important;
  opacity: 1 !important;
  text-shadow: 0 0 4px #000, 0 0 10px rgba(0,0,0,.9), 0 1px 3px #000 !important;
  font-weight: 600 !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: .6rem !important;
  font-size: .75rem !important;
  letter-spacing: .15em !important;
  text-transform: uppercase !important;
}
.evt-card:hover .evt-card-body .card-link { opacity: 1 !important; gap: 1rem !important; }

@media(max-width:768px) {
  .evt-card { height: 300px !important; }
  .evt-card-body p {
    max-height: none !important; opacity: 1 !important;
    transform: none !important; margin-bottom: .6rem !important;
  }
}

/* ── Salles — révélation description au survol ── */
.salle-card img {
  transform: scale(1.05) !important;
  transition: transform 1s cubic-bezier(.16,1,.3,1) !important;
}
.salle-card:hover img { transform: scale(1.12) !important; }
.salle-card-overlay p {
  max-height: 0 !important;
  overflow: hidden !important;
  opacity: 0 !important;
  transform: translateY(6px) !important;
  transition:
    max-height .5s cubic-bezier(.16,1,.3,1),
    opacity .4s ease .1s,
    transform .4s ease .1s,
    margin .4s !important;
  margin-bottom: 0 !important;
}
.salle-card:hover .salle-card-overlay p {
  max-height: 5rem !important;
  opacity: 1 !important;
  transform: translateY(0) !important;
  margin-bottom: 1rem !important;
}
@media(max-width:768px) {
  .salle-card-overlay p {
    max-height: none !important; opacity: 1 !important; transform: none !important;
  }
}

/* ── Guillemet témoignages ── */
.temoignage-quote { position: relative; z-index: 1; }
.temoignage-quote::before {
  content: '\201C' !important;
  font-family: var(--serif) !important;
  font-size: clamp(20rem, 30vw, 38rem) !important;
  color: var(--gold) !important;
  opacity: .13 !important;
  position: absolute !important;
  top: 50% !important;
  left: 50% !important;
  transform: translate(-50%, -25%) !important;
  line-height: .75 !important;
  pointer-events: none !important;
  z-index: 0 !important;
  white-space: nowrap !important;
}

/* ── V3 DESIGN UPGRADES ── */

/* Hero ornement couleur gold */
.hero-ornament svg { color: var(--gold, #C6A96C); }
.hero-orn-line { opacity: .6; }

/* Cards hébergements — ombre au hover */
.heb-card:hover {
  box-shadow: 0 20px 60px rgba(0,0,0,.4), 0 0 40px rgba(198,169,108,.06) !important;
}

/* Cards événements — hover identique aux hébergements */
.evt-card:hover {
  border-color: rgba(198,169,108,.25) !important;
  box-shadow: 0 20px 60px rgba(0,0,0,.4), 0 0 40px rgba(198,169,108,.06) !important;
}

/* Salles — zoom image légèrement plus marqué */
.salle-card img {
  transition: transform .9s cubic-bezier(.16,1,.3,1) !important;
}

/* Timeline épique — dot glow au hover */
.tl-epic-row:hover .tl-epic-dot {
  background: var(--gold, #C6A96C) !important;
  box-shadow: 0 0 25px rgba(198,169,108,.5) !important;
}

/* Bouton retour en haut */
.back-to-top {
  position: fixed;
  bottom: 2rem;
  left: 2rem;
  z-index: 998;
  width: 44px;
  height: 44px;
  background: rgba(10,10,10,.85);
  border: 1px solid rgba(198,169,108,.25);
  color: var(--gold, #C6A96C);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transform: translateY(20px);
  transition: all .4s;
  pointer-events: none;
  backdrop-filter: blur(8px);
}
.back-to-top.visible {
  opacity: 1;
  transform: translateY(0);
  pointer-events: all;
}
.back-to-top:hover {
  background: var(--gold, #C6A96C);
  color: var(--noir, #0A0A0A);
}


/* ===== HÉBERGEMENTS — dernière rangée centrée : forcer 1 colonne sur mobile ===== */
@media(max-width:1024px) {
  .hebergements-grid[style*="display:flex"],
  .hebergements-grid[style*="display: flex"] {
    flex-direction: column !important;
    align-items: stretch !important;
  }
  .hebergements-grid[style*="display:flex"] .heb-card,
  .hebergements-grid[style*="display: flex"] .heb-card {
    width: 100% !important;
  }
}

/* ===== Cards SALLES — hover identique aux hébergements ===== */
.salle-card {
  transition: all .5s !important;
  border: 1px solid rgba(198,169,108,.08);
}
.salle-card:hover {
  border-color: rgba(198,169,108,.25) !important;
  transform: translateY(-5px) !important;
  box-shadow: 0 20px 60px rgba(0,0,0,.4), 0 0 40px rgba(198,169,108,.06) !important;
}

/* ===== NAV — hamburger dès 1100px (menu trop chargé pour desktop étroit) ===== */
@media(max-width:1100px) and (min-width:769px) {
  .hamburger {
    display: flex !important;
  }
  .nav-links {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100vh !important;
    height: 100dvh !important;
    background: var(--noir, #0A0A0A) !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: center !important;
    z-index: 1000 !important;
    overflow-y: auto !important;
    gap: 1.8rem !important;
    opacity: 0 !important;
    visibility: hidden !important;
    transition: opacity .4s, visibility .4s !important;
  }
  .nav-links.open {
    opacity: 1 !important;
    visibility: visible !important;
  }
  .nav-links a,
  .nav.scrolled .nav-links a {
    color: var(--cream, #FEFCF9) !important;
    text-shadow: none !important;
    font-size: .9rem !important;
  }
  .nav-links a:hover,
  .nav.scrolled .nav-links a:hover {
    color: var(--gold, #C6A96C) !important;
  }
  .nav-sub li a {
    color: var(--text-light, #B8B0A0) !important;
  }
  .nav-dropdown > .nav-sub {
    background: transparent !important;
    border: none !important;
  }
  .nav-cta,
  .nav.scrolled .nav-cta {
    border-color: var(--gold, #C6A96C) !important;
    color: var(--gold, #C6A96C) !important;
  }
}

/* ── Menu mobile — stagger fade-in items ── */
@keyframes menuItemFadeIn {
  from { opacity:0; transform:translateY(18px); }
  to   { opacity:1; transform:translateY(0); }
}
@media(max-width:1100px) {
  .nav-links > li {
    opacity: 0;
    animation: none;
  }
  .nav-links.open > li {
    animation: menuItemFadeIn .45s cubic-bezier(.22,1,.36,1) both;
    animation-delay: calc(var(--mi, 0) * 70ms + 60ms);
  }
  /* Menu plein écran : démarre sous la barre utilitaire (nav ~70px + barre 36px) */
  .nav-links {
    top: 0 !important;
    padding-top: 110px !important;
    justify-content: flex-start !important;
    padding-bottom: 2rem !important;
  }
}

/* ── Sous-menus mobile — intégrés dans le flux, pas en absolute ── */
@media(max-width:1100px) {
  .nav-dropdown {
    display: flex;
    flex-direction: column;
    align-items: center;
  }
  /* Sous-menu caché par défaut — UN SEUL BLOC */
  .nav-sub {
    position: static !important;
    display: none !important;
    flex-direction: column !important;
    align-items: center !important;
    background: rgba(198,169,108,.08) !important;
    border: none !important;
    border-left: 3px solid rgba(198,169,108,.5) !important;
    border-radius: 8px !important;
    box-shadow: none !important;
    padding: .5rem .8rem !important;
    margin: .3rem 2rem !important;
    gap: .2rem !important;
    width: auto !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
  }
  /* Sous-menu visible uniquement quand .open */
  .nav-dropdown.open > .nav-sub {
    display: flex !important;
  }
  .nav-sub li a {
    font-size: .8rem !important;
    letter-spacing: .08em !important;
    color: #C6A96C !important;
    padding: .45rem .8rem !important;
    font-style: italic !important;
    font-family: var(--serif, Georgia, serif) !important;
    transition: color .2s, background .2s !important;
    border-radius: 4px !important;
    display: block !important;
    width: 100% !important;
    text-align: center !important;
  }
  .nav-sub li a:hover {
    color: #E8D8A0 !important;
    background: rgba(198,169,108,.15) !important;
  }
  /* Flèche dropdown cliquable sur mobile */
  .nav-dropdown > a {
    display: flex;
    align-items: center;
    gap: .4rem;
    cursor: pointer;
  }
}

