/* ============================================================
   L'ABBAYE — Restaurant · style.css
   Palette dérivée du logo : parchemin, encre, or enluminé
   ============================================================ */

:root{
  --parchment:      #EFE7D2;
  --parchment-deep: #E4D7B8;
  --ink:            #17130D;
  --ink-soft:       #2B241A;
  --gold:           #B8923F;
  --gold-light:     #D9BC72;
  --gold-dark:      #8A6B2A;
  --shadow:         rgba(23,19,13,.45);

  --font-display: 'Cormorant Garamond', 'Garamond', serif;
  --font-caps:    'Cinzel', 'Trajan Pro', serif;

  --nav-h: 96px;
}

*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }

html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation:none !important; transition:none !important; }
}

body{
  font-family: var(--font-display);
  font-size: 1.15rem;
  line-height: 1.75;
  color: var(--ink);
  background: var(--parchment);
}

img{ max-width:100%; display:block; }

/* ---------- ornements réutilisables ---------- */
.ornament{
  display:flex; align-items:center; justify-content:center;
  gap:.9rem; color:var(--gold); margin:1.4rem 0;
}
.ornament::before,.ornament::after{
  content:""; height:1px; width:min(120px,22vw);
  background:linear-gradient(90deg, transparent, var(--gold));
}
.ornament::after{ background:linear-gradient(90deg, var(--gold), transparent); }
.ornament svg{ width:26px; height:26px; fill:var(--gold); }

.eyebrow{
  font-family:var(--font-caps);
  font-size:.78rem; letter-spacing:.42em; text-transform:uppercase;
  color:var(--gold-dark);
}

/* cadre manuscrit : double filet or */
.frame{
  border:1px solid var(--gold);
  outline:1px solid var(--gold);
  outline-offset:6px;
}

/* ============================================================
   HEADER — nav scindée autour du sceau
   ============================================================ */
.site-header{
  position:fixed; inset:0 0 auto 0; z-index:100;
  height:var(--nav-h);
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  padding:0 clamp(1rem, 4vw, 3.5rem);
  transition:background .45s ease, box-shadow .45s ease, height .45s ease;
}
.site-header.scrolled{
  --nav-h:72px;
  background:rgba(239,231,210,.96);
  box-shadow:0 1px 0 var(--gold), 0 8px 24px rgba(23,19,13,.18);
}

.nav-side{ display:flex; gap:clamp(1rem,2.6vw,2.6rem); list-style:none; }
.nav-side.left{ justify-content:flex-end; }
.nav-side.right{ justify-content:flex-start; align-items:center; }

.nav-side a{
  font-family:var(--font-caps);
  font-size:.82rem; letter-spacing:.28em; text-transform:uppercase;
  text-decoration:none; color:var(--parchment);
  padding:.4rem 0; position:relative; white-space:nowrap;
  transition:color .3s ease;
}
.nav-side a::after{
  content:""; position:absolute; left:50%; bottom:0;
  width:0; height:1px; background:var(--gold-light);
  transition:width .35s ease, left .35s ease;
}
.nav-side a:hover::after,
.nav-side a:focus-visible::after{ width:100%; left:0; }
.nav-side a:hover,
.nav-side a:focus-visible{ color:var(--gold-light); }

.site-header.scrolled .nav-side a{ color:var(--ink); }
.site-header.scrolled .nav-side a:hover{ color:var(--gold-dark); }

/* sceau central */
.brand{
  margin:0 clamp(1.2rem,3vw,3rem);
  width:120px; height:120px;
  transform:translateY(34px);
  transition:width .45s ease, height .45s ease, transform .45s ease;
  filter:drop-shadow(0 6px 18px var(--shadow));
}
.brand img{ width:100%; height:100%; }
.site-header.scrolled .brand{
  width:58px; height:58px; transform:translateY(0);
  filter:drop-shadow(0 2px 6px rgba(23,19,13,.3));
}

