/* =========================================================
   La Ferme Deth Bosc, V1
   Direction : Terroir premium
   ========================================================= */

:root{
  /* Couleurs */
  --cream:      #FAF6EF;
  --cream-2:    #F2EBDF;
  --sand:       #E6DCC9;
  /* Verts alignés sur l'enseigne du magasin (relevé : #08EE87) */
  --green:      #1E4A33;   /* fonds sombres */
  --green-2:    #2A6244;   /* survol sur fond sombre */
  --green-soft: #8FA98F;
  --green-vif:  #0E7546;   /* liens et boutons secondaires sur fond clair */
  --green-vif-2:#0A5D37;   /* survol */
  --green-flash:#1FCE7A;   /* boutons principaux, accents sur fond sombre */
  --green-flash-2:#16B96D; /* survol des boutons principaux */
  --green-clair:#6FE3A4;   /* liens sur fond sombre */
  --sur-flash:  #0A2417;   /* texte posé sur le vert flash */
  --terra:      #C4622D;
  --terra-2:    #A44E20;
  --ink:        #1A1714;
  --ink-soft:   #5C554C;
  --white:      #FFFFFF;

  /* Typo */
  --serif: "Fraunces", Georgia, "Times New Roman", serif;
  --sans:  "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

  /* Mesures */
  --shell: 1240px;
  --gutter: clamp(20px, 5vw, 64px);
  --radius: 12px;
  --radius-lg: 20px;
  --radius-btn: 999px;

  /* Rythme */
  --sec-y: clamp(56px, 8vw, 118px);

  --ease: cubic-bezier(.22,.61,.36,1);
}

/* ---------- Reset ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; }
html:not([data-lenis]) { scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:var(--sans);
  font-size:clamp(15px,1.05vw,17px);
  line-height:1.65;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img,svg,video,iframe{ display:block; max-width:100%; }
img{ height:auto; }
a{ color:inherit; }
button{ font:inherit; color:inherit; }
h1,h2,h3,h4{ margin:0; font-family:var(--serif); font-weight:500; line-height:1.14; letter-spacing:-.015em; }
p{ margin:0 0 1em; }
ul,ol{ margin:0; padding:0; list-style:none; }
table{ border-collapse:collapse; width:100%; }

.sr-only{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}
.skip-link{
  position:absolute; left:-9999px; top:0; z-index:200;
  background:var(--green-vif); color:var(--cream); padding:12px 20px;
}
.skip-link:focus{ left:8px; top:8px; }
:focus-visible{ outline:2px solid var(--green-vif); outline-offset:3px; }

.shell{ width:100%; max-width:var(--shell); margin-inline:auto; padding-inline:var(--gutter); }
.ital{ font-style:italic; font-weight:300; }
.ico{ width:1em; height:1em; fill:currentColor; flex:none; }

/* ---------- Typo utilitaires ---------- */
.eyebrow{
  font-family:var(--sans);
  font-size:.72rem; font-weight:600; letter-spacing:.18em; text-transform:uppercase;
  color:var(--terra); margin:0 0 1.1em;
}
.sec-title{
  font-size:clamp(1.9rem,4.2vw,3.1rem);
  margin:0 0 .35em;
}
.sec-lead{
  font-size:clamp(1.02rem,1.5vw,1.2rem);
  color:var(--ink-soft); max-width:56ch; margin:0;
}
.sec-head{ max-width:700px; margin-bottom:clamp(28px,3.6vw,52px); }
.sec-head--light{ color:var(--cream); }
.sec-head--light .sec-lead{ color:rgba(250,246,239,.72); }
.sec-head--light .eyebrow{ color:#E5A06A; }

.prose p{ color:var(--ink-soft); font-size:1.02rem; }
.prose p:first-child{ color:var(--ink); font-size:1.14rem; }

/* ---------- Boutons ---------- */
.btn{
  --bg:var(--green-flash); --fg:var(--sur-flash); --bd:var(--green-flash);
  display:inline-flex; align-items:center; justify-content:center; gap:.6em;
  padding:.85em 1.6em;
  font-size:.86rem; font-weight:500; letter-spacing:.04em;
  text-decoration:none; border:1px solid var(--bd); border-radius:var(--radius-btn);
  background:var(--bg); color:var(--fg);
  cursor:pointer; position:relative; overflow:hidden;
  transition:transform .35s var(--ease), background .3s, color .3s, border-color .3s;
}
.btn > *{ position:relative; z-index:1; }
.btn{ font-weight:500; }
.btn:hover{ background:var(--green-flash-2); border-color:var(--green-flash-2); color:var(--sur-flash); }
.btn:active{ transform:translateY(1px); }
.btn--ghost{ background:transparent; color:var(--green-vif); border-color:rgba(47,122,64,.34); }
.btn--ghost:hover{ background:var(--green-vif); border-color:var(--green-vif); color:var(--cream); }
.btn--ghost{ font-weight:500; }
.btn--lg{ padding:1.05em 2.1em; font-size:.92rem; }
.btn--sm{ padding:.65em 1.1em; font-size:.8rem; }
.btn--full{ width:100%; }

/* =========================================================
   HEADER
   ========================================================= */
.site-header{
  position:fixed; inset:0 0 auto 0; z-index:100;
  padding:18px 0;
  transition:background .4s var(--ease), padding .4s var(--ease), box-shadow .4s;
}
body.page .site-header{ background:rgba(250,246,239,.9); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); }
body.page .site-header.is-hero-light{ background:transparent; backdrop-filter:none; -webkit-backdrop-filter:none; }
.site-header.is-stuck{
  background:rgba(250,246,239,.88);
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  padding:10px 0;
  box-shadow:0 1px 0 rgba(31,61,43,.1);
}
.header-inner{ display:flex; align-items:center; gap:clamp(16px,3vw,40px); }

