/* ============================================================
   Delfosse Properties — Fiche appartement V2 éditorial
   Itération 3 : hero split + stats · galerie mosaïque asymétrique · lightbox premium
   Hérite des tokens V2 de style.css
   ============================================================ */

.sejour-page{background:var(--bg);color:var(--ink);font-family:var(--f-sans)}
.sejour-page .site-header{position:sticky;top:0}

/* ============== BANDEAU FICHE ============== */
.sejour-top{
  display:flex;justify-content:space-between;align-items:center;gap:var(--s-3);
  padding:var(--s-5) var(--gutter) 0;
  max-width:var(--container);margin:0 auto;
  font-family:var(--f-sans);font-size:10px;letter-spacing:.3em;text-transform:uppercase;
  color:var(--ink-muted);font-weight:500;
}
.back-link{
  display:inline-flex;align-items:center;gap:10px;padding:4px 0;
  border-bottom:1px solid transparent;
  transition:all .4s var(--ease);
}
.back-link:hover{color:var(--ink);border-bottom-color:var(--accent)}
.top-meta{display:inline-flex;align-items:center;gap:20px;flex-wrap:wrap;justify-content:flex-end}
.top-num{
  font-family:var(--f-serif);font-style:italic;font-weight:400;
  font-size:14px;color:var(--accent-dk);letter-spacing:.02em;text-transform:none;
}
.top-rating{color:var(--ink)}
.top-rating::before{content:"";display:inline-block;width:24px;height:1px;background:var(--accent);margin-right:12px;vertical-align:middle}

/* ============== HERO SPLIT ============== */
.sejour-hero{
  padding:var(--s-5) var(--gutter) 0;
  max-width:var(--container);margin:0 auto;
  display:grid;grid-template-columns:.95fr 1.2fr;
  gap:clamp(40px, 6vw, 100px);
  align-items:stretch;min-height:72vh;
}
/* Variante sans diaporama (le coverflow galerie prend la suite en pleine largeur) */
.sejour-hero--solo{
  grid-template-columns:1fr;
  min-height:auto;
  padding-bottom:clamp(48px, 5vw, 80px);
}
.sejour-hero--solo .hero-title{
  max-width:820px;
  padding:clamp(32px, 5vw, 72px) 0 0;
}
.hero-title{display:flex;flex-direction:column;justify-content:center;padding:var(--s-5) 0}
.hero-title .eyebrow{margin-bottom:var(--s-3)}
.hero-title .display{
  font-family:var(--f-serif);font-weight:300;font-style:italic;
  font-size:clamp(48px, 6vw, 100px);line-height:.94;letter-spacing:-.035em;
  color:var(--ink);margin:0 0 var(--s-3);
}
.hero-title .display em{font-style:italic;color:var(--accent-dk)}
.hero-title .sub{
  font-family:var(--f-serif);font-style:italic;font-weight:400;
  font-size:clamp(22px, 2vw, 30px);color:var(--accent-dk);margin:0 0 var(--s-4);
}
.hero-title .addr{
  font-family:var(--f-sans);font-size:11px;letter-spacing:.28em;text-transform:uppercase;
  color:var(--ink-muted);font-weight:500;margin:0 0 var(--s-5);
  padding-top:var(--s-3);border-top:1px solid var(--line-soft);
}
.hero-title .addr::before{
  content:"";display:inline-block;width:30px;height:1px;background:var(--accent);
  margin-right:14px;vertical-align:middle;
}
.hero-title .lede{margin:0 0 var(--s-4);max-width:42ch}
.hero-title .hero-cta{display:flex;flex-direction:column;gap:var(--s-3);align-items:flex-start}
.hero-title .rating-row{
  font-family:var(--f-sans);font-size:11px;letter-spacing:.28em;text-transform:uppercase;
  color:var(--ink-soft);font-weight:500;
}
.hero-title .rating-row::before{content:"";display:inline-block;width:24px;height:1px;background:var(--accent);margin-right:12px;vertical-align:middle}

.hero-image{position:relative;overflow:hidden;isolation:isolate;min-height:72vh}
.hero-image .slide{
  position:absolute;inset:0;opacity:0;transition:opacity 1.3s var(--ease);
}
.hero-image .slide.is-active{opacity:1}
.hero-image .slide img{width:100%;height:100%;object-fit:cover;display:block;transform:scale(1.05)}
.hero-image .slide.is-active img{animation:hero-kb 14s ease-in-out forwards}
@keyframes hero-kb{
  from{transform:scale(1.02) translate3d(-1%, 1%, 0)}
  to  {transform:scale(1.14) translate3d( 1%, -1%, 0)}
}

