/* ═══════════════════════════════════════════════════════════════
   PASTICCERIA REX — Castrovillari, dal 1959
   Concept: «la vetrina» — si guarda attraverso il vetro, poi si apre.
   Palette presa dalla scatola del cliente: nero, oro, panna, pistacchio.
   ═══════════════════════════════════════════════════════════════ */

@font-face{font-family:'Fraunces';src:url('/assets/fonts/fraunces.woff2') format('woff2');
  font-weight:100 900;font-style:normal;font-display:swap;
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Instrument';src:url('/assets/fonts/instrument.woff2') format('woff2');
  font-weight:100 900;font-style:normal;font-display:swap;
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}

:root{
  --nero:#0E0B08;      --nero-2:#171210;   --nero-3:#221A15;
  --oro:#C8A44D;       --oro-chiaro:#EBCF86; --oro-scuro:#9A7C31;
  --panna:#F6F1E7;     --panna-2:#EDE5D6;
  --pistacchio:#8B9E4B; --amarena:#8E2F3A;
  --testo-scuro:#231C16; --testo-tenue:#6B5F53;
  --rail:300px;
  --titolo:'Fraunces',Georgia,'Times New Roman',serif;
  --corpo:'Instrument',system-ui,-apple-system,'Segoe UI',sans-serif;
  --e:cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  margin:0;background:var(--panna);color:var(--testo-scuro);
  font:400 clamp(1rem,.96rem + .2vw,1.075rem)/1.62 var(--corpo);
  overflow-x:hidden;-webkit-font-smoothing:antialiased;
  padding-bottom:0;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3,h4{font-family:var(--titolo);font-weight:600;line-height:1.08;margin:0;
  font-variation-settings:'SOFT' 0,'WONK' 1;letter-spacing:-.015em}
h1{font-size:clamp(2.05rem,1.2rem + 4.1vw,4.1rem)}
h2{font-size:clamp(1.62rem,1.05rem + 2.5vw,2.9rem)}
h3{font-size:clamp(1.2rem,1rem + 1vw,1.6rem)}
h4{font-size:.78rem;font-family:var(--corpo);font-weight:600;letter-spacing:.14em;text-transform:uppercase}
p{margin:0 0 .85em}
ul,ol{margin:0;padding:0;list-style:none}
:focus-visible{outline:2px solid var(--oro);outline-offset:3px;border-radius:2px}

.salta{position:absolute;left:-9999px;top:0;z-index:200;background:var(--oro);color:#000;
  padding:.7rem 1.1rem;font-weight:600}
.salta:focus{left:.5rem;top:.5rem}

/* ── il filo d'oro, divisore ricorrente ─────────────────────── */
.filo{display:inline-block;width:26px;height:1px;background:var(--oro);vertical-align:middle;margin-right:.6rem}
.occhiello{font-size:.68rem;letter-spacing:.13em;text-transform:uppercase;font-weight:600;
  color:var(--testo-tenue);margin:0 0 1.1rem;line-height:1.5}
@media (min-width:520px){.occhiello{font-size:.7rem;letter-spacing:.2em}}
.occhiello-oro{color:var(--oro-chiaro)}

/* ══ IL MONTANTE — barra su cellulare, colonna fissa su computer ══ */
.rail{position:fixed;inset:0 0 auto 0;z-index:60;background:var(--nero);
  border-bottom:1px solid rgba(200,164,77,.22)}
.rail-top{display:flex;align-items:center;justify-content:space-between;
  height:60px;padding:0 1rem 0 1.1rem}
.marchio{display:flex;align-items:center;gap:.6rem;text-decoration:none;min-width:0}
.marchio-sigillo{height:34px;width:auto;flex:0 0 auto}
.marchio-nome{font-family:var(--titolo);font-weight:600;color:var(--panna);
  font-size:1.02rem;line-height:1.05;letter-spacing:.005em}
.marchio-nome small{display:block;font-family:var(--corpo);font-weight:600;
  font-size:.56rem;letter-spacing:.22em;text-transform:uppercase;color:var(--oro);margin-top:.18rem}
.marchio-intero{display:none}
.menu-tasto{width:44px;height:44px;background:none;border:0;padding:10px;cursor:pointer;
  display:flex;flex-direction:column;justify-content:space-between}
.menu-tasto span{display:block;height:1.5px;background:var(--oro-chiaro);width:100%;
  transition:transform .32s var(--e),opacity .2s}
.rail.aperto .menu-tasto span:nth-child(1){transform:translateY(10.5px) rotate(45deg)}
.rail.aperto .menu-tasto span:nth-child(2){opacity:0}
.rail.aperto .menu-tasto span:nth-child(3){transform:translateY(-10.5px) rotate(-45deg)}

.rail-nav{position:fixed;inset:60px 0 0 0;background:var(--nero);
  padding:1.4rem 1.4rem calc(1.4rem + env(safe-area-inset-bottom));
  overflow-y:auto;display:flex;flex-direction:column;gap:1.2rem;
  transform:translateY(-8px);opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .28s var(--e),transform .28s var(--e),visibility .28s}
.rail.aperto .rail-nav{opacity:1;transform:none;visibility:visible;pointer-events:auto}
.rail-anno{font-family:var(--titolo);color:var(--oro);font-size:1.5rem;margin:0;letter-spacing:.04em}
.rail-anno span{font-family:var(--corpo);font-size:.66rem;letter-spacing:.24em;text-transform:uppercase;
  color:var(--oro-scuro);display:block;margin-bottom:.15rem}
.rail-nav ul{display:flex;flex-direction:column}
.rail-nav ul a{display:block;padding:.62rem 0;color:var(--panna);text-decoration:none;
  font-size:1.06rem;border-bottom:1px solid rgba(246,241,231,.09);transition:color .2s}
.rail-nav ul a:hover,.rail-nav ul a.qui{color:var(--oro-chiaro)}
.rail-fondo{margin-top:auto;padding-top:1rem}
.rail-wa{display:block;text-align:center;background:var(--oro);color:#12100C;text-decoration:none;
  font-weight:600;padding:.85rem 1rem;letter-spacing:.01em;transition:background .2s,transform .2s}
.rail-wa:hover{background:var(--oro-chiaro);transform:translateY(-1px)}
.rail-tel{display:block;text-align:center;color:var(--oro-chiaro);text-decoration:none;
  padding:.7rem 0;font-size:1.02rem;letter-spacing:.02em}
.rail-nap{color:rgba(246,241,231,.55);font-size:.84rem;line-height:1.45;margin:0;text-align:center}

/* ══ HERO — la firma: il vetro che si apre ══ */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;
  overflow:hidden;background:var(--nero);isolation:isolate}