.brand{ display:flex; align-items:center; gap:12px; text-decoration:none; margin-right:auto; }
.brand__text{ position:relative; padding-left:14px; }
.brand__text::before{
  content:""; position:absolute; left:0; top:12%; bottom:12%; width:3px;
  background:var(--green-flash); border-radius:2px;
  transition:transform .4s var(--ease);
  transform-origin:center;
}
.brand:hover .brand__text::before{ transform:scaleY(1.18); }
.brand__mark{ width:44px; height:44px; transition:transform .5s var(--ease); }
.brand:hover .brand__mark{ transform:rotate(-8deg) scale(1.06); }
.brand__text{ display:flex; flex-direction:column; line-height:1; }
.brand__line1{ font-family:var(--sans); font-size:.62rem; letter-spacing:.24em; text-transform:uppercase; color:var(--ink-soft); }
.brand__line2{ font-family:var(--serif); font-size:1.32rem; font-weight:500; color:var(--green); letter-spacing:-.01em; margin-top:2px; }
.is-hero-light .brand__line1{ color:rgba(250,246,239,.65); }
.is-hero-light .brand__line2{ color:var(--cream); }
.is-hero-light .nav a{ color:rgba(250,246,239,.78); }
.is-hero-light .nav a:hover,
.is-hero-light .nav a.is-active{ color:var(--cream); }
.is-hero-light .nav a::after{ background:var(--green-clair); }
.is-hero-light .burger__bars span{ background:var(--cream); }
.is-hero-light .header-cta{ background:var(--green-flash); color:var(--sur-flash); border-color:var(--green-flash); }
.is-hero-light .header-cta:hover{ background:var(--green-flash-2); border-color:var(--green-flash-2); }

.nav{ display:flex; gap:clamp(14px,2vw,30px); }
.nav a{
  position:relative; text-decoration:none; font-size:.85rem; font-weight:450;
  color:var(--ink-soft); padding:6px 0; transition:color .3s;
}
.nav a::after{
  content:""; position:absolute; left:0; bottom:0; height:1px; width:100%;
  background:var(--green-vif); transform:scaleX(0); transform-origin:right;
  transition:transform .4s var(--ease);
}
.nav a:hover{ color:var(--green-vif); }
.nav a:hover::after{ transform:scaleX(1); transform-origin:left; }
.nav a.is-active{ color:var(--green-vif); }
.nav a.is-active::after{ transform:scaleX(1); }

.burger{
  display:none; align-items:center; gap:9px;
  background:none; border:0; padding:8px 4px; cursor:pointer;
  position:relative; z-index:3;            /* toujours au-dessus du panneau */
}
.burger__bars{ display:block; width:24px; }
.burger__bars span{
  display:block; height:1.5px; background:var(--green); margin:5px 0;
  transition:transform .35s var(--ease), opacity .25s, background .25s;
}
.burger__label{
  font-size:.72rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
  color:var(--green); transition:color .25s;
}
.burger[aria-expanded="true"] .burger__bars span:nth-child(1){ transform:translateY(6.5px) rotate(45deg); }
.burger[aria-expanded="true"] .burger__bars span:nth-child(2){ opacity:0; }
.burger[aria-expanded="true"] .burger__bars span:nth-child(3){ transform:translateY(-6.5px) rotate(-45deg); }
/* menu ouvert : le bouton passe en clair sur le panneau vert */
body.nav-open .burger__bars span{ background:var(--cream); }
body.nav-open .burger__label{ color:var(--cream); }
.is-hero-light .burger__label{ color:var(--cream); }

@media (max-width:980px){
  .header-cta span{ display:none; }
  .header-cta{ padding:.7em; position:relative; z-index:3; }
  body.nav-open .header-cta{ opacity:0; pointer-events:none; }
  body.nav-open .site-header{ background:transparent; box-shadow:none; backdrop-filter:none; -webkit-backdrop-filter:none; }
  body.nav-open .brand__line1{ color:rgba(250,246,239,.6); }
  body.nav-open .brand__line2{ color:var(--cream); }
  .brand{ position:relative; z-index:3; }
  .burger{ display:inline-flex; }
  .nav{
    position:fixed; inset:0; z-index:2; background:var(--green);
    flex-direction:column; justify-content:center; align-items:flex-start; gap:4px;
    padding:110px var(--gutter) 60px;
    clip-path:circle(0% at calc(100% - 40px) 40px);
    transition:clip-path .7s var(--ease);
  }
  .nav.is-open{ clip-path:circle(150% at calc(100% - 40px) 40px); }
  .nav a{
    font-family:var(--serif); font-size:clamp(1.7rem,6.6vw,2.4rem); color:var(--cream);
    width:100%; padding:14px 0; border-bottom:1px solid rgba(250,246,239,.14);
    opacity:0; transform:translateY(18px);
    transition:opacity .5s var(--ease), transform .5s var(--ease), color .3s;
  }
  .nav.is-open a{ opacity:1; transform:none; }
  .nav.is-open a:nth-child(1){ transition-delay:.18s }
  .nav.is-open a:nth-child(2){ transition-delay:.24s }
  .nav.is-open a:nth-child(3){ transition-delay:.30s }
  .nav.is-open a:nth-child(4){ transition-delay:.36s }
  .nav.is-open a:nth-child(5){ transition-delay:.42s }
  .nav.is-open a:nth-child(6){ transition-delay:.48s }
  .nav a::after{ background:var(--cream); }
  body.nav-open{ overflow:hidden; }
}

/* =========================================================
   HERO
   ========================================================= */