/* commutateur FR / EN — style interrupteur iOS */
.lang-switch{
  display:inline-flex; align-items:center;
  border:1px solid var(--gold-light);
  border-radius:999px;
  padding:3px;
  background:rgba(23,19,13,.35);
  cursor:pointer; user-select:none;
  transition:background .3s ease, border-color .3s ease;
}
.site-header.scrolled .lang-switch{
  background:transparent; border-color:var(--gold-dark);
}
.lang-switch span{
  font-family:var(--font-caps);
  font-size:.68rem; letter-spacing:.14em;
  padding:.32rem .68rem; border-radius:999px;
  color:var(--parchment); transition:all .3s ease;
}
.site-header.scrolled .lang-switch span{ color:var(--ink-soft); }
.lang-switch span.active{
  background:var(--gold); color:var(--ink);
}

/* burger mobile */
.burger{
  display:none;
  background:none; border:1px solid var(--gold-light); border-radius:4px;
  width:44px; height:40px; cursor:pointer;
  flex-direction:column; align-items:center; justify-content:center; gap:6px;
}
.burger span{ display:block; width:20px; height:1.5px; background:var(--parchment); transition:.3s; }
.site-header.scrolled .burger span{ background:var(--ink); }
/* menu ouvert : fond sombre → traits toujours parchemin, quel que soit le scroll */
.site-header.menu-open .burger span,
.site-header.scrolled.menu-open .burger span{ background:var(--parchment); }
.site-header.scrolled.menu-open .lang-switch{ background:rgba(23,19,13,.35); border-color:var(--gold-light); }
.site-header.scrolled.menu-open .lang-switch span{ color:var(--parchment); }
.site-header.scrolled.menu-open .lang-switch span.active{ background:var(--gold); color:var(--ink); }

/* ============================================================
   HERO — zoom lent façon vidéo
   ============================================================ */
.hero{
  position:relative;
  min-height:100svh;
  display:flex; flex-direction:column;
  align-items:center; justify-content:center;
  text-align:center;
  overflow:hidden;
  color:var(--parchment);
  padding:calc(var(--nav-h) + 4rem) 1.5rem 6rem;
}

/* couche image — zoom lent */
.hero::before{
  content:"";
  position:absolute; inset:0;
  background-position:center;
  background-size:cover;
  background-repeat:no-repeat;
  animation:hero-zoom 28s ease-in-out infinite alternate;
  will-change:transform;
  z-index:0;
}

/* voile sombre pour la lisibilité du texte */
.hero::after{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(23,19,13,.72) 0%, rgba(23,19,13,.45) 45%, rgba(23,19,13,.8) 100%);
  z-index:1;
}

.hero > *{ position:relative; z-index:2; }

@keyframes hero-zoom{
  from{ transform:scale(1); }
  to{   transform:scale(1.14); }
}

@media (prefers-reduced-motion: reduce){
  .hero::before{ animation:none; transform:scale(1.05); }
}

/* image propre à chaque page */
.hero--home::before{
  background-image:url('../img/img-89.jpg');
}
.hero--apropos::before{
  background-image:url('../img/img-58.jpg');
}

.hero h1{
  font-family:var(--font-display);
  font-weight:500;
  font-size:clamp(3rem, 8vw, 6.4rem);
  letter-spacing:.06em;
  line-height:1.05;
  text-shadow:0 3px 24px rgba(23,19,13,.6);
}
.hero .eyebrow{ color:var(--gold-light); margin-bottom:1.1rem; }
.hero .tagline{
  font-style:italic;
  font-size:clamp(1.15rem, 2.4vw, 1.55rem);
  max-width:34ch;
  margin-top:1.2rem;
  color:#EFE7D2CC;
}