.hero-progress{
  position:absolute;top:20px;left:20px;right:20px;z-index:3;
  display:flex;gap:6px;
}
.hero-progress .bar{flex:1;height:2px;background:rgba(255,255,255,.3);overflow:hidden}
.hero-progress .bar::after{
  content:"";display:block;width:0;height:100%;background:var(--accent-lt);
}
.hero-progress .bar.is-done::after{width:100%}
.hero-progress .bar.is-active::after{animation:progress 5s linear forwards}
@keyframes progress{to{width:100%}}

.hero-image::after{
  content:"";position:absolute;bottom:20px;right:20px;z-index:2;
  width:52px;height:52px;
  background:url("../img/delfosse-mark.png") no-repeat bottom right / contain;
  filter:invert(1) brightness(1.15)
    drop-shadow(0 1px 2px rgba(0,0,0,.5))
    drop-shadow(0 3px 10px rgba(0,0,0,.4));
  opacity:.9;pointer-events:none;
}

/* ============== STATS BAND ============== */
.sejour-stats{
  margin:var(--section-y) 0 0;padding:0;max-width:none;
  background:var(--bg-alt);
  border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);
}
.stats-inner{
  max-width:var(--container);margin:0 auto;padding:clamp(36px, 4vw, 60px) var(--gutter);
  display:grid;grid-template-columns:repeat(5, 1fr);gap:0;
}
.stat-cell{
  padding:0 clamp(16px, 2vw, 32px);
  border-right:1px solid var(--line-soft);
  display:grid;gap:8px;align-content:start;
}
.stat-cell:first-child{padding-left:0}
.stat-cell:last-child{border-right:0;padding-right:0}
.stat-label{
  font-family:var(--f-sans);font-size:10px;letter-spacing:.28em;text-transform:uppercase;
  color:var(--ink-muted);font-weight:500;
}
.stat-value{
  font-family:var(--f-serif);font-weight:300;font-style:italic;
  font-size:clamp(44px, 5vw, 72px);line-height:1;letter-spacing:-.03em;color:var(--ink);
}
.stat-value em{color:var(--accent-dk);font-size:.45em;font-weight:400;margin-left:4px;font-style:italic}

/* Note secondaire sous le chiffre (ex: "dont canapé-lit king size", "+ mezzanine") :
   un retour à la ligne pour ne pas déborder + typo plus fine que la note Airbnb /5. */
.stat-value em.stat-note{
  display:block;
  font-family:var(--f-serif);font-style:italic;font-weight:400;
  font-size:clamp(12px, 1.05vw, 14px);
  letter-spacing:.01em;
  color:var(--accent-dk);
  margin:6px 0 0;
  line-height:1.3;
  max-width:20ch;
}
@media (max-width: 640px){
  .stat-value em.stat-note{font-size:11px;margin-top:4px}
}

/* ============== AMENITIES (Wi-Fi + Clim sous les stats) ============== */
.stats-amenities{
  max-width:var(--container);margin:0 auto;
  padding:clamp(14px, 2vw, 24px) var(--gutter) clamp(36px, 4vw, 60px);
  display:flex;justify-content:center;align-items:center;gap:clamp(24px, 5vw, 60px);
  flex-wrap:wrap;
  border-top:1px solid var(--line-soft);
  margin-top:clamp(24px, 3vw, 40px);
}
.stats-amenities .amenity{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--f-sans);font-size:12px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--ink-soft);font-weight:500;
}
.stats-amenities .amenity svg{
  color:var(--accent-dk);flex-shrink:0;
}