.hero{
  position:relative; min-height:100svh; display:flex; align-items:flex-end;
  padding:140px 0 clamp(60px,9vw,110px);
  background:linear-gradient(170deg, #17301F 0%, #1F3D2B 45%, #2A4B35 100%);
  color:var(--cream); overflow:hidden; isolation:isolate;
}
/* Diaporama de fond : photos et vidéos qui s'enchaînent en fondu */
.hero__media{
  position:absolute; inset:0; z-index:-2; overflow:hidden;
  background:var(--green);
  opacity:0; transition:opacity 1.2s ease;
}
.hero__media.is-ready{ opacity:1; }
.hero__slide{
  position:absolute; inset:0; margin:0;
  opacity:0; transition:opacity 1.6s var(--ease);
}
.hero__slide.is-active{ opacity:1; }
.hero__slide img,
.hero__slide video{
  width:100%; height:100%; object-fit:cover;
  transform:scale(1.05);
}
.hero__slide.is-active img,
.hero__slide.is-active video{
  animation:kenburns 9.5s linear forwards;
}
@keyframes kenburns{
  from{ transform:scale(1.04) translate3d(0,0,0); }
  to  { transform:scale(1.15) translate3d(-1.4%,-1.2%,0); }
}

/* Voile de lisibilité par-dessus les visuels */
.hero__veil{
  position:absolute; inset:0; z-index:-1;
  background:
    linear-gradient(to right, rgba(9,22,14,.90) 0%, rgba(9,22,14,.60) 48%, rgba(9,22,14,.20) 100%),
    linear-gradient(to top, rgba(9,22,14,.86) 0%, rgba(9,22,14,.34) 52%, rgba(9,22,14,.12) 100%);
}
.hero__inner{ position:relative; }
.hero .eyebrow{ color:#E5A06A; }
.hero__title{
  font-size:clamp(3.2rem,11vw,9rem);
  line-height:.92; letter-spacing:-.035em; margin:0 0 .45em;
}
.hero__title .line{ display:block; overflow:hidden; }
.hero__title .line > span{
  display:block; transform:translateY(110%);
  animation:riseIn 1.1s var(--ease) forwards;
}
.hero__title .line:nth-child(1) > span{ animation-delay:.25s; }
.hero__title .line:nth-child(2) > span{ animation-delay:.38s; }
@keyframes riseIn{ to{ transform:none; } }

.hero__lead{
  max-width:52ch; font-size:clamp(1.02rem,1.6vw,1.25rem);
  color:rgba(250,246,239,.82);
}
.hero__lead em{ color:#E5A06A; font-style:italic; }
.hero__cta{ display:flex; flex-wrap:wrap; gap:14px; margin-top:2.2em; }
.hero__cta .btn--solid{ background:var(--green-flash); color:var(--sur-flash); border-color:var(--green-flash); }
.hero__cta .btn--solid:hover{ background:var(--green-flash-2); border-color:var(--green-flash-2); }
.hero__cta .btn--ghost{ color:var(--cream); border-color:rgba(250,246,239,.4); }
.hero__cta .btn--ghost:hover{ background:rgba(250,246,239,.12); border-color:var(--cream); }

/* =========================================================
   AUJOURD'HUI
   ========================================================= */
.today{ background:var(--green); color:var(--cream); padding:clamp(44px,6vw,72px) 0; }
.today__head{ display:flex; flex-wrap:wrap; align-items:baseline; gap:6px 20px; margin-bottom:28px; }
.today__title{
  font-family:var(--sans); font-size:.78rem; font-weight:600;
  letter-spacing:.18em; text-transform:uppercase; color:#E5A06A;
  display:inline-flex; align-items:center; gap:10px;
}
.pulse{ width:8px; height:8px; border-radius:50%; background:var(--green-flash); position:relative; }
.pulse::after{
  content:""; position:absolute; inset:0; border-radius:50%; background:var(--green-flash);
  animation:pulse 2s ease-out infinite;
}
@keyframes pulse{ to{ transform:scale(3.4); opacity:0 } }
.today__sub{ font-size:.85rem; color:rgba(250,246,239,.6); margin:0; }

.today__grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(10px,1.4vw,16px); }
.today__grid > :last-child:nth-child(odd){ grid-column:1 / -1; }
.tcard{
  background:rgba(250,246,239,.07); border:1px solid rgba(250,246,239,.14);
  border-radius:var(--radius-lg); padding:clamp(16px,2vw,24px);
  display:flex; flex-direction:column; gap:5px;
  transition:background .35s, border-color .35s;
}
.tcard:hover{ background:rgba(250,246,239,.12); border-color:rgba(250,246,239,.28); }
.tcard__status{ font-size:.68rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; display:inline-flex; align-items:center; gap:7px; }
.tcard__status::before{ content:""; width:6px; height:6px; border-radius:50%; background:currentColor; }
.tcard--open .tcard__status{ color:var(--green-clair); }
.tcard--soon .tcard__status{ color:#F0C868; }
.tcard--closed .tcard__status{ color:rgba(250,246,239,.42); }
.tcard__name{ font-family:var(--serif); font-size:1.25rem; }
.tcard__meta{ font-size:.86rem; color:rgba(250,246,239,.66); }
.tcard__link{ margin-top:6px; font-size:.78rem; letter-spacing:.06em; text-transform:uppercase; color:var(--green-clair); text-decoration:none; }
.tcard__link:hover{ text-decoration:underline; }
.today__none{ padding:20px 24px; background:rgba(250,246,239,.07); border-radius:var(--radius-lg); color:rgba(250,246,239,.6); grid-column:1/-1; }

/* =========================================================
   PILIERS
   ========================================================= */
.pillars{ padding:clamp(44px,6vw,86px) 0; background:var(--cream-2); }
.pillars__grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(18px,2.4vw,32px); }
.pillar{
  background:var(--cream); border-radius:var(--radius-lg);
  padding:clamp(22px,2.6vw,36px);
  transition:transform .4s var(--ease), box-shadow .4s var(--ease);
}
.pillar:hover{ transform:translateY(-3px); box-shadow:0 14px 34px rgba(26,23,20,.08); }
.pillars__grid > :last-child:nth-child(odd){ grid-column:1 / -1; }
.pillar__num{
  font-family:var(--serif); font-size:.9rem; font-style:italic;
  color:var(--terra); display:block; margin-bottom:14px;
}
.pillar h3{ font-size:clamp(1.3rem,2.2vw,1.65rem); margin-bottom:.5em; color:var(--green); }
.pillar .amp{ font-style:italic; font-weight:300; color:var(--terra); }
.pillar p{ color:var(--ink-soft); font-size:.97rem; margin:0; }

/* =========================================================
   SECTIONS génériques
   ========================================================= */
.section{ padding:var(--sec-y) 0; position:relative; }
section[id], article[id]{ scroll-margin-top:92px; }
/* une section qui suit directement une bannière n'a pas besoin d'autant d'air */
.page-hero + .section,
.page-hero + .today + .section{ padding-top:clamp(52px,7vw,96px); }

/* ---------- Bannière des pages intérieures ---------- */
.page-hero{
  position:relative; isolation:isolate; overflow:hidden;
  display:flex; align-items:flex-end;
  min-height:clamp(300px,40svh,440px);
  padding:140px 0 clamp(34px,4.5vw,58px);
  background:var(--green); color:var(--cream);
}
.page-hero__media{ position:absolute; inset:0; z-index:-2; }
.page-hero__media img{ width:100%; height:100%; object-fit:cover; animation:slowZoom 18s ease-out forwards; }
@keyframes slowZoom{ from{ transform:scale(1.02) } to{ transform:scale(1.1) } }
.page-hero__veil{
  position:absolute; inset:0; z-index:-1;
  background:
    linear-gradient(to right, rgba(9,22,14,.90) 0%, rgba(9,22,14,.70) 52%, rgba(9,22,14,.36) 100%),
    linear-gradient(to top, rgba(9,22,14,.86) 0%, rgba(9,22,14,.44) 55%, rgba(9,22,14,.26) 100%);
}
.crumb{ font-size:.76rem; letter-spacing:.1em; text-transform:uppercase; color:rgba(250,246,239,.6); margin-bottom:1.4em; }
.crumb a{ color:rgba(250,246,239,.82); text-decoration:none; border-bottom:1px solid rgba(250,246,239,.3); }
.crumb a:hover{ color:var(--cream); border-color:var(--cream); }
.crumb span{ padding:0 .5em; }
.crumb span[aria-current]{ padding:0; color:var(--cream); }
.page-hero__title{ font-size:clamp(2.1rem,5vw,3.8rem); letter-spacing:-.025em; margin:0 0 .3em; max-width:18ch; }
.page-hero__lead{ max-width:54ch; font-size:clamp(1rem,1.5vw,1.18rem); color:rgba(250,246,239,.8); margin:0; }
@media (prefers-reduced-motion:reduce){ .page-hero__media img{ animation:none; } }

/* ---------- Cartes de renvoi (accueil) ---------- */
.places{ display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(14px,2vw,26px); }
.places > :last-child:nth-child(odd){ grid-column:1 / -1; }
.places > :last-child:nth-child(odd) .place__media img{ aspect-ratio:21/9; }
.place{
  display:flex; flex-direction:column; text-decoration:none; color:inherit;
  border:1px solid var(--sand); border-radius:var(--radius-lg); overflow:hidden;
  background:var(--cream);
  transition:transform .45s var(--ease), box-shadow .45s var(--ease), border-color .3s;
}
.place:hover{ transform:translateY(-5px); box-shadow:0 18px 44px rgba(26,23,20,.12); border-color:var(--green-vif); }
.place__media{ position:relative; display:block; overflow:hidden; background:var(--sand); }
.place__media img{ width:100%; aspect-ratio:4/3; object-fit:cover; transition:transform 1s var(--ease); }
.place:hover .place__media img{ transform:scale(1.06); }
.place__body{ display:flex; flex-direction:column; gap:.35em; padding:clamp(14px,1.8vw,22px); flex:1; }
.place__kicker{ font-size:.68rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--terra); }
.place__name{ font-family:var(--serif); font-size:clamp(1.15rem,1.9vw,1.45rem); color:var(--green); line-height:1.15; }
.place__meta{ font-size:.85rem; color:var(--ink-soft); }
.place__more{
  margin-top:auto; padding-top:.9em; font-size:.74rem; font-weight:500;
  letter-spacing:.06em; text-transform:uppercase; color:var(--green-vif);
}
.place__more::after{ content:"\2192"; display:inline-block; margin-left:.45em; transition:transform .3s var(--ease); }
.place:hover .place__more::after{ transform:translateX(5px); }

/* ---------- Vignettes de renvoi ---------- */
.teasers{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(12px,1.6vw,20px); }
.teaser{
  position:relative; display:block; overflow:hidden; border-radius:var(--radius-lg);
  text-decoration:none; background:var(--green); isolation:isolate;
}
.teaser img{ width:100%; aspect-ratio:1/1; object-fit:cover; transition:transform 1s var(--ease); }
.teaser::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(to top, rgba(12,26,17,.82) 0%, rgba(12,26,17,.18) 55%, transparent 78%);
}
.teaser:hover img{ transform:scale(1.07); }
.teaser span{
  position:absolute; left:0; right:0; bottom:0; z-index:2;
  padding:clamp(14px,1.8vw,22px);
  font-family:var(--serif); font-size:clamp(1rem,1.5vw,1.25rem); color:var(--cream);
}
@media (max-width:700px){ .teasers{ grid-template-columns:repeat(2,1fr); } }