.hero-foto{position:absolute;inset:0;z-index:0}
.hero-foto img{width:100%;height:100%;object-fit:cover;object-position:50% 45%}
.hero-velo{position:absolute;inset:0;z-index:2;pointer-events:none;
  background:linear-gradient(180deg,rgba(14,11,8,.58) 0%,rgba(14,11,8,.10) 26%,
    rgba(14,11,8,.55) 58%,rgba(14,11,8,.90) 82%,rgba(14,11,8,.97) 100%)}

/* il video della vetrina: sotto il vetro, sopra la foto */
.hero-video{position:absolute;inset:0;z-index:1;width:100%;height:100%;object-fit:cover;
  object-position:50% 45%;opacity:0;transition:opacity 1.1s var(--e);pointer-events:none}
.hero-video.pronto{opacity:1}

/* la lastra di vetro */
.vetro{position:absolute;inset:-2px;z-index:3;pointer-events:none;overflow:hidden;
  background:linear-gradient(178deg,rgba(206,224,236,.20) 0%,rgba(176,200,216,.07) 38%,
             rgba(232,242,248,.05) 66%,rgba(255,255,255,.15) 100%);
  border-bottom:1px solid rgba(255,255,255,.34);
  transform:translate3d(0,calc(var(--apri,0) * 101%),0);
  opacity:calc(1 - var(--apri,0) * var(--apri,0));
  will-change:transform,opacity}
.vetro-luce{position:absolute;top:-25%;left:-45%;width:52%;height:160%;
  background:linear-gradient(102deg,transparent 0%,rgba(255,255,255,.06) 35%,
             rgba(255,255,255,.42) 50%,rgba(255,255,255,.06) 65%,transparent 100%);
  transform:rotate(9deg) translate3d(calc(var(--apri,0) * 300%),0,0);will-change:transform}