/* ============== DESCRIPTION ============== */
.sejour-desc{
  padding:var(--section-y) var(--gutter);
  max-width:var(--container);margin:0 auto;
  display:grid;grid-template-columns:1fr 1.4fr;gap:clamp(40px, 8vw, 140px);
  align-items:start;
}
.sejour-desc p{font-family:var(--f-sans);margin:0 0 var(--s-3);max-width:60ch;color:var(--ink-soft);font-size:15px;line-height:1.75}
.sejour-desc p.intro{
  font-family:var(--f-serif);font-style:italic;font-weight:400;
  font-size:clamp(19px, 1.4vw, 22px);line-height:1.45;color:var(--ink-soft);
}
.sejour-desc h3{
  font-family:var(--f-serif);font-weight:400;font-size:24px;letter-spacing:-.01em;
  margin:var(--s-5) 0 var(--s-2);display:inline-flex;align-items:baseline;gap:12px;
}
.sejour-desc h3::before{
  content:"";display:inline-block;width:28px;height:1px;background:var(--accent);
  transform:translateY(-8px);flex:0 0 28px;
}
.sejour-desc ul{list-style:none;padding:0;margin:var(--s-2) 0 var(--s-4)}
.sejour-desc li{
  padding:var(--s-2) 0;border-bottom:1px solid var(--line-soft);
  display:flex;justify-content:space-between;gap:20px;
  font-family:var(--f-sans);font-size:14px;color:var(--ink);
}
.sejour-desc li span{
  color:var(--ink-muted);font-size:11px;letter-spacing:.22em;text-transform:uppercase;font-weight:500;
}

/* ============== GALERIE — Layout Airbnb (1 hero + 2×2 thumbs) ============== */
.sejour-gallery{
  padding:var(--section-y) var(--gutter);
  max-width:var(--container);margin:0 auto;
  border-top:1px solid var(--line-soft);
}

/* === DESKTOP : 1 colonne hero + 2 colonnes thumbs (2x2) === */
.ab-gallery{
  position:relative;
  display:grid;
  grid-template-columns:1.6fr 1fr 1fr;
  grid-template-rows:1fr 1fr;
  gap:8px;
  aspect-ratio:16 / 9;
  border:1px solid rgba(245,237,224,.2);
  border-radius:12px;
  overflow:hidden;
  isolation:isolate;
}
.ab-cell{
  position:relative;
  border:0;padding:0;margin:0;
  background:#0d1b30;
  cursor:zoom-in;
  overflow:hidden;
  transition:filter 600ms var(--ease-cine);
}
.ab-cell img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform 900ms var(--ease-cine);
  will-change:transform;
}
.ab-cell:hover img{transform:scale(1.03)}
.ab-cell::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:rgba(10,22,40,0);
  transition:background 500ms var(--ease-cine);
}
.ab-cell:hover::after{background:rgba(10,22,40,.15)}
.ab-cell:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;z-index:2}

.ab-hero{grid-column:1;grid-row:1 / span 2}
/* thumbs auto-positionnés 2×2 à droite via grid flow */

.ab-mobile-counter{display:none} /* activé mobile uniquement */

/* Bouton "Voir les N photos" en overlay bas-droite */
.ab-showall{
  position:absolute;right:16px;bottom:16px;z-index:3;
  display:inline-flex;align-items:center;gap:10px;
  padding:10px 18px;
  background:rgba(245,237,224,.92);
  color:var(--nvy-deep);
  border:1px solid rgba(245,237,224,.95);
  border-radius:6px;
  font-family:var(--f-sans);font-weight:500;
  font-size:12px;letter-spacing:.16em;text-transform:uppercase;
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  cursor:pointer;
  box-shadow:0 6px 20px -6px rgba(0,0,0,.35);
  transition:
    background 400ms var(--ease-cine),
    transform 400ms var(--ease-cine),
    color 400ms var(--ease-cine),
    border-color 400ms var(--ease-cine);
}
.ab-showall:hover{
  background:var(--accent);
  border-color:var(--accent);
  color:var(--nvy-deep);
  transform:translateY(-2px);
}
.ab-showall svg{flex-shrink:0}

/* Mobile strip : caché sur desktop */
.ab-strip{display:none}