.sec-foot{ margin-top:clamp(32px,4vw,52px); text-align:center; }

/* ---------- Bande d'appel à l'action ---------- */
.band{ background:var(--green); color:var(--cream); padding:clamp(52px,7vw,96px) 0; }
.band--soft{ background:var(--cream-2); color:var(--ink); }
.band__inner{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:28px 48px; }
.band__inner > div:first-child{ flex:1 1 440px; }
.band .sec-title{ margin-bottom:.3em; }
.band .sec-lead{ color:rgba(250,246,239,.74); }
.band--soft .sec-lead{ color:var(--ink-soft); }
.band .eyebrow{ color:#E5A06A; }
.band--soft .eyebrow{ color:var(--terra); }
.band .sec-title{ color:inherit; }
.band .btn--solid,
.band--soft .btn--solid{ background:var(--green-flash); color:var(--sur-flash); border-color:var(--green-flash); }
.band .btn--solid:hover,
.band--soft .btn--solid:hover{ background:var(--green-flash-2); border-color:var(--green-flash-2); }

/* ---------- Encart d'information ---------- */
.notice{
  margin-top:clamp(32px,4vw,56px);
  background:var(--cream-2); border-left:4px solid var(--green-flash);
  padding:clamp(20px,2.6vw,32px); border-radius:var(--radius-lg);
}
.notice--wide{ margin-top:0; }
.notice h2,.notice h3{ font-size:clamp(1.2rem,2vw,1.6rem); color:var(--green); margin-bottom:.5em; }
.notice p{ color:var(--ink-soft); max-width:70ch; }
.notice p:last-child{ margin-bottom:0; }
.notice a{ color:var(--green-vif); }

/* ---------- Mentions légales ---------- */
.legal__body{ max-width:800px; }
.legal__body h2{ font-size:clamp(1.3rem,2.4vw,1.8rem); color:var(--green); margin:2.2em 0 .6em; }
.legal__body h2:first-of-type{ margin-top:1.4em; }
.legal__body p,.legal__body li{ color:var(--ink-soft); }
.legal__body ul{ list-style:disc; padding-left:1.2em; margin-bottom:1em; }
.legal__body .todo{
  background:rgba(196,98,45,.08); border-left:3px solid var(--terra);
  padding:14px 18px; font-size:.9rem;
}
section[id], article[id]{ scroll-margin-top:92px; }

/* ---------- Points de vente ---------- */
.shops{ display:flex; flex-direction:column; gap:clamp(56px,9vw,120px); }
.shop{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(28px,5vw,72px); align-items:center; }
.shop--alt{ direction:rtl; }
.shop--alt > *{ direction:ltr; }

.shop__media{ position:relative; overflow:hidden; border-radius:var(--radius-lg); background:var(--sand); }
.shop__media img{ width:100%; aspect-ratio:4/3; object-fit:cover; transform:scale(1.02); transition:transform 1.1s var(--ease); }
.shop:hover .shop__media img{ transform:scale(1.06); }
.shop__badge{
  position:absolute; top:16px; left:16px;
  background:var(--cream); color:var(--green);
  font-size:.68rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase;
  padding:8px 14px; border-radius:100px;
  display:inline-flex; align-items:center; gap:7px;
  box-shadow:0 4px 18px rgba(26,23,20,.14);
}
.shop__badge::before{ content:""; width:6px; height:6px; border-radius:50%; background:currentColor; }
.shop__badge.is-open{ color:var(--green-vif); }
.shop__badge.is-open::before{ background:var(--green-flash); }
.shop__badge.is-closed{ color:var(--ink-soft); }

.shop__kicker{ font-size:.7rem; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:var(--terra); margin:0 0 .9em; }
.shop__name{ font-size:clamp(1.8rem,3.6vw,2.9rem); color:var(--green); margin-bottom:.5em; }
.shop__addr{ display:flex; gap:10px; font-size:.97rem; color:var(--ink-soft); line-height:1.5; }
.shop__addr .ico{ width:1.1em; height:1.1em; margin-top:.25em; color:var(--terra); }

.shop__tags{ display:flex; flex-wrap:wrap; gap:7px; margin:1.6em 0; }
.shop__tags li{
  font-size:.76rem; letter-spacing:.02em; padding:.42em .9em;
  border:1px solid var(--sand); border-radius:100px; color:var(--ink-soft);
  background:var(--cream-2); transition:border-color .3s, color .3s;
}
.shop__tags li:hover{ border-color:var(--green-vif); color:var(--green-vif); }

.hours{ margin:0 0 1.8em; font-size:.92rem; }
.hours tr{ border-top:1px solid var(--sand); }
.hours tr:last-child{ border-bottom:1px solid var(--sand); }
.hours tr.is-today{ background:rgba(47,122,64,.08); }
.hours tr.is-today th{ color:var(--green-vif); font-weight:600; }
.hours th{ text-align:left; font-weight:450; padding:.62em 0; color:var(--ink-soft); width:38%; }
.hours td{ text-align:right; padding:.62em 0; color:var(--ink); font-variant-numeric:tabular-nums; }
.hours td.is-closed{ color:var(--green-soft); }
.hours .sep{ color:var(--sand); padding:0 .35em; }
@media (max-width:560px){
  .hours .slot{ display:block; }
  .hours .sep{ display:none; }
  .hours th{ width:32%; }
}

.shop__actions{ display:flex; flex-wrap:wrap; gap:12px; }

@media (max-width:860px){
  .shop, .shop--alt{ grid-template-columns:1fr; direction:ltr; }
}

/* ---------- Marchés ---------- */
.section--markets{ background:var(--cream-2); }
.markets{
  display:grid; grid-template-columns:repeat(2,1fr);
  gap:clamp(12px,1.8vw,22px);
  margin-bottom:clamp(32px,4vw,56px);
}
.markets > :last-child:nth-child(odd){ grid-column:1 / -1; }
.market{
  background:var(--cream); border:1px solid var(--sand);
  border-radius:var(--radius-lg); padding:clamp(18px,2.4vw,30px);
  display:flex; flex-direction:column; gap:6px;
  transition:transform .4s var(--ease), box-shadow .4s var(--ease), border-color .3s;
  position:relative;
}
.market:hover{ transform:translateY(-3px); box-shadow:0 14px 34px rgba(26,23,20,.09); border-color:var(--green-flash); }
.market--today{ background:var(--green); border-color:var(--green); color:var(--cream); }
.market__day{ font-size:.7rem; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:var(--terra); }
.market--today .market__day{ color:#E5A06A; }
.market__place{ font-family:var(--serif); font-size:clamp(1.35rem,2.4vw,1.75rem); line-height:1.1; color:var(--green); }
.market--today .market__place{ color:var(--cream); }
.market__town{
  display:block; margin-top:.25em;
  font-family:var(--sans); font-size:.78rem; font-weight:500;
  letter-spacing:.12em; text-transform:uppercase; color:var(--ink-soft);
}
.market--today .market__town{ color:rgba(250,246,239,.62); }
.market__hour{ font-size:.88rem; color:var(--ink-soft); font-variant-numeric:tabular-nums; }
.market--today .market__hour{ color:rgba(250,246,239,.7); }
.market__flag{
  margin-top:auto; padding-top:14px;
  font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; color:var(--green-clair);
}
.markets__band{ margin:0; overflow:hidden; border-radius:var(--radius-lg); background:var(--sand); }
.markets__band img{ width:100%; aspect-ratio:8/3; object-fit:cover; }

/* ---------- Rayons ---------- */
.rayons{ display:grid; grid-template-columns:repeat(6,1fr); gap:clamp(12px,1.6vw,22px); }
.rayon{
  position:relative; overflow:hidden; border-radius:var(--radius-lg);
  grid-column:span 2; background:var(--green); isolation:isolate;
}
.rayon--wide{ grid-column:span 6; }
.rayon img{ width:100%; height:100%; object-fit:cover; aspect-ratio:1/1; transition:transform 1s var(--ease), filter .6s; }
.rayon--wide img{ aspect-ratio:10/6; }
.rayon::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(to top, rgba(12,26,17,.82) 0%, rgba(12,26,17,.24) 48%, transparent 72%);
  transition:opacity .5s;
}
.rayon:hover img{ transform:scale(1.07); }
.rayon__txt{ position:absolute; left:0; right:0; bottom:0; z-index:2; padding:clamp(18px,2.4vw,32px); color:var(--cream); }
.rayon__txt h2,
.rayon__txt h3{ font-size:clamp(1.15rem,2vw,1.7rem); line-height:1.2; margin-bottom:.25em; }
.rayon--wide .rayon__txt h2,
.rayon--wide .rayon__txt h3{ font-size:clamp(1.5rem,3vw,2.3rem); }
.rayon__txt p{
  margin:0; font-size:.88rem; color:rgba(250,246,239,.78); max-width:44ch;
  max-height:0; overflow:hidden;
  opacity:0; transform:translateY(10px);
  transition:max-height .5s var(--ease), margin .5s var(--ease),
             opacity .45s var(--ease), transform .45s var(--ease);
}
.rayon:hover .rayon__txt p,
.rayon:focus-within .rayon__txt p{ max-height:9em; margin-top:.45em; opacity:1; transform:none; }
@media (hover:none){
  .rayon__txt p{ max-height:9em; margin-top:.45em; opacity:1; transform:none; }
}
@media (max-width:1000px){
  .rayons{ grid-template-columns:repeat(2,1fr); }
  .rayon{ grid-column:span 1; }
  .rayon--wide{ grid-column:span 2; }
  .rayon--wide img{ aspect-ratio:16/10; }
}

/* ---------- La ferme ---------- */
.section--ferme{ background:var(--cream-2); overflow:hidden; }
.ferme__grid{ display:grid; grid-template-columns:.95fr 1.05fr; gap:clamp(36px,6vw,90px); align-items:center; }
.ferme__media{ position:relative; }
.ferme__media > img{
  width:100%; aspect-ratio:4/3; object-fit:cover;
  border-radius:var(--radius-lg); background:var(--sand);
}
.ferme__inset{
  position:absolute; right:-6%; bottom:-14%; width:36%; margin:0;
  border-radius:var(--radius-lg); overflow:hidden;
  border:8px solid var(--cream-2); background:var(--sand);
  box-shadow:0 20px 50px rgba(26,23,20,.16);
}
.ferme__inset img{ width:100%; aspect-ratio:1/1; object-fit:cover; }

.stats{ display:flex; flex-wrap:wrap; gap:18px clamp(20px,3vw,44px); margin-top:2.6em; padding-top:2em; border-top:1px solid var(--sand); }
.stat{ display:flex; flex-direction:column; gap:2px; }
.stat__n{ font-family:var(--serif); font-size:clamp(2rem,3.6vw,2.9rem); color:var(--terra); line-height:1; }
.stat__l{ font-size:.78rem; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-soft); }
@media (max-width:860px){ .ferme__grid{ grid-template-columns:1fr; } .ferme__inset{ right:0; width:38%; } }

