/* =====================================================
   Les Saveurs des Antilles — VERSION 2
   Direction : le madras guadeloupéen comme seul élément fort,
   tout le reste sobre. Fraunces (titres) + Outfit (texte).
===================================================== */
:root{
  /* Palette tropicale : beige sable + verts (remplace jaune et rouge) */
  --m-yellow:#EADBC0;   /* beige sable (fonds clairs : en-tête, hero) */
  --m-red:#2F7A4C;      /* vert feuille (accent : boutons, pastilles, sauce) */
  --m-red-d:#1F5A37;
  --beige-2:#F4EBDB;
  --leaf-soft:#DDE9D6;
  --m-green:#0F4D33;
  --m-green-d:#0B3A26;
  --cocoa:#2A160C;
  --milk:#FFFDF8;

  /* Jetons repris par les composants communs (box, réservation, panier) */
  --cream:#FFF7E8; --cream-2:#F7EEDD; --paper:#FFFDF8;
  --ink:#2A160C; --ink-2:#4A3226; --ink-soft:#86705F; --line:#EADFCC;
  --palm:#0F4D33; --palm-d:#0B3A26; --palm-soft:#E2EEE5;
  --coral:#2F7A4C; --coral-d:#1F5A37; --sun:#E7D3A8;
  --f-head:"Fraunces", Georgia, serif;
  --f-body:"Outfit", system-ui, sans-serif;
  --wrap:1220px;
}
html{ scroll-behavior:smooth; scroll-padding-top:84px; }
body{ background:var(--milk); color:var(--cocoa); font-family:var(--f-body); -webkit-font-smoothing:antialiased; }
img{ max-width:100%; }
:focus-visible{ outline:3px solid var(--m-red); outline-offset:3px; }

/* ── Le motif madras (CSS pur) ── */
/* Madras "végétal" : verts et brun sur fond sable */
.madras{
  background-color:#E3D1AE;
  background-image:
    repeating-linear-gradient(90deg, rgba(15,77,51,.85) 0 12px, transparent 12px 20px, rgba(76,140,92,.7) 20px 24px, transparent 24px 36px, rgba(42,22,12,.5) 36px 38px, transparent 38px 52px),
    repeating-linear-gradient(0deg, rgba(15,77,51,.7) 0 12px, transparent 12px 20px, rgba(76,140,92,.55) 20px 24px, transparent 24px 36px, rgba(42,22,12,.4) 36px 38px, transparent 38px 52px);
}

.v2-wrap{ max-width:var(--wrap); margin:0 auto; padding:0 28px; }
.v2-h2{ font-family:var(--f-head); font-weight:800; font-size:clamp(34px,4.4vw,56px); line-height:1.02; letter-spacing:-.02em; font-variation-settings:"SOFT" 100, "WONK" 1; margin-bottom:28px; }
.v2-muted{ color:var(--ink-soft); font-size:16px; line-height:1.6; max-width:34ch; }