.hero-testo{position:relative;z-index:4;padding:0 1.35rem 7.4rem;max-width:920px}
.hero-testo .occhiello{color:rgba(246,241,231,.92);text-shadow:0 1px 12px rgba(0,0,0,.8)}
.hero h1{color:var(--panna);text-shadow:0 2px 30px rgba(0,0,0,.5)}
.hero h1 em{font-style:normal;color:var(--oro-chiaro);white-space:nowrap}
.hero-sub{color:rgba(246,241,231,.86);margin-top:1.05rem;max-width:44ch;font-size:1.03rem}
.hero-tasti{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.6rem}
.hero-giu{position:absolute;left:50%;bottom:4.6rem;z-index:4;width:1px;height:44px;
  background:linear-gradient(180deg,transparent,rgba(235,207,134,.75));transform:translateX(-50%)}
.hero-giu span{position:absolute;left:-2px;top:0;width:5px;height:5px;border-radius:50%;
  background:var(--oro-chiaro);animation:goccia 2.6s var(--e) infinite}
@keyframes goccia{0%{transform:translateY(0);opacity:0}25%{opacity:1}100%{transform:translateY(40px);opacity:0}}

/* ══ TASTI ══ */
.tasto{display:inline-block;text-decoration:none;font-weight:600;font-size:.96rem;
  padding:.92rem 1.5rem;letter-spacing:.012em;border:1px solid transparent;
  transition:transform .2s var(--e),background .22s,color .22s,border-color .22s}
