/* Copie automatique des styles de index-v1.html (ne pas modifier ici) */

/* ============================================================
   TOKENS & RESET
============================================================ */
:root{
  --cream:        oklch(0.97 0.012 80);
  --cream-2:      oklch(0.94 0.018 75);
  --paper:        oklch(0.98 0.008 80);
  --ink:          oklch(0.18 0.012 50);
  --ink-2:        oklch(0.32 0.012 50);
  --ink-soft:     oklch(0.52 0.015 60);
  --line:         oklch(0.86 0.012 65);
  --palm:         oklch(0.38 0.10 150);
  --palm-d:       oklch(0.26 0.07 150);
  --palm-soft:    oklch(0.92 0.04 145);
  --coral:        oklch(0.66 0.18 25);
  --coral-d:      oklch(0.52 0.16 25);
  --hibiscus:     oklch(0.62 0.21 12);
  --sun:          oklch(0.82 0.15 85);

  --shadow-s:     0 1px 2px rgba(40,30,20,.06), 0 2px 8px rgba(40,30,20,.04);
  --shadow-m:     0 6px 24px rgba(40,30,20,.08), 0 2px 6px rgba(40,30,20,.06);
  --shadow-l:     0 24px 60px rgba(40,30,20,.12), 0 8px 22px rgba(40,30,20,.08);

  --f-display:    "Archivo Black", "Arial Black", sans-serif;
  --f-script:    "Pinyon Script", "Brush Script MT", cursive;
  --f-serif:      "Fraunces", Georgia, serif;
  --f-body:       "Outfit", system-ui, sans-serif;

  --w-content:    1280px;
  --r:            18px;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:var(--f-body);
  color:var(--ink);
  background:var(--cream);
  font-size:17px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{display:block;max-width:100%;height:auto}
button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}
input,textarea,select{font:inherit;color:inherit}
a{color:inherit;text-decoration:none}
::selection{background:var(--coral);color:#fff}

/* ============================================================
   LAYOUT
============================================================ */
.section{
  max-width:var(--w-content);
  margin:0 auto;
  padding:120px 32px;
  position:relative;
}
.section__head{
  text-align:center;
  max-width:760px;
  margin:0 auto 64px;
}
.section__head--left{text-align:left;max-width:680px;margin-left:0}
.eyebrow{
  font-family:var(--f-body);
  font-size:12.5px;
  font-weight:500;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--palm-d);
  display:inline-flex;
  align-items:center;
  gap:10px;
  margin-bottom:18px;
}
.eyebrow--light{color:var(--palm-soft)}
.dot{width:7px;height:7px;border-radius:50%;background:var(--coral);display:inline-block}
.section__title{
  font-family:var(--f-display);
  font-size:clamp(36px, 5.4vw, 72px);
  line-height:1.02;
  letter-spacing:-.02em;
  color:var(--ink);
  text-transform:uppercase;
  font-weight:400;
}
.section__title em{
  font-family:var(--f-serif);
  font-style:italic;
  font-weight:300;
  text-transform:none;
  letter-spacing:-.01em;
  color:var(--palm);
}
.section__title--light{color:var(--cream)}
.section__title--light em{color:var(--sun)}
.section--reserve .section__title em,
.section--gallery .section__title em{color:var(--coral);font-weight:500}
.hl{color:var(--coral)}
.hl-red{color:var(--coral)}
.section__sub{
  font-family:var(--f-serif);
  font-style:italic;
  font-weight:300;
  font-size:20px;
  color:var(--ink-soft);
  margin-top:22px;
  line-height:1.5;
}

/* ============================================================
   BUTTONS
============================================================ */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:14px 24px;
  border-radius:999px;
  font-weight:500;
  font-size:15px;
  letter-spacing:.01em;
  border:1px solid transparent;
  transition:transform .18s, box-shadow .18s, background .2s;
  white-space:nowrap;
}
.btn--lg{padding:18px 30px;font-size:16px;width:100%}
.btn--primary{
  background:var(--ink);
  color:var(--cream);
}
.btn--primary:hover{background:var(--coral);transform:translateY(-2px);box-shadow:var(--shadow-m)}
.btn--primary:disabled{opacity:.4;cursor:not-allowed;transform:none}
.btn--ghost{
  background:transparent;
  color:var(--ink);
  border-color:var(--ink);
}
.btn--ghost:hover{background:var(--ink);color:var(--cream)}

/* ============================================================
   NAVIGATION
============================================================ */
.nav{
  position:fixed; top:0; left:0; right:0;
  z-index:50;
  display:flex; align-items:center; justify-content:space-between;
  padding:18px 32px;
  transition:background .25s, padding .25s, box-shadow .25s;
}
.nav--scrolled{
  background:rgba(252,250,247,.92);
  backdrop-filter:blur(14px);
  padding:12px 32px;
  box-shadow:0 1px 0 var(--line);
}
.nav__brand{
  display:inline-flex;
  flex-direction:column;
  line-height:.85;
  gap:2px;
}
.nav__brand-script{
  font-family:var(--f-script);
  font-size:22px;
  color:var(--ink-2);
  margin-left:6px;
  line-height:1;
}
.nav__brand-bold{
  font-family:var(--f-display);
  font-size:16px;
  letter-spacing:.04em;
  color:var(--ink);
  text-transform:uppercase;
}
.nav__links{
  display:flex;
  gap:32px;
  align-items:center;
}
.nav__links a{
  font-size:16px;
  font-weight:600;
  color:var(--ink-2);
  position:relative;
}
.nav__links a:hover{color:var(--coral)}
.nav__cta{
  background:var(--ink);
  color:var(--cream) !important;
  padding:10px 20px;
  border-radius:999px;
}
.nav__cta:hover{background:var(--coral);color:#fff !important}
.nav__right{display:flex;align-items:center;gap:14px}
.nav__cart{
  position:relative;
  width:42px;height:42px;
  border-radius:50%;
  background:var(--cream-2);
  display:grid;place-items:center;
  color:var(--ink);
  transition:background .2s;
}
.nav__cart:hover{background:var(--ink);color:var(--cream)}
.nav__cart-badge{
  position:absolute;
  top:-4px; right:-4px;
  background:var(--coral); color:#fff;
  width:20px;height:20px;border-radius:50%;
  font-size:11px;font-weight:700;
  display:grid;place-items:center;
}
.nav__burger{display:none;flex-direction:column;gap:5px;width:34px;height:34px;justify-content:center;align-items:center}
.nav__burger span{width:22px;height:1.6px;background:var(--ink);border-radius:2px}

/* ============================================================
   HERO
============================================================ */
.hero{
  position:relative;
  min-height:100vh;
  padding:140px 32px 60px;
  max-width:var(--w-content);
  margin:0 auto;
  display:flex;
  align-items:center;
  overflow:hidden;
}
.hero__leaf{
  position:absolute;
  width:520px; height:520px;
  color:var(--palm);
  opacity:.16;
  z-index:0;
  pointer-events:none;
}
.hero__leaf--l{top:30px;left:-200px;transform:rotate(-30deg)}
.hero__leaf--r{top:80px;right:-200px;transform:rotate(40deg) scaleX(-1)}
.hero__inner{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:60px;
  width:100%;
  align-items:center;
}
.hero__eyebrow{
  font-size:13px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--palm-d);font-weight:500;
  display:inline-flex;align-items:center;gap:10px;
  margin-bottom:28px;
}
.hero__title{
  font-family:var(--f-display);
  font-size:clamp(56px, 8.2vw, 132px);
  line-height:.92;
  letter-spacing:-.025em;
  text-transform:uppercase;
  color:var(--ink);
  margin-bottom:28px;
  font-weight:400;
}
.hero__title-script{
  display:block;
  font-family:var(--f-script);
  font-size:.42em;
  font-weight:400;
  color:var(--ink-2);
  text-transform:none;
  letter-spacing:0;
  line-height:1;
  margin-bottom:4px;
  margin-left:8px;
}
.hero__title-bold{display:inline-block;position:relative}
.hero__title-q{
  font-family:var(--f-serif);
  font-style:italic;
  color:var(--coral);
  font-weight:300;
}
.hero__lede{
  font-size:18px;
  line-height:1.55;
  color:var(--ink-2);
  max-width:480px;
  margin-bottom:36px;
}
.hero__lede em{font-family:var(--f-serif);font-style:italic;color:var(--coral-d);font-weight:500}
.hero__cta{display:flex;gap:14px;margin-bottom:48px;flex-wrap:wrap}
.hero__stats{display:flex;gap:36px;flex-wrap:wrap}
.hero__stats > div{display:flex;flex-direction:column;gap:2px}
.hero__stats strong{
  font-family:var(--f-display);
  font-size:30px;
  color:var(--ink);
  letter-spacing:-.02em;
}
.hero__stats span{font-size:12px;color:var(--ink-soft);letter-spacing:.05em;text-transform:uppercase}

.hero__media{
  position:relative;
  height:580px;
}
.hero__card{
  position:absolute;
  border-radius:24px;
  overflow:hidden;
  box-shadow:var(--shadow-l);
  background:var(--cream-2);
}
.hero__card img{width:100%;height:100%;object-fit:cover}
.hero__tag{
  position:absolute;
  bottom:14px;left:14px;
  background:rgba(252,250,247,.95);
  backdrop-filter:blur(8px);
  padding:6px 14px;
  border-radius:999px;
  font-size:12px;
  font-weight:600;
  letter-spacing:.02em;
}
.hero__card--1{
  width:62%; height:64%;
  top:0; left:0;
  transform:rotate(-3deg);
  animation:float 6s ease-in-out infinite;
}
.hero__card--2{
  width:46%; height:46%;
  bottom:10%; right:0;
  transform:rotate(4deg);
  animation:float 7s ease-in-out infinite reverse;
}
.hero__card--3{
  width:42%; height:42%;
  bottom:-2%; left:8%;
  transform:rotate(2deg);
  animation:float 8s ease-in-out infinite;
  animation-delay:-2s;
}
@keyframes float{
  0%, 100% { transform:translateY(0) rotate(var(--r, -3deg))}
  50% { transform:translateY(-12px) rotate(var(--r, -3deg))}
}
.hero__card--1{--r:-3deg}
.hero__card--2{--r:4deg}
.hero__card--3{--r:2deg}

.hero__badge{
  position:absolute;
  top:14%; right:-8%;
  width:130px; height:130px;
  background:var(--coral);
  color:#fff;
  border-radius:50%;
  display:flex; flex-direction:column;
  justify-content:center;align-items:center;
  text-align:center;
  box-shadow:var(--shadow-m);
  animation:spin 18s linear infinite;
  z-index:3;
}
.hero__badge-num{
  font-family:var(--f-display);
  font-size:36px;line-height:1;
}
.hero__badge-txt{
  font-family:var(--f-serif);
  font-style:italic;
  font-size:13px;
  line-height:1.2;
  margin-top:4px;
}
@keyframes spin{from{transform:rotate(-8deg)}to{transform:rotate(352deg)}}

.hero__marquee{
  margin-top:60px;
  overflow:hidden;
  padding:18px 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  position:relative;
  z-index:2;
}
.hero__marquee-track{
  display:flex;
  white-space:nowrap;
  animation:marquee 30s linear infinite;
  font-family:var(--f-display);
  font-size:34px;
  text-transform:uppercase;
  color:var(--ink);
  letter-spacing:-.01em;
  gap:0;
}
.hero__marquee-track em{
  font-family:var(--f-serif);
  font-style:italic;
  font-weight:300;
  color:var(--coral);
  text-transform:none;
  margin:0 4px;
}
@keyframes marquee{to{transform:translateX(-50%)}}

/* ============================================================
   CARTE / FILTERS / CARDS
============================================================ */
.filters{
  display:flex;flex-wrap:wrap;justify-content:center;gap:10px;
  margin-bottom:48px;
}
.chip{
  display:inline-flex;align-items:center;gap:8px;
  padding:10px 18px;
  border-radius:999px;
  background:var(--cream-2);
  font-size:14px;font-weight:500;
  color:var(--ink-2);
  transition:all .2s;
  border:1px solid transparent;
}
.chip:hover{background:var(--cream);border-color:var(--line)}
.chip--on{background:var(--ink);color:var(--cream)}
.chip__count{
  font-size:11px;
  padding:2px 7px;
  background:rgba(0,0,0,.08);
  border-radius:999px;
  color:inherit;
  font-weight:600;
}
.chip--on .chip__count{background:rgba(255,255,255,.18)}

