/* Pastamordolce — «Forma e ripieno.»
   La sfoglia che la rotella taglia in ravioli: le otto forme della pasta fresca; ogni foto è un raviolo col bordo smerlato.
   Reference forzata: MANSI (pastamansi.com): fondo crema, un colore pieno nelle sagome smerlate, disegni a tratto delle forme,
   foto sfalsate con blocchi di testo, logo al centro della testata. Colori dall'insegna bordeaux e oro del civico 11 e dal
   giallo uovo della pasta. */

:root {
  --crema: #F7F0E3;
  --crema-2: #EFE5D1;
  --crema-3: #E2D3B8;
  --bordeaux: #5C1A25;
  --bordeaux-2: #7C2A36;
  --oro: #9A7634;
  --uovo: #EFC35C;
  --uovo-2: #E2AE45;
  --inchiostro: #26191A;
  --grigio: #6B5750;
  --f-titolo: 'Noto Serif Display', 'Didot', 'Bodoni 72', Georgia, serif;
  --f-testo: 'Mona Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --gutter: clamp(16px, 4vw, 56px);
  --alto: 76px;
  --farina: radial-gradient(circle at 20% 30%, rgba(255, 255, 255, .38) 0 1px, transparent 1.6px) 0 0 / 23px 23px,
    radial-gradient(circle at 70% 60%, rgba(255, 255, 255, .3) 0 1px, transparent 1.6px) 0 0 / 31px 31px,
    radial-gradient(circle at 45% 80%, rgba(120, 80, 20, .09) 0 1px, transparent 1.7px) 0 0 / 17px 17px;
  --sagoma: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath d='M94.5 50.0 A6.2 6.2 0 0 1 93.0 61.5 A6.2 6.2 0 0 1 88.5 72.3 A6.2 6.2 0 0 1 81.5 81.5 A6.2 6.2 0 0 1 72.3 88.5 A6.2 6.2 0 0 1 61.5 93.0 A6.2 6.2 0 0 1 50.0 94.5 A6.2 6.2 0 0 1 38.5 93.0 A6.2 6.2 0 0 1 27.8 88.5 A6.2 6.2 0 0 1 18.5 81.5 A6.2 6.2 0 0 1 11.5 72.3 A6.2 6.2 0 0 1 7.0 61.5 A6.2 6.2 0 0 1 5.5 50.0 A6.2 6.2 0 0 1 7.0 38.5 A6.2 6.2 0 0 1 11.5 27.7 A6.2 6.2 0 0 1 18.5 18.5 A6.2 6.2 0 0 1 27.7 11.5 A6.2 6.2 0 0 1 38.5 7.0 A6.2 6.2 0 0 1 50.0 5.5 A6.2 6.2 0 0 1 61.5 7.0 A6.2 6.2 0 0 1 72.3 11.5 A6.2 6.2 0 0 1 81.5 18.5 A6.2 6.2 0 0 1 88.5 27.7 A6.2 6.2 0 0 1 93.0 38.5 A6.2 6.2 0 0 1 94.5 50.0 Z'/%3E%3C/svg%3E");
}