/* Boutons */
.v2-btn{ display:inline-flex; align-items:center; justify-content:center; gap:8px; font:inherit; font-weight:700; font-size:15px; padding:15px 26px; border-radius:999px; border:2px solid transparent; cursor:pointer; text-decoration:none; transition:transform .18s, background .18s, color .18s; white-space:nowrap; }
.v2-btn:hover{ transform:translateY(-2px); }
.v2-btn--ink{ background:var(--cocoa); color:var(--milk); }
.v2-btn--ink:hover{ background:var(--m-red); }
.v2-btn--red{ background:var(--m-red); color:#fff; }
.v2-btn--red:hover{ background:var(--m-red-d); }
.v2-btn--yellow{ background:var(--m-yellow); color:var(--cocoa); }
.v2-btn--ghost{ border-color:var(--cocoa); color:var(--cocoa); }
.v2-btn--ghost:hover{ background:var(--cocoa); color:var(--m-yellow); }
.v2-btn--ghost-light{ border-color:rgba(255,253,248,.6); color:var(--milk); }
.v2-btn--ghost-light:hover{ background:var(--milk); color:var(--cocoa); }
.v2-btn--wa{ background:#25D366; color:#06301a; }
.v2-btn--sm{ padding:10px 18px; font-size:14px; }

/* ── En-tête ── */
.v2-ribbon{ height:8px; }
.v2-header{ position:sticky; top:0; z-index:60; background:var(--m-yellow); transition:box-shadow .2s; }
.v2-header.is-scrolled{ box-shadow:0 6px 24px rgba(42,22,12,.14); }
.v2-header__bar{ max-width:var(--wrap); margin:0 auto; padding:12px 28px; display:flex; align-items:center; gap:28px; }
.v2-logo{ display:inline-flex; flex-direction:column; line-height:.9; text-decoration:none; color:var(--cocoa); }
.v2-logo__script{ font-family:"Pinyon Script", cursive; font-size:22px; margin-left:4px; }
.v2-logo__bold{ font-family:"Archivo Black", sans-serif; font-size:16px; letter-spacing:.05em; }
.v2-logo--light{ color:var(--milk); }
.v2-nav{ display:flex; gap:26px; margin-left:auto; }
.v2-nav a{ color:var(--cocoa); text-decoration:none; font-weight:600; font-size:15.5px; padding:6px 0; background:linear-gradient(var(--m-red),var(--m-red)) left bottom / 0 2px no-repeat; transition:background-size .25s; }
.v2-nav a:hover{ background-size:100% 2px; }
.v2-header__actions{ display:flex; align-items:center; gap:12px; }
.v2-header__cta{ padding:11px 20px; font-size:14px; }
.v2-cartbtn{ position:relative; width:44px; height:44px; border-radius:50%; border:2px solid var(--cocoa); background:transparent; color:var(--cocoa); display:grid; place-items:center; cursor:pointer; }
.v2-cartbtn span{ position:absolute; top:-6px; right:-6px; min-width:20px; height:20px; border-radius:999px; background:var(--m-red); color:#fff; font-size:11px; font-weight:800; display:grid; place-items:center; padding:0 5px; }
.v2-burger{ display:none; width:44px; height:44px; border:0; background:transparent; cursor:pointer; flex-direction:column; justify-content:center; align-items:center; gap:7px; }
.v2-burger span{ width:24px; height:2px; background:var(--cocoa); transition:transform .25s; }
.v2-header.is-open .v2-burger span:first-child{ transform:translateY(4.5px) rotate(45deg); }
.v2-header.is-open .v2-burger span:last-child{ transform:translateY(-4.5px) rotate(-45deg); }
.v2-drawer-nav{ display:none; }

/* ── Hero ── */
.v2-hero{ background:var(--m-yellow); display:grid; grid-template-columns:1.05fr .95fr; gap:40px; align-items:center; max-width:none; padding:56px max(28px, calc((100vw - var(--wrap)) / 2 + 28px)) 88px; overflow:hidden; }
.v2-hero__kicker{ font-weight:600; font-size:16px; color:var(--m-red-d); margin-bottom:18px; }
.v2-hero__title{ font-family:var(--f-head); font-weight:900; font-size:clamp(48px,7vw,104px); line-height:.92; letter-spacing:-.035em; font-variation-settings:"SOFT" 100, "WONK" 1; color:var(--cocoa); max-width:11ch; animation:v2rise .9s cubic-bezier(.2,.8,.2,1) both; }
.v2-hero__lead{ font-size:19px; line-height:1.6; max-width:42ch; margin:26px 0 32px; color:var(--ink-2); }
.v2-hero__ctas{ display:flex; gap:12px; flex-wrap:wrap; }
.v2-hero__trust{ list-style:none; display:flex; flex-wrap:wrap; gap:8px 22px; margin-top:34px; font-size:14.5px; font-weight:600; }
.v2-hero__trust li{ display:flex; align-items:center; gap:8px; }
.v2-hero__trust li::before{ content:""; width:9px; height:9px; border-radius:50%; background:var(--m-green); }
.v2-hero__visual{ position:relative; justify-self:center; width:min(500px,100%); }
.v2-arch{ padding:22px; border-radius:260px 260px 28px 28px; box-shadow:0 30px 60px rgba(42,22,12,.25); animation:v2rise 1s .15s cubic-bezier(.2,.8,.2,1) both; }
.v2-arch img{ display:block; width:100%; aspect-ratio:4/5; object-fit:cover; border-radius:238px 238px 12px 12px; }
.v2-hero__cutout{ position:absolute; width:46%; left:-16%; bottom:6%; filter:drop-shadow(0 22px 26px rgba(42,22,12,.4)); animation:v2rise 1s .35s cubic-bezier(.2,.8,.2,1) both; }
.v2-sticker{ position:absolute; top:4%; right:-6%; width:128px; height:128px; border-radius:50%; background:var(--m-red); color:#fff; display:grid; place-items:center; box-shadow:0 12px 26px rgba(158,12,36,.35); animation:v2spin 22s linear infinite; }
.v2-sticker svg{ position:absolute; inset:0; width:100%; height:100%; }
.v2-sticker text{ fill:#fff; font-family:var(--f-body); font-size:10.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.v2-sticker span{ font-family:var(--f-head); font-weight:900; font-size:19px; line-height:1; text-align:center; animation:v2spin 22s linear infinite reverse; }
@keyframes v2rise{ from{ opacity:0; transform:translateY(26px); } to{ opacity:1; transform:none; } }
@keyframes v2spin{ to{ transform:rotate(360deg); } }

/* ── Bandeau ── */
.v2-marquee{ background:var(--m-green); color:var(--m-yellow); overflow:hidden; padding:16px 0; }
.v2-marquee__track{ display:flex; width:max-content; animation:v2marq 40s linear infinite; }
.v2-marquee__track span{ font-family:var(--f-head); font-weight:700; font-style:italic; font-size:24px; white-space:nowrap; }
.v2-marquee__track i{ font-style:normal; color:var(--m-red); margin:0 22px; font-size:16px; vertical-align:middle; }
@keyframes v2marq{ to{ transform:translateX(-50%); } }

/* ── Incontournables ── */
.v2-specials{ padding:100px 0 60px; }
.v2-specials__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
.v2-special{ text-decoration:none; color:var(--cocoa); display:flex; flex-direction:column; gap:8px; }
.v2-special__disc{ display:block; aspect-ratio:1; border-radius:50%; overflow:hidden; margin-bottom:12px; position:relative; transition:transform .3s; }
.v2-special:hover .v2-special__disc{ transform:rotate(-4deg) scale(1.03); }
.v2-special__disc img{ width:100%; height:100%; object-fit:cover; }
.v2-special__disc.is-cut img{ object-fit:contain; padding:14%; filter:drop-shadow(0 14px 16px rgba(42,22,12,.35)); }
.v2-special--yellow .v2-special__disc{ background:var(--m-yellow); }
.v2-special--red .v2-special__disc{ background:var(--m-red); }
.v2-special--green .v2-special__disc{ background:var(--m-green); }
.v2-special--cocoa .v2-special__disc{ background:var(--cocoa); }
.v2-special strong{ font-family:var(--f-head); font-weight:800; font-size:26px; letter-spacing:-.01em; }
.v2-special__text{ font-size:15px; line-height:1.55; color:var(--ink-2); }
.v2-special__price{ font-weight:700; color:var(--m-red); font-size:15px; }

/* ── Carte ── */
.v2-carte{ padding:60px 0 100px; }
.v2-carte__layout{ display:grid; grid-template-columns:260px minmax(0,1fr); gap:48px; align-items:start; }
.v2-carte__side{ position:sticky; top:104px; }
.v2-cats{ display:flex; flex-direction:column; gap:4px; margin-top:24px; }
.v2-cats button{ font:inherit; display:flex; justify-content:space-between; align-items:center; text-align:left; padding:11px 14px; border-radius:12px; border:0; background:transparent; color:var(--ink-2); font-weight:600; font-size:16px; cursor:pointer; }
.v2-cats button span{ font-size:13px; color:var(--ink-soft); }
.v2-cats button:hover{ background:var(--cream-2); }
.v2-cats button.is-on{ background:var(--cocoa); color:var(--m-yellow); }
.v2-cats button.is-on span{ color:var(--m-yellow); opacity:.7; }
.v2-menu{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:26px 22px; }
.v2-dish{ display:flex; flex-direction:column; }
.v2-dish--skel{ height:380px; border-radius:20px; background:var(--cream-2); animation:v2pulse 1.4s ease-in-out infinite; }
@keyframes v2pulse{ 50%{ opacity:.55; } }
.v2-dish__img{ position:relative; border:0; padding:0; cursor:zoom-in; border-radius:20px; overflow:hidden; background:var(--cream-2); aspect-ratio:4/3; }
.v2-dish__img img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s; }
.v2-dish__img:hover img{ transform:scale(1.05); }
.v2-tag{ position:absolute; top:12px; left:12px; background:var(--m-red); color:#fff; font-size:12px; font-weight:700; padding:5px 11px; border-radius:999px; }
.v2-dish__body{ padding:14px 2px 0; display:flex; flex-direction:column; gap:6px; flex:1; }
.v2-dish h3{ font-family:var(--f-head); font-weight:800; font-size:21px; line-height:1.15; }
.v2-dish p{ font-size:14.5px; line-height:1.5; color:var(--ink-2); }
.v2-dish__foot{ display:flex; justify-content:space-between; align-items:center; gap:10px; margin-top:auto; padding-top:10px; }
.v2-price{ display:flex; align-items:baseline; gap:6px; flex-wrap:wrap; }
.v2-price strong{ font-size:20px; font-weight:800; }
.v2-price small{ font-size:13px; color:var(--ink-soft); }
.v2-price s{ font-size:13px; color:var(--ink-soft); }
.v2-dish__box{ align-self:flex-start; font:inherit; font-size:13px; font-weight:600; background:none; border:0; padding:4px 0; color:var(--m-green); cursor:pointer; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:3px; }
.v2-dish__box.is-in{ color:var(--m-red); text-decoration:none; }
.v2-more{ display:block; margin:44px auto 0; font:inherit; font-weight:700; font-size:16px; padding:15px 30px; border-radius:999px; border:2px solid var(--cocoa); background:transparent; color:var(--cocoa); cursor:pointer; }
.v2-more:hover{ background:var(--cocoa); color:var(--m-yellow); }

/* ── Composants communs : box, réservation, panier ── */
.section--box{ background:var(--cream) !important; }
.section--box .bx__banner{ padding:96px 24px 0 !important; }
.section--box .bx__eyebrow, .rv__head .eyebrow{ display:none !important; }
.bx__title, .rv__title{ font-family:var(--f-head) !important; font-weight:800 !important; text-transform:none !important; letter-spacing:-.02em; font-variation-settings:"SOFT" 100, "WONK" 1; font-size:clamp(34px,4.4vw,56px) !important; line-height:1.02 !important; }
.bx__title em, .rv__title em{ font-family:inherit !important; font-style:normal !important; color:inherit !important; font-weight:inherit !important; }
.rv__title br{ display:none; }
.bx3__tab.is-on{ background:var(--cocoa) !important; color:var(--m-yellow) !important; }
.bx3__name, .bx3__sum-title, .rv__step-title, .rv__done h3, .bx3__done h3, .bx3__card--compose strong, .rv__recap-hero strong{ font-family:var(--f-head) !important; font-weight:800 !important; }
.bx3__card--compose{ background:var(--m-green) !important; }
.section--reserve{ background:var(--milk) !important; background-image:none !important; }
.rv-section{ padding-top:100px !important; }
.rv__photo-tag{ background:var(--m-yellow); }
.rv__bar span{ background:linear-gradient(90deg, var(--m-yellow), var(--m-red)); }

/* ── Sauce ── */
.v2-sauce{ background:var(--m-red); color:var(--milk); padding:100px 0; overflow:hidden; }
.v2-sauce__grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:40px; align-items:center; }
.v2-sauce__title{ font-family:var(--f-head); font-weight:900; font-size:clamp(38px,5vw,68px); line-height:.98; letter-spacing:-.03em; font-variation-settings:"SOFT" 100, "WONK" 1; max-width:13ch; }
.v2-sauce__copy p{ font-size:18px; line-height:1.65; max-width:46ch; margin:22px 0 30px; opacity:.92; }
.v2-sauce__formats{ display:flex; gap:36px; margin-bottom:30px; }
.v2-sauce__formats div{ display:flex; flex-direction:column; }
.v2-sauce__formats strong{ font-family:var(--f-head); font-size:40px; font-weight:800; color:var(--m-yellow); line-height:1; }
.v2-sauce__formats span{ font-size:14px; opacity:.85; margin-top:6px; }
.v2-sauce__ctas{ display:flex; gap:12px; flex-wrap:wrap; }
.v2-sauce__visual{ position:relative; display:grid; place-items:center; min-height:420px; }
.v2-sauce__ring{ position:absolute; width:min(420px,90%); aspect-ratio:1; border-radius:50%; box-shadow:inset 0 0 0 14px var(--m-red), 0 30px 60px rgba(0,0,0,.25); }
.v2-sauce__visual img{ position:relative; width:min(330px,72%); filter:drop-shadow(0 30px 30px rgba(60,0,10,.45)); }

/* ── Galerie ── */
.v2-gallery{ padding:100px 0; }
.v2-gallery__head{ display:flex; justify-content:space-between; align-items:flex-end; gap:20px; }
.v2-gallery__arrows{ display:flex; gap:8px; margin-bottom:28px; }
.v2-gallery__arrows button{ width:48px; height:48px; border-radius:50%; border:2px solid var(--cocoa); background:transparent; font-size:26px; line-height:1; cursor:pointer; color:var(--cocoa); }
.v2-gallery__arrows button:hover{ background:var(--cocoa); color:var(--m-yellow); }
.v2-gallery__track{ display:flex; gap:16px; overflow-x:auto; scroll-snap-type:x mandatory; padding:0 max(28px, calc((100vw - var(--wrap)) / 2 + 28px)) 12px; scrollbar-width:none; }
.v2-gallery__track::-webkit-scrollbar{ display:none; }
.v2-shot{ flex:0 0 auto; width:300px; height:340px; border:0; padding:0; border-radius:20px; overflow:hidden; scroll-snap-align:start; cursor:zoom-in; background:var(--cream-2); }
.v2-shot--tall{ width:260px; }
.v2-shot:nth-child(even){ margin-top:40px; }
.v2-shot img{ width:100%; height:100%; object-fit:cover; display:block; }
.v2-lightbox{ position:fixed; inset:0; z-index:120; background:rgba(20,10,4,.88); display:grid; place-items:center; padding:24px; }
.v2-lightbox img{ max-width:min(1000px,100%); max-height:88vh; border-radius:16px; }
.v2-lightbox__close{ position:absolute; top:18px; right:22px; width:48px; height:48px; border-radius:50%; border:0; background:var(--milk); font-size:28px; cursor:pointer; }

/* ── Avis ── */
.v2-reviews{ background:var(--m-yellow); padding:100px 0; }
.v2-reviews__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.v2-review{ background:var(--milk); border-radius:24px; padding:30px 28px; display:flex; flex-direction:column; gap:16px; }
.v2-review:nth-child(2){ transform:translateY(24px); }
.v2-review__stars{ color:var(--m-red); letter-spacing:3px; }
.v2-review blockquote{ font-family:var(--f-head); font-size:20px; line-height:1.45; font-weight:500; }
.v2-review figcaption{ margin-top:auto; display:flex; flex-direction:column; font-size:14px; color:var(--ink-soft); }
.v2-review figcaption strong{ color:var(--cocoa); font-size:15px; }

/* ── Pied de page / contact ── */
.v2-footer{ background:var(--m-green); color:var(--milk); }
.v2-footer__top{ display:grid; grid-template-columns:1.2fr 1fr; gap:60px; padding-top:90px; padding-bottom:70px; }
.v2-footer__title{ font-family:var(--f-head); font-weight:800; font-size:clamp(32px,4vw,52px); line-height:1.04; letter-spacing:-.02em; max-width:16ch; }
.v2-footer__intro p{ font-size:17px; opacity:.85; margin:18px 0 28px; }
.v2-footer__ctas{ display:flex; gap:12px; flex-wrap:wrap; }
.v2-footer__info{ display:flex; flex-direction:column; gap:22px; align-self:end; }
.v2-footer__info dt{ font-size:13px; font-weight:700; color:var(--m-yellow); margin-bottom:4px; }
.v2-footer__info dd{ font-size:16px; line-height:1.5; }
.v2-footer__info a{ color:var(--milk); }
.v2-footer__bottom{ display:flex; align-items:center; gap:28px; flex-wrap:wrap; border-top:1px solid rgba(255,253,248,.16); padding-top:22px; padding-bottom:28px; font-size:14px; }
.v2-footer__bottom nav{ display:flex; gap:20px; margin-left:auto; }
.v2-footer__bottom a{ color:rgba(255,253,248,.8); text-decoration:none; }
.v2-footer__bottom a:hover{ color:var(--m-yellow); }
.v2-footer__bottom > span{ opacity:.6; }

/* ── Responsive ── */
@media (max-width:1080px){
  .v2-nav, .v2-header__cta{ display:none; }
  .v2-burger{ display:flex; }
  .v2-header__actions{ margin-left:auto; }
  .v2-drawer-nav{ display:block; position:fixed; inset:calc(8px + 68px) 0 0 0; background:rgba(42,22,12,.4); opacity:0; pointer-events:none; transition:opacity .25s; }
  .v2-drawer-nav nav{ background:var(--m-yellow); display:flex; flex-direction:column; padding:10px 28px 28px; gap:4px; transform:translateY(-12px); transition:transform .25s; }
  .v2-drawer-nav nav a:not(.v2-btn){ font-family:var(--f-head); font-weight:800; font-size:28px; color:var(--cocoa); text-decoration:none; padding:8px 0; }
  .v2-drawer-nav nav .v2-btn{ margin-top:14px; }
  .v2-header.is-open .v2-drawer-nav{ opacity:1; pointer-events:auto; }
  .v2-header.is-open .v2-drawer-nav nav{ transform:none; }
  .v2-hero{ grid-template-columns:1fr; padding-top:36px; padding-bottom:64px; }
  .v2-hero__visual{ width:min(420px,86%); }
  .v2-specials__grid{ grid-template-columns:repeat(2,1fr); gap:34px 22px; }
  .v2-carte__layout{ grid-template-columns:1fr; gap:10px; }
  .v2-carte__side{ position:static; }
  .v2-cats{ flex-direction:row; overflow-x:auto; margin:18px -28px 18px; padding:0 28px 6px; scrollbar-width:none; }
  .v2-cats::-webkit-scrollbar{ display:none; }
  .v2-cats button{ flex:0 0 auto; gap:8px; border:1.5px solid var(--line); border-radius:999px; padding:9px 15px; font-size:14.5px; }
  .v2-menu{ grid-template-columns:repeat(2, minmax(0,1fr)); }
  .v2-sauce__grid{ grid-template-columns:1fr; }
  .v2-sauce__visual{ min-height:340px; order:-1; }
  .v2-reviews__grid{ grid-template-columns:1fr; max-width:620px; }
  .v2-review:nth-child(2){ transform:none; }
  .v2-footer__top{ grid-template-columns:1fr; gap:40px; }
}
@media (max-width:640px){
  .v2-wrap{ padding:0 18px; }
  .v2-header__bar{ padding:10px 18px; gap:14px; }
  .v2-hero{ padding:28px 18px 56px; }
  .v2-hero__lead{ font-size:17px; }
  .v2-hero__ctas .v2-btn{ flex:1; }
  .v2-hero__cutout{ left:-8%; width:42%; }
  .v2-sticker{ width:96px; height:96px; right:-4%; }
  .v2-sticker text{ font-size:9px; }
  .v2-sticker span{ font-size:15px; }
  .v2-specials{ padding:70px 0 40px; }
  .v2-special strong{ font-size:21px; }
  .v2-special__text{ font-size:14px; }
  .v2-cats{ margin:14px -18px; padding:0 18px 6px; }
  .v2-menu{ gap:22px 12px; }
  .v2-dish h3{ font-size:17px; }
  .v2-dish p{ display:none; }
  .v2-dish__foot{ flex-direction:column; align-items:flex-start; }
  .v2-dish__foot .v2-btn{ width:100%; }
  .v2-price strong{ font-size:18px; }
  .v2-sauce, .v2-gallery, .v2-reviews{ padding:70px 0; }
  .v2-sauce__formats strong{ font-size:32px; }
  .v2-shot{ width:240px; height:280px; }
  .v2-shot--tall{ width:210px; }
  .v2-gallery__arrows{ display:none; }
  .v2-footer__bottom nav{ margin-left:0; }
}
@media (prefers-reduced-motion: reduce){
  .v2-hero__title, .v2-arch, .v2-hero__cutout{ animation:none; }
  .v2-sticker, .v2-sticker span, .v2-marquee__track{ animation:none; }
}

/* Correctifs */
.v2-carte__side, .v2-carte__main{ min-width:0; }
@media (min-width:1180px){ .bx3__ready{ grid-template-columns:repeat(4, minmax(0,1fr)) !important; } .bx3__card--compose{ min-height:0 !important; } }

/* ── Ajustements palette beige & vert ── */
.v2-marquee__track span{ color:var(--beige-2); }
.v2-marquee__track i{ color:#9CC79F; }
.v2-cats button.is-on{ background:var(--m-green); color:var(--beige-2); }
.v2-cats button.is-on span{ color:var(--beige-2); }
.v2-btn--ink:hover{ background:var(--m-green); }
.v2-btn--ghost:hover{ color:var(--beige-2); }
.v2-sauce{ background:var(--m-red); }
.v2-sauce__ring{ box-shadow:inset 0 0 0 14px var(--m-red), 0 30px 60px rgba(0,0,0,.3); }
.v2-btn--yellow{ color:var(--m-red-d); }
.v2-sauce__formats strong{ color:#CFE3C4; }
.v2-btn--yellow{ background:var(--beige-2); color:var(--m-green); }
.v2-reviews{ background:var(--leaf-soft); }
.v2-review__stars{ color:#C79A3B; }
.v2-hero__kicker{ color:var(--m-green); }
.v2-hero__trust li::before{ background:var(--m-red); }
.v2-special--yellow .v2-special__disc{ background:var(--beige-2); }
.v2-special--red .v2-special__disc{ background:var(--m-red); }
.bx3__tab.is-on{ background:var(--m-green) !important; color:var(--beige-2) !important; }
.rv__bar span{ background:linear-gradient(90deg, #B9D4AE, var(--m-green)) !important; }

/* ── « Ce qu'on te prépare » sur le fond fleurs & osier ── */
.v2-specials{
  position:relative; padding:110px 0 90px;
  background:#E9D8B4 url('../images/carte-banner.webp') center / cover no-repeat;
}
.v2-specials::before{ content:""; position:absolute; inset:0; background:radial-gradient(ellipse 62% 70% at 50% 50%, rgba(244,235,219,.55), rgba(244,235,219,0) 75%); pointer-events:none; }
.v2-specials .v2-wrap{ position:relative; }
.v2-specials .v2-h2{ text-align:center; margin-bottom:40px; }
.v2-special{
  background:rgba(255,251,243,.86); backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px);
  border-radius:28px; padding:20px 20px 22px; box-shadow:0 14px 36px rgba(42,22,12,.14);
  transition:transform .25s, box-shadow .25s;
}
.v2-special:hover{ transform:translateY(-4px); box-shadow:0 22px 44px rgba(42,22,12,.2); }
.v2-special__price{ color:var(--m-green); }
@media (max-width:1080px){
  .v2-specials{ background-size:auto 100%; background-position:center; }
}
@media (max-width:640px){
  .v2-specials{ padding:80px 0 60px; background-size:cover; }
  .v2-special{ padding:14px 14px 16px; border-radius:22px; }
}

/* ── Hero : carte madras de la Guadeloupe + hibiscus ── */
.v2-hero__map{
  position:absolute; z-index:3; width:44%; right:-14%; bottom:-6%;
  transform:rotate(-8deg); filter:drop-shadow(0 18px 22px rgba(42,22,12,.35));
  animation:v2rise 1s .5s cubic-bezier(.2,.8,.2,1) both;
}
.v2-hibiscus{ position:absolute; pointer-events:none; filter:drop-shadow(0 10px 14px rgba(42,22,12,.18)); animation:v2rise 1.1s .25s cubic-bezier(.2,.8,.2,1) both; }
.v2-hibiscus--tl{ width:36%; top:-7%; left:-17%; transform:rotate(-24deg) scaleX(-1); z-index:0; opacity:.95; }
.v2-hibiscus--br{ width:40%; right:-22%; bottom:-14%; transform:rotate(18deg); z-index:2; }
.v2-hibiscus--bl{ width:22%; left:20%; bottom:-11%; transform:rotate(-40deg); z-index:0; opacity:.85; }
.v2-arch{ position:relative; z-index:1; }
.v2-hero__cutout{ z-index:4; }
.v2-sticker{ z-index:4; }
.v2-hero{ padding-bottom:110px; }
@media (max-width:640px){
  .v2-hero__map{ width:42%; right:-6%; bottom:-4%; }
  .v2-hibiscus--tl{ width:32%; left:-10%; }
  .v2-hibiscus--br{ width:34%; right:-10%; bottom:-10%; }
  .v2-hibiscus--bl{ display:none; }
}

.v2-hero__map{ width:58%; right:-24%; bottom:-10%; z-index:3; }
.v2-hibiscus--br{ width:34%; right:-30%; bottom:-20%; z-index:4; transform:rotate(28deg); }
@media (max-width:640px){
  .v2-hero__map{ width:52%; right:-8%; bottom:-6%; }
  .v2-hibiscus--br{ width:28%; right:-10%; bottom:-14%; }
}

/* ── « Ce qu'on te prépare » : sans cartes, texte renforcé sur l'osier ── */
.v2-special{ background:none !important; backdrop-filter:none !important; -webkit-backdrop-filter:none !important; box-shadow:none !important; padding:0 6px !important; text-align:center; align-items:center; }
.v2-special:hover{ transform:none; box-shadow:none; }
.v2-special__disc{ width:86%; box-shadow:0 18px 36px rgba(42,22,12,.28); border:5px solid #FFF8EC; }
.v2-special strong{ font-weight:900; font-size:30px; color:#1E0F07; text-shadow:0 0 18px rgba(255,244,222,.95), 0 0 6px rgba(255,244,222,.9); }
.v2-special__text{ font-weight:600; font-size:15.5px; color:#1E0F07; text-shadow:0 0 14px rgba(255,244,222,1), 0 0 4px rgba(255,244,222,1); max-width:28ch; }
.v2-special__price{ font-weight:800; font-size:16px; color:#fff; background:var(--m-green); padding:6px 14px; border-radius:999px; margin-top:4px; text-shadow:none; }
.v2-specials .v2-h2{ font-weight:900; text-shadow:0 0 22px rgba(255,244,222,.95), 0 0 8px rgba(255,244,222,.9); }
.v2-specials::before{ background:radial-gradient(ellipse 70% 80% at 50% 55%, rgba(246,236,218,.72), rgba(246,236,218,.15) 78%) !important; }
@media (max-width:640px){ .v2-special strong{ font-size:23px; } .v2-special__text{ font-size:14px; } }

/* ── Fondu osier → fond de « La carte » ── */
.v2-specials{ padding-bottom:170px; }
.v2-specials::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:220px; pointer-events:none;
  background:linear-gradient(to bottom, rgba(255,253,248,0) 0%, rgba(255,253,248,.55) 45%, rgba(255,253,248,.9) 75%, var(--milk) 100%);
}
.v2-specials .v2-wrap{ z-index:1; }
.v2-carte{ padding-top:20px; }
@media (max-width:640px){ .v2-specials{ padding-bottom:130px; } .v2-specials::after{ height:160px; } }

/* ============================================================
   FONDUS ENTRE LES SECTIONS
============================================================ */
.v2-sauce, .v2-reviews, .section--box{ position:relative; }
.v2-sauce > .v2-wrap, .v2-reviews > .v2-wrap{ position:relative; z-index:1; }
.v2-sauce::before, .v2-sauce::after, .v2-reviews::before, .v2-reviews::after, .section--box::before{
  content:""; position:absolute; left:0; right:0; pointer-events:none; z-index:0;
}
/* Carte (crème clair) → Box (crème) */
.section--box::before{ top:0; height:180px; background:linear-gradient(to bottom, var(--milk), rgba(255,247,232,0)); }
.section--box > *{ position:relative; z-index:1; }
/* Box → Sauce (vert) → Réservation */
.v2-sauce{ padding:190px 0 190px; }
.v2-sauce::before{ top:0; height:200px; background:linear-gradient(to bottom, var(--cream) 0%, rgba(255,247,232,.6) 35%, rgba(255,247,232,0) 100%); }
.v2-sauce::after{ bottom:0; height:200px; background:linear-gradient(to top, var(--milk) 0%, rgba(255,253,248,.6) 35%, rgba(255,253,248,0) 100%); }
/* Galerie → Avis (vert pâle) → Pied de page (vert foncé) */
.v2-reviews{ padding:170px 0 200px; }
.v2-reviews::before{ top:0; height:170px; background:linear-gradient(to bottom, var(--milk), rgba(221,233,214,0)); }
.v2-reviews::after{ bottom:0; height:200px; background:linear-gradient(to top, var(--m-green) 0%, rgba(15,77,51,.55) 40%, rgba(15,77,51,0) 100%); }
.v2-footer > .v2-ribbon{ display:none; }
.v2-footer__top{ padding-top:60px; }
/* Hero (sable) → bandeau : léger fondu */
.v2-hero{ position:relative; }
.v2-hero::after{ content:""; position:absolute; left:0; right:0; bottom:0; height:90px; background:linear-gradient(to bottom, rgba(234,219,192,0), rgba(15,77,51,.18)); pointer-events:none; }
@media (max-width:640px){
  .v2-sauce{ padding:140px 0; } .v2-sauce::before, .v2-sauce::after{ height:130px; }
  .v2-reviews{ padding:120px 0 150px; } .v2-reviews::before{ height:120px; } .v2-reviews::after{ height:150px; }
}

/* Avis → pied de page : coupure nette (pas de fondu), ruban madras rétabli */
.v2-reviews::after{ display:none; }
.v2-reviews{ padding-bottom:110px; }
.v2-footer > .v2-ribbon{ display:block; }
.v2-footer__top{ padding-top:90px; }
@media (max-width:640px){ .v2-reviews{ padding-bottom:80px; } }

/* ============================================================
   SAUCE — mise en page de l'ancien site + bouteilles détourées
============================================================ */
.v2-sauce-x{ --coral:#E2594F; --sun:#F2C94C; --f-display:"Archivo Black", sans-serif; background:#0E0A07 !important; padding:0 !important; max-width:none !important; margin:0 !important; position:relative; }
.v2-sauce-x .sauce2__copy{ position:relative; }
.v2-sx__row{ display:grid; grid-template-columns:minmax(0,1fr) 220px; gap:24px; align-items:center; }
.v2-sx__bottles{ position:relative; width:220px; aspect-ratio:1; display:grid; place-items:center; }
.v2-sx__ring{ position:absolute; inset:0; border-radius:50%; box-shadow:inset 0 0 0 9px #2F7A4C, 0 20px 40px rgba(0,0,0,.45); }
.v2-sx__bottles img{ position:relative; width:84%; margin-top:-14%; filter:drop-shadow(0 18px 18px rgba(0,0,0,.55)); }
/* fondus avec les sections voisines */
.v2-sauce-x::before, .v2-sauce-x::after{ content:""; position:absolute; left:0; right:0; height:120px; z-index:3; pointer-events:none; }
.v2-sauce-x::before{ top:0; background:linear-gradient(to bottom, var(--cream), rgba(14,10,7,0)); }
.v2-sauce-x::after{ bottom:0; background:linear-gradient(to top, var(--milk), rgba(14,10,7,0)); }
.v2-sauce-x .sauce2__copy{ padding-top:150px; padding-bottom:150px; }
@media (max-width:980px){
  .v2-sx__row{ grid-template-columns:1fr; }
  .v2-sx__bottles{ justify-self:center; width:200px; margin:6px 0 10px; }
  .v2-sauce-x .sauce2__copy{ padding-top:40px; padding-bottom:120px; }
  .v2-sauce-x::before{ height:90px; }
}
.v2-sauce-x::before, .v2-sauce-x::after{ height:70px; }
.v2-sauce-x .sauce2__copy{ padding-top:110px; padding-bottom:110px; }

/* Sauce : cercle madras au rouge "Red Magic" (#E2594F) au lieu du vert */
.v2-sx__ring.madras{
  background-color:#F1E3CF;
  background-image:
    repeating-linear-gradient(90deg, rgba(226,89,79,.88) 0 12px, transparent 12px 20px, rgba(226,89,79,.55) 20px 24px, transparent 24px 36px, rgba(42,22,12,.45) 36px 38px, transparent 38px 52px),
    repeating-linear-gradient(0deg, rgba(226,89,79,.72) 0 12px, transparent 12px 20px, rgba(226,89,79,.45) 20px 24px, transparent 24px 36px, rgba(42,22,12,.38) 36px 38px, transparent 38px 52px);
  box-shadow:inset 0 0 0 9px #E2594F, 0 20px 40px rgba(0,0,0,.45);
}

/* Carte de la Guadeloupe : même madras vert que le cadre (forme découpée par masque) */
.v2-hero__map{
  aspect-ratio:432 / 577; height:auto;
  -webkit-mask:url('../images/carte-guadeloupe.webp') center / contain no-repeat;
          mask:url('../images/carte-guadeloupe.webp') center / contain no-repeat;
  filter:none;
}
.v2-hero__map-wrap{ position:absolute; }
/* ombre portée de la carte (le masque coupe le drop-shadow, on l'applique sur le parent visuel) */
.v2-hero__visual{ --map-shadow:drop-shadow(0 16px 20px rgba(42,22,12,.35)); }

/* Bokit détouré : ombre plus marquée */
.v2-hero__cutout{
  filter:drop-shadow(0 26px 22px rgba(42,22,12,.45)) drop-shadow(0 8px 10px rgba(42,22,12,.3)) !important;
}
.v2-hero__visual::before{
  content:""; position:absolute; z-index:3; left:-14%; bottom:2%; width:44%; height:12%;
  background:radial-gradient(ellipse at center, rgba(42,22,12,.38) 0%, rgba(42,22,12,0) 70%);
  filter:blur(6px); pointer-events:none;
}
.v2-hero__map{ -webkit-mask:none; mask:none; filter:drop-shadow(0 16px 20px rgba(42,22,12,.35)) !important; }
.v2-hero__map-fill{
  width:100%; aspect-ratio:432 / 577;
  -webkit-mask:url('../images/carte-guadeloupe.webp') center / contain no-repeat;
          mask:url('../images/carte-guadeloupe.webp') center / contain no-repeat;
}
.v2-hero__map-fill.madras{
  background-color:#0F4D33;
  background-image:
    repeating-linear-gradient(90deg, rgba(234,219,192,.55) 0 3px, transparent 3px 14px, rgba(76,140,92,.9) 14px 24px, transparent 24px 34px),
    repeating-linear-gradient(0deg, rgba(234,219,192,.45) 0 3px, transparent 3px 14px, rgba(76,140,92,.75) 14px 24px, transparent 24px 34px);
}
.v2-hero__map{ filter:drop-shadow(0 0 0 #FFF8EC) drop-shadow(2px 0 0 #FFF8EC) drop-shadow(-2px 0 0 #FFF8EC) drop-shadow(0 2px 0 #FFF8EC) drop-shadow(0 -2px 0 #FFF8EC) drop-shadow(0 16px 18px rgba(42,22,12,.4)) !important; }

/* Carte : image verte unie (fonctionne aussi en ouvrant le fichier en local) */
img.v2-hero__map{ -webkit-mask:none !important; mask:none !important; height:auto;
  filter:drop-shadow(0 0 1px #FFF8EC) drop-shadow(0 0 2px #FFF8EC) drop-shadow(0 16px 18px rgba(42,22,12,.4)) !important; }

/* Bokit : ombre beaucoup plus marquée */
.v2-hero__cutout{
  filter:drop-shadow(0 34px 30px rgba(20,10,4,.7)) drop-shadow(0 12px 14px rgba(20,10,4,.55)) drop-shadow(0 0 2px rgba(20,10,4,.3)) !important;
}
.v2-hero__visual::before{
  left:-18% !important; bottom:-1% !important; width:52% !important; height:18% !important;
  background:radial-gradient(ellipse at center, rgba(20,10,4,.65) 0%, rgba(20,10,4,.25) 45%, rgba(20,10,4,0) 72%) !important;
  filter:blur(10px) !important;
}

/* Carte : vert de la pastille, descendue sur le bord bas du cadre */
img.v2-hero__map{ bottom:-17% !important; right:-22% !important; }
@media (max-width:640px){ img.v2-hero__map{ bottom:-12% !important; right:-8% !important; } }
/* Douceurs : même vert */
.v2-special--cocoa .v2-special__disc{ background:#2F7A4C; }

/* Hero : texte de marque (repris de l'ancien site) */
.v2-hero__title--brand{ max-width:none; font-family:inherit; }
.v2-hero__t1{ display:block; font-family:"Archivo Black", sans-serif; font-weight:400; text-transform:uppercase; font-size:clamp(56px,7.6vw,112px); line-height:.9; letter-spacing:-.01em; color:#141414; }
.v2-hero__t2{ display:block; font-family:"Fraunces", Georgia, serif; font-style:italic; font-weight:400; font-size:clamp(46px,6vw,88px); line-height:1.05; color:#2F7A4C; margin-top:4px; letter-spacing:-.01em; font-variation-settings:"SOFT" 0, "WONK" 0; }
.v2-hero__rule{ display:block; width:72px; height:3px; background:#2F7A4C; margin:26px 0 22px; }
.v2-hero__welcome{ font-family:"Archivo Black", sans-serif; font-size:13px; letter-spacing:.2em; text-transform:uppercase; color:#B8913F; margin-bottom:12px; }
.v2-hero__lead--serif{ font-family:"Fraunces", Georgia, serif; font-style:italic; font-size:19px; color:#6E5A4C; margin-top:0; max-width:40ch; }
.v2-hero__lead--serif strong{ font-style:normal; font-weight:700; color:#2F7A4C; }
@media (max-width:640px){ .v2-hero__rule{ margin:18px 0 16px; } .v2-hero__lead--serif{ font-size:17px; } }

/* ============================================================
   ÉVÉNEMENTS & RÉSERVATION — dans l'univers de la V2
============================================================ */
.section--reserve.rv-section{
  background:
    linear-gradient(to bottom, rgba(255,253,248,0) calc(100% - 160px), var(--milk) 100%),
    url('../images/hibiscus.webp') left -70px top 70px / 230px no-repeat,
    url('../images/hibiscus.webp') right -60px bottom 220px / 210px no-repeat,
    #EADBC0 !important;
}
.v2-sauce-x::after{ background:linear-gradient(to top, #EADBC0, rgba(14,10,7,0)) !important; }
.rv__title{ color:var(--cocoa); }
.rv__sub{ color:var(--ink-2); }
.rv__how li span{ background:#2F7A4C; }
.rv__how li + li::before{ color:#2F7A4C; }

/* Photo dans une arche madras, comme le hero */
.rv__photo{ padding:12px; border-radius:200px 200px 26px 26px; aspect-ratio:auto; box-shadow:0 24px 50px rgba(42,22,12,.22);
  background-color:#E3D1AE;
  background-image:
    repeating-linear-gradient(90deg, rgba(15,77,51,.85) 0 12px, transparent 12px 20px, rgba(76,140,92,.7) 20px 24px, transparent 24px 36px, rgba(42,22,12,.5) 36px 38px, transparent 38px 52px),
    repeating-linear-gradient(0deg, rgba(15,77,51,.7) 0 12px, transparent 12px 20px, rgba(76,140,92,.55) 20px 24px, transparent 24px 36px, rgba(42,22,12,.4) 36px 38px, transparent 38px 52px);
}
.rv__photo img{ aspect-ratio:4/5; border-radius:188px 188px 16px 16px; }
.rv__photo::after{ inset:12px; border-radius:188px 188px 16px 16px; }
.rv__photo-txt{ left:34px; right:34px; bottom:34px; }
.rv__photo-tag{ background:#FFF8EC; color:#2F7A4C; }

/* Cartes & champs : crème, bordures sable, vert pour l'actif */
.rv__card, .rv__perks{ background:#FFFBF3; box-shadow:0 20px 50px rgba(42,22,12,.12); }
.rv__step-title{ color:var(--cocoa); }
.rv__progress-top{ color:#2F7A4C; }
.rv__progress-names button.is-on{ background:#2F7A4C; color:#FFF8EC; }
.rv__progress-names button.is-done{ color:#2F7A4C; }
.rv__bar{ background:#EFE3CD; }
.rv__bar span{ background:#2F7A4C !important; }
.rv__type{ --c:#2F7A4C !important; background:#FFFDF8; border-color:#E6D7BC; }
.rv__type-ico{ background:#E4EEDF; color:#2F7A4C; }
.rv__type.is-on{ background:#EEF5EA; box-shadow:0 0 0 3px rgba(47,122,76,.18); }
.rv__field input, .rv__field textarea, .rv__people{ background:#FFFDF8; border-color:#E6D7BC; }
.rv__field input:focus, .rv__field textarea:focus{ border-color:#2F7A4C; }
.rv__quick button.is-on, .rv__chips button.is-on{ background:#2F7A4C; border-color:#2F7A4C; color:#FFF8EC; }
.rv__btn{ background:#2F7A4C; color:#FFF8EC; }
.rv__btn:hover:not(:disabled){ background:#1F5A37; }
.rv__btn--ghost{ background:transparent; color:var(--cocoa); border-color:#D9C7A6; }
.rv__btn--ghost:hover:not(:disabled){ background:#F3E7D2; color:var(--cocoa); }
.rv__hint{ background:#F3E7D2; }
.rv__perks li > span{ background:#2F7A4C; }
.rv__recap-hero{ background:#2F7A4C; }
.rv__dish.is-on, .rv__option.is-on{ border-color:#2F7A4C; background:#EEF5EA; }
.rv__dish.is-on .rv__dish-check{ background:#2F7A4C; }
@media (max-width:1020px){ .rv__photo img{ aspect-ratio:16/10; } }
@media (max-width:700px){
  .section--reserve.rv-section{ background:
    linear-gradient(to bottom, rgba(255,253,248,0) calc(100% - 110px), var(--milk) 100%),
    url('../images/hibiscus.webp') right -50px top 40px / 140px no-repeat, #EADBC0 !important; }
}
@media (max-width:700px){
  .section--reserve.rv-section{ background:
    linear-gradient(to bottom, rgba(255,253,248,0) calc(100% - 110px), var(--milk) 100%),
    url('../images/hibiscus.webp') right -46px top 6px / 110px no-repeat, #EADBC0 !important; }
  .rv__head{ padding:0 22px; }
  .rv__nav{ background:#FFFBF3 !important; }
}

/* Sauce : cercle rouge plein (sans quadrillage) */
.v2-sx__ring.madras{ background:#E2594F !important; background-image:none !important; box-shadow:0 20px 40px rgba(0,0,0,.45) !important; }

/* ── Box sur fond sable + ruban madras : vraie coupure avec La carte ── */
.section--box{ background:#EADBC0 !important; padding-top:0 !important; }
.section--box::before{
  top:0; height:10px !important; background:none !important;
  background-color:#E3D1AE !important;
  background-image:
    repeating-linear-gradient(90deg, rgba(15,77,51,.85) 0 12px, transparent 12px 20px, rgba(76,140,92,.7) 20px 24px, transparent 24px 36px, rgba(42,22,12,.5) 36px 38px, transparent 38px 52px),
    repeating-linear-gradient(0deg, rgba(15,77,51,.7) 0 12px, transparent 12px 20px, rgba(76,140,92,.55) 20px 24px, transparent 24px 36px, rgba(42,22,12,.4) 36px 38px, transparent 38px 52px) !important;
}
.section--box .bx3__card, .section--box .bx3__picker, .section--box .bx3__summary{ background:#FFFBF3; }
.section--box .bx3__tabs{ background:#FFFBF3; }
.section--box .bx3__card--compose{ background:#2F7A4C !important; }
.v2-sauce-x::before{ background:linear-gradient(to bottom, #EADBC0, rgba(14,10,7,0)) !important; }

/* ── Inversion : La carte en sable, Les box en blanc ── */
.v2-carte{ background:#EADBC0; padding-bottom:110px; }
.v2-specials::after{ background:linear-gradient(to bottom, rgba(234,219,192,0) 0%, rgba(234,219,192,.55) 45%, rgba(234,219,192,.9) 75%, #EADBC0 100%) !important; }
.v2-cats button:hover{ background:#E0CEAB; }
.v2-dish__img{ background:#E0CEAB; }
.section--box{ background:#FFFFFF !important; }
.section--box .bx3__card, .section--box .bx3__picker, .section--box .bx3__summary, .section--box .bx3__tabs{ background:#FFFFFF; box-shadow:0 10px 34px rgba(42,22,12,.1); }
.v2-sauce-x::before{ background:linear-gradient(to bottom, #FFFFFF, rgba(14,10,7,0)) !important; }

/* ── Un seul vert partout (celui de la pastille « 100 % maison ») ── */
:root{ --m-green:#2F7A4C; --palm:#2F7A4C; --palm-d:#1F5A37; }

/* Réservation : bouton WhatsApp retiré */
.rv__wa{ display:none !important; }

/* Logo : hibiscus comme sur le logo d'origine */
.v2-logo{ position:relative; padding-right:30px; }
.v2-logo__flower{ position:absolute; width:38px; top:-10px; right:-6px; transform:rotate(14deg); filter:drop-shadow(0 2px 3px rgba(42,22,12,.2)); pointer-events:none; }
.v2-logo{ padding-right:20px; }
.v2-logo__flower{ top:-16px; right:-14px; }

/* ============================================================
   CONTACT & RÉSEAUX
============================================================ */
.v2-ct{ position:relative; overflow:hidden; background:#2F7A4C; }
.v2-ct::before{ content:""; position:absolute; inset:0; pointer-events:none;
  background:url('../images/carte-banner.webp') center / cover no-repeat; opacity:.08; mix-blend-mode:luminosity; }
.v2-ct__flower{ position:absolute; pointer-events:none; filter:drop-shadow(0 12px 18px rgba(0,0,0,.3)); }
.v2-ct__flower--a{ width:210px; top:40px; right:-70px; transform:rotate(-18deg); }
.v2-ct__flower--b{ width:150px; bottom:120px; left:-60px; transform:rotate(30deg) scaleX(-1); opacity:.9; }
.v2-ct .v2-wrap{ position:relative; z-index:1; }
.v2-ct__top{ display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; padding-top:96px; padding-bottom:56px; }
.v2-ct__title{ font-family:var(--f-head); font-weight:900; font-size:clamp(36px,4.4vw,60px); line-height:1.02; letter-spacing:-.02em; color:#FFF8EC; max-width:15ch; }
.v2-ct__lead{ font-size:18px; line-height:1.6; color:rgba(255,248,236,.9); margin:20px 0 30px; max-width:44ch; }
.v2-ct__ctas{ display:flex; gap:12px; flex-wrap:wrap; }
.v2-ct__btn-call{ background:#FFF8EC; color:#2F7A4C; }
.v2-ct__btn-call:hover{ background:#EADBC0; }

/* Cartes réseaux */
.v2-ct__socials{ display:flex; flex-direction:column; gap:14px; }
.v2-social{ display:flex; align-items:center; gap:18px; padding:18px 20px; border-radius:22px; background:#FFF8EC; color:var(--cocoa); text-decoration:none;
  box-shadow:0 16px 36px rgba(0,0,0,.18); transition:transform .2s, box-shadow .2s; }
.v2-social:hover{ transform:translateY(-3px) rotate(-.4deg); box-shadow:0 22px 44px rgba(0,0,0,.25); }
.v2-social__ico{ flex:0 0 60px; height:60px; border-radius:18px; display:grid; place-items:center; color:#fff; }
.v2-social--ig .v2-social__ico{ background:radial-gradient(circle at 30% 107%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 60%, #285AEB 90%); }
.v2-social--snap .v2-social__ico{ background:#FFFC00; color:#111; }
.v2-social--snap .v2-social__ico svg{ stroke:#111; stroke-width:.8; fill:#fff; }
.v2-social--wa .v2-social__ico{ background:#25D366; }
.v2-social__txt{ flex:1; display:flex; flex-direction:column; min-width:0; }
.v2-social__txt small{ font-size:12.5px; font-weight:700; color:#2F7A4C; letter-spacing:.02em; }
.v2-social__txt strong{ font-family:var(--f-head); font-weight:800; font-size:21px; line-height:1.2; overflow-wrap:anywhere; }
.v2-social__txt em{ font-style:normal; font-size:14px; color:var(--ink-soft); }
.v2-social__go{ flex:0 0 auto; font-weight:700; font-size:14px; padding:10px 18px; border-radius:999px; background:#2F7A4C; color:#FFF8EC; }

/* Bandeau d'infos */
.v2-ct__info{ display:grid; grid-template-columns:repeat(4,1fr); gap:0; margin:0 0 40px; border:1px solid rgba(255,248,236,.22); border-radius:20px; overflow:hidden; }
.v2-ct__info > div{ padding:18px 22px; border-right:1px solid rgba(255,248,236,.22); }
.v2-ct__info > div:last-child{ border-right:0; }
.v2-ct__info dt{ font-size:12.5px; font-weight:700; color:#EADBC0; margin-bottom:4px; }
.v2-ct__info dd{ font-size:15px; color:#FFF8EC; }
.v2-ct__info a{ color:#FFF8EC; overflow-wrap:anywhere; }
.v2-ct .v2-footer__bottom{ position:relative; z-index:1; }

@media (max-width:1080px){
  .v2-ct__top{ grid-template-columns:1fr; gap:36px; padding-top:72px; }
  .v2-ct__info{ grid-template-columns:1fr 1fr; }
  .v2-ct__info > div:nth-child(2){ border-right:0; }
  .v2-ct__info > div:nth-child(-n+2){ border-bottom:1px solid rgba(255,248,236,.22); }
}
@media (max-width:640px){
  .v2-social{ gap:12px; padding:14px; }
  .v2-social__ico{ flex-basis:48px; height:48px; border-radius:14px; }
  .v2-social__txt strong{ font-size:17px; }
  .v2-social__go{ padding:8px 12px; font-size:13px; }
  .v2-ct__info{ grid-template-columns:1fr; }
  .v2-ct__info > div{ border-right:0; border-bottom:1px solid rgba(255,248,236,.22); }
  .v2-ct__info > div:last-child{ border-bottom:0; }
  .v2-ct__flower--a{ width:130px; right:-50px; top:20px; }
  .v2-ct__flower--b{ display:none; }
  .v2-ct__ctas .v2-btn{ flex:1; }
}
@media (max-width:640px){ .v2-social--ig .v2-social__txt strong{ font-size:14.5px; } }

/* « Bienvenue en Guadeloupe » en noir, plus visible */
.v2-hero__welcome{ color:#141414; font-size:14px; }

/* ── Red Magic : choix de la version (non pimentée / pimentée / 1 L) ── */
.v2-sx__buy{ display:block !important; padding:22px 0 !important; }
.v2-sx__choose{ font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.55); margin:0 0 12px; font-weight:600; }
.v2-sx__variants{ list-style:none; margin:0; padding:0; display:grid; gap:10px; }
.v2-sx__variant{ display:grid; grid-template-columns:1fr auto auto; align-items:center; gap:16px; padding:14px 16px; border:1.5px solid rgba(255,255,255,.14); border-radius:12px; background:rgba(255,255,255,.03); transition:border-color .2s, background .2s; }
.v2-sx__variant:hover{ border-color:rgba(255,255,255,.3); background:rgba(255,255,255,.06); }
.v2-sx__variant.is-spicy{ border-color:rgba(226,89,79,.55); background:rgba(226,89,79,.08); }
.v2-sx__vname{ display:flex; flex-direction:column; gap:2px; min-width:0; }
.v2-sx__vname strong{ font-size:16px; color:#fff; font-weight:700; }
.v2-sx__variant.is-spicy .v2-sx__vname strong{ color:#FF8A80; }
.v2-sx__vname small{ font-size:12.5px; color:rgba(255,255,255,.55); }
.v2-sx__vprice{ font-family:"Archivo Black", sans-serif; font-size:22px; color:#fff; white-space:nowrap; }
.v2-sx__vadd{ padding:10px 16px; border-radius:999px; border:1.5px solid rgba(255,255,255,.4); background:transparent; color:#fff; font-size:11.5px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; cursor:pointer; transition:all .2s; }
.v2-sx__vadd:hover, .v2-sx__variant.is-spicy .v2-sx__vadd{ background:#E2594F; border-color:#E2594F; }
@media (max-width:560px){
  .v2-sx__variant{ grid-template-columns:1fr auto; gap:10px 12px; }
  .v2-sx__vadd{ grid-column:1 / -1; width:100%; }
}

/* ── Encart retrait à Troyes ── */
.pickup-note{ display:flex; gap:10px; align-items:flex-start; margin:12px 0 14px; padding:12px 14px; border-radius:12px; background:#E6F1EA; border:1.5px solid #2F7A4C; color:#1F5A37; font-size:13.5px; line-height:1.45; }
.pickup-note strong{ color:#1F5A37; }
.pickup-note__pin{ font-size:16px; line-height:1.2; flex:none; }

/* ── Avis Google (vrais avis) ── */
.v2-reviews__head{ display:flex; align-items:flex-end; justify-content:space-between; gap:24px; flex-wrap:wrap; margin-bottom:36px; }
.v2-reviews__head .v2-h2{ margin:0; }
.v2-gscore{ display:inline-flex; align-items:center; gap:14px; padding:12px 20px 12px 14px; background:var(--milk); border-radius:999px; text-decoration:none; color:var(--cocoa); box-shadow:0 6px 20px rgba(42,22,12,.08); transition:transform .2s, box-shadow .2s; }
.v2-gscore:hover{ transform:translateY(-2px); box-shadow:0 10px 26px rgba(42,22,12,.14); }
.v2-gscore__g{ width:38px; height:38px; border-radius:50%; display:grid; place-items:center; background:#fff; border:1.5px solid rgba(42,22,12,.12); font:700 19px/1 Arial, sans-serif; color:#4285F4; }
.v2-gscore__num{ font-family:"Archivo Black", sans-serif; font-size:30px; line-height:1; }
.v2-gscore__meta{ display:flex; flex-direction:column; font-size:12.5px; color:var(--ink-soft); line-height:1.35; }
.v2-gscore__stars{ color:#F2A900; letter-spacing:2px; font-size:15px; }
.v2-reviews__grid .v2-review:nth-child(2){ transform:none; }
.v2-reviews__grid .v2-review:nth-child(3n+2){ transform:translateY(24px); }
.v2-review blockquote{ font-size:18px !important; }
.v2-reviews__more{ text-align:center; margin-top:56px; }
.v2-reviews__more a{ display:inline-block; padding:13px 26px; border-radius:999px; border:1.5px solid #2F7A4C; color:#1F5A37; font-weight:700; text-decoration:none; transition:all .2s; }
.v2-reviews__more a:hover{ background:#2F7A4C; color:#fff; }
@media (max-width:900px){
  .v2-reviews__grid .v2-review:nth-child(3n+2){ transform:none; }
  .v2-reviews__head{ align-items:flex-start; }
}
@media (max-width:640px){
  .v2-reviews__grid{ display:flex !important; overflow-x:auto; scroll-snap-type:x mandatory; gap:14px; margin:0 -20px; padding:4px 20px 14px; max-width:none !important; scrollbar-width:none; }
  .v2-reviews__grid::-webkit-scrollbar{ display:none; }
  .v2-reviews__grid .v2-review{ flex:0 0 84%; scroll-snap-align:center; }
  .v2-reviews__more{ margin-top:22px; }
}

/* ── Réservation : champ date sur iPhone (Safari lui donne une largeur fixe) + message "il manque" ── */
.rv__field{ min-width:0; }
.rv__field input[type=date]{ -webkit-appearance:none; appearance:none; display:block; width:100%; max-width:100%; min-width:0; box-sizing:border-box; min-height:52px; line-height:1.2; text-align:left; color:var(--cocoa, #2A160C); }
.rv__field input[type=date]::-webkit-date-and-time-value{ text-align:left; margin:0; }
.rv__field input[type=date]::-webkit-calendar-picker-indicator{ opacity:.6; }
.rv__missing{ margin:22px 0 -12px !important; text-align:right; font-size:13px; line-height:1.45; }
@media (max-width:700px){ .rv__missing{ text-align:center !important; margin:18px 0 -8px !important; } }
.rv__date{ position:relative; display:block; }
.rv__date-ph{ position:absolute; left:18px; top:50%; transform:translateY(-50%); pointer-events:none; font-style:normal; font-size:15px; color:#9A8A78; }
.rv__date.is-empty input[type=date]{ color:transparent; }
.rv__date.is-empty input[type=date]:focus{ color:var(--cocoa, #2A160C); }
.rv__date.is-empty input[type=date]:focus + .rv__date-ph{ display:none; }
.rv__date-ph{ font-weight:400; } .rv__field > .rv__date{ font-size:inherit; font-weight:inherit; color:inherit; }

/* ── Mobile : correctifs d'audit ── */
html{ overflow-x:hidden; }               /* iOS ignore overflow-x sur body seul */
@media (max-width:640px){
  .v2-reviews__grid{ margin:0 -18px !important; padding:4px 18px 14px !important; scroll-padding-inline:18px; }
}
@media (max-width:700px){
  .v2-dish__box{ padding:10px 0; min-height:40px; }
  .bx3__more{ padding:10px 0; min-height:40px; }
  .v2-footer__bottom nav a{ display:inline-block; padding:10px 6px; }
  .v2-ct__info a[href^="mailto"], .v2-ct__info a[href^="tel"]{ display:inline-block; padding:8px 0; }
  .bx3__badge, .sauce2__badge{ font-size:11.5px !important; }
  .bx3__occ, .sauce2__eyebrow{ font-size:12px !important; }
}

/* Instagram : le pseudo tient sur une ligne */
.v2-social__txt{ min-width:0; }
.v2-social--ig .v2-social__txt strong{ overflow-wrap:anywhere; }
@media (max-width:480px){
  .v2-social--ig .v2-social__txt strong{ font-size:14.5px; letter-spacing:-.01em; }
  .v2-social__go{ padding-left:12px !important; padding-right:12px !important; }
}
/* Bouton WhatsApp flottant masqué quand la section contact (qui a déjà WhatsApp) est à l'écran */
body.ct-in-view .whatsapp-btn{ opacity:0; pointer-events:none; transform:scale(.8); }
/* WhatsApp flottant masqué quand le menu, le panier ou une fenêtre est ouvert, et pendant "Compose ta box" */
body:has(.v2-burger[aria-expanded="true"]) .whatsapp-btn, body:has(.drawer--on) .whatsapp-btn, body:has(.modal) .whatsapp-btn,
body:has(.bx3__summary:focus-within) .whatsapp-btn{ opacity:0 !important; pointer-events:none !important; }
@media (max-width:420px){
  .drawer__list li{ grid-template-columns:48px minmax(0,1fr) auto; gap:10px; padding:12px 4px; }
  .drawer__list img{ width:48px; height:48px; }
  .drawer__list em{ font-size:14px; white-space:nowrap; }
  .drawer__list .qty--sm{ position:relative; margin-bottom:22px; overflow:visible; }
  .drawer__list .qty__rm{ position:absolute; left:0; top:100%; padding:4px 0 !important; height:auto !important; }
  .modal__title{ font-size:24px !important; line-height:1.15; }
}
@media (max-width:700px){ body.bx-in-view .whatsapp-btn{ opacity:0; pointer-events:none; } }
@media (max-width:380px){
  .v2-social__go{ display:none !important; }
  .v2-social__txt strong{ font-size:16px !important; white-space:nowrap; }
  .v2-social--ig .v2-social__txt strong{ font-size:14px !important; }
  .v2-social::after{ content:"→"; margin-left:auto; font-weight:700; color:#2F7A4C; padding-left:8px; }
}
@media (max-width:380px){
  .v2-ct__socials{ min-width:0; }
  .v2-social{ max-width:100%; min-width:0; box-sizing:border-box; gap:12px !important; padding-left:14px !important; padding-right:14px !important; }
  .v2-social__ico{ flex:none; width:44px !important; height:44px !important; }
  .v2-social__txt{ flex:1 1 auto; min-width:0; }
  .v2-social__txt strong{ overflow:hidden; text-overflow:ellipsis; }
  .v2-social--ig .v2-social__txt strong{ font-size:13px !important; letter-spacing:-.02em; }
}
@media (max-width:380px){ .v2-social--ig .v2-social__txt strong{ white-space:normal !important; overflow:visible; font-size:14px !important; } }
