/* =================================================================
   Restaurant L'Estang Montauban — Accueil cinématique (canvas frames)
   Vidéo de fond rendue image par image dans un <canvas>, pilotée par
   le scroll global. Classes isolées (.estang-).
   ================================================================= */

:root {
  --estang-noir:   #15110D;
  --estang-noir2:  #1E1B18;
  --estang-beige:  #F4EBDD;
  --estang-sable:  #D8C2A3;
  --estang-bois:   #8A5A35;
  --estang-vert:   #3F5C45;
  --estang-gold:   #E7C48A;
  --estang-blanc:  #FFF9F0;
  --estang-font-display: 'Cormorant Garamond', Georgia, serif;
  --estang-font-body:    'Manrope', system-ui, sans-serif;
  --estang-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

/* Page immersive : la vidéo de fond est fixée DERRIÈRE le header/footer du thème.
   On laisse donc le <body> transparent (sinon il masquerait le canvas en z-index négatif). */
body.estang-body { background: transparent; }

.estang-home, .estang-home * { box-sizing: border-box; }
.estang-home {
  position: relative;
  min-height: 700vh;
  margin: 0;
  overflow: clip;
  background: transparent;
  color: var(--estang-blanc);
  font-family: var(--estang-font-body);
  font-size: 17px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
.estang-home a { color: inherit; text-decoration: none; }
.estang-home img { max-width: 100%; display: block; }

/* =================================================================
   LOADER — préchargement des frames (overlay plein écran)
   ================================================================= */
.estang-loader {
  position: fixed;
  inset: 0;
  z-index: 99999; /* au-dessus du header du thème pendant le chargement */
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1.3rem;
  background:
    radial-gradient(circle at center, rgba(40,30,18,0.35), transparent 60%),
    var(--estang-noir);
  color: var(--estang-blanc);
  font-family: var(--estang-font-body);
  text-align: center;
  padding: 24px;
  transition: opacity 0.65s var(--estang-ease);
}
.estang-loader.is-done { opacity: 0; pointer-events: none; }
.estang-loader__sub {
  font-size: 0.7rem;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--estang-gold);
}
.estang-loader__brand {
  font-family: var(--estang-font-display);
  font-weight: 500;
  font-size: clamp(1.6rem, 4.5vw, 2.6rem);
  line-height: 1.05;
  color: var(--estang-blanc);
}
.estang-loader__bar {
  width: min(280px, 62vw);
  height: 2px;
  margin-top: 0.4rem;
  border-radius: 2px;
  background: rgba(255, 249, 240, 0.16);
  overflow: hidden;
}
.estang-loader__fill {
  display: block;
  height: 100%;
  width: 0%;
  background: linear-gradient(90deg, var(--estang-bois), var(--estang-gold));
  transition: width 0.25s var(--estang-ease);
}
.estang-loader__pct {
  font-size: 0.74rem;
  letter-spacing: 0.18em;
  color: rgba(255, 249, 240, 0.7);
  font-variant-numeric: tabular-nums;
}
/* Animations désactivées : pas de séquence -> pas de loader */
@media (prefers-reduced-motion: reduce) {
  .estang-loader { display: none !important; }
}

/* =================================================================
   VIDÉO DE FOND (canvas) — fixée derrière toutes les sections
   ================================================================= */
.estang-video-stage {
  position: fixed;
  inset: 0;
  z-index: -1; /* derrière le header/footer du thème ET le contenu de la page */
  overflow: hidden;
  /* poster.webp s'affiche avant le chargement des frames */
  background: var(--estang-noir) url('poster.webp') center / cover no-repeat;
}
.estang-canvas {
  display: block;
  width: 100%;
  height: 100%;
  filter: contrast(1.05) saturate(1.08) brightness(0.8);
}
.estang-video-overlay {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at center, rgba(0,0,0,0.10), rgba(0,0,0,0.5)),
    linear-gradient(90deg, rgba(0,0,0,0.66), rgba(0,0,0,0.12) 48%, rgba(0,0,0,0.5));
}
.estang-video-grain {
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0.32;
  mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E");
}

.estang-progress {
  position: fixed;
  top: 0; left: 0;
  height: 3px;
  width: 0%;
  z-index: 10;
  background: linear-gradient(90deg, var(--estang-bois), var(--estang-gold));
  transition: width 0.1s linear;
}

/* =================================================================
   PANELS
   ================================================================= */
.estang-panel {
  position: relative;
  z-index: 2;
  min-height: 100vh;
  display: flex;
  align-items: center;
  padding: clamp(80px, 8vw, 140px) clamp(20px, 6vw, 96px);
}
.estang-panel.is-left   { justify-content: flex-start; }
.estang-panel.is-center { justify-content: center; text-align: center; }
.estang-panel.is-right  { justify-content: flex-end; }