/* ---------- Professionnels ---------- */
.section--pros{ background:var(--green); color:var(--cream); }
.pros__grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(12px,1.8vw,22px); }
.pros__grid > :last-child:nth-child(odd){ grid-column:1 / -1; }
.pro-card{
  background:rgba(250,246,239,.07); border:1px solid rgba(250,246,239,.15);
  border-radius:var(--radius-lg);
  display:flex; flex-direction:column; gap:.4em;
  transition:background .4s var(--ease), border-color .3s;
}
.pro-card:hover{ background:rgba(250,246,239,.12); border-color:rgba(250,246,239,.3); }
.pro-card--feature{ background:rgba(31,206,122,.12); border-color:rgba(31,206,122,.3); }
.pro-card h3{ font-size:clamp(1.25rem,2.1vw,1.6rem); margin-bottom:.35em; }
.pro-card p{ font-size:.94rem; color:rgba(250,246,239,.72); margin:0; }
.tag{
  align-self:flex-start; font-size:.62rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase;
  color:#E5A06A; border:1px solid rgba(229,160,106,.42); padding:.4em .8em; border-radius:100px;
  margin-bottom:1em;
}
.pros__cta{ margin-top:clamp(40px,5vw,64px); display:flex; flex-wrap:wrap; align-items:center; gap:20px 32px; }
.pros__cta p{ margin:0; font-family:var(--serif); font-size:clamp(1.2rem,2.4vw,1.8rem); font-style:italic; font-weight:300; }
.section--pros .btn--solid{ background:var(--green-flash); color:var(--sur-flash); border-color:var(--green-flash); }
.section--pros .btn--solid:hover{ background:var(--green-flash-2); border-color:var(--green-flash-2); }

