/* GEO EATS Express - stile del sito. Font in locale (OFL), nessuna risorsa esterna. */
@font-face{font-family:"Cormorant Garamond";src:url(../fonts/cormorant.woff) format("woff");font-weight:400 700;font-style:normal;font-display:swap}
@font-face{font-family:"Cormorant Garamond";src:url(../fonts/cormorant-italic.woff) format("woff");font-weight:400 700;font-style:italic;font-display:swap}
@font-face{font-family:"Nunito Sans";src:url(../fonts/nunito.woff) format("woff");font-weight:400 800;font-style:normal;font-display:swap}

:root{
  --wine:#7d1c2e;--wine-d:#5a1321;--wine-l:#a32a41;
  --saffron:#e9a23b;--saffron-d:#b9700f;--saffron-l:#f7d58f;
  --cream:#faf3e6;--paper:#fffaf1;--sand:#f1e4cc;--line:#e6d6bb;
  --olive:#355a3a;--olive-d:#264129;--olive-l:#e4eedb;
  --ink:#2b1a14;--ink-2:#6b5448;--ink-3:#9a8577;
  --ok:#2f7d4f;--warn:#b8741a;--err:#b3261e;
  --r:16px;--r-sm:10px;--r-lg:28px;
  --shadow:0 1px 2px rgba(43,26,20,.06),0 10px 28px rgba(43,26,20,.08);
  --shadow-lg:0 24px 60px rgba(43,26,20,.22);
  --ff-d:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  --ff-b:"Nunito Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --wrap:1180px;--gut:20px;
  --ease:cubic-bezier(.2,.8,.2,1);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:110px}
body{margin:0;font-family:var(--ff-b);font-size:16.5px;line-height:1.6;color:var(--ink);background:var(--cream);
  background-image:radial-gradient(1200px 600px at 85% -10%,rgba(233,162,59,.16),transparent 60%),radial-gradient(900px 500px at -10% 30%,rgba(125,28,46,.06),transparent 60%);
  background-attachment:fixed;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden;font-variant-numeric:lining-nums}