/* =================================================================
   CARTE DE CONTENU
   ================================================================= */
.estang-content-card {
  position: relative;
  width: min(720px, 100%);
  padding: clamp(30px, 4vw, 58px);
  border: 1px solid rgba(255, 249, 240, 0.16);
  border-radius: 26px;
  background: rgba(18, 14, 10, 0.46);
  -webkit-backdrop-filter: blur(18px);
  backdrop-filter: blur(18px);
  box-shadow: 0 34px 90px rgba(0, 0, 0, 0.42);
}
.estang-content-card--wide { width: min(940px, 100%); }

/* =================================================================
   TYPOGRAPHIE
   ================================================================= */
.estang-kicker {
  display: block;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  font-size: 0.74rem;
  font-weight: 600;
  color: var(--estang-gold);
  margin: 0 0 18px;
}
.estang-title {
  font-family: var(--estang-font-display);
  font-weight: 500;
  font-size: clamp(2.7rem, 7.5vw, 6.4rem);
  line-height: 0.98;
  letter-spacing: -0.01em;
  margin: 0 0 14px;
  color: var(--estang-blanc);
}
.estang-tagline {
  font-family: var(--estang-font-display);
  font-style: italic;
  font-size: clamp(1.3rem, 2.6vw, 2rem);
  line-height: 1.2;
  color: var(--estang-sable);
  margin: 0 0 22px;
}
.estang-section-title {
  font-family: var(--estang-font-display);
  font-weight: 500;
  font-size: clamp(2.1rem, 4.6vw, 4rem);
  line-height: 1.02;
  letter-spacing: -0.01em;
  margin: 0 0 22px;
  color: var(--estang-blanc);
}
.estang-text {
  font-size: clamp(1rem, 1.35vw, 1.18rem);
  line-height: 1.75;
  color: rgba(255, 249, 240, 0.86);
  margin: 0 0 1.2rem;
  overflow-wrap: break-word;
}
.estang-text:last-of-type { margin-bottom: 0; }

/* =================================================================
   BOUTONS
   ================================================================= */
.estang-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin-top: 2rem;
}
.estang-panel.is-center .estang-actions { justify-content: center; }
.estang-panel.is-right  .estang-actions { justify-content: flex-end; }

.estang-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.6em;
  padding: 0.95em 1.9em;
  font-family: var(--estang-font-body);
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border-radius: 100px;
  border: 1px solid transparent;
  cursor: pointer;
  transition: transform 0.45s var(--estang-ease), background 0.4s var(--estang-ease),
              color 0.4s var(--estang-ease), box-shadow 0.45s var(--estang-ease),
              border-color 0.4s var(--estang-ease);
}
.estang-btn:hover { transform: translateY(-3px); }
.estang-btn:active { transform: translateY(-1px); }
.estang-btn--primary {
  background: var(--estang-gold);
  color: #2a1d10;
  box-shadow: 0 16px 34px -16px rgba(231, 196, 138, 0.7);
}
.estang-btn--primary:hover { background: #f0d3a0; box-shadow: 0 22px 44px -16px rgba(231,196,138,0.9); }
.estang-btn--ghost {
  background: rgba(255, 249, 240, 0.04);
  color: var(--estang-blanc);
  border-color: rgba(255, 249, 240, 0.4);
}
.estang-btn--ghost:hover { background: rgba(255, 249, 240, 0.12); border-color: var(--estang-blanc); }

/* =================================================================
   SOUS-BLOCS
   ================================================================= */
.estang-mini-row { display: flex; flex-wrap: wrap; gap: 0.7rem; margin-top: 1.6rem; }
.estang-mini {
  flex: 1 1 150px;
  padding: 0.9em 1.1em;
  border: 1px solid rgba(255, 249, 240, 0.18);
  border-radius: 14px;
  background: rgba(255, 249, 240, 0.05);
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--estang-sable);
}
.estang-cards {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.8rem;
  margin-top: 1.8rem;
}
.estang-card {
  padding: clamp(16px, 2vw, 22px);
  border: 1px solid rgba(255, 249, 240, 0.16);
  border-radius: 16px;
  background: rgba(255, 249, 240, 0.05);
  transition: transform 0.5s var(--estang-ease), background 0.5s var(--estang-ease), border-color 0.5s var(--estang-ease);
}
.estang-card:hover {
  transform: translateY(-5px);
  background: rgba(255, 249, 240, 0.1);
  border-color: rgba(231, 196, 138, 0.5);
}
.estang-card-num {
  font-family: var(--estang-font-display);
  font-style: italic;
  font-size: 1.5rem;
  color: var(--estang-gold);
  display: block;
  margin-bottom: 0.3rem;
}
.estang-card h3 {
  font-family: var(--estang-font-display);
  font-weight: 600;
  font-size: 1.25rem;
  margin: 0;
  color: var(--estang-blanc);
}
.estang-coords {
  font-style: normal;
  margin: 1.6rem 0 0;
  line-height: 1.9;
  color: rgba(255, 249, 240, 0.82);
}
.estang-coords strong {
  display: block;
  font-family: var(--estang-font-display);
  font-size: 1.4rem;
  font-weight: 600;
  color: var(--estang-blanc);
  margin-bottom: 0.3rem;
}