/* flèche de défilement */
.scroll-cue{
  position:absolute; left:50%; bottom:2.4rem;
  transform:translateX(-50%);
  width:54px; height:54px;
  border:1px solid var(--gold-light);
  border-radius:50%;
  background:rgba(23,19,13,.35);
  color:var(--gold-light);
  display:flex; align-items:center; justify-content:center;
  cursor:pointer;
  transition:background .3s ease, transform .3s ease;
  animation:cue-float 2.6s ease-in-out infinite;
}
.scroll-cue:hover{ background:rgba(184,146,63,.35); }
.scroll-cue svg{ width:20px; height:20px; stroke:currentColor; fill:none; stroke-width:1.6; }
@keyframes cue-float{
  0%,100%{ transform:translateX(-50%) translateY(0); }
  50%    { transform:translateX(-50%) translateY(9px); }
}

/* ============================================================
   SECTIONS communes
   ============================================================ */
.section{ padding:clamp(4rem,9vw,7.5rem) clamp(1.25rem,5vw,4rem); }
.section-head{ text-align:center; max-width:720px; margin:0 auto 3.2rem; }
.section-head h2{
  font-family:var(--font-display);
  font-weight:500;
  font-size:clamp(2rem,4.4vw,3.1rem);
  letter-spacing:.04em;
  margin-top:.6rem;
}

/* ---------- À PROPOS ---------- */
.about-grid{
  display:grid;
  grid-template-columns:minmax(280px,460px) 1fr;
  gap:clamp(2rem,5vw,4.5rem);
  align-items:center;
  max-width:1180px; margin:0 auto;
}
.about-grid figure{ padding:10px; background:var(--parchment-deep); }
.about-grid figcaption{
  font-family:var(--font-caps); font-size:.7rem;
  letter-spacing:.3em; text-transform:uppercase;
  text-align:center; color:var(--gold-dark);
  padding-top:.9rem;
}
.about-text p + p{ margin-top:1.1rem; }

/* lettrine enluminée */
.dropcap::first-letter{
  font-family:var(--font-caps);
  font-size:4.1em; line-height:.82;
  float:left;
  padding:.08em .12em 0 0;
  color:var(--gold-dark);
}

.btn{
  display:inline-block;
  font-family:var(--font-caps);
  font-size:.8rem; letter-spacing:.3em; text-transform:uppercase;
  color:var(--ink);
  border:1px solid var(--gold-dark);
  padding:.95rem 2.3rem;
  text-decoration:none;
  position:relative;
  transition:color .35s ease, background .35s ease, box-shadow .35s ease;
}
.btn:hover,.btn:focus-visible{
  background:var(--ink);
  color:var(--gold-light);
  box-shadow:0 0 0 4px var(--parchment), 0 0 0 5px var(--gold);
}
.btn.gold{ border-color:var(--gold-light); color:var(--parchment); }
.btn.gold:hover{ background:var(--gold); color:var(--ink); }

/* ---------- VIDÉO ---------- */
.video-section{
  background:var(--ink);
  color:var(--parchment);
}
.video-section .eyebrow{ color:var(--gold-light); }
.video-shell{
  max-width:1020px; margin:0 auto;
  padding:12px; 
  border:1px solid var(--gold);
  outline:1px solid var(--gold);
  outline-offset:7px;
  background:#0F0C08;
}
.video-shell video{ width:100%; display:block; }
.video-note{
  text-align:center; font-style:italic;
  color:#EFE7D299; margin-top:1.6rem; font-size:1rem;
}

/* ---------- BANDE PARALLAXE / CITATION ---------- */
.quote-band{
  position:relative;
  min-height:62vh;
  display:flex; align-items:center; justify-content:center;
  text-align:center;
  background-image:
    linear-gradient(rgba(23,19,13,.62), rgba(23,19,13,.62)),
    url('../img/abbaye-terrase.jpg');
  background-size:cover; background-position:center;
  background-attachment:fixed;
  color:var(--parchment);
  padding:5rem 1.5rem;
}
.quote-band blockquote{
  max-width:760px;
  font-size:clamp(1.5rem,3.4vw,2.3rem);
  font-style:italic; font-weight:500;
  line-height:1.5;
}
.quote-band cite{
  display:block; margin-top:1.6rem;
  font-family:var(--font-caps); font-style:normal;
  font-size:.78rem; letter-spacing:.4em; text-transform:uppercase;
  color:var(--gold-light);
}