/* === MOBILE : hero plein cadre + strip horizontal === */
@media (max-width: 820px){
  .ab-gallery{
    grid-template-columns:1fr;
    grid-template-rows:auto;
    aspect-ratio:auto;
    border-radius:8px;
  }
  .ab-cell:not(.ab-hero){display:none}
  .ab-hero{
    grid-column:1;grid-row:1;
    aspect-ratio:4 / 3;
  }
  .ab-mobile-counter{
    display:inline-flex;align-items:center;
    position:absolute;top:14px;right:14px;z-index:3;
    padding:6px 12px;
    background:rgba(10,22,40,.6);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
    color:var(--cream);
    font-family:var(--f-mono);
    font-size:11px;letter-spacing:.12em;
    border-radius:999px;
    border:1px solid rgba(245,237,224,.2);
  }
  .ab-showall{right:14px;bottom:14px;padding:8px 14px;font-size:11px;letter-spacing:.14em}

  .ab-strip{
    display:flex;
    gap:8px;
    margin-top:8px;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    scrollbar-width:none;-ms-overflow-style:none;
    padding-bottom:4px;
  }
  .ab-strip::-webkit-scrollbar{display:none}
  .ab-strip-cell{
    flex:0 0 120px;height:120px;
    border:0;padding:0;margin:0;
    background:#0d1b30;
    border-radius:6px;
    overflow:hidden;
    cursor:zoom-in;
    scroll-snap-align:start;
    transition:transform 400ms var(--ease-cine);
  }
  .ab-strip-cell img{width:100%;height:100%;object-fit:cover;display:block}
  .ab-strip-cell:active{transform:scale(.96)}
}

/* === Legacy styles (compat) — ne rend plus rien puisque .gallery-grid n'est plus généré === */
.gallery-grid{display:none}

@media (max-width: 820px){
  .gallery-grid{grid-template-columns:repeat(2, 1fr);grid-auto-rows:160px}
  .gallery-item:nth-child(n){grid-column:span 1;grid-row:span 1}
  .gallery-item:nth-child(1){grid-column:span 2;grid-row:span 1}
}

/* ============== LIGHTBOX PREMIUM ============== */
.lightbox{
  position:fixed;inset:0;z-index:1000;background:#0A1423;
  display:grid;place-items:center;
  opacity:0;pointer-events:none;
  transition:opacity .5s var(--ease);
  isolation:isolate;
}
.lightbox.open{opacity:1;pointer-events:auto}
.lightbox::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(ellipse at center, rgba(26,42,65,.3), #0A1423 70%);
}
.lightbox-stage{
  position:relative;z-index:1;
  width:min(96vw, 1400px);height:min(82vh, 960px);
  display:grid;place-items:center;padding:10vh 0 80px;
}
.lightbox-image{
  max-width:100%;max-height:100%;object-fit:contain;display:block;
  user-select:none;
  box-shadow:0 40px 100px -40px rgba(0,0,0,.7);
  transition:opacity .3s var(--ease);
}
.lightbox-image.swapping{opacity:0}

.lightbox-top{
  position:absolute;top:32px;left:50%;transform:translateX(-50%);z-index:5;
  display:flex;align-items:center;gap:var(--s-4);flex-wrap:wrap;justify-content:center;
  font-family:var(--f-sans);font-size:10px;letter-spacing:.3em;text-transform:uppercase;
  color:rgba(245,239,225,.75);font-weight:500;
}
.lightbox-top strong{
  font-family:var(--f-serif);font-style:italic;font-weight:300;font-size:18px;
  color:var(--accent-lt);letter-spacing:.02em;text-transform:none;
}
.lightbox-top em{
  font-family:var(--f-serif);font-style:italic;color:var(--cream);
  font-size:14px;text-transform:none;letter-spacing:.02em;
}

.lightbox-close{
  position:absolute;top:24px;right:24px;z-index:5;
  width:48px;height:48px;border-radius:50%;
  border:1px solid rgba(245,239,225,.3);color:var(--cream);background:transparent;
  display:inline-flex;align-items:center;justify-content:center;cursor:pointer;
  transition:all .4s var(--ease);
}
.lightbox-close:hover{background:rgba(245,239,225,.1);border-color:var(--accent)}

.lightbox-nav{
  position:absolute;top:50%;transform:translateY(-50%);z-index:5;
  width:56px;height:56px;border-radius:50%;
  border:1px solid rgba(245,239,225,.25);color:var(--cream);background:rgba(10,20,35,.6);
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  display:inline-flex;align-items:center;justify-content:center;cursor:pointer;
  transition:all .4s var(--ease);
}
.lightbox-nav:hover{background:rgba(245,239,225,.12);border-color:var(--accent)}
.lightbox-prev{left:24px}
.lightbox-next{right:24px}
.lightbox-nav svg{transition:transform .4s var(--ease)}
.lightbox-prev:hover svg{transform:translateX(-3px)}
.lightbox-next:hover svg{transform:translateX(3px)}