/* =================================================================
   ANIMATIONS AU SCROLL
   ================================================================= */
.estang-content-card {
  opacity: 0;
  transform: translateY(44px);
  transition: opacity 0.95s var(--estang-ease), transform 0.95s var(--estang-ease);
  will-change: opacity, transform;
}
.estang-panel.is-visible .estang-content-card { opacity: 1; transform: none; }
.estang-content-card > * {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity 0.8s var(--estang-ease), transform 0.8s var(--estang-ease);
}
.estang-panel.is-visible .estang-content-card > * { opacity: 1; transform: none; }
.estang-panel.is-visible .estang-content-card > *:nth-child(1) { transition-delay: 0.12s; }
.estang-panel.is-visible .estang-content-card > *:nth-child(2) { transition-delay: 0.22s; }
.estang-panel.is-visible .estang-content-card > *:nth-child(3) { transition-delay: 0.32s; }
.estang-panel.is-visible .estang-content-card > *:nth-child(4) { transition-delay: 0.42s; }
.estang-panel.is-visible .estang-content-card > *:nth-child(5) { transition-delay: 0.52s; }
.estang-panel.is-visible .estang-content-card > *:nth-child(6) { transition-delay: 0.62s; }

.estang-scroll-cue {
  position: absolute;
  left: 50%;
  bottom: 36px;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.7rem;
  z-index: 3;
  pointer-events: none;
}
.estang-scroll-cue span {
  font-size: 0.64rem;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: rgba(255, 249, 240, 0.7);
}
.estang-scroll-line {
  width: 1px; height: 52px;
  background: linear-gradient(rgba(255,249,240,0.7), transparent);
  transform-origin: top;
  animation: estang-cue 2.2s var(--estang-ease) infinite;
}
@keyframes estang-cue {
  0%, 100% { transform: scaleY(0.4); opacity: 0.4; }
  50%      { transform: scaleY(1);   opacity: 1; }
}

/* =================================================================
   RESPONSIVE
   ================================================================= */
@media (max-width: 980px) {
  .estang-cards { grid-template-columns: 1fr; }
  .estang-panel.is-right { justify-content: flex-start; }
}

@media (max-width: 768px) {
  /* Mobile : le canvas (séquence d'images) reste ACTIF — voir aussi estang.js.
     Seul prefers-reduced-motion (plus bas) revient au poster fixe. */
  .estang-home { min-height: auto; }
  .estang-panel { min-height: auto; padding-block: 76px; }
  .estang-progress { display: none; }
  .estang-scroll-cue { display: none; }

  .estang-content-card,
  .estang-content-card--wide {
    width: 100%;
    padding: clamp(24px, 6vw, 34px);
    border-radius: 20px;
    background: rgba(18, 14, 10, 0.82);
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.42);
  }
  .estang-panel.is-left,
  .estang-panel.is-right,
  .estang-panel.is-center { justify-content: center; text-align: left; }
  .estang-panel.is-center .estang-actions,
  .estang-panel.is-right .estang-actions { justify-content: flex-start; }
}

@media (max-width: 560px) {
  .estang-home { font-size: 16px; }
  .estang-panel { padding-inline: 18px; }
  .estang-title { font-size: clamp(2.4rem, 11vw, 3.2rem); }
  .estang-section-title { font-size: clamp(1.9rem, 8vw, 2.6rem); }
  .estang-tagline { font-size: clamp(1.15rem, 5.5vw, 1.5rem); }
  .estang-cards { grid-template-columns: 1fr; }
  .estang-mini { flex-basis: 100%; }
  .estang-actions { gap: 0.7rem; }
  .estang-actions .estang-btn { flex: 1 1 100%; justify-content: center; padding-block: 1.05em; }
}

@media (prefers-reduced-motion: reduce) {
  /* Accessibilité : on n'anime pas la séquence -> poster fixe à la place du canvas */
  .estang-canvas { display: none; }
  .estang-video-stage {
    background:
      linear-gradient(rgba(0,0,0,0.5), rgba(0,0,0,0.62)),
      var(--estang-noir) url('poster.webp') center / cover no-repeat;
  }
  .estang-content-card,
  .estang-content-card > * { opacity: 1 !important; transform: none !important; transition: none !important; }
  .estang-scroll-line { animation: none !important; }
  .estang-scroll-cue { display: none; }
}
