/* ============================================================
   LA MAISON DE L'ÉCLUSE — feuille de style commune
   Palette vert sauge / crème / bois · Cormorant + Caveat + Inter
============================================================ */

/* ---------- PALETTE & VARIABLES ---------- */
:root{
  --vert-sauge:   #4A5D4F;
  --vert-fonce:   #3C4D41;
  --vert-mousse:  #8FA68E;
  --creme:        #F5F0E6;
  --bois:         #D4B896;
  --bois-fonce:   #B8966C;
  --bleu-oise:    #5A7A8A;
  --ardoise:      #2A2A2A;
  --blanc-casse:  #FAF7F0;

  --serif: "Cormorant Garamond", Georgia, serif;
  --chalk: "Caveat", cursive;
  --sans:  "Inter", -apple-system, BlinkMacSystemFont, sans-serif;

  --maxw: 1240px;
  --gut: clamp(1.5rem, 5vw, 5rem);
  --banner-h: 44px;
  --nav-h: 68px;
}

/* ---------- RESET & BASE ---------- */
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family:var(--sans);font-weight:400;color:var(--ardoise);
  background:var(--creme);line-height:1.7;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;}

.wrap{max-width:var(--maxw);margin:0 auto;padding-left:var(--gut);padding-right:var(--gut);}
.wrap--narrow{max-width:880px;}

h1,h2,h3,h4{font-family:var(--serif);font-weight:500;line-height:1.1;color:var(--vert-sauge);letter-spacing:.01em;}
p{text-wrap:pretty;}

.chalk{font-family:var(--chalk);color:var(--vert-mousse);font-weight:500;}
.kicker{font-family:var(--chalk);font-size:clamp(1.5rem,2.4vw,2rem);color:var(--vert-mousse);line-height:1;display:inline-block;}
.eyebrow{font-family:var(--sans);font-size:.74rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--bleu-oise);}
.text-center{text-align:center;}

