:root{--bg:#f6efe0;--surface:#fff;--surface2:#efe5cf;--line:#e3d6b8;--fg:#1d2a21;--dim:#586356;--faint:#7a8274;--green:#1f5a34;--green-deep:#183f26;--red:#c8322b;--red-deep:#a4231d;--display:'Fraunces',Georgia,serif;--body:'Manrope',system-ui,sans-serif}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth;scroll-padding-top:84px}
body{font-family:var(--body);color:var(--fg);background:radial-gradient(1200px 500px at 50% -100px,#fffaf0,transparent),var(--bg);-webkit-font-smoothing:antialiased;overflow-x:hidden;line-height:1.5}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.display{font-family:var(--display);font-weight:600;line-height:1.05;letter-spacing:-.01em}
.display em{color:var(--red);font-style:italic}
.center{text-align:center}
.faint{color:var(--faint)}.small{font-size:.8rem}
.wrap{max-width:1152px;margin:0 auto;padding:16px 12px 0}
@media(min-width:640px){.wrap{padding-left:20px;padding-right:20px}}
.panel{background:linear-gradient(135deg,#fffaf0,#f1e6cc);border-radius:32px;box-shadow:0 24px 60px -28px rgba(31,90,52,.35),0 2px 6px rgba(31,90,52,.06)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font:700 .92rem var(--body);padding:.7rem 1.4rem;border-radius:999px;border:1.5px solid transparent;cursor:pointer;transition:transform .15s,box-shadow .15s}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:linear-gradient(180deg,#d8413a,var(--red-deep));color:#fff;box-shadow:0 12px 26px -14px rgba(164,35,29,.8)}
.btn-ghost{background:rgba(255,255,255,.7);border-color:var(--line);color:var(--fg)}
.btn-sm{padding:.55rem 1.1rem;font-size:.85rem}.btn-lg{padding:.95rem 2rem;font-size:1rem}
/* nav */
.nav{position:sticky;top:0;z-index:30;padding:10px 12px;backdrop-filter:blur(8px)}
.nav-in{max-width:1152px;margin:0 auto;display:flex;align-items:center;gap:16px;justify-content:space-between;background:rgba(255,252,243,.9);border-radius:999px;padding:6px 8px 6px 10px;box-shadow:0 10px 30px -18px rgba(31,90,52,.5)}
.brand{display:flex;align-items:center;gap:10px;font:700 1.15rem var(--display)}
.brand img{border-radius:50%}
.links{display:none;gap:28px;font-size:.88rem;font-weight:600;color:var(--dim)}
.links a:hover{color:var(--red)}
@media(min-width:720px){.links{display:flex}}
/* hero */
.hero{display:grid;gap:24px;padding:36px 24px;align-items:center;overflow:hidden}
@media(min-width:900px){.hero{grid-template-columns:1.1fr 1fr;padding:56px}}
.eyebrow{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:var(--red);margin-bottom:14px}
.hero h1{font-size:clamp(2.5rem,7vw,4.4rem)}
.lede{margin-top:16px;color:var(--dim);font-size:1.05rem;max-width:34em}
.hero-cta{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}.hero-cta.c{justify-content:center}
.pill{display:inline-flex;align-items:center;gap:12px;margin-top:24px;background:rgba(255,255,255,.85);padding:8px 20px 8px 8px;border-radius:999px;box-shadow:0 14px 30px -18px rgba(31,90,52,.6);transition:transform .15s}
.pill:hover{transform:translateY(-2px)}
.pill .pin{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:linear-gradient(180deg,#2c7a47,var(--green-deep));font-size:1rem}
.pill b{display:block;font-size:.85rem}.pill small{color:var(--dim);font-size:.78rem}
.hero-img{display:grid;place-items:center}
.hero-img img{width:min(78vw,430px);height:auto;border-radius:50%;box-shadow:0 40px 60px -30px rgba(24,63,38,.55)}
.float{animation:float 6s ease-in-out infinite}
@keyframes float{50%{transform:translateY(-10px) rotate(1.5deg)}}
@media(prefers-reduced-motion:reduce){.float{animation:none}html{scroll-behavior:auto}}
/* carte */
.section{padding:72px 0 0;max-width:1152px;margin:0 auto}
.section h2{font-size:clamp(1.9rem,4.4vw,2.9rem);padding:0 20px}
.sub{color:var(--dim);margin-top:8px}
.sec2{margin-top:72px}
.combo{display:flex;align-items:center;justify-content:space-between;gap:16px;max-width:560px;margin:26px auto 8px;padding:16px 26px;border-radius:999px;background:linear-gradient(135deg,#25663c,var(--green-deep));color:#fff;box-shadow:0 20px 40px -24px rgba(24,63,38,.8)}
.combo b{display:block;font:700 1.2rem var(--display)}.combo span{font-size:.82rem;opacity:.85}
.combo strong{font:700 1.5rem var(--display);background:var(--red);padding:2px 16px;border-radius:12px;transform:rotate(-3deg);white-space:nowrap}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:22px;padding:30px 12px 0}
@media(max-width:560px){.grid{grid-template-columns:1fr 1fr;gap:12px}}
.card{background:var(--surface);border-radius:999px 999px 26px 26px;padding:22px 18px 18px;display:flex;flex-direction:column;align-items:center;text-align:center;box-shadow:0 24px 60px -28px rgba(31,90,52,.35),0 2px 6px rgba(31,90,52,.05);transition:transform .2s,box-shadow .2s}
.card:hover{transform:translateY(-4px)}
.card .ph{width:100%;max-width:210px;aspect-ratio:1.45;display:grid;place-items:center;margin-bottom:6px;border-radius:50%}
.card .ph img{width:100%;height:auto;filter:drop-shadow(0 14px 14px rgba(24,63,38,.3))}
.card h3{font:700 1.08rem var(--display);margin-top:6px}
.card p{font-size:.78rem;color:var(--dim);margin-top:6px;flex:1}
.tag{display:inline-block;margin-top:8px;font-size:.62rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--line);border-radius:999px;padding:2px 9px;color:var(--red)}
.price{font:700 1.2rem var(--display);color:var(--red);margin:12px 0 10px}
.card .btn{width:100%;padding:.6rem 1rem}
@media(max-width:560px){.card{border-radius:80px 80px 22px 22px;padding:16px 10px 12px}.card p{font-size:.7rem}.card h3{font-size:.95rem}}
.two{display:grid;gap:22px;padding:40px 12px 0}
@media(min-width:760px){.two{grid-template-columns:1fr 1fr}}
.card-list{background:var(--surface);border-radius:28px;padding:26px 28px;box-shadow:0 24px 60px -28px rgba(31,90,52,.3)}
.card-list h3{font-size:1.5rem;margin-bottom:12px}
.card-list li{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 0;border-bottom:1px dashed var(--line);font-weight:600}
.card-list li:last-child{border:0}
.card-list li span{color:var(--red);font-family:var(--display);font-weight:700}
.card-list li button{margin-left:auto;margin-right:6px}
.mini{width:30px;height:30px;border-radius:50%;border:1.5px solid var(--line);background:#fff;font-weight:800;color:var(--red);cursor:pointer}
/* sections */
.reviews,.contact{padding:44px 24px;margin-top:56px;text-align:center}
.reviews .lede{margin-inline:auto}
.stars{color:#e0a21a;font-size:1.6rem;letter-spacing:.2em;margin-bottom:10px}
.reviews h2,.contact h2{font-size:clamp(1.7rem,4vw,2.4rem)}
.contact{display:flex;flex-wrap:wrap;gap:24px;align-items:center;justify-content:space-between;text-align:left;padding:36px 28px}
.contact-btns{display:flex;flex-wrap:wrap;gap:10px}
.foot{display:grid;justify-items:center;gap:4px;text-align:center;padding:48px 16px 120px;font-size:.9rem}
.foot img{border-radius:50%;margin-bottom:8px}.foot a{text-decoration:underline}
/* cart */
.cart-bar{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);z-index:40;display:flex;gap:14px;align-items:center;width:min(92vw,460px);justify-content:space-between;padding:14px 22px;border:0;border-radius:999px;background:linear-gradient(180deg,#2c7a47,var(--green-deep));color:#fff;font:700 .95rem var(--body);cursor:pointer;box-shadow:0 18px 40px -14px rgba(24,63,38,.9)}
.cart-bar[hidden],.sheet[hidden]{display:none}
#cart-count{background:var(--red);border-radius:999px;min-width:26px;height:26px;display:grid;place-items:center;font-size:.8rem}
.sheet{position:fixed;inset:0;z-index:50;display:flex;align-items:flex-end;justify-content:center}
.sheet-bg{position:absolute;inset:0;background:rgba(20,30,22,.5)}
.sheet-card{position:relative;background:var(--bg);width:min(100%,520px);max-height:92vh;overflow:auto;border-radius:28px 28px 0 0;padding:22px 20px 26px;display:grid;gap:12px}
@media(min-width:640px){.sheet{align-items:center}.sheet-card{border-radius:28px}}
.sheet-head{display:flex;justify-content:space-between;align-items:center}.sheet-head h3{font-size:1.5rem}
.x{border:0;background:#fff;width:34px;height:34px;border-radius:50%;cursor:pointer;font-size:.9rem}
.line{background:#fff;border-radius:18px;padding:12px 14px;display:grid;gap:8px}
.line-top{display:flex;justify-content:space-between;gap:10px;font-weight:700}
.line-top span{color:var(--red);white-space:nowrap}
.line-ctl{display:flex;align-items:center;gap:10px;justify-content:space-between;font-size:.82rem;color:var(--dim)}
.qty{display:flex;align-items:center;gap:10px;font-weight:700;color:var(--fg)}
.chk{display:flex;gap:8px;align-items:center;cursor:pointer}
.chk input{accent-color:var(--green);width:18px;height:18px}
.field{display:grid;gap:4px;font-size:.78rem;font-weight:700;color:var(--dim)}
.field input{font:500 1rem var(--body);padding:.7rem .9rem;border-radius:14px;border:1.5px solid var(--line);background:#fff;color:var(--fg)}
.field input:focus{outline:2px solid var(--green);border-color:transparent}
.sheet-total{display:flex;justify-content:space-between;font:700 1.25rem var(--display);padding-top:6px}
.empty{text-align:center;color:var(--dim);padding:20px}
:focus-visible{outline:2px solid var(--green);outline-offset:2px}
@media(min-width:900px){#grid-panuozzi{grid-template-columns:repeat(3,1fr)}}
/* v2 */
.bt{display:grid;line-height:1.05}.bt b{font:700 1.15rem var(--display)}.bt small{font:700 .56rem var(--body);letter-spacing:.2em;text-transform:uppercase;color:var(--red);margin-top:2px}
.card-list.wide{max-width:760px;margin:26px auto 0}
.card-list.wide li button{margin-left:auto}
.card{cursor:pointer;position:relative}
.card.off{opacity:.55;cursor:default}.card.off .ph img{filter:grayscale(1)}
.soldout{display:inline-block;margin-top:8px;font-size:.66rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#fff;background:var(--dim);border-radius:999px;padding:3px 10px}
.loyal{display:grid;gap:28px;padding:40px 24px;margin-top:56px;align-items:center}
@media(min-width:900px){.loyal{grid-template-columns:1.1fr 1fr;padding:48px 56px}}
.loyal h2{font-size:clamp(1.7rem,4vw,2.5rem)}
.loy-form{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.loy-form input,.field input,.field textarea{font:500 1rem var(--body);padding:.75rem 1rem;border-radius:999px;border:1.5px solid var(--line);background:#fff;color:var(--fg);flex:1;min-width:200px}
.err{color:var(--red-deep);font-weight:700;font-size:.85rem;margin-top:10px}
.stamp-card{background:#fff;border-radius:28px;padding:26px;box-shadow:0 24px 60px -28px rgba(31,90,52,.35);text-align:center}
.stamps{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;max-width:340px;margin:0 auto 14px}
.stamp{aspect-ratio:1;border-radius:50%;border:2px dashed var(--line);display:grid;place-items:center;font-size:1.3rem;color:var(--line);transition:.3s}
.stamp.on{border:2px solid var(--green);background:linear-gradient(180deg,#2c7a47,var(--green-deep));color:#fff}
.stamp.gift{border-color:var(--red);color:var(--red)}.stamp.gift.on{background:linear-gradient(180deg,#d8413a,var(--red-deep));color:#fff;border-color:var(--red)}
.stamp-card p{font-weight:600;color:var(--dim)}
/* modal */
.sheet-card{position:relative;background:var(--bg);width:min(100%,540px);max-height:92vh;overflow:auto;border-radius:28px 28px 0 0;padding:0 0 100px}
.m-head{position:relative;text-align:center;padding:26px 24px 8px}
.m-head .x{position:absolute;right:14px;top:14px}
.m-head img{width:230px;margin:0 auto 6px;filter:drop-shadow(0 14px 14px rgba(24,63,38,.3))}
.m-head h3{font-size:1.6rem}.m-head p{color:var(--dim);font-size:.85rem;margin-top:6px}
.m-sec{padding:14px 24px 0}
.m-sec h4{font:700 .72rem var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--red);margin-bottom:8px}
.upgrade{display:flex;gap:14px;align-items:center;justify-content:space-between;padding:14px 18px;border-radius:20px;border:2px solid var(--line);background:#fff;cursor:pointer;transition:.15s}
.upgrade.on{border-color:var(--green);background:#f1f8f1}
.upgrade b{display:block;font:700 1.05rem var(--display)}.upgrade span{font-size:.8rem;color:var(--dim)}
.upgrade strong{color:var(--red);font:700 1.1rem var(--display);white-space:nowrap}
.opts{display:grid;gap:8px}
.opt{display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:16px;background:#fff;border:1.5px solid var(--line);cursor:pointer;font-weight:600;font-size:.92rem}
.opt input{accent-color:var(--green);width:18px;height:18px}
.opt em{margin-left:auto;font-style:normal;color:var(--red);font-weight:700;white-space:nowrap}
.m-foot{position:sticky;bottom:0;display:flex;gap:12px;align-items:center;padding:14px 20px;background:linear-gradient(180deg,transparent,var(--bg) 24%);margin-top:-80px;padding-top:40px}
.m-foot .qty{background:#fff;border-radius:999px;padding:4px 6px;border:1.5px solid var(--line)}
.m-foot .btn{flex:1}
.qty{display:flex;align-items:center;gap:10px;font-weight:700}
.mini{width:30px;height:30px;border-radius:50%;border:1.5px solid var(--line);background:#fff;font-weight:800;color:var(--red);cursor:pointer;font-size:1rem}
.x{border:0;background:#fff;width:34px;height:34px;border-radius:50%;cursor:pointer;font-size:.9rem}
.toast{position:fixed;left:50%;bottom:90px;transform:translateX(-50%);z-index:60;background:var(--green-deep);color:#fff;padding:10px 20px;border-radius:999px;font-weight:700;font-size:.88rem;box-shadow:0 14px 30px -12px rgba(0,0,0,.5)}
.toast[hidden]{display:none}
/* pages checkout/suivi */
.page{max-width:980px;margin:0 auto;padding:24px 14px 80px}
.page h1{font-size:clamp(1.9rem,5vw,2.6rem);margin:10px 0 24px}
.co{display:grid;gap:22px}
@media(min-width:860px){.co{grid-template-columns:1.1fr 1fr;align-items:start}}
.box{background:#fff;border-radius:28px;padding:26px;box-shadow:0 24px 60px -28px rgba(31,90,52,.3)}
.box h2{font-size:1.35rem;margin-bottom:14px}
.field{display:grid;gap:5px;font-size:.78rem;font-weight:700;color:var(--dim);margin-bottom:14px}
.field input,.field textarea{border-radius:16px;min-width:0;width:100%;font-family:var(--body);resize:vertical}
.field input:focus,.field textarea:focus,.loy-form input:focus{outline:2px solid var(--green);border-color:transparent}
.cl{padding:12px 0;border-bottom:1px dashed var(--line);display:grid;gap:6px}
.cl-top{display:flex;justify-content:space-between;gap:10px;font-weight:700}.cl-top span{color:var(--red);white-space:nowrap}
.cl small{color:var(--dim);font-size:.78rem;line-height:1.4}
.cl-ctl{display:flex;justify-content:space-between;align-items:center}
.link{background:none;border:0;color:var(--faint);text-decoration:underline;cursor:pointer;font:600 .78rem var(--body)}
.sum{display:flex;justify-content:space-between;padding:8px 0;font-weight:600}
.sum.big{font:700 1.4rem var(--display);border-top:2px solid var(--line);margin-top:8px;padding-top:14px}
.reward{display:flex;gap:12px;align-items:center;padding:14px;border-radius:18px;background:#f1f8f1;border:2px solid var(--green);margin:6px 0 14px;cursor:pointer;font-weight:600;font-size:.9rem}
.reward input{accent-color:var(--green);width:20px;height:20px}
.mini-stamps{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0 14px}.mini-stamps i{width:18px;height:18px;border-radius:50%;border:2px dashed var(--line)}.mini-stamps i.on{background:var(--green);border:2px solid var(--green)}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:10px 0 22px;text-align:center;font-size:.72rem;font-weight:700;color:var(--faint)}
.steps div:before{content:"";display:block;height:6px;border-radius:6px;background:var(--line);margin-bottom:8px}
.steps div.on{color:var(--green)}.steps div.on:before{background:var(--green)}
.bignum{font:700 3rem var(--display);color:var(--red)}
.closed{background:var(--red-deep);color:#fff;text-align:center;padding:8px;font-weight:700;font-size:.85rem}
[hidden]{display:none!important}
/* ===================== v3 : icônes, animations, avis ===================== */
.ic{width:44px;height:44px;display:block;flex:none}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;padding:26px 12px 0;max-width:900px;margin:0 auto}
@media(max-width:560px){.tiles{grid-template-columns:1fr 1fr;gap:10px}}
.tile{background:#fff;border-radius:24px;padding:18px 12px 14px;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;box-shadow:0 18px 40px -26px rgba(31,90,52,.4);transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s}
.tile:hover{transform:translateY(-4px) rotate(-.6deg);box-shadow:0 26px 50px -24px rgba(31,90,52,.5)}
.tile .ibox{width:68px;height:68px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 30% 25%,#fff,var(--surface2));transition:transform .35s cubic-bezier(.3,1.6,.5,1)}
.tile:hover .ibox{transform:scale(1.12) rotate(-6deg)}
.tile .ic{width:44px;height:44px}
.tile b{font:700 .95rem var(--display)}.tile .p{font:700 1.05rem var(--display);color:var(--red)}
.tile .mini{margin-top:2px;width:36px;height:36px;font-size:1.2rem;transition:.2s}.tile .mini:hover{background:var(--red);color:#fff;transform:scale(1.1)}
.tile.off{opacity:.5}
.upgrade .ups{display:flex;gap:2px;align-items:center}.upgrade .ups .ic{width:34px;height:34px}.upgrade .ups .ic+.ic{margin-left:-4px}
.upgrade{transition:transform .2s,border-color .2s,background .2s}.upgrade:hover{transform:translateY(-1px)}
.upgrade .ck{width:24px;height:24px;border-radius:50%;border:2px solid var(--line);display:grid;place-items:center;color:transparent;transition:.25s;flex:none;font-size:.8rem}
.upgrade.on .ck{background:var(--green);border-color:var(--green);color:#fff;transform:scale(1.1)}
.opt .ic{width:30px;height:30px}
.sides{display:grid;gap:8px}
.side-row{display:flex;align-items:center;gap:12px;padding:8px 12px;background:#fff;border:1.5px solid var(--line);border-radius:16px}
.side-row .ic{width:34px;height:34px}.side-row b{flex:1;font-size:.9rem;line-height:1.2}.side-row small{display:block;color:var(--red);font-weight:700}
.side-row .qty{gap:8px}
/* reveal */
.reveal{opacity:0;transform:translateY(26px) scale(.985);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--i,0)*70ms)}
.reveal.in{opacity:1;transform:none}
.nojs .reveal{opacity:1;transform:none}
/* hero entrée */
.hero-txt>*{animation:rise .8s cubic-bezier(.2,.7,.2,1) both}
.hero-txt>:nth-child(1){animation-delay:.05s}.hero-txt>:nth-child(2){animation-delay:.15s}.hero-txt>:nth-child(3){animation-delay:.25s}.hero-txt>:nth-child(4){animation-delay:.35s}.hero-txt>:nth-child(5){animation-delay:.45s}
@keyframes rise{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
.hero-img img{animation:pop 1s cubic-bezier(.2,1.2,.3,1) .2s both,float 6s ease-in-out 1.2s infinite}
@keyframes pop{from{opacity:0;transform:scale(.6) rotate(-14deg)}to{opacity:1;transform:none}}
.hero{position:relative}
.blob{position:absolute;border-radius:50%;filter:blur(50px);opacity:.5;pointer-events:none;animation:drift 14s ease-in-out infinite alternate}
.blob.b1{width:260px;height:260px;background:#2c7a47;right:-60px;top:-60px}
.blob.b2{width:240px;height:240px;background:#d8413a;right:180px;bottom:-110px;animation-delay:-6s;opacity:.35}
@keyframes drift{to{transform:translate(-50px,40px) scale(1.2)}}
.hero-txt,.hero-img{position:relative;z-index:1}
/* nav / boutons */
.nav-in{transition:box-shadow .3s,background .3s,transform .3s}.nav.sc .nav-in{box-shadow:0 14px 34px -16px rgba(31,90,52,.6);background:rgba(255,252,243,.97)}
.btn{position:relative;overflow:hidden;transition:transform .2s cubic-bezier(.2,.8,.2,1),box-shadow .2s}
.btn:active{transform:scale(.96)}
.btn-primary:after{content:"";position:absolute;top:0;left:-70%;width:45%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.4),transparent);transform:skewX(-20deg);transition:left .6s}
.btn-primary:hover:after{left:130%}
.card{transition:transform .3s cubic-bezier(.2,.8,.2,1),box-shadow .3s}
.card:hover{transform:translateY(-6px);box-shadow:0 34px 70px -28px rgba(31,90,52,.5)}
.card .ph img{transition:transform .5s cubic-bezier(.2,.8,.2,1)}.card:hover .ph img{transform:scale(1.08) rotate(-2deg)}
.card:active{transform:scale(.98)}
.combo{animation:comboIn .9s cubic-bezier(.2,1.2,.3,1) both}
.combo strong{animation:wob 3.5s ease-in-out infinite}
@keyframes wob{50%{transform:rotate(3deg) scale(1.06)}}
.pill .pin{animation:ping 2.6s ease-out infinite}
@keyframes ping{0%{box-shadow:0 0 0 0 rgba(44,122,71,.5)}70%,100%{box-shadow:0 0 0 12px rgba(44,122,71,0)}}
/* modale */
.sheet:not([hidden]) .sheet-bg{animation:fade .3s both}
.sheet:not([hidden]) .sheet-card{animation:slideUp .45s cubic-bezier(.2,.9,.25,1) both}
@keyframes fade{from{opacity:0}}@keyframes slideUp{from{transform:translateY(60px);opacity:0}}
.sheet-bg{backdrop-filter:blur(3px)}
.m-head img{animation:pop .7s cubic-bezier(.2,1.2,.3,1) both}
.m-sec{animation:rise .5s cubic-bezier(.2,.7,.2,1) both}.m-sec:nth-of-type(2){animation-delay:.06s}.m-sec:nth-of-type(3){animation-delay:.12s}.m-sec:nth-of-type(4){animation-delay:.18s}
#menu-opts:not([hidden]){animation:rise .4s both}
.cart-bar{animation:barIn .5s cubic-bezier(.2,1.3,.3,1) both}.cart-bar.bump{animation:bump .4s}
@keyframes barIn{from{transform:translate(-50%,80px);opacity:0}}@keyframes bump{40%{transform:translateX(-50%) scale(1.06)}}
.toast{animation:rise .35s both}
/* fidélité animée */
.stamp-card{position:relative;overflow:hidden}
.stamp-card:before{content:"";position:absolute;inset:-40%;background:conic-gradient(from 0deg,transparent 0 70%,rgba(246,198,67,.25) 85%,transparent);animation:spin 9s linear infinite;pointer-events:none}
@keyframes spin{to{transform:rotate(360deg)}}
.stamp-card>*{position:relative}
.stamp{transition:background .3s,border-color .3s,color .3s}
.stamp.pop{animation:stampPop .6s cubic-bezier(.2,1.6,.4,1) both}
@keyframes stampPop{0%{transform:scale(.3) rotate(-40deg)}60%{transform:scale(1.25) rotate(8deg)}100%{transform:none}}
.stamp.gift:not(.on){animation:giftWob 2.4s ease-in-out infinite}
@keyframes giftWob{0%,70%,100%{transform:none}75%{transform:rotate(-14deg) scale(1.1)}85%{transform:rotate(12deg) scale(1.1)}}
.stamp.gift.on{animation:giftWin 1s cubic-bezier(.2,1.6,.4,1) both,glow 1.6s ease-in-out 1s infinite}
@keyframes giftWin{0%{transform:scale(.4)}60%{transform:scale(1.4) rotate(12deg)}100%{transform:scale(1.1)}}
@keyframes glow{50%{box-shadow:0 0 0 10px rgba(200,50,43,.18)}}
.confetti{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:2}
.confetti i{position:absolute;width:8px;height:12px;border-radius:2px;top:60%;animation:conf 1.4s cubic-bezier(.2,.8,.4,1) forwards}
@keyframes conf{to{transform:translate(var(--x),var(--y)) rotate(var(--r));opacity:0}}
.demo-tag{display:inline-block;font-size:.65rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);margin-bottom:10px}
/* avis */
.rev-head{display:grid;gap:14px;justify-items:center}
.rating{display:flex;align-items:center;gap:14px;background:#fff;border-radius:999px;padding:8px 24px 8px 10px;box-shadow:0 14px 30px -20px rgba(31,90,52,.5)}
.rating .big{font:700 2.4rem var(--display);width:76px;height:76px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(180deg,#2c7a47,var(--green-deep));color:#fff}
.rating small{color:var(--dim);font-weight:700;font-size:.8rem}.rating .stars{margin:0;font-size:1.15rem;letter-spacing:.1em;text-align:left}
.stars span,.stars.pulse{display:inline-block}
.reviews .stars.go{animation:starsIn 1s both}
@keyframes starsIn{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
.rev-grid{display:grid;gap:18px;margin:30px auto 8px;max-width:860px}
@media(min-width:760px){.rev-grid{grid-template-columns:1fr 1fr}}
.rev{background:#fff;border-radius:24px;padding:24px 24px 20px;text-align:left;box-shadow:0 24px 50px -30px rgba(31,90,52,.45);transition:transform .3s}
.rev:hover{transform:translateY(-4px)}
.rev .stars.sm{font-size:.95rem;margin-bottom:10px;letter-spacing:.12em}
.rev blockquote{font-size:.95rem;line-height:1.6;color:var(--fg)}
.rev figcaption{display:flex;gap:12px;align-items:center;margin-top:16px}
.rev .av{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font:700 1rem var(--display);color:#fff;background:var(--red)}.rev .av.g{background:var(--green)}
.rev b{display:block;font-size:.9rem}.rev small{color:var(--faint);font-weight:600}
.credit{margin-top:6px;font-size:.82rem;font-weight:600}.credit a{text-decoration:none;color:var(--green);border-bottom:1.5px solid var(--green)}.credit a:hover{color:var(--red);border-color:var(--red)}
/* checkout: mode */
.modes{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px}
.mode{position:relative;cursor:pointer}
.mode input{position:absolute;opacity:0}
.mode div{display:grid;gap:2px;justify-items:center;text-align:center;padding:14px 8px;border-radius:18px;border:2px solid var(--line);background:#fff;font-weight:700;font-size:.92rem;transition:.2s}
.mode small{color:var(--dim);font-weight:500;font-size:.72rem}.mode .em{font-size:1.5rem}
.mode input:checked+div{border-color:var(--green);background:#f1f8f1;transform:translateY(-2px);box-shadow:0 12px 24px -16px rgba(31,90,52,.6)}
.mode input:focus-visible+div{outline:2px solid var(--green);outline-offset:2px}
.ptag{display:inline-block;font-size:.66rem;font-weight:800;border-radius:999px;padding:2px 9px;letter-spacing:.06em;text-transform:uppercase;background:#e3eefb;color:#1d5a94}.ptag.in{background:#fdf0c9;color:#8a5d00;opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}
@media(max-width:560px){.tiles>.tile:last-child:nth-child(odd){grid-column:1/-1}.tiles>.tile:last-child:nth-child(odd) .ibox{width:60px;height:60px}}
@media(max-width:560px){.upgrade{padding:12px 14px;gap:10px}.upgrade b{font-size:.95rem;line-height:1.15}.upgrade span{font-size:.72rem}.upgrade .ups .ic{width:28px;height:28px}.upgrade strong{font-size:1rem}}
.tile .ibox .ti{width:100%;height:100%;object-fit:cover;border-radius:50%}
/* mobile : boissons & extras compacts */
@media(max-width:560px){
  .sec2{margin-top:44px}.section{padding-top:52px}
  .tiles{gap:8px;padding:16px 12px 0}
  #list-boissons .tile{display:grid;grid-template-columns:44px 1fr auto;grid-template-areas:"i n b" "i p b";column-gap:10px;row-gap:0;align-items:center;text-align:left;padding:8px 10px;border-radius:18px}
  #list-boissons .tile .ibox{grid-area:i;width:44px;height:44px}#list-boissons .tile .ic{width:28px;height:28px}
  #list-boissons .tile b{grid-area:n;font-size:.82rem;line-height:1.15}#list-boissons .tile .p{grid-area:p;font-size:.85rem}
  #list-boissons .tile .mini{grid-area:b;width:30px;height:30px;margin:0;font-size:1rem}
  #list-boissons .tile>.faint{grid-area:b}
  .tiles>.tile:last-child:nth-child(odd) .ibox{width:44px;height:44px}
  .tiles.extras{grid-template-columns:repeat(3,1fr);gap:8px}
  .tiles.extras .tile{padding:10px 4px 9px;gap:3px;border-radius:18px}.tiles.extras .tile:last-child:nth-child(odd){grid-column:auto}
  .tiles.extras .ibox{width:46px;height:46px}.tiles.extras .ic{width:30px;height:30px}
  .tiles.extras b{font-size:.78rem}.tiles.extras .p{font-size:.85rem}
  .tile:hover{transform:none}
}
/* hero plus compact */
.hero{padding:26px 22px;gap:14px}
@media(min-width:900px){.hero{padding:34px 48px}}
.hero h1{font-size:clamp(2rem,5.2vw,3.3rem)}
.hero .lede{margin-top:10px;font-size:.98rem}
.hero-cta{margin-top:18px}.pill{margin-top:16px}
.hero-img img{width:min(52vw,300px)}
@media(max-width:560px){.hero{padding:22px 18px}.hero-img{margin-top:-4px}.hero-img img{width:min(48vw,190px)}.hero-cta .btn-lg{padding:.75rem 1.4rem;font-size:.92rem}}
/* fidélité : stats + code */
.lstats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:16px}
.lstats div{background:var(--surface2);border-radius:16px;padding:10px 4px;display:grid;gap:2px;transition:.4s}
.lstats b{font:700 1.25rem var(--display);color:var(--green-deep)}.lstats small{font-size:.62rem;font-weight:700;color:var(--dim);line-height:1.15;padding:0 2px}
.lstats .hl{background:linear-gradient(180deg,#fdf0c9,#f9e2a0)}.lstats .hl b{color:#8a5d00}
.lstats.on div{animation:pop .5s cubic-bezier(.2,1.4,.4,1) both}.lstats.on div:nth-child(2){animation-delay:.08s}.lstats.on div:nth-child(3){animation-delay:.16s}
.loy-form input#loy-code{text-transform:uppercase;letter-spacing:.08em}
.codebox{margin-bottom:22px;text-align:center;border:2px dashed var(--green);display:grid;gap:10px;justify-items:center}
.codeval{font:700 2.2rem var(--display);letter-spacing:.14em;color:var(--green-deep);background:#f1f8f1;border-radius:16px;padding:8px 22px;user-select:all}
.hours-box{min-width:240px;background:rgba(255,255,255,.75);border-radius:22px;padding:16px 20px}
.hours-box ul{list-style:none;padding:0;display:grid;gap:4px;font-size:.88rem}.hours-box li{display:flex;justify-content:space-between;gap:20px;color:var(--dim);padding:3px 8px;border-radius:8px}
.hours-box li.td{background:#f1f8f1;color:var(--green-deep);font-weight:700}
.hstat{font-weight:800;font-size:.85rem;color:var(--red-deep);margin-bottom:8px}.hstat.on{color:var(--green)}
.contact .hours-box{flex:0 0 auto}