.cards-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(280px, 1fr));
  gap:28px;
}
.card{
  background:var(--paper);
  border-radius:var(--r);
  overflow:hidden;
  box-shadow:var(--shadow-s);
  transition:transform .25s, box-shadow .25s;
  cursor:pointer;
  display:flex;flex-direction:column;
}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-m)}
.card__img-wrap{
  aspect-ratio:4/3;
  position:relative;
  overflow:hidden;
  background:var(--cream-2);
}
.card__img-wrap img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.card:hover .card__img-wrap img{transform:scale(1.04)}
.card__tags{
  position:absolute;
  top:12px; left:12px;
  display:flex;gap:6px;flex-wrap:wrap;
}
.tag{
  background:rgba(252,250,247,.94);
  backdrop-filter:blur(6px);
  padding:5px 10px;
  border-radius:999px;
  font-size:11px;
  font-weight:600;
  letter-spacing:.02em;
  color:var(--ink);
}
.tag--hot{background:var(--coral);color:#fff}
.tag--ghost{background:transparent;border:1px solid var(--line);color:var(--ink-soft)}
.card__body{
  padding:20px 22px 22px;
  display:flex;flex-direction:column;gap:8px;flex:1;
}
.card__title{
  font-family:var(--f-display);
  font-size:18px;
  letter-spacing:-.01em;
  font-weight:400;
}
.card__desc{
  font-size:14px;
  color:var(--ink-soft);
  line-height:1.5;
  flex:1;
}
.card__foot{
  display:flex;align-items:center;justify-content:space-between;
  margin-top:6px;padding-top:14px;
  border-top:1px solid var(--line);
}
.card__price strong{
  font-family:var(--f-display);
  font-size:18px;
  color:var(--ink);
}
.card__price span{font-size:12px;color:var(--ink-soft);margin-left:4px}
.card__add{
  width:38px;height:38px;border-radius:50%;
  background:var(--ink); color:var(--cream);
  display:grid;place-items:center;
  transition:all .2s;
}
.card__add:hover{background:var(--coral);transform:scale(1.1) rotate(90deg)}

/* ============================================================
   SHOWCASE (tabbed full-bleed)
============================================================ */
.showcase{
  position:relative;
  color:var(--cream);
  overflow:hidden;
  transition:background .6s;
}
.showcase--coral{background:oklch(0.55 0.16 38)}
.showcase--palm{background:oklch(0.30 0.08 150)}
.showcase--ink{background:oklch(0.22 0.02 50)}

.showcase__tabs{
  position:relative;
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  background:rgba(0,0,0,.25);
  border-bottom:1px solid rgba(255,255,255,.08);
}
.showcase__tab{
  padding:32px 40px;
  display:flex;flex-direction:column;
  gap:6px;
  text-align:left;
  color:rgba(255,255,255,.5);
  position:relative;
  transition:color .25s;
  border-right:1px solid rgba(255,255,255,.08);
}
.showcase__tab:hover{color:rgba(255,255,255,.85)}
.showcase__tab--on{color:var(--cream)}
.showcase__tab--on::after{
  content:"";position:absolute;left:0;right:0;bottom:-1px;
  height:3px;background:var(--sun);
}
.showcase__tab-num{
  font-family:var(--f-display);
  font-size:34px;line-height:1;
  letter-spacing:-.02em;
  color:rgba(255,255,255,.4);
  transition:color .25s;
}
.showcase__tab--on .showcase__tab-num{color:var(--sun)}
.showcase__tab-label{
  font-size:13px;letter-spacing:.18em;
  text-transform:uppercase;font-weight:600;
}
.showcase__arrows{
  position:absolute;right:24px;top:50%;
  transform:translateY(-50%);
  display:flex;gap:6px;
}
.showcase__arrows button{
  width:44px;height:44px;border-radius:50%;
  background:rgba(0,0,0,.35);
  color:var(--cream);
  font-size:18px;
  transition:all .2s;
}
.showcase__arrows button:hover{background:rgba(255,255,255,.15)}

.showcase__panel{
  position:relative;
  display:grid;
  grid-template-columns:1fr 1.3fr 1fr;
  gap:60px;
  align-items:center;
  padding:100px 64px 110px;
  max-width:1500px;
  margin:0 auto;
  min-height:640px;
  animation:fadeUp .5s cubic-bezier(.2,.9,.3,1);
}
@keyframes fadeUp{from{opacity:0;transform:translateY(20px)}}
.showcase__bg-text{
  position:absolute;
  bottom:-30px;left:50%;
  transform:translateX(-50%);
  font-family:var(--f-display);
  font-size:clamp(140px, 24vw, 380px);
  line-height:.8;
  color:rgba(255,255,255,.06);
  text-transform:uppercase;
  letter-spacing:-.04em;
  pointer-events:none;
  white-space:nowrap;
  z-index:0;
}
.showcase__left, .showcase__center, .showcase__right{position:relative;z-index:2}

.showcase__num{
  font-family:var(--f-display);
  font-size:clamp(120px, 14vw, 200px);
  line-height:.85;
  letter-spacing:-.04em;
  color:var(--cream);
}
.showcase__dash{
  width:60px;height:2px;background:var(--cream);
  margin:30px 0 26px;opacity:.6;
}
.showcase__desc{
  font-family:var(--f-serif);
  font-style:italic;
  font-weight:300;
  font-size:21px;
  line-height:1.45;
  color:rgba(252,250,247,.85);
  max-width:340px;
}

.showcase__center{
  position:relative;
  height:520px;
  display:grid;
  place-items:center;
}
.showcase__circle{
  width:min(440px, 90%);
  aspect-ratio:1;
  border-radius:50%;
  overflow:hidden;
  box-shadow:0 30px 80px rgba(0,0,0,.4), 0 10px 30px rgba(0,0,0,.3);
  position:relative;
  animation:floatSlow 6s ease-in-out infinite;
}
.showcase__circle::after{
  content:"";position:absolute;inset:0;
  border-radius:50%;
  box-shadow:inset 0 0 0 6px rgba(255,255,255,.08);
}
.showcase__circle img{
  width:100%;height:100%;object-fit:cover;
}
@keyframes floatSlow{
  0%, 100% { transform:translateY(0) }
  50% { transform:translateY(-14px) }
}
.showcase__float{
  position:absolute;
  display:inline-flex;align-items:center;gap:10px;
  padding:10px 18px 10px 14px;
  background:rgba(0,0,0,.3);
  backdrop-filter:blur(8px);
  border:1px solid rgba(255,255,255,.18);
  border-radius:999px;
  font-size:13px;
  font-weight:500;
  color:var(--cream);
  letter-spacing:.02em;
  z-index:3;
  animation:floatBubble 4s ease-in-out infinite;
}
.showcase__float em{
  width:8px;height:8px;border-radius:50%;
  background:var(--sun);
  font-style:normal;
}
@keyframes floatBubble{
  0%, 100% { transform:translateY(0) }
  50% { transform:translateY(-8px) }
}

.acc{
  border-bottom:1px solid rgba(255,255,255,.15);
}
.acc:first-child{border-top:1px solid rgba(255,255,255,.15)}
.acc__btn{
  width:100%;
  display:flex;align-items:center;justify-content:space-between;
  padding:22px 0;
  color:var(--cream);
  font-size:16px;
  font-weight:600;
  letter-spacing:.01em;
  transition:color .2s;
}
.acc__btn:hover{color:var(--sun)}
.acc--on .acc__btn{color:var(--sun)}
.acc__sign{font-size:22px;font-weight:300;line-height:1;width:24px;text-align:center}
.acc__body{
  max-height:0;overflow:hidden;
  transition:max-height .35s, padding .25s;
  font-size:15px;
  color:rgba(252,250,247,.78);
  line-height:1.6;
}
.acc__body p{ white-space:pre-line; }
.acc--on .acc__body{
  max-height:320px;
  padding:0 0 22px;
}
.acc__cta{
  display:inline-block;
  margin-top:14px;
  color:var(--sun);
  font-weight:600;
  font-size:14px;
  border-bottom:1px solid var(--sun);
  padding-bottom:2px;
}
.acc__cta:hover{color:#fff;border-color:#fff}

@media (max-width: 980px){
  .showcase__tab{padding:18px 16px}
  .showcase__tab-num{font-size:22px}
  .showcase__tab-label{font-size:11px;letter-spacing:.12em}
  .showcase__arrows{display:none}
  .showcase__panel{
    grid-template-columns:1fr;
    padding:60px 24px 80px;
    gap:36px;
    min-height:auto;
    text-align:center;
  }
  .showcase__left{display:flex;flex-direction:column;align-items:center}
  .showcase__desc{text-align:center}
  .showcase__center{height:auto}
  .showcase__circle{width:min(320px, 80%)}
}

/* ============================================================
   MODAL
============================================================ */
.modal{
  position:fixed;inset:0;
  background:rgba(20,15,10,.7);
  backdrop-filter:blur(6px);
  z-index:100;
  display:grid;place-items:center;
  padding:20px;
  animation:fadeIn .25s;
}
@keyframes fadeIn{from{opacity:0}}
.modal__panel{
  background:var(--paper);
  border-radius:24px;
  overflow:hidden;
  max-width:880px;width:100%;
  display:grid;
  grid-template-columns: 1fr 1fr;
  max-height:90vh;
  position:relative;
  animation:popIn .3s cubic-bezier(.2,.9,.3,1.2);
}
@keyframes popIn{from{transform:scale(.92);opacity:0}}
.modal__close{
  position:absolute;top:14px;right:14px;
  width:38px;height:38px;border-radius:50%;
  background:rgba(252,250,247,.9);
  font-size:22px;
  display:grid;place-items:center;
  z-index:2;
}
.modal__close:hover{background:#fff}
.modal__img{
  background-size:cover;background-position:center;
  min-height:380px;
}
.modal__body{padding:36px 32px;display:flex;flex-direction:column;gap:14px;overflow:auto}
.modal__cat{font-size:12px;letter-spacing:.15em;text-transform:uppercase;color:var(--palm-d);font-weight:500}
.modal__title{font-family:var(--f-display);font-size:30px;letter-spacing:-.01em}
.modal__desc{color:var(--ink-soft);line-height:1.6}
.modal__tags{display:flex;gap:6px;flex-wrap:wrap}
.modal__price{display:flex;align-items:baseline;gap:8px;margin-top:auto;padding-top:16px;border-top:1px solid var(--line)}
.modal__price strong{font-family:var(--f-display);font-size:30px}
.modal__price span{font-size:13px;color:var(--ink-soft)}
.modal__actions{display:flex;gap:12px;align-items:stretch}
.modal__actions .btn{flex:1}
.qty{
  display:inline-flex;align-items:center;
  background:var(--cream-2);
  border-radius:999px;
  overflow:hidden;
}
.qty button{
  width:44px;height:44px;font-size:18px;
  transition:background .2s;
}
.qty button:hover{background:var(--ink);color:var(--cream)}
.qty span{padding:0 14px;font-weight:600;min-width:36px;text-align:center}
.qty--sm button{width:30px;height:30px;font-size:14px}
.qty--sm span{font-size:13px;padding:0 8px;min-width:22px}
.qty__rm{padding:0 10px;font-size:12px;color:var(--ink-soft);text-decoration:underline;width:auto !important}

.modal__panel--img{
  background:transparent;
  grid-template-columns:1fr;
  max-width:90vw;
}
.modal__panel--img img{max-height:85vh;width:auto;margin:0 auto;display:block;border-radius:16px}

/* ============================================================
   SECTION-SPECIFIC
============================================================ */
.section--carte{
  background:#DFAC59;
  max-width:none;
  padding:0;
  margin:0;
}
.section--carte .cv2__filters,
.section--carte .cv2__grid,
.section--carte .cv2__loading{
  max-width:var(--w-content);
  margin-left:auto;
  margin-right:auto;
  padding-left:32px;
  padding-right:32px;
}
.section--carte .cv2__filters{ padding-top:40px; padding-bottom:0; }
.section--carte .cv2__grid,
.section--carte .cv2__loading{ padding-bottom:80px; }

/* ============================================================
   CARTE BANNER — fond tropical tissé
============================================================ */
.carte__banner{
  position:relative;
  overflow:hidden;
  text-align:center;
  padding:80px 24px 72px;
  background-image:url('../images/carte-banner.webp');
  background-size:cover;
  background-position:center;
  background-color:#C8973F;
}
/* légère vignette centrale pour lisibilité du texte */
.carte__banner::before{
  content:'';
  position:absolute;inset:0;
  background:radial-gradient(ellipse 55% 70% at 50% 50%, rgba(0,0,0,.18) 0%, transparent 70%);
  pointer-events:none;
}
/* fondu bas : efface le bord dur de l'image */
.carte__banner::after{
  content:'';
  position:absolute;left:0;right:0;bottom:0;
  height:80px;
  background:linear-gradient(to bottom, transparent, #DFAC59);
  pointer-events:none;
}
/* cacher les hibiscus SVG (remplacés par l'image) */
.carte__ban-flower{ display:none }
/* contenu centré */
.carte__ban-inner{
  position:relative;
  max-width:700px;
  margin:0 auto;
}
.carte__ban-title{
  color:#1A0A00 !important;
  text-shadow:0 1px 3px rgba(255,255,255,.3);
}
.carte__ban-title em{
  color:#3D1F00 !important;
  text-shadow:none;
}
.carte__ban-title .hl{
  color:#C41E1E !important;
  text-shadow:0 1px 4px rgba(255,255,255,.4);
}
.carte__ban-sub{
  color:#3D1F00 !important;
  margin-top:20px;
}
.carte__ban-eye{
  color:#3D1F00 !important;
  letter-spacing:.12em;
  margin-bottom:12px;
}
.carte__ban-eye .dot{ background:#C41E1E }
.carte__ban-sub + .cv2__synced{
  color:#3D1F00;
  margin-top:16px;
}
@media(max-width:600px){
  .carte__ban-flower{ display:none }
  .carte__banner{ padding:60px 20px 56px }
  .section--carte .cv2__filters,
  .section--carte .cv2__grid,
  .section--carte .cv2__loading{
    padding-left:16px;
    padding-right:16px;
  }
}

/* ============================================================
   CARTE V2 — nouveau design + Google Sheets
============================================================ */

/* Bandeau sync Sheets */
.cv2__synced{
  display:inline-flex;align-items:center;gap:8px;
  font-size:12px;color:var(--palm-d);font-weight:500;
  letter-spacing:.06em;margin-top:16px;
}
.cv2__synced-dot{
  width:7px;height:7px;border-radius:50%;
  background:#22C55E;
  box-shadow:0 0 6px #22C55E;
  flex-shrink:0;
}

/* Filtres */
.cv2__filters{
  display:flex;flex-wrap:wrap;gap:10px;
  margin-bottom:48px;
}
.cv2__chip{
  display:inline-flex;align-items:center;gap:8px;
  padding:10px 20px;
  border-radius:999px;
  font-size:13px;font-weight:500;
  color:var(--ink-2);
  background:var(--paper);
  border:1.5px solid var(--line);
  transition:all .2s;cursor:pointer;
}
.cv2__chip:hover{ opacity:.85 }
.cv2__chip--on{ color:#fff; border-color:transparent; }
.cv2__chip-count{
  font-size:11px;font-weight:700;
  padding:2px 7px;border-radius:999px;
  background:rgba(0,0,0,.12);
}
.cv2__chip--on .cv2__chip-count{background:rgba(255,255,255,.25)}

/* Couleurs par catégorie */
.cv2__chip[data-cat="all"]{ border-color:#5C3A00;color:#5C3A00 }
.cv2__chip[data-cat="all"].cv2__chip--on{ background:#fff; color:#5C3A00; border-color:#5C3A00 }
.cv2__chip[data-cat="all"].cv2__chip--on .cv2__chip-count{ background:rgba(92,58,0,.15); color:#5C3A00 }

.cv2__chip[data-cat="bokits"]{ border-color:rgba(230,100,40,.8);color:#7A3000 }
.cv2__chip[data-cat="bokits"].cv2__chip--on{ background:rgb(230,100,40) }

.cv2__chip[data-cat="boxes"]{ border-color:rgba(34,160,80,.8);color:#0A5020 }
.cv2__chip[data-cat="boxes"].cv2__chip--on{ background:rgb(34,160,80) }

.cv2__chip[data-cat="snacks"]{ border-color:rgba(180,140,0,.8);color:#604800 }
.cv2__chip[data-cat="snacks"].cv2__chip--on{ background:rgb(200,160,10) }

.cv2__chip[data-cat="douceurs"]{ border-color:rgba(220,60,160,.8);color:#7A0050 }
.cv2__chip[data-cat="douceurs"].cv2__chip--on{ background:rgb(220,60,160) }

.cv2__chip[data-cat="sauces"]{ border-color:rgba(210,30,30,.8);color:#7A0000 }
.cv2__chip[data-cat="sauces"].cv2__chip--on{ background:rgb(210,30,30) }

/* Grille */
.cv2__grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(220px, 1fr));
  gap:20px;
}

/* Skeleton loading */
.cv2__loading{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(220px, 1fr));
  gap:20px;
}
.cv2__skeleton{
  border-radius:16px;
  background:linear-gradient(90deg,var(--line) 25%,var(--cream-2) 50%,var(--line) 75%);
  background-size:200% 100%;
  animation:shimmer 1.4s infinite;
  height:340px;
}
@keyframes shimmer{to{background-position:-200% 0}}

/* Card */
.cv2__card{
  background:#F5D98A;
  border-radius:16px;
  overflow:hidden;
  border:none;
  display:flex;flex-direction:column;
  cursor:pointer;
  transition:transform .22s, box-shadow .22s;
}
.cv2__card:hover{ transform:translateY(-5px); }

/* ── Halos par catégorie ──
   bokits  → orange
   boxes   → vert
   snacks  → jaune citron
   douceurs → rose
   sauces  → rouge
*/
.cv2__card[data-cat="bokits"]{
  box-shadow:
    0 0 0 2px rgba(230,100,40,.7),
    0 0 18px 6px rgba(230,100,40,.45),
    0 0 40px 14px rgba(230,100,40,.2),
    0 0 70px 28px rgba(230,100,40,.06);
}
.cv2__card[data-cat="bokits"]:hover{
  box-shadow:
    0 0 0 2px rgba(230,100,40,.9),
    0 0 24px 8px rgba(230,100,40,.6),
    0 0 50px 18px rgba(230,100,40,.28),
    0 0 90px 36px rgba(230,100,40,.1);
}
.cv2__card[data-cat="boxes"]{
  box-shadow:
    0 0 0 2px rgba(34,160,80,.7),
    0 0 18px 6px rgba(34,160,80,.45),
    0 0 40px 14px rgba(34,160,80,.2),
    0 0 70px 28px rgba(34,160,80,.06);
}
.cv2__card[data-cat="boxes"]:hover{
  box-shadow:
    0 0 0 2px rgba(34,160,80,.9),
    0 0 24px 8px rgba(34,160,80,.6),
    0 0 50px 18px rgba(34,160,80,.28),
    0 0 90px 36px rgba(34,160,80,.1);
}
.cv2__card[data-cat="snacks"]{
  box-shadow:
    0 0 0 2px rgba(220,180,20,.7),
    0 0 18px 6px rgba(220,180,20,.45),
    0 0 40px 14px rgba(220,180,20,.2),
    0 0 70px 28px rgba(220,180,20,.06);
}
.cv2__card[data-cat="snacks"]:hover{
  box-shadow:
    0 0 0 2px rgba(220,180,20,.9),
    0 0 24px 8px rgba(220,180,20,.6),
    0 0 50px 18px rgba(220,180,20,.28),
    0 0 90px 36px rgba(220,180,20,.1);
}
.cv2__card[data-cat="douceurs"]{
  box-shadow:
    0 0 0 2px rgba(220,60,160,.7),
    0 0 18px 6px rgba(220,60,160,.45),
    0 0 40px 14px rgba(220,60,160,.2),
    0 0 70px 28px rgba(220,60,160,.06);
}
.cv2__card[data-cat="douceurs"]:hover{
  box-shadow:
    0 0 0 2px rgba(220,60,160,.9),
    0 0 24px 8px rgba(220,60,160,.6),
    0 0 50px 18px rgba(220,60,160,.28),
    0 0 90px 36px rgba(220,60,160,.1);
}
.cv2__card[data-cat="sauces"]{
  box-shadow:
    0 0 0 2px rgba(210,30,30,.7),
    0 0 18px 6px rgba(210,30,30,.45),
    0 0 40px 14px rgba(210,30,30,.2),
    0 0 70px 28px rgba(210,30,30,.06);
}
.cv2__card[data-cat="sauces"]:hover{
  box-shadow:
    0 0 0 2px rgba(210,30,30,.9),
    0 0 24px 8px rgba(210,30,30,.6),
    0 0 50px 18px rgba(210,30,30,.28),
    0 0 90px 36px rgba(210,30,30,.1);
}

/* Image */
.cv2__img-wrap{
  position:relative;
  aspect-ratio:16/10;
  overflow:hidden;
  background:var(--cream-2);
}
.cv2__img-wrap img{
  width:100%;height:100%;
  object-fit:cover;
  transition:transform .4s;
  display:block;
}
.cv2__card:hover .cv2__img-wrap img{transform:scale(1.06)}

/* Badges */
.cv2__badge{
  position:absolute;top:12px;left:12px;
  font-size:10.5px;font-weight:700;
  letter-spacing:.08em;text-transform:uppercase;
  padding:4px 10px;border-radius:6px;
}
.cv2__badge--hot{ background:var(--ink);color:#4EC87A }
.cv2__badge--promo{ background:var(--coral);color:#fff }

/* Corps */
.cv2__body{
  padding:18px 20px 20px;
  display:flex;flex-direction:column;gap:6px;flex:1;
}
.cv2__cat{
  font-size:10px;font-weight:700;
  letter-spacing:.18em;text-transform:uppercase;
  color:var(--palm-d);
}
.cv2__title{
  font-family:var(--f-display);
  font-size:17px;letter-spacing:-.01em;font-weight:400;
  color:var(--ink);line-height:1.2;
}
.cv2__desc{
  font-size:13.5px;color:var(--ink-soft);
  line-height:1.5;flex:1;
}

/* Pied de carte */
.cv2__foot{
  display:flex;align-items:center;justify-content:space-between;
  margin-top:10px;padding-top:14px;
  border-top:1px solid var(--line);
}
.cv2__price{
  display:flex;flex-direction:column;gap:1px;
}
.cv2__price-old{
  font-size:11px;color:var(--ink-soft);
  text-decoration:line-through;
}
.cv2__price strong{
  font-family:var(--f-display);
  font-size:19px;color:var(--ink);
  letter-spacing:-.01em;
}
.cv2__price-promo{ color:var(--coral) !important }
.cv2__price span{
  font-size:11px;color:var(--ink-soft);
}
.cv2__add{
  width:38px;height:38px;border-radius:50%;
  background:var(--ink);color:var(--cream);
  display:grid;place-items:center;
  transition:all .2s;border:none;cursor:pointer;
}
.cv2__add:hover{
  background:#4EC87A;color:var(--ink);
  transform:scale(1.1) rotate(90deg);
}

@media(max-width:560px){
  .cv2__grid,.cv2__loading{grid-template-columns:repeat(2,1fr);gap:12px}
  .cv2__img-wrap{aspect-ratio:4/3}
}
@media(max-width:360px){
  .cv2__grid,.cv2__loading{grid-template-columns:1fr}
}

/* ============================================================
   BOX SECTION — Chaud & Tropical v2
============================================================ */

.section--box{
  background:#F5EDE2;
  max-width:none;
  padding:0 0 110px;
  margin:0;
  position:relative;
  overflow:hidden;
}

/* ── Feuilles tropicales déco ── */
.bx__leaf-svg{
  position:absolute;
  pointer-events:none;
  z-index:0;
}
.bx__leaf-svg--tr{
  top:-30px; right:-25px;
  width:260px; height:340px;
  opacity:.22;
  transform:rotate(12deg);
}
.bx__leaf-svg--bl{
  bottom:-20px; left:-30px;
  width:220px; height:300px;
  opacity:.18;
  transform:rotate(-20deg) scaleX(-1);
}

/* ── Bannière Box — même fond que La Carte ── */
.bx__banner{
  position:relative;
  overflow:hidden;
  text-align:center;
  padding:80px 24px 72px;
  background-image:url('../images/carte-banner.webp');
  background-size:cover;
  background-position:center;
  background-color:#DFAC59;
  margin-bottom:0;
}
.bx__banner::before{
  content:'';
  position:absolute; inset:0;
  background:radial-gradient(ellipse 55% 70% at 50% 50%, rgba(0,0,0,.18) 0%, transparent 70%);
  pointer-events:none;
}
.bx__banner::after{
  content:'';
  position:absolute; left:0; right:0; bottom:0;
  height:160px;
  background:linear-gradient(to bottom,
    transparent 0%,
    rgba(245,237,226,.6) 50%,
    #F5EDE2 100%);
  pointer-events:none;
}
.bx__banner-inner{
  position:relative; z-index:2;
  max-width:700px; margin:0 auto;
}

.bx__eyebrow{
  font-size:11px; font-weight:700;
  letter-spacing:.2em; text-transform:uppercase;
  color:#3D1F00; margin-bottom:14px;
  display:flex; align-items:center; justify-content:center; gap:8px;
}
.bx__eyebrow .dot{ background:#C41E1E; }
.bx__title{
  font-family:var(--f-display);
  font-size:clamp(40px,5vw,72px);
  color:#1A0A00;
  line-height:1.05; margin-bottom:14px;
  text-shadow:0 1px 3px rgba(255,255,255,.3);
}
.bx__title em{
  font-family:var(--f-script);
  font-style:normal;
  color:#3D1F00;
}
.bx__sub{
  font-size:16px; color:#3D1F00;
  max-width:500px; margin:0 auto; line-height:1.6;
}

/* ── Layout fixe 2 colonnes ── */
.bx__main-layout{
  max-width:1080px;
  margin:0 auto;
  padding:0 28px 60px;
  position:relative; z-index:2;
  display:grid;
  grid-template-columns:320px 1fr;
  gap:24px;
  align-items:start;
}

/* Colonne cartes : scrollable si beaucoup de box depuis Sheets */
.bx__cards-col{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
  max-height:540px;
  overflow-y:auto;
  padding-right:4px;
}
.bx__cards-col::-webkit-scrollbar{ width:4px; }
.bx__cards-col::-webkit-scrollbar-thumb{ background:#DDD; border-radius:2px; }

/* Colonne panneau : hauteur fixe, contenu interne scrollable */
.bx__panel-col{
  height:540px;
  overflow:hidden;
  display:flex;
  flex-direction:column;
}
.bx__panel-col > *{
  flex:1;
  overflow-y:auto;
  min-height:0;
}

/* ── Carte carrée full-bleed ── */
.bx__card2{
  border-radius:18px;
  overflow:hidden;
  border:3px solid transparent;
  cursor:pointer;
  transition:all .28s ease;
  box-shadow:0 4px 18px rgba(44,26,14,.10);
  text-align:left;
  padding:0;
  position:relative;
  aspect-ratio:1/1;
  display:block;
}
.bx__card2:hover{
  transform:translateY(-6px) scale(1.02);
  box-shadow:0 18px 40px rgba(44,26,14,.18);
}
.bx__card2--on{
  border-color:#D4583A;
  box-shadow:0 8px 36px rgba(212,88,58,.35);
  transform:translateY(-4px);
}

/* Image full-cover */
.bx__card2-img{
  position:absolute; inset:0;
}
.bx__card2-img img{
  width:100%; height:100%;
  object-fit:cover; display:block;
  transition:transform .45s ease;
}
.bx__card2:hover .bx__card2-img img{ transform:scale(1.08); }

/* Gradient noir au bas */
.bx__card2-overlay{
  position:absolute; inset:0;
  background:linear-gradient(to bottom,
    transparent 30%,
    rgba(20,8,0,.55) 65%,
    rgba(10,3,0,.82) 100%);
}

/* Badge en haut à gauche */
.bx__card2-badge{
  position:absolute; top:11px; left:11px;
  background:#FFD54F; color:#5D3A00;
  font-size:8.5px; font-weight:800;
  padding:4px 9px; border-radius:999px;
  text-transform:uppercase; letter-spacing:.08em;
  z-index:3;
}

/* Texte en overlay bas */
.bx__card2-body{
  position:absolute; bottom:0; left:0; right:0;
  padding:12px 14px 14px;
  display:flex; flex-direction:column; gap:2px;
  z-index:2;
}
.bx__card2-name{
  font-family:var(--f-display);
  font-size:14px; font-weight:800;
  color:#fff; line-height:1.2;
  text-shadow:0 1px 6px rgba(0,0,0,.4);
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.bx__card2-tagline{
  font-family:var(--f-serif);
  font-style:italic; font-size:10.5px;
  color:rgba(255,255,255,.72); line-height:1.3;
  display:-webkit-box; -webkit-line-clamp:1; -webkit-box-orient:vertical; overflow:hidden;
}
.bx__card2-foot{
  display:flex; align-items:center;
  justify-content:space-between;
  margin-top:6px; padding-top:8px;
  border-top:1px solid rgba(255,255,255,.18);
}
.bx__card2-serves{ font-size:10px; color:rgba(255,255,255,.6); }
.bx__card2-price{
  font-family:var(--f-display);
  font-size:17px; font-weight:800; color:#FFD54F;
  text-shadow:0 1px 4px rgba(0,0,0,.3);
}

/* Carte Compose — fond vert tropical full-bleed */
.bx__card2--compose .bx__card2-compose-bg{
  position:absolute; inset:0;
  background:linear-gradient(140deg, #2A6B4A 0%, #1B4332 100%);
  display:flex; align-items:center; justify-content:center;
}
.bx__card2-count{
  position:absolute; top:12px; right:12px;
  background:#FFD54F; color:#5D3A00;
  font-size:12px; font-weight:800;
  width:26px; height:26px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  z-index:3;
}
.bx__card2--compose.bx__card2--on{
  border-color:#2A6B4A;
  box-shadow:0 8px 32px rgba(42,107,74,.4);
}
/* overlay plus léger pour la carte compose */
.bx__card2--compose .bx__card2-overlay{
  background:linear-gradient(to bottom, transparent 40%, rgba(10,30,18,.85) 100%);
}
.bx__card2-body--compose .bx__card2-price{ color:#A8F0C6; font-size:13px; font-weight:700; }

/* ── Flèche d'activation ── */
.bx__card2-arrow{
  position:absolute; bottom:-14px; left:50%;
  transform:translateX(-50%);
  font-size:12px; color:#D4583A;
  background:#FBF4E8;
  width:28px; height:28px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 2px 8px rgba(44,26,14,.12);
  z-index:2;
}
.bx__card2--compose .bx__card2-arrow{ color:#2A6B4A; }

/* ── Panneau de détail (colonne droite, toujours visible) ── */
.bx__detail{
  display:flex;
  flex-direction:column;
  background:#fff;
  border-radius:22px;
  overflow:hidden;
  box-shadow:0 8px 52px rgba(44,26,14,.13);
  animation:bx-fade .25s ease;
  height:100%;
}
@keyframes bx-fade{
  from{ opacity:0; }
  to{   opacity:1; }
}
.bx__detail-photo{
  position:relative; overflow:hidden;
  flex-shrink:0;
}
.bx__detail-photo img{
  width:100%; height:240px;
  object-fit:cover; display:block;
  transition:transform .4s ease;
}
.bx__detail:hover .bx__detail-photo img{ transform:scale(1.04); }

.bx__detail-body{
  padding:28px 32px;
  display:flex; flex-direction:column;
  flex:1;
}

/* ── Contenu du panneau partagé avec compose ── */
.bx__p-badge{
  position:absolute; top:16px; left:16px;
  background:#FFD54F; color:#5D3A00;
  font-size:10px; font-weight:800;
  padding:5px 14px; border-radius:999px;
  text-transform:uppercase; letter-spacing:.08em;
}
.bx__p-occ{
  font-size:10px; font-weight:700;
  letter-spacing:.2em; text-transform:uppercase;
  color:#D4583A; margin-bottom:10px;
}
.bx__p-name{
  font-family:var(--f-display);
  font-size:clamp(24px,2.2vw,32px);
  color:#2C1A0E;
  margin-bottom:6px; line-height:1.15;
}
.bx__p-tagline{
  font-family:var(--f-serif);
  font-style:italic; font-size:15px;
  color:#8B7355; margin-bottom:22px;
}
.bx__p-contents{
  list-style:none; padding:0;
  margin:0 0 20px; flex:1;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:8px;
  align-content:start;
}
.bx__p-contents li{
  display:flex; flex-direction:column; gap:4px;
  background:linear-gradient(150deg, #FBF6EE 0%, #F5EDD8 100%);
  border-radius:12px;
  padding:14px 12px;
  position:relative; overflow:hidden;
}
.bx__p-contents li::before{
  content:'';
  position:absolute; top:0; left:0; right:0;
  height:3px;
  background:linear-gradient(90deg, #D4583A, #C9841E);
}
.bx__p-num{
  font-family:var(--f-display);
  font-size:10px; font-weight:900;
  color:#D4583A; letter-spacing:.08em;
}
.bx__p-label{
  font-size:12.5px; font-weight:700;
  color:#2C1A0E; line-height:1.3;
}
.bx__p-detail{ font-size:10.5px; color:#8B7355; line-height:1.3; }
.bx__p-footer{
  display:flex; align-items:center;
  justify-content:space-between; gap:16px;
  padding-top:18px; border-top:1px solid #EEE8DC;
}
.bx__p-price-block{ display:flex; flex-direction:column; gap:2px; }
.bx__p-price{
  font-family:var(--f-display);
  font-size:36px; color:#D4583A; line-height:1;
}
.bx__p-meta{ font-size:12px; color:#8B7355; }
.bx__p-cta{
  padding:13px 28px; border-radius:999px;
  background:#D4583A; color:#fff;
  font-size:14px; font-weight:700;
  border:none; cursor:pointer;
  transition:all .22s; white-space:nowrap;
}
.bx__p-cta:hover{
  background:#B83F24; transform:translateY(-2px);
  box-shadow:0 8px 24px rgba(212,88,58,.35);
}
.bx__p-cta--done{ background:#2E7D32; }
.bx__p-cta--done:hover{ background:#1B5E20; box-shadow:none; }

/* ── Panneau Compose ── */
.bx__panel-compose{
  background:#fff;
  border-radius:22px;
  overflow:hidden;
  box-shadow:0 8px 52px rgba(44,26,14,.13);
  animation:bx-fade .25s ease;
  height:100%;
  display:flex;
  flex-direction:column;
}
.bx__compose-intro{
  background:linear-gradient(135deg, #2A6B4A 0%, #1B4332 100%);
  padding:32px 40px; color:#fff;
}
.bx__ci-title{
  font-family:var(--f-display);
  font-size:24px; font-weight:800; margin-bottom:6px;
}
.bx__ci-sub{ font-size:14px; opacity:.82; line-height:1.5; }

.bx__compose-grid{
  padding:22px;
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(150px, 1fr));
  gap:12px;
  flex:1; min-height:0;
  overflow-y:auto;
}
.bx__compose-grid::-webkit-scrollbar{ width:4px; }
.bx__compose-grid::-webkit-scrollbar-thumb{ background:#DDD; border-radius:2px; }

.bx__cp2{
  border:2px solid #EEE8DC;
  border-radius:14px; overflow:hidden;
  cursor:pointer; transition:all .18s;
  display:flex; flex-direction:column;
}
.bx__cp2--on{ border-color:#2A6B4A; background:#F0FAF5; }
.bx__cp2:hover{ border-color:#C9841E; }
.bx__cp2-img{ width:100%; aspect-ratio:1; object-fit:cover; }
.bx__cp2-body{
  padding:10px 12px;
  flex:1; display:flex; flex-direction:column; gap:4px;
}
.bx__cp2-name{ font-size:12px; font-weight:700; color:#2C1A0E; }
.bx__cp2-desc{ font-size:10.5px; color:#8B7355; line-height:1.4; }
.bx__cp2-qty{
  display:flex; align-items:center;
  justify-content:center; gap:6px;
  padding:8px; border-top:1px solid #EEE8DC;
}
.bx__cp2-qty button{
  width:26px; height:26px; border-radius:50%;
  border:1.5px solid #DDD; background:#fff;
  font-size:14px; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  transition:all .15s;
}
.bx__cp2-qty button:hover{ border-color:#D4583A; color:#D4583A; }
.bx__cp2-qty strong{ min-width:18px; text-align:center; font-size:14px; color:#2A6B4A; }
.bx__cp2-add{
  width:32px!important; height:32px!important;
  background:#2A6B4A!important; color:#fff!important;
  border:none!important; font-size:20px!important;
}
.bx__cp2-add:hover{ background:#D4583A!important; }

.bx__compose-form2{
  padding:24px; border-top:1px solid #EEE8DC; background:#FAF6F0;
}
.bx__cf2-ttl{ font-size:14px; font-weight:700; color:#2A6B4A; margin-bottom:16px; }
.bx__form-row{ display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:10px; }
.bx__input2{
  width:100%; padding:12px 15px;
  border-radius:10px; border:1.5px solid #DDD;
  font-size:14px; background:#fff;
  outline:none; transition:border-color .18s; box-sizing:border-box;
}
.bx__input2:focus{ border-color:#2A6B4A; }
.bx__submit2{
  width:100%; padding:15px;
  border-radius:999px; border:none;
  background:#2A6B4A; color:#fff;
  font-size:15px; font-weight:700;
  cursor:pointer; transition:all .22s; margin-top:4px;
}
.bx__submit2:hover{ background:#1B4332; transform:translateY(-1px); }

/* ── Done state ── */
.bx__done{ text-align:center; padding:120px 32px; }
.bx__done-mark{
  width:72px; height:72px; border-radius:50%;
  background:#2A6B4A; color:#fff; font-size:32px;
  display:flex; align-items:center; justify-content:center;
  margin:0 auto 20px;
}
.bx__done h3{ font-family:var(--f-display); font-size:28px; margin-bottom:12px; color:#2C1A0E; }
.bx__done p{ color:#6B5B3A; max-width:400px; margin:0 auto 24px; line-height:1.6; }

/* ── Responsive ── */
@media(max-width:900px){
  .bx__main-layout{ grid-template-columns:1fr; }
  .bx__cards-col{ grid-template-columns:repeat(2,1fr); max-height:none; }
  .bx__panel-col{ position:static; }
  .bx__compose-grid{ grid-template-columns:repeat(3,1fr); }
}
@media(max-width:560px){
  .bx__main-layout{ padding:0 16px 48px; }
  .bx__cards-col{ grid-template-columns:repeat(2,1fr); gap:10px; }
  .bx__compose-grid{ grid-template-columns:repeat(2,1fr); }
}

.builder{
  display:grid;
  grid-template-columns: 1fr 1.2fr;
  gap:48px;
  align-items:start;
}
.builder__people{
  background:var(--paper);
  padding:32px;
  border-radius:var(--r);
  box-shadow:var(--shadow-s);
  grid-column:1/-1;
  display:grid;
  grid-template-columns: auto 1fr;
  gap:24px 36px;
  align-items:center;
}
.builder__people label{
  font-size:12px;letter-spacing:.15em;text-transform:uppercase;
  color:var(--ink-soft);font-weight:500;
}
.builder__people-row{
  display:flex;align-items:baseline;gap:10px;
}
.builder__people-row button{
  width:36px;height:36px;border-radius:50%;
  background:var(--cream-2);
  font-size:18px;
  transition:all .2s;
}
.builder__people-row button:hover{background:var(--ink);color:var(--cream)}
.builder__people-row strong{font-family:var(--f-display);font-size:48px;line-height:1}
.builder__people-row span{color:var(--ink-soft)}
.builder__people input[type="range"]{
  grid-column:1/-1;
  appearance:none;width:100%;height:4px;
  background:var(--line);border-radius:2px;
  margin-top:4px;
}
.builder__people input[type="range"]::-webkit-slider-thumb{
  appearance:none;width:20px;height:20px;border-radius:50%;
  background:var(--coral); cursor:pointer;
  box-shadow:0 2px 6px rgba(0,0,0,.15);
}
.builder__people input[type="range"]::-moz-range-thumb{
  width:20px;height:20px;border-radius:50%;
  background:var(--coral);cursor:pointer;border:none;
}
.builder__people-marks{
  display:flex;justify-content:space-between;
  grid-column:1/-1;
  font-size:11px;color:var(--ink-soft);
  margin-top:-8px;
}

.builder__items{display:flex;flex-direction:column;gap:12px}
.builder-item{
  display:grid;
  grid-template-columns: 70px 1fr auto;
  gap:16px;align-items:center;
  padding:14px;
  background:var(--paper);
  border-radius:14px;
  border:1px solid transparent;
  transition:all .2s;
}
.builder-item--on{border-color:var(--coral);background:#fff}
.builder-item img{width:70px;height:70px;object-fit:cover;border-radius:10px}
.builder-item__txt h4{font-family:var(--f-display);font-size:15px;letter-spacing:-.01em;font-weight:400}
.builder-item__txt p{font-size:13px;color:var(--ink-soft);margin-top:2px}
.builder-item__txt p span{font-size:11px}
.builder-item__qty{
  display:flex;align-items:center;gap:0;
  background:var(--cream-2);border-radius:999px;
}
.builder-item__qty button{width:32px;height:32px;font-size:16px}
.builder-item__qty button:hover{color:var(--coral)}
.builder-item__qty span{padding:0 10px;font-weight:600;min-width:28px;text-align:center;font-size:14px}

.builder__summary{
  background:var(--ink);
  color:var(--cream);
  border-radius:var(--r);
  padding:32px;
  position:sticky; top:96px;
}
.builder__sum-row{
  display:flex;justify-content:space-between;align-items:baseline;
  padding:8px 0;
  font-size:14px;color:rgba(255,255,255,.7);
}
.builder__sum-row strong{color:var(--cream);font-weight:600}
.builder__summary hr{margin:14px 0;border:none;border-top:1px solid rgba(255,255,255,.15)}
.builder__total{
  display:flex;justify-content:space-between;align-items:baseline;
  margin-bottom:20px;
}
.builder__total span{font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.7)}
.builder__total strong{font-family:var(--f-display);font-size:42px;color:var(--sun)}
.builder__summary .btn--primary{background:var(--coral)}
.builder__summary .btn--primary:hover{background:#fff;color:var(--ink)}
.builder__quote{
  display:block;text-align:center;
  font-size:13px;color:rgba(255,255,255,.7);
  margin-top:14px;
  text-decoration:underline;
}

/* ============================================================
   SAUCE
============================================================ */
.section--sauce{
  background:#0E0A07;
  max-width:none; margin:0; padding:0;
  position:relative; overflow:hidden;
}

/* ── Layout sauce v2 ── */
.sauce2{
  display:grid;
  grid-template-columns: 55% 45%;
  min-height:600px;
}
.sauce2__img-wrap{
  position:relative;
  overflow:hidden;
}
.sauce2__img-wrap img{
  width:100%; height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
}
/* fondu droite pour fusionner avec le fond */
.sauce2__img-wrap::after{
  content:'';
  position:absolute; inset:0;
  background:linear-gradient(to right, transparent 60%, #0E0A07 100%);
}

/* COPIE texte droite */
.sauce2__copy{
  display:flex; flex-direction:column; justify-content:center;
  padding:80px 56px 80px 48px;
  position:relative; z-index:1;
}
.sauce2__top-row{
  display:flex; align-items:center; justify-content:space-between;
  margin-bottom:28px; gap:12px; flex-wrap:wrap;
}
.sauce2__eyebrow{
  font-size:11px; font-weight:700; letter-spacing:.18em;
  color:rgba(255,255,255,.5); text-transform:uppercase;
}
.sauce2__badges{
  display:flex; gap:10px;
}
.sauce2__badge{
  display:inline-flex; align-items:center; gap:5px;
  font-size:10px; font-weight:600; letter-spacing:.1em;
  color:rgba(255,255,255,.6); text-transform:uppercase;
  border:1px solid rgba(255,255,255,.2);
  border-radius:999px; padding:4px 10px;
}
.sauce2__title{
  font-family:var(--f-display);
  font-size:clamp(56px, 7vw, 88px);
  font-weight:900; letter-spacing:-.02em;
  color:var(--coral);
  line-height:.95;
  margin-bottom:16px;
}
.sauce2__tagline{
  font-family:var(--f-serif);
  font-style:italic;
  font-size:22px;
  color:rgba(255,255,255,.75);
  margin-bottom:32px;
}
.sauce2__list{
  list-style:none; padding:0; margin:0 0 36px;
  display:flex; flex-direction:column; gap:14px;
}
.sauce2__list li{
  font-size:15px;
  color:rgba(255,255,255,.65);
  line-height:1.55;
  padding-left:18px;
  position:relative;
}
.sauce2__list li::before{
  content:'•';
  position:absolute; left:0;
  color:var(--coral);
  font-weight:700;
}
.sauce2__exclusive{
  color:var(--coral);
  font-weight:600;
}
.sauce2__buy{
  display:flex; align-items:center; gap:20px; flex-wrap:wrap;
  margin-bottom:28px;
  padding:24px 0;
  border-top:1px solid rgba(255,255,255,.08);
  border-bottom:1px solid rgba(255,255,255,.08);
}
.sauce2__prices{
  display:flex; align-items:baseline; gap:8px;
}
.sauce2__price-tag{
  font-size:12px; color:rgba(255,255,255,.45);
  text-transform:uppercase; letter-spacing:.1em;
}
.sauce2__price{
  font-family:var(--f-display);
  font-size:38px; font-weight:900;
  color:var(--sun);
}
.sauce2__unit{
  font-size:13px; color:rgba(255,255,255,.4);
}
.sauce2__price-secondary{
  font-size:14px; color:rgba(255,255,255,.5);
  display:flex; align-items:center; gap:4px;
}
.sauce2__price-secondary strong{
  font-size:17px; font-weight:700; color:rgba(255,255,255,.8);
}
.sauce2__cta{
  margin-left:auto;
  display:inline-flex; align-items:center;
  padding:14px 28px;
  border:1.5px solid rgba(255,255,255,.35);
  border-radius:4px;
  font-size:12px; font-weight:700;
  letter-spacing:.15em; text-transform:uppercase;
  color:#fff; background:transparent;
  cursor:pointer;
  transition:all .2s;
}
.sauce2__cta:hover{
  background:var(--coral); border-color:var(--coral);
}
.sauce2__pairs{
  display:flex; flex-direction:column; gap:4px;
  font-size:13px;
}
.sauce2__pairs span{
  color:rgba(255,255,255,.35);
  text-transform:uppercase; letter-spacing:.15em; font-weight:500;
}
.sauce2__pairs em{
  font-family:var(--f-serif);
  font-style:italic;
  color:rgba(255,255,255,.5);
  font-size:15px;
}

@media(max-width:900px){
  .sauce2{ grid-template-columns:1fr; }
  .sauce2__img-wrap{ height:320px; }
  .sauce2__img-wrap::after{ background:linear-gradient(to bottom, transparent 50%, #0E0A07 100%); }
  .sauce2__copy{ padding:48px 24px 64px; }
  .sauce2__title{ font-size:56px; }
}

/* ============================================================
   EVENTS
============================================================ */
.events{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:14px;
}
.event{
  padding:36px 28px 32px;
  background:var(--paper);
  border-radius:var(--r);
  border:1px solid var(--line);
  position:relative;
  transition:all .25s;
  display:flex;flex-direction:column;gap:8px;
}
.event:hover{
  transform:translateY(-4px);
  border-color:var(--coral);
  box-shadow:var(--shadow-m);
}
.event__num{
  font-family:var(--f-display);
  font-size:13px;
  color:var(--ink-soft);
  letter-spacing:.1em;
}
.event__icon{
  font-size:42px;
  margin:8px 0 12px;
  line-height:1;
}
.event h3{font-family:var(--f-display);font-size:22px;letter-spacing:-.01em;font-weight:400}
.event p{color:var(--ink-soft);font-size:14px;line-height:1.5}
.event a{
  margin-top:14px;
  color:var(--coral);
  font-size:14px;font-weight:600;
}

/* ============================================================
   RESERVATION
============================================================ */
.section--reserve{
  position:relative; overflow:hidden;
  background-color:var(--cream-2);
  background-image:
    linear-gradient(to bottom, transparent 0%, var(--cream-2) 48%),
    url('../images/carte-banner.webp');
  background-size:cover;
  background-position:center top;
  max-width:none; margin:0;
  padding:120px 32px;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.reserve{max-width:920px;margin:0 auto}
.reserve__head{text-align:center;margin-bottom:48px}

.reserve__stepper{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:8px;
  margin-bottom:32px;
  background:var(--paper);
  padding:18px;
  border-radius:14px;
}
.step{
  display:flex;align-items:center;gap:10px;
  padding:10px 14px;
  border-radius:10px;
  font-size:14px;
  color:var(--ink-soft);
  transition:all .2s;
}
.step__num{
  width:28px;height:28px;border-radius:50%;
  background:var(--cream-2);color:var(--ink-soft);
  display:grid;place-items:center;font-weight:700;font-size:13px;
  transition:all .2s;
}
.step--on{background:var(--cream-2);color:var(--ink)}
.step--on .step__num{background:var(--ink);color:var(--cream)}
.step--done .step__num{background:var(--palm);color:#fff}
.step--done{color:var(--palm-d)}

.reserve__body{
  background:var(--paper);
  border-radius:var(--r);
  padding:40px;
  box-shadow:var(--shadow-s);
}
.rstep{display:flex;flex-direction:column;gap:18px}
.lbl{
  font-size:12px;letter-spacing:.15em;
  text-transform:uppercase;
  color:var(--ink-soft);
  font-weight:600;
  margin-bottom:6px;
  display:block;
}
.rstep input, .rstep textarea, .rstep select{
  width:100%;
  padding:14px 16px;
  border:1px solid var(--line);
  border-radius:12px;
  background:var(--cream);
  transition:border-color .2s;
}
.rstep input:focus, .rstep textarea:focus{outline:none;border-color:var(--coral)}
.rstep textarea{resize:vertical;font-family:inherit}
.rstep__row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.rstep__types{display:flex;flex-wrap:wrap;gap:8px}
.type-pill{
  padding:12px 20px;border-radius:999px;
  background:var(--cream-2);
  font-weight:500;font-size:14px;
  transition:all .2s;
  border:1px solid transparent;
}
.type-pill:hover{border-color:var(--line)}
.type-pill--on{background:var(--ink);color:var(--cream)}
.num-input{
  display:flex;align-items:center;
  background:var(--cream);border:1px solid var(--line);border-radius:12px;
  overflow:hidden;
}
.num-input button{width:48px;height:48px;font-size:18px;color:var(--ink-soft)}
.num-input button:hover{color:var(--coral)}
.num-input input{
  flex:1;text-align:center;border:none;
  background:transparent;font-weight:600;
}

.rstep__products{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(160px,1fr));
  gap:10px;
}
.prod-pick{
  position:relative;
  padding:12px;background:var(--cream-2);
  border-radius:12px;
  text-align:left;
  border:2px solid transparent;
  transition:all .2s;
  display:flex;flex-direction:column;gap:6px;
  overflow:hidden;
}
.prod-pick img{
  width:100%; aspect-ratio:1.3;
  object-fit:cover;border-radius:8px;
}
.prod-pick__name{
  font-family:var(--f-display);
  font-size:13px;
  letter-spacing:-.01em;
  line-height:1.15;
  font-weight:400;
}
.prod-pick__price{font-size:12px;color:var(--ink-soft);font-weight:600}
.prod-pick__check{
  position:absolute;top:18px;right:18px;
  width:26px;height:26px;border-radius:50%;
  background:var(--coral);color:#fff;
  display:grid;place-items:center;font-size:14px;
  transform:scale(0);transition:transform .2s;
}
.prod-pick--on{border-color:var(--coral);background:var(--paper)}
.prod-pick--on .prod-pick__check{transform:scale(1)}
.rstep__hint{font-size:13px;color:var(--ink-soft);font-style:italic}

.rstep--review h3{font-family:var(--f-display);font-size:22px;font-weight:400;letter-spacing:-.01em;margin-bottom:18px}
/* ── Étape 1 : sélection produits ── */
.rstep--sel{ display:flex; flex-direction:column; gap:0 }
.rprod__filters{
  display:flex; gap:8px; flex-wrap:wrap; margin-bottom:20px;
}
.rprod__chip{
  padding:6px 16px; border-radius:999px;
  border:1.5px solid var(--line);
  font-size:13px; font-weight:500; cursor:pointer;
  background:transparent; color:var(--ink-soft);
  transition:background .15s, color .15s, border-color .15s;
}
.rprod__chip--on{ background:var(--ink); color:var(--cream); border-color:var(--ink); }
.rprod__layout{
  display:grid; grid-template-columns:1fr 270px; gap:16px; align-items:start;
}
.rprod__grid{
  display:grid; grid-template-columns:repeat(2,1fr); gap:10px;
  max-height:480px; overflow-y:auto; padding-right:2px;
}
.rprod__card{
  border:1.5px solid var(--line); border-radius:12px;
  overflow:hidden; display:flex; flex-direction:column;
  background:var(--paper); transition:border-color .15s;
}
.rprod__card--on{ border-color:var(--palm); }
.rprod__card-img{ width:100%; height:90px; object-fit:cover; display:block; }
.rprod__body{ padding:8px 10px 4px; flex:1; display:flex; flex-direction:column; gap:2px; }
.rprod__name{ font-size:12.5px; font-weight:600; color:var(--ink); line-height:1.3; }
.rprod__price{ font-size:11.5px; color:var(--ink-soft); }
.rprod__add{
  margin:6px 10px 10px; padding:7px;
  border:1.5px solid var(--palm); border-radius:8px;
  font-size:12.5px; font-weight:600; color:var(--palm-d);
  cursor:pointer; background:transparent; transition:background .15s, color .15s;
}
.rprod__add:hover{ background:var(--palm); color:#fff; }
.rprod__add--remove{
  background:var(--palm); color:#fff; border-color:var(--palm);
}
.rprod__add--remove:hover{ background:var(--palm-d); border-color:var(--palm-d); }
.rprod__qty{
  display:flex; align-items:center; justify-content:space-between;
  margin:6px 10px 10px; background:var(--palm-soft); border-radius:8px; padding:4px 8px;
}
.rprod__qty button{
  width:26px; height:26px; border-radius:6px;
  background:var(--palm); color:#fff; font-size:16px; font-weight:700;
  display:grid; place-items:center; cursor:pointer; border:none;
}
.rprod__qty-val{ font-size:14px; font-weight:700; color:var(--ink); min-width:20px; text-align:center; }
/* Recap panel */
.rprod__recap{
  position:sticky; top:80px;
  background:#0E1C14; border-radius:16px;
  padding:20px; color:#F5EDE2;
}
.rprod__recap-title{
  font-family:var(--f-display); font-size:13px; letter-spacing:.08em;
  text-transform:uppercase; color:#DFAC59; margin-bottom:16px;
}
.rprod__recap-empty{
  font-size:13px; color:rgba(245,237,226,.35); text-align:center; padding:24px 0;
  line-height:1.6;
}
.rprod__recap-list{ list-style:none; display:flex; flex-direction:column; gap:10px; }
.rprod__recap-item{ display:flex; align-items:center; gap:10px; }
.rprod__recap-item img{ width:38px; height:38px; border-radius:7px; object-fit:cover; flex-shrink:0; }
.rprod__recap-item-info{ flex:1; min-width:0; }
.rprod__recap-item-name{ font-size:12px; font-weight:600; color:#F5EDE2; line-height:1.3; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.rprod__recap-item-qty{ display:flex; align-items:center; gap:6px; margin-top:4px; }
.rprod__recap-item-qty button{ width:20px; height:20px; border-radius:5px; background:rgba(255,255,255,.12); color:#F5EDE2; font-size:13px; display:grid; place-items:center; cursor:pointer; border:none; }
.rprod__recap-item-qty span{ font-size:12px; font-weight:700; min-width:14px; text-align:center; }
.rprod__recap-del{ color:rgba(245,237,226,.25); font-size:17px; line-height:1; cursor:pointer; background:none; border:none; flex-shrink:0; }
.rprod__recap-del:hover{ color:var(--coral); }
.rprod__recap-footer{ margin-top:14px; padding-top:12px; border-top:1px solid rgba(255,255,255,.1); display:flex; justify-content:space-between; align-items:center; }
.rprod__recap-count{ font-size:14px; font-weight:700; color:#DFAC59; }
.rprod__recap-hint{ font-size:11px; color:rgba(245,237,226,.4); line-height:1.4; max-width:130px; text-align:right; }
@media(max-width:760px){
  .rprod__layout{ grid-template-columns:1fr; }
  .rprod__recap{ position:static; margin-bottom:12px; }
  .rprod__grid{ max-height:340px; }
}

.review{display:grid;grid-template-columns:160px 1fr;gap:12px 24px;font-size:14px}
.review dt{color:var(--ink-soft);text-transform:uppercase;letter-spacing:.1em;font-size:11.5px;font-weight:600;padding-top:4px}
.review dd{color:var(--ink)}

/* ── Mode de réception (radio visuel) ── */
.reception-pick{
  display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:24px;
}
.rcp-card{
  display:flex; flex-direction:column; align-items:center; gap:8px;
  padding:20px 16px; border-radius:14px;
  border:2px solid var(--line); cursor:pointer;
  text-align:center; transition:border-color .15s, background .15s, transform .15s;
  user-select:none;
}
.rcp-card:hover{ border-color:var(--palm); background:var(--cream); transform:translateY(-2px); }
.rcp-card--on{ border-color:var(--palm); background:oklch(0.96 0.03 145); }
.rcp-card__icon{ width:32px; height:32px; color:var(--palm-d); display:block; }
.rcp-card--on .rcp-card__icon{ color:var(--palm); }
.rcp-card__label{ font-size:14px; font-weight:700; color:var(--ink); }
.rcp-card__desc{ font-size:12px; color:var(--ink-soft); line-height:1.4; }

/* ── Services optionnels ── */
.rstep__services{
  display:flex; flex-direction:column; gap:10px; margin-bottom:20px;
}
.service-check{
  display:flex; align-items:center; gap:14px;
  padding:14px 16px; border-radius:12px;
  border:1.5px solid var(--line);
  cursor:pointer; transition:border-color .15s, background .15s;
  user-select:none;
}
.service-check:hover{ border-color:var(--palm); background:var(--cream); }
.service-check--on{ border-color:var(--palm); background:oklch(0.96 0.03 145); }
.service-check__icon{ width:24px; height:24px; flex-shrink:0; color:var(--palm-d); }
.service-check--on .service-check__icon{ color:var(--palm); }
.service-check__text{ flex:1; }
.service-check__text strong{ display:block; font-size:14px; font-weight:600; color:var(--ink); }
.service-check__text span{ font-size:12px; color:var(--ink-soft); }
.service-check__box{
  width:22px; height:22px; border-radius:6px; flex-shrink:0;
  border:2px solid var(--line); display:grid; place-items:center;
  font-size:12px; font-weight:700; color:#fff;
  background:transparent; transition:background .15s, border-color .15s;
}
.service-check--on .service-check__box{
  background:var(--palm); border-color:var(--palm);
}
.services-section-label{
  font-size:11.5px; font-weight:600; letter-spacing:.12em; text-transform:uppercase;
  color:var(--ink-soft); margin:24px 0 10px;
}

.reserve__nav{
  display:flex;justify-content:space-between;gap:12px;
  margin-top:32px;padding-top:28px;
  border-top:1px solid var(--line);
}
.reserve__nav .btn:only-child{margin-left:auto}

.reserve__done{
  text-align:center;
  padding:64px 40px;
  background:var(--paper);
  border-radius:var(--r);
  box-shadow:var(--shadow-s);
}
.reserve__done-mark{
  width:80px;height:80px;border-radius:50%;
  background:var(--palm);color:#fff;
  display:grid;place-items:center;
  font-size:42px;
  margin:0 auto 24px;
  animation:popIn .4s cubic-bezier(.2,.9,.3,1.4);
}
.reserve__done h3{font-family:var(--f-display);font-size:30px;font-weight:400;margin-bottom:14px}
.reserve__done p{color:var(--ink-soft);max-width:480px;margin:0 auto 28px;line-height:1.6}

/* ============================================================
   GALERIE
============================================================ */
.section--gallery{ position:relative; overflow:hidden; }
.gallery{
  display:grid;
  grid-template-columns:repeat(6, 1fr);
  grid-auto-rows:140px;
  gap:8px;
}
.gallery__item{
  position:relative;overflow:hidden;border-radius:12px;
  cursor:pointer;background:var(--cream-2);
}
.gallery__item img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.gallery__item:hover img{transform:scale(1.08)}
.gallery__item--0{grid-row:span 2;grid-column:span 2}
.gallery__item--1{grid-row:span 1}
.gallery__item--2{grid-row:span 2}
.gallery__item--3{grid-row:span 1;grid-column:span 2}
.gallery__item--4{grid-row:span 2}
.gallery__item--5{grid-row:span 1}

/* ============================================================
   TÉMOIGNAGES
============================================================ */
.section--testi{}
.testi{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}
.testi__card{
  background:var(--paper);
  border-radius:var(--r);
  padding:32px 28px;
  border:1px solid var(--line);
  display:flex;flex-direction:column;gap:14px;
}
.testi__stars{color:var(--sun);font-size:18px;letter-spacing:2px}
.testi__quote{
  font-family:var(--f-serif);
  font-size:19px;
  line-height:1.5;
  color:var(--ink);
  font-style:italic;
  font-weight:300;
  flex:1;
}
.testi__who{display:flex;flex-direction:column;gap:2px;margin-top:8px;padding-top:14px;border-top:1px solid var(--line)}
.testi__who strong{font-family:var(--f-display);font-size:15px;letter-spacing:-.01em;font-weight:400}
.testi__who span{font-size:13px;color:var(--ink-soft)}

/* ============================================================
   CONTACT
============================================================ */
.section--contact{
  background:linear-gradient(180deg, var(--palm-d) 0%, oklch(0.18 0.06 150) 100%);
  max-width:none; margin:0;
  padding:120px 32px;
  position:relative;
  overflow:hidden;
}
.contact__leaf{
  position:absolute;
  width:600px;height:600px;
  color:var(--cream);
  opacity:.05;
  top:-100px; right:-200px;
  transform:rotate(35deg);
}
.contact{
  max-width:var(--w-content);
  margin:0 auto;
  display:grid;
  grid-template-columns: 1.1fr 1fr;
  gap:64px;
  align-items:center;
  position:relative;
}
.contact__copy h2{margin-bottom:24px}
.contact__copy h2 .hero__title-script{
  font-size:.42em;color:var(--cream);
  display:inline-block;margin-bottom:0;
  margin-right:14px;
  margin-left:8px;
}
.contact__lede{
  font-size:18px;
  color:rgba(252,250,247,.75);
  line-height:1.6;
  max-width:440px;
}
.contact__cards{display:grid;gap:14px}
.contact__card{
  background:rgba(252,250,247,.06);
  backdrop-filter:blur(10px);
  border:1px solid rgba(252,250,247,.1);
  border-radius:18px;
  padding:24px 28px;
  display:flex;flex-direction:column;gap:6px;
  transition:all .2s;
  color:var(--cream);
}
.contact__card:hover{background:rgba(252,250,247,.12);transform:translateY(-2px)}
.contact__card-label{
  font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--sun);
  font-weight:600;
}
.contact__card strong{
  font-family:var(--f-display);
  font-size:24px;
  letter-spacing:-.01em;
  font-weight:400;
  line-height:1.1;
}
.contact__card-hint{font-size:13px;color:rgba(252,250,247,.5)}

/* ============================================================
   FOOTER
============================================================ */
.footer{
  background:var(--ink);
  color:var(--cream);
  padding:64px 32px 28px;
}
.footer__top{
  max-width:var(--w-content);margin:0 auto;
  display:grid;
  grid-template-columns: 1.2fr 2fr;
  gap:64px;
  padding-bottom:48px;
  border-bottom:1px solid rgba(255,255,255,.1);
}
.footer__brand{display:flex;flex-direction:column;gap:4px}
.footer__brand-script{font-family:var(--f-script);font-size:32px;color:rgba(255,255,255,.7);line-height:1;margin-left:6px}
.footer__brand-bold{font-family:var(--f-display);font-size:22px;letter-spacing:.04em;text-transform:uppercase;color:var(--cream);line-height:1}
.footer__brand p{color:rgba(255,255,255,.5);font-size:14px;margin-top:16px;line-height:1.5}
.footer__cols{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:32px;
}
.footer__cols h5{
  font-family:var(--f-body);
  font-size:12px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--sun);
  margin-bottom:16px;font-weight:600;
}
.footer__cols a{
  display:block;
  font-size:14px;
  color:rgba(255,255,255,.7);
  padding:5px 0;
}
.footer__cols a:hover{color:var(--cream)}
.footer__bottom{
  max-width:var(--w-content);margin:0 auto;
  display:flex;justify-content:space-between;
  padding-top:24px;
  font-size:13px;
  color:rgba(255,255,255,.4);
}

/* ============================================================
   CART DRAWER
============================================================ */
.drawer-back{
  position:fixed;inset:0;background:rgba(20,15,10,.45);
  backdrop-filter:blur(2px);
  z-index:90;
  opacity:0;pointer-events:none;
  transition:opacity .25s;
}
.drawer-back--on{opacity:1;pointer-events:auto}
.drawer{
  position:fixed;top:0;right:0;height:100vh;
  width:min(440px, 96vw);
  background:var(--paper);
  z-index:91;
  transform:translateX(100%);
  transition:transform .35s cubic-bezier(.2,.9,.3,1);
  display:flex;flex-direction:column;
  box-shadow:var(--shadow-l);
}
.drawer--on{transform:translateX(0)}
.drawer__head{
  display:flex;justify-content:space-between;align-items:center;
  padding:22px 24px;
  border-bottom:1px solid var(--line);
}
.drawer__head h3{font-family:var(--f-display);font-size:22px;font-weight:400;letter-spacing:-.01em}
.drawer__head button{font-size:28px;color:var(--ink-soft);width:36px;height:36px;border-radius:50%;transition:background .2s}
.drawer__head button:hover{background:var(--cream-2)}
.drawer__empty{
  padding:60px 24px;text-align:center;flex:1;
  display:flex;flex-direction:column;justify-content:center;gap:16px;
  align-items:center;
}
.drawer__empty-emoji{font-size:48px;margin-bottom:8px}
.drawer__empty p{color:var(--ink-soft)}
.drawer__list{
  list-style:none;flex:1;overflow:auto;
  padding:16px 16px 0;
}
.drawer__list li{
  display:grid;
  grid-template-columns:60px 1fr auto;
  gap:14px;align-items:center;
  padding:14px 8px;
  border-bottom:1px solid var(--line);
}
.drawer__list img{width:60px;height:60px;object-fit:cover;border-radius:10px}
.drawer__list strong{font-family:var(--f-display);font-size:14px;font-weight:400;letter-spacing:-.01em;display:block;line-height:1.2}
.drawer__list > li > div > span{font-size:12px;color:var(--ink-soft);display:block;margin:4px 0 8px}
.drawer__list em{font-family:var(--f-display);font-style:normal;font-size:15px;font-weight:400}
.drawer__foot{
  padding:20px 24px 24px;
  border-top:1px solid var(--line);
  background:var(--cream-2);
}
.drawer__total{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px}
.drawer__total span{font-size:13px;color:var(--ink-soft);letter-spacing:.05em;text-transform:uppercase}
.drawer__total strong{font-family:var(--f-display);font-size:28px;font-weight:400}
.drawer__hint{font-size:12px;color:var(--ink-soft);margin-bottom:8px}
.drawer__min-warn{
  font-size:12px;font-weight:600;
  color:#E06428;
  background:rgba(224,100,40,.1);
  border:1px solid rgba(224,100,40,.25);
  border-radius:8px;
  padding:8px 12px;
  margin-bottom:12px;
}
.drawer__clear{
  display:block;width:100%;
  font-size:12px;color:var(--ink-soft);
  text-decoration:underline;
  padding:12px 0 0;
}

/* ── Drawer checkout form ── */
.drawer__form{
  padding:24px;
  display:flex; flex-direction:column; gap:16px;
  overflow-y:auto;
}
.df__field{ display:flex; flex-direction:column; gap:6px; }
.df__field label{ font-size:12px; font-weight:600; color:var(--ink); letter-spacing:.04em; text-transform:uppercase; }
.df__field input,
.df__field textarea{
  border:1.5px solid var(--line);
  border-radius:10px;
  padding:11px 14px;
  font-size:14px; font-family:var(--f-body);
  background:#fff; color:var(--ink);
  transition:border-color .2s;
  outline:none; resize:vertical;
}
.df__field input:focus,
.df__field textarea:focus{ border-color:var(--coral); }
.df__recap{
  display:flex; justify-content:space-between; align-items:center;
  background:var(--cream-2); border-radius:10px;
  padding:12px 16px;
  font-size:13px; color:var(--ink-soft);
}
.df__recap strong{ font-family:var(--f-display); font-size:22px; font-weight:400; color:var(--ink); }
.df__back{ margin-top:4px; }

/* ── Choix réception Click&Collect / Livraison ── */
.df__recep-row{
  display:grid; grid-template-columns:1fr 1fr; gap:10px;
  margin-top:4px;
}
.df__recep-card{
  display:flex; flex-direction:column; align-items:center; gap:4px;
  padding:14px 10px;
  border:2px solid rgba(245,237,226,.15);
  border-radius:12px;
  background:rgba(245,237,226,.04);
  cursor:pointer;
  transition:border-color .18s, background .18s;
  color:var(--ink);
  text-align:center;
}
.df__recep-card:hover{
  border-color:rgba(245,237,226,.35);
  background:rgba(245,237,226,.08);
}
.df__recep-card--on{
  border-color:var(--coral,#E06428);
  background:rgba(224,100,40,.08);
}
.df__recep-icon{ font-size:22px; line-height:1; }
.df__recep-card strong{ font-size:13px; font-weight:700; display:block; }
.df__recep-card small{ font-size:11px; color:var(--ink-soft); display:block; }
.drawer__done-mark{
  width:56px; height:56px; border-radius:50%;
  background:linear-gradient(135deg,#2A6B4A,#4EC87A);
  color:#fff; font-size:26px;
  display:flex; align-items:center; justify-content:center;
  margin:0 auto 16px;
}
.drawer__empty h4{ font-family:var(--f-display); font-size:20px; margin-bottom:8px; }

/* ============================================================
   RESPONSIVE
============================================================ */
@media (max-width: 980px){
  .nav__links{
    position:absolute;top:100%;right:0;
    background:var(--paper);
    flex-direction:column;
    padding:24px;width:280px;gap:16px;
    box-shadow:var(--shadow-m);
    border-radius:0 0 0 16px;
    transform:translateX(100%);transition:transform .25s;
    align-items:stretch;
  }
  .nav__links--open{transform:translateX(0)}
  .nav__burger{display:flex}
  .hero__inner{grid-template-columns:1fr;gap:40px}
  .hero__media{height:380px}
  .hero{padding:120px 24px 40px}
  .modal__panel{grid-template-columns:1fr;max-height:88vh;overflow:auto}
  .modal__img{min-height:240px}
  .builder{grid-template-columns:1fr}
  .builder__summary{position:static}
  .sauce{grid-template-columns:1fr;gap:40px}
  .events{grid-template-columns:repeat(2,1fr)}
  .gallery{grid-template-columns:repeat(3,1fr);grid-auto-rows:110px}
  .gallery__item--0{grid-column:span 2}
  .gallery__item--3{grid-column:span 1}
  .testi{grid-template-columns:1fr}
  .contact{grid-template-columns:1fr;gap:40px}
  .footer__top{grid-template-columns:1fr;gap:40px}
  .footer__cols{grid-template-columns:1fr 1fr}
  .reserve__stepper{grid-template-columns:repeat(2,1fr)}
  .rstep__row{grid-template-columns:1fr}
  .review{grid-template-columns:1fr;gap:4px 0}
  .review dt{padding-top:14px}
  .section{padding:80px 24px}
  .section--carte{padding:0;max-width:none;margin:0}
  .section--events{padding:0 0 60px;max-width:none;margin:0}
  .section--box, .section--reserve, .section--contact, .section--sauce{padding-left:0;padding-right:0;padding-top:80px;padding-bottom:80px}
  .section--box > .section__head, .section--box > .builder{padding-left:24px;padding-right:24px}
  .builder__people{grid-template-columns:1fr}
  .footer__bottom{flex-direction:column;gap:8px;text-align:center}
  .hero__marquee-track{font-size:24px}
  .hero__badge{width:100px;height:100px;right:-4%}
  .hero__badge-num{font-size:28px}
  .hero__badge-txt{font-size:11px}
}
@media (max-width: 560px){
  body{font-size:16px}
  .nav{padding:14px 20px}
  .hero__cta{flex-direction:column;align-items:stretch}
  .hero__cta .btn{width:100%}
  .hero__stats{gap:20px}
  .hero__stats strong{font-size:24px}
  .footer__cols{grid-template-columns:1fr}
  .gallery{grid-template-columns:repeat(2,1fr)}
  .gallery__item--0, .gallery__item--3{grid-column:span 2}
}

/* ============================================================
   HERO — Carte des Antilles (fond crème)
============================================================ */
.hero3{
  position:relative;
  min-height:100vh;
  background:#F5EDE2;
  overflow:hidden;
  display:flex;
  flex-direction:column;
}

/* ── Grille principale ── */
.hero3__row{
  position:relative;
  z-index:3;
  flex:1;
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:center;
  min-height:calc(100vh - 60px);
}

/* ── GAUCHE : texte ── */
.hero3__copy{
  padding:120px 48px 80px 72px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}

/* Entrées séquentielles */
.hero3__copy > *{
  opacity:0;
  transform:translateY(20px);
  animation:hero3In .7s cubic-bezier(.2,.9,.3,1) forwards;
}
.hero3__copy .hero3__eye    { animation-delay:.1s }
.hero3__copy .hero3__welcome{ animation-delay:.16s }
.hero3__copy .hero3__title  { animation-delay:.22s }
.hero3__copy .hero3__rule   { animation-delay:.34s }
.hero3__copy .hero3__sub    { animation-delay:.44s }
.hero3__copy .hero3__ctas   { animation-delay:.54s }
.hero3__copy .hero3__stats  { animation-delay:.64s }
@keyframes hero3In{ to{ opacity:1; transform:translateY(0) } }

.hero3__eye{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-size:10.5px;
  font-weight:700;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:#C41E1E;
  margin-bottom:26px;
}
.hero3__eye-star{ font-size:14px; line-height:1; }

.hero3__welcome{
  font-family:var(--f-display);
  font-size:12px;
  font-weight:800;
  letter-spacing:.18em;
  color:#DFAC59;
  margin:0 0 8px;
  text-transform:uppercase;
  opacity:0;
  transform:translateY(20px);
  animation:hero3In .7s cubic-bezier(.2,.9,.3,1) forwards;
  animation-delay:.38s;
}

.hero3__title{
  font-family:var(--f-display);
  font-size:clamp(48px,6.5vw,100px);
  line-height:.88;
  letter-spacing:-.03em;
  text-transform:uppercase;
  color:#111111;
  font-weight:400;
  margin-bottom:0;
}
.hero3__title em{
  display:block;
  font-family:var(--f-serif);
  font-style:italic;
  font-weight:300;
  font-size:.72em;
  color:#C41E1E;
  text-transform:none;
  letter-spacing:-.01em;
  line-height:1.15;
}

.hero3__rule{
  width:48px; height:1.5px;
  background:#C41E1E;
  opacity:.45;
  margin:24px 0;
  flex-shrink:0;
}

.hero3__sub{
  font-family:var(--f-serif);
  font-style:italic;
  font-weight:300;
  font-size:17px;
  color:rgba(30,20,10,.58);
  line-height:1.65;
  max-width:380px;
  margin-bottom:40px;
}
.hero3__sub strong{
  color:#C41E1E;
  font-style:normal;
  font-weight:600;
}

.hero3__ctas{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-bottom:48px;
}
.hero3__btn-p{
  display:inline-flex;
  align-items:center;
  gap:9px;
  padding:16px 28px;
  background:#111111;
  color:#F5EDE2;
  border-radius:999px;
  font-weight:700;
  font-size:14px;
  letter-spacing:.02em;
  transition:all .22s;
  cursor:pointer;
  border:none;
}
.hero3__btn-p svg{ transition:transform .22s }
.hero3__btn-p:hover{
  background:#C41E1E;
  color:#fff;
  transform:translateY(-2px);
  box-shadow:0 12px 32px rgba(196,30,30,.25);
}
.hero3__btn-p:hover svg{ transform:translateX(4px) }

.hero3__stats{
  display:flex;
  gap:32px;
  padding-top:28px;
  border-top:1px solid rgba(30,20,10,.1);
}
.hero3__stat{ display:flex; flex-direction:column; gap:4px; }
.hero3__stat strong{
  font-family:var(--f-display);
  font-size:26px;
  color:#111111;
  line-height:1;
  letter-spacing:-.02em;
}
.hero3__stat span{
  font-size:10px;
  color:rgba(30,20,10,.45);
  letter-spacing:.14em;
  text-transform:uppercase;
}

/* Monstera décoratifs */
.hero3__monstera{
  position:absolute; pointer-events:none; z-index:1;
  opacity:.55; filter:saturate(1.1);
}
.hero3__monstera--tl{
  top:-20px; left:-30px;
  width:clamp(160px,18vw,240px);
  transform:rotate(-20deg) scaleX(-1);
}
.hero3__monstera--br{
  bottom:20px; right:-10px;
  width:clamp(140px,15vw,200px);
  transform:rotate(140deg);
}

/* ── DROITE : visuel carte ── */
.hero3__visual{
  position:relative;
  min-height:calc(100vh - 62px);
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:visible;
}

/* Carte SVG */
.hero3__map-svg{
  position:relative;
  z-index:2;
  width:clamp(300px,42vw,560px);
  height:auto;
  animation:mapFloat 7s ease-in-out infinite;
  filter:drop-shadow(0 20px 48px rgba(0,0,0,.15));
}
@keyframes mapFloat{
  0%,100%{ transform:translateY(0) }
  50%{     transform:translateY(-16px) }
}

/* Produits flottants */
.hero3__float{
  position:absolute;
  z-index:3;
  border-radius:50%;
  overflow:hidden;
  box-shadow:0 8px 28px rgba(0,0,0,.2), 0 2px 8px rgba(0,0,0,.12);
  border:3px solid white;
}
.hero3__float img{ width:100%; height:100%; object-fit:cover; display:block; }
.hero3__float--1{ width:100px;height:100px; top:12%;left:6%;  animation:sat1 7s ease-in-out infinite; }
.hero3__float--2{ width:80px; height:80px;  top:8%; right:8%; animation:sat2 6.5s ease-in-out infinite; animation-delay:-1.5s; }
.hero3__float--3{ width:110px;height:110px; bottom:22%;right:5%; animation:sat3 8s ease-in-out infinite; animation-delay:-3s; }
.hero3__float--4{ width:90px; height:90px;  bottom:10%;left:10%; animation:sat1 7.5s ease-in-out infinite; animation-delay:-2s; }
.hero3__float--5{ width:95px; height:95px;  top:45%;left:2%;  animation:sat2 6.8s ease-in-out infinite; animation-delay:-4.5s; }

@keyframes sat1{ 0%,100%{transform:translateY(0) rotate(0deg)} 50%{transform:translateY(-12px) rotate(2deg)} }
@keyframes sat2{ 0%,100%{transform:translateY(0) rotate(0deg)} 50%{transform:translateY(-8px)  rotate(-2deg)} }
@keyframes sat3{ 0%,100%{transform:translateY(0) rotate(0deg)} 50%{transform:translateY(-14px) rotate(3deg)} }

/* Badge tournant */
.hero3__badge{
  position:absolute;
  z-index:5;
  bottom:14%; right:4%;
  width:96px; height:96px;
  border-radius:50%;
  background:#E8B020;
  color:#111;
  display:flex; flex-direction:column;
  justify-content:center; align-items:center; text-align:center;
  box-shadow:0 8px 28px rgba(232,176,32,.45);
  animation:spin 22s linear infinite;
}
.hero3__badge-n{
  font-family:var(--f-display);
  font-size:24px; line-height:1; font-weight:400; color:#111;
}
.hero3__badge-t{
  font-family:var(--f-serif);
  font-style:italic; font-size:10px;
  margin-top:3px; line-height:1.2; color:rgba(0,0,0,.7);
}

/* ── Bande défilante ── */
.hero3__marquee{
  position:relative; z-index:3; overflow:hidden;
  padding:14px 0; background:#111111; flex-shrink:0;
}
.hero3__marquee-track{
  display:flex; white-space:nowrap;
  animation:marquee 30s linear infinite;
  font-family:var(--f-display); font-size:22px;
  text-transform:uppercase; color:rgba(245,237,226,.22);
  letter-spacing:.04em; gap:0;
}
.hero3__marquee-track em{
  font-family:var(--f-serif); font-style:italic; font-weight:300;
  color:#E8B020; opacity:.85; text-transform:none;
  margin:0 8px; letter-spacing:0;
}

/* Responsive */
@media(max-width:900px){
  .hero3__row{ grid-template-columns:1fr; min-height:unset; }
  .hero3__copy{ padding:100px 28px 40px; order:1; }
  .hero3__visual{ min-height:460px; order:2; }
  .hero3__map-svg{ width:clamp(240px,78vw,400px); }
}

@media(max-width:980px){
  .hero3__row{ grid-template-columns:1fr; grid-template-rows:auto; }
  .hero3__orbit{ display:none }
  .hero3__copy{ padding:100px 28px 56px; max-width:600px; margin:0 auto; text-align:center; align-items:center; }
  .hero3__eye{ justify-content:center }
  .hero3__rule{ display:none }
  .hero3__sub{ text-align:center }
  .hero3__ctas{ justify-content:center }
  .hero3__stats{ justify-content:center; gap:32px }
  .hero3__title{ font-size:clamp(44px,12vw,72px) }
  .hero3__marquee-track{ font-size:16px }
}
@media(max-width:560px){
  .hero3__copy{ padding:88px 20px 48px }
  .hero3__title{ font-size:clamp(38px,13vw,58px) }
  .hero3__ctas{ flex-direction:column; width:100% }
  .hero3__btn-p,.hero3__btn-g{ justify-content:center; width:100% }
  .hero3__stats{ gap:20px }
  .hero3__stat strong{ font-size:22px }
}


/* ============================================================
   ÉVÉNEMENTS — redesign impact
============================================================ */
.section--events{
  background:#0E1C14;
  max-width:none;
  margin:0;
  padding:0 0 80px;
  position:relative;
  overflow:hidden;
}

/* Texture tropicale en fond */
.section--events::before{
  content:'';
  position:absolute;inset:0;
  background-image:url('../images/carte-banner.webp');
  background-size:cover;
  background-position:center top;
  opacity:.06;
  pointer-events:none;
}
.section--events::after{
  content:'';
  position:absolute;inset:0;
  background:
    radial-gradient(ellipse 60% 50% at 80% 10%, rgba(223,172,89,.06) 0%, transparent 60%),
    radial-gradient(ellipse 40% 40% at 10% 90%, rgba(78,200,122,.04) 0%, transparent 50%);
  pointer-events:none;
}

/* ── Header ── */
.evts-header{
  max-width:var(--w-content);
  margin:0 auto;
  padding:80px 32px 0;
  text-align:center;
  position:relative;
  z-index:1;
}
.evts-eyebrow{ color:rgba(223,172,89,.7); }
.evts-dot{ background:#DFAC59; }
.evts-title{
  font-family:var(--f-display);
  font-size:clamp(32px, 5vw, 62px);
  font-weight:400;
  letter-spacing:-.02em;
  color:#F5EDE2;
  line-height:1.1;
  margin:20px 0 20px;
}
.evts-title em{
  font-style:italic;
  color:#DFAC59;
}
.evts-sub{
  font-size:clamp(15px, 1.6vw, 18px);
  color:rgba(245,237,226,.55);
  max-width:600px;
  margin:0 auto;
  line-height:1.65;
}

/* ── Stats ── */
.evts-stats{
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:0;
  max-width:700px;
  margin:48px auto 0;
  padding:0 32px;
  border-top:1px solid rgba(245,237,226,.08);
  border-bottom:1px solid rgba(245,237,226,.08);
  position:relative;
  z-index:1;
}
.evts-stat{
  display:flex;
  flex-direction:column;
  align-items:center;
  padding:24px 32px;
  flex:1;
  min-width:120px;
  border-right:1px solid rgba(245,237,226,.08);
}
.evts-stat:last-child{ border-right:none; }
.evts-stat__val{
  font-family:var(--f-display);
  font-size:clamp(28px, 4vw, 40px);
  font-weight:400;
  color:#DFAC59;
  line-height:1;
}
.evts-stat__label{
  font-size:11.5px;
  color:rgba(245,237,226,.45);
  text-align:center;
  margin-top:6px;
  letter-spacing:.04em;
  text-transform:uppercase;
}

/* ── Grille événements ── */
.evts-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:12px;
  margin-top:56px;
  padding:0 32px;
  max-width:var(--w-content);
  margin-left:auto;
  margin-right:auto;
  position:relative;
  z-index:1;
}
.evt-card{
  border-radius:14px;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  cursor:default;
  position:relative;
  min-height:240px;
  transition:transform .22s, box-shadow .22s;
  border:1px solid rgba(255,255,255,.07);
}
.evt-card:hover{
  transform:translateY(-5px);
  box-shadow:0 20px 48px rgba(0,0,0,.4), 0 0 0 1px var(--evt-color, #DFAC59);
}

/* Image de fond */
.evt-card__bg{
  position:absolute;inset:0;
  background-image:var(--evt-img, none);
  background-size:cover;
  background-position:center;
  filter:saturate(0.7) brightness(0.35);
  transition:filter .3s, transform .3s;
}
.evt-card:hover .evt-card__bg{
  filter:saturate(0.8) brightness(0.42);
  transform:scale(1.04);
}

/* Gradient overlay : couleur accent en bas */
.evt-card__bg::after{
  content:'';
  position:absolute;inset:0;
  background:
    linear-gradient(to top, color-mix(in srgb, var(--evt-color, #DFAC59) 28%, transparent) 0%, transparent 55%),
    linear-gradient(to bottom, rgba(14,28,20,.6) 0%, transparent 50%);
}

/* Contenu au-dessus du fond */
.evt-card__content{
  position:relative;
  z-index:2;
  padding:24px 20px 22px;
  display:flex;
  flex-direction:column;
  gap:10px;
  flex:1;
}
.evt-card__top{
  display:flex;
  align-items:center;
  gap:10px;
}
.evt-card__icon{
  width:40px; height:40px;
  color:var(--evt-color, #DFAC59);
  flex-shrink:0;
  filter:drop-shadow(0 2px 8px color-mix(in srgb, var(--evt-color, #DFAC59) 50%, transparent));
  transition:transform .2s;
}
.evt-card:hover .evt-card__icon{ transform:scale(1.1); }
.evt-card__title{
  font-family:var(--f-display);
  font-size:15px;
  font-weight:400;
  letter-spacing:-.01em;
  color:#F5EDE2;
  line-height:1.2;
  margin-top:auto;
  padding-top:4px;
}
.evt-card__desc{
  font-size:12.5px;
  color:rgba(245,237,226,.55);
  line-height:1.55;
}

/* ── Processus ── */
.evts-process{
  max-width:var(--w-content);
  margin:72px auto 0;
  padding:0 32px;
  position:relative;
  z-index:1;
}
.evts-process__label{
  text-align:center;
  font-size:11.5px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:rgba(245,237,226,.35);
  margin-bottom:36px;
}
.evts-steps{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:0;
  position:relative;
}
.evts-step{
  padding:32px 32px 28px;
  background:rgba(245,237,226,.03);
  border:1px solid rgba(245,237,226,.06);
  border-radius:16px;
  position:relative;
  display:flex;
  flex-direction:column;
  gap:10px;
  margin:0 8px;
}
.evts-step__line{
  position:absolute;
  top:40px;
  right:-36px;
  width:28px;
  height:1px;
  background:rgba(223,172,89,.3);
  z-index:2;
}
.evts-step__line::after{
  content:'›';
  position:absolute;
  right:-8px;
  top:-10px;
  color:rgba(223,172,89,.5);
  font-size:18px;
}
.evts-step__icon{
  width:36px; height:36px;
  color:#DFAC59;
  opacity:.7;
  margin-bottom:4px;
}
.evts-step__num{
  font-family:var(--f-display);
  font-size:10.5px;
  letter-spacing:.18em;
  color:rgba(223,172,89,.5);
  text-transform:uppercase;
}
.evts-step__title{
  font-family:var(--f-display);
  font-size:18px;
  font-weight:400;
  color:#F5EDE2;
  letter-spacing:-.01em;
}
.evts-step__desc{
  font-size:13.5px;
  color:rgba(245,237,226,.45);
  line-height:1.6;
  flex:1;
}

/* ── CTA ── */
.evts-cta-wrap{
  text-align:center;
  margin-top:56px;
  padding:0 32px;
  position:relative;
  z-index:1;
}
.evts-cta-btn{
  display:inline-flex;
  align-items:center;
  gap:10px;
  background:#DFAC59;
  color:#0E1C14;
  padding:16px 40px;
  font-size:12px;
  font-weight:800;
  letter-spacing:.14em;
  border-radius:4px;
  text-decoration:none;
  transition:all .22s ease;
}
.evts-cta-btn svg{
  width:16px;height:16px;
  transition:transform .2s;
}
.evts-cta-btn:hover{
  background:#F0C060;
  transform:translateY(-2px);
  box-shadow:0 8px 24px rgba(223,172,89,.35);
}
.evts-cta-btn:hover svg{ transform:translate(2px,-2px); }
.evts-cta-hint{
  margin-top:14px;
  font-size:12px;
  color:rgba(245,237,226,.3);
  letter-spacing:.04em;
}

@media(max-width:1100px){
  .evts-grid{ grid-template-columns:repeat(4,1fr); }
}
@media(max-width:900px){
  .evts-grid{ grid-template-columns:repeat(2,1fr); padding:0 20px; }
  .evts-steps{ grid-template-columns:1fr; gap:12px; }
  .evts-step{ margin:0; }
  .evts-step__line{ display:none; }
  .evts-stats{ max-width:100%; }
}
@media(max-width:600px){
  .section--events{ padding-bottom:60px; }
  .evts-header{ padding:60px 20px 0; }
  .evts-grid{ grid-template-columns:repeat(2,1fr); gap:8px; padding:0 16px; }
  .evt-card{ min-height:180px; }
  .evt-card__content{ padding:16px 14px 14px; }
  .evts-stat{ padding:18px 16px; min-width:100px; }
  .evts-process{ padding:0 20px; }
}

/* ============================================================
   BOX BUILDER V2 — simplifié
============================================================ */
.builder-v2{
  display:grid;
  grid-template-columns:1fr 360px;
  gap:40px;align-items:start;
}
.builder-v2__people{
  display:flex;align-items:center;gap:16px;
  background:var(--paper);padding:24px 28px;
  border-radius:14px;border:1px solid var(--line);
  margin-bottom:20px;
}
.builder-v2__people label{
  font-size:12px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ink-soft);font-weight:600;flex:1;
}
.builder-v2__people-ctrl{
  display:flex;align-items:center;gap:12px;
}
.builder-v2__people-ctrl button{
  width:38px;height:38px;border-radius:50%;
  background:var(--cream-2);border:1px solid var(--line);
  font-size:18px;line-height:1;color:var(--ink);
  transition:all .2s;cursor:pointer;display:grid;place-items:center;
}
.builder-v2__people-ctrl button:hover{ background:var(--ink);color:var(--cream);border-color:var(--ink) }
.builder-v2__people-ctrl strong{
  font-family:var(--f-display);font-size:36px;
  color:var(--ink);letter-spacing:-.02em;min-width:52px;text-align:center;
}
.builder-v2__people-ctrl span{ font-size:13px;color:var(--ink-soft) }

.builder-v2__items{ display:flex;flex-direction:column;gap:10px }
.bitem{
  display:grid;grid-template-columns:70px 1fr auto;
  gap:16px;align-items:center;
  padding:16px;background:var(--paper);
  border-radius:14px;border:1.5px solid transparent;
  transition:all .2s;cursor:default;
}
.bitem--on{ border-color:var(--palm);background:#fff }
.bitem img{ width:70px;height:70px;object-fit:cover;border-radius:10px }
.bitem__txt h4{ font-family:var(--f-display);font-size:15px;font-weight:400;letter-spacing:-.01em }
.bitem__txt p{ font-size:13px;color:var(--ink-soft);margin-top:2px }
.bitem__qty{
  display:flex;align-items:center;
  background:var(--cream-2);border-radius:999px;overflow:hidden;
}
.bitem__qty button{ width:32px;height:32px;font-size:15px;cursor:pointer;transition:color .15s }
.bitem__qty button:hover{ color:var(--coral) }
.bitem__qty span{ padding:0 10px;font-weight:600;min-width:28px;text-align:center;font-size:14px }

.builder-v2__summary{
  background:var(--ink);color:var(--cream);
  border-radius:16px;padding:32px;
  position:sticky;top:96px;
}
.bsum__row{
  display:flex;justify-content:space-between;
  align-items:baseline;padding:8px 0;
  font-size:14px;color:rgba(255,255,255,.6);
}
.bsum__row strong{ color:var(--cream);font-weight:600 }
.bsum__hr{ margin:14px 0;border:none;border-top:1px solid rgba(255,255,255,.12) }
.bsum__total{
  display:flex;justify-content:space-between;align-items:baseline;
  margin-bottom:22px;
}
.bsum__total span{ font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.6) }
.bsum__total strong{ font-family:var(--f-display);font-size:40px;color:var(--sun) }
.builder-v2__summary .btn--primary{ background:var(--coral) }
.builder-v2__summary .btn--primary:hover{ background:#fff;color:var(--ink) }
.bsum__quote{
  display:block;text-align:center;font-size:12.5px;
  color:rgba(255,255,255,.5);margin-top:12px;text-decoration:underline;
}
@media(max-width:980px){
  .builder-v2{ grid-template-columns:1fr }
  .builder-v2__summary{ position:static }
}

/* ============================================================
   PRODUCT CARD — Bouton Box
============================================================ */
.cv2__actions{
  display:flex;align-items:center;gap:8px;
}
.cv2__box-btn{
  display:inline-flex;align-items:center;gap:5px;
  padding:7px 12px;
  border-radius:999px;
  font-size:12px;font-weight:600;
  background:var(--cream-2);
  color:var(--palm-d);
  border:1.5px solid var(--palm-soft);
  cursor:pointer;
  transition:all .2s;
  white-space:nowrap;
}
.cv2__box-btn:hover{
  background:var(--palm-soft);
  color:var(--palm-d);
  transform:scale(1.04);
}
.cv2__box-btn--in{
  background:var(--palm-soft);
  color:var(--palm-d);
  border-color:var(--palm);
}
.cv2__box-btn--flash{
  background:var(--palm);
  color:#fff;
  border-color:var(--palm);
  transform:scale(1.06);
}

/* ============================================================
   BOX BUILDER V3
============================================================ */

/* Steps */
.bv3__steps{
  display:flex;align-items:center;gap:8px;
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:14px;
  padding:20px 28px;
  margin-bottom:40px;
  flex-wrap:wrap;
}
.bv3__step{
  display:flex;align-items:center;gap:12px;
  flex:1;min-width:160px;
}
.bv3__step-num{
  width:34px;height:34px;flex-shrink:0;
  border-radius:50%;
  background:var(--ink);color:var(--cream);
  display:grid;place-items:center;
  font-family:var(--f-display);
  font-size:16px;font-weight:400;
}
.bv3__step-txt{ display:flex;flex-direction:column;gap:2px; }
.bv3__step-txt strong{ font-size:13px;font-weight:600;color:var(--ink) }
.bv3__step-txt span{ font-size:11.5px;color:var(--ink-soft);line-height:1.4 }
.bv3__step-arrow{
  font-size:18px;color:var(--coral);
  flex-shrink:0;padding:0 4px;
}
@media(max-width:768px){
  .bv3__step-arrow{ display:none }
  .bv3__step{ flex:0 0 100% }
  .bv3__steps{ flex-direction:column;align-items:flex-start }
}

/* Layout 2 colonnes */
.bv3__layout{
  display:grid;
  grid-template-columns:1fr 380px;
  gap:40px;
  align-items:start;
}
@media(max-width:980px){ .bv3__layout{ grid-template-columns:1fr } }

/* Récap sélection */
.bv3__recap{
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:16px;
  padding:24px;
  margin-bottom:20px;
}
.bv3__recap-head{
  display:flex;align-items:center;justify-content:space-between;
  margin-bottom:16px;
}
.bv3__recap-title{
  font-family:var(--f-display);
  font-size:16px;font-weight:400;letter-spacing:-.01em;
  color:var(--ink);
}
.bv3__clear{
  font-size:12px;color:var(--ink-soft);
  background:var(--cream-2);border:1px solid var(--line);
  border-radius:8px;padding:4px 10px;cursor:pointer;
  transition:all .15s;
}
.bv3__clear:hover{ background:var(--ink);color:var(--cream);border-color:var(--ink) }

.bv3__empty{
  text-align:center;padding:36px 20px;
  color:var(--ink-soft);
}
.bv3__empty-icon{ font-size:40px;margin-bottom:10px;opacity:.5 }
.bv3__empty p{ font-size:14px;line-height:1.6 }
.bv3__empty strong{ color:var(--palm-d) }

.bv3__items{ display:flex;flex-direction:column;gap:10px }
.bv3__item{
  display:grid;
  grid-template-columns:52px 1fr auto auto;
  gap:12px;align-items:center;
  padding:12px;
  background:var(--cream-2);
  border-radius:12px;
  border:1.5px solid transparent;
  transition:border-color .2s;
}
.bv3__item:hover{ border-color:var(--palm-soft) }
.bv3__item img{ width:52px;height:52px;object-fit:cover;border-radius:8px }
.bv3__item-txt{ display:flex;flex-direction:column;gap:2px }
.bv3__item-txt strong{ font-family:var(--f-display);font-size:14px;font-weight:400;letter-spacing:-.01em;color:var(--ink) }
.bv3__item-txt span{ font-size:12px;color:var(--ink-soft) }
.bv3__item-qty{
  display:flex;align-items:center;
  background:var(--paper);border-radius:999px;
  border:1px solid var(--line);overflow:hidden;
}
.bv3__item-qty button{ width:28px;height:28px;font-size:14px;color:var(--ink-soft);cursor:pointer;transition:color .15s }
.bv3__item-qty button:hover{ color:var(--coral) }
.bv3__item-qty span{ padding:0 8px;font-weight:600;font-size:13px;min-width:22px;text-align:center }
.bv3__rm{
  width:26px;height:26px;border-radius:50%;
  font-size:13px;color:var(--ink-soft);
  background:transparent;border:none;cursor:pointer;
  transition:all .15s;display:grid;place-items:center;
}
.bv3__rm:hover{ background:var(--coral);color:#fff }

/* Paliers dégressifs */
.bv3__tiers{
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:16px;
  padding:20px 24px;
}
.bv3__tiers-title{
  display:flex;align-items:center;gap:8px;
  font-size:12px;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;
  color:var(--palm-d);margin-bottom:14px;
}
.bv3__tiers-grid{ display:flex;gap:8px }
.bv3__tier{
  flex:1;text-align:center;
  background:var(--cream-2);
  border:1.5px solid var(--line);
  border-radius:10px;
  padding:12px 8px;
  transition:all .2s;
}
.bv3__tier--on{
  background:var(--palm-soft);
  border-color:var(--palm);
}
.bv3__tier-range{ font-size:11px;color:var(--ink-soft);margin-bottom:4px }
.bv3__tier-disc{ font-family:var(--f-display);font-size:16px;color:var(--ink);letter-spacing:-.01em }
.bv3__tier--on .bv3__tier-disc{ color:var(--palm-d) }
.bv3__tier-note{ font-size:10.5px;color:var(--ink-soft);margin-top:3px }
.bv3__tier--on .bv3__tier-note{ color:var(--palm-d);font-weight:600 }

/* Formulaire devis */
.bv3__form-card{
  background:var(--ink);color:var(--cream);
  border-radius:18px;
  padding:32px;
  position:sticky;top:96px;
}
.bv3__form-title{
  font-family:var(--f-display);
  font-size:22px;font-weight:400;
  letter-spacing:-.01em;color:var(--cream);
  margin-bottom:4px;
}
.bv3__form-sub{
  font-size:13px;color:rgba(252,250,247,.55);
  margin-bottom:24px;
}
.bv3__qty-block{
  display:flex;align-items:center;justify-content:space-between;
  background:rgba(255,255,255,.07);
  border-radius:12px;padding:14px 18px;
  margin-bottom:20px;
}
.bv3__qty-label{ display:flex;flex-direction:column;gap:3px }
.bv3__qty-label span{ font-size:14px;font-weight:600;color:var(--cream) }
.bv3__qty-label small{ font-size:11px;color:rgba(252,250,247,.5) }
.bv3__qty-ctrl{
  display:flex;align-items:center;gap:10px;
}
.bv3__qty-ctrl button{
  width:34px;height:34px;border-radius:50%;
  background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.15);
  color:var(--cream);font-size:18px;
  cursor:pointer;display:grid;place-items:center;
  transition:background .2s;
}
.bv3__qty-ctrl button:hover{ background:var(--coral) }
.bv3__qty-ctrl strong{
  font-family:var(--f-display);
  font-size:28px;color:var(--sun);
  min-width:36px;text-align:center;
}

/* Bloc adresse */
.bv3__addr-block{
  background:rgba(78,200,122,.1);
  border:1.5px solid rgba(78,200,122,.25);
  border-radius:12px;padding:16px;
  margin-bottom:16px;
}
.bv3__addr-header{
  display:flex;align-items:center;gap:8px;
  color:#4EC87A;font-size:13px;font-weight:700;
  margin-bottom:8px;
}
.bv3__addr-note{
  font-size:12px;color:rgba(252,250,247,.55);
  line-height:1.55;margin-bottom:12px;
}
.bv3__label{
  display:block;font-size:11px;
  letter-spacing:.14em;text-transform:uppercase;
  color:rgba(252,250,247,.5);font-weight:600;
  margin:12px 0 5px;
}
.bv3__input{
  width:100%;
  padding:10px 14px;
  border:1.5px solid rgba(255,255,255,.12);
  border-radius:10px;
  background:rgba(255,255,255,.06);
  color:var(--cream);
  font-size:14px;font-family:inherit;
  outline:none;
  transition:border-color .2s;
}
.bv3__input::placeholder{ color:rgba(252,250,247,.28) }
.bv3__input:focus{ border-color:rgba(78,200,122,.55) }
.bv3__textarea{ resize:vertical;min-height:72px }
.bv3__row{
  display:grid;grid-template-columns:1fr 1fr;
  gap:10px;
}
.bv3__submit{
  display:flex;align-items:center;justify-content:center;gap:8px;
  width:100%;margin-top:16px;
  padding:16px;
  background:var(--coral);color:#fff;
  border:none;border-radius:999px;
  font-size:15px;font-weight:700;font-family:inherit;
  cursor:pointer;
  transition:all .2s;
}
.bv3__submit:hover:not(:disabled){
  background:#fff;color:var(--ink);
  transform:translateY(-2px);
  box-shadow:0 10px 28px rgba(0,0,0,.25);
}
.bv3__submit--disabled{ opacity:.45;cursor:not-allowed }
.bv3__note{
  text-align:center;font-size:11px;
  color:rgba(252,250,247,.35);
  margin-top:12px;line-height:1.5;
}

/* ============================================================
   BOX V4 — Switch + Presets
============================================================ */

/* Switch pill */
.bv4__switch-wrap{
  margin-bottom:40px;
}
.bv4__switch{
  display:inline-flex;
  background:var(--cream-2);
  border:1.5px solid var(--line);
  border-radius:999px;
  padding:4px;
  gap:4px;
  margin-bottom:10px;
}
.bv4__switch-btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:10px 22px;
  border-radius:999px;
  font-size:14px;font-weight:500;
  color:var(--ink-soft);
  cursor:pointer;
  border:none;background:transparent;
  transition:all .22s;
  position:relative;
}
.bv4__switch-btn:hover{ color:var(--ink) }
.bv4__switch-btn--on{
  background:var(--ink);
  color:var(--cream);
  box-shadow:0 4px 14px rgba(24,20,14,.18);
}
.bv4__switch-dot{
  background:var(--coral);color:#fff;
  width:18px;height:18px;border-radius:50%;
  font-size:10px;font-weight:700;
  display:inline-flex;align-items:center;justify-content:center;
}
.bv4__switch-hint{
  font-size:13px;color:var(--ink-soft);
  padding-left:8px;
}

/* Layout mode Commander */
.bv4__order-layout{
  display:grid;
  grid-template-columns:1fr 280px;
  gap:32px;align-items:start;
}
@media(max-width:980px){ .bv4__order-layout{ grid-template-columns:1fr } }

/* Grille presets */
.bv4__presets{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(260px,1fr));
  gap:20px;
}

/* Carte preset */
.bv4__preset{
  background:var(--paper);
  border-radius:16px;border:2px solid var(--line);
  overflow:hidden;cursor:pointer;
  transition:all .22s;
  display:flex;flex-direction:column;
}
.bv4__preset:hover{
  border-color:var(--palm-soft);
  transform:translateY(-4px);
  box-shadow:0 16px 40px rgba(40,30,20,.1);
}
.bv4__preset--on{
  border-color:var(--palm);
  box-shadow:0 0 0 4px var(--palm-soft);
}
.bv4__preset-img-wrap{
  position:relative;
  aspect-ratio:16/10;overflow:hidden;
  background:var(--cream-2);
}
.bv4__preset-img-wrap img{
  width:100%;height:100%;object-fit:cover;
  transition:transform .4s;display:block;
}
.bv4__preset:hover .bv4__preset-img-wrap img{ transform:scale(1.05) }
.bv4__preset-badge{
  position:absolute;top:10px;left:10px;
  background:var(--ink);color:#4EC87A;
  font-size:10px;font-weight:700;
  letter-spacing:.08em;text-transform:uppercase;
  padding:4px 10px;border-radius:6px;
}
.bv4__preset-incart{
  position:absolute;top:10px;right:10px;
  background:var(--palm);color:#fff;
  font-size:10px;font-weight:700;
  padding:4px 10px;border-radius:6px;
}
.bv4__preset-body{
  padding:18px 20px 20px;
  display:flex;flex-direction:column;gap:5px;flex:1;
}
.bv4__preset-occasion{
  font-size:10.5px;font-weight:700;
  letter-spacing:.15em;text-transform:uppercase;
  color:var(--palm-d);
}
.bv4__preset-name{
  font-family:var(--f-display);
  font-size:18px;font-weight:400;
  letter-spacing:-.01em;color:var(--ink);
  line-height:1.15;
}
.bv4__preset-tagline{
  font-family:var(--f-serif);
  font-style:italic;font-weight:300;
  font-size:14px;color:var(--coral-d);
}
.bv4__preset-desc{
  font-size:13px;color:var(--ink-soft);
  line-height:1.5;flex:1;
}
.bv4__preset-foot{
  display:flex;align-items:center;justify-content:space-between;
  margin-top:12px;padding-top:12px;
  border-top:1px solid var(--line);
}
.bv4__preset-price{
  font-family:var(--f-display);
  font-size:22px;color:var(--ink);
  letter-spacing:-.01em;
}
.bv4__preset-unit{
  display:block;font-size:11px;color:var(--ink-soft);margin-top:2px;
}
.bv4__preset-add{
  padding:9px 16px;
  background:var(--ink);color:var(--cream);
  border:none;border-radius:999px;
  font-size:13px;font-weight:600;font-family:inherit;
  cursor:pointer;transition:all .2s;
  white-space:nowrap;
}
.bv4__preset-add:hover{ background:var(--coral) }

/* Panneau latéral mode order */
.bv4__order-side{
  display:flex;flex-direction:column;gap:16px;
  position:sticky;top:96px;
}
.bv4__order-tip{
  display:flex;gap:14px;align-items:flex-start;
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:14px;padding:18px;
}
.bv4__order-tip-icon{ font-size:22px;flex-shrink:0 }
.bv4__order-tip p{ font-size:13.5px;color:var(--ink-soft);line-height:1.55 }
.bv4__order-tip strong{ color:var(--ink) }
.bv4__order-switch-link{
  color:var(--coral);font-size:13px;font-weight:600;
  border:none;background:none;cursor:pointer;
  padding:0;font-family:inherit;
  text-decoration:underline;
}
.bv4__order-included{
  background:var(--cream-2);
  border:1px solid var(--line);
  border-radius:14px;padding:18px;
}
.bv4__order-included-title{
  font-family:var(--f-display);
  font-size:14px;font-weight:400;letter-spacing:-.01em;
  color:var(--ink);margin-bottom:12px;
}
.bv4__order-check{
  display:flex;align-items:center;gap:10px;
  font-size:13px;color:var(--ink-soft);
  padding:5px 0;
}
.bv4__check-dot{
  width:7px;height:7px;border-radius:50%;
  background:var(--palm);flex-shrink:0;
}

@media(max-width:640px){
  .bv4__switch{ flex-direction:column;border-radius:14px }
  .bv4__switch-btn{ justify-content:center }
}

/* Écran succès */
.bv3__done{
  max-width:520px;margin:0 auto;
  padding:80px 40px;text-align:center;
  background:var(--paper);border-radius:20px;
  border:1px solid var(--line);
}
.bv3__done-mark{
  width:72px;height:72px;border-radius:50%;
  background:var(--palm);color:#fff;
  display:grid;place-items:center;
  font-size:36px;margin:0 auto 20px;
}
.bv3__done h3{ font-family:var(--f-display);font-size:28px;font-weight:400;margin-bottom:12px }
.bv3__done p{ color:var(--ink-soft);line-height:1.6;margin-bottom:28px }

/* ============================================================
   TÉMOIGNAGES V2 — dark editorial
============================================================ */
.section--testi-v2{
  background:var(--ink);
  max-width:none;margin:0;
  padding:120px 32px;
  position:relative;overflow:hidden;
}
.testi-v2{
  max-width:var(--w-content);margin:0 auto;
}
.testi-v2__head{
  text-align:center;margin-bottom:56px;
}
.testi-v2__featured{
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.1);
  border-radius:20px;
  padding:48px 52px;
  text-align:center;
  margin-bottom:20px;
  position:relative;
}
.testi-v2__featured::before{
  content:'"';
  position:absolute;top:-28px;left:48px;
  font-family:var(--f-serif);
  font-size:140px;line-height:1;
  color:var(--palm);opacity:.2;
  pointer-events:none;
}
.testi-v2__stars{ color:var(--sun);font-size:17px;letter-spacing:3px;margin-bottom:20px }
.testi-v2__quote-text{
  font-family:var(--f-serif);font-style:italic;font-weight:300;
  font-size:clamp(19px,2.2vw,26px);line-height:1.55;
  color:rgba(240,234,216,.88);
  max-width:740px;margin:0 auto 24px;
}
.testi-v2__who-name{
  font-family:var(--f-display);font-size:14px;
  letter-spacing:.04em;color:#fff;font-weight:400;
}
.testi-v2__who-event{
  font-size:12px;color:rgba(255,255,255,.38);
  margin-top:3px;letter-spacing:.06em;
}
.testi-v2__grid{
  display:grid;grid-template-columns:1fr 1fr;gap:16px;
}
.testi-v2__card{
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.08);
  border-radius:14px;padding:28px;
  display:flex;flex-direction:column;gap:12px;
}
.testi-v2__card-stars{ color:var(--sun);font-size:13px;letter-spacing:2px }
.testi-v2__card-quote{
  font-family:var(--f-serif);font-style:italic;font-weight:300;
  font-size:16px;line-height:1.6;
  color:rgba(240,234,216,.72);flex:1;
}
.testi-v2__card-who{
  padding-top:14px;border-top:1px solid rgba(255,255,255,.08);
}
.testi-v2__card-name{
  font-family:var(--f-display);font-size:13.5px;
  color:#fff;font-weight:400;letter-spacing:-.01em;display:block;
}
.testi-v2__card-event{ font-size:11.5px;color:rgba(255,255,255,.36);letter-spacing:.04em }
@media(max-width:680px){
  .testi-v2__featured{ padding:32px 24px }
  .testi-v2__grid{ grid-template-columns:1fr }
}

/* ============================================================
   GALERIE V2
============================================================ */
.gallery-v2{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  grid-auto-rows:220px;
  gap:12px;
}
.gitem{
  position:relative;overflow:hidden;
  border-radius:14px;cursor:pointer;
  background:var(--cream-2);
}
.gitem img{
  width:100%;height:100%;
  object-fit:cover;
  transition:transform .4s cubic-bezier(.2,.9,.3,1);
  display:block;
}
.gitem:hover img{ transform:scale(1.07) }
.gitem::after{
  content:'';position:absolute;inset:0;
  background:rgba(7,26,15,0);
  transition:background .3s;
}
.gitem:hover::after{ background:rgba(7,26,15,.2) }
.gitem--wide{ grid-column:span 2 }
.gitem--tall{ grid-row:span 2 }
@media(max-width:768px){
  .gallery-v2{ grid-template-columns:repeat(2,1fr);grid-auto-rows:160px }
  .gitem--wide{ grid-column:span 1 }
}
@media(max-width:480px){
  .gallery-v2{ grid-template-columns:1fr;grid-auto-rows:200px }
  .gitem--tall{ grid-row:span 1 }
}

/* ============================================================
   CONTACT V2 — amélioré
============================================================ */
.contact__icon{
  width:44px;height:44px;
  background:rgba(78,200,122,.12);
  border-radius:10px;
  display:grid;place-items:center;
  color:#4EC87A;margin-bottom:10px;
}

/* ============================================================
   WHATSAPP BUTTON
============================================================ */
.whatsapp-btn{
  position:fixed;
  bottom:88px;right:24px;
  width:56px;height:56px;
  background:#25D366;
  color:#fff;
  border-radius:50%;
  display:grid;place-items:center;
  box-shadow:0 4px 20px rgba(37,211,102,.4);
  z-index:80;
  transition:transform .2s,box-shadow .2s;
  text-decoration:none;
}
.whatsapp-btn:hover{
  transform:scale(1.08);
  box-shadow:0 6px 28px rgba(37,211,102,.55);
}
@media(max-width:600px){
  .whatsapp-btn{bottom:80px;right:16px;width:52px;height:52px}
}

/* ============================================================
   SCROLL TO TOP BUTTON
============================================================ */
.scroll-top-btn{
  position:fixed;
  bottom:24px;right:24px;
  width:44px;height:44px;
  background:var(--green,#1B4332);
  color:var(--cream,#F5EDE2);
  border:1px solid rgba(245,237,226,.15);
  border-radius:50%;
  display:grid;place-items:center;
  cursor:pointer;
  box-shadow:0 2px 12px rgba(0,0,0,.35);
  z-index:80;
  transition:transform .2s,background .2s;
}
.scroll-top-btn:hover{
  transform:translateY(-3px);
  background:#2d5a3d;
}
@media(max-width:600px){
  .scroll-top-btn{bottom:16px;right:16px;width:40px;height:40px}
}


/* ── Messages formulaire (erreur d'envoi, aide à la saisie) ── */
.send-error{
  margin:14px 0 0;padding:12px 14px;border-radius:12px;
  background:#FDECEA;border:1px solid #F5C2BC;color:#8A1F14;
  font-size:14px;line-height:1.5;text-align:left;
}
.send-error a{color:#8A1F14;font-weight:600;text-decoration:underline}
.field-hint{margin:8px 0 0;font-size:13px;color:var(--coral);line-height:1.4}
:focus-visible{outline:2px solid var(--coral);outline-offset:2px}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}

/* ── Correctif : le panneau box ne doit jamais couper le prix ni le bouton "Ajouter au panier" ── */
.bx__panel-col{ height:auto; min-height:540px; overflow:visible; }
.bx__panel-col > .bx__detail{ height:auto; overflow:hidden; flex:none; }
.bx__panel-col > .bx__panel-compose{ max-height:680px; overflow-y:auto; }

/* ── Correctif mobile : prix + boutons Box / panier tiennent dans la carte ── */
@media (max-width:560px){
  .cv2__foot{ flex-wrap:wrap; gap:10px; }
  .cv2__actions{ width:100%; justify-content:space-between; }
  .cv2__box-btn{ flex:1; justify-content:center; }
}

/* ============================================================
   TRANSITIONS ENTRE SECTIONS & CONFORT DE LECTURE
============================================================ */
/* Vague / fondu : déborde sur le haut de la section suivante, sans décaler la mise en page */
.divider{ position:relative; height:0; z-index:6; pointer-events:none; --div-h:clamp(34px,5.2vw,84px); }
.divider svg{ position:absolute; left:0; top:-1px; width:100%; height:var(--div-h); display:block; }
.divider--fade::after{
  content:""; position:absolute; left:0; right:0; top:-1px; height:var(--div-h);
  background:linear-gradient(to bottom, var(--div-color) 0%, color-mix(in srgb, var(--div-color) 55%, transparent) 45%, transparent 100%);
}
/* les sections juste après une vague gagnent un peu d'air en haut */
.divider + section, .divider + footer{ scroll-margin-top:72px; }
.divider + .section--carte .carte__banner,
.divider + .section--box .bx__banner{ padding-top:calc(var(--div-h, 60px) + 40px); }
.divider + .section--sauce .sauce2__copy{ padding-top:max(var(--div-h,60px), 72px); }

/* Ancres : le titre de section n'est plus caché sous le menu fixe */
section[id]{ scroll-margin-top:72px; }

/* Plus de traits durs entre réservation et galerie */
.section--reserve{ border-top:0; border-bottom:0; }

/* Feuille décorative du bas de la section Box : ne plus la couper net */
.bx__leaf-svg--bl{ bottom:40px; }

/* Apparition douce au défilement (désactivée si "réduire les animations") */
.reveal{ opacity:0; transform:translateY(22px); transition:opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1); }
.reveal.is-in{ opacity:1; transform:none; }

/* Menu : lien de la section en cours */
.nav__links a:not(.nav__cta)::after{
  content:""; position:absolute; left:0; right:0; bottom:-6px; height:2px; border-radius:2px;
  background:var(--coral); transform:scaleX(0); transform-origin:left; transition:transform .3s ease;
}
.nav__links a:not(.nav__cta):hover::after,
.nav__links a.is-active::after{ transform:scaleX(1); }
.nav__links a.is-active{ color:var(--coral); }

/* Menu mobile : fond assombri cliquable + burger qui devient une croix */
@media (max-width:980px){
  .nav--menu-open{ background:rgba(252,250,247,.97); }
  .nav--menu-open::before{
    content:""; position:fixed; inset:0; z-index:-1;
    background:rgba(14,10,7,.38); backdrop-filter:blur(2px);
  }
  .nav__links{ visibility:hidden; transition:transform .3s cubic-bezier(.2,.7,.2,1), visibility 0s .3s; }
  .nav__links--open{ visibility:visible; transition:transform .3s cubic-bezier(.2,.7,.2,1); }
  .nav__links a{ padding:10px 4px; font-size:17px; }
  .nav__links a:not(.nav__cta)::after{ bottom:4px; }
  .nav__links .nav__cta{ text-align:center; margin-top:6px; padding:14px 20px; }
  .nav__burger span{ transition:transform .25s ease, opacity .2s ease; }
  .nav--menu-open .nav__burger span:nth-child(1){ transform:translateY(6px) rotate(45deg); }
  .nav--menu-open .nav__burger span:nth-child(2){ opacity:0; }
  .nav--menu-open .nav__burger span:nth-child(3){ transform:translateY(-6px) rotate(-45deg); }
}

/* Galerie : plus de trous dans la grille */
.gallery-v2{ grid-auto-flow:dense; }

/* Contact : texte aligné en haut, et marges sur mobile */
.contact{ align-items:start; }
@media (max-width:980px){
  .section--contact .contact{ padding:0 20px; }
}

/* Boutons flottants : discrets sur mobile, masqués quand le panier est ouvert */
.whatsapp-btn, .scroll-top-btn{ transition:transform .2s, box-shadow .2s, opacity .25s; }
body.drawer-open .whatsapp-btn, body.drawer-open .scroll-top-btn{ opacity:0; pointer-events:none; }
@media (max-width:600px){
  .whatsapp-btn{ width:48px; height:48px; bottom:72px; right:14px; }
  .whatsapp-btn svg{ width:24px; height:24px; }
  .scroll-top-btn{ width:38px; height:38px; bottom:20px; right:19px; opacity:.9; }
}

/* Galerie mobile : mosaïque 2 colonnes au lieu d'une longue colonne */
@media (max-width:700px){
  .gallery-v2{ grid-template-columns:repeat(2,1fr) !important; grid-auto-rows:130px !important; gap:8px !important; grid-auto-flow:dense; }
  .gallery-v2 .gitem--wide{ grid-column:span 2 !important; }
  .gallery-v2 .gitem--tall{ grid-row:span 2 !important; }
}

/* ============================================================
   CONFORT — passe 2
============================================================ */
/* Cartes produits : prix sur sa ligne, puis [Box] [Ajouter] bien lisibles */
.cv2__foot{ flex-wrap:wrap; gap:12px; }
.cv2__price{ width:100%; flex-direction:row; align-items:baseline; gap:8px; flex-wrap:wrap; }
.cv2__actions{ width:100%; display:flex; gap:8px; }
.cv2__box-btn{ flex:0 0 auto; justify-content:center; }
.cv2__add{
  width:auto; height:38px; flex:1; border-radius:999px; padding:0 14px;
  display:inline-flex; align-items:center; justify-content:center; gap:7px;
  font-size:13px; font-weight:600; font-family:inherit;
}
.cv2__add:hover{ transform:translateY(-1px); }
@media (max-width:560px){
  .cv2__box-btn{ flex:0 0 auto; padding:7px 10px; }
  .cv2__add{ padding:0 10px; font-size:12.5px; }
}
/* Légende des deux boutons */
.cv2__legend{
  display:flex; flex-wrap:wrap; justify-content:center; gap:6px 22px;
  margin:0 auto 22px; font-size:13px; color:var(--ink-soft); text-align:center;
}
.cv2__legend b{ display:inline-block; font-weight:600; font-size:11.5px; padding:3px 10px; border-radius:999px; margin-right:6px; }
.cv2__legend-add{ background:var(--ink); color:var(--cream); }
.cv2__legend-box{ background:var(--cream-2); color:var(--ink); border:1px solid var(--line); }
/* Bouton "Voir toute la carte" */
.cv2__more{ display:flex; justify-content:center; margin-top:36px; }
.cv2__more-btn{
  font:inherit; font-size:15px; font-weight:600; cursor:pointer;
  padding:14px 28px; border-radius:999px; border:1.5px solid var(--ink);
  background:transparent; color:var(--ink); transition:background .2s, color .2s;
}
.cv2__more-btn:hover{ background:var(--ink); color:var(--cream); }
#carte-grid{ scroll-margin-top:96px; }
/* Filtres : une seule ligne qui défile sur mobile */
@media (max-width:700px){
  .cv2__filters{
    flex-wrap:nowrap; overflow-x:auto; justify-content:flex-start;
    margin:0 -20px 28px; padding:2px 20px 8px; scroll-snap-type:x proximity;
    scrollbar-width:none; -webkit-overflow-scrolling:touch;
  }
  .cv2__filters::-webkit-scrollbar{ display:none; }
  .cv2__chip{ flex:0 0 auto; scroll-snap-align:start; }
  .cv2__legend{ font-size:12px; gap:6px; flex-direction:column; align-items:center; }
}

/* Showcase (Bokit / Agoulou / Box) : moins haut */
.showcase__panel{ padding:64px 64px 76px; min-height:520px; }
.showcase__center{ height:430px; }
.showcase__num{ font-size:clamp(96px, 10vw, 150px); }
@media (max-width:980px){
  .showcase__panel{ padding:36px 20px 56px; gap:22px; min-height:auto; }
  .showcase__num{ font-size:64px; }
  .showcase__dash{ display:none; }
  .showcase__desc{ font-size:17px; }
  .showcase__circle{ width:min(250px, 70%); }
  .showcase__float{ display:none; }
  .showcase__bg-text{ display:none; }
}

/* Événements : plus compact */
.evt-card{ min-height:205px; }
.evts-process{ margin-top:56px; }
@media (max-width:700px){
  /* les 8 occasions défilent sur une ligne au lieu de 4 rangées */
  .evts-grid{
    grid-template-columns:none !important; grid-auto-flow:column; grid-auto-columns:68%;
    overflow-x:auto; scroll-snap-type:x mandatory; padding:4px 20px 12px !important; gap:10px !important;
    scrollbar-width:none; -webkit-overflow-scrolling:touch; margin-top:36px;
  }
  .evts-grid::-webkit-scrollbar{ display:none; }
  .evt-card{ scroll-snap-align:center; min-height:190px; }
  .evts-step{ padding:18px 18px 16px; flex-direction:row; flex-wrap:wrap; align-items:center; gap:4px 12px; }
  .evts-step__icon{ flex:0 0 auto; }
  .evts-step__num{ display:none; }
  .evts-step__title{ flex:1; margin:0; }
  .evts-step__desc{ flex-basis:100%; }
  .evts-process{ margin-top:40px; }
  .evts-process__label{ margin-bottom:18px; }
}
.evts-swipe-hint{ display:none; }
@media (max-width:700px){
  .evts-swipe-hint{ display:block; text-align:center; font-size:12px; color:rgba(245,237,226,.45); margin-top:6px; position:relative; z-index:1; }
}

/* Réservation : ce qui manque pour continuer */
.field-hint--nav{ text-align:right; color:var(--ink-soft); }
.delivery-note{ font-size:13px; color:var(--ink-soft); line-height:1.5; margin:10px 0 4px; }
.drawer__form .delivery-note{ margin:-4px 0 14px; }

/* Mobile : un seul bouton flottant (WhatsApp), le retour en haut prend trop de place */
@media (max-width:600px){
  .scroll-top-btn{ display:none; }
  .whatsapp-btn{ bottom:18px; }
}

@media (max-width:560px){
  .cv2__body{ padding-left:12px !important; padding-right:12px !important; }
  .cv2__actions{ gap:6px; }
  .cv2__box-btn{ padding:6px 9px; gap:0; }
  .cv2__box-btn svg{ display:none; }
  .cv2__add{ padding:0 8px; gap:5px; }
}

@media (max-width:980px){
  .showcase__center{ height:auto !important; }
}
@media (max-width:700px){
  .evts-stats{ display:grid; grid-template-columns:repeat(2,1fr); padding:0 20px; }
  .evts-stat{ border-right:none !important; padding:14px 8px !important; }
  .evts-stat:nth-child(odd){ border-right:1px solid rgba(245,237,226,.08) !important; }
  .evts-stat:nth-child(-n+2){ border-bottom:1px solid rgba(245,237,226,.08); }
}
/* Contact : actions directes sous le texte */
.contact__actions{ display:flex; flex-wrap:wrap; gap:12px; margin-top:32px; }
.contact__btn{
  display:inline-flex; align-items:center; gap:10px; padding:14px 22px; border-radius:999px;
  font-weight:600; font-size:15px; text-decoration:none; transition:transform .2s, background .2s;
}
.contact__btn:hover{ transform:translateY(-2px); }
.contact__btn--wa{ background:#25D366; color:#062b14; }
.contact__btn--ghost{ border:1.5px solid rgba(245,237,226,.35); color:var(--cream); }
.contact__btn--ghost:hover{ background:rgba(245,237,226,.08); }
.contact__hours{ margin-top:22px; font-size:13px; color:rgba(245,237,226,.55); letter-spacing:.02em; }

/* ============================================================
   SECTION BOX — refonte (bx3)
============================================================ */
.bx3{ max-width:1180px; margin:0 auto; padding:44px 28px 0; position:relative; z-index:2; }

/* Onglets */
.bx3__tabs{
  display:grid; grid-template-columns:1fr 1fr; gap:6px; padding:6px;
  background:#fff; border-radius:20px; box-shadow:0 6px 28px rgba(44,26,14,.08);
  max-width:760px; margin:0 auto 36px;
}
.bx3__tab{
  font:inherit; cursor:pointer; border:0; background:transparent; border-radius:15px;
  padding:14px 18px; text-align:left; display:flex; flex-direction:column; gap:3px;
  color:var(--ink-2); transition:background .2s, color .2s;
}
.bx3__tab:hover{ background:var(--cream-2); }
.bx3__tab.is-on{ background:var(--palm-d); color:var(--cream); }
.bx3__tab-title{ font-weight:700; font-size:16px; display:flex; align-items:center; gap:8px; }
.bx3__tab-sub{ font-size:12.5px; opacity:.7; }
.bx3__tab-count{
  background:var(--sun); color:var(--ink); font-size:12px; font-weight:800;
  min-width:22px; height:22px; border-radius:999px; display:inline-grid; place-items:center; padding:0 6px;
}

/* Box prêtes : vraies cartes */
.bx3__ready{ display:grid; grid-template-columns:repeat(auto-fill, minmax(300px, 1fr)); gap:22px; align-items:stretch; }
.bx3__card{
  background:#fff; border-radius:22px; overflow:hidden; display:flex; flex-direction:column;
  box-shadow:0 8px 34px rgba(44,26,14,.09); transition:transform .25s, box-shadow .25s; text-align:left;
}
.bx3__card:hover{ transform:translateY(-4px); box-shadow:0 18px 50px rgba(44,26,14,.14); }
.bx3__card-img{ position:relative; aspect-ratio:16/10; background:var(--cream-2); overflow:hidden; }
.bx3__card-img img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s; }
.bx3__card:hover .bx3__card-img img{ transform:scale(1.04); }
.bx3__badge{
  position:absolute; top:14px; left:14px; background:#FFD54F; color:#5D3A00;
  font-size:10.5px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; padding:5px 12px; border-radius:999px;
}
.bx3__serves{
  position:absolute; bottom:12px; right:12px; background:rgba(20,14,10,.72); color:#fff; backdrop-filter:blur(6px);
  font-size:12px; font-weight:600; padding:5px 11px; border-radius:999px;
}
.bx3__card-body{ padding:22px 24px 22px; display:flex; flex-direction:column; gap:8px; flex:1; }
.bx3__occ{ font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--coral); }
.bx3__name{ font-family:var(--f-display); font-weight:400; font-size:22px; line-height:1.15; color:var(--ink); }
.bx3__tagline{ font-family:var(--f-serif); font-style:italic; color:var(--ink-soft); font-size:15px; }
.bx3__desc{ font-size:14px; color:var(--ink-2); line-height:1.55; }
.bx3__contents{ list-style:none; margin:6px 0 0; display:flex; flex-direction:column; gap:7px; }
.bx3__contents li{ font-size:14px; color:var(--ink-2); line-height:1.4; padding-left:18px; position:relative; }
.bx3__contents li::before{ content:""; position:absolute; left:2px; top:.55em; width:7px; height:7px; border-radius:50%; background:var(--coral); opacity:.75; }
.bx3__contents li strong{ font-weight:600; color:var(--ink); }
.bx3__contents li span{ color:var(--ink-soft); }
.bx3__more{ align-self:flex-start; font:inherit; font-size:13px; font-weight:600; color:var(--palm); background:none; border:0; cursor:pointer; padding:2px 0; }
.bx3__card-foot{ margin-top:auto; padding-top:16px; border-top:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.bx3__price{ display:flex; flex-direction:column; }
.bx3__price strong{ font-size:24px; font-weight:800; color:var(--coral-d); line-height:1.1; }
.bx3__price span{ font-size:12px; color:var(--ink-soft); }

/* Boutons */
.bx3__btn{
  font:inherit; font-weight:700; font-size:14px; cursor:pointer; border:0; border-radius:999px;
  padding:13px 22px; background:var(--coral); color:#fff; transition:background .2s, transform .2s;
}
.bx3__btn:hover{ background:var(--coral-d); transform:translateY(-1px); }
.bx3__btn:disabled{ opacity:.45; cursor:not-allowed; transform:none; }
.bx3__btn--done{ background:var(--palm); }
.bx3__btn--done:hover{ background:var(--palm-d); }
.bx3__btn--ghost{ background:transparent; color:var(--ink); border:1.5px solid var(--ink); }
.bx3__btn--ghost:hover{ background:var(--ink); color:var(--cream); }
.bx3__btn--full{ width:100%; padding:15px 22px; font-size:15px; }

/* Carte d'appel "compose" */
.bx3__card--compose{
  font:inherit; cursor:pointer; border:2px dashed rgba(42,107,74,.35); background:linear-gradient(160deg,#2A6B4A,#1B4332);
  color:var(--cream); padding:34px 30px; justify-content:center; gap:12px; min-height:300px;
}
.bx3__compose-ico{ width:56px; height:56px; border-radius:50%; background:rgba(255,255,255,.12); display:grid; place-items:center; }
.bx3__card--compose strong{ font-family:var(--f-display); font-weight:400; font-size:22px; line-height:1.2; }
.bx3__card--compose span{ font-size:14.5px; line-height:1.55; opacity:.85; }
.bx3__compose-cta{ margin-top:6px; font-weight:700; opacity:1 !important; color:var(--sun); }

/* Composer : liste + récapitulatif */
.bx3__compose{ display:grid; grid-template-columns:minmax(0,1fr) 380px; gap:28px; align-items:start; }
.bx3__picker{ background:#fff; border-radius:22px; padding:20px; box-shadow:0 8px 34px rgba(44,26,14,.08); min-width:0; }
.bx3__chips{ display:flex; gap:8px; flex-wrap:wrap; margin-bottom:14px; }
.bx3__chip{
  font:inherit; font-size:13px; font-weight:600; cursor:pointer; padding:8px 15px; border-radius:999px;
  border:1px solid var(--line); background:var(--paper); color:var(--ink-2); transition:all .2s;
}
.bx3__chip:hover{ border-color:var(--ink-soft); }
.bx3__chip.is-on{ background:var(--ink); color:var(--cream); border-color:var(--ink); }
.bx3__list{ list-style:none; display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.bx3__row{
  display:flex; align-items:center; gap:12px; padding:10px; border-radius:16px;
  border:1.5px solid transparent; background:var(--cream); transition:border-color .2s, background .2s;
}
.bx3__row.is-on{ border-color:var(--palm); background:var(--palm-soft); }
.bx3__row-img{ width:62px; height:62px; flex:0 0 62px; border-radius:12px; object-fit:cover; background:var(--cream-2); }
.bx3__row-info{ flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; }
.bx3__row-info strong{ font-size:14.5px; font-weight:600; color:var(--ink); line-height:1.25; }
.bx3__row-info span{ font-size:12.5px; color:var(--ink-soft); }
.bx3__add{
  flex:0 0 auto; font:inherit; font-size:13px; font-weight:700; cursor:pointer; border:0;
  background:var(--ink); color:var(--cream); padding:9px 13px; border-radius:999px; transition:background .2s;
}
.bx3__add:hover{ background:var(--palm); }
.bx3__stepper{ flex:0 0 auto; display:flex; align-items:center; gap:4px; background:#fff; border-radius:999px; padding:3px; box-shadow:0 1px 4px rgba(0,0,0,.08); }
.bx3__stepper button{ width:30px; height:30px; border-radius:50%; border:0; background:var(--palm); color:#fff; font-size:17px; cursor:pointer; line-height:1; }
.bx3__stepper button:first-child{ background:var(--cream-2); color:var(--ink); }
.bx3__stepper strong{ min-width:22px; text-align:center; font-size:14px; }

.bx3__summary{
  position:sticky; top:92px; background:#fff; border-radius:22px; padding:24px;
  box-shadow:0 12px 44px rgba(44,26,14,.12); border-top:5px solid var(--palm);
  max-height:calc(100vh - 110px); overflow-y:auto; scroll-margin-top:90px;
}
.bx3__sum-title{ font-family:var(--f-display); font-weight:400; font-size:20px; margin-bottom:12px; color:var(--ink); }
.bx3__sum-empty{ font-size:14px; color:var(--ink-soft); line-height:1.6; background:var(--cream); border-radius:14px; padding:16px; }
.bx3__sum-list{ list-style:none; display:flex; flex-direction:column; gap:6px; }
.bx3__sum-list li{ display:flex; align-items:center; gap:10px; font-size:14px; padding:6px 0; border-bottom:1px dashed var(--line); }
.bx3__sum-qty{ font-weight:800; color:var(--palm); min-width:30px; }
.bx3__sum-name{ flex:1; color:var(--ink); }
.bx3__sum-rm{ border:0; background:none; font-size:18px; color:var(--ink-soft); cursor:pointer; width:26px; height:26px; border-radius:50%; }
.bx3__sum-rm:hover{ background:var(--cream-2); color:var(--coral-d); }
.bx3__sum-total{ display:flex; justify-content:space-between; align-items:baseline; margin-top:14px; font-size:14px; color:var(--ink-2); }
.bx3__sum-total strong{ font-size:20px; color:var(--ink); }
.bx3__sum-note{ font-size:12px; color:var(--ink-soft); margin:4px 0 16px; }
.bx3__form{ display:flex; flex-direction:column; gap:10px; }
.bx3__form-row{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.bx3__form label{ display:flex; flex-direction:column; gap:5px; }
.bx3__form label span{ font-size:12px; font-weight:600; color:var(--ink-2); }
.bx3__form input, .bx3__form textarea{
  font:inherit; font-size:15px; padding:11px 13px; border-radius:12px; border:1.5px solid var(--line);
  background:var(--paper); color:var(--ink); width:100%; resize:vertical;
}
.bx3__form input:focus, .bx3__form textarea:focus{ outline:none; border-color:var(--palm); background:#fff; }
.bx3__form-hint{ font-size:12px; color:var(--ink-soft); text-align:center; }

/* Confirmation */
.bx3__done{ max-width:560px; margin:48px auto 0; background:#fff; border-radius:24px; padding:44px 36px; text-align:center; box-shadow:0 12px 44px rgba(44,26,14,.1); }
.bx3__done-mark{ width:64px; height:64px; border-radius:50%; background:var(--palm); color:#fff; font-size:30px; display:grid; place-items:center; margin:0 auto 16px; }
.bx3__done h3{ font-family:var(--f-display); font-weight:400; font-size:26px; margin-bottom:10px; }
.bx3__done p{ color:var(--ink-2); line-height:1.6; margin-bottom:22px; }

/* Barre flottante (mobile uniquement) */
.bx3__floatbar{ display:none; }

@media (max-width:1020px){
  .bx3__compose{ grid-template-columns:1fr; }
  .bx3__summary{ position:static; max-height:none; }
}
@media (max-width:760px){
  .bx3{ padding:28px 16px 0; }
  .bx3__tabs{ margin-bottom:24px; border-radius:18px; }
  .bx3__tab{ padding:12px 12px; }
  .bx3__tab-title{ font-size:14.5px; }
  .bx3__tab-sub{ font-size:11.5px; }
  .bx3__ready{ grid-template-columns:1fr; gap:16px; }
  .bx3__card--compose{ min-height:0; padding:26px 22px; }
  .bx3__picker{ padding:14px; border-radius:18px; }
  .bx3__chips{ flex-wrap:nowrap; overflow-x:auto; margin:0 -14px 12px; padding:0 14px 4px; scrollbar-width:none; }
  .bx3__chips::-webkit-scrollbar{ display:none; }
  .bx3__chip{ flex:0 0 auto; }
  .bx3__list{ grid-template-columns:1fr; gap:8px; }
  .bx3__row-img{ width:54px; height:54px; flex-basis:54px; }
  .bx3__form-row{ grid-template-columns:1fr; }
  .bx3__floatbar{
    display:flex; position:fixed; left:12px; right:12px; bottom:14px; z-index:85;
    align-items:center; justify-content:space-between; gap:10px;
    background:var(--palm-d); color:var(--cream); border:0; border-radius:16px; padding:14px 16px;
    font:inherit; font-size:14px; box-shadow:0 10px 30px rgba(0,0,0,.3); cursor:pointer;
  }
  .bx3__floatbar strong{ color:var(--sun); }
  body:has(.bx3__floatbar) .whatsapp-btn{ opacity:0; pointer-events:none; }
}

@media (min-width:1021px){
  .bx3__list{ max-height:600px; overflow-y:auto; padding-right:6px; scrollbar-width:thin; scrollbar-color:var(--line) transparent; }
}

/* ============================================================
   REVUE SECTION PAR SECTION
============================================================ */
/* Hero : la fleur ne passe plus sous le menu, bouton secondaire, respiration mobile */
.hero3__monstera--tl{ top:64px; }
.hero3__btn-g{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:16px 26px; border-radius:999px; font-weight:700; font-size:14px;
  color:#111; border:1.5px solid rgba(17,17,17,.75); background:transparent; transition:all .22s;
  opacity:0; animation:hero3In .7s cubic-bezier(.2,.9,.3,1) forwards; animation-delay:.6s;
}
.hero3__btn-g:hover{ background:#111; color:#F5EDE2; transform:translateY(-2px); }
@media (max-width:980px){
  .hero3__welcome{ margin-top:18px; }
}

/* Carrousel : nom du produit visible + photos détourées sur fond chaud */
.showcase__name{
  font-family:var(--f-display); font-weight:400; color:var(--cream);
  font-size:clamp(30px,3.2vw,44px); line-height:1; margin:6px 0 18px; letter-spacing:-.01em;
}
.showcase__circle--cutout{ background:radial-gradient(circle at 50% 42%, #FFF6E6 0%, #F3D9AE 62%, #E7BF83 100%); }
.showcase__circle--cutout img{ object-fit:contain !important; padding:13%; filter:drop-shadow(0 18px 22px rgba(60,25,5,.35)); }
@media (max-width:980px){
  .showcase__name{ margin:2px 0 10px; font-size:30px; }
}

/* Sauce : image plus généreuse et bouton plein écran sur mobile */
@media (max-width:760px){
  .sauce2__img-wrap{ height:340px !important; min-height:340px !important; }
  .sauce2__img-wrap img{ object-position:center 40% !important; }
  .sauce2__cta{ width:100%; margin-left:0 !important; justify-content:center; }
  .sauce2__buy{ flex-wrap:wrap; }
}

/* Événements : chaque occasion mène à la réservation pré-remplie */
a.evt-card{ text-decoration:none; color:inherit; cursor:pointer; }
.evt-card__go{
  margin-top:10px; font-size:12px; font-weight:700; letter-spacing:.04em;
  color:var(--evt-color, #DFAC59); opacity:.85; transition:opacity .2s, transform .2s;
}
a.evt-card:hover .evt-card__go{ opacity:1; transform:translateX(3px); }

/* Témoignages : guillemet décoratif propre */
.testi-v2__featured::before{ content:"“" !important; top:-6px !important; color:var(--sun) !important; opacity:.25 !important; font-size:120px !important; }

/* ============================================================
   RÉSERVATION — refonte (rv)
============================================================ */
.rv-section{ padding:110px 28px 110px !important; }
.rv{ max-width:1200px; margin:0 auto; position:relative; z-index:1; }
.rv__head{ text-align:center; max-width:720px; margin:0 auto 48px; }
.rv__title{ font-family:var(--f-display); font-weight:400; font-size:clamp(38px,5.4vw,72px); line-height:.98; color:var(--ink); text-transform:uppercase; margin:14px 0 18px; }
.rv__title em{ font-family:var(--f-serif); font-style:italic; text-transform:none; font-weight:500; color:var(--coral); }
.rv__sub{ font-size:18px; line-height:1.6; color:var(--ink-2); }

.rv__grid{ display:grid; grid-template-columns:380px minmax(0,1fr); gap:32px; align-items:start; }

/* Colonne ambiance */
.rv__aside{ position:sticky; top:92px; display:flex; flex-direction:column; gap:18px; }
.rv__photo{ position:relative; border-radius:24px; overflow:hidden; aspect-ratio:4/5; box-shadow:0 20px 50px rgba(44,26,14,.18); }
.rv__photo img{ width:100%; height:100%; object-fit:cover; display:block; }
.rv__photo::after{ content:""; position:absolute; inset:0; background:linear-gradient(to top, rgba(14,10,7,.85) 0%, rgba(14,10,7,.15) 50%, transparent 70%); }
.rv__photo-txt{ position:absolute; left:22px; right:22px; bottom:22px; z-index:1; color:#fff; }
.rv__photo-tag{ display:inline-block; font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; background:var(--sun); color:var(--ink); padding:5px 11px; border-radius:999px; margin-bottom:10px; }
.rv__photo-txt p{ font-family:var(--f-serif); font-style:italic; font-size:22px; line-height:1.3; }
.rv__perks{ list-style:none; background:#fff; border-radius:20px; padding:18px 20px; display:flex; flex-direction:column; gap:14px; box-shadow:0 8px 30px rgba(44,26,14,.08); }
.rv__perks li{ display:flex; gap:12px; align-items:flex-start; }
.rv__perks li > span{ flex:0 0 26px; height:26px; border-radius:50%; background:var(--palm); color:#fff; display:grid; place-items:center; font-size:13px; font-weight:800; }
.rv__perks strong{ display:block; font-size:15px; color:var(--ink); }
.rv__perks small{ display:block; font-size:13px; color:var(--ink-soft); line-height:1.45; margin-top:2px; }
.rv__wa{ display:flex; align-items:center; justify-content:center; gap:10px; padding:14px; border-radius:16px; background:#25D366; color:#062b14; font-weight:700; font-size:14.5px; text-decoration:none; transition:transform .2s; }
.rv__wa:hover{ transform:translateY(-2px); }

/* Carte formulaire */
.rv__card{ background:#fff; border-radius:28px; padding:34px 38px 30px; box-shadow:0 24px 60px rgba(44,26,14,.13); scroll-margin-top:90px; min-width:0; }
.rv__progress{ margin-bottom:26px; }
.rv__progress-top{ display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; font-size:13px; font-weight:700; color:var(--coral); margin-bottom:10px; }
.rv__progress-names{ display:flex; gap:4px; flex-wrap:wrap; }
.rv__progress-names button{ font:inherit; font-size:12.5px; font-weight:600; border:0; background:none; color:var(--ink-soft); padding:4px 8px; border-radius:999px; cursor:default; }
.rv__progress-names button.is-on{ background:var(--ink); color:var(--cream); }
.rv__progress-names button.is-done{ color:var(--palm); cursor:pointer; }
.rv__progress-names button.is-done:hover{ background:var(--palm-soft); }
.rv__bar{ height:6px; background:var(--cream-2); border-radius:999px; overflow:hidden; }
.rv__bar span{ display:block; height:100%; background:linear-gradient(90deg, var(--sun), var(--coral)); border-radius:999px; transition:width .45s cubic-bezier(.2,.7,.2,1); }
.rv__step-title{ font-family:var(--f-display); font-weight:400; font-size:clamp(24px,2.4vw,32px); color:var(--ink); margin-bottom:22px; line-height:1.1; }
.rv__step{ display:flex; flex-direction:column; gap:20px; animation:rvIn .35s ease; }
@keyframes rvIn{ from{ opacity:0; transform:translateY(8px); } to{ opacity:1; transform:none; } }

/* Étape 1 : tuiles d'occasion */
.rv__types{ display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.rv__type{
  font:inherit; cursor:pointer; display:flex; align-items:center; gap:12px; padding:14px 14px; border-radius:16px;
  border:1.5px solid var(--line); background:var(--paper); color:var(--ink); font-weight:600; font-size:15px; text-align:left;
  transition:border-color .2s, background .2s, transform .15s, box-shadow .2s;
}
.rv__type:hover{ border-color:var(--c); transform:translateY(-1px); }
.rv__type-ico{ flex:0 0 40px; height:40px; border-radius:12px; display:grid; place-items:center; color:var(--c); background:color-mix(in srgb, var(--c) 14%, transparent); }
.rv__type-ico svg{ width:24px; height:24px; }
.rv__type.is-on{ border-color:var(--c); background:color-mix(in srgb, var(--c) 10%, #fff); box-shadow:0 0 0 3px color-mix(in srgb, var(--c) 22%, transparent); }
.rv__type.is-on .rv__type-ico{ background:var(--c); color:#fff; }

.rv__row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.rv__field{ display:flex; flex-direction:column; gap:7px; }
.rv__field > span, .rv__label{ font-size:13px; font-weight:700; color:var(--ink-2); }
.rv__field em, .rv__label em{ font-style:normal; font-weight:400; color:var(--ink-soft); }
.rv__field input, .rv__field textarea{
  font:inherit; font-size:16px; padding:13px 15px; border-radius:14px; border:1.5px solid var(--line);
  background:var(--paper); color:var(--ink); width:100%; resize:vertical; transition:border-color .2s, background .2s;
}
.rv__field input:focus, .rv__field textarea:focus{ outline:none; border-color:var(--coral); background:#fff; }
.rv__field-ok{ font-size:13px; color:var(--palm); font-weight:600; text-transform:capitalize; }
.rv__field-err{ font-size:12.5px; color:var(--coral-d); }
.rv__people{ display:flex; align-items:center; border:1.5px solid var(--line); border-radius:14px; background:var(--paper); overflow:hidden; }
.rv__people button{ width:52px; height:50px; border:0; background:transparent; font-size:22px; cursor:pointer; color:var(--ink); }
.rv__people button:hover{ background:var(--cream-2); }
.rv__people input{ flex:1; border:0 !important; background:transparent !important; text-align:center; font-weight:700; font-size:18px; padding:0 !important; -moz-appearance:textfield; }
.rv__people input::-webkit-inner-spin-button{ -webkit-appearance:none; }
.rv__quick{ display:flex; gap:6px; }
.rv__quick button{ font:inherit; font-size:12.5px; font-weight:600; flex:1; padding:7px 0; border-radius:999px; border:1px solid var(--line); background:#fff; cursor:pointer; color:var(--ink-2); }
.rv__quick button.is-on{ background:var(--ink); color:var(--cream); border-color:var(--ink); }

/* Étape 2 : le menu */
.rv__hint{ font-size:15px; color:var(--ink-2); line-height:1.55; background:var(--cream); border-radius:14px; padding:12px 16px; }
.rv__chips{ display:flex; gap:8px; flex-wrap:wrap; }
.rv__chips button{ font:inherit; font-size:13px; font-weight:600; padding:8px 15px; border-radius:999px; border:1px solid var(--line); background:var(--paper); color:var(--ink-2); cursor:pointer; }
.rv__chips button.is-on{ background:var(--ink); color:var(--cream); border-color:var(--ink); }
.rv__menu{ display:grid; grid-template-columns:repeat(auto-fill, minmax(150px,1fr)); gap:12px; }
.rv__dish{ font:inherit; position:relative; cursor:pointer; border:2px solid transparent; border-radius:18px; overflow:hidden; background:var(--cream); padding:0; text-align:left; display:flex; flex-direction:column; transition:border-color .2s, transform .15s, box-shadow .2s; }
.rv__dish:hover{ transform:translateY(-2px); box-shadow:0 10px 24px rgba(44,26,14,.12); }
.rv__dish img{ width:100%; aspect-ratio:4/3; object-fit:cover; display:block; background:var(--cream-2); }
.rv__dish-name{ padding:10px 12px 12px; font-size:14px; font-weight:600; color:var(--ink); line-height:1.25; }
.rv__dish-check{ position:absolute; top:8px; right:8px; width:30px; height:30px; border-radius:50%; background:rgba(255,255,255,.92); color:var(--ink); display:grid; place-items:center; font-weight:800; font-size:16px; box-shadow:0 2px 8px rgba(0,0,0,.15); transition:background .2s, color .2s; }
.rv__dish.is-on{ border-color:var(--palm); background:var(--palm-soft); }
.rv__dish.is-on .rv__dish-check{ background:var(--palm); color:#fff; }
.rv__picked{ display:flex; flex-wrap:wrap; gap:6px; align-items:center; padding:12px 14px; border-radius:14px; background:var(--palm-soft); }
.rv__picked strong{ font-size:13px; color:var(--palm-d); margin-right:4px; }
.rv__picked button{ font:inherit; font-size:12.5px; border:0; background:#fff; border-radius:999px; padding:5px 10px; cursor:pointer; color:var(--ink-2); }
.rv__picked button:hover{ color:var(--coral-d); }

/* Étape 3 : options */
.rv__options{ display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:-10px; }
.rv__option{ font:inherit; cursor:pointer; display:grid; grid-template-columns:auto 1fr; grid-template-rows:auto auto; column-gap:12px; align-items:center; text-align:left; padding:14px 16px; border-radius:16px; border:1.5px solid var(--line); background:var(--paper); transition:all .2s; }
.rv__option-ico{ grid-row:1 / 3; font-size:24px; }
.rv__option strong{ font-size:15px; color:var(--ink); }
.rv__option small{ font-size:12.5px; color:var(--ink-soft); }
.rv__option:hover{ border-color:var(--ink-soft); }
.rv__option.is-on{ border-color:var(--palm); background:var(--palm-soft); box-shadow:0 0 0 3px rgba(42,107,74,.15); }
.rv__small{ font-size:13px; color:var(--ink-soft); line-height:1.5; }

/* Étape 4 : récap */
.rv__recap{ border-radius:20px; border:1.5px solid var(--line); overflow:hidden; }
.rv__recap-hero{ display:flex; align-items:center; gap:14px; padding:18px 20px; background:linear-gradient(120deg, var(--palm-d), #2A6B4A); color:var(--cream); }
.rv__recap-ico{ flex:0 0 48px; height:48px; border-radius:14px; background:rgba(255,255,255,.14); display:grid; place-items:center; }
.rv__recap-ico svg{ width:28px; height:28px; }
.rv__recap-hero div{ flex:1; display:flex; flex-direction:column; }
.rv__recap-hero strong{ font-family:var(--f-display); font-weight:400; font-size:22px; }
.rv__recap-hero span{ font-size:14px; opacity:.85; text-transform:none; }
.rv__recap-hero .rv__edit{ color:var(--sun); }
.rv__recap-block{ padding:16px 20px; border-top:1px solid var(--line); display:flex; flex-direction:column; gap:6px; }
.rv__recap-head{ display:flex; justify-content:space-between; align-items:center; }
.rv__recap-head span{ font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-soft); }
.rv__recap-block p{ font-size:15px; color:var(--ink); line-height:1.5; }
.rv__recap-note{ font-family:var(--f-serif); font-style:italic; color:var(--ink-2) !important; }
.rv__recap-tags{ display:flex; flex-wrap:wrap; gap:6px; }
.rv__recap-tags span{ font-size:13px; background:var(--cream); border-radius:999px; padding:5px 11px; color:var(--ink); }
.rv__edit{ font:inherit; font-size:13px; font-weight:700; color:var(--coral-d); background:none; border:0; cursor:pointer; text-decoration:underline; text-underline-offset:3px; }

/* Navigation */
.rv__nav{ display:flex; justify-content:space-between; align-items:center; gap:12px; margin-top:28px; padding-top:22px; border-top:1px solid var(--line); }
.rv__btn{ font:inherit; font-weight:700; font-size:15px; cursor:pointer; border:0; border-radius:999px; padding:15px 28px; background:var(--ink); color:var(--cream); transition:background .2s, transform .2s, opacity .2s; }
.rv__btn:hover:not(:disabled){ background:var(--coral); transform:translateY(-1px); }
.rv__btn:disabled{ opacity:.35; cursor:not-allowed; }
.rv__btn--ghost{ background:transparent; color:var(--ink); border:1.5px solid var(--line); }
.rv__btn--ghost:hover:not(:disabled){ background:var(--cream-2); color:var(--ink); }
.rv__btn--send{ background:var(--coral); color:#fff; padding:16px 30px; box-shadow:0 10px 26px rgba(200,70,50,.3); }
.rv__btn--send:hover:not(:disabled){ background:var(--coral-d); }
.rv__missing{ text-align:right; font-size:13px; color:var(--ink-soft); margin-top:10px; }

/* Confirmation */
.rv__done{ text-align:center; padding:30px 10px; }
.rv__done-mark{ font-size:54px; margin-bottom:10px; }
.rv__done h3{ font-family:var(--f-display); font-weight:400; font-size:30px; margin-bottom:12px; }
.rv__done p{ color:var(--ink-2); line-height:1.65; font-size:16px; max-width:460px; margin:0 auto 24px; }

@media (max-width:1020px){
  .rv__grid{ grid-template-columns:1fr; }
  .rv__aside{ position:static; display:grid; grid-template-columns:1fr 1fr; gap:14px; }
  .rv__photo{ aspect-ratio:auto; min-height:100%; }
  .rv__wa{ grid-column:1 / -1; }
}
@media (max-width:700px){
  .rv-section{ padding:80px 14px 80px !important; }
  .rv__head{ margin-bottom:28px; }
  .rv__sub{ font-size:16px; }
  .rv__aside{ grid-template-columns:1fr; order:2; }
  .rv__photo{ display:none; }
  .rv__grid{ display:flex; flex-direction:column; }
  .rv__card{ padding:22px 18px 20px; border-radius:22px; }
  .rv__progress-names{ display:none; }
  .rv__types{ grid-template-columns:1fr 1fr; gap:8px; }
  .rv__type{ padding:10px; font-size:14px; gap:9px; }
  .rv__type-ico{ flex-basis:34px; height:34px; border-radius:10px; }
  .rv__type-ico svg{ width:20px; height:20px; }
  .rv__row, .rv__options{ grid-template-columns:1fr; }
  .rv__menu{ grid-template-columns:1fr 1fr; gap:8px; }
  .rv__dish-name{ font-size:13px; padding:8px 10px 10px; }
  .rv__nav{ position:sticky; bottom:0; background:#fff; margin:22px -18px -20px; padding:14px 18px; border-radius:0 0 22px 22px; z-index:3; }
  .rv__btn{ padding:14px 20px; }
  .rv__btn--send{ flex:1; padding:15px 14px; font-size:14px; }
  .rv__missing{ text-align:center; }
  .rv__recap-hero strong{ font-size:19px; }
}

@media (max-width:700px){ body.rv-in-view .whatsapp-btn{ opacity:0; pointer-events:none; } }

/* Événements fusionnés dans la réservation : mini "comment ça marche" */
.rv__anchor{ position:absolute; top:0; }
.rv__how{ list-style:none; display:flex; justify-content:center; flex-wrap:wrap; gap:10px 26px; margin-top:22px; counter-reset:none; }
.rv__how li{ display:flex; align-items:center; gap:9px; font-size:14px; font-weight:600; color:var(--ink-2); }
.rv__how li span{ width:26px; height:26px; border-radius:50%; background:var(--ink); color:var(--cream); display:grid; place-items:center; font-size:12px; font-weight:800; }
.rv__how li + li::before{ content:"→"; color:var(--coral); margin-right:16px; font-weight:700; }
@media (max-width:700px){
  .rv__how{ flex-direction:column; align-items:flex-start; width:max-content; margin:18px auto 0; gap:8px; }
  .rv__how li + li::before{ display:none; }
}

.rv__head{ max-width:940px; }
.rv__sub{ max-width:720px; margin:0 auto; }
@media (min-width:701px){ .rv__how{ flex-wrap:nowrap; } }

/* ============================================================
   HARMONISATION — 3 ambiances en alternance (crème / foncé / accent)
============================================================ */
/* La Carte : bannière osier conservée (la seule du site), corps crème au lieu de moutarde */
.section--carte{ background:#F3EADF; }
.section--carte .carte__banner::after{ background:linear-gradient(to bottom, transparent 0%, rgba(243,234,223,.7) 55%, #F3EADF 100%) !important; }

/* Box : plus de 2e bannière osier, un titre net sur fond clair */
.section--box{ background:#FBF7F1; }
.bx__banner{ background:none !important; padding:96px 24px 4px !important; }
.bx__banner::before, .bx__banner::after{ display:none !important; }
.bx__title{ text-shadow:none; color:var(--ink); }
.bx__title em{ font-family:var(--f-serif); font-style:italic; font-weight:500; color:var(--coral); }
.bx__sub{ color:var(--ink-2); }
.bx__eyebrow{ color:var(--ink-2); }

/* Réservation : fond crème uni, la photo de la cliente suffit à donner l'ambiance */
.section--reserve{ background-image:none !important; background-color:#F3EADF !important; }

/* Avis : sur fond clair (la fin de page n'enchaîne plus 3 sections sombres) */
.section--testi-v2{ background:#EFE4D3; }
.section--testi-v2 .eyebrow--light{ color:var(--ink-2); }
.section--testi-v2 .section__title--light{ color:var(--ink); }
.section--testi-v2 .section__title--light em{ color:var(--coral); }
.testi-v2__featured, .testi-v2__card{ background:#fff !important; border:0 !important; box-shadow:0 10px 36px rgba(44,26,14,.08); }
.testi-v2__quote-text, .testi-v2__card-quote{ color:var(--ink) !important; }
.testi-v2__who-name, .testi-v2__card-name{ color:var(--ink) !important; }
.testi-v2__who-event, .testi-v2__card-event{ color:var(--ink-soft) !important; }
.testi-v2__card-who{ border-color:var(--line) !important; }
.testi-v2__stars, .testi-v2__card-stars{ color:#E2A321 !important; }
.testi-v2__featured::before{ color:var(--coral) !important; opacity:.18 !important; }

/* Carrousel plus calme : pas de mot géant en fond ni d'étiquettes flottantes, numéro discret */
.showcase__bg-text, .showcase__float{ display:none !important; }
.showcase__num{ font-size:clamp(56px,6vw,84px) !important; opacity:.35; }
.showcase__panel{ min-height:480px !important; }

/* Icônes au trait (remplacent les emojis) */
.ico{ width:22px; height:22px; flex:0 0 auto; stroke:currentColor; fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.rv__option-ico{ display:grid; place-items:center; width:40px; height:40px; border-radius:12px; background:var(--cream-2); color:var(--palm); }
.rv__option.is-on .rv__option-ico{ background:var(--palm); color:#fff; }
.df__recep-icon{ display:grid; place-items:center; color:var(--palm); }
.rv__done-mark{ width:72px; height:72px; border-radius:50%; background:var(--palm); color:#fff; display:grid; place-items:center; margin:0 auto 14px; }
.rv__done-mark .ico{ width:34px; height:34px; stroke-width:2.4; }
.drawer__empty-emoji{ color:var(--ink-soft); }
.drawer__empty-emoji .ico{ width:44px; height:44px; stroke-width:1.4; }
