/* =============================================================================
   CONCA D'ORO — Riposto (CT)
   Foglio di stile principale
   Palette: nero forno + oro (Conca D'ORO) + rosso pomodoro
============================================================================= */

/* ----------------------------------------------------------------- TOKENS -- */
:root{
  --nero:#0b0908;
  --carbone:#131010;
  --carbone-2:#1b1715;
  --carbone-3:#241f1b;

  --oro:#d8a531;
  --oro-chiaro:#f0cd72;
  --oro-scuro:#a67d1c;
  --rosso:#c33127;
  --verde:#3f7d4e;

  --crema:#f6f1e7;
  --testo:#efe7db;
  --testo-soft:#b9ada0;
  --testo-mute:#8b8177;
  --linea:rgba(216,165,49,.18);
  --linea-soft:rgba(255,255,255,.08);

  --font-d:'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --font-k:'Bebas Neue', 'Arial Narrow', Impact, sans-serif;
  --font-b:'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;

  --wrap:1240px;
  --r:14px;
  --r-lg:22px;
  --sh:0 18px 50px rgba(0,0,0,.45);
  --sh-gold:0 12px 34px rgba(216,165,49,.22);
  --ease:cubic-bezier(.22,.61,.36,1);
  --header-h:78px;
}

/* ------------------------------------------------------------------ RESET -- */
*,*::before,*::after{box-sizing:border-box}
html{
  scroll-behavior:smooth;
  scroll-padding-top:calc(var(--header-h) + 16px);
  -webkit-text-size-adjust:100%;
  /* Serve sulla radice, non su body: il pannello del menu mobile e' position:fixed
     e sfugge al clipping di body, allargando l'area scrollabile del viewport. */
  overflow-x:hidden;
}
body{
  margin:0;
  background:var(--nero);
  color:var(--testo);
  font-family:var(--font-b);
  font-size:16.5px;
  line-height:1.72;
  font-weight:350;
  /* Il pannello del menu mobile sta fuori schermo con translateX(100%) e
     allargherebbe l'area scrollabile: `clip` la taglia senza creare un
     contenitore di scroll (che romperebbe header sticky e smooth scroll).
     `hidden` resta come fallback per i browser senza `clip`. */
  overflow-x:hidden;
  overflow-x:clip;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
h1,h2,h3,h4{margin:0;line-height:1.1;font-weight:600}
p{margin:0 0 1.1em}
ul{margin:0;padding:0;list-style:none}
fieldset{border:0;margin:0;padding:0}
legend{padding:0}
::selection{background:var(--oro);color:#141010}

:focus-visible{outline:2px solid var(--oro-chiaro);outline-offset:3px;border-radius:6px}

/* Blocco dello scorrimento (menu mobile e lightbox). Va messo su html oltre che
   su body: con overflow-x sulla radice e' html a fare da contenitore di scroll. */
html.no-scroll,
body.no-scroll{overflow:hidden}

.skip-link{
  position:fixed;top:-100px;left:12px;z-index:9999;
  background:var(--oro);color:#131010;padding:.7em 1.2em;border-radius:0 0 10px 10px;font-weight:600;
  transition:top .2s;
}
.skip-link:focus{top:0}

.wrap{width:min(100% - 40px, var(--wrap));margin-inline:auto}

/* ------------------------------------------------------------- TIPOGRAFIA -- */
.kicker{
  font-family:var(--font-k);
  font-size:clamp(.95rem,1.6vw,1.15rem);
  letter-spacing:.28em;
  text-transform:uppercase;
  color:var(--oro);
  margin:0 0 .7rem;
  display:flex;align-items:center;gap:.85rem;
}
.kicker::before{content:"";width:34px;height:1px;background:linear-gradient(90deg,transparent,var(--oro))}
.kicker--light{color:var(--oro-chiaro)}

.h2{
  font-family:var(--font-d);
  font-size:clamp(2.1rem,5.2vw,3.75rem);
  font-weight:600;
  letter-spacing:-.015em;
  margin:0 0 1.1rem;
}
.h2 em{font-style:italic;color:var(--oro-chiaro);position:relative}
.h2--light{color:#fff}

.section{padding:clamp(72px,9vw,124px) 0;position:relative}
.sec-head{max-width:720px;margin:0 auto clamp(38px,5vw,62px);text-align:center}
.sec-head .kicker{justify-content:center}
.sec-head .kicker::after{content:"";width:34px;height:1px;background:linear-gradient(270deg,transparent,var(--oro))}
.sec-head--left{text-align:left;margin-inline:0}
.sec-head--left .kicker{justify-content:flex-start}
.sec-head--left .kicker::after{display:none}
.sec-head__lead{color:var(--testo-soft);font-size:1.05rem;margin:0}

.note{
  font-size:.92rem;color:var(--testo-soft);
  background:rgba(216,165,49,.07);
  border-left:3px solid var(--oro);
  padding:.85em 1.1em;border-radius:0 10px 10px 0;margin:1.4rem 0 0;
}

/* --------------------------------------------------------------- BOTTONI -- */
.btn{
  --btn-bg:transparent;
  display:inline-flex;align-items:center;justify-content:center;gap:.55em;
  padding:.92em 1.75em;
  border:1px solid transparent;border-radius:999px;
  font-weight:600;font-size:.95rem;letter-spacing:.02em;
  cursor:pointer;position:relative;overflow:hidden;
  transition:transform .3s var(--ease), box-shadow .3s var(--ease), background .3s, color .3s, border-color .3s;
}
.btn:hover{transform:translateY(-2px)}
.btn--gold{
  background:linear-gradient(135deg,var(--oro-chiaro),var(--oro) 55%,var(--oro-scuro));
  color:#1a1410;box-shadow:var(--sh-gold);
}
.btn--gold:hover{box-shadow:0 16px 40px rgba(216,165,49,.36)}
.btn--ghost{border-color:rgba(255,255,255,.28);color:#fff;backdrop-filter:blur(6px);background:rgba(255,255,255,.05)}
.btn--ghost:hover{border-color:var(--oro);color:var(--oro-chiaro);background:rgba(216,165,49,.1)}
.btn--wa{background:#25d366;color:#0a2a17;box-shadow:0 12px 34px rgba(37,211,102,.28)}
.btn--lg{padding:1.05em 2.2em;font-size:1rem}
.btn--block{display:flex;width:100%;margin-bottom:.6rem}

/* ------------------------------------------------------------- PRELOADER -- */
.preloader{
  position:fixed;inset:0;z-index:9998;
  background:var(--nero);
  display:grid;place-items:center;
  transition:opacity .6s var(--ease), visibility .6s;
}
.preloader.is-done{opacity:0;visibility:hidden}
.preloader__inner{text-align:center}
.preloader__mark{
  font-family:var(--font-d);font-size:3.4rem;font-weight:700;color:var(--oro);
  letter-spacing:.05em;margin-bottom:1.1rem;
}
.preloader__mark span{color:var(--crema)}
.preloader__bar{width:180px;height:2px;background:rgba(255,255,255,.12);overflow:hidden;border-radius:2px}
.preloader__bar i{display:block;height:100%;width:40%;background:var(--oro);animation:load 1.05s var(--ease) infinite}
@keyframes load{0%{transform:translateX(-110%)}100%{transform:translateX(360%)}}

/* --------------------------------------------------------------- TOPBAR -- */
.topbar{
  background:var(--carbone);
  border-bottom:1px solid var(--linea-soft);
  font-size:.83rem;
  position:relative;z-index:60;
}
.topbar__in{display:flex;justify-content:space-between;align-items:center;gap:1rem;min-height:40px}
.topbar__item{margin:0;display:flex;align-items:center;gap:.5rem;color:var(--testo-soft);white-space:nowrap}
.topbar__item strong{color:var(--testo);font-weight:600}
.topbar__sub{color:var(--testo-mute)}
.topbar__item--right a{color:var(--oro-chiaro);font-weight:600}
.topbar__item--right a:hover{text-decoration:underline}
.dot{width:8px;height:8px;border-radius:50%;background:var(--testo-mute);flex:none}
.dot.is-open{background:#41c46a;box-shadow:0 0 0 0 rgba(65,196,106,.6);animation:pulse 2s infinite}
.dot.is-soon{background:var(--oro)}
.dot.is-closed{background:#b8453c}
@keyframes pulse{70%{box-shadow:0 0 0 9px rgba(65,196,106,0)}100%{box-shadow:0 0 0 0 rgba(65,196,106,0)}}

/* --------------------------------------------------------------- HEADER -- */
.header{
  position:sticky;top:0;z-index:100;
  border-bottom:1px solid transparent;
  transition:border-color .35s, box-shadow .35s;
}
/* Sfondo e blur su un livello separato, NON su .header: un backdrop-filter
   sull'header ne farebbe il blocco contenitore del menu mobile (position:fixed),
   che finirebbe incastrato dentro la barra invece di coprire lo schermo. */
.header::before{
  content:"";position:absolute;inset:0;z-index:-1;
  background:rgba(11,9,8,.72);
  backdrop-filter:blur(16px) saturate(140%);
  transition:background .35s;
}
.header.is-stuck::before{background:rgba(11,9,8,.95)}
.header.is-stuck{border-bottom-color:var(--linea);box-shadow:0 10px 34px rgba(0,0,0,.5)}
.header__in{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;min-height:var(--header-h)}

/* z-index sopra il pannello del menu mobile (che e' un fratello con z-index 99
   dentro lo stesso header): logo e pulsante devono restare cliccabili e visibili. */
.logo{display:flex;align-items:center;gap:.8rem;flex:none;position:relative;z-index:101}
.logo__mark{
  width:46px;height:46px;flex:none;
  /* flex, non grid: con grid la "C" e lo <span>D</span> diventano due celle
     e finiscono incolonnate una sotto l'altra. */
  display:flex;align-items:center;justify-content:center;
  border:1.5px solid var(--oro);border-radius:50%;
  font-family:var(--font-d);font-size:1.15rem;font-weight:700;color:var(--oro);
  letter-spacing:.02em;white-space:nowrap;line-height:1;
  transition:transform .4s var(--ease), box-shadow .4s;
}
.logo__mark span{color:var(--crema)}
.logo:hover .logo__mark{transform:rotate(-8deg) scale(1.06);box-shadow:var(--sh-gold)}
.logo__txt{display:flex;flex-direction:column;line-height:1.15}
.logo__txt b{font-family:var(--font-d);font-size:1.42rem;font-weight:700;letter-spacing:.01em}
.logo__txt i{font-style:normal;font-size:.63rem;letter-spacing:.22em;text-transform:uppercase;color:var(--oro);font-weight:500}

.nav{display:flex;align-items:center;gap:.35rem}
.nav a{
  position:relative;padding:.55em .85em;border-radius:8px;
  font-size:.9rem;font-weight:500;color:var(--testo-soft);
  transition:color .25s;
}
.nav a::after{
  content:"";position:absolute;left:.85em;right:.85em;bottom:.28em;height:1px;
  background:var(--oro);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease);
}
.nav a:hover,.nav a.is-active{color:var(--testo)}
.nav a:hover::after,.nav a.is-active::after{transform:scaleX(1)}
.nav__cta{color:#1a1410 !important;margin-left:.6rem;padding:.75em 1.4em;font-size:.88rem}
.nav__cta::after{display:none}

.burger{
  display:none;width:44px;height:44px;background:none;border:1px solid var(--linea);
  border-radius:10px;cursor:pointer;padding:0;position:relative;z-index:101;
}
.burger span{
  position:absolute;left:12px;right:12px;height:1.5px;background:var(--testo);
  transition:transform .3s var(--ease), opacity .2s;
}
.burger span:nth-child(1){top:15px}
.burger span:nth-child(2){top:21px}
.burger span:nth-child(3){top:27px}
.burger.is-open span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.burger.is-open span:nth-child(2){opacity:0}
.burger.is-open span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

/* ------------------------------------------------------------------ HERO -- */
.hero{
  position:relative;min-height:clamp(600px,94vh,940px);
  display:flex;align-items:center;
  overflow:hidden;isolation:isolate;
}
.hero__slides{position:absolute;inset:0;z-index:-2}
.hero__slide{
  position:absolute;inset:0;
  background-size:cover;background-position:center;
  opacity:0;transform:scale(1.08);
  transition:opacity 1.5s var(--ease), transform 7.5s linear;
}
.hero__slide.is-active{opacity:1;transform:scale(1)}
.hero__veil{
  position:absolute;inset:0;z-index:-1;
  background:
    linear-gradient(105deg, rgba(8,6,5,.94) 0%, rgba(8,6,5,.78) 42%, rgba(8,6,5,.32) 72%, rgba(8,6,5,.55) 100%),
    linear-gradient(0deg, rgba(11,9,8,1) 2%, rgba(11,9,8,0) 34%);
}
.hero__in{padding:clamp(90px,12vh,140px) 0 clamp(70px,10vh,110px);max-width:830px}
.hero__eyebrow{
  font-family:var(--font-k);letter-spacing:.34em;text-transform:uppercase;
  font-size:.95rem;color:var(--oro);margin:0 0 1.3rem;
}
.hero__title{
  font-family:var(--font-d);
  font-size:clamp(2.9rem,8.2vw,6.1rem);
  font-weight:600;letter-spacing:-.02em;line-height:.99;
  margin:0 0 1.5rem;
}
.hero__title .l1,.hero__title .l2{display:block}
.hero__title .l2{padding-left:clamp(0px,4vw,58px)}
.hero__title em{
  font-style:italic;
  background:linear-gradient(100deg,var(--oro-chiaro),var(--oro) 55%,#8f6a12);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.hero__lead{
  font-size:clamp(1rem,1.55vw,1.16rem);color:#ddd2c4;max-width:610px;margin:0 0 2.1rem;
}
.hero__lead strong{color:var(--oro-chiaro);font-weight:600}
.hero__cta{display:flex;flex-wrap:wrap;gap:.9rem;margin-bottom:3.2rem}

.hero__facts{display:flex;flex-wrap:wrap;gap:clamp(1.4rem,4vw,3.2rem)}
.hero__facts li{display:flex;flex-direction:column;position:relative;padding-left:1.2rem}
.hero__facts li::before{content:"";position:absolute;left:0;top:.35em;bottom:.35em;width:1px;background:var(--linea)}
.hero__facts b{font-family:var(--font-d);font-size:1.65rem;font-weight:700;color:var(--oro-chiaro);line-height:1.1}
.hero__facts span{font-size:.76rem;letter-spacing:.13em;text-transform:uppercase;color:var(--testo-mute)}

.hero__dots{position:absolute;right:clamp(18px,3vw,42px);top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:.7rem;z-index:5}
.hero__dots button{
  width:9px;height:9px;padding:0;border-radius:50%;cursor:pointer;
  background:rgba(255,255,255,.3);border:0;transition:background .3s, transform .3s, height .3s;
}
.hero__dots button.is-active{background:var(--oro);height:26px;border-radius:6px}

.hero__scroll{position:absolute;left:50%;bottom:26px;transform:translateX(-50%);width:24px;height:40px;border:1px solid var(--linea);border-radius:14px;z-index:5}
.hero__scroll span{position:absolute;left:50%;top:9px;width:3px;height:7px;border-radius:2px;background:var(--oro);transform:translateX(-50%);animation:scroll 1.8s infinite}
@keyframes scroll{0%{opacity:0;transform:translate(-50%,0)}30%{opacity:1}100%{opacity:0;transform:translate(-50%,15px)}}

/* ----------------------------------------------------------------- STRIP -- */
.strip{background:var(--carbone);border-block:1px solid var(--linea-soft);padding:clamp(44px,6vw,66px) 0}
.strip__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:clamp(1.2rem,2.4vw,2.4rem)}
.strip__card{position:relative;padding-left:1.6rem}
.strip__card::before{content:"";position:absolute;left:0;top:.2rem;bottom:.2rem;width:2px;background:linear-gradient(var(--oro),transparent)}
.strip__ico{font-size:1.6rem;display:block;margin-bottom:.5rem}
.strip__card h3{font-size:1.05rem;font-weight:600;margin-bottom:.35rem;color:#fff}
.strip__card p{font-size:.92rem;color:var(--testo-soft);margin:0}

/* ----------------------------------------------------------------- ABOUT -- */
.about{background:var(--nero)}
.about__grid{display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(2.4rem,6vw,5.5rem);align-items:center}
.about__media{position:relative;padding-bottom:70px;padding-right:40px}
.about__img{margin:0;overflow:hidden;border-radius:var(--r-lg);box-shadow:var(--sh)}
.about__img img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease)}
.about__img:hover img{transform:scale(1.06)}
.about__img--1{aspect-ratio:4/5}
.about__img--2{
  position:absolute;right:0;bottom:0;width:56%;aspect-ratio:1/1;
  border:6px solid var(--nero);
}
.about__badge{
  position:absolute;left:-14px;top:26px;
  background:linear-gradient(135deg,var(--oro-chiaro),var(--oro));
  color:#1a1410;padding:.75rem 1.15rem;border-radius:12px;
  display:flex;flex-direction:column;line-height:1.2;box-shadow:var(--sh);
  transform:rotate(-3deg);
}
.about__badge b{font-family:var(--font-d);font-size:1.3rem;font-weight:700}
.about__badge span{font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;opacity:.8}

.about__text p{color:var(--testo-soft)}
.about__text strong{color:var(--testo);font-weight:600}
.about__values{display:grid;gap:1.05rem;margin:2rem 0 0}
.about__values li{display:flex;flex-direction:column;gap:.15rem;padding-left:1.7rem;position:relative}
.about__values li::before{
  content:"";position:absolute;left:0;top:.62em;width:9px;height:9px;
  border:1.5px solid var(--oro);transform:rotate(45deg);
}
.about__values b{font-size:1rem;color:#fff;font-weight:600}
.about__values span{font-size:.93rem;color:var(--testo-soft)}

.about__signature{margin-top:2.2rem;padding-top:1.5rem;border-top:1px solid var(--linea)}
.about__sign-name{display:block;font-family:var(--font-d);font-style:italic;font-size:1.5rem;color:var(--oro-chiaro)}
.about__sign-role{font-size:.76rem;letter-spacing:.16em;text-transform:uppercase;color:var(--testo-mute)}

/* -------------------------------------------------------------- PARALLAX -- */
.parallax{
  position:relative;padding:clamp(90px,13vw,170px) 0;
  background-size:cover;background-position:center;background-attachment:fixed;
  text-align:center;
}
.parallax__veil{position:absolute;inset:0;background:linear-gradient(rgba(8,6,5,.82),rgba(8,6,5,.9))}
.parallax__in{position:relative;max-width:800px}
.parallax .kicker{justify-content:center}
.parallax__lead{color:#d6cbbd;font-size:1.06rem;margin:0}

/* ------------------------------------------------------------- SPECIALITÀ -- */
.specials{background:var(--carbone)}
.specials__grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));
  gap:clamp(1rem,1.8vw,1.6rem);
}
.spec{
  position:relative;overflow:hidden;border-radius:var(--r-lg);
  min-height:300px;display:flex;align-items:flex-end;
  background:var(--carbone-2);cursor:pointer;border:1px solid var(--linea-soft);
  transition:transform .5s var(--ease), border-color .4s, box-shadow .5s;
}
.spec:hover{transform:translateY(-6px);border-color:var(--linea);box-shadow:var(--sh)}
.spec--wide{grid-column:span 2}
.spec__img{position:absolute;inset:0}
.spec__img img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease), filter .5s}
.spec:hover .spec__img img{transform:scale(1.09)}
.spec__veil{position:absolute;inset:0;background:linear-gradient(rgba(8,6,5,.12) 20%, rgba(8,6,5,.78) 68%, rgba(8,6,5,.95))}
.spec__body{position:relative;padding:1.5rem 1.5rem 1.4rem;width:100%}
.spec__ico{font-size:1.3rem;display:block;margin-bottom:.35rem}
.spec__body h3{font-family:var(--font-d);font-size:1.6rem;font-weight:600;margin-bottom:.25rem;color:#fff}
.spec__count{font-size:.74rem;letter-spacing:.15em;text-transform:uppercase;color:var(--oro)}
.spec__more{
  display:inline-flex;align-items:center;gap:.4em;margin-top:.7rem;
  font-size:.86rem;font-weight:600;color:var(--oro-chiaro);
  opacity:0;transform:translateY(6px);transition:opacity .35s, transform .35s;
}
.spec:hover .spec__more{opacity:1;transform:translateY(0)}

/* --------------------------------------------------------------- IMPASTI -- */
.doughs{background:var(--nero)}
.doughs__grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(2.2rem,5vw,4.5rem);align-items:center}
.doughs__text > p{color:var(--testo-soft)}
.doughs__cards{display:grid;gap:.85rem;margin-top:1.8rem}
.dough{
  display:flex;align-items:center;gap:1.1rem;
  padding:1.05rem 1.3rem;border:1px solid var(--linea-soft);border-radius:var(--r);
  background:var(--carbone);transition:border-color .35s, transform .35s var(--ease), background .35s;
}
.dough:hover{border-color:var(--oro);transform:translateX(5px);background:var(--carbone-2)}
.dough__n{
  font-family:var(--font-d);font-size:1.5rem;font-weight:700;color:var(--oro);
  width:42px;height:42px;flex:none;display:grid;place-items:center;
  border:1px solid var(--linea);border-radius:50%;
}
.dough__txt{flex:1}
.dough__txt b{display:block;font-size:1.02rem;font-weight:600;color:#fff}
.dough__txt span{font-size:.9rem;color:var(--testo-soft)}
.dough__price{
  font-family:var(--font-d);font-size:1.25rem;font-weight:700;color:var(--oro-chiaro);white-space:nowrap;
}
.doughs__img{margin:0;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh);aspect-ratio:3/4}
.doughs__img img{width:100%;height:100%;object-fit:cover}

/* ------------------------------------------------------------------ MENU -- */
.menu{background:var(--carbone)}
.menu__tools{display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;align-items:center;margin-bottom:1.6rem}
.search{position:relative;flex:1;min-width:260px;max-width:420px}
.search input{
  width:100%;padding:.85em 2.6em .85em 2.9em;
  background:var(--carbone-2);border:1px solid var(--linea-soft);border-radius:999px;
  font-size:.95rem;transition:border-color .3s, background .3s;
}
.search input::placeholder{color:var(--testo-mute)}
.search input:focus{border-color:var(--oro);background:var(--carbone-3);outline:none}
.search__ico{position:absolute;left:1.05em;top:50%;transform:translateY(-50%);opacity:.55;font-size:.9rem}
.search__clear{
  position:absolute;right:.7em;top:50%;transform:translateY(-50%);
  background:none;border:0;cursor:pointer;color:var(--testo-mute);padding:.35em;border-radius:50%;
}
.search__clear:hover{color:var(--oro)}

.filters{display:flex;flex-wrap:wrap;gap:.5rem}
.chip{
  padding:.5em 1.05em;border-radius:999px;cursor:pointer;
  background:transparent;border:1px solid var(--linea-soft);
  font-size:.84rem;color:var(--testo-soft);
  transition:all .28s var(--ease);
}
.chip:hover{border-color:var(--oro);color:var(--testo)}
.chip.is-on{background:var(--oro);border-color:var(--oro);color:#1a1410;font-weight:600}

.menu__tabs{
  display:flex;gap:.45rem;overflow-x:auto;padding:.5rem 0 1.4rem;
  scrollbar-width:thin;scrollbar-color:var(--oro-scuro) transparent;
  -webkit-overflow-scrolling:touch;
  border-bottom:1px solid var(--linea-soft);margin-bottom:2.2rem;
}
.menu__tabs::-webkit-scrollbar{height:4px}
.menu__tabs::-webkit-scrollbar-thumb{background:var(--oro-scuro);border-radius:4px}
.mtab{
  flex:none;padding:.6em 1.15em;border-radius:999px;cursor:pointer;white-space:nowrap;
  background:var(--carbone-2);border:1px solid transparent;
  font-size:.88rem;color:var(--testo-soft);
  transition:all .28s var(--ease);
}
.mtab:hover{color:#fff;border-color:var(--linea)}
.mtab.is-on{background:linear-gradient(135deg,var(--oro-chiaro),var(--oro));color:#1a1410;font-weight:600}
.mtab i{font-style:normal;margin-right:.35em}

.mcat{margin-bottom:3.4rem}
.mcat__head{display:flex;flex-wrap:wrap;align-items:baseline;gap:.6rem 1rem;margin-bottom:.4rem}
.mcat__head h3{font-family:var(--font-d);font-size:clamp(1.7rem,3.2vw,2.3rem);font-weight:600;color:#fff}
.mcat__n{font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--oro)}
.mcat__intro{color:var(--testo-soft);font-size:.96rem;max-width:760px;margin-bottom:1.8rem}
.mcat__hint{
  display:flex;gap:.6rem;align-items:flex-start;
  font-size:.85rem;color:var(--testo-mute);
  border-top:1px dashed var(--linea);padding-top:.9rem;margin-top:1.4rem;
}

.mgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:.35rem 2.6rem}
.mitem{
  display:flex;gap:1rem;align-items:baseline;
  padding:.95rem 0;border-bottom:1px dashed rgba(255,255,255,.07);
  transition:background .3s, padding-left .3s var(--ease);
}
.mitem:hover{background:linear-gradient(90deg,rgba(216,165,49,.06),transparent);padding-left:.6rem}
.mitem__main{flex:1;min-width:0}
.mitem__name{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;font-weight:600;font-size:1rem;color:#fff}
.mitem__desc{font-size:.885rem;color:var(--testo-soft);margin:.15rem 0 0;line-height:1.5}
.mitem__all{font-size:.72rem;color:var(--testo-mute);margin-top:.3rem;letter-spacing:.03em}
.mitem__price{display:flex;flex-direction:column;align-items:flex-end;flex:none;text-align:right}
.mitem__p{font-family:var(--font-d);font-size:1.3rem;font-weight:700;color:var(--oro-chiaro);line-height:1.1}
.mitem__pm{font-size:.72rem;color:var(--testo-mute);letter-spacing:.06em;white-space:nowrap}
.mitem__pm b{color:var(--oro);font-weight:600}

.tag{
  font-size:.72rem;line-height:1;padding:.32em .6em;border-radius:999px;font-weight:600;letter-spacing:.02em;
}
.tag--veg{background:rgba(63,125,78,.2);color:#7dc48f}
.tag--piccante{background:rgba(195,49,39,.18);color:#e88178}
.tag--surgelato{background:rgba(120,170,210,.16);color:#9ec7e6}

/* "molti la chiamano diavola / san daniele / pata pizza..." */
.mitem__sin{
  font-size:.78rem;color:var(--oro);opacity:.85;margin:.25rem 0 0;font-style:italic;
}

.menu__empty{text-align:center;color:var(--testo-soft);padding:3rem 0;font-size:1.05rem}
.menu__legend{
  display:flex;flex-wrap:wrap;gap:.6rem 1.6rem;align-items:center;
  border-top:1px solid var(--linea-soft);padding-top:1.6rem;margin-top:1rem;
  font-size:.83rem;color:var(--testo-soft);
}
.menu__legend .lg{font-style:normal;margin-right:.3em}
.menu__legend-note{color:var(--testo-mute);flex-basis:100%}

/* -------------------------------------------------------------- BUILDER -- */
.builder{background:var(--nero)}
.builder__grid{display:grid;grid-template-columns:1.35fr .65fr;gap:clamp(1.6rem,3vw,2.8rem);align-items:start}
.builder__panel{display:grid;gap:1.6rem}
.bstep{
  background:var(--carbone);border:1px solid var(--linea-soft);
  border-radius:var(--r-lg);padding:1.4rem 1.5rem;
}
.bstep legend{
  display:flex;align-items:center;gap:.7rem;
  font-family:var(--font-d);font-size:1.35rem;font-weight:600;color:#fff;margin-bottom:1.05rem;
}
.bstep legend i{
  font-style:normal;width:28px;height:28px;flex:none;display:grid;place-items:center;
  border-radius:50%;background:var(--oro);color:#1a1410;font-family:var(--font-b);font-size:.82rem;font-weight:700;
}
.bopts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.6rem}
.bopts--2{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
.bopt{cursor:pointer;position:relative;display:block}
.bopt input{position:absolute;opacity:0;pointer-events:none}
.bopt__in{
  display:flex;flex-direction:column;gap:.15rem;
  padding:.8rem 1rem;border:1px solid var(--linea-soft);border-radius:var(--r);
  background:var(--carbone-2);transition:all .28s var(--ease);height:100%;
}
.bopt:hover .bopt__in{border-color:var(--oro-scuro)}
.bopt input:checked + .bopt__in{
  border-color:var(--oro);background:rgba(216,165,49,.12);
  box-shadow:0 0 0 1px var(--oro) inset;
}
.bopt input:focus-visible + .bopt__in{outline:2px solid var(--oro-chiaro);outline-offset:2px}
.bopt__in b{font-size:.97rem;font-weight:600;color:#fff}
.bopt__in span{font-size:.82rem;color:var(--testo-soft)}
.bopt__in em{font-style:normal;font-size:.85rem;color:var(--oro-chiaro);font-weight:600}

.badds{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:.5rem}
.badd{cursor:pointer;position:relative}
.badd input{position:absolute;opacity:0;pointer-events:none}
.badd__in{
  display:flex;justify-content:space-between;align-items:center;gap:.6rem;
  padding:.62rem .9rem;border:1px solid var(--linea-soft);border-radius:10px;
  background:var(--carbone-2);font-size:.9rem;transition:all .25s var(--ease);
}
.badd__in::before{
  content:"+";width:18px;height:18px;flex:none;display:grid;place-items:center;
  border:1px solid var(--linea);border-radius:5px;font-size:.8rem;color:var(--oro);
  transition:all .25s;
}
.badd:hover .badd__in{border-color:var(--oro-scuro)}
.badd input:checked + .badd__in{border-color:var(--oro);background:rgba(216,165,49,.13)}
.badd input:checked + .badd__in::before{content:"✓";background:var(--oro);color:#1a1410;border-color:var(--oro)}
.badd input:focus-visible + .badd__in{outline:2px solid var(--oro-chiaro);outline-offset:2px}
.badd__n{flex:1;color:var(--testo)}
.badd__p{color:var(--oro-chiaro);font-weight:600;font-size:.85rem}

.bcut{display:flex;align-items:center;gap:.65rem;margin-top:.9rem;cursor:pointer;font-size:.92rem;color:var(--testo-soft)}
.bcut input{width:18px;height:18px;accent-color:var(--oro);cursor:pointer}

.builder__sum{position:sticky;top:calc(var(--header-h) + 18px)}
.bsum__card{
  background:linear-gradient(160deg,var(--carbone-2),var(--carbone));
  border:1px solid var(--linea);border-radius:var(--r-lg);padding:1.6rem;
  box-shadow:var(--sh);
}
.bsum__card h3{font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;color:var(--oro);margin-bottom:.5rem}
.bsum__name{font-family:var(--font-d);font-size:1.85rem;font-weight:600;color:#fff;margin:0 0 1rem;line-height:1.15}
.bsum__list{display:grid;gap:.4rem;margin-bottom:1.2rem;max-height:230px;overflow-y:auto}
.bsum__list li{display:flex;justify-content:space-between;gap:1rem;font-size:.88rem;color:var(--testo-soft)}
.bsum__list li b{color:var(--testo);font-weight:500;white-space:nowrap}
.bsum__list li.is-muted{color:var(--testo-mute);font-style:italic}
.bsum__total{
  display:flex;justify-content:space-between;align-items:baseline;
  padding:.9rem 0;margin-bottom:1.1rem;border-top:1px solid var(--linea);
  font-size:.85rem;letter-spacing:.14em;text-transform:uppercase;color:var(--testo-soft);
}
.bsum__total b{font-family:var(--font-d);font-size:2.1rem;font-weight:700;color:var(--oro-chiaro);letter-spacing:0}
.bsum__note{font-size:.78rem;color:var(--testo-mute);margin:.6rem 0 0;text-align:center}

/* ------------------------------------------------------------------ MAXI -- */
.maxi{background:var(--carbone);padding:clamp(70px,9vw,120px) 0;border-block:1px solid var(--linea-soft)}
.maxi__grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(2.2rem,5vw,4.5rem);align-items:center}
.maxi__img{margin:0;position:relative;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh);aspect-ratio:4/5}
.maxi__img img{width:100%;height:100%;object-fit:cover}
.maxi__img figcaption{
  position:absolute;left:1rem;bottom:1rem;
  background:rgba(11,9,8,.82);backdrop-filter:blur(8px);
  padding:.5em 1em;border-radius:999px;font-size:.83rem;color:var(--oro-chiaro);
  border:1px solid var(--linea);
}
.maxi__text > p{color:var(--testo-soft)}
.maxi__text strong{color:var(--testo)}

.calc{
  background:var(--nero);border:1px solid var(--linea);border-radius:var(--r-lg);
  padding:1.5rem;margin-top:1.8rem;
}
.calc__row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem}
.calc__row label{font-weight:600;color:#fff}
.calc__stepper{display:flex;align-items:center;gap:.35rem;background:var(--carbone-2);border-radius:999px;padding:.3rem}
.calc__stepper button{
  width:38px;height:38px;border-radius:50%;border:0;cursor:pointer;
  background:var(--carbone-3);color:var(--oro);font-size:1.25rem;line-height:1;
  transition:background .25s, color .25s;
}
.calc__stepper button:hover{background:var(--oro);color:#1a1410}
.calc__stepper input{
  width:62px;text-align:center;background:none;border:0;
  font-family:var(--font-d);font-size:1.6rem;font-weight:700;color:#fff;
  -moz-appearance:textfield;
}
.calc__stepper input::-webkit-outer-spin-button,
.calc__stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.calc__out{
  margin-top:1.3rem;padding-top:1.3rem;border-top:1px dashed var(--linea);
  display:flex;flex-wrap:wrap;gap:1.6rem;align-items:center;
}
.calc__res{display:flex;flex-direction:column}
.calc__res b{font-family:var(--font-d);font-size:2.5rem;font-weight:700;color:var(--oro-chiaro);line-height:1}
.calc__res span{font-size:.76rem;letter-spacing:.13em;text-transform:uppercase;color:var(--testo-mute)}
.calc__txt{flex:1;min-width:200px;font-size:.93rem;color:var(--testo-soft)}
.calc__hint{font-size:.8rem;color:var(--testo-mute);margin:1rem 0 0}

/* -------------------------------------------------------------- CONSEGNA -- */
.delivery{background:var(--nero)}
.delivery__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.4rem;align-items:stretch}
.dcard{
  background:var(--carbone);border:1px solid var(--linea-soft);border-radius:var(--r-lg);
  padding:1.8rem;display:flex;flex-direction:column;
  transition:border-color .4s, transform .4s var(--ease);
}
.dcard:hover{border-color:var(--linea);transform:translateY(-4px)}
.dcard--hi{border-color:var(--linea);background:linear-gradient(165deg,var(--carbone-2),var(--carbone))}
.dcard__top{display:flex;align-items:center;gap:.8rem;margin-bottom:1rem}
.dcard__ico{font-size:1.8rem}
.dcard__top h3{font-family:var(--font-d);font-size:1.75rem;font-weight:600;color:#fff}
.dcard__big{
  font-family:var(--font-d);font-size:2.6rem;font-weight:700;color:var(--oro-chiaro);
  line-height:1;margin:0 0 .7rem;
}
.dcard p{font-size:.94rem;color:var(--testo-soft)}
.dcard__list{display:grid;gap:.5rem;margin:.4rem 0 1.5rem;flex:1}
.dcard__list li{position:relative;padding-left:1.35rem;font-size:.92rem;color:var(--testo-soft)}
.dcard__list li::before{content:"✓";position:absolute;left:0;color:var(--oro);font-size:.85rem}
.dcard__list b{color:var(--testo)}
.delivery__img{margin:0;border-radius:var(--r-lg);overflow:hidden;min-height:260px;box-shadow:var(--sh)}
.delivery__img img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease)}
.delivery__img:hover img{transform:scale(1.06)}

.delivery__tip{
  margin-top:1.8rem;padding:1.3rem 1.6rem;
  background:rgba(216,165,49,.08);border:1px dashed var(--linea);border-radius:var(--r);
  font-size:.96rem;color:var(--testo-soft);
}
.delivery__tip b{color:var(--oro-chiaro)}
.delivery__tip strong{color:var(--testo)}

/* -------------------------------------------------------------- GALLERIA -- */
.gallery{background:var(--carbone);padding-bottom:clamp(60px,8vw,100px)}
.gallery__strip{
  display:flex;gap:1rem;overflow-x:auto;padding:.5rem clamp(20px,4vw,60px) 1.5rem;
  scroll-snap-type:x mandatory;
  scrollbar-width:thin;scrollbar-color:var(--oro-scuro) transparent;
}
.gallery__strip::-webkit-scrollbar{height:5px}
.gallery__strip::-webkit-scrollbar-thumb{background:var(--oro-scuro);border-radius:4px}
.gitem{
  flex:none;width:clamp(220px,26vw,330px);aspect-ratio:3/4;
  border-radius:var(--r-lg);overflow:hidden;cursor:pointer;position:relative;
  scroll-snap-align:center;border:1px solid var(--linea-soft);
  transition:transform .5s var(--ease);
}
.gitem:nth-child(even){aspect-ratio:3/3.4;align-self:flex-end}
.gitem:hover{transform:translateY(-6px)}
.gitem img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease), filter .5s;filter:saturate(.92)}
.gitem:hover img{transform:scale(1.08);filter:saturate(1.1)}
.gitem::after{
  content:"⤢";position:absolute;right:.8rem;bottom:.8rem;
  width:34px;height:34px;display:grid;place-items:center;border-radius:50%;
  background:rgba(11,9,8,.7);color:var(--oro);font-size:.9rem;
  opacity:0;transform:scale(.8);transition:all .35s var(--ease);
}
.gitem:hover::after{opacity:1;transform:scale(1)}

/* -------------------------------------------------------------- SERVIZI -- */
.services{background:var(--nero)}
.services__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem}
.svc{
  background:var(--carbone);border:1px solid var(--linea-soft);border-radius:var(--r);
  padding:1.4rem;transition:border-color .35s, transform .35s var(--ease), background .35s;
}
.svc:hover{border-color:var(--oro);transform:translateY(-4px);background:var(--carbone-2)}
.svc span{font-size:1.5rem;display:block;margin-bottom:.5rem}
.svc b{display:block;font-size:1rem;color:#fff;margin-bottom:.25rem}
.svc p{font-size:.89rem;color:var(--testo-soft);margin:0}

/* ------------------------------------------------------------------ FAQ -- */
.faq{background:var(--carbone)}
.faq__wrap{display:grid;grid-template-columns:.75fr 1.25fr;gap:clamp(2rem,5vw,4rem);align-items:start}
.faq .sec-head{margin-bottom:0}
.acc{display:grid;gap:.6rem}
.acc__item{
  background:var(--nero);border:1px solid var(--linea-soft);border-radius:var(--r);
  overflow:hidden;transition:border-color .35s;
}
.acc__item[open]{border-color:var(--linea)}
.acc__item summary{
  cursor:pointer;list-style:none;padding:1.1rem 3rem 1.1rem 1.3rem;
  font-weight:600;font-size:1rem;color:#fff;position:relative;
  transition:color .25s;
}
.acc__item summary::-webkit-details-marker{display:none}
.acc__item summary::after{
  content:"+";position:absolute;right:1.2rem;top:50%;transform:translateY(-50%);
  color:var(--oro);font-size:1.35rem;font-weight:300;transition:transform .3s var(--ease);
}
.acc__item[open] summary::after{transform:translateY(-50%) rotate(45deg)}
.acc__item summary:hover{color:var(--oro-chiaro)}
.acc__body{padding:0 1.3rem 1.2rem;color:var(--testo-soft);font-size:.94rem}
.acc__body p{margin:0}
.acc__body strong{color:var(--testo)}
.acc__body a{color:var(--oro-chiaro);text-decoration:underline}

/* -------------------------------------------------------------- CONTATTI -- */
.contact{background:var(--nero)}
.contact__grid{display:grid;grid-template-columns:1fr 1.15fr;gap:clamp(2rem,4vw,3.5rem);align-items:start}
.cline{
  display:flex;gap:1rem;align-items:center;
  padding:1rem 1.2rem;margin-bottom:.6rem;
  background:var(--carbone);border:1px solid var(--linea-soft);border-radius:var(--r);
  transition:all .3s var(--ease);
}
.cline:hover{border-color:var(--oro);transform:translateX(5px);background:var(--carbone-2)}
.cline__ico{
  width:44px;height:44px;flex:none;display:grid;place-items:center;
  border-radius:50%;background:rgba(216,165,49,.12);font-size:1.15rem;
}
.cline b{display:block;font-size:1.02rem;color:#fff;font-weight:600}
.cline i{font-style:normal;font-size:.85rem;color:var(--testo-mute)}

.hours{margin-top:1.6rem;background:var(--carbone);border:1px solid var(--linea);border-radius:var(--r-lg);padding:1.4rem 1.5rem}
.hours h3{font-family:var(--font-d);font-size:1.45rem;font-weight:600;color:#fff;margin-bottom:.9rem}
.hours__list{display:grid;gap:.3rem}
.hours__list li{
  display:flex;justify-content:space-between;gap:1rem;
  padding:.42rem 0;font-size:.94rem;color:var(--testo-soft);
  border-bottom:1px dashed rgba(255,255,255,.06);
}
.hours__list li:last-child{border-bottom:0}
.hours__list li.is-today{color:#fff;font-weight:600}
.hours__list li.is-today b{color:var(--oro-chiaro)}
.hours__list li.is-today::after{content:"oggi";font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--oro);align-self:center}
.hours__note{font-size:.85rem;color:var(--testo-mute);margin:1rem 0 0}
.hours__note strong{color:var(--testo-soft)}

.contact__map{border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--linea);min-height:440px;box-shadow:var(--sh)}
.contact__map iframe{width:100%;height:100%;min-height:440px;border:0;filter:grayscale(.4) invert(.92) hue-rotate(180deg) contrast(.85)}

/* ------------------------------------------------------------ CTA FINALE -- */
.finale{
  position:relative;padding:clamp(80px,11vw,140px) 0;text-align:center;
  background-size:cover;background-position:center;background-attachment:fixed;
}
.finale__veil{position:absolute;inset:0;background:linear-gradient(rgba(8,6,5,.86),rgba(8,6,5,.92))}
.finale__in{position:relative}
.finale h2{
  font-family:var(--font-d);font-size:clamp(2.2rem,6vw,4.2rem);font-weight:600;color:#fff;
  margin-bottom:2rem;line-height:1.05;
}
.finale h2 em{font-style:italic;color:var(--oro-chiaro)}
.finale__cta{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center}

/* ---------------------------------------------------------------- FOOTER -- */
.footer{background:var(--carbone);border-top:1px solid var(--linea);padding-top:clamp(48px,6vw,74px)}
.footer__grid{
  display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:2rem;
  padding-bottom:2.6rem;
}
.footer__brand{display:flex;gap:1rem;align-items:flex-start}
.footer__brand p{font-size:.9rem;color:var(--testo-soft);line-height:1.7;margin:0}
.footer__brand b{font-family:var(--font-d);font-size:1.3rem;color:#fff;font-weight:700}
.footer__nav,.footer__col{display:flex;flex-direction:column;gap:.42rem}
.footer__nav b,.footer__col b{
  font-size:.73rem;letter-spacing:.19em;text-transform:uppercase;color:var(--oro);margin-bottom:.4rem;font-weight:600;
}
.footer__nav a,.footer__col a,.footer__col span{font-size:.9rem;color:var(--testo-soft);transition:color .25s}
.footer__nav a:hover,.footer__col a:hover{color:var(--oro-chiaro)}
.footer__bottom{
  display:flex;flex-wrap:wrap;justify-content:space-between;gap:.6rem;
  border-top:1px solid var(--linea-soft);padding:1.3rem 0 6.5rem;
  font-size:.82rem;color:var(--testo-mute);
}
.footer__bottom p{margin:0}
.footer__credit{opacity:.7}

/* ---------------------------------------------------------- UI FLOTTANTE -- */
.wa-float{
  position:fixed;right:20px;bottom:96px;z-index:90;
  width:54px;height:54px;border-radius:50%;
  display:grid;place-items:center;
  background:#25d366;color:#0a2a17;
  box-shadow:0 12px 30px rgba(37,211,102,.34);
  transition:transform .35s var(--ease), box-shadow .35s;
}
.wa-float:hover{transform:scale(1.09) rotate(-6deg);box-shadow:0 16px 40px rgba(37,211,102,.5)}

.totop{
  position:fixed;left:20px;bottom:96px;z-index:90;
  width:46px;height:46px;border-radius:50%;cursor:pointer;
  background:var(--carbone-2);border:1px solid var(--linea);color:var(--oro);
  font-size:1.1rem;
  opacity:0;visibility:hidden;transform:translateY(12px);
  transition:all .35s var(--ease);
}
.totop.is-on{opacity:1;visibility:visible;transform:translateY(0)}
.totop:hover{background:var(--oro);color:#1a1410}

.mobar{
  position:fixed;left:0;right:0;bottom:0;z-index:95;
  display:none;
  background:rgba(11,9,8,.96);backdrop-filter:blur(14px);
  border-top:1px solid var(--linea);
  padding:.5rem .4rem calc(.5rem + env(safe-area-inset-bottom));
}
.mobar a{
  flex:1;display:flex;flex-direction:column;align-items:center;gap:.15rem;
  padding:.4rem 0;font-size:.68rem;letter-spacing:.05em;color:var(--testo-soft);
}
.mobar a span{font-size:1.15rem}
.mobar a:active{color:var(--oro)}

/* -------------------------------------------------------------- LIGHTBOX -- */
.lbox{
  position:fixed;inset:0;z-index:9997;
  background:rgba(6,5,4,.95);backdrop-filter:blur(8px);
  display:grid;place-items:center;padding:clamp(20px,5vw,60px);
  animation:fade .3s var(--ease);
}
/* `display:grid` qui sopra vincerebbe sull'attributo hidden dello UA stylesheet:
   senza questa riga il lightbox resterebbe sempre aperto sopra la pagina. */
.lbox[hidden]{display:none}
@keyframes fade{from{opacity:0}to{opacity:1}}
.lbox img{max-width:100%;max-height:86vh;border-radius:var(--r);box-shadow:var(--sh)}
.lbox__close,.lbox__nav{
  position:absolute;background:rgba(255,255,255,.08);border:1px solid var(--linea-soft);
  color:#fff;cursor:pointer;border-radius:50%;
  display:grid;place-items:center;transition:all .3s var(--ease);
}
.lbox__close{top:22px;right:22px;width:46px;height:46px;font-size:1.1rem}
.lbox__nav{top:50%;transform:translateY(-50%);width:52px;height:52px;font-size:2rem;line-height:0;padding-bottom:.15em}
.lbox__nav--prev{left:clamp(10px,2vw,28px)}
.lbox__nav--next{right:clamp(10px,2vw,28px)}
.lbox__close:hover,.lbox__nav:hover{background:var(--oro);color:#1a1410;border-color:var(--oro)}

/* -------------------------------------------------------- ANIMAZIONI SCROLL */
[data-anim]{opacity:0;transform:translateY(26px);transition:opacity .8s var(--ease), transform .8s var(--ease)}
[data-anim].is-in{opacity:1;transform:none}

/* ============================================================== RESPONSIVE */
@media (max-width:1080px){
  .about__grid,.doughs__grid,.maxi__grid,.contact__grid,.faq__wrap{grid-template-columns:1fr}
  .about__media{max-width:520px;margin-inline:auto}
  .doughs__img{aspect-ratio:16/10;order:-1}
  .maxi__img{aspect-ratio:16/10}
  .builder__grid{grid-template-columns:1fr}
  .builder__sum{position:static}
  .spec--wide{grid-column:span 1}
  .footer__grid{grid-template-columns:1fr 1fr}
}

@media (max-width:900px){
  :root{--header-h:70px}
  .burger{display:block}
  .nav{
    /* A tutto schermo (inset:0) e sotto l'header per z-index: cosi' logo e
       pulsante di chiusura restano visibili sopra il pannello, sia a pagina
       in cima (con la topbar) sia dopo lo scorrimento. */
    position:fixed;inset:0;z-index:99;
    flex-direction:column;justify-content:flex-start;gap:.2rem;
    background:rgba(11,9,8,.985);backdrop-filter:blur(20px);
    padding:calc(var(--header-h) + 2.6rem) 1.6rem 6rem;
    transform:translateX(100%);transition:transform .45s var(--ease);
    overflow-y:auto;
  }
  .nav.is-open{transform:none}
  .nav a{width:100%;padding:1rem .4rem;font-size:1.12rem;border-bottom:1px solid var(--linea-soft);border-radius:0}
  .nav a::after{display:none}
  .nav__cta{margin:1.4rem 0 0;justify-content:center;border-bottom:0 !important}

  .hero__dots{display:none}
  .hero__title .l2{padding-left:0}
  .mobar{display:flex}
  .wa-float{bottom:calc(72px + env(safe-area-inset-bottom))}
  .totop{bottom:calc(72px + env(safe-area-inset-bottom));width:42px;height:42px}
  .parallax,.finale{background-attachment:scroll}
  .mgrid{grid-template-columns:1fr;gap:0}
  .contact__map,.contact__map iframe{min-height:340px}
}

@media (max-width:640px){
  body{font-size:16px}
  .wrap{width:min(100% - 30px, var(--wrap))}
  .hide-sm{display:none}
  .topbar{font-size:.76rem}
  .topbar__sub{display:none}
  .hero{min-height:88vh}
  .hero__facts{gap:1.1rem 1.6rem}
  .hero__facts b{font-size:1.35rem}
  .hero__cta .btn{flex:1;min-width:150px}
  .footer__grid{grid-template-columns:1fr;gap:1.8rem}
  .about__media{padding-right:0;padding-bottom:0}
  .about__img--2{position:static;width:100%;aspect-ratio:16/10;border:0;margin-top:.8rem;border-radius:var(--r)}
  .about__badge{left:auto;right:12px;top:12px}
  .calc__out{flex-direction:column;align-items:flex-start;gap:1rem}
  .menu__tools{flex-direction:column;align-items:stretch}
  .search{max-width:none}
  .bstep{padding:1.2rem 1.1rem}
  .lbox__nav{width:42px;height:42px;font-size:1.6rem}
}

/* --------------------------------------------------------------- STAMPA -- */
@media print{
  .header,.topbar,.hero__dots,.hero__scroll,.mobar,.wa-float,.totop,.preloader,.lbox,.builder,.contact__map{display:none !important}
  body{background:#fff;color:#000}
  .section{padding:20px 0}
  [data-anim]{opacity:1;transform:none}
  .mitem__name,.mcat__head h3,.h2{color:#000}
}

/* ------------------------------------------------- PREFERENZE DI MOVIMENTO */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important}
  [data-anim]{opacity:1;transform:none}
  .hero__slide{transform:none}
}