/* ---------- GALERIE ---------- */
.gallery-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:14px;
  max-width:1180px; margin:0 auto;
}
.gallery-grid a{
  position:relative; overflow:hidden; display:block;
  aspect-ratio:4/3;
  border:1px solid var(--gold);
}
.gallery-grid img{
  width:100%; height:100%; object-fit:cover;
  transition:transform .8s cubic-bezier(.2,.6,.2,1), filter .8s ease;
}
.gallery-grid a:hover img{ transform:scale(1.06); filter:saturate(1.08); }
.gallery-cta{ text-align:center; margin-top:2.8rem; }

/* ---------- RÉSERVATION ---------- */
.reserve{
  background:
    linear-gradient(rgba(239,231,210,.92), rgba(239,231,210,.92)),
    url('../dessing/img-14.jpg') center/cover;
  text-align:center;
}
.reserve-inner{
  max-width:680px; margin:0 auto;
  padding:clamp(2.5rem,6vw,4rem);
}
.reserve-inner h2{
  font-size:clamp(2rem,4vw,2.9rem); font-weight:500; margin:.5rem 0 1rem;
}
.reserve-inner .phone{
  font-size:clamp(1.4rem,3vw,1.9rem);
  letter-spacing:.08em;
  margin:1.2rem 0 2rem;
}
.reserve-inner .phone a{ color:var(--ink); text-decoration:none; border-bottom:1px solid var(--gold); }