/* ---------- Galerie ---------- */
.gallery{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(12px,1.6vw,20px); }
.gal{ margin:0; overflow:hidden; border-radius:var(--radius-lg); background:var(--sand); position:relative; }
.gal img,.gal video{ width:100%; height:100%; object-fit:cover; aspect-ratio:4/5; transition:transform 1s var(--ease); }
.gal:hover img{ transform:scale(1.06); }
.gal--video{ grid-column:span 4; }
.gal--video img,.gal--video video{ aspect-ratio:16/9; }
.gal__play{
  position:absolute; left:50%; top:50%; translate:-50% -50%;
  width:clamp(58px,7vw,84px); aspect-ratio:1; border-radius:50%;
  background:rgba(250,246,239,.92); display:grid; place-items:center;
  transition:transform .4s var(--ease), background .3s;
}
.gal__play::after{
  content:""; border-left:14px solid var(--green);
  border-top:9px solid transparent; border-bottom:9px solid transparent;
  margin-left:4px;
}
.gal--video:hover .gal__play{ transform:translate(-50%,-50%) scale(1.12); background:var(--cream); }
@media (max-width:700px){ .gallery{ grid-template-columns:repeat(2,1fr); } .gal--video{ grid-column:span 2; } }

.socials{ margin-top:clamp(40px,5vw,64px); display:flex; flex-wrap:wrap; align-items:center; gap:16px 32px; }
.socials__label{ margin:0; font-family:var(--serif); font-style:italic; font-size:1.15rem; color:var(--green); }
.socials__links{ display:flex; gap:12px; }
.social{
  display:inline-flex; align-items:center; gap:9px; text-decoration:none;
  border:1px solid var(--sand); border-radius:100px; padding:.6em 1.2em;
  font-size:.84rem; color:var(--ink-soft);
  transition:background .3s, color .3s, border-color .3s, transform .3s var(--ease);
}
.social svg{ width:1.1em; height:1.1em; fill:currentColor; }
.social:hover{ background:var(--green-vif); border-color:var(--green-vif); color:var(--cream); transform:translateY(-2px); }

/* ---------- Contact ---------- */
.section--contact{ padding-bottom:0; }
.contact__grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(36px,6vw,90px); align-items:start; margin-bottom:var(--sec-y); }
.contact__list{ margin-top:2.4em; display:flex; flex-direction:column; }
.contact__list li{ display:grid; grid-template-columns:130px 1fr; gap:16px; padding:1.1em 0; border-top:1px solid var(--sand); }
.contact__list li:last-child{ border-bottom:1px solid var(--sand); }
.contact__lab{ font-size:.72rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-soft); padding-top:.3em; }
.contact__list a{ text-decoration:none; font-size:1.08rem; color:var(--green); border-bottom:1px solid transparent; transition:border-color .3s, color .3s; }
.contact__list a:hover{ color:var(--green-vif); border-color:var(--green-vif); }