.tasto:hover{transform:translateY(-2px)}
.tasto-oro{background:var(--oro);color:#12100C}
.tasto-oro:hover{background:var(--oro-chiaro)}
.tasto-nero{background:var(--nero);color:var(--panna)}
.tasto-nero:hover{background:var(--nero-3)}
.tasto-vuoto{border-color:rgba(235,207,134,.5);color:var(--oro-chiaro);background:transparent}
.tasto-vuoto:hover{background:rgba(235,207,134,.1);border-color:var(--oro-chiaro)}
.sez-panna .tasto-vuoto{border-color:rgba(35,28,22,.28);color:var(--testo-scuro)}
.sez-panna .tasto-vuoto:hover{background:rgba(35,28,22,.06)}
.tasto-largo{display:block;text-align:center;width:100%}

/* ══ NASTRO — scorre sempre, non si ferma mai ══ */
.nastro{background:var(--nero-2);border-block:1px solid rgba(200,164,77,.2);
  overflow:hidden;padding:.85rem 0}
.nastro-pista{display:flex;align-items:center;gap:1.5rem;width:max-content;
  animation:scorri 46s linear infinite}
.nastro-pista span{font-family:var(--titolo);font-size:clamp(1rem,.9rem + .5vw,1.35rem);
  color:var(--panna);white-space:nowrap;font-weight:400}
.nastro-pista i{color:var(--oro);font-style:normal;font-size:.62rem}
@keyframes scorri{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}

/* ══ SEZIONI ══ */
.sez{padding:clamp(3.4rem,2rem + 7vw,7rem) 1.35rem}
.sez-panna{background:var(--panna);color:var(--testo-scuro)}
.sez-nera{background:var(--nero);color:var(--panna)}
.sez-nera .sottotitolo{color:rgba(246,241,231,.72)}
.sez-larga{padding-inline:0}
.sez-larga .intestazione,.sez-larga .dove-griglia{padding-inline:1.35rem}
.intestazione{max-width:760px;margin-bottom:2.4rem}
.intestazione-centro{margin-inline:auto;text-align:center}
.intestazione-centro .filo{display:none}
.sottotitolo{color:var(--testo-tenue);margin-top:1rem;font-size:1.03rem;max-width:52ch}
.intestazione-centro .sottotitolo{margin-inline:auto}

/* ══ CATEGORIE ══ */
.griglia-cat{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}
.scheda{position:relative;display:block;overflow:hidden;text-decoration:none;
  background:var(--nero);isolation:isolate}
.scheda img{aspect-ratio:1;object-fit:cover;width:100%;
  transition:transform .8s var(--e),opacity .4s;opacity:.88}
.scheda:hover img{transform:scale(1.06);opacity:1}
.scheda .luce{position:absolute;inset:-45%;z-index:2;pointer-events:none;opacity:0;
  background:radial-gradient(circle at center,rgba(255,255,255,.30),rgba(255,255,255,0) 58%);
  transition:opacity .3s;will-change:transform}
.scheda:hover .luce{opacity:1}
.scheda-testo{position:absolute;inset:auto 0 0 0;z-index:3;padding:1.7rem .85rem .9rem;
  background:linear-gradient(180deg,rgba(14,11,8,0) 0%,rgba(14,11,8,.55) 38%,rgba(14,11,8,.94) 100%);
  color:var(--panna);text-shadow:0 1px 10px rgba(0,0,0,.6)}
.scheda-testo strong{display:block;font-family:var(--titolo);font-weight:600;
  font-size:clamp(.95rem,.86rem + .35vw,1.18rem);line-height:1.2}
.scheda-testo small{display:block;color:var(--oro-chiaro);font-size:.72rem;
  letter-spacing:.12em;text-transform:uppercase;margin-top:.3rem}

/* ══ PISTA — riga scorrevole ══ */
.pista{display:flex;gap:.75rem;overflow-x:auto;scroll-snap-type:x mandatory;
  padding:0 1.35rem .9rem;margin:0 -1.35rem;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.pista::-webkit-scrollbar{display:none}
.pista figure{flex:0 0 78%;margin:0;scroll-snap-align:center}
.pista img{width:100%;aspect-ratio:3/4;object-fit:cover}
.pista figcaption{margin-top:.6rem;font-size:.83rem;color:rgba(246,241,231,.66);
  letter-spacing:.02em}
.pista-nota{margin:.7rem 0 0;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--oro-scuro)}

/* ══ TORTE ══ */
.griglia-torte{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}
.griglia-torte img{width:100%;aspect-ratio:4/5;object-fit:cover;
  transition:transform .7s var(--e)}
.griglia-torte li{overflow:hidden;background:var(--panna-2)}
.griglia-torte li:hover img{transform:scale(1.05)}
.riga-tasto{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-top:2rem}
.riga-tasto span{color:var(--testo-tenue);font-size:.95rem}
.sez-nera .riga-tasto span{color:rgba(246,241,231,.7)}
.riga-centro{justify-content:center}

/* ══ IL 48 ══ */
.sez-numero{padding-block:clamp(3.2rem,2rem + 6vw,6rem)}
.numerone{max-width:940px}
.numerone-riga{display:flex;align-items:flex-start;gap:1.2rem;flex-wrap:wrap}
.numerone-riga strong{font-family:var(--titolo);font-weight:600;line-height:.82;
  font-size:clamp(4.6rem,2rem + 17vw,10rem);color:transparent;
  -webkit-text-stroke:1.4px var(--oro);letter-spacing:-.03em;flex:0 0 auto}
.numerone-riga > div{flex:1 1 300px;min-width:0}

/* ══ CONFIGURATORE ══ */
.config{display:grid;gap:1.4rem}
.config-scelte{display:grid;gap:1.5rem}
.campo{border:0;margin:0;padding:0;min-width:0}
.campo legend{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;
  font-weight:600;color:var(--testo-tenue);padding:0;margin-bottom:.8rem}
.chips{display:flex;flex-wrap:wrap;gap:.5rem}
.chip{font:500 .93rem/1 var(--corpo);padding:.7rem 1rem;cursor:pointer;
  background:transparent;border:1px solid rgba(35,28,22,.24);color:var(--testo-scuro);
  transition:background .2s,border-color .2s,color .2s,transform .18s var(--e)}
.chip:hover{border-color:var(--nero);transform:translateY(-1px)}
.chip.attivo{background:var(--nero);border-color:var(--nero);color:var(--panna)}
.chip[aria-pressed="true"]{background:var(--pistacchio);border-color:var(--pistacchio);color:#fff}
.cursore{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.cursore input[type=range]{flex:1 1 200px;min-width:0;accent-color:var(--nero);height:26px}
.cursore output{font-family:var(--titolo);font-size:1.28rem;font-weight:600;white-space:nowrap}
.config-esito{background:var(--nero);color:var(--panna);padding:1.5rem 1.3rem;
  border-top:2px solid var(--oro)}
.esito-titolo{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--oro-chiaro);margin-bottom:1rem;font-weight:600}
#esitoLista{display:grid;gap:.55rem;margin-bottom:1.1rem}
#esitoLista li{display:flex;gap:.7rem;align-items:baseline;font-size:1.02rem;
  padding-bottom:.55rem;border-bottom:1px solid rgba(246,241,231,.12)}
#esitoLista li b{color:var(--oro-chiaro);font-weight:600;font-variant-numeric:tabular-nums;
  flex:0 0 auto;min-width:2.6rem}