.lightbox-thumbs{
  position:absolute;bottom:20px;left:50%;transform:translateX(-50%);z-index:5;
  display:flex;gap:8px;padding:8px;
  max-width:90vw;overflow-x:auto;
  scrollbar-width:none;-ms-overflow-style:none;
}
.lightbox-thumbs::-webkit-scrollbar{display:none}
.lightbox-thumb{
  flex:0 0 56px;width:56px;height:42px;object-fit:cover;
  opacity:.4;cursor:pointer;transition:all .4s var(--ease);
  border:1px solid transparent;
}
.lightbox-thumb:hover{opacity:.75}
.lightbox-thumb.is-active{opacity:1;border-color:var(--accent)}

/* ============== PLAN ============== */
.sejour-map{
  padding:var(--section-y) var(--gutter);
  max-width:var(--container);margin:0 auto;
  border-top:1px solid var(--line-soft);
}
.sejour-map .section-head{margin-bottom:clamp(40px, 5vw, 72px)}
.carte-3d{position:relative;aspect-ratio:16/9;perspective:1800px;transform-style:preserve-3d;transition:transform 1.2s var(--ease)}
.carte-canvas{
  width:100%;height:100%;position:relative;overflow:hidden;
  background:var(--bg-alt);border:1px solid var(--line-soft);
}
.carte-canvas .leaflet-tile-pane{filter:grayscale(.8) contrast(.85) brightness(1.08) saturate(.6)}
.carte-canvas .leaflet-container{background:var(--bg-alt)}
.carte-canvas .leaflet-control-attribution{display:none}
.carte-canvas .leaflet-control-zoom{border:0;box-shadow:none;margin:16px}
.carte-canvas .leaflet-control-zoom a{
  background:var(--ink);color:var(--cream);border:0;
  width:36px;height:36px;line-height:36px;font-weight:300;
  transition:background var(--t-med) var(--ease);
}
.carte-canvas .leaflet-control-zoom a:hover{background:var(--accent-dk)}

.dp-marker-wrap{background:transparent;border:0}
.dp-marker{
  width:44px;height:44px;border-radius:50%;
  background:var(--ink);color:var(--cream);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--f-serif);font-style:italic;font-weight:400;font-size:15px;letter-spacing:.02em;
  border:2px solid var(--bg);
  box-shadow:0 0 0 1px rgba(10,20,35,.2), 0 6px 18px -4px rgba(10,20,35,.5);
  cursor:pointer;position:relative;
}
.dp-marker.is-active{background:var(--accent-dk);transform:scale(1.15);box-shadow:0 0 0 1px var(--accent), 0 8px 24px -4px rgba(138,111,69,.5)}
.dp-marker.is-active::after{
  content:"";position:absolute;inset:-12px;border-radius:50%;
  border:1px solid var(--accent);
  animation:marker-pulse 2s ease-out infinite;pointer-events:none;
}
@keyframes marker-pulse{
  0%{opacity:.8;transform:scale(.8)}
  100%{opacity:0;transform:scale(1.8)}
}

.carte-meta{
  position:absolute;top:18px;left:18px;z-index:5;
  display:flex;align-items:center;gap:10px;
  font-family:var(--f-sans);font-size:10px;letter-spacing:.24em;text-transform:uppercase;
  color:var(--cream);font-weight:500;
  background:rgba(12,26,43,.75);padding:8px 14px;
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
}
.carte-meta .rec{
  width:6px;height:6px;border-radius:50%;background:var(--accent);
  animation:rec-blink 2s ease-in-out infinite;
}
@keyframes rec-blink{0%,100%{opacity:1}50%{opacity:.3}}

.carte-compass{
  position:absolute;bottom:18px;right:18px;z-index:5;
  width:52px;height:52px;border-radius:50%;
  background:rgba(12,26,43,.75);color:var(--cream);
  display:flex;align-items:center;justify-content:center;
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  font-family:var(--f-serif);font-style:italic;font-size:12px;
  padding-top:5px;position:relative;
}
.carte-compass svg{position:absolute;opacity:.7}