/* Carte d'appel : le site n'a pas de formulaire, on pousse au contact direct */
.callcard{
  background:var(--green); color:var(--cream);
  padding:clamp(28px,3.6vw,48px);
  border-radius:var(--radius-lg);
  position:relative; overflow:hidden;
}
.callcard::before{
  content:""; position:absolute; right:-40px; top:-40px;
  width:200px; height:200px; border-radius:50%;
  background:radial-gradient(circle, rgba(31,206,122,.22), transparent 70%);
  pointer-events:none;
}
.callcard__kicker{
  font-size:.7rem; font-weight:600; letter-spacing:.18em; text-transform:uppercase;
  color:var(--green-flash); margin:0 0 1.2em;
}
.callcard__title{ font-size:clamp(1.6rem,3vw,2.3rem); margin-bottom:.35em; }
.callcard__num{ margin:0 0 .6em; }
.callcard__num a{
  font-family:var(--serif); font-size:clamp(1.8rem,3.6vw,2.7rem); font-weight:500;
  color:var(--green-flash); text-decoration:none; letter-spacing:-.01em;
  white-space:nowrap; border-bottom:2px solid transparent; transition:border-color .3s;
}
.callcard__num a:hover{ border-color:var(--green-flash); }
.callcard__txt{ font-size:.95rem; color:rgba(250,246,239,.74); max-width:42ch; }
.callcard__actions{ display:flex; flex-wrap:wrap; gap:12px; margin-top:1.8em; }
.callcard .btn--ghost{ color:var(--cream); border-color:rgba(250,246,239,.35); }
.callcard .btn--ghost:hover{ background:rgba(250,246,239,.12); border-color:var(--cream); color:var(--cream); }

@media (max-width:860px){ .contact__grid{ grid-template-columns:1fr; } }

.map{
  height:clamp(300px,38vw,440px); background:var(--sand);
  filter:grayscale(1) contrast(.95); transition:filter .6s;
  border-radius:var(--radius-lg); overflow:hidden;
  margin-inline:var(--gutter);
}
.map:hover{ filter:none; }
.map iframe{ width:100%; height:100%; border:0; }

/* =========================================================
   FOOTER
   ========================================================= */
.site-footer{ background:var(--ink); color:var(--cream); padding:clamp(56px,7vw,90px) 0 32px; }
.footer__grid{ display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:clamp(28px,4vw,56px); }
.footer__name{ position:relative; padding-top:.55em; }
.footer__name::before{
  content:""; position:absolute; top:0; left:0; width:38px; height:3px;
  background:var(--green-flash); border-radius:2px;
}
.footer__name{ font-family:var(--serif); font-size:1.5rem; margin:0 0 .3em; }
.footer__tag{ font-size:.88rem; color:rgba(250,246,239,.55); margin:0; }
.footer__col h3{ font-family:var(--sans); font-size:.7rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:#E5A06A; margin-bottom:1.3em; }
.footer__col a{ display:block; text-decoration:none; font-size:.9rem; color:rgba(250,246,239,.68); padding:.35em 0; transition:color .3s, transform .3s var(--ease); }
.footer__col a:hover{ color:var(--cream); transform:translateX(4px); }
.footer__bottom{
  margin-top:clamp(40px,5vw,64px); padding-top:24px; border-top:1px solid rgba(250,246,239,.12);
  display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px 24px;
  font-size:.8rem; color:rgba(250,246,239,.45);
}
.footer__bottom p{ margin:0; }
.footer__bottom a{ color:rgba(250,246,239,.7); text-decoration:none; border-bottom:1px solid rgba(250,246,239,.25); }
.footer__bottom a:hover{ color:var(--cream); }
@media (max-width:860px){ .footer__grid{ grid-template-columns:1fr 1fr; } }

/* =========================================================
   ANIMATIONS D'APPARITION
   ========================================================= */
.reveal{ opacity:0; transform:translateY(26px); }
.reveal.is-in{
  opacity:1; transform:none;
  transition:opacity .9s var(--ease), transform .9s var(--ease);
}
.reveal.is-in{ transition-delay:var(--d,0s); }

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{ animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
  .reveal{ opacity:1; transform:none; }
  .hero__title .line > span{ transform:none; }
  .hero__slide.is-active img,
  .hero__slide.is-active video{ animation:none; transform:scale(1.04); }
  html{ scroll-behavior:auto; }
}


/* =========================================================
   PHOTOS RÉELLES
   ========================================================= */

/* Mention "illustration" sur les visuels qui ne sont pas encore
   des photos du client. À retirer avec la photo qu'elle accompagne. */
.illus{
  position:absolute; right:12px; bottom:12px; z-index:3;
  background:rgba(9,22,14,.72); color:rgba(250,246,239,.9);
  font-size:.6rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
  padding:.45em .8em; border-radius:100px;
  backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
  pointer-events:none;
}
.illus--hero{ right:auto; left:var(--gutter); bottom:18px; }
.place__media, .shop__media, .mphoto, .pro-card__media{ position:relative; }

/* Marchés : trois visuels */
.market-photos{
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:clamp(12px,1.6vw,20px);
  margin-top:clamp(36px,5vw,64px);
}
.mphoto{ margin:0; overflow:hidden; border-radius:var(--radius-lg); background:var(--sand); }
.mphoto img{ width:100%; aspect-ratio:4/3; object-fit:cover; transition:transform 1s var(--ease); }
.mphoto:hover img{ transform:scale(1.05); }
@media (max-width:700px){
  .market-photos{ grid-template-columns:1fr; }
  .mphoto img{ aspect-ratio:16/10; }
}

.photo-note{
  margin-top:1.2em; font-size:.82rem; font-style:italic; color:var(--ink-soft);
}

/* Professionnels : une photo par offre */
.pro-card{ padding:0; overflow:hidden; }
.pro-card__media{ order:-1; margin:0 0 clamp(20px,2.4vw,28px); }
.pro-card__media img{ width:100%; aspect-ratio:3/2; object-fit:cover; display:block; }
.pro-card > :not(.pro-card__media){ margin-left:clamp(28px,3.4vw,44px); margin-right:clamp(28px,3.4vw,44px); }
.pro-card > :last-child{ margin-bottom:clamp(28px,3.4vw,44px); }
.pro-card .tag{ margin-top:0; }

/* Titre sur deux tons dans la mosaïque des rayons */
.rayon__txt .ital{ color:rgba(250,246,239,.82); }

/* =========================================================
   RÉSEAUX SOCIAUX : bandeau vidéo
   ========================================================= */
.section--social{
  background:var(--green); color:var(--cream);
  padding:clamp(60px,8vw,120px) 0 clamp(48px,6vw,88px);
  overflow:hidden;
}
.section--social .sec-head{ margin-bottom:clamp(24px,3vw,42px); }

/* Sur l'accueil, le bandeau vidéo suit directement le bandeau du jour.
   Les deux sont verts : on resserre la jointure pour qu'ils forment
   une seule zone plutôt que deux blocs séparés par du vide. */
.today + .section--social{ padding-top:0; }
/* le titre de cette section tient sur une ligne, il n'a pas à subir
   la largeur de lecture imposée aux paragraphes */
.section--social .sec-head{ max-width:none; }

.reels{
  position:relative;
  padding-inline:var(--gutter);
  -webkit-user-select:none; user-select:none;
}

/* Ordinateur : la bande glisse, le conteneur ne défile pas */
.reels--glisse{
  overflow:hidden;
  cursor:grab;
  touch-action:pan-y;
}
.reels--glisse.is-dragging{ cursor:grabbing; }
.reels--glisse .reels__track{ will-change:transform; }

/* Tactile : défilement natif. Aucune transformation sur le conteneur
   des vidéos, sinon Safari iOS n'en repeint jamais le calque et les
   vidéos restent bloquées sur leur première image. */
.reels--scroll{
  overflow-x:auto; overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
  scroll-snap-type:x proximity;
  scrollbar-width:none;
  scroll-behavior:auto;
}
.reels--scroll::-webkit-scrollbar{ display:none; }
.reels--scroll .reel{ scroll-snap-align:start; }
.reels--scroll .reels__track{ transform:none !important; will-change:auto; }
.reels:focus-visible{ outline:2px solid var(--green-clair); outline-offset:-4px; }

/* Voiles latéraux : un dégradé posé par-dessus, plutôt qu'un masque CSS
   qui fait disparaître tout le bandeau sur Safari iOS. */
.reels::before,
.reels::after{
  content:""; position:absolute; top:0; bottom:0; width:clamp(24px,6vw,90px);
  z-index:3; pointer-events:none;
}
.reels--glisse::before{ left:0;  background:linear-gradient(to right, var(--green), rgba(30,74,51,0)); }
.reels--glisse::after { right:0; background:linear-gradient(to left,  var(--green), rgba(30,74,51,0)); }
.reels--scroll::before,
.reels--scroll::after{ display:none; }

.reels__track{
  display:flex; gap:clamp(12px,1.4vw,18px);
  width:max-content; padding-block:4px;
}

.reel{
  position:relative; flex:none;
  width:clamp(190px,17vw,250px); aspect-ratio:9/16;
  border-radius:var(--radius-lg); overflow:hidden;
  background:#132419;
  box-shadow:0 10px 30px rgba(0,0,0,.28);
  transition:transform .5s var(--ease), box-shadow .5s var(--ease);
}
.reel::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(to top, rgba(9,22,14,.78) 0%, rgba(9,22,14,.12) 38%, transparent 62%);
}
.reel video,
.reel img{ width:100%; height:100%; object-fit:cover; display:block; }
.reel video,
.reel img{ pointer-events:none; }
@media (hover:hover){
  .reels:hover .reel{ transform:scale(.985); }
  .reels .reel:hover{ transform:scale(1.03); box-shadow:0 16px 40px rgba(0,0,0,.4); }
}