.esito-preavviso{color:var(--oro-chiaro);font-size:.95rem;margin-bottom:1.2rem;
  padding:.7rem .85rem;background:rgba(200,164,77,.1);border-left:2px solid var(--oro)}
.esito-nota{color:rgba(246,241,231,.55);font-size:.83rem;margin:.8rem 0 0;text-align:center}

/* ══ GELATO ══ */
.gelato-foto{margin:0 0 2.6rem}
.gelato-foto img{width:100%;aspect-ratio:16/9;object-fit:cover}

/* ══ FESTE ══ */
.griglia-feste{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}
.griglia-feste li{overflow:hidden;background:var(--panna-2)}
.griglia-feste img{width:100%;aspect-ratio:4/5;object-fit:cover;transition:transform .7s var(--e)}
.griglia-feste li:hover img{transform:scale(1.05)}
.griglia-feste span{display:block;padding:.7rem .2rem 0;font-size:.86rem;
  color:var(--testo-tenue);letter-spacing:.02em}

/* ══ TRE ══ */
.griglia-quattro{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}
.griglia-quattro li{overflow:hidden;background:var(--nero-2)}
.griglia-quattro img{width:100%;aspect-ratio:4/5;object-fit:cover;transition:transform .7s var(--e)}
.griglia-quattro li:hover img{transform:scale(1.05)}

/* ══ STORIA ══ */
.storia-griglia{display:grid;gap:2.2rem}
.targa{margin:1.8rem 0 0;padding:1.3rem 1.3rem 1.3rem 1.5rem;background:var(--panna-2);
  border-left:2px solid var(--oro)}
.targa p{font-family:var(--titolo);font-size:clamp(1.1rem,.95rem + .9vw,1.55rem);
  line-height:1.32;margin:0 0 .8rem;font-style:italic}
.targa cite{font-style:normal;font-size:.83rem;color:var(--testo-tenue);letter-spacing:.01em}
.storia-foto{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}
.storia-foto figure{margin:0;overflow:hidden}
.storia-foto img{width:100%;aspect-ratio:4/5;object-fit:cover}

.ritaglio{display:grid;gap:1.6rem;margin-top:3rem;padding-top:2.6rem;
  border-top:1px solid rgba(35,28,22,.14)}
.ritaglio figure{margin:0;background:#fff;padding:.6rem;box-shadow:0 14px 44px rgba(35,28,22,.16);
  transform:rotate(-.5deg)}
.ritaglio img{width:100%}
.ritaglio figcaption{font-size:.78rem;color:var(--testo-tenue);padding:.6rem .2rem 0;
  letter-spacing:.04em}
.ritaglio-min{color:var(--testo-tenue);font-size:.95rem}

/* ══ PASSI ══ */
.passi{display:grid;gap:1.4rem;counter-reset:p}
.passi li{display:grid;grid-template-columns:auto 1fr;gap:.5rem 1.1rem;align-items:baseline}
.passi span{grid-row:1/3;font-family:var(--titolo);font-size:2.1rem;line-height:1;
  color:transparent;-webkit-text-stroke:1px var(--oro)}
.passi strong{font-family:var(--titolo);font-size:1.22rem;font-weight:600}
.passi p{grid-column:2;margin:0;color:rgba(246,241,231,.72);font-size:.98rem}