[hidden] { display: none !important; }
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--alto) + 8px); }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
body { margin: 0; background: var(--crema); color: var(--inchiostro); font: 400 1.05rem/1.65 var(--f-testo); -webkit-font-smoothing: antialiased; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; }
p { margin: 0 0 1em; }
:focus-visible { outline: 3px solid var(--bordeaux-2); outline-offset: 3px; }
.dentro { width: 100%; max-width: 1280px; margin: 0 auto; padding: 0 var(--gutter); }
main > section { overflow-x: clip; }
.solo-lettori { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ── reveal: nascosti solo con JS ── */
.js .reveal { opacity: 0; }
.js .reveal.in-view { opacity: 1; transition: opacity .6s ease; }
html:not(.js) .reveal { opacity: 1; }
.reduced-motion .reveal { opacity: 1 !important; }

/* ── tipografia ── */
.eti { margin: 0 0 16px; font: 600 .74rem/1.3 var(--f-testo); letter-spacing: .2em; text-transform: uppercase; color: var(--oro); }
.titolo { margin: 0; font: 400 clamp(2.9rem, 6.6vw, 5.8rem)/.95 var(--f-titolo); font-stretch: 72%; letter-spacing: -.005em; color: var(--bordeaux); text-wrap: balance; }
.testa { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 18px 48px; align-items: end; margin-bottom: clamp(36px, 5vw, 64px); }
.testa .eti { grid-column: 1 / -1; margin-bottom: 0; }
.testa__p { margin: 0; max-width: 46ch; font-size: 1.08rem; color: var(--grigio); }

/* ── bottoni ── */
.btn { display: inline-flex; align-items: center; justify-content: center; min-height: 50px; padding: 12px 24px; border: 1.5px solid var(--bordeaux); border-radius: 3px; font: 600 .8rem/1.1 var(--f-testo); letter-spacing: .12em; text-transform: uppercase; text-decoration: none; cursor: pointer; transition: background-color .2s ease, color .2s ease; }
.btn--pieno { background: var(--bordeaux); color: var(--crema); }
.btn--pieno:hover { background: var(--bordeaux-2); border-color: var(--bordeaux-2); }
.btn--linea { background: transparent; color: var(--bordeaux); }
.btn--linea:hover { background: var(--bordeaux); color: var(--crema); }
.btn--piccolo { min-height: 42px; padding: 9px 18px; }
.azioni { display: flex; flex-wrap: wrap; gap: 12px; }
.stato { display: flex; align-items: center; gap: 10px; margin: 0 0 22px; font-weight: 600; font-size: .95rem; }
.stato::before { content: ''; width: 9px; height: 9px; border-radius: 50%; background: var(--uovo-2); box-shadow: 0 0 0 3px rgba(226, 174, 69, .25); }

/* ── il raviolo: foto col bordo smerlato (maschera: un rettangolo rientrato + i festoni sui quattro lati) ── */
.raviolo { position: relative; z-index: 0; margin: 0; }
.raviolo__foto { --r: 8px; position: relative; display: block; width: 100%; padding: 0; border: 0; background: var(--crema-2); cursor: zoom-in; aspect-ratio: 1 / 1; overflow: hidden;
  -webkit-mask:
    linear-gradient(#000 0 0) center / calc(100% - 2 * var(--r)) calc(100% - 2 * var(--r)) no-repeat,
    radial-gradient(closest-side, #000 94%, #0000) left top / calc(2 * var(--r)) calc(2 * var(--r)) round no-repeat,
    radial-gradient(closest-side, #000 94%, #0000) left bottom / calc(2 * var(--r)) calc(2 * var(--r)) round no-repeat,
    radial-gradient(closest-side, #000 94%, #0000) left top / calc(2 * var(--r)) calc(2 * var(--r)) no-repeat round,
    radial-gradient(closest-side, #000 94%, #0000) right top / calc(2 * var(--r)) calc(2 * var(--r)) no-repeat round;
  mask:
    linear-gradient(#000 0 0) center / calc(100% - 2 * var(--r)) calc(100% - 2 * var(--r)) no-repeat,
    radial-gradient(closest-side, #000 94%, #0000) left top / calc(2 * var(--r)) calc(2 * var(--r)) round no-repeat,
    radial-gradient(closest-side, #000 94%, #0000) left bottom / calc(2 * var(--r)) calc(2 * var(--r)) round no-repeat,
    radial-gradient(closest-side, #000 94%, #0000) left top / calc(2 * var(--r)) calc(2 * var(--r)) no-repeat round,
    radial-gradient(closest-side, #000 94%, #0000) right top / calc(2 * var(--r)) calc(2 * var(--r)) no-repeat round;
}
.raviolo__foto img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.2, .7, .2, 1); }
.raviolo__foto:hover img { transform: scale(1.03); }
.raviolo figcaption, .apertura__figura figcaption { margin-top: 12px; font: 400 1.02rem/1.35 var(--f-titolo); font-style: italic; color: var(--grigio); }
/* il lembo di sfoglia attorno al raviolo dell'apertura: stato finale = già rifilato (invisibile) */
.raviolo__sfoglia { position: absolute; inset: -26px; z-index: -1; background: var(--farina), linear-gradient(135deg, #F2CB6A, var(--uovo) 55%, #EDBE55); border-radius: 3px; opacity: 0; pointer-events: none; }
/* la sagoma gialla smerlata dietro le foto (MANSI) */
.sagoma { position: absolute; z-index: -1; width: 76%; aspect-ratio: 1; right: -16%; top: -14%; background: var(--uovo); opacity: .9; pointer-events: none; -webkit-mask: var(--sagoma) center / contain no-repeat; mask: var(--sagoma) center / contain no-repeat; }

/* ── il medaglione: la P nel raviolo tondo ── */
.medaglione { display: block; width: 44px; height: 44px; flex: 0 0 auto; }
.medaglione__fondo { fill: var(--bordeaux); }
.medaglione__p { fill: var(--crema); }

/* ── intro ── */
.intro { position: fixed; inset: 0; z-index: 300; display: flex; align-items: center; justify-content: center; background: var(--crema); transition: opacity .5s ease; animation: intro-sicura .01s linear 8s forwards; }
.no-js .intro { display: none; }
.intro.hide { opacity: 0; pointer-events: none; }
@keyframes intro-sicura { to { opacity: 0; visibility: hidden; pointer-events: none; } }
.intro__in { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 12px; padding: 0 24px; }
.intro__medaglione { width: 96px; height: 96px; }
.intro__nome { margin: 8px 0 0; font: 400 clamp(2.6rem, 9vw, 4.6rem)/1 var(--f-titolo); font-stretch: 72%; color: var(--bordeaux); letter-spacing: .01em; }
.intro__cosa { margin: 0; font: 600 .74rem/1.5 var(--f-testo); letter-spacing: .22em; text-transform: uppercase; color: var(--oro); }
.intro__salta { position: absolute; right: 20px; bottom: 20px; background: none; border: 1px solid rgba(92, 26, 37, .35); border-radius: 3px; color: var(--bordeaux); padding: 10px 18px; font: 600 .72rem/1 var(--f-testo); letter-spacing: .14em; text-transform: uppercase; cursor: pointer; }

/* ── testata alla MANSI: menu a sinistra, logo al centro, lingua e «Chiama» a destra ── */
.testata { position: fixed; top: 0; left: 0; right: 0; z-index: 50; background: var(--crema); border-bottom: 1px solid var(--crema-3); }
.testata__in { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 20px; height: var(--alto); padding: 0 var(--gutter); max-width: 1280px; margin: 0 auto; }
#mainNav { display: flex; gap: 24px; }
#mainNav a { font: 600 .74rem/1 var(--f-testo); letter-spacing: .16em; text-transform: uppercase; text-decoration: none; padding: 8px 0; border-bottom: 1.5px solid transparent; }
#mainNav a:hover { border-bottom-color: var(--bordeaux); }
.marchio { display: flex; align-items: center; gap: 10px; text-decoration: none; }
.marchio__nome { font: 400 1.9rem/1 var(--f-titolo); font-stretch: 72%; color: var(--bordeaux); letter-spacing: .01em; }
.testata__dx { display: flex; align-items: center; justify-content: flex-end; gap: 14px; }
.lingue { display: flex; border: 1px solid var(--crema-3); border-radius: 3px; }
.lingue button { background: none; border: 0; padding: 8px 11px; font: 600 .72rem/1 var(--f-testo); letter-spacing: .14em; color: var(--grigio); cursor: pointer; }
.lingue button[aria-pressed="true"] { color: var(--bordeaux); text-decoration: underline; text-underline-offset: 4px; }
#burger { display: none; width: 46px; height: 46px; background: none; border: 1px solid var(--crema-3); border-radius: 3px; cursor: pointer; padding: 0 12px; flex-direction: column; justify-content: center; gap: 5px; }
#burger span { display: block; height: 1.5px; background: var(--bordeaux); }
#drawer { position: fixed; top: var(--alto); left: 0; right: 0; bottom: 0; background: var(--crema); padding: 24px var(--gutter) 40px; overflow-y: auto; display: flex; flex-direction: column; }
#drawer a { padding: 16px 0; border-bottom: 1px solid var(--crema-3); font: 400 2.2rem/1 var(--f-titolo); font-stretch: 72%; color: var(--bordeaux); text-decoration: none; }
#drawer .drawer__chiama { border: 0; margin-top: 12px; font: 600 1rem/1.2 var(--f-testo); color: var(--bordeaux-2); }

/* ── apertura ── */
.apertura { padding: calc(var(--alto) + clamp(44px, 7vw, 96px)) 0 clamp(64px, 9vw, 120px); }
.apertura__griglia { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: clamp(40px, 6vw, 96px); align-items: center; }
.apertura__t { margin: 0 0 26px; font: 400 clamp(3.6rem, 8.4vw, 7.6rem)/.9 var(--f-titolo); font-stretch: 72%; color: var(--bordeaux); letter-spacing: -.01em; }
.apertura__t em { font-style: italic; font-stretch: 80%; color: var(--bordeaux-2); }
.apertura__p { max-width: 50ch; font-size: 1.1rem; }
.apertura__figura { margin: 0; padding: 26px; }
.raviolo--grande .raviolo__foto { --r: 12px; }
.apertura__figura figcaption { margin-top: 36px; }

/* ── le forme: la sfoglia tagliata in otto ravioli ── */
.forme { padding: clamp(72px, 9vw, 120px) 0; background: var(--crema-2); }
.sfoglia { --sx: 0px; --sy: 0px; position: relative; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(14px, 2vw, 26px); }
/* il margine di sfoglia (lo sfrido) che la rotella rifila: visibile solo quando la sfoglia è intera */
.sfoglia::before { content: ''; position: absolute; inset: calc(var(--sy) - 22px) calc(var(--sx) - 22px); background: var(--farina), linear-gradient(160deg, #F2CB6A, var(--uovo) 50%, #EABB52); border-radius: 3px; opacity: 0; pointer-events: none; transition: opacity .6s ease; }
.forma { position: relative; z-index: 1; filter: drop-shadow(0 8px 12px rgba(38, 25, 26, .14)); }
.forma__pasta { --r: 9px; height: 100%; display: flex; flex-direction: column; align-items: center; text-align: center; padding: 26px 20px 30px; background: var(--farina), var(--uovo);
  -webkit-mask:
    linear-gradient(#000 0 0) center / calc(100% - 2 * var(--r)) calc(100% - 2 * var(--r)) no-repeat,
    radial-gradient(closest-side, #000 94%, #0000) left top / calc(2 * var(--r)) calc(2 * var(--r)) round no-repeat,
    radial-gradient(closest-side, #000 94%, #0000) left bottom / calc(2 * var(--r)) calc(2 * var(--r)) round no-repeat,
    radial-gradient(closest-side, #000 94%, #0000) left top / calc(2 * var(--r)) calc(2 * var(--r)) no-repeat round,
    radial-gradient(closest-side, #000 94%, #0000) right top / calc(2 * var(--r)) calc(2 * var(--r)) no-repeat round;
  mask:
    linear-gradient(#000 0 0) center / calc(100% - 2 * var(--r)) calc(100% - 2 * var(--r)) no-repeat,
    radial-gradient(closest-side, #000 94%, #0000) left top / calc(2 * var(--r)) calc(2 * var(--r)) round no-repeat,
    radial-gradient(closest-side, #000 94%, #0000) left bottom / calc(2 * var(--r)) calc(2 * var(--r)) round no-repeat,
    radial-gradient(closest-side, #000 94%, #0000) left top / calc(2 * var(--r)) calc(2 * var(--r)) no-repeat round,
    radial-gradient(closest-side, #000 94%, #0000) right top / calc(2 * var(--r)) calc(2 * var(--r)) no-repeat round;
}
/* sfoglia intera (lo stato che il JS mette prima del taglio): le tessere accostate col transform (--sx/--sy dicono di quanto),
   niente festoni, niente ombra, il colore lo dà la sfoglia sotto */
.sfoglia.is-intera::before { opacity: 1; transition: none; } /* compare subito; la transizione vale solo quando lo sfrido se ne va */
.sfoglia.is-intera .forma { filter: none; }
.sfoglia.is-intera .forma__pasta { -webkit-mask: none; mask: none; background: none; }
.forma__disegno { width: min(190px, 100%); height: auto; margin-bottom: 10px; fill: none; stroke: var(--bordeaux); stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.forma__disegno .sottile { stroke-width: 1.4; opacity: .75; }
.forma__disegno .dentelli { stroke-dasharray: 2.2 2.6; stroke-width: 2; }
.forma__disegno .pieno { fill: #2C2224; stroke: #2C2224; }
.forma__disegno .chiaro { stroke: var(--uovo); opacity: 1; }
.forma__nome { margin: 0 0 6px; font: 400 clamp(1.7rem, 2.4vw, 2.2rem)/1 var(--f-titolo); font-stretch: 72%; color: var(--bordeaux); }
.forma__ripieni { margin: 0; max-width: 24ch; font-size: .92rem; line-height: 1.45; color: var(--inchiostro); }
.forme__nota { margin: clamp(40px, 5vw, 56px) 0 0; max-width: 62ch; font: 400 1.25rem/1.45 var(--f-titolo); font-style: italic; color: var(--bordeaux); }
.forme__foto { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(16px, 3vw, 40px); margin-top: clamp(36px, 5vw, 56px); }
.forme__foto .raviolo:nth-child(2) { margin-top: clamp(24px, 4vw, 56px); }

/* ── il dolce: blocchi sfalsati (MANSI) ── */
.dolce { padding: clamp(80px, 10vw, 140px) 0; }
.blocco { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1fr); gap: clamp(32px, 6vw, 96px); align-items: center; margin-bottom: clamp(64px, 9vw, 120px); }
.blocco:last-child { margin-bottom: 0; }
.blocco--rovescio { grid-template-columns: minmax(0, 1fr) minmax(0, .9fr); }
.blocco--rovescio .blocco__foto { order: 2; }
.blocco--rovescio .sagoma { right: auto; left: -16%; top: auto; bottom: -14%; }
.blocco__foto { max-width: 520px; }
.blocco--rovescio .blocco__foto { justify-self: end; }
.blocco__testo { max-width: 44ch; }
.blocco__t { margin: 0 0 14px; font: 400 clamp(2.2rem, 4vw, 3.4rem)/1 var(--f-titolo); font-stretch: 72%; color: var(--bordeaux); }
.blocco__testo p { font-size: 1.08rem; }

/* ── i vasetti ── */
.vasetti { padding: clamp(72px, 9vw, 120px) 0; background: var(--bordeaux); color: var(--crema); }
.vasetti .titolo { color: var(--crema); }
.vasetti .eti { color: var(--uovo); }
.vasetti__griglia { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1fr); gap: clamp(36px, 6vw, 96px); align-items: center; }
.vasetti__foto { max-width: 520px; }
.vasetti__testo > p { margin-top: 22px; font-size: 1.08rem; }
.etichette { list-style: none; margin: 24px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.etichette li { padding: 10px 16px; background: var(--crema); color: var(--inchiostro); border: 1px solid var(--oro); outline: 1px solid var(--crema); outline-offset: 2px; font: 400 1.05rem/1.2 var(--f-titolo); }

/* ── dal 1991 ── */
.storia { padding: clamp(80px, 10vw, 130px) 0; }
.raviolo--striscia .raviolo__foto { --r: 10px; aspect-ratio: 1400 / 730; }
.storia__griglia { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(28px, 5vw, 80px); margin-top: clamp(40px, 6vw, 72px); }
.storia__testo p { font-size: 1.1rem; }
.storia__frase { margin: 26px 0 0; padding-left: 22px; border-left: 2px solid var(--uovo-2); font: 400 clamp(1.6rem, 2.6vw, 2.2rem)/1.25 var(--f-titolo); font-style: italic; color: var(--bordeaux); }

/* ── le voci: cartellini come le etichette dei loro vasetti ── */
.voci { padding: clamp(80px, 10vw, 130px) 0; background: var(--crema-2); }
.voci__griglia { columns: 3 280px; column-gap: clamp(16px, 2.4vw, 28px); }
.voce { margin: 0 0 clamp(16px, 2.4vw, 28px); break-inside: avoid; padding: 30px 28px 26px; background: #FBF7EF; border: 1px solid var(--bordeaux); outline: 1px solid var(--oro); outline-offset: -7px; }
.voce blockquote { margin: 0 0 18px; font-size: 1rem; line-height: 1.6; }
.voce figcaption { font: 400 1rem/1.3 var(--f-titolo); font-style: italic; color: var(--bordeaux); }
.voci__piede { margin: 28px 0 0; font-size: .9rem; color: var(--grigio); }

/* ── dove e quando ── */
.dove { padding: clamp(80px, 10vw, 130px) 0; }
.dove__griglia { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(40px, 6vw, 96px); align-items: start; }
.dove .titolo { margin-bottom: 26px; }
.orari { width: 100%; max-width: 460px; border-collapse: collapse; margin-bottom: 26px; }
.orari th, .orari td { padding: 10px 0; border-bottom: 1px solid var(--crema-3); text-align: left; font-weight: 400; }
.orari td { text-align: right; }
.orari tr.is-today th, .orari tr.is-today td { font-weight: 600; color: var(--bordeaux-2); }
.dove__p { max-width: 46ch; }
.dove__frase { margin: 24px 0; padding: 18px 22px; background: var(--crema-2); border-left: 2px solid var(--uovo-2); }
.dove__frase p { margin: 0 0 8px; font: 400 1.25rem/1.4 var(--f-titolo); font-style: italic; color: var(--bordeaux); }
.dove__frase footer { font-size: .88rem; color: var(--grigio); }
.contatti { margin: 0 0 26px; }
.contatti div { display: grid; grid-template-columns: 130px minmax(0, 1fr); gap: 16px; padding: 10px 0; border-bottom: 1px solid var(--crema-3); }
.contatti dt { font: 600 .72rem/1.9 var(--f-testo); letter-spacing: .14em; text-transform: uppercase; color: var(--oro); }
.contatti dd { margin: 0; }
.dove__destra { display: grid; gap: 28px; }
.dove__foto { max-width: 560px; }
.mappa { aspect-ratio: 4 / 3; background: var(--crema-2); border: 1px solid var(--crema-3); }
.mappa iframe { width: 100%; height: 100%; border: 0; display: block; }

/* ── domande ── */
.domande { padding: 0 0 clamp(80px, 10vw, 130px); }
.faq { margin-top: clamp(28px, 4vw, 44px); border-top: 1.5px solid var(--bordeaux); }
.faq details { border-bottom: 1px solid var(--crema-3); }
.faq summary { display: flex; justify-content: space-between; align-items: center; gap: 18px; padding: 20px 0; font: 600 clamp(1.02rem, 1.5vw, 1.14rem)/1.4 var(--f-testo); cursor: pointer; list-style: none; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: '+'; flex: 0 0 auto; font: 400 1.7rem/1 var(--f-titolo); color: var(--bordeaux); }
.faq details[open] summary::after { content: '–'; }
.faq details p { margin: 0 0 22px; max-width: 62ch; }

/* ── piede ── */
.piede { padding: clamp(56px, 7vw, 88px) 0 clamp(96px, 10vw, 110px); background: var(--bordeaux); color: var(--crema); }
.piede a { color: var(--crema); }
.piede__marca { display: flex; align-items: center; gap: 12px; margin-bottom: 22px; }
.piede .medaglione__fondo { fill: var(--crema); }
.piede .medaglione__p { fill: var(--bordeaux); }
.piede__n { font: 400 2.4rem/1 var(--f-titolo); font-stretch: 72%; }
.piede__cred { font-size: .86rem; opacity: .75; }

/* ── barra azioni mobile ── */
.barra { position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; display: none; grid-template-columns: repeat(4, 1fr); background: var(--crema); border-top: 1px solid var(--bordeaux); padding-bottom: env(safe-area-inset-bottom); transform: translateY(110%); transition: transform .3s ease; }
.barra.is-visible { transform: none; }
.barra a { padding: 16px 4px; text-align: center; text-decoration: none; font: 600 .7rem/1 var(--f-testo); letter-spacing: .12em; text-transform: uppercase; border-left: 1px solid var(--crema-3); }
.barra a:first-child { border-left: 0; background: var(--bordeaux); color: var(--crema); }

/* ── lightbox ── */
#lightbox { position: fixed; inset: 0; z-index: 200; background: rgba(38, 25, 26, .94); display: flex; align-items: center; justify-content: center; padding: 24px; }
#lightboxImg { max-width: 94vw; max-height: 88vh; width: auto; height: auto; border: 10px solid var(--crema); }
#lightboxClose { position: absolute; top: 14px; right: 14px; width: 48px; height: 48px; border: 1px solid rgba(247, 240, 227, .5); border-radius: 3px; background: none; color: var(--crema); font: 400 28px/1 var(--f-testo); cursor: pointer; }

/* ── risposte ── */
@media (max-width: 1100px) {
  .sfoglia { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 960px) {
  .testata__in { grid-template-columns: auto minmax(0, 1fr); }
  #mainNav, .testata__chiama { display: none; }
  #burger { display: flex; }
  .barra { display: grid; }
  .apertura__griglia, .testa, .vasetti__griglia, .storia__griglia, .dove__griglia { grid-template-columns: minmax(0, 1fr); }
  .apertura__figura { max-width: 560px; }
  .blocco, .blocco--rovescio { grid-template-columns: minmax(0, 1fr); }
  .blocco--rovescio .blocco__foto { order: 0; justify-self: start; }
}
@media (max-width: 620px) {
  .marchio__nome { font-size: 1.6rem; }
  .medaglione { width: 38px; height: 38px; }
  .lingue button { padding: 8px 9px; }
  .forme__foto { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .forme__foto .raviolo:nth-child(2) { margin-top: 0; }
  .forme__foto .raviolo:nth-child(3) { grid-column: 1 / -1; max-width: 70%; justify-self: center; }
  .forma__pasta { padding: 20px 12px 22px; }
  .forma__nome { font-size: 1.55rem; }
  .forma__ripieni { font-size: .86rem; }
  .apertura__figura { padding: 18px; }
  .contatti div { grid-template-columns: minmax(0, 1fr); gap: 2px; }
  .azioni .btn { flex: 1 1 100%; }
}

/*MAPPACLIC*/
/* la mappa Google si carica solo al clic (giro privacy 1/10/2026) */
.mappa-clic { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; min-height: var(--mappa-h, 320px); box-sizing: border-box; padding: 24px; text-align: center; background: repeating-linear-gradient(0deg, rgba(127, 127, 127, 0.14) 0 1px, transparent 1px 28px), repeating-linear-gradient(90deg, rgba(127, 127, 127, 0.14) 0 1px, transparent 1px 28px); }
.mappa-clic__velo { display: flex; flex-direction: column; align-items: center; gap: 12px; max-width: 32em; }
.mappa-clic__btn { display: inline-block; padding: 0.75em 1.4em; border: 2px solid currentColor; border-radius: 999px; color: inherit; font: inherit; font-weight: 600; line-height: 1.2; text-decoration: none; background: transparent; cursor: pointer; }
.mappa-clic__btn:hover, .mappa-clic__btn:focus-visible { text-decoration: underline; }
.mappa-clic__nota { margin: 0; font-size: 0.85em; line-height: 1.45; }
/*/MAPPACLIC*/