/* ---------- BOUTONS ---------- */
.btn{
  display:inline-flex;align-items:center;gap:.6rem;
  font-family:var(--sans);font-size:.9rem;font-weight:600;letter-spacing:.02em;
  padding:.95rem 1.7rem;border-radius:999px;cursor:pointer;border:1.5px solid var(--vert-sauge);
  background:var(--vert-sauge);color:var(--creme);
  transition:background .3s ease,color .3s ease,transform .3s ease,border-color .3s ease;
}
.btn:hover{background:var(--vert-fonce);transform:translateY(-2px);}
.btn--ghost{background:transparent;color:var(--vert-sauge);}
.btn--ghost:hover{background:var(--vert-sauge);color:var(--creme);}
.btn--light{background:var(--creme);color:var(--vert-sauge);border-color:var(--creme);}
.btn--light:hover{background:#fff;border-color:#fff;}
.btn--ghost-light{background:transparent;color:#fff;border-color:rgba(255,255,255,.7);}
.btn--ghost-light:hover{background:rgba(255,255,255,.12);border-color:#fff;}
.btn--block{width:100%;justify-content:center;}
.btn--sm{padding:.65rem 1.2rem;font-size:.82rem;}
.cta-row{display:flex;gap:1rem;flex-wrap:wrap;}
.link-arrow{display:inline-flex;align-items:center;gap:.4rem;font-weight:600;font-size:.9rem;color:var(--vert-sauge);}
.link-arrow:hover{color:var(--vert-mousse);}
.link-arrow .arr{transition:transform .3s ease;}
.link-arrow:hover .arr{transform:translateX(4px);}

/* ============================================================
   BANDEAU PRÉ-OUVERTURE
============================================================ */
.prebanner{
  position:fixed;top:0;left:0;right:0;z-index:200;
  display:flex;align-items:center;justify-content:center;gap:1rem;
  min-height:var(--banner-h);padding:.5rem 3rem .5rem 1.5rem;
  background:var(--blanc-casse);color:var(--vert-sauge);
  font-size:.82rem;font-weight:500;letter-spacing:.01em;text-align:center;
  border-bottom:1px solid rgba(74,93,79,.14);
}
.prebanner a{color:var(--vert-sauge);text-decoration:underline;text-underline-offset:2px;}
.prebanner__close{
  position:absolute;right:1rem;top:50%;transform:translateY(-50%);
  background:none;border:0;cursor:pointer;color:var(--vert-sauge);
  width:26px;height:26px;border-radius:50%;font-size:1.1rem;line-height:1;
  display:flex;align-items:center;justify-content:center;transition:background .2s ease;
}
.prebanner__close:hover{background:rgba(74,93,79,.1);}
body.banner-closed .prebanner{display:none;}

/* ============================================================
   NAVIGATION
============================================================ */
.nav{
  position:fixed;top:var(--banner-h);left:0;right:0;z-index:100;
  display:flex;align-items:center;justify-content:space-between;
  padding:.85rem var(--gut);
  transition:background .4s ease,padding .4s ease,box-shadow .4s ease,top .35s ease;
}
body.banner-closed .nav{top:0;}
.nav__brand{
  font-family:var(--serif);font-size:1.3rem;font-weight:600;color:var(--vert-sauge);
  letter-spacing:.01em;white-space:nowrap;transition:color .4s ease;
}
.nav__links{display:flex;gap:1.6rem;align-items:center;}
.nav__links a{
  font-size:.82rem;font-weight:500;letter-spacing:.03em;color:var(--ardoise);
  position:relative;padding:.2rem 0;transition:color .3s ease;white-space:nowrap;
}
.nav__links a::after{content:"";position:absolute;left:0;bottom:-3px;height:1.5px;width:0;background:var(--vert-mousse);transition:width .3s ease;}
.nav__links a:hover::after,.nav__links a.active::after{width:100%;}
.nav__links a:hover{color:var(--vert-mousse);}
.nav__links a.active{color:var(--vert-sauge);}

/* Variante : nav transparente au-dessus d'un grand hero sombre */
body.has-hero .nav:not(.scrolled) .nav__brand{color:#fff;}
body.has-hero .nav:not(.scrolled) .nav__links a{color:#fff;}
body.has-hero .nav:not(.scrolled) .nav__links a.active{color:#fff;}
body.has-hero .nav:not(.scrolled) .burger span{background:#fff;}

.nav.scrolled{
  background:rgba(245,240,230,.94);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  box-shadow:0 1px 0 rgba(74,93,79,.12);padding-top:.6rem;padding-bottom:.6rem;
}

.burger{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:.4rem;z-index:110;}
.burger span{display:block;width:26px;height:2px;background:var(--vert-sauge);transition:.35s ease;}
.burger.open span{background:var(--vert-sauge);}
.burger.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.burger.open span:nth-child(2){opacity:0;}
.burger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* ============================================================
   HERO (grand, plein écran)
============================================================ */
.hero{
  position:relative;isolation:isolate;min-height:100svh;
  display:flex;flex-direction:column;justify-content:center;align-items:center;
  text-align:center;color:#fff;padding:7rem var(--gut) 5rem;
}
.hero__bg{position:absolute;inset:0;z-index:-2;}
.hero__bg img{width:100%;height:100%;object-fit:cover;object-position:center 60%;}
.hero__overlay{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(42,42,42,.5) 0%,rgba(42,42,42,.2) 38%,rgba(42,42,42,.55) 100%);}
.hero__inner{max-width:920px;}
.hero h1{color:#fff;font-weight:500;font-size:clamp(3rem,8vw,6.6rem);line-height:.98;letter-spacing:.005em;text-shadow:0 2px 30px rgba(0,0,0,.25);}
.hero__sub{font-family:var(--chalk);color:#cdd9c8;font-size:clamp(1.5rem,3.6vw,2.6rem);margin-top:.5rem;line-height:1.1;text-shadow:0 2px 18px rgba(0,0,0,.3);}
.hero__place{font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;font-weight:500;color:rgba(255,255,255,.92);margin-top:1.4rem;}
.hero__cta{margin-top:2.4rem;justify-content:center;}
.scroll-cue{position:absolute;bottom:2.4rem;left:50%;width:24px;height:24px;border-right:2px solid rgba(255,255,255,.8);border-bottom:2px solid rgba(255,255,255,.8);transform-origin:center;rotate:45deg;animation:bob 2.2s ease-in-out infinite;}
@keyframes bob{0%,100%{translate:-50% 0;opacity:.5;}50%{translate:-50% 10px;opacity:1;}}

/* Hero medium (agenda) */
.hero--mid{min-height:52vh;}
/* Bandeau bois (contact) */
.band-bois{
  background:linear-gradient(180deg,var(--bois) 0%,#c8a87e 100%);
  padding:calc(var(--banner-h) + var(--nav-h) + 3.5rem) var(--gut) 3.5rem;text-align:center;
}
.band-bois h1{color:var(--vert-fonce);font-size:clamp(2.4rem,5vw,4rem);}
.band-bois .kicker{color:var(--vert-sauge);}

/* ============================================================
   SECTIONS
============================================================ */
section{position:relative;}
.section-pad{padding:clamp(4.5rem,10vw,8rem) 0;}
.section-pad--sm{padding:clamp(3rem,6vw,5rem) 0;}
.section-head{max-width:760px;margin-bottom:clamp(2.2rem,4.5vw,3.6rem);}
.section-head.center{margin-left:auto;margin-right:auto;text-align:center;}
.section-head h2{font-size:clamp(2.1rem,4.6vw,3.4rem);margin:.5rem 0;}
.section-head .lead{font-size:1.05rem;color:#4a4a44;margin-top:1rem;max-width:62ch;}
.bg-blanc{background:var(--blanc-casse);}
.bg-sauge{background:var(--vert-sauge);color:var(--creme);}
.bg-sauge h2,.bg-sauge h3{color:#fff;}
.bg-sauge .eyebrow{color:var(--bois);}
.bg-sauge .kicker{color:var(--bois);}

.prose p{font-size:1.06rem;color:#3a3a36;margin-bottom:1.1rem;max-width:60ch;}
.prose p:last-child{margin-bottom:0;}
.prose--center p{margin-left:auto;margin-right:auto;}

/* Split texte / photo */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4.5rem);align-items:center;}
.split--wide-text{grid-template-columns:1.3fr 1fr;}
.split__photo{position:relative;border-radius:14px;overflow:hidden;box-shadow:0 24px 60px -24px rgba(42,42,42,.4);aspect-ratio:4/3;}
.split__photo img{width:100%;height:100%;object-fit:cover;}
.split__text h2{font-size:clamp(1.9rem,4vw,2.9rem);margin-bottom:1.2rem;}
.signature{font-family:var(--chalk);color:var(--vert-sauge);font-size:1.5rem;line-height:1.3;margin-top:1.4rem;}

/* ============================================================
   CARTES UNIVERS (accueil)
============================================================ */
.univers-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(1.2rem,2.4vw,1.8rem);}
.univers{position:relative;border-radius:14px;overflow:hidden;min-height:340px;display:flex;align-items:flex-end;box-shadow:0 14px 44px -26px rgba(42,42,42,.5);}
.univers img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.2,.7,.2,1);z-index:0;}
.univers::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(42,42,42,0) 30%,rgba(42,42,42,.78) 100%);z-index:1;}
.univers:hover img{transform:scale(1.06);}
.univers__body{position:relative;z-index:2;padding:1.8rem 2rem;color:#fff;width:100%;}
.univers__body .uk{font-family:var(--chalk);font-size:1.3rem;color:var(--bois);display:block;line-height:1;margin-bottom:.2rem;}
.univers__body h3{color:#fff;font-size:1.9rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;}
.univers__body .arr{transition:transform .3s ease;}
.univers:hover .arr{transform:translateX(5px);}
.univers__body p{font-size:.92rem;color:rgba(255,255,255,.85);margin-top:.4rem;}

/* ============================================================
   CARTES (activités / services génériques)
============================================================ */
.cards-2{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(1.5rem,3vw,2.4rem);}
.card{background:var(--blanc-casse);border-radius:14px;overflow:hidden;box-shadow:0 12px 40px -28px rgba(42,42,42,.5);transition:transform .5s cubic-bezier(.2,.7,.2,1),box-shadow .5s ease;}
.card:hover{transform:translateY(-6px);box-shadow:0 26px 56px -30px rgba(42,42,42,.5);}
.card__img{aspect-ratio:16/11;overflow:hidden;}
.card__img img{width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.2,.7,.2,1);}
.card:hover .card__img img{transform:scale(1.05);}
.card__body{padding:1.8rem 1.9rem 2.1rem;}
.card__body h3{font-size:1.8rem;margin-bottom:.1rem;}
.card__kicker{font-family:var(--chalk);color:var(--vert-mousse);font-size:1.3rem;display:block;margin-bottom:.7rem;line-height:1;}
.card__body p{font-size:.96rem;color:#46463f;}

/* ============================================================
   GRILLE SERVICES (pictos)
============================================================ */
.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.2rem,2.6vw,2rem);}
.service{background:var(--blanc-casse);border:1px solid rgba(74,93,79,.12);border-radius:14px;padding:1.8rem;transition:border-color .3s ease,transform .3s ease;}
.service:hover{border-color:var(--vert-mousse);transform:translateY(-3px);}
.service__icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;margin-bottom:1rem;}
.service__icon svg{width:34px;height:34px;stroke:var(--vert-sauge);fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;}
.service h3{font-size:1.4rem;margin-bottom:.4rem;}
.service p{font-size:.93rem;color:#4a4a44;}
.service .price-tag{display:inline-block;margin-top:.6rem;font-weight:600;font-size:.85rem;color:var(--bois-fonce);}

/* Démarche (3 piliers) */
.cols3{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(2rem,4vw,3.6rem);}
.pillar{text-align:center;}
.pillar__icon{width:60px;height:60px;margin:0 auto 1.4rem;display:flex;align-items:center;justify-content:center;border:1.5px solid var(--vert-mousse);border-radius:50%;}
.pillar__icon svg{width:30px;height:30px;stroke:var(--vert-sauge);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;}
.pillar h3{font-size:1.5rem;line-height:1.18;margin-bottom:.8rem;}
.pillar p{font-size:.96rem;color:#46463f;max-width:34ch;margin:0 auto;}

/* ============================================================
   STATS / CHIFFRES-CLÉS
============================================================ */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--vert-mousse);border:1px solid var(--vert-mousse);border-radius:14px;overflow:hidden;}
.stats--6{grid-template-columns:repeat(3,1fr);}
.stat{background:var(--blanc-casse);padding:2.1rem 1.2rem;text-align:center;}
.stat__n{font-family:var(--serif);font-size:clamp(1.8rem,2.9vw,2.5rem);font-weight:600;color:var(--vert-sauge);line-height:1.08;white-space:nowrap;}
.stat__l{font-size:.82rem;color:#56564e;margin-top:.7rem;}

/* Encadré chiffres inline (à propos) */
.factbox{background:var(--blanc-casse);border-left:3px solid var(--bois);border-radius:0 12px 12px 0;padding:1.6rem 1.8rem;}
.factbox dl{display:grid;grid-template-columns:auto 1fr;gap:.5rem 1.2rem;}
.factbox dt{font-weight:600;color:var(--vert-sauge);font-family:var(--serif);font-size:1.2rem;}
.factbox dd{color:#4a4a44;font-size:.95rem;align-self:center;}

/* ============================================================
   ARDOISE (carte / menu)
============================================================ */
.ardoise{background:var(--ardoise);border-radius:16px;padding:clamp(2rem,4vw,3rem);color:var(--creme);box-shadow:inset 0 0 60px rgba(0,0,0,.35),0 20px 50px -28px rgba(0,0,0,.6);border:6px solid #4a3f33;}
.ardoise-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.5rem,3vw,3rem);}
.ardoise h3{font-family:var(--chalk);color:#fff;font-size:1.9rem;margin-bottom:1rem;border-bottom:1px dashed rgba(245,240,230,.3);padding-bottom:.4rem;}
.ardoise-item{display:flex;justify-content:space-between;gap:.6rem;align-items:baseline;font-size:.98rem;color:rgba(245,240,230,.92);margin-bottom:.7rem;}
.ardoise-item .nm{flex:0 1 auto;}
.ardoise-item .dots{flex:1 1 auto;border-bottom:1px dotted rgba(245,240,230,.35);transform:translateY(-4px);min-width:12px;}
.ardoise-item .pr{font-family:var(--chalk);font-size:1.25rem;color:var(--bois);white-space:nowrap;}
.ardoise__note{text-align:center;font-size:.82rem;color:rgba(245,240,230,.6);margin-top:1.8rem;font-style:italic;}

/* ============================================================
   HORAIRES
============================================================ */
.hours{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.5rem;}
.hours__block{background:var(--blanc-casse);border-radius:12px;padding:1.6rem 1.8rem;border:1px solid rgba(74,93,79,.1);}
.hours__block h4{font-size:1.3rem;margin-bottom:.6rem;}
.hours__block .season{font-family:var(--chalk);color:var(--vert-mousse);font-size:1.2rem;}
.hours__row{display:flex;justify-content:space-between;gap:1rem;padding:.35rem 0;border-bottom:1px dotted rgba(74,93,79,.18);font-size:.95rem;}
.hours__row:last-child{border-bottom:0;}
.hours__row .day{color:#4a4a44;}
.hours__row .hr{font-weight:600;color:var(--vert-sauge);}
.hours__row.closed .hr{color:var(--bois-fonce);}

/* ============================================================
   TARIFS (coworking)
============================================================ */
.price-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.2rem,2.4vw,1.8rem);align-items:stretch;}
.price-card{background:var(--blanc-casse);border:1px solid rgba(74,93,79,.14);border-radius:16px;padding:2rem 1.9rem;display:flex;flex-direction:column;transition:transform .35s ease,box-shadow .35s ease;}
.price-card:hover{transform:translateY(-5px);box-shadow:0 24px 50px -30px rgba(42,42,42,.45);}
.price-card.featured{background:var(--vert-sauge);color:var(--creme);border-color:var(--vert-sauge);}
.price-card.featured h3,.price-card.featured .price{color:#fff;}
.price-card.featured .price-check li{color:rgba(245,240,230,.92);}
.price-card.featured .price-check svg{stroke:var(--bois);}
.price-card .ribbon{font-family:var(--chalk);font-size:1.2rem;color:var(--bois);margin-bottom:.3rem;}
.price-card h3{font-size:1.5rem;letter-spacing:.04em;text-transform:uppercase;font-family:var(--sans);font-weight:600;}
.price-card .price{font-family:var(--serif);font-size:2.8rem;font-weight:600;color:var(--vert-sauge);line-height:1;margin:.6rem 0 1.2rem;}
.price-card .price small{font-size:1rem;font-family:var(--sans);font-weight:400;color:inherit;opacity:.7;}
.price-check{list-style:none;display:flex;flex-direction:column;gap:.7rem;margin-bottom:1.8rem;flex:1;}
.price-check li{display:flex;gap:.6rem;align-items:flex-start;font-size:.94rem;color:#46463f;}
.price-check svg{width:18px;height:18px;flex:0 0 18px;margin-top:.2rem;stroke:var(--vert-mousse);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}

/* Mosaïque photos */
.mosaic{display:grid;grid-template-columns:2fr 1fr;grid-template-rows:1fr 1fr;gap:.8rem;border-radius:14px;overflow:hidden;}
.mosaic img{width:100%;height:100%;object-fit:cover;}
.mosaic img:first-child{grid-row:span 2;min-height:340px;}
.feature-list{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:.8rem 1.4rem;}
.feature-list li{display:flex;gap:.6rem;align-items:flex-start;font-size:.96rem;color:#3a3a36;}
.feature-list svg{width:18px;height:18px;flex:0 0 18px;margin-top:.25rem;stroke:var(--vert-mousse);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}

/* ============================================================
   PRIVATISATIONS — cartes événement
============================================================ */
.event-types{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.2rem,2.4vw,1.8rem);}
.etype{background:var(--blanc-casse);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 12px 40px -28px rgba(42,42,42,.5);}
.etype__img{aspect-ratio:4/3;overflow:hidden;}
.etype__img img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1);}
.etype:hover .etype__img img{transform:scale(1.05);}
.etype__body{padding:1.7rem 1.8rem 2rem;display:flex;flex-direction:column;flex:1;}
.etype__body h3{font-size:1.7rem;margin-bottom:.6rem;}
.etype__body p{font-size:.95rem;color:#46463f;margin-bottom:1.2rem;}
.etype__meta{list-style:none;font-size:.86rem;color:#56564e;border-top:1px dotted rgba(74,93,79,.22);padding-top:1rem;margin-top:auto;margin-bottom:1.3rem;display:flex;flex-direction:column;gap:.35rem;}
.etype__meta b{color:var(--vert-sauge);font-weight:600;}

.included{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:.9rem 1.6rem;max-width:820px;margin:0 auto;}
.included li{display:flex;gap:.7rem;align-items:flex-start;font-size:1rem;color:#3a3a36;}
.included svg{width:20px;height:20px;flex:0 0 20px;margin-top:.2rem;stroke:var(--vert-mousse);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.options-note{text-align:center;margin-top:1.6rem;font-size:.95rem;color:#56564e;}

/* ============================================================
   AGENDA — RDV réguliers & temps forts
============================================================ */
.recurring-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(1.2rem,2.4vw,1.8rem);}
.recur{background:var(--blanc-casse);border-radius:14px;padding:1.8rem 1.9rem;border:1px solid rgba(74,93,79,.1);border-top:3px solid var(--bois);}
.recur h3{font-size:1.6rem;margin-bottom:.4rem;}
.recur__when{display:inline-flex;align-items:center;gap:.45rem;font-family:var(--chalk);font-size:1.25rem;color:var(--vert-mousse);margin-bottom:.7rem;}
.recur p{font-size:.95rem;color:#46463f;}

.agenda-list{display:flex;flex-direction:column;gap:1rem;}
.event-row{display:grid;grid-template-columns:120px 1fr auto;gap:1.6rem;align-items:center;background:var(--blanc-casse);border-radius:14px;padding:1.4rem 1.8rem;border:1px solid rgba(74,93,79,.1);transition:border-color .3s ease;}
.event-row:hover{border-color:var(--vert-mousse);}
.event-date{text-align:center;line-height:1;}
.event-date .d{font-family:var(--serif);font-size:2.6rem;font-weight:600;color:var(--vert-sauge);}
.event-date .m{font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;color:var(--bleu-oise);margin-top:.3rem;}
.event-info h3{font-size:1.45rem;margin-bottom:.2rem;}
.event-info p{font-size:.93rem;color:#4a4a44;}
.event-info .tag{font-family:var(--chalk);font-size:1.1rem;color:var(--vert-mousse);}

/* ============================================================
   TÉMOIGNAGES
============================================================ */
.quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.2rem,2.4vw,1.8rem);}
.quote{background:var(--blanc-casse);border-radius:14px;padding:2rem 1.9rem;border:1px solid rgba(74,93,79,.1);}
.quote__mark{font-family:var(--serif);font-size:3.2rem;line-height:.4;color:var(--bois);display:block;height:1.3rem;}
.quote p{font-size:1.02rem;color:#3a3a36;font-style:italic;margin-bottom:1.2rem;}
.quote__who{font-size:.85rem;color:var(--vert-sauge);font-weight:600;}
.quote__who span{display:block;font-weight:400;color:#6a6a60;font-style:normal;margin-top:.15rem;}

/* ============================================================
   NEWSLETTER
============================================================ */
.newsletter{background:var(--vert-sauge);color:var(--creme);border-radius:18px;padding:clamp(2.2rem,4vw,3.2rem);text-align:center;}
.newsletter h3{color:#fff;font-size:clamp(1.7rem,3vw,2.3rem);margin-bottom:.4rem;}
.newsletter p{color:rgba(245,240,230,.85);margin-bottom:1.6rem;}
.newsletter form{display:flex;gap:.7rem;max-width:480px;margin:0 auto;flex-wrap:wrap;}
.newsletter input{flex:1;min-width:200px;padding:.9rem 1.2rem;border-radius:999px;border:1px solid rgba(245,240,230,.4);background:rgba(245,240,230,.1);color:#fff;font-family:var(--sans);font-size:.95rem;}
.newsletter input::placeholder{color:rgba(245,240,230,.6);}
.newsletter input:focus{outline:none;border-color:var(--bois);background:rgba(245,240,230,.16);}

/* ============================================================
   FORMULAIRES
============================================================ */
.form{background:var(--blanc-casse);border-radius:16px;padding:clamp(1.8rem,3.5vw,2.6rem);border:1px solid rgba(74,93,79,.12);}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem 1.3rem;}
.field{display:flex;flex-direction:column;gap:.4rem;}
.field.full{grid-column:1 / -1;}
.field label{font-size:.82rem;font-weight:600;letter-spacing:.02em;color:var(--vert-sauge);}
.field label .req{color:var(--bois-fonce);}
.field input,.field select,.field textarea{
  padding:.8rem 1rem;border-radius:10px;border:1px solid rgba(74,93,79,.25);
  background:#fff;font-family:var(--sans);font-size:.95rem;color:var(--ardoise);transition:border-color .25s ease,box-shadow .25s ease;
}
.field textarea{resize:vertical;min-height:120px;}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--vert-mousse);box-shadow:0 0 0 3px rgba(143,166,142,.2);}
.field input:invalid:not(:placeholder-shown){border-color:#c0734f;}
.radio-row{display:flex;gap:.7rem;flex-wrap:wrap;}
.radio-chip{position:relative;}
.radio-chip input{position:absolute;opacity:0;inset:0;cursor:pointer;}
.radio-chip span{display:inline-block;padding:.6rem 1.1rem;border-radius:999px;border:1.5px solid rgba(74,93,79,.25);font-size:.88rem;font-weight:500;cursor:pointer;transition:all .25s ease;background:#fff;}
.radio-chip input:checked + span{background:var(--vert-sauge);color:var(--creme);border-color:var(--vert-sauge);}
.radio-chip input:focus-visible + span{box-shadow:0 0 0 3px rgba(143,166,142,.3);}
.form__submit{margin-top:1.6rem;}
.form-success{display:none;background:var(--vert-sauge);color:var(--creme);border-radius:16px;padding:clamp(1.8rem,3.5vw,2.6rem);text-align:center;}
.form-success.show{display:block;}
.form-success h3{color:#fff;font-size:1.7rem;margin-bottom:.5rem;}
.form-success .chalk{color:var(--bois);font-size:1.6rem;display:block;margin-bottom:.8rem;}
.form-success p{color:rgba(245,240,230,.9);}
.form.hide{display:none;}

/* ============================================================
   CARTE STYLISÉE (Avenue Verte)
============================================================ */
.routemap{background:var(--blanc-casse);border-radius:16px;padding:clamp(2rem,4vw,3rem);border:1px solid rgba(74,93,79,.12);}
.route-line{display:flex;align-items:flex-start;justify-content:space-between;position:relative;gap:.5rem;}
.route-line::before{content:"";position:absolute;top:11px;left:8%;right:8%;height:2px;background:repeating-linear-gradient(90deg,var(--vert-mousse) 0 10px,transparent 10px 18px);}
.route-stop{position:relative;text-align:center;flex:1;}
.route-stop .pt{width:22px;height:22px;border-radius:50%;background:var(--blanc-casse);border:2px solid var(--vert-mousse);margin:0 auto 1rem;position:relative;z-index:1;}
.route-stop.here .pt{background:var(--vert-sauge);border-color:var(--vert-sauge);width:26px;height:26px;}
.route-stop .nm{font-family:var(--serif);font-size:1.15rem;color:var(--vert-sauge);font-weight:600;}
.route-stop.here .nm{color:var(--vert-sauge);}
.route-stop .km{font-size:.78rem;color:#6a6a60;margin-top:.2rem;}
.route-stop .tag{font-family:var(--chalk);color:var(--bois-fonce);font-size:1.1rem;}

/* ============================================================
   ÉQUIPE (à propos)
============================================================ */
.team{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(1.5rem,3vw,2.6rem);}
.member{display:flex;gap:1.4rem;align-items:flex-start;}
.member__photo{width:120px;height:120px;border-radius:50%;flex:0 0 120px;overflow:hidden;background:var(--vert-mousse);position:relative;}
.member__photo img{width:100%;height:100%;object-fit:cover;}
.member__photo .ph{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:2rem;color:var(--creme);background:var(--vert-mousse);}
.member h3{font-size:1.5rem;}
.member .role{font-family:var(--chalk);color:var(--vert-mousse);font-size:1.25rem;margin-bottom:.5rem;}
.member p{font-size:.95rem;color:#46463f;}
.member blockquote{font-family:var(--serif);font-size:1.15rem;font-style:italic;color:var(--vert-sauge);margin-top:.7rem;line-height:1.4;}

/* GoldenHour bloc */
.gh-block{display:flex;gap:2rem;align-items:center;background:var(--blanc-casse);border-radius:16px;padding:2rem 2.2rem;border:1px solid rgba(74,93,79,.12);}
.gh-logo{flex:0 0 130px;height:130px;border-radius:12px;background:var(--vert-sauge);display:flex;align-items:center;justify-content:center;text-align:center;color:var(--creme);font-family:var(--serif);font-size:1.1rem;line-height:1.2;padding:1rem;}

/* Timeline verticale */
.vtimeline{list-style:none;position:relative;padding-left:2rem;max-width:640px;}
.vtimeline::before{content:"";position:absolute;left:5px;top:6px;bottom:6px;width:2px;background:var(--vert-mousse);}
.vtimeline li{position:relative;padding-bottom:2rem;}
.vtimeline li:last-child{padding-bottom:0;}
.vtimeline li::before{content:"";position:absolute;left:-2rem;top:4px;width:12px;height:12px;border-radius:50%;background:var(--blanc-casse);border:2px solid var(--vert-mousse);}
.vtimeline li.done::before{background:var(--vert-sauge);border-color:var(--vert-sauge);}
.vtimeline .vt-when{font-family:var(--chalk);font-size:1.35rem;color:var(--vert-sauge);}
.vtimeline .vt-what{font-size:.98rem;color:#46463f;}

/* Timeline horizontale (accueil/à propos) */
.timeline{display:grid;grid-template-columns:repeat(4,1fr);gap:0;position:relative;margin-top:1rem;}
.timeline::before{content:"";position:absolute;top:9px;left:12.5%;right:12.5%;height:1.5px;background:rgba(245,240,230,.35);}
.tl{position:relative;text-align:center;padding:0 1rem;}
.tl__dot{width:18px;height:18px;border-radius:50%;background:var(--bois);border:3px solid var(--vert-sauge);margin:0 auto 1.5rem;position:relative;z-index:1;}
.tl__when{font-family:var(--chalk);font-size:1.5rem;color:var(--bois);line-height:1;margin-bottom:.5rem;}
.tl__what{font-size:.95rem;color:rgba(245,240,230,.92);max-width:22ch;margin:0 auto;}

/* ============================================================
   CONTACT
============================================================ */
.contact-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(2rem,5vw,4rem);align-items:start;}
.coords{display:flex;flex-direction:column;gap:1.6rem;}
.coord{display:flex;gap:1rem;align-items:flex-start;}
.coord > div{flex:1;min-width:0;}
.coord__icon{flex:0 0 22px;margin-top:.2rem;}
.coord__icon svg{width:22px;height:22px;stroke:var(--vert-sauge);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;}
.coord h4{font-size:1.15rem;line-height:1.25;margin-bottom:.35rem;}
.coord p,.coord address{font-size:.95rem;color:#46463f;font-style:normal;line-height:1.6;}
.coord a{color:var(--bleu-oise);}
.coord a:hover{color:var(--vert-sauge);}
#map{height:440px;width:100%;border-radius:16px;border:1px solid rgba(74,93,79,.15);z-index:1;}
.socials{display:flex;gap:1rem;}
.social{width:46px;height:46px;border-radius:50%;border:1.5px solid var(--vert-mousse);display:flex;align-items:center;justify-content:center;transition:background .3s ease,border-color .3s ease;}
.social:hover{background:var(--vert-sauge);border-color:var(--vert-sauge);}
.social svg{width:20px;height:20px;stroke:var(--vert-sauge);fill:none;stroke-width:1.6;}
.social:hover svg{stroke:var(--creme);}

/* ============================================================
   MODALS
============================================================ */
.modal{position:fixed;inset:0;z-index:300;display:none;align-items:center;justify-content:center;padding:1.5rem;}
.modal.open{display:flex;}
.modal__backdrop{position:absolute;inset:0;background:rgba(42,42,42,.55);backdrop-filter:blur(3px);}
.modal__box{position:relative;background:var(--creme);border-radius:18px;max-width:480px;width:100%;padding:clamp(1.8rem,4vw,2.6rem);box-shadow:0 30px 80px -30px rgba(0,0,0,.6);}
.modal__box h3{font-size:1.8rem;margin-bottom:.5rem;}
.modal__box .chalk{font-size:1.5rem;display:block;margin-bottom:1rem;}
.modal__box p{font-size:.98rem;color:#3a3a36;margin-bottom:1.2rem;}
.modal__close{position:absolute;top:1rem;right:1rem;width:32px;height:32px;border-radius:50%;border:0;background:rgba(74,93,79,.1);cursor:pointer;font-size:1.2rem;color:var(--vert-sauge);display:flex;align-items:center;justify-content:center;}
.modal__close:hover{background:rgba(74,93,79,.2);}
.modal .field{margin-bottom:1rem;}

/* ============================================================
   FOOTER
============================================================ */
.site-footer{background:var(--vert-sauge);color:var(--creme);padding:clamp(3.5rem,7vw,5rem) 0 2.2rem;}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.3fr;gap:2.5rem;}
.site-footer h4{color:#fff;font-family:var(--sans);font-size:.78rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;margin-bottom:1.1rem;color:var(--bois);}
.footer-brand{font-family:var(--serif);font-size:1.7rem;font-weight:500;color:#fff;margin-bottom:.8rem;}
.site-footer p{color:rgba(245,240,230,.82);font-size:.92rem;line-height:1.7;}
.footer-links{list-style:none;display:flex;flex-direction:column;gap:.55rem;}
.footer-links a{font-size:.92rem;color:rgba(245,240,230,.82);transition:color .25s ease;}
.footer-links a:hover{color:var(--bois);}
.footer-news form{display:flex;gap:.5rem;margin-top:.4rem;flex-wrap:wrap;}
.footer-news input{flex:1;min-width:140px;padding:.7rem .9rem;border-radius:999px;border:1px solid rgba(245,240,230,.35);background:rgba(245,240,230,.08);color:#fff;font-family:var(--sans);font-size:.88rem;}
.footer-news input::placeholder{color:rgba(245,240,230,.55);}
.footer-news input:focus{outline:none;border-color:var(--bois);}
.footer-news button{padding:.7rem 1.1rem;border-radius:999px;border:0;background:var(--bois);color:var(--vert-fonce);font-weight:600;font-size:.85rem;cursor:pointer;transition:background .25s ease;}
.footer-news button:hover{background:#e0c6a3;}
.footer-social{display:flex;gap:.7rem;margin-top:1rem;}
.footer-social a{width:38px;height:38px;border-radius:50%;border:1px solid rgba(245,240,230,.3);display:flex;align-items:center;justify-content:center;transition:background .25s ease;}
.footer-social a:hover{background:rgba(245,240,230,.12);}
.footer-social svg{width:18px;height:18px;stroke:var(--creme);fill:none;stroke-width:1.6;}
.footer-bottom{border-top:1px solid rgba(245,240,230,.18);margin-top:2.8rem;padding-top:1.6rem;text-align:center;}
.footer-bottom p{font-size:.8rem;color:rgba(245,240,230,.6);margin-bottom:.3rem;}
.footer-bottom a{color:rgba(245,240,230,.7);text-decoration:underline;text-underline-offset:2px;}
.footer-bottom a:hover{color:var(--bois);}

/* ============================================================
   RÉVÉLATIONS AU SCROLL (translate seul — toujours lisible)
============================================================ */
.reveal{transform:translateY(22px);transition:transform .9s cubic-bezier(.2,.7,.2,1);will-change:transform;}
.reveal.in{transform:none;}
.reveal.d1{transition-delay:.08s;}
.reveal.d2{transition-delay:.16s;}
.reveal.d3{transition-delay:.24s;}
@media(prefers-reduced-motion:reduce){
  .reveal{transform:none;transition:none;}
  .scroll-cue{animation:none;}
}

/* ============================================================
   RESPONSIVE
============================================================ */
@media(max-width:1080px){
  .nav__links{gap:1.15rem;}
  .nav__links a{font-size:.78rem;}
}
/* Nav mobile / tablette : passage au menu burger */
@media(max-width:1040px){
  .contact-grid{grid-template-columns:1fr;}
  .burger{display:flex;}
  .nav__links{
    position:fixed;inset:0 0 0 auto;width:min(82vw,330px);
    background:var(--creme);flex-direction:column;justify-content:center;gap:1.6rem;
    padding:2rem;transform:translateX(100%);transition:transform .45s cubic-bezier(.2,.7,.2,1);
    box-shadow:-20px 0 60px -30px rgba(0,0,0,.5);z-index:105;
  }
  .nav__links.open{transform:translateX(0);}
  .nav__links a{color:var(--ardoise)!important;font-size:1.1rem;}
  .nav__links a::after{display:none;}
}
@media(max-width:920px){
  .split{grid-template-columns:1fr;}
  .split__photo{aspect-ratio:16/10;max-width:560px;}
  .cols3{grid-template-columns:1fr;gap:2.6rem;}
  .service-grid{grid-template-columns:repeat(2,1fr);}
  .price-grid{grid-template-columns:1fr;max-width:440px;margin:0 auto;}
  .event-types{grid-template-columns:1fr;max-width:460px;margin:0 auto;}
  .quotes{grid-template-columns:1fr;max-width:520px;margin:0 auto;}
  .stats{grid-template-columns:repeat(2,1fr);}
  .stats--6{grid-template-columns:repeat(2,1fr);}
  .ardoise-grid{grid-template-columns:1fr;gap:1.6rem;}
  .contact-grid{grid-template-columns:1fr;}
  .team{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr 1fr;gap:2rem;}
  .timeline{grid-template-columns:1fr;gap:2.4rem;}
  .timeline::before{display:none;}
}
@media(max-width:680px){
  :root{--gut:1.4rem;}
  .univers-grid{grid-template-columns:1fr;}
  .cards-2{grid-template-columns:1fr;}
  .recurring-grid{grid-template-columns:1fr;}
  .form-grid{grid-template-columns:1fr;}
  .feature-list{grid-template-columns:1fr;}
  .included{grid-template-columns:1fr;}
  .mosaic{grid-template-columns:1fr;}
  .mosaic img:first-child{grid-row:auto;}
  .footer-grid{grid-template-columns:1fr;}
  .event-row{grid-template-columns:64px 1fr;gap:1rem;}
  .event-row .btn{grid-column:2;justify-self:start;}
  .event-date .d{font-size:2rem;}
  .route-line{flex-direction:column;gap:1.4rem;align-items:flex-start;}
  .route-line::before{display:none;}
  .route-stop{display:flex;align-items:center;gap:1rem;text-align:left;}
  .route-stop .pt{margin:0;}
  .member{flex-direction:column;}
  .gh-block{flex-direction:column;text-align:center;}
}