/* ══ FAQ ══ */
.faq{max-width:820px}
.faq details{border-top:1px solid rgba(35,28,22,.16)}
.faq details:last-child{border-bottom:1px solid rgba(35,28,22,.16)}
.faq summary{cursor:pointer;list-style:none;padding:1.1rem 2.4rem 1.1rem 0;position:relative;
  font-family:var(--titolo);font-size:clamp(1.02rem,.95rem + .35vw,1.22rem);font-weight:600}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:'';position:absolute;right:.5rem;top:50%;width:11px;height:11px;
  border-right:1.5px solid var(--oro-scuro);border-bottom:1.5px solid var(--oro-scuro);
  transform:translateY(-70%) rotate(45deg);transition:transform .28s var(--e)}
.faq details[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
.faq details p{margin:0 0 1.1rem;color:var(--testo-tenue);max-width:60ch}

/* ══ DOVE ══ */
.corso{margin:0 0 2.6rem}
.corso img{width:100%;aspect-ratio:16/9;object-fit:cover}
@media (min-width:760px){.corso img{aspect-ratio:21/9}}
.dove-griglia{display:grid;gap:2.2rem}
.orari dl{margin:.9rem 0 0;display:grid;gap:.1rem}
.orari dl > div{display:flex;justify-content:space-between;gap:1rem;
  padding:.5rem 0;border-bottom:1px solid rgba(246,241,231,.11)}
.orari dt{color:rgba(246,241,231,.72)}
.orari dd{margin:0;font-variant-numeric:tabular-nums;color:var(--oro-chiaro)}
.orari-tel{margin-top:1.1rem}
.orari-tel a{color:var(--oro-chiaro);text-decoration:none;font-size:1.06rem}

/* ══ PIEDE ══ */
.piede{background:var(--nero-2);color:rgba(246,241,231,.8);
  padding:clamp(2.6rem,2rem + 3vw,4rem) 1.35rem calc(1.4rem + 62px + env(safe-area-inset-bottom))}
body.cookie-visibile .piede{padding-bottom:calc(1.4rem + 108px + env(safe-area-inset-bottom))}
.piede-griglia{display:grid;gap:2rem}
.piede h4{color:var(--oro-chiaro);margin:0 0 .9rem}
.piede a{color:rgba(246,241,231,.8);text-decoration:none;border-bottom:1px solid transparent;
  transition:color .2s,border-color .2s}
.piede a:hover{color:var(--oro-chiaro);border-color:var(--oro-chiaro)}
.piede-brand img{height:74px;width:auto;margin-bottom:1rem}
.piede-brand p{max-width:34ch;font-size:.95rem;color:rgba(246,241,231,.62)}
.piede-link li{padding:.28rem 0}
.piede-nap p,.piede-orari p{font-size:.95rem;line-height:1.6}
.piede-barra{margin-top:2.6rem;padding-top:1.3rem;border-top:1px solid rgba(246,241,231,.12);
  display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;justify-content:space-between;
  font-size:.82rem;color:rgba(246,241,231,.55)}
.piede-barra p{margin:0}

/* ══ BARRA MOBILE ══ */
.barra-mobile{position:fixed;left:0;right:0;bottom:0;z-index:55;display:flex;
  background:var(--nero);border-top:1px solid rgba(200,164,77,.28);
  padding-bottom:env(safe-area-inset-bottom)}
.barra-mobile a{flex:1;text-align:center;text-decoration:none;font-weight:600;
  padding:.95rem .5rem;font-size:.95rem}
.bm-wa{background:var(--oro);color:#12100C}
.bm-tel{color:var(--oro-chiaro);flex:0 0 34%}

/* ══ COOKIE — una riga sola ══ */
.cookie{position:fixed;left:0;right:0;bottom:0;z-index:70;display:flex;align-items:center;
  gap:.8rem;background:rgba(14,11,8,.96);color:rgba(246,241,231,.86);
  padding:.6rem 1rem calc(.6rem + env(safe-area-inset-bottom));font-size:.8rem;
  border-top:1px solid rgba(200,164,77,.3);transform:translateY(100%);
  animation:su .4s var(--e) .8s forwards}
@keyframes su{to{transform:translateY(0)}}
.cookie p{margin:0;flex:1}
.cookie a{color:var(--oro-chiaro)}
.cookie button{background:none;border:0;color:var(--oro-chiaro);font-size:1rem;
  cursor:pointer;padding:.4rem .6rem;line-height:1}
body.cookie-visibile .barra-mobile{bottom:44px}

/* ══ REVEAL ══ */
.reveal{opacity:0;transform:translate3d(0,22px,0);
  transition:opacity .75s var(--e),transform .75s var(--e)}
.reveal.dentro{opacity:1;transform:none}
.html-noscript .reveal{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1!important;transform:none!important;transition:none}
  .vetro{display:none}
  .nastro-pista{animation:none}
  .hero-giu span{animation:none}
}

/* ══════════ TABLET ══════════ */
@media (min-width:640px){
  .griglia-cat{grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem}
  .griglia-torte{grid-template-columns:repeat(3,minmax(0,1fr))}
  .griglia-feste{grid-template-columns:repeat(3,minmax(0,1fr))}
  .griglia-quattro{grid-template-columns:repeat(4,minmax(0,1fr))}
  .pista figure{flex:0 0 40%}
  .config{grid-template-columns:1.25fr .95fr;gap:2rem;align-items:start}
  .storia-foto{gap:.9rem}
  .ritaglio{grid-template-columns:.85fr 1.15fr;align-items:center;gap:2.4rem}
  .dove-griglia{grid-template-columns:1.1fr .9fr;gap:3rem}
  .piede-griglia{grid-template-columns:1.4fr 1fr 1.1fr .8fr;gap:2.4rem}
  .passi{grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem}
}

/* ══════════ COMPUTER — il montante diventa colonna fissa ══════════ */
@media (min-width:1080px){
  body{padding-bottom:0}
  .rail{inset:0 auto 0 0;width:var(--rail);border-bottom:0;
    border-right:1px solid rgba(200,164,77,.22);display:flex;flex-direction:column;
    padding:2rem 1.7rem 1.7rem}
  .rail-top{height:auto;padding:0;display:block}
  .marchio{display:block}
  .marchio-sigillo,.marchio-nome{display:none}
  .marchio-intero{display:block;height:auto;width:100%;max-width:200px}
  .menu-tasto{display:none}
  .rail-nav{position:static;inset:auto;opacity:1;visibility:visible;pointer-events:auto;
    transform:none;padding:0;overflow:visible;flex:1;margin-top:2rem;gap:1.6rem}
  .rail-anno{font-size:1.7rem}
  .rail-nav ul a{font-size:.97rem;padding:.5rem 0;position:relative;padding-left:0}
  .rail-nav ul a.qui{padding-left:.9rem}
  .rail-nav ul a.qui::before{content:'';position:absolute;left:0;top:50%;width:6px;height:1px;
    background:var(--oro);transform:translateY(-50%)}
  .rail-nap{text-align:left}
  .rail-tel{text-align:left;padding-left:0}
  .barra-mobile{display:none}
  .piede,body.cookie-visibile .piede{padding-bottom:1.4rem}
  main,.piede{margin-left:var(--rail)}
  .cookie{left:var(--rail)}
  .sez{padding-inline:clamp(2rem,1rem + 3.5vw,5rem)}
  .sez-larga{padding-inline:0}
  .sez-larga .intestazione,.sez-larga .dove-griglia{padding-inline:clamp(2rem,1rem + 3.5vw,5rem)}
  .hero-testo{padding:0 clamp(2rem,1rem + 3.5vw,5rem) 6.5rem}
  .pista{padding-inline:clamp(2rem,1rem + 3.5vw,5rem);margin-inline:calc(-1 * clamp(2rem,1rem + 3.5vw,5rem))}
  .pista figure{flex:0 0 27%}
  .griglia-cat{gap:1rem}
  .griglia-torte{grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}
  .griglia-feste{gap:1rem}
  .storia-griglia{grid-template-columns:1fr 1fr;gap:3.2rem;align-items:center}
  .piede{padding-inline:clamp(2rem,1rem + 3.5vw,5rem)}
  .numerone-riga{gap:2.4rem;align-items:center}
}
@media (min-width:1500px){
  :root{--rail:340px}
  .sez,.piede,.hero-testo,.sez-larga .intestazione,.sez-larga .dove-griglia,.pista{padding-inline:6vw}
  .pista{margin-inline:-6vw}
}


/* ══ RIFINITURE — le cose che si notano solo quando ci sono ══ */

/* il filo d'oro si allunga quando la sezione entra */
@keyframes allunga{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.reveal.dentro .filo{transform-origin:left center;animation:allunga .7s var(--e) both}

/* il sigillo dorato ha un riflesso lentissimo, come l'oro vero */
@keyframes luccichio{0%,88%{opacity:0;transform:translate3d(-140%,0,0) rotate(14deg)}
  94%{opacity:.75}100%{opacity:0;transform:translate3d(240%,0,0) rotate(14deg)}}
.marchio{position:relative;overflow:hidden}
.marchio::after{content:'';position:absolute;top:-30%;left:0;width:32%;height:160%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.55),transparent);
  animation:luccichio 9s linear infinite;pointer-events:none}