/* ---------- FOOTER ---------- */
.site-footer{
  background:var(--ink);
  color:#EFE7D2AA;
  text-align:center;
  padding:4rem 1.5rem 2.5rem;
}
.site-footer .emblem{ width:74px; margin:0 auto 1.4rem; opacity:.94; }
.footer-nav{
  display:flex; flex-wrap:wrap; justify-content:center;
  gap:1.6rem; list-style:none; margin:1.8rem 0;
}
.footer-nav a{
  font-family:var(--font-caps); font-size:.72rem;
  letter-spacing:.3em; text-transform:uppercase;
  color:#EFE7D2AA; text-decoration:none; transition:color .3s;
}
.footer-nav a:hover{ color:var(--gold-light); }
.site-footer .legal{ font-size:.92rem; font-style:italic; color:#EFE7D266; }

/* ---------- révélations au scroll ---------- */
.reveal{ opacity:0; transform:translateY(26px); transition:opacity .9s ease, transform .9s ease; }
.reveal.visible{ opacity:1; transform:none; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 1024px){
  .quote-band{ background-attachment:scroll; } /* iOS ne gère pas fixed */
}

@media (max-width: 860px){
  .site-header{
    grid-template-columns:auto 1fr auto;
  }
  .nav-side{ display:none; }
  .site-header .brand{ order:0; justify-self:start; width:64px; height:64px; transform:none; }
  .burger{ display:flex; justify-self:end; }
  .lang-switch.mobile-visible{ justify-self:end; margin-right:.8rem; }

  .site-header.menu-open{
    background:rgba(23,19,13,.97);
  }
  .mobile-nav{
    position:fixed; inset:var(--nav-h) 0 auto 0;
    background:rgba(23,19,13,.97);
    border-top:1px solid var(--gold-dark);
    display:none; flex-direction:column; align-items:center;
    padding:2rem 0 2.6rem; gap:1.4rem; list-style:none;
    z-index:99;
  }
  .mobile-nav.open{ display:flex; }
  .mobile-nav a{
    font-family:var(--font-caps); font-size:.9rem;
    letter-spacing:.32em; text-transform:uppercase;
    color:var(--parchment); text-decoration:none;
  }
  .about-grid{ grid-template-columns:1fr; }
  .gallery-grid{ grid-template-columns:repeat(2,1fr); }
}
@media (min-width: 861px){
  .mobile-nav{ display:none !important; }
}
@media (max-width: 520px){
  .gallery-grid{ grid-template-columns:1fr; }
}

/* ---------- v2 : vidéo à 80 % de l'écran ---------- */
.video-shell{
  max-width:none;
  width:80vw;
  margin-left:auto; margin-right:auto;
}

/* ---------- v2 : footer infos réelles ---------- */
.footer-info{ margin:0 0 1.4rem; line-height:2; font-size:1.05rem; color:#EFE7D2CC; }
.footer-info a{ color:var(--gold-light); text-decoration:none; }
.footer-info a:hover{ text-decoration:underline; }

/* ---------- v2 : variante B — bannière logo + emblème ---------- */
.brand.emblem-only{ width:64px; height:88px; }
.site-header.scrolled .brand.emblem-only{ width:38px; height:52px; }
.hero-banner-plate{
  width:min(880px, 88vw);
  padding:10px;
  background:rgba(239,231,210,.06);
  border:1px solid var(--gold-light);
  outline:1px solid var(--gold-light);
  outline-offset:6px;
  box-shadow:0 18px 60px rgba(23,19,13,.55);
  margin-bottom:1.6rem;
}
.hero-banner-plate img{ width:100%; }

/* ============================================================
   À PROPOS — gravures & textes
   ============================================================ */
.lore-row{
  display:grid;
  grid-template-columns:minmax(0,5fr) minmax(0,7fr);
  gap:clamp(2rem, 5vw, 4.5rem);
  align-items:center;
  max-width:1080px;
  margin:0 auto clamp(3.5rem, 8vw, 6rem);
}
.lore-row.flip{ grid-template-columns:minmax(0,7fr) minmax(0,5fr); }
.lore-row.flip .lore-art{ order:2; }

.lore-art img{
  width:100%;
  max-width:420px;
  display:block;
  margin:0 auto;
  filter:drop-shadow(0 6px 18px rgba(23,19,13,.18));
}
.lore-text h3{
  font-family:var(--font-caps);
  font-weight:400;
  font-size:clamp(1.3rem, 2.6vw, 1.7rem);
  letter-spacing:.08em;
  color:var(--ink);
  margin-bottom:1rem;
}
.lore-text .eyebrow{ margin-bottom:.5rem; }
.lore-text p{
  font-size:1.12rem;
  line-height:1.75;
  color:var(--ink-soft);
}

@media (max-width: 760px){
  .lore-row, .lore-row.flip{ grid-template-columns:1fr; gap:1.6rem; }
  .lore-row.flip .lore-art{ order:0; }
  .lore-art img{ max-width:300px; }
  .lore-text{ text-align:center; }
}

/* ---- le chef ---- */
.chef-block{
  max-width:820px;
  margin:0 auto;
  text-align:center;
}
.chef-photo{
  width:clamp(180px, 28vw, 240px);
  height:clamp(180px, 28vw, 240px);
  margin-inline:auto;
  border-radius:50%;
  object-fit:cover;
  border:3px solid var(--gold);
  outline:1px solid var(--gold-dark);
  outline-offset:6px;
  box-shadow:0 10px 30px rgba(23,19,13,.28);
  margin-bottom:1.8rem;
}
.chef-block h3{
  font-family:var(--font-caps);
  font-weight:400;
  font-size:clamp(1.4rem, 3vw, 1.8rem);
  letter-spacing:.08em;
  margin-bottom:1rem;
}
.chef-block p{
  font-size:1.12rem;
  line-height:1.75;
  color:var(--ink-soft);
}
.chef-block .signature{
  font-family:var(--font-display);
  font-style:italic;
  font-size:1.3rem;
  color:var(--gold-dark);
  margin-top:1.4rem;
}

/* espace sous l'eyebrow du bloc chef */
.chef-block > .eyebrow{ margin-bottom:2rem; }

/* ============================================================
   CONTACT — héro façade & carte
   ============================================================ */
.hero--contact::before{
  background-image:url('../img/img-82.jpg');
}

.contact-grid{
  display:grid;
  grid-template-columns:minmax(0,5fr) minmax(0,7fr);
  gap:clamp(2rem, 5vw, 4rem);
  align-items:stretch;
  max-width:1080px;
  margin:0 auto;
}
.contact-info{
  display:flex; flex-direction:column; justify-content:center;
  gap:1.6rem;
}
.contact-info h3{
  font-family:var(--font-caps);
  font-weight:400;
  font-size:clamp(1.3rem, 2.6vw, 1.7rem);
  letter-spacing:.08em;
}
.contact-info p{ font-size:1.12rem; line-height:1.7; color:var(--ink-soft); }
.contact-info .phone-line a{
  font-family:var(--font-display);
  font-size:clamp(1.5rem, 3vw, 1.9rem);
  color:var(--gold-dark);
  text-decoration:none;
}
.contact-info .phone-line a:hover{ text-decoration:underline; }

.map-shell{
  border:1px solid var(--gold);
  outline:1px solid var(--gold-dark);
  outline-offset:5px;
  box-shadow:0 10px 30px rgba(23,19,13,.22);
  min-height:380px;
}
.map-shell iframe{
  width:100%; height:100%; min-height:380px;
  border:0; display:block;
  filter:sepia(.22) saturate(.92);
}

@media (max-width: 760px){
  .contact-grid{ grid-template-columns:1fr; }
  .contact-info{ text-align:center; }
}

/* horaires & liens Google */
.hours-table{ border-collapse:collapse; font-size:1.08rem; color:var(--ink-soft); }
.hours-table th{
  font-family:var(--font-caps); font-weight:400; font-size:.82rem;
  letter-spacing:.08em; text-align:left; padding:.35rem 1.2rem .35rem 0;
  color:var(--ink); white-space:nowrap; vertical-align:top;
}
.hours-table td{ padding:.35rem 0; }
@media (max-width:760px){ .hours-table{ margin-inline:auto; } }

.gmb-links{ display:flex; gap:1.6rem; flex-wrap:wrap; }
@media (max-width:760px){ .gmb-links{ justify-content:center; } }
.gmb-link{
  display:inline-flex; align-items:center; gap:.5rem;
  font-family:var(--font-caps); font-size:.85rem; letter-spacing:.08em;
  color:var(--gold-dark); text-decoration:none;
  border-bottom:1px solid var(--gold);
  padding-bottom:.2rem;
  transition:color .25s, border-color .25s;
}
.gmb-link:hover{ color:var(--ink); border-color:var(--ink); }
.gmb-link svg{ width:17px; height:17px; fill:currentColor; }


/* horaires empilés */
.hours-list{ display:flex; flex-direction:column; gap:1.1rem; }
.hours-item{ display:flex; flex-direction:column; gap:.25rem; }
.hours-days{
  font-family:var(--font-caps); font-size:.85rem;
  letter-spacing:.1em; color:var(--ink);
}
.hours-times{ font-size:1.1rem; color:var(--ink-soft); }
.hours-cta{ margin-top:1.6rem; }

/* ============================================================
   GALERIE — flexbox + lightbox
   ============================================================ */
.flex-gallery{
  display:flex; flex-wrap:wrap; gap:10px;
  max-width:1240px; margin:0 auto;
}
.flex-gallery a{
  position:relative;
  flex:1 1 300px;
  height:250px;
  overflow:hidden;
  border:1px solid var(--gold);
  cursor:zoom-in;
}
.flex-gallery img{
  width:100%; height:100%;
  object-fit:cover;
  transition:transform .5s ease, filter .5s ease;
}
.flex-gallery a:hover img,
.flex-gallery a:focus-visible img{
  transform:scale(1.07);
  filter:saturate(1.1) brightness(1.04);
}
@media (max-width:560px){
  .flex-gallery a{ flex:1 1 46%; height:170px; }
}

/* lightbox */
.lightbox{
  position:fixed; inset:0; z-index:200;
  display:none;
  align-items:center; justify-content:center;
  background:rgba(23,19,13,.94);
}
.lightbox.open{ display:flex; }
.lightbox img{
  max-width:min(92vw, 1400px);
  max-height:86vh;
  object-fit:contain;
  box-shadow:0 20px 60px rgba(0,0,0,.6);
  animation:lb-in .35s ease;
}
@keyframes lb-in{ from{ opacity:0; transform:scale(.96);} to{ opacity:1; transform:scale(1);} }

.lightbox button{
  position:absolute;
  background:rgba(239,231,210,.08);
  border:1px solid var(--gold-light);
  color:var(--gold-light);
  width:52px; height:52px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer;
  transition:background .25s, color .25s;
}
.lightbox button:hover{ background:var(--gold-light); color:var(--ink); }
.lightbox button svg{ width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:2; }
.lb-prev{ left:clamp(.6rem, 3vw, 2.5rem); top:50%; transform:translateY(-50%); }
.lb-next{ right:clamp(.6rem, 3vw, 2.5rem); top:50%; transform:translateY(-50%); }
.lb-close{ top:1.2rem; right:1.2rem; }
.lb-counter{
  position:absolute; bottom:1.4rem; left:50%; transform:translateX(-50%);
  font-family:var(--font-caps); font-size:.85rem; letter-spacing:.12em;
  color:var(--gold-light);
}
@media (max-width:560px){
  .lightbox button{ width:42px; height:42px; }
}

.hero--galerie::before{
  background-image:url('../img/abondance-village.jpg');
}

/* ============================================================
   BOUTON REMONTER — chevron vers le haut
   ============================================================ */
.back-to-top{
  position:fixed; right:clamp(1rem,3vw,2.2rem); bottom:clamp(1rem,3vw,2.2rem);
  z-index:98;
  width:48px; height:48px;
  display:flex; align-items:center; justify-content:center;
  background:rgba(23,19,13,.82);
  border:1px solid var(--gold-light);
  border-radius:50%;
  cursor:pointer;
  opacity:0; visibility:hidden; transform:translateY(12px);
  transition:opacity .4s ease, transform .4s ease, visibility .4s, background .3s ease;
  box-shadow:0 6px 18px rgba(23,19,13,.35);
}
.back-to-top.visible{ opacity:1; visibility:visible; transform:none; }
.back-to-top:hover,
.back-to-top:focus-visible{ background:rgba(23,19,13,.95); }
.back-to-top svg{
  width:22px; height:22px;
  fill:none; stroke:var(--gold-light); stroke-width:2;
  stroke-linecap:round; stroke-linejoin:round;
}
.back-to-top:hover svg{ stroke:var(--gold); }
@media (prefers-reduced-motion: reduce){
  .back-to-top{ transition:opacity .2s ease; transform:none; }
}

/* ============================================================
   MENTIONS LÉGALES — page texte
   ============================================================ */
.hero--legal::before{ background:var(--ink-soft); animation:none; }
.legal-body{
  max-width:820px; margin:0 auto;
}
.legal-body h2{
  font-family:var(--font-caps);
  font-size:1.15rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--gold-dark);
  margin:3rem 0 1rem;
}
.legal-body h2:first-of-type{ margin-top:0; }
.legal-body h3{
  font-family:var(--font-caps);
  font-size:.95rem; letter-spacing:.14em;
  color:var(--ink-soft);
  margin:1.8rem 0 .6rem;
}
.legal-body p, .legal-body li{ color:var(--ink-soft); margin-bottom:.9rem; }
.legal-body ul{ padding-left:1.4rem; margin-bottom:1rem; }
.legal-body a{ color:var(--gold-dark); }
.legal-body .todo{
  background:rgba(184,146,63,.14);
  border:1px dashed var(--gold);
  padding:.05rem .45rem;
  font-style:italic;
}
.legal-updated{
  font-style:italic; color:var(--gold-dark);
  margin-bottom:2.4rem;
}

/* ---------- carte : consentement avant chargement (RGPD) ---------- */
.map-consent{
  height:100%; min-height:320px;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:1.2rem; padding:2rem; text-align:center;
  background:var(--parchment-deep);
  border:1px solid var(--gold);
}
.map-consent p{ max-width:34ch; color:var(--ink-soft); font-style:italic; }