.reel__cap{
  position:absolute; left:0; right:0; bottom:0; z-index:2;
  padding:14px 16px;
  font-size:.82rem; font-weight:450; line-height:1.3;
  color:var(--cream);
}

.socials--light{ margin-top:clamp(36px,4.5vw,60px); }
.socials--light .socials__label{ color:var(--cream); }
.socials--light .social{
  border-color:rgba(250,246,239,.3); color:rgba(250,246,239,.85);
}
.socials--light .social:hover{
  background:var(--cream); border-color:var(--cream); color:var(--green);
}

/* Galerie : vignette large sans bouton lecture */
.gal--wide{ grid-column:span 4; }
.gal--wide img{ aspect-ratio:16/9; }
@media (max-width:700px){ .gal--wide{ grid-column:span 2; } }

@media (prefers-reduced-motion:reduce){
  .reels{ scroll-behavior:auto; }
  .reel{ transition:none; }
}


/* =========================================================
   PETITS ÉCRANS : deux cartes par ligne, textes resserrés
   ========================================================= */
@media (max-width:620px){
  .pillar{ padding:18px 16px; }
  .pillar h3{ font-size:1.05rem; }
  .pillar p{ font-size:.86rem; }
  .pillar__num{ margin-bottom:8px; }

  .place__body{ padding:12px 13px; }
  .place__name{ font-size:1.02rem; }
  .place__meta{ font-size:.78rem; line-height:1.4; }
  .place__more{ font-size:.66rem; letter-spacing:.04em; }
  .place__kicker{ font-size:.6rem; }

  .tcard{ padding:14px 15px; }
  .tcard__name{ font-size:1.02rem; }
  .tcard__meta{ font-size:.78rem; }
  .tcard__link{ font-size:.68rem; }

  .market{ padding:16px 15px; }
  .market__place{ font-size:1.1rem; }
  .market__hour{ font-size:.8rem; }

  .pro-card > :not(.pro-card__media){ margin-left:16px; margin-right:16px; }
  .pro-card > :last-child{ margin-bottom:16px; }
  .pro-card p{ font-size:.86rem; }
  .pro-card h2{ font-size:1.1rem; }

  .rayon__txt{ padding:12px 13px; }
  .rayon__txt h2,.rayon__txt h3{ font-size:1rem; }
  .rayon__txt p{ font-size:.78rem; }
  .rayon--wide .rayon__txt h2{ font-size:1.4rem; }

  .teaser span{ font-size:.92rem; padding:12px 13px; }
  .shop__tags li{ font-size:.7rem; padding:.35em .75em; }
}


/* =========================================================
   GRILLES : deux par ligne jusqu'à la tablette, trois au-delà
   ========================================================= */
@media (min-width:1001px){
  .places,
  .pillars__grid,
  .markets,
  .pros__grid,
  .today__grid{ grid-template-columns:repeat(3,1fr); }

  .places > :last-child:nth-child(odd),
  .pillars__grid > :last-child:nth-child(odd),
  .markets > :last-child:nth-child(odd),
  .pros__grid > :last-child:nth-child(odd),
  .today__grid > :last-child:nth-child(odd){ grid-column:auto; }

  .places > :last-child:nth-child(odd) .place__media img{ aspect-ratio:4/3; }
}