.marchio:hover .marchio-nome{color:var(--oro-chiaro)}
.marchio-nome{transition:color .25s var(--e)}

/* le righe del vassoio entrano una dopo l'altra */
@keyframes entra-riga{from{opacity:0;transform:translate3d(0,7px,0)}to{opacity:1;transform:none}}
#esitoLista li{animation:entra-riga .38s var(--e) both}
#esitoLista li:nth-child(2){animation-delay:.05s}
#esitoLista li:nth-child(3){animation-delay:.1s}
#esitoLista li:nth-child(4){animation-delay:.15s}
#esitoLista li:nth-child(5){animation-delay:.2s}

/* la risposta della domanda frequente scende, non appare */
@keyframes scendi{from{opacity:0;transform:translate3d(0,-6px,0)}to{opacity:1;transform:none}}
.faq details[open] p{animation:scendi .3s var(--e) both}
.faq summary{transition:color .22s var(--e),padding-left .22s var(--e)}
.faq summary:hover{color:var(--oro-scuro);padding-left:.35rem}
.faq summary::after{transition:transform .28s var(--e),border-color .22s}
.faq summary:hover::after{border-color:var(--oro)}

/* le foto del banco si alzano appena col puntatore */
.pista figure{transition:transform .45s var(--e)}
.pista figure:hover{transform:translateY(-6px)}
.pista img{transition:filter .45s var(--e)}
.pista figure:hover img{filter:brightness(1.06)}

