/* ============================================
   Contenu éditable (/admin) — avis, popup d'annonce, chargement
   ============================================ */

/* Le titre du hero reste invisible le temps de charger data/contenu.json (≤ 2,5 s) */
.cms-loading .hero__title { visibility: hidden; }

.section[hidden] { display: none !important; }

/* --- Avis --- */
.avis__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1.5rem;
  margin-top: 2.5rem;
}

.avis-card {
  position: relative;
  margin: 0;
  padding: 2rem 2rem 1.75rem;
  background: rgba(245, 240, 235, 0.03);
  border: 1px solid rgba(196, 168, 130, 0.15);
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
}

.avis-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 48px;
  height: 2px;
  background: var(--prise);
}

.avis-card__note {
  color: var(--soie-warm);
  letter-spacing: 0.2em;
  font-size: 0.95rem;
}
.avis-card__note span { opacity: 0.25; }

.avis-card__texte {
  margin: 0;
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 1.25rem;
  line-height: 1.55;
  color: rgba(245, 234, 216, 0.88);
  flex: 1;
}
.avis-card__texte::before { content: '« '; color: var(--prise); }
.avis-card__texte::after { content: ' »'; color: var(--prise); }

.avis-card__auteur {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  font-size: 0.8rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--soie);
}

.avis-card__photo {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  object-fit: cover;
  border: 1px solid rgba(196, 168, 130, 0.3);
}

@media (max-width: 768px) {
  .avis__grid[data-mobi-carousel] {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    gap: 0;
    scrollbar-width: none;
  }
  .avis__grid[data-mobi-carousel]::-webkit-scrollbar { display: none; }
  .avis__grid[data-mobi-carousel] > .avis-card {
    flex: 0 0 100%;
    scroll-snap-align: start;
  }
}

/* --- Popup d'annonce --- */
.site-popup {
  position: fixed;
  right: 1.5rem;
  bottom: 1.5rem;
  z-index: 1200;
  width: min(360px, calc(100vw - 2rem));
  padding: 1.6rem 1.6rem 1.4rem;
  background: var(--roche-light);
  border: 1px solid rgba(196, 168, 130, 0.22);
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.45);
  color: var(--magnesie);
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1), transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
}
.site-popup::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 48px;
  height: 2px;
  background: var(--prise);
}
.site-popup.is-open { opacity: 1; transform: none; }

.site-popup__label {
  font-size: 0.7rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--soie);
  margin-bottom: 0.6rem;
}

.site-popup__msg {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 1.3rem;
  line-height: 1.4;
  padding-right: 1.5rem;
}

.site-popup__cta {
  display: inline-block;
  margin-top: 1.1rem;
  padding: 0.65rem 1.2rem;
  background: var(--prise);
  color: #fff;
  text-decoration: none;
  font-size: 0.8rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  transition: background-color 0.2s cubic-bezier(0.16, 1, 0.3, 1);
}
.site-popup__cta:hover { background: var(--prise-dark); }

.site-popup__close {
  position: absolute;
  top: 0.6rem;
  right: 0.6rem;
  width: 36px;
  height: 36px;
  background: none;
  border: 0;
  color: var(--soie);
  font-size: 1rem;
  cursor: pointer;
  transition: color 0.2s cubic-bezier(0.16, 1, 0.3, 1);
}
.site-popup__close:hover { color: var(--magnesie); }

.site-popup__close:focus-visible,
.site-popup__cta:focus-visible {
  outline: 2px solid var(--soie-warm);
  outline-offset: 3px;
}

@media (max-width: 768px) {
  /* Au-dessus du bouton « Réserver une table » collant */
  .site-popup { right: 1rem; left: 1rem; bottom: 5.5rem; width: auto; }
}

@media (prefers-reduced-motion: reduce) {
  .site-popup { transition: opacity 0.2s linear; transform: none; }
}