.map-legend{
  margin-top:var(--s-3);
  display:grid;grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));gap:0;
  border-top:1px solid var(--line-soft);
}
.map-legend div{
  font-family:var(--f-sans);font-size:13px;color:var(--ink-soft);
  padding:var(--s-3) var(--s-3) var(--s-3) 0;
  border-right:1px solid var(--line-soft);
  border-bottom:1px solid var(--line-soft);
  display:flex;justify-content:space-between;gap:14px;
}
.map-legend div:last-child{border-right:0}
.map-legend span:first-child{
  font-size:10px;letter-spacing:.28em;text-transform:uppercase;
  color:var(--ink-muted);font-weight:500;
}
.map-legend span:last-child{color:var(--ink);font-family:var(--f-serif);font-style:italic;font-size:15px}

/* ============== CTA FINALE ============== */
.sejour-cta{
  background:var(--bg-deep);color:var(--cream);
  padding:var(--section-y) var(--gutter);margin:0;
  position:relative;overflow:hidden;
}
.sejour-cta::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(ellipse at 30% 50%, rgba(182,147,104,.1), transparent 60%);
}
.cta-wrap{
  max-width:var(--container);margin:0 auto;text-align:center;
  display:grid;gap:var(--s-4);justify-items:center;position:relative;
}
.cta-wrap .eyebrow{color:rgba(245,239,225,.72);justify-content:center}
.cta-wrap .eyebrow::before{background:var(--accent)}
.cta-wrap .h-display{
  color:var(--cream);max-width:18ch;
  font-family:var(--f-serif);font-style:italic;font-weight:300;
  font-size:clamp(48px, 6vw, 88px);line-height:1;letter-spacing:-.025em;
  margin:0 0 var(--s-2);
}
.cta-wrap .h-display em{font-style:italic;color:var(--accent-lt)}
.cta-wrap .rating{
  font-family:var(--f-sans);font-size:11px;letter-spacing:.28em;text-transform:uppercase;
  color:rgba(245,239,225,.7);font-weight:500;display:inline-flex;align-items:center;gap:14px;
}
.cta-wrap .rating::before,.cta-wrap .rating::after{content:"";width:24px;height:1px;background:var(--accent)}
.btn-big{min-height:60px;padding:18px 44px;font-size:12px}

/* ============================================================
   COVERFLOW FICHE (galerie photos de l'apart)
   Réutilise les classes .cf-* du home coverflow + overrides .fcf-*
   pour cartes sans overlay texte (juste l'image).
   ============================================================ */
.sejour-coverflow{
  position:relative;
  padding:clamp(60px, 8vw, 100px) 0 clamp(40px, 6vw, 70px);
  background:#0A1628;
  color:#F5EDE0;
  overflow:hidden;isolation:isolate;
}
.sejour-coverflow::before{
  /* vignette signature */
  content:"";position:absolute;inset:0;pointer-events:none;z-index:0;
  background:radial-gradient(ellipse at center, transparent 30%, rgba(10,22,40,.9) 94%);
}
.sejour-coverflow .section-head{
  position:relative;z-index:1;
  max-width:var(--container);margin:0 auto clamp(28px, 4vw, 48px);
  padding:0 var(--gutter);
}
.sejour-coverflow .section-head .eyebrow{color:rgba(245,237,224,.72)}
.sejour-coverflow .section-head .eyebrow-num{color:var(--accent-lt);border-right-color:rgba(201,169,97,.3)}
.sejour-coverflow .section-head .h-display{
  font-family:var(--f-serif);font-weight:300;
  font-size:clamp(36px, 5vw, 72px);line-height:1.05;letter-spacing:-.02em;
  color:#F5EDE0;margin:0;max-width:18ch;
}
.sejour-coverflow .section-head .h-display em{color:var(--accent-lt)}

/* Cartes fiche = cf-card + .fcf-card (simplifiées, pas d'overlay) */
.fcf-card::after{display:none !important}
.fcf-card{
  /* Cards légèrement plus hautes sur desktop pour mettre en valeur la photo */
  height:clamp(360px, 60vh, 560px);
  cursor:pointer;
}
/* Cache les éventuels blocs texte (ils ne doivent pas exister côté HTML, safety) */
.fcf-card .cf-card-top,
.fcf-card .cf-card-bot{display:none !important}

@media (max-width: 760px){
  .fcf-card{
    height:clamp(360px, 64vh, 520px);
    width:clamp(260px, 82vw, 380px);
  }
}