/* i passi numerati */
.passi li span{transition:color .3s var(--e),-webkit-text-stroke-color .3s var(--e)}
.passi li:hover span{color:var(--oro);-webkit-text-stroke-color:var(--oro-chiaro)}

/* gli orari: la riga di oggi si stacca al passaggio */
.orari dl > div{transition:background .25s var(--e),padding-left .25s var(--e)}
.orari dl > div:hover{background:rgba(200,164,77,.07);padding-left:.4rem}

/* la targa e il ritaglio reagiscono appena */
.targa{transition:transform .4s var(--e),box-shadow .4s var(--e)}
.targa:hover{transform:translateX(3px)}
.ritaglio figure{transition:transform .5s var(--e),box-shadow .5s var(--e)}
.ritaglio figure:hover{transform:rotate(0deg) scale(1.015);box-shadow:0 20px 60px rgba(35,28,22,.22)}

/* piede e barre */
.piede-brand img{transition:opacity .3s var(--e)}
.piede-brand img:hover{opacity:.75}
.cookie button{transition:color .2s,transform .2s var(--e)}
.cookie button:hover{color:var(--panna);transform:scale(1.15)}
.bm-wa,.bm-tel{transition:background .22s var(--e),color .22s var(--e)}
.bm-wa:hover{background:var(--oro-chiaro)}
.bm-tel:hover{background:var(--nero-3);color:var(--panna)}
.scheda-testo{transition:padding-bottom .35s var(--e)}
.scheda:hover .scheda-testo{padding-bottom:1.15rem}
.rail-nav ul a{transition:color .2s var(--e),padding-left .2s var(--e)}
.rail-nav ul a:hover{padding-left:.3rem}
.griglia-feste span{transition:color .25s var(--e)}
.griglia-feste li:hover span{color:var(--testo-scuro)}
.orari-tel a{transition:color .22s var(--e)}
.orari-tel a:hover{color:var(--panna)}

@media (prefers-reduced-motion:reduce){
  .marchio::after,#esitoLista li,.faq details[open] p,.reveal.dentro .filo{animation:none}
  .hero-video{display:none}
}