img,svg{max-width:100%;display:block}
a{color:var(--wine);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:var(--wine-d)}
h1,h2,h3,h4{font-family:var(--ff-d);font-weight:700;line-height:1.05;margin:0 0 .5em;color:var(--ink);letter-spacing:-.01em}
h1{font-size:clamp(2.6rem,6.2vw,5rem);line-height:.98}
h2{font-size:clamp(2rem,4.2vw,3.2rem)}
h3{font-size:1.55rem}
.h3{font-size:1.45rem;display:flex;align-items:center;gap:.5em;margin-top:1.4em}
h1 em,h2 em{font-style:italic;color:var(--wine);background:linear-gradient(transparent 72%,rgba(233,162,59,.5) 72%,rgba(233,162,59,.5) 92%,transparent 92%);padding:0 .08em}
p{margin:0 0 1em}
ul,ol{margin:0;padding:0;list-style:none}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
hr{border:0;border-top:1px solid var(--line);margin:1rem 0}
:focus-visible{outline:3px solid var(--saffron-d);outline-offset:2px;border-radius:6px}
.ic{display:inline-block;width:1.15em;height:1.15em;flex:none;vertical-align:-.2em}
.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding:0 var(--gut)}
.narrow{max-width:820px}
.center{text-align:center}
.muted{color:var(--ink-2)}
.small{font-size:.9rem}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;opacity:0}
.skip{position:absolute;left:-999px;top:8px;background:var(--wine);color:#fff;padding:10px 16px;border-radius:8px;z-index:200}
.skip:focus{left:12px}
.eyebrow{display:inline-flex;align-items:center;gap:.5em;font-weight:800;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--saffron-d);margin:0 0 .9em}
.eyebrow a{color:inherit}
.lead{font-size:clamp(1.1rem,1.6vw,1.3rem);color:var(--ink-2);max-width:42ch}
.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow)}
.pad{padding:clamp(20px,3vw,32px)}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55em;border:2px solid transparent;border-radius:999px;padding:.72em 1.35em;font-weight:800;font-size:.98rem;line-height:1.1;text-decoration:none;white-space:nowrap;transition:transform .2s var(--ease),box-shadow .2s,background .2s,color .2s,border-color .2s;position:relative}
.btn:active{transform:scale(.97)}
.btn-primary{background:var(--wine);color:#fff;box-shadow:0 8px 22px rgba(125,28,46,.32)}
.btn-primary:hover{background:var(--wine-d);color:#fff;transform:translateY(-2px);box-shadow:0 12px 28px rgba(125,28,46,.4)}
.btn-ghost{background:transparent;border-color:var(--ink);color:var(--ink)}
.btn-ghost:hover{background:var(--ink);color:var(--paper)}
.btn-light{background:#fff;color:var(--wine)}
.btn-light:hover{background:var(--saffron-l);color:var(--wine-d);transform:translateY(-2px)}
.btn-lg{padding:.95em 1.7em;font-size:1.05rem}
.btn-sm{padding:.5em 1em;font-size:.85rem}
.btn-block{display:flex;width:100%}
.btn[disabled],.btn[aria-disabled=true]{opacity:.5;pointer-events:none}
.btn-add{background:var(--wine);color:#fff;padding:.6em 1.05em;font-size:.9rem}
.btn-add:hover{background:var(--wine-d);color:#fff}
.btn .spinner{display:none}
.btn.is-busy .btn-t{opacity:.0}
.btn.is-busy .spinner{display:block;position:absolute;inset:0;margin:auto}
.spinner{width:22px;height:22px;border-radius:50%;border:3px solid rgba(255,255,255,.4);border-top-color:#fff;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.iconbtn{display:inline-grid;place-items:center;width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:var(--paper)}
.iconbtn:hover{background:var(--sand)}
.link-arrow{display:inline-flex;align-items:center;gap:.4em;font-weight:800;text-decoration:none}
.link-arrow .ic{transition:transform .2s var(--ease)}
.link-arrow:hover .ic{transform:translateX(4px)}
.link-btn{background:none;border:0;padding:0;color:var(--wine);font-weight:800;text-decoration:underline;text-underline-offset:3px}

/* ---------- topbar + header ---------- */
.topbar{background:var(--ink);color:#f3e7d3;font-size:.8rem}
.topbar-in{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:36px}
.tb-hours{display:flex;align-items:center;gap:.5em;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tb-links{display:flex;align-items:center;gap:18px}
.tb-link{display:inline-flex;align-items:center;gap:.4em;background:none;border:0;color:inherit;padding:0;text-decoration:none;font-weight:700}
.tb-link:hover{color:var(--saffron-l)}
.tb-ic{color:inherit;display:inline-grid;place-items:center}
.tb-ic:hover{color:var(--saffron-l)}
.notice{background:var(--saffron);color:var(--ink);font-weight:700;font-size:.92rem}
.notice .wrap{display:flex;gap:.6em;align-items:center;padding-top:9px;padding-bottom:9px}
.hdr{position:sticky;top:0;z-index:60;background:rgba(250,243,230,.86);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid rgba(230,214,187,.8)}
.hdr-in{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:72px}
.brand{display:block;flex:none;line-height:0}
.brand img{height:38px;width:auto}
.nav{display:flex;align-items:center;gap:4px}
.nav a{display:inline-flex;align-items:center;gap:.45em;padding:.55em .85em;border-radius:999px;text-decoration:none;color:var(--ink);font-weight:700;font-size:.93rem;white-space:nowrap;transition:background .2s}
@media (max-width:1400px) and (min-width:1101px){.nav a{padding:.5em .62em;font-size:.9rem}.nav a.nav-order{margin:0 2px}.hdr-in{gap:12px}.locpill{max-width:150px}}
@media (max-width:1290px) and (min-width:1101px){.nav a.nav-home{display:none}}
.nav a:hover{background:var(--sand)}
.nav a.is-active{color:var(--wine);background:rgba(125,28,46,.08)}
.nav a.nav-order{background:var(--olive);color:#fff;margin:0 4px}
.nav a.nav-order:hover{background:var(--olive-d)}
.hdr-tools{display:flex;align-items:center;gap:8px}
.locpill{display:inline-flex;align-items:center;gap:.5em;background:var(--paper);border:1px solid var(--line);border-radius:999px;padding:.45em .9em;font-weight:800;font-size:.85rem;max-width:170px}
.locpill:hover{border-color:var(--wine)}
.locpill-t{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dot{width:9px;height:9px;border-radius:50%;background:var(--ink-3);flex:none;display:inline-block}
.dot-open{background:#2fae5f;box-shadow:0 0 0 0 rgba(47,174,95,.6);animation:ping 2s infinite}
.dot-closed{background:var(--warn)}
.dot-soon{background:var(--ink-3)}
.dot-none{background:var(--saffron)}
@keyframes ping{70%{box-shadow:0 0 0 8px rgba(47,174,95,0)}100%{box-shadow:0 0 0 0 rgba(47,174,95,0)}}
.lang{display:inline-flex;border:1px solid var(--line);border-radius:999px;overflow:hidden;background:var(--paper)}
.lang a{padding:.4em .7em;font-weight:800;font-size:.78rem;text-decoration:none;color:var(--ink-2)}
.lang a.is-on{background:var(--ink);color:#fff}
.cartbtn{position:relative;display:inline-grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--wine);color:#fff;border:0;transition:transform .2s var(--ease)}
.cartbtn:hover{transform:scale(1.07)}
.cartbtn .ic{width:21px;height:21px}
.cartbtn-n{position:absolute;top:-4px;right:-4px;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:var(--saffron);color:var(--ink);font-size:.72rem;font-weight:800;display:grid;place-items:center;border:2px solid var(--cream)}
.cartbtn.bump{animation:bump .5s var(--ease)}
@keyframes bump{30%{transform:scale(1.25) rotate(-8deg)}60%{transform:scale(.95)}}
.nav-lang{display:none}
.burger{display:none;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:var(--paper);place-items:center}

/* ---------- sections ---------- */
.sec{padding:clamp(44px,6vw,80px) 0}
.sec-alt{background:linear-gradient(180deg,rgba(241,228,204,.55),rgba(241,228,204,.2))}
.sec-head{max-width:760px;margin-bottom:clamp(28px,4vw,48px)}
.sec-head-row{max-width:none;display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap}
.sec-head h2{margin-bottom:.25em}
.page-head{padding:clamp(40px,6vw,76px) 0 clamp(8px,2vw,24px)}
.page-head-sm{padding-bottom:0}
.page-head h1{font-size:clamp(2.4rem,5.4vw,4.2rem)}

/* reveal */
.js .reveal{opacity:0;transform:translateY(22px);transition:opacity .8s var(--ease),transform .8s var(--ease);transition-delay:var(--d,0ms)}
.js .reveal.is-in{opacity:1;transform:none}

/* ---------- hero ---------- */
.hero{position:relative;padding:clamp(28px,5vw,64px) 0 clamp(40px,6vw,84px);overflow:hidden}
.hero-bg{position:absolute;inset:-20% -10% auto auto;width:70%;height:120%;background:radial-gradient(closest-side,rgba(233,162,59,.35),transparent 70%);pointer-events:none}
.hero-grid{position:relative;display:grid;grid-template-columns:1.02fr 1fr;gap:clamp(24px,5vw,64px);align-items:center}
.hero-copy h1{margin-bottom:.3em}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin:1.6rem 0 1.6rem}
.hero-points{display:grid;grid-template-columns:1fr 1fr;gap:10px 18px;max-width:520px}
.hero-points li{display:flex;align-items:center;gap:.6em;font-weight:700;font-size:.92rem;color:var(--ink-2)}
.hero-points .ic{color:var(--olive);width:1.4em;height:1.4em;padding:.28em;background:var(--olive-l);border-radius:50%;box-sizing:content-box}
.hero-visual{position:relative;display:grid;place-items:center;padding:10px 0 34px}
.plate{position:relative;width:100%;max-width:660px;aspect-ratio:583/420;transform:perspective(1100px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .25s var(--ease);will-change:transform}
.plate img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 30px 28px rgba(43,26,20,.28));animation:floaty 7s ease-in-out infinite}
@keyframes floaty{50%{transform:translateY(-8px) rotate(.6deg)}}
.yolk-hit{position:absolute;left:42.9%;top:28.8%;width:16%;aspect-ratio:1.35;transform:translate(-50%,-50%);border-radius:50%;border:0;background:transparent;padding:0;z-index:3}
.yolk-ring{position:absolute;inset:-10%;border-radius:50%;border:3px solid #fff;box-shadow:0 0 0 3px rgba(125,28,46,.5);animation:ring 1.8s ease-out infinite;opacity:.9}
@keyframes ring{0%{transform:scale(.7);opacity:.95}100%{transform:scale(1.7);opacity:0}}
.yolk-hit:hover .yolk-ring{animation-duration:1s}
.yolk-burst{position:absolute;left:42.9%;top:28.8%;width:0;height:0;z-index:2;pointer-events:none}
.yolk-burst b{position:absolute;left:0;top:0;width:150px;height:110px;margin:-55px 0 0 -75px;border-radius:50% 46% 54% 48%;background:radial-gradient(circle at 40% 35%,#ffe27a,#f2a516 70%);opacity:0;transform:scale(.2)}
.yolk-burst i{position:absolute;left:0;top:0;width:14px;height:20px;margin:-10px 0 0 -7px;border-radius:50% 50% 50% 50%/60% 60% 40% 40%;background:#f2a516;opacity:0}
.plate.is-broken .yolk-hit{pointer-events:none}
.plate.is-broken .yolk-ring{display:none}
.plate.is-broken .yolk-burst b{animation:splat 1.6s var(--ease) forwards}
.plate.is-broken .yolk-burst i{animation:drip 1.1s var(--ease) forwards}
.yolk-burst i:nth-child(1){--x:-120px;--y:-70px}.yolk-burst i:nth-child(2){--x:-60px;--y:-110px}.yolk-burst i:nth-child(3){--x:70px;--y:-100px}
.yolk-burst i:nth-child(4){--x:130px;--y:-40px}.yolk-burst i:nth-child(5){--x:-100px;--y:40px}.yolk-burst i:nth-child(6){--x:100px;--y:70px}
@keyframes splat{0%{opacity:0;transform:scale(.2)}18%{opacity:.95;transform:scale(1)}100%{opacity:0;transform:scale(2.6)}}
@keyframes drip{0%{opacity:1;transform:translate(0,0) scale(.6)}100%{opacity:0;transform:translate(var(--x),calc(var(--y) + 80px)) scale(1.1)}}
.plate.is-wobble{animation:wobble .6s var(--ease)}
@keyframes wobble{25%{transform:perspective(1100px) rotate(-1.6deg) scale(1.02)}60%{transform:perspective(1100px) rotate(1deg) scale(.995)}}
.yolk-hint{position:absolute;left:50%;bottom:-2px;transform:translateX(-50%);margin:0;font-weight:800;font-size:.85rem;color:var(--ink-2);display:flex;align-items:center;gap:.5em;white-space:nowrap}
.yolk-hint .hint-b{display:none;color:var(--wine)}
.hero-visual.is-done .hint-a{display:none}.hero-visual.is-done .hint-b{display:inline}
.spin-badge{position:absolute;left:-2%;bottom:6%;width:118px;height:118px;border-radius:50%;background:var(--paper);box-shadow:var(--shadow);display:grid;place-items:center;z-index:4}
.spin-badge>svg{position:absolute;inset:0;width:100%;height:100%;animation:spin 22s linear infinite}
.spin-badge text{font:800 11.5px var(--ff-b);letter-spacing:.14em;fill:var(--wine)}
.spin-badge span .ic{width:22px;height:22px}
.spin-badge span{width:46px;height:46px;border-radius:50%;background:var(--wine);color:#fff;display:grid;place-items:center}
.float-chip{position:absolute;display:inline-flex;align-items:center;gap:.4em;background:var(--paper);border:1px solid var(--line);border-radius:999px;padding:.4em .8em;font-weight:800;font-size:.8rem;box-shadow:var(--shadow);z-index:4;animation:bob 5s ease-in-out infinite}
.float-chip .ic{color:var(--olive)}
.fc1{top:2%;left:4%}.fc2{top:8%;right:0;animation-delay:-1.5s}.fc2 .ic{color:#d62f1a}.fc3{bottom:22%;right:-2%;animation-delay:-3s}.fc3 .ic{color:var(--saffron-d)}
@keyframes bob{50%{transform:translateY(-10px)}}

/* marquee */
.marquee{background:var(--wine);color:var(--cream);overflow:hidden;white-space:nowrap;border-block:3px solid var(--wine-d);position:relative}
.marquee::before,.marquee::after{content:"";position:absolute;top:0;bottom:0;width:60px;z-index:2}
.marquee-track{display:inline-flex;animation:marq 32s linear infinite;padding:.55em 0}
.marquee-track span{font-family:var(--ff-d);font-style:italic;font-weight:600;font-size:clamp(1.3rem,2.6vw,1.9rem);padding-right:.5em}
@keyframes marq{to{transform:translateX(-50%)}}
.marquee:hover .marquee-track{animation-play-state:paused}

/* how */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;counter-reset:s}
.step{position:relative;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);padding:26px 22px 24px;box-shadow:var(--shadow);transition:transform .3s var(--ease)}
.step:hover{transform:translateY(-6px) rotate(-.4deg)}
.step-n{position:absolute;right:16px;top:6px;font-family:var(--ff-d);font-weight:700;font-size:4.6rem;line-height:1;color:rgba(125,28,46,.1)}
.step-ic{display:grid;place-items:center;width:54px;height:54px;border-radius:16px;background:var(--wine);color:#fff;margin-bottom:16px;transform:rotate(-6deg)}
.step-ic .ic{width:26px;height:26px}
.step h3{font-size:1.45rem;margin-bottom:.3em}
.step p{margin:0;color:var(--ink-2);font-size:.97rem}

/* ---------- product cards ---------- */
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(262px,1fr));gap:22px}
.pgrid-3{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.pcard{position:relative;display:flex;flex-direction:column;height:100%;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow);transition:transform .35s var(--ease),box-shadow .35s}
.pcard:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg)}
.pcard-media{position:relative;display:block;overflow:hidden;aspect-ratio:4/3;border:0;padding:0;background:radial-gradient(closest-side at 50% 55%,#fff6df,var(--sand) 90%);width:100%}
.pcard-media img{position:absolute;left:14px;top:12px;width:calc(100% - 28px);height:calc(100% - 24px);max-width:none;object-fit:contain;filter:drop-shadow(0 14px 14px rgba(43,26,20,.28));transition:transform .5s var(--ease)}
.noimg{position:absolute;inset:0;display:grid;place-items:center;color:var(--wine);opacity:.55}
.noimg .ic{width:56px;height:56px;stroke-width:1.4}
.pcard-mini .noimg .ic{width:34px;height:34px}
.tag-alcohol{background:#f3e0e4;color:var(--wine)}
.pcard:hover .pcard-media img{transform:scale(1.08) rotate(-3deg)}
.tag-row{position:absolute;left:12px;top:12px;display:flex;gap:6px;flex-wrap:wrap}
.tag{display:inline-flex;align-items:center;gap:.3em;padding:.25em .65em;border-radius:999px;font-size:.72rem;font-weight:800;background:#fff;color:var(--ink);box-shadow:0 2px 8px rgba(43,26,20,.12)}
.tag-new{background:var(--saffron);color:var(--ink)}.tag-veg{color:var(--olive)}.tag-spicy{color:#c22a14}
.ribbon{position:absolute;right:-34px;top:20px;transform:rotate(38deg);background:var(--ink);color:#fff;font-size:.72rem;font-weight:800;padding:.3em 2.4em;letter-spacing:.06em;text-transform:uppercase}
.pcard-body{display:flex;flex-direction:column;flex:1;padding:18px 20px 20px}
.pcard-body h3{font-size:1.5rem;margin-bottom:.25em}
.pcard-desc{color:var(--ink-2);font-size:.93rem;margin-bottom:1em;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.pcard-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:auto}
.price{line-height:1.15}
.price b{font-family:var(--ff-d);font-size:1.7rem;font-weight:700;color:var(--wine)}
.price .from{font-size:.78rem;font-weight:700;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em}
.price .stud{display:flex;align-items:center;gap:.3em;font-size:.76rem;font-weight:800;color:var(--olive)}
.pcard.is-off{opacity:.72}
.pcard.is-off .pcard-media img{filter:grayscale(.7) drop-shadow(0 10px 10px rgba(43,26,20,.2))}
.pcard.is-hidden{display:none}
.hscroll{overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding:12px 0 28px;scrollbar-width:thin}
.hscroll-in{display:flex;gap:20px;width:max-content;padding:0 max(var(--gut),calc((100vw - var(--wrap)) / 2 + var(--gut)))}
.hscroll .pcard{width:290px;scroll-snap-align:start;flex:none}
.pcard-mini{flex-direction:row;align-items:center;gap:12px;border-radius:18px;box-shadow:none;padding:8px 12px 8px 8px}
.pcard-mini:hover{transform:none;box-shadow:var(--shadow)}
.pcard-mini .pcard-media{width:92px;flex:none;aspect-ratio:1;border-radius:14px}
.pcard-mini .pcard-media img{left:6px;top:6px;width:calc(100% - 12px);height:calc(100% - 12px)}
.pcard-mini .tag-row,.pcard-mini .ribbon{display:none}
.pcard-mini .pcard-body{padding:0;flex:1;min-width:0}
.pcard-mini h3{font-size:1.15rem;line-height:1.1;margin-bottom:.2em}
.pcard-mini .pcard-foot{flex-wrap:wrap}
.pcard-mini .price b{font-size:1.3rem}
.pcard-mini .btn-add span{display:none}
.pcard-mini .btn-add{padding:.55em}

/* ---------- finder ---------- */
.finder{background:linear-gradient(180deg,transparent,rgba(53,90,58,.08) 50%,transparent)}
.finder-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,5vw,64px);align-items:center}
.fgroup{border:0;padding:0;margin:0 0 1.4rem}
.fgroup legend{font-weight:800;margin-bottom:.6rem;padding:0}
.fchips{display:flex;flex-wrap:wrap;gap:8px}
.fchip{display:inline-flex;align-items:center;gap:.45em;border:1.5px solid var(--line);background:var(--paper);border-radius:999px;padding:.55em 1em;font-weight:800;font-size:.9rem;transition:all .2s var(--ease)}
.fchip:hover{border-color:var(--wine);transform:translateY(-2px)}
.fchip.is-on,.fchip[aria-pressed=true]{background:var(--wine);border-color:var(--wine);color:#fff;box-shadow:0 6px 16px rgba(125,28,46,.3)}
.finder-out{display:grid;gap:18px;justify-items:center}
.fboat-wrap{width:100%;max-width:520px;padding:10px;position:relative}
.fboat{width:100%;height:auto;filter:drop-shadow(0 22px 20px rgba(43,26,20,.25))}
.tp{opacity:0;transform:scale(.4);transform-origin:160px 100px;transition:opacity .45s var(--ease),transform .55s cubic-bezier(.3,1.5,.5,1)}
.tp.is-on{opacity:1;transform:none}
.fresult{width:100%;max-width:520px;min-height:120px}
.fres-card{display:flex;align-items:center;gap:16px;background:var(--paper);border:1px solid var(--line);border-radius:22px;padding:14px 16px;box-shadow:var(--shadow);animation:pop .5s var(--ease)}
@keyframes pop{from{opacity:0;transform:translateY(10px) scale(.96)}}
.fres-card img{width:110px;height:auto;flex:none;filter:drop-shadow(0 8px 8px rgba(43,26,20,.25))}
.fres-card .k{font-size:.74rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--saffron-d)}
.fres-card h3{font-size:1.4rem;margin:.1em 0 .2em}
.fres-card .price b{font-size:1.5rem}
.fres-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:.5em}

/* story */
.story-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,5vw,72px);align-items:center}
.story-img{background:radial-gradient(closest-side,#fff3d4,transparent 75%);padding:20px}
.story-img img{width:100%;height:auto;filter:drop-shadow(0 26px 24px rgba(43,26,20,.28));transform:rotate(-4deg);transition:transform .6s var(--ease)}
.story-img:hover img{transform:rotate(2deg) scale(1.04)}
.story-copy p{color:var(--ink-2);max-width:52ch}

/* ---------- locations ---------- */
.lgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:20px}
.lgrid-lg{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.lcard{height:100%;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);padding:26px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:6px;position:relative;overflow:hidden;transition:transform .3s var(--ease)}
.lcard:hover{transform:translateY(-4px)}
.lcard h3{font-size:2rem;margin:.1em 0 .1em}
.lcard-top{display:flex;align-items:center;gap:.6em;font-weight:800;font-size:.84rem;color:var(--ink-2)}
.lcard-addr{display:flex;gap:.5em;align-items:flex-start;color:var(--ink-2);margin:.2em 0 .6em}
.lcard-soon{background:repeating-linear-gradient(135deg,var(--paper),var(--paper) 12px,#f8eed9 12px,#f8eed9 24px)}
.hours{display:grid;gap:4px;margin:.2em 0 .8em;font-size:.95rem}
.hours li{display:flex;gap:10px;align-items:baseline}
.hours li span{color:var(--ink-2)}
.hours li::after{content:"";order:1;flex:1;border-bottom:1.5px dotted var(--line);transform:translateY(-3px)}
.hours li b{order:2;font-weight:800}
.hours-lg{font-size:1.05rem}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:.2em 0}
.chip{display:inline-flex;align-items:center;gap:.4em;background:var(--olive-l);color:var(--olive-d);padding:.3em .75em;border-radius:999px;font-size:.78rem;font-weight:800}
.lcard-cta{display:flex;gap:10px;flex-wrap:wrap;margin-top:auto;padding-top:14px}
.open-cta{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-top:28px}
.open-cta h2{font-size:1.9rem;margin:0 0 .2em}
.detail-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:24px;align-items:start}
.infolist{display:grid;gap:10px;margin-bottom:1em}
.infolist li{display:flex;gap:.7em;align-items:flex-start}
.infolist .ic{margin-top:.25em;color:var(--wine)}
.mapbox{min-height:340px;border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--line);background:var(--sand);box-shadow:var(--shadow)}
.mapbox iframe{width:100%;height:100%;min-height:340px;border:0;display:block}
.map-ph{height:100%;min-height:340px;display:grid;place-content:center;justify-items:center;gap:10px;text-align:center;padding:20px;background:repeating-linear-gradient(45deg,#f6ead2,#f6ead2 14px,#f1e2c4 14px,#f1e2c4 28px)}
.map-ph .ic{width:38px;height:38px;color:var(--wine)}

/* student + delivery + faq + cta */
.student-card{display:grid;grid-template-columns:auto 1fr auto;gap:28px;align-items:center;background:linear-gradient(120deg,var(--wine),var(--wine-d));color:#fff;border-radius:var(--r-lg);padding:clamp(26px,4vw,48px);box-shadow:var(--shadow-lg);position:relative;overflow:hidden}
.student-card::after{content:"";position:absolute;right:-60px;top:-60px;width:240px;height:240px;border-radius:50%;background:radial-gradient(closest-side,rgba(233,162,59,.4),transparent)}
.student-card h2{color:#fff;margin:0 0 .2em;font-size:clamp(1.8rem,3.2vw,2.6rem)}
.student-card p{margin:0;max-width:58ch;color:#f6dfe3}
.student-card .eyebrow{color:var(--saffron-l)}
.student-ic{display:grid;place-items:center;width:84px;height:84px;border-radius:24px;background:rgba(255,255,255,.14);transform:rotate(-6deg)}
.student-ic .ic{width:42px;height:42px}
.delivery-in{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.delivery-in h2{font-size:2rem;margin:0}
.dlogos{display:flex;gap:14px;flex-wrap:wrap}
.dlogo{display:flex;align-items:center;gap:10px;background:var(--paper);border:1px solid var(--line);border-radius:999px;padding:6px 18px 6px 6px;font-weight:800;text-decoration:none;color:var(--ink)}
.dlogo img{width:44px;height:44px;border-radius:50%;object-fit:cover;mix-blend-mode:multiply}
a.dlogo:hover{border-color:var(--wine);transform:translateY(-2px)}
.qa{background:var(--paper);border:1px solid var(--line);border-radius:18px;margin-bottom:12px;overflow:hidden;transition:box-shadow .2s}
.qa[open]{box-shadow:var(--shadow)}
.qa summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 22px;font-weight:800;font-size:1.05rem}
.qa summary::-webkit-details-marker{display:none}
.qa summary .ic{transition:transform .3s var(--ease);color:var(--wine)}
.qa[open] summary .ic{transform:rotate(180deg)}
.qa-a{padding:0 22px 20px;color:var(--ink-2)}
.cta-band{position:relative;background:var(--ink);color:#fff;padding:clamp(44px,7vw,84px) 0;text-align:center;overflow:hidden}
.cta-band::before{content:"";position:absolute;inset:auto 0 100% 0;height:14px;background:linear-gradient(135deg,var(--ink) 25%,transparent 25%) -7px 0/14px 14px,linear-gradient(225deg,var(--ink) 25%,transparent 25%) -7px 0/14px 14px;transform:translateY(14px)}
.cta-band::after{content:"";position:absolute;left:50%;top:-80%;width:900px;height:900px;margin-left:-450px;background:radial-gradient(closest-side,rgba(233,162,59,.22),transparent 70%)}
.cta-in{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;gap:28px;flex-wrap:wrap}
.cta-in h2{color:#fff;margin:0;font-size:clamp(2rem,4.4vw,3.4rem)}
.cta-in h2 em{background:none;color:var(--saffron)}

/* ---------- menu page ---------- */
.menu-loc{display:flex;gap:.5em;align-items:center;flex-wrap:wrap;color:var(--ink-2);font-weight:700;margin-top:1rem}
.menu-bar{position:sticky;top:72px;z-index:40;background:rgba(250,243,230,.92);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-block:1px solid var(--line);margin-top:20px}
.menu-bar-in{display:flex;align-items:center;justify-content:space-between;gap:14px;padding-top:12px;padding-bottom:12px}
.menu-bar .fchips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding:2px}
.menu-bar .fchip{white-space:nowrap;padding:.45em .9em}
.menu-bar .fchips{flex:1 1 auto;min-width:0}
.menu-bar .fchip{flex:0 0 auto}
@media (min-width:821px){.menu-bar .fchips{flex-wrap:wrap;overflow:visible}}
.search{display:flex;align-items:center;gap:.5em;background:var(--paper);border:1.5px solid var(--line);border-radius:999px;padding:.4em .9em;min-width:200px}
.search input{border:0;background:transparent;outline:0;width:100%;font-size:.92rem}
.search:focus-within{border-color:var(--wine)}
.menu-cat{margin-bottom:clamp(36px,5vw,64px)}
.menu-cat.is-hidden{display:none}
.cat-title{display:flex;align-items:baseline;gap:12px;margin-bottom:.8em}
.cat-title span{font:800 .8rem var(--ff-b);background:var(--wine);color:#fff;border-radius:999px;padding:.2em .7em}
.empty{text-align:center;color:var(--ink-2);padding:30px 0}
.xgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px}
.xcard{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);padding:26px;box-shadow:var(--shadow);position:relative}
.xcard-ic{display:grid;place-items:center;width:52px;height:52px;border-radius:16px;background:var(--saffron-l);color:var(--wine);margin-bottom:14px}
.xcard h3{margin-bottom:.2em}
.xcard p{color:var(--ink-2)}
.xprice{font-family:var(--ff-d);font-size:2rem;color:var(--wine)}
.xcard-stud{background:var(--olive-l)}
.tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);background:var(--paper)}
.atable{width:100%;border-collapse:collapse;font-size:.95rem}
.atable th,.atable td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--line)}
.atable thead th{background:var(--sand);font-size:.8rem;letter-spacing:.08em;text-transform:uppercase}
.atable tbody th{font-weight:800}
.atable tr:last-child th,.atable tr:last-child td{border-bottom:0}

/* ---------- order ---------- */
.order-grid{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:26px;align-items:start}
.order-main{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;min-width:0}
.ostep{padding:clamp(18px,2.6vw,28px)}
.ostep-head{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.ostep-head h2{font-size:1.7rem;margin:0}
.ostep-n{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--wine);color:#fff;font-weight:800;font-size:.95rem;flex:none}
.ostep.is-done .ostep-n{background:var(--olive)}
.oloc{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}
.locopt-st{display:inline-flex;align-items:center;gap:.5em;font-size:.82rem;font-weight:800;color:var(--ink-2);margin-top:2px}
.olines{display:grid;gap:10px}
.oline{display:grid;grid-template-columns:64px 1fr auto;gap:12px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:16px;background:#fff}
.oline img{width:64px;height:48px;object-fit:contain}
.oline b{display:block;line-height:1.2}
.oline small{display:block;color:var(--ink-2)}
.oline-r{display:grid;justify-items:end;gap:6px}
.qty{display:inline-flex;align-items:center;border:1.5px solid var(--line);border-radius:999px;background:var(--paper)}
.qty button{width:32px;height:32px;border:0;background:transparent;border-radius:50%;display:grid;place-items:center}
.qty button:hover{background:var(--sand)}
.qty span{min-width:26px;text-align:center;font-weight:800}
.addmore{margin-top:14px;border-top:1px dashed var(--line);padding-top:12px}
.addmore summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:.5em;font-weight:800;color:var(--wine)}
.addmore summary::-webkit-details-marker{display:none}
.addmore summary .ic:last-child{margin-left:auto;transition:transform .3s}
.addmore[open] summary .ic:last-child{transform:rotate(180deg)}
.pickgrid{display:grid;gap:10px;margin-top:14px}
.pick-cat{font-size:1.2rem;margin:.6em 0 0;color:var(--ink-2)}
.days{display:flex;gap:8px;overflow-x:auto;padding:4px 2px 10px;scroll-snap-type:x proximity;scrollbar-width:thin}
.daychip{flex:none;scroll-snap-align:start;display:grid;justify-items:center;gap:0;min-width:74px;padding:10px 8px;border:1.5px solid var(--line);border-radius:18px;background:var(--paper);transition:all .2s var(--ease);position:relative}
.daychip small{font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-2)}
.daychip b{font-family:var(--ff-d);font-size:1.9rem;line-height:1.1}
.daychip:hover:not([disabled]){border-color:var(--wine);transform:translateY(-2px)}
.daychip[aria-checked=true]{background:var(--wine);border-color:var(--wine);color:#fff;box-shadow:0 8px 20px rgba(125,28,46,.3)}
.daychip[aria-checked=true] small{color:#f6dfe3}
.daychip.is-closed{opacity:.5;background:repeating-linear-gradient(135deg,var(--paper),var(--paper) 6px,var(--sand) 6px,var(--sand) 12px)}
.daychip em{position:absolute;bottom:-8px;font-style:normal;font-size:.62rem;font-weight:800;background:var(--ink);color:#fff;border-radius:999px;padding:.05em .6em}
.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(82px,1fr));gap:8px;margin-top:6px;min-height:46px}
.slot{position:relative;padding:.65em .3em;border:1.5px solid var(--line);border-radius:12px;background:var(--paper);font-weight:800;font-size:.95rem;transition:all .15s var(--ease);display:grid;justify-items:center;line-height:1.15}
.slot small{font-size:.62rem;color:var(--ink-3);font-weight:700}
.slot:hover:not([disabled]){border-color:var(--wine);transform:translateY(-2px)}
.slot[aria-checked=true]{background:var(--wine);border-color:var(--wine);color:#fff;box-shadow:0 6px 16px rgba(125,28,46,.3)}
.slot[aria-checked=true] small{color:#f6dfe3}
.slot.is-low small{color:var(--warn)}
.slot[disabled]{opacity:.4;text-decoration:line-through;background:var(--sand)}
.slot-note{margin:10px 0 0;color:var(--ink-2);font-size:.92rem;min-height:1.4em}
.slots-loading{grid-column:1/-1;color:var(--ink-2);font-size:.92rem}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:12px}
.field{display:grid;gap:6px}
.field.fw{grid-column:1/-1}
.field>span{font-weight:800;font-size:.88rem}
.field i{font-weight:600;color:var(--ink-3);font-style:normal}
.field input,.field select,.field textarea{width:100%;padding:.8em 1em;border:1.5px solid var(--line);border-radius:14px;background:#fff;outline:0;transition:border-color .2s,box-shadow .2s}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--wine);box-shadow:0 0 0 4px rgba(125,28,46,.12)}
.field.has-err input,.field.has-err textarea{border-color:var(--err);box-shadow:0 0 0 4px rgba(179,38,30,.12)}
.field input[type=file]{padding:.6em}
.check{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border:1.5px solid var(--line);border-radius:14px;background:#fff;margin-top:10px;cursor:pointer}
.check:has(input:checked){border-color:var(--olive);background:var(--olive-l)}
.check input{width:20px;height:20px;margin-top:2px;accent-color:var(--olive);flex:none}
.check b{display:flex;align-items:center;gap:.5em}
.check small{display:block;color:var(--ink-2);font-size:.85rem;font-weight:600}
.payopts{display:grid;gap:10px}
.payopt{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border:1.5px solid var(--line);border-radius:16px;background:#fff;cursor:pointer;transition:all .2s}
.payopt.is-fixed{cursor:default;border-color:var(--wine)}
.payopt:has(input:checked){border-color:var(--wine);box-shadow:0 0 0 4px rgba(125,28,46,.1)}
.payopt input{width:20px;height:20px;margin-top:3px;accent-color:var(--wine)}
.payopt b{display:flex;align-items:center;gap:.5em}
.payopt small{display:block;color:var(--ink-2);font-weight:600;font-size:.86rem}
.order-summary{position:sticky;top:96px}
.sum{padding:22px}
.sum h2{font-size:1.6rem;display:flex;align-items:center;gap:.5em;margin-bottom:.6em}
.sum-lines{display:grid;gap:10px;margin-bottom:12px;max-height:300px;overflow:auto}
.sum-line{display:flex;justify-content:space-between;gap:10px;font-size:.93rem}
.sum-line small{display:block;color:var(--ink-2)}
.sum-line.is-empty{color:var(--ink-3)}
.sum-row,.sum-total{display:flex;justify-content:space-between;align-items:center;gap:10px}
.sum-row{font-size:.88rem;color:var(--olive);font-weight:700;margin-bottom:6px}
.sum-total{border-top:1px dashed var(--line);padding-top:12px;font-weight:800;font-size:1.05rem}
.sum-total b{font-family:var(--ff-d);font-size:2.1rem;color:var(--wine)}
.sum-pick{display:flex;gap:.6em;align-items:center;background:var(--sand);border-radius:14px;padding:11px 14px;margin:12px 0;font-weight:800;font-size:.92rem}
.sum-pick.is-set{background:var(--olive-l);color:var(--olive-d)}
.alert{display:flex;gap:.7em;align-items:flex-start;padding:12px 14px;border-radius:14px;font-weight:700;font-size:.93rem;margin:0 0 14px}
.alert .ic{margin-top:.15em}
.alert-ok{background:var(--olive-l);color:var(--olive-d)}
.alert-warn{background:#fdf0d3;color:#7a4b06}
.alert-err{background:#fde7e4;color:var(--err)}

/* ---------- order status ---------- */
.status-hero{text-align:center;padding:10px 0 20px}
.ocode{display:inline-block;font-family:var(--ff-d);font-weight:700;font-size:clamp(2.6rem,9vw,4.6rem);letter-spacing:.08em;color:var(--wine);background:var(--paper);border:2px dashed var(--wine);border-radius:22px;padding:.05em .45em;margin:.1em 0 .3em;transform:rotate(-1.5deg)}
.status-hero h1{font-size:clamp(2rem,5vw,3.4rem)}
.status-hero .lead{margin:0 auto 1rem}
.status-hero[data-state=ready] .ocode{background:var(--olive);color:#fff;border-color:var(--olive);animation:wobble 1.2s var(--ease) 2}
.tracker{display:grid;grid-template-columns:repeat(4,1fr);margin:22px 0 26px;position:relative}
.tr-step{position:relative;display:grid;justify-items:center;gap:8px;text-align:center;font-weight:800;font-size:.85rem;color:var(--ink-3)}
.tr-step::before{content:"";position:absolute;top:18px;left:-50%;width:100%;height:4px;background:var(--line);z-index:0}
.tr-step:first-child::before{display:none}
.tr-step.is-done::before{background:var(--olive)}
.tr-dot{position:relative;z-index:1;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--paper);border:3px solid var(--line);color:transparent;transition:all .4s var(--ease)}
.tr-step.is-done .tr-dot{background:var(--olive);border-color:var(--olive);color:#fff}
.tr-step.is-now .tr-dot{box-shadow:0 0 0 0 rgba(53,90,58,.5);animation:ping2 1.8s infinite}
.tr-step.is-done .tr-l{color:var(--ink)}
@keyframes ping2{70%{box-shadow:0 0 0 12px rgba(53,90,58,0)}100%{box-shadow:0 0 0 0 rgba(53,90,58,0)}}
.status-card{margin-bottom:18px}
.srow{display:flex;justify-content:space-between;gap:16px;padding:8px 0;align-items:flex-start}
.srow>span{display:flex;gap:.5em;align-items:center;color:var(--ink-2);font-weight:700}
.srow>b{text-align:right}
.slines{display:grid;gap:10px;margin-bottom:12px}
.slines li{display:flex;justify-content:space-between;gap:12px}
.status-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-bottom:16px}

/* ---------- dialogs, drawer, toast ---------- */
dialog{color:var(--ink)}
.dlg{border:0;padding:clamp(22px,4vw,34px);border-radius:var(--r-lg);background:var(--paper);box-shadow:var(--shadow-lg);width:min(560px,calc(100% - 24px));max-height:calc(100dvh - 24px);overflow:auto;position:fixed;margin:auto}
.dlg::backdrop{background:rgba(43,26,20,.55);backdrop-filter:blur(5px)}
.dlg[open]{animation:dlgin .35s var(--ease)}
@keyframes dlgin{from{opacity:0;transform:translateY(24px) scale(.97)}}
.dlg-close{position:absolute;right:14px;top:14px;margin:0}
.dlg-close button{width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:#fff;display:grid;place-items:center}
.dlg-head h2{font-size:2.1rem;margin-bottom:.2em}
.locopts{display:grid;gap:10px;margin:16px 0}
.locopt{display:flex;align-items:center;gap:14px;text-align:left;width:100%;padding:14px 16px;border:1.5px solid var(--line);border-radius:18px;background:#fff;text-decoration:none;color:var(--ink);transition:all .2s var(--ease)}
button.locopt:hover:not([disabled]),a.locopt:hover{border-color:var(--wine);transform:translateY(-2px);box-shadow:var(--shadow)}
.locopt.is-soon{opacity:.6;background:repeating-linear-gradient(135deg,#fff,#fff 10px,var(--sand) 10px,var(--sand) 20px);cursor:not-allowed}
.locopt.is-current{border-color:var(--olive);background:var(--olive-l)}
.locopt-ic{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:var(--wine);color:#fff;flex:none}
.locopt-main{display:grid;flex:1;min-width:0}
.locopt-main b{font-family:var(--ff-d);font-size:1.5rem;line-height:1.1}
.locopt-main small{color:var(--ink-2)}
.locopt-go{color:var(--wine)}
.dlg-note{color:var(--ink-2);font-size:.9rem}
.dlg-add{width:min(640px,calc(100% - 24px));padding:0;overflow:hidden}
.add-grid{display:grid;grid-template-columns:230px 1fr}
.add-media{background:radial-gradient(closest-side at 50% 55%,#fff6df,var(--sand) 95%);display:grid;place-items:center;padding:22px 14px;position:relative}
.add-media img{width:100%;height:auto;filter:drop-shadow(0 16px 14px rgba(43,26,20,.3));animation:floaty 6s ease-in-out infinite}
.add-body{padding:24px 24px 20px;display:grid;gap:14px;max-height:calc(100dvh - 40px);overflow:auto}
.add-body h2{font-size:1.9rem;margin:0 36px 0 0}
.add-body .muted{margin:0;font-size:.92rem}
.opt-title{font-weight:800;font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-2);margin-bottom:6px}
.optrow{display:flex;gap:8px;flex-wrap:wrap}
.optcard{flex:1 1 140px;display:grid;gap:2px;text-align:left;border:1.5px solid var(--line);border-radius:14px;background:#fff;padding:10px 12px;transition:all .2s var(--ease)}
.optcard b{display:flex;justify-content:space-between;gap:8px;align-items:baseline}
.optcard small{color:var(--ink-2);font-weight:700;font-size:.78rem}
.optcard:hover{border-color:var(--wine)}
.optcard[aria-checked=true]{border-color:var(--wine);background:rgba(125,28,46,.06);box-shadow:0 0 0 3px rgba(125,28,46,.12)}
.optcard .st{color:var(--olive);font-size:.74rem;font-weight:800}
.add-foot{display:flex;gap:12px;align-items:center;justify-content:space-between;position:sticky;bottom:0;background:var(--paper);padding-top:6px}
.add-meta{font-size:.82rem;color:var(--ink-2)}
.scrim{position:fixed;inset:0;background:rgba(43,26,20,.5);backdrop-filter:blur(3px);z-index:90;opacity:0;transition:opacity .3s}
.scrim.is-on{opacity:1}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(430px,100%);background:var(--paper);z-index:100;display:flex;flex-direction:column;transform:translateX(104%);transition:transform .4s var(--ease);box-shadow:var(--shadow-lg)}
.drawer.is-open{transform:none}
.drawer-head{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid var(--line)}
.drawer-head h2{display:flex;align-items:center;gap:.5em;margin:0;font-size:1.7rem}
.drawer-body{flex:1;overflow:auto;padding:16px 20px;display:grid;align-content:start;gap:12px}
.drawer-foot{padding:16px 20px calc(16px + env(safe-area-inset-bottom));border-top:1px solid var(--line);display:grid;gap:10px;background:#fff9ee}
.cline{display:grid;grid-template-columns:62px 1fr auto;gap:12px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:16px;background:#fff}
.cline img{width:62px;height:46px;object-fit:contain}
.cline b{display:block;line-height:1.2;font-size:.95rem}
.cline small{display:block;color:var(--ink-2);font-size:.8rem}
.cline-r{display:grid;justify-items:end;gap:6px;font-weight:800}
.cline .rm{background:none;border:0;color:var(--ink-3);font-size:.75rem;text-decoration:underline;padding:0}
.cart-empty{text-align:center;padding:40px 10px;color:var(--ink-2)}
.cart-empty .ic{width:44px;height:44px;color:var(--ink-3);margin:0 auto 10px}
.switch{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:10px 12px;border-radius:14px;background:var(--olive-l);color:var(--olive-d);font-weight:800;font-size:.9rem;cursor:pointer}
.switch small{display:block;font-weight:600;color:var(--ink-2);font-size:.78rem}
.switch input{appearance:none;width:44px;height:26px;border-radius:999px;background:#c9bfae;position:relative;flex:none;transition:background .2s;cursor:pointer}
.switch input::after{content:"";position:absolute;left:3px;top:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform .25s var(--ease);box-shadow:0 1px 3px rgba(0,0,0,.3)}
.switch input:checked{background:var(--olive)}
.switch input:checked::after{transform:translateX(18px)}
.toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom));transform:translate(-50%,40px);background:var(--ink);color:#fff;padding:.8em 1.3em;border-radius:999px;font-weight:800;font-size:.92rem;z-index:140;opacity:0;pointer-events:none;transition:all .35s var(--ease);box-shadow:var(--shadow-lg);display:flex;gap:.5em;align-items:center;max-width:calc(100% - 24px)}
.toast.is-show{opacity:1;transform:translate(-50%,0)}
.toast .ic{color:#7ee0a0}
.mbar{position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:70;display:none;align-items:center;gap:12px;background:var(--wine);color:#fff;border-radius:999px;padding:.75em 1.2em;text-decoration:none;font-weight:800;box-shadow:0 14px 34px rgba(125,28,46,.45)}
.mbar:hover{color:#fff}
.mbar b{margin-left:auto;font-family:var(--ff-d);font-size:1.3rem}
.mbar-n{display:grid;place-items:center;min-width:26px;height:26px;border-radius:50%;background:var(--saffron);color:var(--ink);font-size:.8rem}
.mbar.is-pop{animation:bump .5s var(--ease)}

/* ---------- footer ---------- */
.ftr{background:var(--ink);color:#e9dcc6;padding:clamp(40px,6vw,72px) 0 24px;position:relative;margin-top:0}
.ftr a{color:#f3e7d3;text-decoration:none}
.ftr a:hover{color:var(--saffron-l);text-decoration:underline}
.ftr-grid{display:grid;grid-template-columns:1.4fr 1fr 1.2fr 1.2fr;gap:36px}
.ftr-brand>img{filter:brightness(0) invert(1) sepia(.2);opacity:.95;margin-bottom:12px;height:auto}
.ftr-brand p{max-width:34ch;color:#cdbfa8;font-size:.93rem}
.ftr h4{font-family:var(--ff-b);font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--saffron);margin-bottom:1em}
.ftr ul{display:grid;gap:9px;font-size:.94rem}
.ftr .muted{color:#a89984}
.partners{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:.8rem;color:#a89984}
.partners img{width:34px;height:34px;border-radius:50%;object-fit:cover}
.ftr-legal{margin-top:36px;padding-top:20px;border-top:1px solid rgba(255,255,255,.12);font-size:.8rem;color:#a89984}
.ftr-legal p{margin:0 0 .4em}

/* ---------- pages ---------- */
.jobs{display:grid;gap:16px}
.job{display:flex;align-items:center;justify-content:space-between;gap:24px}
.job h3{margin-bottom:.3em}
.job p:last-child{margin:0;color:var(--ink-2)}
.glossary{display:grid;gap:14px}
.glossary div{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:16px 20px}
.glossary dt{font-family:var(--ff-d);font-size:1.5rem;font-weight:700;color:var(--wine)}
.glossary dd{margin:.1em 0 0;color:var(--ink-2)}
.prose{max-width:760px}
.prose h2{font-size:1.8rem;margin-top:1.6em}
.prose ul{list-style:disc;padding-left:1.3em;display:grid;gap:.6em;margin-bottom:1em}
.prose li{padding-left:.2em}
.nf-boat{max-width:300px;margin:0 auto 10px;transform:rotate(-8deg)}
.nf-boat .tp{opacity:1;transform:none}

/* ---------- extras ---------- */
[hidden]{display:none!important}
.is-hidden{display:none!important}
html:has(dialog[open]){overflow:hidden}
.nojs-late .reveal{opacity:1!important;transform:none!important}
.cline .rm,.oline .rm{background:none;border:0;color:var(--ink-3);font-size:.75rem;text-decoration:underline;padding:0}
.cline small.stud,.oline small.stud{display:flex;align-items:center;gap:.3em;color:var(--olive);font-weight:800}
.fres-alt{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:12px;font-size:.85rem;font-weight:700;color:var(--ink-2)}
.fres-alt .fchip{padding:.35em .8em;font-size:.82rem}
.fres-none{display:flex;gap:.6em;align-items:center;justify-content:center;text-align:center;color:var(--ink-2);padding:20px;border:2px dashed var(--line);border-radius:22px;font-weight:700}
.status-hero.is-cancelled .ocode{color:var(--ink-3);border-color:var(--ink-3);text-decoration:line-through}
.locprompt{position:fixed;left:20px;bottom:20px;z-index:80;width:min(400px,calc(100% - 24px));max-height:calc(100dvh - 40px);overflow:auto;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);padding:20px 20px 18px;transform:translateY(30px) scale(.98);opacity:0;pointer-events:none;visibility:hidden;transition:transform .5s var(--ease),opacity .4s,visibility 0s .5s}
.locprompt.is-on{transform:none;opacity:1;pointer-events:auto;visibility:visible;transition-delay:0s}
.locprompt h2{font-size:1.65rem;margin:0 36px .15em 0}
.locprompt .eyebrow{margin-bottom:.4em}
.locprompt .muted{margin:0 0 .4em;font-size:.9rem}
.locprompt .locopts{margin:10px 0 0}
.locprompt .locopt{padding:10px 12px}
.locprompt .locopt-main b{font-size:1.35rem}
.lp-x{position:absolute;right:10px;top:10px;width:34px;height:34px}
.hscroll.is-drag{cursor:grabbing;scroll-snap-type:none;user-select:none}
.hscroll.is-drag *{pointer-events:none}
.hscroll{cursor:grab}
.btn-busy-note{display:block;margin:6px 0 0;text-align:center}
@media (max-width:640px){.locprompt{left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));width:auto}}

/* ---------- responsive ---------- */
@media (max-width:1020px){
  .hero-grid,.finder-grid,.story-grid,.detail-grid{grid-template-columns:1fr}
  .hero-visual{order:-1;max-width:600px;margin:0 auto}
  .steps{grid-template-columns:1fr 1fr}
  .order-grid{grid-template-columns:minmax(0,1fr)}
  .order-summary{position:static}
  .ftr-grid{grid-template-columns:1fr 1fr}
  .student-card{grid-template-columns:1fr;text-align:left}
  .student-ic{display:none}
}
@media (max-width:1100px){
  .burger{display:grid}
  .nav{position:absolute;left:0;right:0;top:100%;background:var(--paper);flex-direction:column;align-items:stretch;padding:12px var(--gut) 20px;border-bottom:1px solid var(--line);box-shadow:var(--shadow-lg);transform:translateY(-8px);opacity:0;pointer-events:none;transition:all .25s var(--ease)}
  .nav.is-open{transform:none;opacity:1;pointer-events:auto}
  .nav a,.nav a.nav-home{padding:.8em 1em;font-size:1.05rem;display:inline-flex}
  .nav a.nav-order{margin:6px 0}
  .lang{order:3}
}
@media (max-width:860px){
  .tb-parent,.tb-ic{display:none}
  .lang{order:3}
  .mbar{display:flex}
  .mbar[hidden]{display:none}
  body.page-order .mbar{display:none}
  .toast{bottom:calc(84px + env(safe-area-inset-bottom))}
}
@media (max-width:700px){
  .hdr-tools .lang{display:none}
  .nav .nav-lang{display:flex;gap:8px;margin-top:10px;padding-top:12px;border-top:1px solid var(--line)}
  .nav .nav-lang a{flex:1;justify-content:center;border:1.5px solid var(--line);font-size:.95rem}
  .nav .nav-lang a.is-on{background:var(--ink);color:#fff;border-color:var(--ink)}
}
@media (max-width:640px){
  :root{--gut:16px}
  body{font-size:16px}
  .topbar-in{justify-content:center}
  .tb-hours{white-space:normal;line-height:1.3;padding:6px 0;min-width:0}
  .tb-links{display:none}
  .hdr-in{min-height:64px;gap:8px}
  .brand img{height:32px}
  .locpill{max-width:120px;padding:.4em .7em}
  .locpill .ic{display:none}
  .steps{grid-template-columns:1fr}
  .hero-points{grid-template-columns:1fr}
  .spin-badge{width:92px;height:92px;left:0}
  .spin-badge span{width:36px;height:36px}
  .spin-badge text{font-size:10.5px}
  .fgrid{grid-template-columns:1fr}
  .ftr-grid{grid-template-columns:1fr}
  .add-grid{grid-template-columns:1fr}
  .add-media{padding:12px 60px 0}
  .add-media img{max-height:150px;width:auto;margin:0 auto}
  .job{flex-direction:column;align-items:flex-start}
  .menu-bar{top:64px}
  .menu-bar-in{flex-direction:column;align-items:stretch}
  .hscroll .pcard{width:262px}
  .oline{grid-template-columns:52px 1fr auto}
  .oline img{width:52px}
  .fres-card{flex-direction:column;text-align:center}
  .tracker{font-size:.78rem}
  .float-chip.fc3{display:none}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  .js .reveal{opacity:1;transform:none}
}
@media print{.topbar,.hdr,.ftr,.mbar,.drawer,.toast{display:none!important}body{background:#fff}}

/* ---------- offerte della settimana ---------- */
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.sec-tight{padding-top:clamp(12px,2vw,24px)}
.promobar{display:block;background:linear-gradient(90deg,var(--wine-d),var(--wine) 55%,var(--wine-l));color:#fff;text-decoration:none;font-weight:700;font-size:.9rem}
.promobar:hover{color:#fff;filter:brightness(1.08)}
.promobar-in{display:flex;align-items:center;gap:.7em;padding-top:8px;padding-bottom:8px;min-height:40px}
.promobar .ic{color:var(--saffron-l);flex:none}
.pb-t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pb-t b{color:var(--saffron-l);font-weight:800}
.pb-go{display:inline-flex;align-items:center;gap:.35em;flex:none;font-weight:800;background:rgba(255,255,255,.16);border-radius:999px;padding:.2em .85em}
.promobar:hover .pb-go .ic{transform:translateX(3px)}
.pb-go .ic{transition:transform .2s var(--ease);color:#fff}

.ptabs{display:none}
.js .ptabs{display:flex;gap:10px;overflow-x:auto;padding:10px 4px 16px;margin:0 -4px 4px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.ptabs::-webkit-scrollbar{display:none}
.ptab{position:relative;flex:1 0 76px;display:flex;flex-direction:column;align-items:center;padding:10px 6px 9px;border-radius:20px;border:1.5px solid var(--line);background:var(--paper);color:var(--ink-2);line-height:1.1;transition:transform .3s var(--ease),background .25s,border-color .25s,box-shadow .3s}
.ptab small{font-size:.7rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.ptab b{font-family:var(--ff-d);font-size:2rem;line-height:1.05;color:var(--ink)}
.ptab span{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.ptab:hover{border-color:var(--wine);transform:translateY(-2px)}
.ptab.is-today:not(.is-on){border-color:var(--olive);box-shadow:inset 0 0 0 1px var(--olive)}
.ptab.is-today small{color:var(--olive)}
.ptab:not(.has){opacity:.6}
.ptab.is-on{background:var(--wine);border-color:var(--wine);color:#fff;transform:translateY(-4px);box-shadow:0 12px 24px rgba(125,28,46,.32);opacity:1}
.ptab.is-on b,.ptab.is-on small{color:#fff}
.ptab-n{position:absolute;top:-7px;right:-4px;min-width:22px;height:22px;border-radius:999px;background:var(--saffron);color:var(--ink);font:800 .75rem/18px var(--ff-b);font-style:normal;text-align:center;padding:0 5px;border:2px solid var(--cream)}
.pday-h{margin:1.8em 0 .6em;font-size:1.5rem}
.pday:first-child .pday-h{margin-top:.4em}
.js .pday{display:none}
.js .pday.is-on{display:block;animation:pin .55s var(--ease)}
.js .pday-h{display:none}
@keyframes pin{from{opacity:0;transform:translateY(16px)}}
.pgrid-p{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,430px),1fr));gap:20px}
.pday-empty{display:grid;justify-items:center;gap:.6em;text-align:center;color:var(--ink-2);padding:36px 20px;border:2px dashed var(--line);border-radius:var(--r-lg);font-weight:700;background:rgba(255,250,241,.6)}
.pday-empty p{margin:0}
.pday-empty .ic{width:1.9em;height:1.9em;color:var(--saffron-d)}
.pempty{display:grid;justify-items:center;gap:.4em}
.pempty>.ic{width:2.6em;height:2.6em;color:var(--saffron-d)}
.pfind{display:flex;gap:24px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.pfind h2{margin-bottom:.2em}
.pfind .lcard-cta{margin:0}
.pnote{margin:12px 0 0;font-size:.85rem}
.pnote a{color:inherit}

.pc{--ac:var(--wine);position:relative;display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);overflow:hidden;transition:transform .35s var(--ease),box-shadow .35s}
.pc::before{content:"";position:absolute;left:0;right:0;top:0;height:7px;background:var(--ac)}
.pc:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.pc-olive{--ac:var(--olive)}
.pc-gold{--ac:var(--saffron)}
.pc-tricolor::before{background:linear-gradient(90deg,#1f8a3b 0 33.4%,#f5efe3 33.4% 66.6%,#c8202f 66.6%)}
.pc-top{display:flex;align-items:center;justify-content:space-between;gap:8px 14px;flex-wrap:wrap;padding:24px 22px 0}
.pc-when{display:inline-flex;background:var(--olive);color:#fff;border-radius:999px;padding:.3em .95em;font-weight:800;font-size:.78rem;letter-spacing:.07em;text-transform:uppercase}
.pc-store{display:inline-flex;align-items:center;gap:.4em;font-weight:800;font-size:.76rem;color:var(--ink-2)}
.pc-store .ic{color:var(--wine)}
.pc-where{display:inline-flex;align-items:center;gap:.35em;font-weight:800;font-size:.76rem;color:var(--ink-2)}
.pc-where .ic{color:var(--olive)}
.pc-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(110px,38%);gap:10px 14px;align-items:center;padding:8px 22px 24px;flex:1}
.pc-no-img .pc-body{grid-template-columns:minmax(0,1fr) auto}
.pc-copy{min-width:0}
.pc-copy h3{font-size:clamp(1.9rem,3vw,2.4rem);color:var(--wine);margin:.12em 0 .02em;overflow-wrap:anywhere}
.pc-sub{font-family:var(--ff-d);font-style:italic;font-weight:600;font-size:1.35rem;line-height:1.15;color:var(--ink);margin:0 0 .6em}
.pc-price{display:flex;align-items:baseline;flex-wrap:wrap;gap:0 .55em;margin:0 0 .5em}
.pc-price s{color:var(--ink-3);font-weight:800;text-decoration-thickness:2px;text-decoration-color:var(--wine)}
.pc-price b{font-family:var(--ff-d);font-size:2.7rem;line-height:1;color:var(--wine)}
.pc-note{display:flex;gap:.5em;margin:.5em 0 0;font-size:.88rem;line-height:1.45;color:var(--ink-2)}
.pc-note .ic{margin-top:.22em;color:var(--ink-3)}
.pc-vis{position:relative;display:grid;place-items:center;min-height:140px;padding:14px 6px 6px}
.pc-vis img{width:100%;height:auto;max-height:190px;object-fit:contain;filter:drop-shadow(0 16px 14px rgba(43,26,20,.3));transform:rotate(-3deg);transition:transform .5s var(--ease)}
.pc:hover .pc-vis img{transform:rotate(2deg) scale(1.06)}
.pc-badge{position:absolute;right:-4px;top:-6px;width:106px;height:106px;transform:rotate(-10deg);filter:drop-shadow(0 6px 8px rgba(43,26,20,.22));animation:pbadge 4.8s ease-in-out infinite;z-index:2}
.pc-badge>span{display:grid;place-items:center;width:100%;height:100%;padding:16%;background:var(--saffron);clip-path:polygon(50.0% 0.0%,58.0% 9.8%,69.1% 3.8%,72.8% 15.9%,85.4% 14.6%,84.1% 27.2%,96.2% 30.9%,90.2% 42.0%,100.0% 50.0%,90.2% 58.0%,96.2% 69.1%,84.1% 72.8%,85.4% 85.4%,72.8% 84.1%,69.1% 96.2%,58.0% 90.2%,50.0% 100.0%,42.0% 90.2%,30.9% 96.2%,27.2% 84.1%,14.6% 85.4%,15.9% 72.8%,3.8% 69.1%,9.8% 58.0%,0.0% 50.0%,9.8% 42.0%,3.8% 30.9%,15.9% 27.2%,14.6% 14.6%,27.2% 15.9%,30.9% 3.8%,42.0% 9.8%);text-align:center;color:var(--wine-d);font-weight:800;font-size:.74rem;line-height:1.05;letter-spacing:.02em;text-transform:uppercase;overflow-wrap:normal;word-break:keep-all}
.pc-tricolor .pc-badge>span{background:#c8202f;color:#fff}
.pc-vis.is-badge{min-height:0;padding:6px}
.pc-vis.is-badge .pc-badge{position:relative;right:auto;top:auto;width:150px;height:150px}
.pc-badge-xl>span{font-family:var(--ff-d);font-size:2.9rem;letter-spacing:0;padding:10%}
@keyframes pbadge{0%,100%{transform:rotate(-10deg) scale(1)}50%{transform:rotate(-6deg) scale(1.05)}}

/* ---------- come ordinare: telefono animato ---------- */
.howx{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(24px,5vw,72px);align-items:center}
.hx-list{display:grid;gap:10px}
.hx-step{position:relative;overflow:hidden;display:flex;gap:14px;align-items:flex-start;width:100%;text-align:left;border:1.5px solid var(--line);background:var(--paper);border-radius:20px;padding:14px 16px;transition:border-color .3s,box-shadow .3s,transform .3s var(--ease)}
.hx-step:hover{border-color:var(--wine);transform:translateX(3px)}
.hx-n{flex:none;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--sand);color:var(--wine);font-family:var(--ff-d);font-weight:700;font-size:1.35rem;transition:background .3s,color .3s}
.hx-tx{min-width:0}
.hx-tx b{display:block;font-family:var(--ff-d);font-size:1.45rem;line-height:1.1;color:var(--ink);padding-top:.12em}
.hx-tx small{display:block;color:var(--ink-2);font-size:.93rem;line-height:1.45;margin-top:.3em}
.js .hx-tx small{max-height:0;opacity:0;overflow:hidden;margin-top:0;transition:max-height .45s var(--ease),opacity .35s,margin .35s}
.hx-step.is-on{border-color:var(--wine);box-shadow:var(--shadow)}
.hx-step.is-on .hx-n{background:var(--wine);color:#fff}
.js .hx-step.is-on .hx-tx small{max-height:8em;opacity:1;margin-top:.3em}
.hx-bar{position:absolute;left:0;bottom:0;height:3px;width:0;background:var(--saffron)}
.howx.is-play .hx-step.is-on .hx-bar{animation:hxbar var(--hx-dur,4800ms) linear forwards}
.howx.is-paused .hx-step.is-on .hx-bar{animation-play-state:paused}
@keyframes hxbar{to{width:100%}}
.hx-stage{display:grid;justify-items:center;gap:18px}
.hx-foot{display:flex;gap:.6em;align-items:center;justify-content:center;text-align:center;margin:0;max-width:34ch;font-weight:700;font-size:.9rem;color:var(--ink-2)}
.hx-foot .ic{color:var(--saffron-d);flex:none}
.phone{position:relative;width:min(100%,292px);aspect-ratio:292/560;border-radius:44px;background:var(--ink);padding:9px;box-shadow:var(--shadow-lg),inset 0 0 0 2px #4b3a31;transform:rotate(2deg);transition:transform .6s var(--ease)}
.howx:hover .phone{transform:rotate(0)}
.phone-top{position:absolute;z-index:4;left:28px;right:28px;top:19px;display:flex;justify-content:space-between;align-items:center;font-size:.68rem;font-weight:800;color:var(--ink);pointer-events:none}
.phone-top i{width:74px;height:20px;border-radius:12px;background:var(--ink)}
.phone-top .ic{width:.95em;height:.95em}
.phone-screen{position:relative;height:100%;border-radius:36px;overflow:hidden;background:var(--paper)}
.hx-scr{position:absolute;inset:0;display:flex;flex-direction:column;gap:9px;padding:52px 14px 14px;opacity:0;transform:translateX(26px) scale(.985);pointer-events:none;transition:opacity .45s var(--ease),transform .45s var(--ease)}
.hx-scr.is-on{opacity:1;transform:none}
.hx-scr.is-out{transform:translateX(-26px) scale(.985)}
.hx-tap{position:absolute;z-index:5;width:46px;height:46px;margin:-23px 0 0 -23px;border-radius:50%;background:rgba(233,162,59,.55);border:2px solid rgba(255,255,255,.9);box-shadow:0 0 0 0 rgba(233,162,59,.5);opacity:0;left:50%;top:50%;pointer-events:none;transition:left .7s var(--ease),top .7s var(--ease)}
.hx-tap.is-go{animation:hxtap 1.1s var(--tap-d,.9s) ease-out both}
@keyframes hxtap{0%{opacity:0;transform:scale(1.5)}25%{opacity:1;transform:scale(1)}60%{opacity:1;transform:scale(.88);box-shadow:0 0 0 0 rgba(233,162,59,.55)}100%{opacity:0;transform:scale(1);box-shadow:0 0 0 22px rgba(233,162,59,0)}}
.m-info{display:flex;gap:.55em;align-items:center;padding:9px 11px;border-radius:14px;background:var(--sand);font-size:.7rem;font-weight:700;color:var(--ink-2);line-height:1.3}
.m-info .ic{width:16px;height:16px;color:var(--wine);flex:none}
.m-chips{display:flex;gap:6px;margin:-2px 0 1px}
.m-chip{padding:.28em .75em;border-radius:999px;border:1.5px solid var(--line);background:#fff;font-size:.66rem;font-weight:800;color:var(--ink-2);white-space:nowrap}
.m-chip.is-on{background:var(--ink);border-color:var(--ink);color:#fff}
.m-asap{display:flex;align-items:center;justify-content:center;gap:.5em;padding:9px 10px;border-radius:13px;border:1.5px dashed var(--olive);background:var(--olive-l);color:var(--olive-d);font-size:.74rem;font-weight:800}
.m-asap .ic{width:15px;height:15px}
.m-sum{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 11px;border-radius:14px;background:var(--sand)}
.m-sum strong{font-family:var(--ff-d);font-size:1.35rem;color:var(--wine);line-height:1}
.m-h{margin:0 0 2px;font-family:var(--ff-d);font-weight:700;font-size:1.45rem;line-height:1.05;color:var(--ink)}
.m-center{text-align:center}
.m-tx{display:grid;min-width:0;line-height:1.2}
.m-tx b{font-size:.8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.m-tx small{font-size:.68rem;color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.m-tx em{font-style:normal;font-size:.66rem;font-weight:800;color:var(--olive)}
.m-loc,.m-pay,.m-prod,.m-field{display:flex;align-items:center;gap:9px;padding:9px 10px;border:1.5px solid var(--line);border-radius:14px;background:#fff}
.m-ic{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:var(--sand);color:var(--wine);flex:none}
.m-ic .ic{width:15px;height:15px}
.m-loc.is-sel{border-color:var(--olive);background:var(--olive-l)}
.m-loc.is-off{opacity:.55}
.m-chk{margin-left:auto;display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--olive);color:#fff;flex:none;transform:scale(0)}
.m-chk .ic{width:12px;height:12px;stroke-width:3}
.hx-scr.is-on .m-chk{animation:hxpop .45s 1.2s var(--ease) forwards}
@keyframes hxpop{0%{transform:scale(0)}70%{transform:scale(1.25)}100%{transform:scale(1)}}
.m-btn{margin-top:auto;display:flex;align-items:center;justify-content:center;gap:.45em;padding:11px;border-radius:999px;background:var(--wine);color:#fff;font-weight:800;font-size:.8rem}
.m-btn.is-ghost{background:var(--ink);opacity:.9}
.m-prod img{width:44px;height:36px;object-fit:contain;flex:none;filter:drop-shadow(0 4px 4px rgba(43,26,20,.25))}
.m-add{margin-left:auto;display:inline-flex;align-items:center;gap:.2em;flex:none;padding:.3em .6em;border-radius:999px;background:var(--wine);color:#fff;font-size:.66rem;font-weight:800}
.m-add .ic{width:.9em;height:.9em}
.m-prod.is-pick{border-color:var(--wine)}
.hx-scr.is-on .m-prod.is-pick .m-add{animation:hxpulse 1s 1.1s ease-in-out 2}
@keyframes hxpulse{50%{transform:scale(1.18);background:var(--olive)}}
.m-cart{position:absolute;left:12px;right:12px;bottom:12px;display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;border-radius:999px;background:var(--olive);color:#fff;font-size:.72rem;font-weight:800;transform:translateY(90px);opacity:0}
.m-cart .ic{width:1em;height:1em;vertical-align:-.15em;margin-left:.3em}
.hx-scr.is-on .m-cart{animation:hxup .6s 1.6s var(--ease) forwards}
@keyframes hxup{to{transform:none;opacity:1}}
.m-days,.m-slots{display:grid;gap:7px}
.m-days{grid-template-columns:repeat(4,1fr)}
.m-slots{grid-template-columns:repeat(3,1fr);margin-top:4px}
.m-day{display:grid;justify-items:center;padding:7px 2px;border:1.5px solid var(--line);border-radius:13px;background:#fff;line-height:1.1}
.m-day small{font-size:.58rem;font-weight:800;text-transform:uppercase;color:var(--ink-2)}
.m-day b{font-family:var(--ff-d);font-size:1.3rem}
.m-day.is-sel{background:var(--wine);border-color:var(--wine);color:#fff}
.m-day.is-sel small{color:#fff}
.m-slot{padding:8px 0;text-align:center;border:1.5px solid var(--line);border-radius:11px;background:#fff;font-size:.78rem;font-weight:800;transition:all .3s}
.hx-scr.is-on .m-slot.is-sel{animation:hxsel .5s 1.2s var(--ease) forwards}
@keyframes hxsel{to{background:var(--wine);border-color:var(--wine);color:#fff;transform:scale(1.07)}}
.m-note{display:flex;gap:.4em;align-items:center;margin:6px 0 0;font-size:.72rem;font-weight:800;color:var(--olive);opacity:0}
.hx-scr.is-on .m-note{animation:hxfade .5s 1.6s forwards}
@keyframes hxfade{to{opacity:1}}
.m-field{display:grid;gap:1px;padding:8px 10px}
.m-field small{font-size:.6rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3)}
.m-field b{font-size:.85rem}
.m-type{display:inline-block;overflow:hidden;white-space:nowrap;width:0;justify-self:start}
.hx-scr.is-on .m-type{animation:hxtype .65s .3s steps(var(--ch,10)) forwards}
.hx-scr.is-on .m-type-2{animation-delay:.95s}
.hx-scr.is-on .m-type-3{animation-delay:1.6s;animation-duration:.8s}
@keyframes hxtype{to{width:calc(var(--ch,10) * 1ch + .3em)}}
.m-check{display:flex;align-items:center;gap:.6em;font-size:.76rem;font-weight:800;margin-top:2px}
.m-box{display:grid;place-items:center;width:20px;height:20px;border-radius:6px;border:2px solid var(--line);background:#fff;color:#fff;flex:none}
.m-box .ic{width:13px;height:13px;stroke-width:3;opacity:0}
.hx-scr.is-on .m-box{animation:hxbox .3s 2.6s forwards}
.hx-scr.is-on .m-box .ic{animation:hxfade .3s 2.6s forwards}
@keyframes hxbox{to{background:var(--olive);border-color:var(--olive)}}
.m-pay{border-width:1.5px}
.m-pay .ic{margin-left:auto;color:var(--wine);flex:none}
.m-radio{width:16px;height:16px;border-radius:50%;border:2px solid var(--line);flex:none;position:relative}
.m-pay.is-sel{border-color:var(--wine);background:#fff7f8}
.m-pay.is-sel .m-radio{border-color:var(--wine)}
.m-pay.is-sel .m-radio::after{content:"";position:absolute;inset:2px;border-radius:50%;background:var(--wine)}
.hx-scr.is-on .m-btn:not(.is-ghost){animation:hxpulse 1s 1.4s ease-in-out 2}
.m-ok{display:grid;place-items:center;width:64px;height:64px;margin:6px auto 0;border-radius:50%;background:var(--olive);color:#fff;transform:scale(0)}
.m-ok .ic{width:32px;height:32px;stroke-width:3}
.hx-scr.is-on .m-ok{animation:hxpop .6s .15s var(--ease) forwards}
.m-code{margin:0;text-align:center;font-family:var(--ff-d);font-weight:700;font-size:2rem;letter-spacing:.1em;color:var(--wine);line-height:1}
.m-sub{display:flex;gap:.35em;justify-content:center;align-items:center;margin:0;font-size:.68rem;font-weight:700;color:var(--ink-2)}
.m-track{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin:4px 0 2px}
.m-track span{position:relative;text-align:center;font-size:.6rem;font-weight:800;color:var(--ink-3);padding-top:17px;line-height:1.1}
.m-track span::before{content:"";position:absolute;top:0;left:50%;width:13px;height:13px;margin-left:-6.5px;border-radius:50%;background:var(--line);z-index:1}
.m-track span::after{content:"";position:absolute;top:5.5px;left:calc(-50% + 7px);right:calc(50% + 7px);height:2px;background:var(--line)}
.m-track span:first-child::after{display:none}
.hx-scr.is-on .m-track span{animation:hxtrk .4s forwards}
.hx-scr.is-on .m-track span::before,.hx-scr.is-on .m-track span::after{animation:hxdot .4s forwards}
.hx-scr.is-on .m-track .mt-1,.hx-scr.is-on .m-track .mt-1::before{animation-delay:.5s}
.hx-scr.is-on .m-track .mt-2,.hx-scr.is-on .m-track .mt-2::before,.hx-scr.is-on .m-track .mt-2::after{animation-delay:1.5s}
.hx-scr.is-on .m-track .mt-3,.hx-scr.is-on .m-track .mt-3::before,.hx-scr.is-on .m-track .mt-3::after{animation-delay:2.5s}
@keyframes hxtrk{to{color:var(--olive)}}
@keyframes hxdot{to{background:var(--olive)}}
.m-notif{display:grid;gap:1px;padding:9px 11px;border-radius:14px;background:#fff;border:1.5px solid var(--line);font-size:.68rem;line-height:1.3;opacity:0;transform:translateY(16px)}
.m-notif b{font-size:.62rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--olive)}
.m-notif.is-mail b{color:#2b6cb0}
.hx-scr.is-on .m-notif{animation:hxup .5s 1s var(--ease) forwards}
.hx-scr.is-on .m-notif.is-mail{animation-delay:1.8s}

@media (max-width:1020px){
  .howx{grid-template-columns:1fr}
  .hx-stage{order:-1}
  .phone{width:min(100%,270px)}
}
@media (max-width:640px){
  .pc-top{padding:20px 18px 0}
  .pc-body{grid-template-columns:1fr;gap:4px;padding:4px 18px 22px}
  .pc-no-img .pc-body{grid-template-columns:minmax(0,1fr) auto}
  .pc-has-img .pc-vis{order:-1;min-height:150px;padding:8px 0 0}
  .pc-has-img .pc-vis img{max-height:170px;width:auto;max-width:78%}
  .pc-badge{width:96px;height:96px;right:2px;top:-2px}
  .pc-badge>span{padding:13%;font-size:.64rem}
  .pc-vis.is-badge .pc-badge{width:112px;height:112px}
  .pc-badge-xl>span{font-size:2.3rem}
  .pc-price b{font-size:2.3rem}
  .ptab{flex-basis:70px}
  .ptab small{font-size:.64rem;letter-spacing:.03em}
}
@media (prefers-reduced-motion:reduce){
  .pc-badge{animation:none}
  .hx-scr.is-on .m-type{width:calc(var(--ch,10) * 1ch + .3em)}
  .m-chk,.m-ok{transform:none}
  .m-cart,.m-notif,.m-note,.m-box .ic{opacity:1;transform:none}
  .m-track span{color:var(--olive)}
  .m-track span::before,.m-track span::after{background:var(--olive)}
}

.asap{display:flex;align-items:center;gap:.55em;margin:0 0 12px;padding:.65em 1.2em;border-radius:999px;border:2px solid var(--saffron);background:#fff4dc;color:var(--ink);font-weight:800;font-size:.95rem;transition:background .2s,transform .2s var(--ease)}
.asap .ic{color:var(--saffron-d)}
.asap:hover{transform:translateY(-1px);background:var(--saffron-l)}
.asap.is-on{background:var(--saffron)}

/* tessera fedeltà */
.check-sub{margin-top:6px;padding-left:12px;border-left:3px solid var(--line)}
.check-sm{padding:9px 12px;margin-top:8px}
.acctbtn{display:inline-grid;place-items:center;text-decoration:none}
.acct{display:grid;gap:18px}
.acct h2{display:flex;align-items:center;gap:.5em;margin:0 0 6px}
.acct h3{margin:18px 0 4px;font-size:1.05rem}
.acct-login{display:grid;gap:14px}
.acct-code{font-size:1.6rem;letter-spacing:.35em;text-align:center}
.acct-card-top{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}
.acct-count b{font-family:var(--serif,inherit);font-size:2rem;color:var(--wine)}
.stamps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:6px 0 16px}
.stamp{aspect-ratio:1;border-radius:50%;border:2px dashed var(--line);display:grid;place-items:center;color:transparent;background:#fff;transition:all .3s}
.stamp .ic{width:55%;height:55%}
.stamp.is-on{background:var(--wine);border:2px solid var(--wine);color:#fff}
.stamp.is-last{border-color:var(--saffron);color:var(--saffron)}
.stamp.is-last.is-on{background:var(--saffron);border-color:var(--saffron);color:#2b1a14}
.acct-qr{display:flex;gap:18px;align-items:center;margin:16px 0;flex-wrap:wrap}
.acct-qr-img{width:148px;height:148px;border-radius:14px;overflow:hidden;border:1.5px solid var(--line);background:#fff;flex:none}
.acct-qr-img svg{width:100%;height:100%;display:block}
.acct-code-big{font-size:1.7rem;font-weight:800;letter-spacing:.12em;color:var(--wine)}
.acct-wallet{display:flex;gap:10px;flex-wrap:wrap;margin:6px 0 12px}
.acct-gift{display:flex;gap:14px;align-items:flex-start;border-color:var(--saffron);background:#fff7e6}
.acct-gift-ic{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--saffron);color:#2b1a14;flex:none}
.acct-gift p{margin:2px 0}
.acct-hist ul{list-style:none;margin:0;padding:0}
.acct-hist li{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--line)}
.acct-hist li:last-child{border-bottom:0}
.acct-hist .pos{color:#2e7d32}.acct-hist .neg{color:#b3261e}
@media (max-width:480px){.stamps{grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}.acct-qr-img{width:128px;height:128px}}
.join-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:22px;align-items:start}
.join-side{display:grid;gap:18px}
.join-h3{margin:16px 0 4px;font-size:1.05rem}
.join-perks{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:12px}
.join-perks li{display:flex;gap:10px;align-items:flex-start}
.join-perks .ic{flex:none;color:var(--wine);margin-top:2px}
.join-qr{text-align:center}
.join-qr .acct-qr-img{margin:0 auto 10px}
.home-loy-in{display:flex;gap:28px;align-items:center;justify-content:space-between;flex-wrap:wrap;background:linear-gradient(135deg,#fff7e6,#fffaf1)}
.home-loy-copy{flex:1 1 320px;max-width:560px}
.home-loy-qr{width:150px;height:150px;border-radius:14px;overflow:hidden;border:1.5px solid var(--line);background:#fff;flex:none}
.home-loy-qr svg{width:100%;height:100%;display:block}
@media (max-width:820px){.join-grid{grid-template-columns:minmax(0,1fr)}.join-side{order:-1}.join-qr{display:none}.home-loy-qr{display:none}}
.partners a{display:inline-flex;border-radius:50%;transition:transform .15s}.partners a:hover,.partners a:focus-visible{transform:translateY(-2px)}

.ftr-social{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.ftr-social a{width:36px;height:36px;border-radius:50%;display:inline-grid;place-items:center;color:#e9dcc6;border:1px solid rgba(233,220,198,.28);transition:background .15s,color .15s}.ftr-social a:hover,.ftr-social a:focus-visible{background:var(--saffron-l,#e8a33d);color:#2b1a14}.ftr-social svg{width:18px;height:18px}
.acct-home{margin:.8rem 0}

.acct-banner{display:block;border-radius:16px;padding:16px 18px;margin:0 0 14px;color:#fff;text-decoration:none;background:linear-gradient(135deg,#7d1c2e,#a8324a)}
.acct-banner b{display:block;font-family:var(--serif,inherit);font-size:1.25rem;margin-bottom:2px}
.acct-banner span{display:block;opacity:.95}
.acct-banner.th-gold{background:linear-gradient(135deg,#c98a1a,#f2b84b);color:#2b1a14}
.acct-banner.th-green{background:linear-gradient(135deg,#1e5a32,#3d8a55)}
.acct-banner.th-night{background:linear-gradient(135deg,#1d2b44,#46607f)}