/* ============== RESPONSIVE ============== */
@media (max-width: 820px){
  .sejour-hero{grid-template-columns:1fr;gap:var(--s-4);min-height:auto;padding:var(--s-4) var(--gutter) 0}
  .hero-image{aspect-ratio:4/5;min-height:auto}
  .sejour-desc{grid-template-columns:1fr;padding:var(--s-6) var(--gutter);gap:var(--s-4)}
  .stats-inner{grid-template-columns:repeat(2, 1fr);padding:var(--s-4) var(--gutter);gap:var(--s-3)}
  .stat-cell{border-right:0;border-bottom:1px solid var(--line-soft);padding:0 0 var(--s-3)}
  .stat-cell:nth-child(2){border-right:0}
  .stat-cell:nth-last-child(-n+2){border-bottom:0;padding-bottom:0}
  .sejour-top{
    font-size:9px;letter-spacing:.22em;
    padding:var(--s-4) var(--gutter) 0;
    flex-wrap:wrap;gap:var(--s-2);
  }
  .top-meta{gap:12px}
}

/* ============== MOBILE — alignement fiches ============== */
@media (max-width: 640px){
  /* Conteneurs : padding horizontal cohérent partout */
  .sejour-top,
  .sejour-hero,
  .sejour-desc,
  .sejour-gallery,
  .stats-inner{
    padding-left:clamp(18px, 5vw, 28px);
    padding-right:clamp(18px, 5vw, 28px);
  }

  /* Bandeau du haut : stack vertical propre */
  .sejour-top{
    flex-direction:column;align-items:flex-start;gap:10px;
    padding-top:16px;
  }
  .top-meta{justify-content:flex-start;gap:14px}

  /* Hero : padding cohérent, titres sans débordement */
  .sejour-hero{padding-top:20px;gap:24px}
  .hero-title{padding:16px 0 0}
  .hero-title .display{
    font-size:clamp(38px, 11vw, 54px);
    line-height:1.0;letter-spacing:-.025em;
    word-break:keep-all;overflow-wrap:normal;
  }
  .hero-title .sub{font-size:clamp(18px, 5vw, 22px);margin-bottom:20px}
  .hero-title .addr{margin-bottom:24px;font-size:10px}
  .hero-title .lede{font-size:15px;line-height:1.6;margin-bottom:20px}
  .hero-title .hero-cta{gap:14px}
  .hero-title .rating-row{font-size:10px}
  .btn-gold{width:auto;align-self:flex-start}

  /* Stats : 2 colonnes égales, valeurs alignées */
  .sejour-stats{margin-top:40px}
  .stats-inner{gap:18px 16px}
  .stat-cell{align-content:start;gap:6px;padding-bottom:18px}
  .stat-value{font-size:clamp(34px, 10vw, 48px)}
  .stat-label{font-size:9px;letter-spacing:.22em}

  /* Description : padding cohérent + titre sans débordement */
  .sejour-desc{padding-top:56px;padding-bottom:56px;gap:20px}
  .sejour-desc .h-display{
    font-size:clamp(34px, 9vw, 44px);line-height:1.05;
  }
  .sejour-desc .intro{font-size:16px;line-height:1.55}
  .sejour-desc p{font-size:14px;line-height:1.7}
  .sejour-desc h3{
    font-size:20px;margin-top:32px;gap:10px;
    flex-wrap:wrap;
  }
  .sejour-desc h3::before{transform:translateY(-5px)}
  .sejour-desc li{
    flex-direction:column;gap:4px;
    padding:12px 0;font-size:14px;
  }
  .sejour-desc li span{font-size:9px}

  /* Galerie : padding cohérent avec le reste */
  .sejour-gallery{padding-top:40px;padding-bottom:40px}
  .sejour-gallery .section-head{margin-bottom:24px}
  .sejour-gallery .section-head .h-display{
    font-size:clamp(34px, 9vw, 44px);line-height:1.05;
  }

  /* CTA finale */
  .cta-wrap{padding:60px clamp(18px, 5vw, 28px)}
  .cta-wrap .h-display{font-size:clamp(32px, 9vw, 42px);line-height:1.1}
  .btn-big{padding:16px 32px;font-size:11px}
}

@media (prefers-reduced-motion: reduce){
  .hero-image .slide,.hero-image .slide.is-active img,
  .lightbox,.lightbox-image,.gallery-item img{
    transition:none!important;animation:none!important;
  }
}
