/* ==========================================================================
   Bar Rialto da Lollo — foglio di stile
   Direzione: "Bacaro pop", retro veneziano anni '70
   ========================================================================== */

:root {
  /* Palette dal logo del cliente */
  --rosso: #C6090D;
  --rosso-scuro: #A10609;
  --bordeaux: #72030E;
  --bordeaux-scuro: #4E020A;
  --crema: #FDF5E7;
  --crema-2: #F6E8CF;
  --crema-ombra: #D4AE78;   /* spessore dei pulsanti crema su fondo bordeaux */
  --carta: #FFFBF3;
  --nero: #0B0B0B;
  --inchiostro: #2A1A17;
  --tenue: #6E5A52;
  --uovo: #F2B33D;

  --font-titoli: "Fraunces", "Cooper Black", Georgia, serif;
  --font-testo: "DM Sans", system-ui, -apple-system, "Segoe UI", sans-serif;

  --contenitore: 1180px;
  --gutter: clamp(16px, 4vw, 40px);
  --raggio: 22px;
  --sezione: clamp(72px, 10vw, 140px);

  --ombra: 0 1px 0 rgba(42, 26, 23, .06), 0 18px 40px -22px rgba(78, 2, 10, .35);
  --ease: cubic-bezier(.2, .7, .2, 1);
}

/* --------------------------------------------------------------------------
   Base
   -------------------------------------------------------------------------- */
*,
*::before,
*::after { box-sizing: border-box; }

/* fondo bordeaux sull'html: Safari lo usa come colore di riserva per la
   barra di stato e per il rimbalzo oltre i bordi; il body resta crema */
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; overflow-x: clip; background-color: var(--bordeaux); }
/* Safari iOS non rispetta del tutto overflow sull'html: il ritaglio va
   anche sui blocchi principali (il nastro inclinato sporge ai lati) */
main { overflow-x: clip; }

body {
  margin: 0;
  background: var(--crema);
  color: var(--inchiostro);
  font-family: var(--font-testo);
  font-size: clamp(16.5px, 1.05vw + 12px, 18.5px);
  line-height: 1.65;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;

}

/* iPhone: barra di stato (ora, batteria) bordeaux.
   Safari 26 colora la barra campionando un elemento fisso a tutta
   larghezza attaccato al bordo alto (ignora theme-color e gli
   pseudo-elementi), quindi serve un <div> vero: <div class="tinta-ios">.
   WebKit scarta gli elementi alti 10px o meno, trasparenti o nascosti:
   la fascia è alta 12px, piena, e la testata si ferma subito sotto.
   Nelle web app da schermata Home riempie anche la zona sotto l'ora. */
:root { --fascia-ios: 0px; }
.tinta-ios, .tinta-ios-basso { display: none; }
@media (max-width: 960px) {
  :root { --fascia-ios: max(12px, env(safe-area-inset-top, 0px)); }
  .tinta-ios {
    display: block;
    position: fixed;
    top: 0; left: 0; right: 0;
    height: var(--fascia-ios);
    background-color: var(--bordeaux);
    /* niente pointer-events: none, il campionamento di Safari è un hit test.
       Deve stare SOPRA la grana (body::after, z-index 100): altrimenti
       Safari trova per primo quello strato fisso senza colore e rinuncia */
    z-index: 110;
  }
  /* stessa cosa per la barra di Safari in basso: striscia quasi invisibile
     (opacità 12%, sopra la soglia del 10% sotto cui Safari la ignora);
     main.js le dà il colore della sezione che sta in fondo allo schermo */
  .tinta-ios-basso {
    display: block;
    position: fixed;
    left: 0; right: 0; bottom: 0;
    height: 12px;
    background-color: var(--crema);
    opacity: .12;
    z-index: 110;
  }
}

/* grana da carta stampata */
body::after {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 100;
  opacity: .07;
  mix-blend-mode: multiply;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.3 0 0 0 0 0.1 0 0 0 0 0.05 0 0 0 1 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

img, video, svg { display: block; max-width: 100%; }
img { height: auto; }

a { color: var(--rosso); text-decoration-thickness: .08em; text-underline-offset: .18em; }
a:hover { color: var(--bordeaux); }

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

h1, h2, h3, h4 {
  font-family: var(--font-titoli);
  font-variation-settings: "SOFT" 100, "WONK" 0;
  font-weight: 800;
  line-height: 1.02;
  letter-spacing: -.015em;
  color: var(--bordeaux);
  margin: 0 0 .5em;
  text-wrap: balance;
}
h1 { font-size: clamp(2.6rem, 6.4vw, 5.6rem); font-weight: 900; }
h2 { font-size: clamp(2.1rem, 4.4vw, 3.7rem); }
h3 { font-size: clamp(1.4rem, 2.2vw, 1.85rem); line-height: 1.12; }
p { margin: 0 0 1.1em; text-wrap: pretty; }
strong { font-weight: 700; color: var(--bordeaux); }

.salta {
  position: absolute; left: -999px; top: 8px; z-index: 200;
  background: var(--bordeaux); color: var(--crema); padding: 10px 16px; border-radius: 999px;
}
.salta:focus { left: 8px; }

.contenitore { width: min(100% - 2 * max(var(--gutter), env(safe-area-inset-left, 0px), env(safe-area-inset-right, 0px)), var(--contenitore)); margin-inline: auto; }
.stretto { max-width: 720px; }

.occhiello {
  display: inline-flex; align-items: center; gap: .6em;
  font-family: var(--font-testo);
  font-size: .78rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase;
  color: var(--rosso);
  margin-bottom: 1.1rem;
}
.occhiello::before {
  content: ""; width: 1.05em; height: 1.05em; flex: none;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 100 100%22%3E%3Cpath d=%22M50.00 0.00 L57.76 21.02 L75.00 6.70 L71.21 28.79 L93.30 25.00 L78.98 42.24 L100.00 50.00 L78.98 57.76 L93.30 75.00 L71.21 71.21 L75.00 93.30 L57.76 78.98 L50.00 100.00 L42.24 78.98 L25.00 93.30 L28.79 71.21 L6.70 75.00 L21.02 57.76 L0.00 50.00 L21.02 42.24 L6.70 25.00 L28.79 28.79 L25.00 6.70 L42.24 21.02Z%22 fill=%22%23C6090D%22/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 100 100%22%3E%3Cpath d=%22M50.00 0.00 L57.76 21.02 L75.00 6.70 L71.21 28.79 L93.30 25.00 L78.98 42.24 L100.00 50.00 L78.98 57.76 L93.30 75.00 L71.21 71.21 L75.00 93.30 L57.76 78.98 L50.00 100.00 L42.24 78.98 L25.00 93.30 L28.79 71.21 L6.70 75.00 L21.02 57.76 L0.00 50.00 L21.02 42.24 L6.70 25.00 L28.79 28.79 L25.00 6.70 L42.24 21.02Z%22 fill=%22%23C6090D%22/%3E%3C/svg%3E") center / contain no-repeat;
}

.lead { font-size: clamp(1.12rem, 1.4vw + .6rem, 1.38rem); line-height: 1.55; color: var(--inchiostro); }

/* --------------------------------------------------------------------------
   Pulsanti
   -------------------------------------------------------------------------- */
.pulsanti { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 1.8rem; }
.btn {
  --bg: var(--rosso); --fg: var(--crema);
  display: inline-flex; align-items: center; gap: .55em;
  padding: .92em 1.45em;
  border-radius: 999px;
  background: var(--bg); color: var(--fg);
  font-weight: 700; font-size: .98rem; text-decoration: none; line-height: 1;
  border: 2px solid var(--bg);
  box-shadow: 0 4px 0 var(--bordeaux-scuro);
  transform: translateY(0);
  transition: transform .18s var(--ease), box-shadow .18s var(--ease), background .18s;
}
.btn:hover { color: var(--fg); transform: translateY(2px); box-shadow: 0 2px 0 var(--bordeaux-scuro); }
.btn:active { transform: translateY(4px); box-shadow: 0 0 0 var(--bordeaux-scuro); }
.btn--vuoto { --bg: transparent; --fg: var(--bordeaux); border-color: var(--bordeaux); box-shadow: 0 4px 0 var(--bordeaux); }
/* in hover resta "vuoto": fondo crema appena più scuro, bordo e ombra bordeaux sempre leggibili */
.btn--vuoto:hover { background: var(--crema-2); --fg: var(--bordeaux); box-shadow: 0 2px 0 var(--bordeaux); }
.btn--vuoto:active { box-shadow: 0 0 0 var(--bordeaux); }
.btn--crema { --bg: var(--crema); --fg: var(--bordeaux); --ombra: var(--bordeaux-scuro); box-shadow: 0 4px 0 var(--ombra); }
.btn--crema:hover { box-shadow: 0 2px 0 var(--ombra); }
.btn--crema:active { box-shadow: 0 0 0 var(--ombra); }
/* su fondo bordeaux il bordo scuro non si vede: lì lo spessore è color sabbia */
.sezione--bordeaux .btn--crema { --ombra: var(--crema-ombra); }
.btn svg { width: 1.1em; height: 1.1em; }

/* --------------------------------------------------------------------------
   Barra informazioni + intestazione
   -------------------------------------------------------------------------- */
.barra {
  padding-top: env(safe-area-inset-top, 0px);
  background: var(--bordeaux);
  color: var(--crema);
  font-size: .84rem;
  font-weight: 500;
}
.barra .contenitore { display: flex; justify-content: space-between; align-items: center; gap: 16px; min-height: 40px; }
.barra a { color: var(--crema); text-decoration: none; }
.barra a:hover { text-decoration: underline; }
.stato { display: inline-flex; align-items: center; gap: .5em; }
.stato::before { content: ""; width: .55em; height: .55em; border-radius: 50%; background: var(--uovo); box-shadow: 0 0 0 3px rgba(242, 179, 61, .25); }
.stato[data-aperto="true"]::before { background: #7BD389; box-shadow: 0 0 0 3px rgba(123, 211, 137, .25); }
.barra__social { gap: 14px; }
.barra .social a { width: auto; height: auto; background: none; color: var(--crema); }
.barra .social a:hover { color: var(--uovo); background: none; }
.barra .social svg { width: 17px; height: 17px; }

/* icone dei social */
.social { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.social a {
  display: inline-grid; place-items: center; width: 44px; height: 44px; border-radius: 50%;
  background: var(--bordeaux); color: var(--crema); text-decoration: none;
  transition: background-color .2s, color .2s;
}
.social a:hover { background: var(--rosso); }
.social a:focus-visible { outline: 3px solid var(--uovo); outline-offset: 3px; }
.social svg { width: 21px; height: 21px; display: block; }
.social--pie { margin-top: 1.2em; }
.pie .social a { background: var(--crema); color: var(--bordeaux); text-decoration: none; }
.pie .social a:hover { background: var(--uovo); color: var(--bordeaux-scuro); }
.scheda .social { margin-top: 1.2rem; }

.testata {
  position: sticky; top: max(var(--fascia-ios), env(safe-area-inset-top, 0px)); z-index: 50;
  border-bottom: 2px solid transparent;
  transition: border-color .2s, box-shadow .2s;
}
/* lo sfondo sfocato sta su uno pseudo-elemento: backdrop-filter sulla testata
   renderebbe il menu mobile (position: fixed) relativo alla testata */
.testata::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: color-mix(in srgb, var(--crema) 92%, transparent);
  -webkit-backdrop-filter: blur(10px) saturate(1.2);
          backdrop-filter: blur(10px) saturate(1.2);
}
.testata.scorrimento { border-bottom-color: rgba(114, 3, 14, .12); box-shadow: 0 10px 30px -24px rgba(78, 2, 10, .6); }
.testata .contenitore { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 82px; }
.marchio { display: block; flex: none; }
.marchio img { height: 62px; width: auto; }

.menu { display: flex; align-items: center; gap: clamp(14px, 2vw, 30px); }
.menu ul { list-style: none; display: flex; gap: clamp(12px, 1.8vw, 28px); margin: 0; padding: 0; }
.menu a:not(.btn) {
  font-weight: 600; font-size: .97rem; color: var(--inchiostro); text-decoration: none;
  position: relative; padding: .4em 0;
}
.menu a:not(.btn)::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; border-radius: 3px;
  background: var(--rosso); transform: scaleX(0); transform-origin: left; transition: transform .25s var(--ease);
}
.menu a:not(.btn):hover::after,
.menu a[aria-current="page"]::after { transform: scaleX(1); }
.menu a[aria-current="page"] { color: var(--rosso); }
.menu .btn { padding: .78em 1.2em; font-size: .92rem; }
/* selettore di lingua (Italiano / English) */
.menu a.lingua {
  display: inline-flex; align-items: center; gap: .4em;
  font-size: .9rem; font-weight: 700; color: var(--bordeaux); text-decoration: none;
  padding: .45em .8em; border: 2px solid currentColor; border-radius: 999px;
}
.menu a.lingua::after { display: none; }
.menu a.lingua:hover { background: var(--bordeaux); color: var(--crema); }
.menu a.lingua svg { width: 1.05em; height: 1.05em; flex: none; }

.hamburger {
  display: none;
  width: 48px; height: 48px; border-radius: 50%;
  border: 2px solid var(--bordeaux); background: transparent; color: var(--bordeaux);
  cursor: pointer; place-items: center;
}
.hamburger span, .hamburger span::before, .hamburger span::after {
  display: block; width: 20px; height: 2.5px; border-radius: 2px; background: currentColor; position: relative; transition: transform .25s, opacity .2s;
}
.hamburger span::before, .hamburger span::after { content: ""; position: absolute; left: 0; }
.hamburger span::before { top: -6.5px; }
.hamburger span::after { top: 6.5px; }
.hamburger[aria-expanded="true"] span { background: transparent; }
.hamburger[aria-expanded="true"] span::before { transform: translateY(6.5px) rotate(45deg); }
.hamburger[aria-expanded="true"] span::after { transform: translateY(-6.5px) rotate(-45deg); }

@media (max-width: 960px) {
  .hamburger { display: grid; }
  .marchio img { height: 52px; }
  .testata .contenitore { min-height: 70px; }
  .menu {
    position: fixed; inset: 0 0 0 auto; width: min(88vw, 380px);
    flex-direction: column; align-items: stretch; justify-content: flex-start; gap: 28px;
    padding: calc(100px + env(safe-area-inset-top, 0px)) 32px 40px;
    background: var(--bordeaux);
    /* chiuso resta dentro lo schermo, ritagliato: un menu spostato fuori
       con translateX su iPhone fa scorrere la pagina a destra e sinistra */
    clip-path: inset(0 0 0 100%); visibility: hidden;
    transition: clip-path .35s var(--ease), visibility 0s linear .35s;
    box-shadow: -30px 0 60px -30px rgba(0, 0, 0, .5);
    z-index: 60;
  }
  .menu.aperto { clip-path: inset(0 0 0 -80px); visibility: visible; transition: clip-path .35s var(--ease); }
  .menu ul { flex-direction: column; gap: 6px; }
  .menu a:not(.btn) { color: var(--crema); font-family: var(--font-titoli); font-variation-settings: "SOFT" 100; font-weight: 800; font-size: 1.85rem; display: block; padding: .2em 0; }
  .menu a:not(.btn)::after { display: none; }
  .menu a[aria-current="page"] { color: var(--uovo); }
  .menu .btn { --bg: var(--crema); --fg: var(--bordeaux); justify-content: center; box-shadow: 0 4px 0 var(--crema-ombra); }
  .menu a.lingua {
    align-self: flex-start; display: inline-flex; padding: .5em 1em;
    font-family: var(--font-testo); font-size: 1rem; font-weight: 700;
    color: var(--crema); border-color: rgba(253, 245, 231, .55);
  }
  .menu a.lingua:hover { background: var(--crema); color: var(--bordeaux); border-color: var(--crema); }
  .menu .btn:hover { box-shadow: 0 2px 0 var(--crema-ombra); }
  .hamburger[aria-expanded="true"] { position: relative; z-index: 70; color: var(--crema); border-color: var(--crema); }
  .barra__social { display: none; }
  /* blocco lo scorrimento sull'html: su body la testata sticky
     tornerebbe in cima alla pagina e la X del menu sparirebbe */
  html:has(body.menu-aperto) { overflow: hidden; }
}
@media (max-width: 560px) {
  .barra__indirizzo { display: none; }
  .barra .contenitore { justify-content: center; }
}

/* --------------------------------------------------------------------------
   Elementi grafici ricorrenti
   -------------------------------------------------------------------------- */
.spirale {
  pointer-events: none; /* decorativa: non deve coprire link e pulsanti */
  width: var(--s, 120px); aspect-ratio: 1;
  background: var(--c, var(--rosso));
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 200 200%22%3E%3Cpath d=%22M106.0 100.0 L106.2 100.3 L106.4 100.6 L106.5 101.0 L106.7 101.4 L106.8 101.8 L106.9 102.2 L107.0 102.6 L107.1 103.0 L107.1 103.4 L107.1 103.9 L107.1 104.4 L107.0 104.8 L106.9 105.3 L106.8 105.8 L106.6 106.2 L106.5 106.7 L106.3 107.2 L106.0 107.7 L105.7 108.1 L105.4 108.6 L105.1 109.0 L104.7 109.5 L104.3 109.9 L103.9 110.3 L103.5 110.7 L103.0 111.0 L102.5 111.4 L101.9 111.7 L101.4 112.0 L100.8 112.2 L100.2 112.4 L99.5 112.6 L98.9 112.8 L98.2 112.9 L97.5 113.0 L96.8 113.1 L96.1 113.1 L95.4 113.1 L94.6 113.1 L93.9 113.0 L93.2 112.8 L92.4 112.6 L91.7 112.4 L90.9 112.1 L90.2 111.8 L89.5 111.5 L88.8 111.1 L88.1 110.6 L87.4 110.2 L86.7 109.6 L86.1 109.1 L85.5 108.5 L84.9 107.8 L84.3 107.1 L83.8 106.4 L83.3 105.7 L82.8 104.9 L82.4 104.1 L82.0 103.2 L81.7 102.3 L81.4 101.4 L81.1 100.5 L80.9 99.5 L80.7 98.5 L80.6 97.6 L80.6 96.5 L80.6 95.5 L80.6 94.5 L80.7 93.5 L80.9 92.4 L81.1 91.4 L81.4 90.4 L81.7 89.3 L82.1 88.3 L82.5 87.3 L83.0 86.3 L83.6 85.3 L84.2 84.4 L84.9 83.5 L85.6 82.6 L86.3 81.7 L87.2 80.8 L88.0 80.1 L89.0 79.3 L89.9 78.6 L90.9 77.9 L92.0 77.3 L93.1 76.7 L94.2 76.2 L95.4 75.7 L96.6 75.3 L97.8 75.0 L99.0 74.7 L100.3 74.5 L101.6 74.3 L102.9 74.2 L104.3 74.2 L105.6 74.2 L106.9 74.3 L108.3 74.5 L109.6 74.8 L111.0 75.1 L112.3 75.5 L113.6 76.0 L114.9 76.5 L116.2 77.1 L117.5 77.8 L118.7 78.5 L119.9 79.3 L121.1 80.2 L122.2 81.2 L123.3 82.2 L124.3 83.3 L125.3 84.4 L126.2 85.6 L127.1 86.8 L127.9 88.1 L128.7 89.5 L129.4 90.9 L130.0 92.3 L130.5 93.8 L131.0 95.3 L131.4 96.8 L131.8 98.4 L132.0 100.0 L132.2 101.6 L132.3 103.3 L132.3 104.9 L132.2 106.6 L132.0 108.2 L131.7 109.9 L131.4 111.5 L131.0 113.2 L130.5 114.8 L129.9 116.4 L129.2 118.0 L128.4 119.6 L127.6 121.1 L126.6 122.6 L125.6 124.0 L124.5 125.4 L123.3 126.8 L122.1 128.1 L120.8 129.3 L119.4 130.5 L117.9 131.6 L116.4 132.7 L114.8 133.7 L113.2 134.6 L111.5 135.4 L109.8 136.1 L108.0 136.8 L106.2 137.3 L104.3 137.8 L102.4 138.2 L100.5 138.4 L98.5 138.6 L96.6 138.7 L94.6 138.7 L92.6 138.6 L90.7 138.4 L88.7 138.0 L86.7 137.6 L84.8 137.1 L82.8 136.5 L80.9 135.8 L79.0 134.9 L77.2 134.0 L75.4 133.0 L73.6 131.9 L71.9 130.7 L70.3 129.4 L68.7 128.0 L67.2 126.5 L65.7 124.9 L64.3 123.3 L63.0 121.6 L61.8 119.8 L60.7 117.9 L59.6 116.0 L58.7 114.0 L57.8 112.0 L57.1 109.9 L56.4 107.7 L55.9 105.6 L55.4 103.4 L55.1 101.1 L54.9 98.9 L54.8 96.6 L54.8 94.3 L55.0 92.0 L55.2 89.7 L55.6 87.4 L56.1 85.1 L56.7 82.9 L57.4 80.6 L58.3 78.4 L59.2 76.2 L60.3 74.1 L61.5 72.0 L62.8 70.0 L64.2 68.0 L65.7 66.1 L67.3 64.3 L69.0 62.5 L70.8 60.8 L72.7 59.3 L74.7 57.8 L76.7 56.4 L78.8 55.0 L81.1 53.8 L83.3 52.8 L85.7 51.8 L88.1 50.9 L90.5 50.2 L93.0 49.6 L95.5 49.1 L98.1 48.7 L100.6 48.5 L103.3 48.3 L105.9 48.4 L108.5 48.5 L111.1 48.8 L113.7 49.2 L116.3 49.8 L118.9 50.5 L121.4 51.3 L124.0 52.2 L126.4 53.3 L128.8 54.5 L131.2 55.9 L133.5 57.3 L135.8 58.9 L137.9 60.6 L140.0 62.4 L142.0 64.4 L143.9 66.4 L145.7 68.5 L147.4 70.7 L149.0 73.1 L150.5 75.5 L151.8 78.0 L153.1 80.5 L154.2 83.1 L155.2 85.8 L156.0 88.6 L156.7 91.4 L157.3 94.2 L157.7 97.1 L158.0 100.0 L158.1 102.9 L158.1 105.9 L158.0 108.8 L157.6 111.7 L157.2 114.7 L156.6 117.6 L155.8 120.5 L154.9 123.4 L153.8 126.2 L152.6 128.9 L151.3 131.7 L149.8 134.3 L148.2 136.9 L146.4 139.4 L144.6 141.8 L142.5 144.2 L140.4 146.4 L138.1 148.5 L135.8 150.6 L133.3 152.5 L130.7 154.3 L128.1 155.9 L125.3 157.5 L122.5 158.9 L119.5 160.1 L116.5 161.2 L113.5 162.2 L110.4 163.0 L107.2 163.6 L104.0 164.1 L100.8 164.4 L97.6 164.6 L94.3 164.6 L91.0 164.5 L87.8 164.1 L84.5 163.6 L81.3 163.0 L78.1 162.1 L74.9 161.2 L71.8 160.0 L68.7 158.7 L65.7 157.2 L62.7 155.6 L59.8 153.8 L57.1 151.9 L54.4 149.8 L51.8 147.6 L49.3 145.3 L46.9 142.8 L44.7 140.2 L42.5 137.5 L40.5 134.7 L38.7 131.7 L37.0 128.7 L35.4 125.6 L34.0 122.4 L32.8 119.1 L31.7 115.7 L30.8 112.3 L30.1 108.8 L29.5 105.3 L29.1 101.8 L28.9 98.2 L28.9 94.6 L29.0 91.0 L29.4 87.4 L29.9 83.9 L30.6 80.3 L31.5 76.8 L32.5 73.3 L33.8 69.8 L35.2 66.5 L36.8 63.1 L38.5 59.9 L40.5 56.7 L42.5 53.7 L44.8 50.7 L47.2 47.8 L49.7 45.1 L52.4 42.5 L55.2 40.0 L58.2 37.7 L61.3 35.5 L64.5 33.4 L67.8 31.5 L71.2 29.8 L74.7 28.2 L78.3 26.9 L81.9 25.7 L85.6 24.6 L89.4 23.8 L93.2 23.2 L97.1 22.7 L101.0 22.5 L104.9 22.4 L108.8 22.5 L112.7 22.9 L116.6 23.4 L120.5 24.1 L124.4 25.1 L128.2 26.2 L131.9 27.5 L135.6 29.0 L139.2 30.7 L142.8 32.6 L146.2 34.7 L149.6 36.9 L152.8 39.3 L156.0 41.9 L159.0 44.6 L161.8 47.5 L164.5 50.6 L167.1 53.8 L169.5 57.1 L171.8 60.5 L173.9 64.1 L175.8 67.8 L177.5 71.6 L179.0 75.4 L180.4 79.4 L181.5 83.4 L182.4 87.5 L183.2 91.6 L183.7 95.8 L184.0 100.0 L184.1 104.2 L184.0 108.5 L183.7 112.7 L183.1 116.9 L182.4 121.1 L181.4 125.3 L180.2 129.5 L178.8 133.5 L177.2 137.5 L175.4 141.5 L173.4 145.3 L171.2 149.1 L168.8 152.7 L166.3 156.2 L163.5 159.6 L160.6 162.9 L157.5 166.0 L154.2 169.0 L150.8 171.8 L147.2 174.4 L143.5 176.9 L139.7 179.2 L135.8 181.3 L131.7 183.1 L127.6 184.8%22 fill=%22none%22 stroke=%22currentColor%22 stroke-width=%2211%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 200 200%22%3E%3Cpath d=%22M106.0 100.0 L106.2 100.3 L106.4 100.6 L106.5 101.0 L106.7 101.4 L106.8 101.8 L106.9 102.2 L107.0 102.6 L107.1 103.0 L107.1 103.4 L107.1 103.9 L107.1 104.4 L107.0 104.8 L106.9 105.3 L106.8 105.8 L106.6 106.2 L106.5 106.7 L106.3 107.2 L106.0 107.7 L105.7 108.1 L105.4 108.6 L105.1 109.0 L104.7 109.5 L104.3 109.9 L103.9 110.3 L103.5 110.7 L103.0 111.0 L102.5 111.4 L101.9 111.7 L101.4 112.0 L100.8 112.2 L100.2 112.4 L99.5 112.6 L98.9 112.8 L98.2 112.9 L97.5 113.0 L96.8 113.1 L96.1 113.1 L95.4 113.1 L94.6 113.1 L93.9 113.0 L93.2 112.8 L92.4 112.6 L91.7 112.4 L90.9 112.1 L90.2 111.8 L89.5 111.5 L88.8 111.1 L88.1 110.6 L87.4 110.2 L86.7 109.6 L86.1 109.1 L85.5 108.5 L84.9 107.8 L84.3 107.1 L83.8 106.4 L83.3 105.7 L82.8 104.9 L82.4 104.1 L82.0 103.2 L81.7 102.3 L81.4 101.4 L81.1 100.5 L80.9 99.5 L80.7 98.5 L80.6 97.6 L80.6 96.5 L80.6 95.5 L80.6 94.5 L80.7 93.5 L80.9 92.4 L81.1 91.4 L81.4 90.4 L81.7 89.3 L82.1 88.3 L82.5 87.3 L83.0 86.3 L83.6 85.3 L84.2 84.4 L84.9 83.5 L85.6 82.6 L86.3 81.7 L87.2 80.8 L88.0 80.1 L89.0 79.3 L89.9 78.6 L90.9 77.9 L92.0 77.3 L93.1 76.7 L94.2 76.2 L95.4 75.7 L96.6 75.3 L97.8 75.0 L99.0 74.7 L100.3 74.5 L101.6 74.3 L102.9 74.2 L104.3 74.2 L105.6 74.2 L106.9 74.3 L108.3 74.5 L109.6 74.8 L111.0 75.1 L112.3 75.5 L113.6 76.0 L114.9 76.5 L116.2 77.1 L117.5 77.8 L118.7 78.5 L119.9 79.3 L121.1 80.2 L122.2 81.2 L123.3 82.2 L124.3 83.3 L125.3 84.4 L126.2 85.6 L127.1 86.8 L127.9 88.1 L128.7 89.5 L129.4 90.9 L130.0 92.3 L130.5 93.8 L131.0 95.3 L131.4 96.8 L131.8 98.4 L132.0 100.0 L132.2 101.6 L132.3 103.3 L132.3 104.9 L132.2 106.6 L132.0 108.2 L131.7 109.9 L131.4 111.5 L131.0 113.2 L130.5 114.8 L129.9 116.4 L129.2 118.0 L128.4 119.6 L127.6 121.1 L126.6 122.6 L125.6 124.0 L124.5 125.4 L123.3 126.8 L122.1 128.1 L120.8 129.3 L119.4 130.5 L117.9 131.6 L116.4 132.7 L114.8 133.7 L113.2 134.6 L111.5 135.4 L109.8 136.1 L108.0 136.8 L106.2 137.3 L104.3 137.8 L102.4 138.2 L100.5 138.4 L98.5 138.6 L96.6 138.7 L94.6 138.7 L92.6 138.6 L90.7 138.4 L88.7 138.0 L86.7 137.6 L84.8 137.1 L82.8 136.5 L80.9 135.8 L79.0 134.9 L77.2 134.0 L75.4 133.0 L73.6 131.9 L71.9 130.7 L70.3 129.4 L68.7 128.0 L67.2 126.5 L65.7 124.9 L64.3 123.3 L63.0 121.6 L61.8 119.8 L60.7 117.9 L59.6 116.0 L58.7 114.0 L57.8 112.0 L57.1 109.9 L56.4 107.7 L55.9 105.6 L55.4 103.4 L55.1 101.1 L54.9 98.9 L54.8 96.6 L54.8 94.3 L55.0 92.0 L55.2 89.7 L55.6 87.4 L56.1 85.1 L56.7 82.9 L57.4 80.6 L58.3 78.4 L59.2 76.2 L60.3 74.1 L61.5 72.0 L62.8 70.0 L64.2 68.0 L65.7 66.1 L67.3 64.3 L69.0 62.5 L70.8 60.8 L72.7 59.3 L74.7 57.8 L76.7 56.4 L78.8 55.0 L81.1 53.8 L83.3 52.8 L85.7 51.8 L88.1 50.9 L90.5 50.2 L93.0 49.6 L95.5 49.1 L98.1 48.7 L100.6 48.5 L103.3 48.3 L105.9 48.4 L108.5 48.5 L111.1 48.8 L113.7 49.2 L116.3 49.8 L118.9 50.5 L121.4 51.3 L124.0 52.2 L126.4 53.3 L128.8 54.5 L131.2 55.9 L133.5 57.3 L135.8 58.9 L137.9 60.6 L140.0 62.4 L142.0 64.4 L143.9 66.4 L145.7 68.5 L147.4 70.7 L149.0 73.1 L150.5 75.5 L151.8 78.0 L153.1 80.5 L154.2 83.1 L155.2 85.8 L156.0 88.6 L156.7 91.4 L157.3 94.2 L157.7 97.1 L158.0 100.0 L158.1 102.9 L158.1 105.9 L158.0 108.8 L157.6 111.7 L157.2 114.7 L156.6 117.6 L155.8 120.5 L154.9 123.4 L153.8 126.2 L152.6 128.9 L151.3 131.7 L149.8 134.3 L148.2 136.9 L146.4 139.4 L144.6 141.8 L142.5 144.2 L140.4 146.4 L138.1 148.5 L135.8 150.6 L133.3 152.5 L130.7 154.3 L128.1 155.9 L125.3 157.5 L122.5 158.9 L119.5 160.1 L116.5 161.2 L113.5 162.2 L110.4 163.0 L107.2 163.6 L104.0 164.1 L100.8 164.4 L97.6 164.6 L94.3 164.6 L91.0 164.5 L87.8 164.1 L84.5 163.6 L81.3 163.0 L78.1 162.1 L74.9 161.2 L71.8 160.0 L68.7 158.7 L65.7 157.2 L62.7 155.6 L59.8 153.8 L57.1 151.9 L54.4 149.8 L51.8 147.6 L49.3 145.3 L46.9 142.8 L44.7 140.2 L42.5 137.5 L40.5 134.7 L38.7 131.7 L37.0 128.7 L35.4 125.6 L34.0 122.4 L32.8 119.1 L31.7 115.7 L30.8 112.3 L30.1 108.8 L29.5 105.3 L29.1 101.8 L28.9 98.2 L28.9 94.6 L29.0 91.0 L29.4 87.4 L29.9 83.9 L30.6 80.3 L31.5 76.8 L32.5 73.3 L33.8 69.8 L35.2 66.5 L36.8 63.1 L38.5 59.9 L40.5 56.7 L42.5 53.7 L44.8 50.7 L47.2 47.8 L49.7 45.1 L52.4 42.5 L55.2 40.0 L58.2 37.7 L61.3 35.5 L64.5 33.4 L67.8 31.5 L71.2 29.8 L74.7 28.2 L78.3 26.9 L81.9 25.7 L85.6 24.6 L89.4 23.8 L93.2 23.2 L97.1 22.7 L101.0 22.5 L104.9 22.4 L108.8 22.5 L112.7 22.9 L116.6 23.4 L120.5 24.1 L124.4 25.1 L128.2 26.2 L131.9 27.5 L135.6 29.0 L139.2 30.7 L142.8 32.6 L146.2 34.7 L149.6 36.9 L152.8 39.3 L156.0 41.9 L159.0 44.6 L161.8 47.5 L164.5 50.6 L167.1 53.8 L169.5 57.1 L171.8 60.5 L173.9 64.1 L175.8 67.8 L177.5 71.6 L179.0 75.4 L180.4 79.4 L181.5 83.4 L182.4 87.5 L183.2 91.6 L183.7 95.8 L184.0 100.0 L184.1 104.2 L184.0 108.5 L183.7 112.7 L183.1 116.9 L182.4 121.1 L181.4 125.3 L180.2 129.5 L178.8 133.5 L177.2 137.5 L175.4 141.5 L173.4 145.3 L171.2 149.1 L168.8 152.7 L166.3 156.2 L163.5 159.6 L160.6 162.9 L157.5 166.0 L154.2 169.0 L150.8 171.8 L147.2 174.4 L143.5 176.9 L139.7 179.2 L135.8 181.3 L131.7 183.1 L127.6 184.8%22 fill=%22none%22 stroke=%22currentColor%22 stroke-width=%2211%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22/%3E%3C/svg%3E") center / contain no-repeat;
}
/* testi sempre sopra le grafiche decorative: le spirali in posizione
   assoluta altrimenti si disegnano sopra il contenuto non posizionato */
.spirale { z-index: 0; }
section > .contenitore, .pie > .contenitore { position: relative; z-index: 1; }
.ruota { animation: ruota 38s linear infinite; }
@keyframes ruota { to { transform: rotate(360deg); } }

/* foto incorniciate ad arco, come le arcate del ponte */
.arco {
  position: relative;
  border-radius: 999px 999px var(--raggio) var(--raggio);
  overflow: hidden;
  background: var(--crema-2);
  box-shadow: var(--ombra);
  isolation: isolate;
}
.arco img, .arco video { width: 100%; height: 100%; object-fit: cover; }
/* tutte le foto: bordo sottile staccato dall'immagine, come nella hero */
.arco, .foto { outline: 3px solid var(--bordeaux); outline-offset: 8px; }
:is(.sezione--bordeaux, .sezione--rosso) :is(.arco, .foto) { outline-color: var(--crema); }
/* respiro tra foto/video (col loro bordo staccato) e didascalia o testo sotto */
figure > :is(.arco, .foto) + * { margin-top: 32px; }
@media (max-width: 640px) {
  .arco, .foto { outline-width: 2.5px; outline-offset: 6px; }
  figure > :is(.arco, .foto) + * { margin-top: 26px; }
}

.foto {
  border-radius: var(--raggio);
  overflow: hidden;
  box-shadow: var(--ombra);
  background: var(--crema-2);
}
.foto img { width: 100%; height: 100%; object-fit: cover; }

/* bollino rotante con testo circolare */
.bollino {
  position: absolute;
  width: var(--b, 150px); aspect-ratio: 1;
  border-radius: 50%;
  background: var(--rosso);
  color: var(--crema);
  display: grid; place-items: center;
  box-shadow: 0 10px 30px -12px rgba(78, 2, 10, .55);
}
.bollino svg { position: absolute; inset: 7%; width: 86%; height: 86%; }
.bollino text { font-family: var(--font-testo); font-weight: 700; font-size: 10.4px; letter-spacing: .2em; text-transform: uppercase; fill: currentColor; }
.bollino strong { font-family: var(--font-titoli); font-variation-settings: "SOFT" 100; font-weight: 900; color: var(--crema); font-size: calc(var(--b, 150px) * .2); line-height: 1; }

/* nastro scorrevole */
.nastro {
  background: var(--rosso);
  color: var(--crema);
  overflow: hidden;
  padding: 18px 0;
  border-block: 3px solid var(--bordeaux);
  transform: rotate(-1.2deg);
  margin: -14px -20px;
  position: relative; z-index: 2;
}
.nastro__traccia { display: flex; width: max-content; animation: nastro 32s linear infinite; }
.nastro ul { display: flex; align-items: center; gap: 34px; padding: 0 17px; margin: 0; list-style: none; }
.nastro li {
  display: flex; align-items: center; gap: 34px;
  font-family: var(--font-titoli); font-variation-settings: "SOFT" 100; font-weight: 800;
  font-size: clamp(1.4rem, 2.6vw, 2.1rem); line-height: 1; white-space: nowrap;
}
.nastro li::after {
  content: ""; width: .8em; height: .8em; background: var(--uovo);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 100 100%22%3E%3Cpath d=%22M50.00 0.00 L57.76 21.02 L75.00 6.70 L71.21 28.79 L93.30 25.00 L78.98 42.24 L100.00 50.00 L78.98 57.76 L93.30 75.00 L71.21 71.21 L75.00 93.30 L57.76 78.98 L50.00 100.00 L42.24 78.98 L25.00 93.30 L28.79 71.21 L6.70 75.00 L21.02 57.76 L0.00 50.00 L21.02 42.24 L6.70 25.00 L28.79 28.79 L25.00 6.70 L42.24 21.02Z%22 fill=%22%23C6090D%22/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 100 100%22%3E%3Cpath d=%22M50.00 0.00 L57.76 21.02 L75.00 6.70 L71.21 28.79 L93.30 25.00 L78.98 42.24 L100.00 50.00 L78.98 57.76 L93.30 75.00 L71.21 71.21 L75.00 93.30 L57.76 78.98 L50.00 100.00 L42.24 78.98 L25.00 93.30 L28.79 71.21 L6.70 75.00 L21.02 57.76 L0.00 50.00 L21.02 42.24 L6.70 25.00 L28.79 28.79 L25.00 6.70 L42.24 21.02Z%22 fill=%22%23C6090D%22/%3E%3C/svg%3E") center / contain no-repeat;
}
@keyframes nastro { to { transform: translateX(-50%); } }

/* --------------------------------------------------------------------------
   Sezioni
   -------------------------------------------------------------------------- */
.sezione { padding-block: var(--sezione); position: relative; }
.sezione--carta { background: var(--carta); }
.sezione--bordeaux { background: var(--bordeaux); color: var(--crema); }
.sezione--bordeaux h2, .sezione--bordeaux h3 { color: var(--crema); }
.sezione--bordeaux .occhiello { color: var(--uovo); }
.sezione--bordeaux strong { color: var(--uovo); }
.sezione--rosso { background: var(--rosso); color: var(--crema); }
.sezione--rosso h2, .sezione--rosso h3 { color: var(--crema); }
.sezione--rosso .occhiello { color: var(--crema); }

.intestazione-sezione { max-width: 760px; margin-bottom: clamp(40px, 6vw, 70px); }
.intestazione-sezione.centro { margin-inline: auto; text-align: center; }

.griglia-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(36px, 6vw, 90px); align-items: center; }
.griglia-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(20px, 3vw, 36px); }
@media (max-width: 860px) {
  .griglia-2, .griglia-3 { grid-template-columns: 1fr; }
}

/* --------------------------------------------------------------------------
   Hero home
   -------------------------------------------------------------------------- */
.hero { padding-block: clamp(40px, 6vw, 90px) clamp(80px, 10vw, 130px); position: relative; overflow: hidden; }
.hero .griglia-2 { grid-template-columns: 1.08fr .92fr; }
.hero h1 { margin-bottom: .35em; }
.hero h1 em { font-style: italic; color: var(--rosso); font-variation-settings: "SOFT" 100, "WONK" 1; }
.hero__visual { position: relative; padding: 0 6% 0 10%; }
.hero__visual .arco { aspect-ratio: 4 / 5; }
.hero__visual .bollino { --b: clamp(118px, 13vw, 168px); left: -2%; bottom: 7%; transform: rotate(-8deg); }
.hero__visual .spirale { position: absolute; --s: clamp(90px, 10vw, 140px); right: -2%; top: -4%; --c: var(--uovo); }
/* illustrazione a linee del ponte di Rialto (generata da _lavoro/script-logo/ponte_hero.py) */
.hero { isolation: isolate; }
.hero::before {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  /* la punta del timpano (y=46 su 1600 di larghezza) arriva tra occhiello e titolo */
  --pw: max(100vw, 900px);
  background: url("../img/ponte-rialto.svg?v=2") center top calc(clamp(40px, 6vw, 90px) + 68px - var(--pw) * 46 / 1600) / var(--pw) auto no-repeat;
  opacity: .16;
}
/* h1 sempre su 3 righe: "Dal 1986," / "un’autentica" / "storia veneziana." */
.hero__testo { container-type: inline-size; }
.hero h1 { font-size: min(5.6rem, 11.6cqi); }
.hero h1 span, .hero h1 em { display: block; white-space: nowrap; }
@media (max-width: 860px) {
  .hero .griglia-2 { grid-template-columns: 1fr; }
  .hero__visual { max-width: 460px; margin-inline: auto; width: 100%; }
}

/* intestazione pagine interne */
.pagina-testa { padding-block: clamp(56px, 8vw, 110px) clamp(56px, 7vw, 90px); position: relative; overflow: hidden; text-align: center; }
.pagina-testa h1 { max-width: 15ch; margin-inline: auto; }
.pagina-testa .lead { max-width: 640px; margin-inline: auto; }
.pagina-testa .spirale { position: absolute; opacity: .9; }
.pagina-testa .spirale:nth-of-type(1) { --s: clamp(120px, 18vw, 260px); left: -40px; top: 18%; --c: var(--crema-2); }
.pagina-testa .spirale:nth-of-type(2) { --s: clamp(70px, 9vw, 130px); right: 6%; bottom: 8%; --c: var(--uovo); opacity: .8; }

/* --------------------------------------------------------------------------
   Componenti di contenuto
   -------------------------------------------------------------------------- */
/* tris di foto ad arco */
.tris { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(30px, 3.4vw, 44px); align-items: end; }
.tris .arco { aspect-ratio: 3 / 4; }
.tris .arco:nth-child(2) { aspect-ratio: 3 / 4.6; }
@media (max-width: 640px) {
  .tris { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tris .arco:nth-child(3) { display: none; }
}

/* didascalia */
figure { margin: 0; }
figcaption { font-size: .85rem; color: var(--tenue); margin-top: .8em; font-style: italic; }
.sezione--bordeaux figcaption { color: rgba(253, 245, 231, .75); }

/* schede */
.scheda {
  background: var(--carta);
  border: 2px solid var(--bordeaux);
  border-radius: var(--raggio);
  padding: clamp(26px, 3vw, 38px);
  box-shadow: 6px 6px 0 var(--bordeaux);
  position: relative;
}
.scheda h3 { margin-bottom: .45em; }
.scheda p:last-child, .scheda ul:last-child { margin-bottom: 0; }
.scheda--rossa { background: var(--rosso); color: var(--crema); border-color: var(--bordeaux); }
.scheda--rossa h3 { color: var(--crema); }
.scheda__etichetta {
  display: inline-block; font-size: .74rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
  background: var(--uovo); color: var(--bordeaux-scuro); padding: .45em .9em; border-radius: 999px; margin-bottom: 1rem;
}
.elenco-gusti { list-style: none; padding: 0; margin: 0; }
.elenco-gusti li {
  padding: .55em 0; border-bottom: 1.5px dashed rgba(114, 3, 14, .25);
  font-family: var(--font-titoli); font-variation-settings: "SOFT" 100; font-weight: 600; font-size: 1.12rem; color: var(--bordeaux);
}
.scheda--rossa .elenco-gusti li { color: var(--crema); border-color: rgba(253, 245, 231, .35); }
.elenco-gusti li:last-child { border-bottom: 0; }

/* linea del tempo */
.tempo { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; counter-reset: t; }
.tempo li { border-top: 3px solid var(--uovo); padding-top: 22px; }
.tempo__anno {
  display: block;
  font-family: var(--font-titoli); font-variation-settings: "SOFT" 100; font-weight: 900;
  font-size: clamp(2.6rem, 4.4vw, 3.6rem); line-height: 1; color: var(--uovo); margin-bottom: .3em;
}
.tempo p { font-size: .98rem; margin: 0; color: rgba(253, 245, 231, .9); }
@media (max-width: 860px) { .tempo { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 480px) { .tempo { grid-template-columns: 1fr; } }

/* capitoli della storia */
.capitolo { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: clamp(24px, 5vw, 70px); padding-block: clamp(36px, 5vw, 60px); border-top: 2px solid rgba(114, 3, 14, .14); }
.capitolo:first-child { border-top: 0; }
.capitolo__anno {
  font-family: var(--font-titoli); font-variation-settings: "SOFT" 100; font-weight: 900;
  font-size: clamp(3rem, 7vw, 5.4rem); line-height: .9; color: var(--rosso);
  position: sticky; top: 120px; align-self: start;
}
/* sotto-titolo dell'anno: interlinea ariosa e spazio fisso per le lettere discendenti (es. "Oggi") */
.capitolo__anno small { display: block; font-family: var(--font-testo); font-size: .8rem; line-height: 1.55; letter-spacing: .14em; text-transform: uppercase; color: var(--tenue); font-weight: 700; margin-top: 1.5rem; }
@media (max-width: 760px) {
  .capitolo { grid-template-columns: 1fr; gap: 10px; }
  .capitolo__anno { position: static; }
}

/* citazione */
.citazione {
  font-family: var(--font-titoli); font-variation-settings: "SOFT" 100, "WONK" 1;
  font-weight: 700; font-style: italic;
  font-size: clamp(1.9rem, 4.2vw, 3.4rem); line-height: 1.12; letter-spacing: -.01em;
  color: var(--crema); margin: 0 auto; max-width: 20ch; text-align: center; text-wrap: balance;
}
.citazione::before {
  content: ""; display: block; width: 64px; height: 64px; margin: 0 auto 28px; background: var(--uovo);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 200 200%22%3E%3Cpath d=%22M106.0 100.0 L106.2 100.3 L106.4 100.6 L106.5 101.0 L106.7 101.4 L106.8 101.8 L106.9 102.2 L107.0 102.6 L107.1 103.0 L107.1 103.4 L107.1 103.9 L107.1 104.4 L107.0 104.8 L106.9 105.3 L106.8 105.8 L106.6 106.2 L106.5 106.7 L106.3 107.2 L106.0 107.7 L105.7 108.1 L105.4 108.6 L105.1 109.0 L104.7 109.5 L104.3 109.9 L103.9 110.3 L103.5 110.7 L103.0 111.0 L102.5 111.4 L101.9 111.7 L101.4 112.0 L100.8 112.2 L100.2 112.4 L99.5 112.6 L98.9 112.8 L98.2 112.9 L97.5 113.0 L96.8 113.1 L96.1 113.1 L95.4 113.1 L94.6 113.1 L93.9 113.0 L93.2 112.8 L92.4 112.6 L91.7 112.4 L90.9 112.1 L90.2 111.8 L89.5 111.5 L88.8 111.1 L88.1 110.6 L87.4 110.2 L86.7 109.6 L86.1 109.1 L85.5 108.5 L84.9 107.8 L84.3 107.1 L83.8 106.4 L83.3 105.7 L82.8 104.9 L82.4 104.1 L82.0 103.2 L81.7 102.3 L81.4 101.4 L81.1 100.5 L80.9 99.5 L80.7 98.5 L80.6 97.6 L80.6 96.5 L80.6 95.5 L80.6 94.5 L80.7 93.5 L80.9 92.4 L81.1 91.4 L81.4 90.4 L81.7 89.3 L82.1 88.3 L82.5 87.3 L83.0 86.3 L83.6 85.3 L84.2 84.4 L84.9 83.5 L85.6 82.6 L86.3 81.7 L87.2 80.8 L88.0 80.1 L89.0 79.3 L89.9 78.6 L90.9 77.9 L92.0 77.3 L93.1 76.7 L94.2 76.2 L95.4 75.7 L96.6 75.3 L97.8 75.0 L99.0 74.7 L100.3 74.5 L101.6 74.3 L102.9 74.2 L104.3 74.2 L105.6 74.2 L106.9 74.3 L108.3 74.5 L109.6 74.8 L111.0 75.1 L112.3 75.5 L113.6 76.0 L114.9 76.5 L116.2 77.1 L117.5 77.8 L118.7 78.5 L119.9 79.3 L121.1 80.2 L122.2 81.2 L123.3 82.2 L124.3 83.3 L125.3 84.4 L126.2 85.6 L127.1 86.8 L127.9 88.1 L128.7 89.5 L129.4 90.9 L130.0 92.3 L130.5 93.8 L131.0 95.3 L131.4 96.8 L131.8 98.4 L132.0 100.0 L132.2 101.6 L132.3 103.3 L132.3 104.9 L132.2 106.6 L132.0 108.2 L131.7 109.9 L131.4 111.5 L131.0 113.2 L130.5 114.8 L129.9 116.4 L129.2 118.0 L128.4 119.6 L127.6 121.1 L126.6 122.6 L125.6 124.0 L124.5 125.4 L123.3 126.8 L122.1 128.1 L120.8 129.3 L119.4 130.5 L117.9 131.6 L116.4 132.7 L114.8 133.7 L113.2 134.6 L111.5 135.4 L109.8 136.1 L108.0 136.8 L106.2 137.3 L104.3 137.8 L102.4 138.2 L100.5 138.4 L98.5 138.6 L96.6 138.7 L94.6 138.7 L92.6 138.6 L90.7 138.4 L88.7 138.0 L86.7 137.6 L84.8 137.1 L82.8 136.5 L80.9 135.8 L79.0 134.9 L77.2 134.0 L75.4 133.0 L73.6 131.9 L71.9 130.7 L70.3 129.4 L68.7 128.0 L67.2 126.5 L65.7 124.9 L64.3 123.3 L63.0 121.6 L61.8 119.8 L60.7 117.9 L59.6 116.0 L58.7 114.0 L57.8 112.0 L57.1 109.9 L56.4 107.7 L55.9 105.6 L55.4 103.4 L55.1 101.1 L54.9 98.9 L54.8 96.6 L54.8 94.3 L55.0 92.0 L55.2 89.7 L55.6 87.4 L56.1 85.1 L56.7 82.9 L57.4 80.6 L58.3 78.4 L59.2 76.2 L60.3 74.1 L61.5 72.0 L62.8 70.0 L64.2 68.0 L65.7 66.1 L67.3 64.3 L69.0 62.5 L70.8 60.8 L72.7 59.3 L74.7 57.8 L76.7 56.4 L78.8 55.0 L81.1 53.8 L83.3 52.8 L85.7 51.8 L88.1 50.9 L90.5 50.2 L93.0 49.6 L95.5 49.1 L98.1 48.7 L100.6 48.5 L103.3 48.3 L105.9 48.4 L108.5 48.5 L111.1 48.8 L113.7 49.2 L116.3 49.8 L118.9 50.5 L121.4 51.3 L124.0 52.2 L126.4 53.3 L128.8 54.5 L131.2 55.9 L133.5 57.3 L135.8 58.9 L137.9 60.6 L140.0 62.4 L142.0 64.4 L143.9 66.4 L145.7 68.5 L147.4 70.7 L149.0 73.1 L150.5 75.5 L151.8 78.0 L153.1 80.5 L154.2 83.1 L155.2 85.8 L156.0 88.6 L156.7 91.4 L157.3 94.2 L157.7 97.1 L158.0 100.0 L158.1 102.9 L158.1 105.9 L158.0 108.8 L157.6 111.7 L157.2 114.7 L156.6 117.6 L155.8 120.5 L154.9 123.4 L153.8 126.2 L152.6 128.9 L151.3 131.7 L149.8 134.3 L148.2 136.9 L146.4 139.4 L144.6 141.8 L142.5 144.2 L140.4 146.4 L138.1 148.5 L135.8 150.6 L133.3 152.5 L130.7 154.3 L128.1 155.9 L125.3 157.5 L122.5 158.9 L119.5 160.1 L116.5 161.2 L113.5 162.2 L110.4 163.0 L107.2 163.6 L104.0 164.1 L100.8 164.4 L97.6 164.6 L94.3 164.6 L91.0 164.5 L87.8 164.1 L84.5 163.6 L81.3 163.0 L78.1 162.1 L74.9 161.2 L71.8 160.0 L68.7 158.7 L65.7 157.2 L62.7 155.6 L59.8 153.8 L57.1 151.9 L54.4 149.8 L51.8 147.6 L49.3 145.3 L46.9 142.8 L44.7 140.2 L42.5 137.5 L40.5 134.7 L38.7 131.7 L37.0 128.7 L35.4 125.6 L34.0 122.4 L32.8 119.1 L31.7 115.7 L30.8 112.3 L30.1 108.8 L29.5 105.3 L29.1 101.8 L28.9 98.2 L28.9 94.6 L29.0 91.0 L29.4 87.4 L29.9 83.9 L30.6 80.3 L31.5 76.8 L32.5 73.3 L33.8 69.8 L35.2 66.5 L36.8 63.1 L38.5 59.9 L40.5 56.7 L42.5 53.7 L44.8 50.7 L47.2 47.8 L49.7 45.1 L52.4 42.5 L55.2 40.0 L58.2 37.7 L61.3 35.5 L64.5 33.4 L67.8 31.5 L71.2 29.8 L74.7 28.2 L78.3 26.9 L81.9 25.7 L85.6 24.6 L89.4 23.8 L93.2 23.2 L97.1 22.7 L101.0 22.5 L104.9 22.4 L108.8 22.5 L112.7 22.9 L116.6 23.4 L120.5 24.1 L124.4 25.1 L128.2 26.2 L131.9 27.5 L135.6 29.0 L139.2 30.7 L142.8 32.6 L146.2 34.7 L149.6 36.9 L152.8 39.3 L156.0 41.9 L159.0 44.6 L161.8 47.5 L164.5 50.6 L167.1 53.8 L169.5 57.1 L171.8 60.5 L173.9 64.1 L175.8 67.8 L177.5 71.6 L179.0 75.4 L180.4 79.4 L181.5 83.4 L182.4 87.5 L183.2 91.6 L183.7 95.8 L184.0 100.0 L184.1 104.2 L184.0 108.5 L183.7 112.7 L183.1 116.9 L182.4 121.1 L181.4 125.3 L180.2 129.5 L178.8 133.5 L177.2 137.5 L175.4 141.5 L173.4 145.3 L171.2 149.1 L168.8 152.7 L166.3 156.2 L163.5 159.6 L160.6 162.9 L157.5 166.0 L154.2 169.0 L150.8 171.8 L147.2 174.4 L143.5 176.9 L139.7 179.2 L135.8 181.3 L131.7 183.1 L127.6 184.8%22 fill=%22none%22 stroke=%22currentColor%22 stroke-width=%2211%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 200 200%22%3E%3Cpath d=%22M106.0 100.0 L106.2 100.3 L106.4 100.6 L106.5 101.0 L106.7 101.4 L106.8 101.8 L106.9 102.2 L107.0 102.6 L107.1 103.0 L107.1 103.4 L107.1 103.9 L107.1 104.4 L107.0 104.8 L106.9 105.3 L106.8 105.8 L106.6 106.2 L106.5 106.7 L106.3 107.2 L106.0 107.7 L105.7 108.1 L105.4 108.6 L105.1 109.0 L104.7 109.5 L104.3 109.9 L103.9 110.3 L103.5 110.7 L103.0 111.0 L102.5 111.4 L101.9 111.7 L101.4 112.0 L100.8 112.2 L100.2 112.4 L99.5 112.6 L98.9 112.8 L98.2 112.9 L97.5 113.0 L96.8 113.1 L96.1 113.1 L95.4 113.1 L94.6 113.1 L93.9 113.0 L93.2 112.8 L92.4 112.6 L91.7 112.4 L90.9 112.1 L90.2 111.8 L89.5 111.5 L88.8 111.1 L88.1 110.6 L87.4 110.2 L86.7 109.6 L86.1 109.1 L85.5 108.5 L84.9 107.8 L84.3 107.1 L83.8 106.4 L83.3 105.7 L82.8 104.9 L82.4 104.1 L82.0 103.2 L81.7 102.3 L81.4 101.4 L81.1 100.5 L80.9 99.5 L80.7 98.5 L80.6 97.6 L80.6 96.5 L80.6 95.5 L80.6 94.5 L80.7 93.5 L80.9 92.4 L81.1 91.4 L81.4 90.4 L81.7 89.3 L82.1 88.3 L82.5 87.3 L83.0 86.3 L83.6 85.3 L84.2 84.4 L84.9 83.5 L85.6 82.6 L86.3 81.7 L87.2 80.8 L88.0 80.1 L89.0 79.3 L89.9 78.6 L90.9 77.9 L92.0 77.3 L93.1 76.7 L94.2 76.2 L95.4 75.7 L96.6 75.3 L97.8 75.0 L99.0 74.7 L100.3 74.5 L101.6 74.3 L102.9 74.2 L104.3 74.2 L105.6 74.2 L106.9 74.3 L108.3 74.5 L109.6 74.8 L111.0 75.1 L112.3 75.5 L113.6 76.0 L114.9 76.5 L116.2 77.1 L117.5 77.8 L118.7 78.5 L119.9 79.3 L121.1 80.2 L122.2 81.2 L123.3 82.2 L124.3 83.3 L125.3 84.4 L126.2 85.6 L127.1 86.8 L127.9 88.1 L128.7 89.5 L129.4 90.9 L130.0 92.3 L130.5 93.8 L131.0 95.3 L131.4 96.8 L131.8 98.4 L132.0 100.0 L132.2 101.6 L132.3 103.3 L132.3 104.9 L132.2 106.6 L132.0 108.2 L131.7 109.9 L131.4 111.5 L131.0 113.2 L130.5 114.8 L129.9 116.4 L129.2 118.0 L128.4 119.6 L127.6 121.1 L126.6 122.6 L125.6 124.0 L124.5 125.4 L123.3 126.8 L122.1 128.1 L120.8 129.3 L119.4 130.5 L117.9 131.6 L116.4 132.7 L114.8 133.7 L113.2 134.6 L111.5 135.4 L109.8 136.1 L108.0 136.8 L106.2 137.3 L104.3 137.8 L102.4 138.2 L100.5 138.4 L98.5 138.6 L96.6 138.7 L94.6 138.7 L92.6 138.6 L90.7 138.4 L88.7 138.0 L86.7 137.6 L84.8 137.1 L82.8 136.5 L80.9 135.8 L79.0 134.9 L77.2 134.0 L75.4 133.0 L73.6 131.9 L71.9 130.7 L70.3 129.4 L68.7 128.0 L67.2 126.5 L65.7 124.9 L64.3 123.3 L63.0 121.6 L61.8 119.8 L60.7 117.9 L59.6 116.0 L58.7 114.0 L57.8 112.0 L57.1 109.9 L56.4 107.7 L55.9 105.6 L55.4 103.4 L55.1 101.1 L54.9 98.9 L54.8 96.6 L54.8 94.3 L55.0 92.0 L55.2 89.7 L55.6 87.4 L56.1 85.1 L56.7 82.9 L57.4 80.6 L58.3 78.4 L59.2 76.2 L60.3 74.1 L61.5 72.0 L62.8 70.0 L64.2 68.0 L65.7 66.1 L67.3 64.3 L69.0 62.5 L70.8 60.8 L72.7 59.3 L74.7 57.8 L76.7 56.4 L78.8 55.0 L81.1 53.8 L83.3 52.8 L85.7 51.8 L88.1 50.9 L90.5 50.2 L93.0 49.6 L95.5 49.1 L98.1 48.7 L100.6 48.5 L103.3 48.3 L105.9 48.4 L108.5 48.5 L111.1 48.8 L113.7 49.2 L116.3 49.8 L118.9 50.5 L121.4 51.3 L124.0 52.2 L126.4 53.3 L128.8 54.5 L131.2 55.9 L133.5 57.3 L135.8 58.9 L137.9 60.6 L140.0 62.4 L142.0 64.4 L143.9 66.4 L145.7 68.5 L147.4 70.7 L149.0 73.1 L150.5 75.5 L151.8 78.0 L153.1 80.5 L154.2 83.1 L155.2 85.8 L156.0 88.6 L156.7 91.4 L157.3 94.2 L157.7 97.1 L158.0 100.0 L158.1 102.9 L158.1 105.9 L158.0 108.8 L157.6 111.7 L157.2 114.7 L156.6 117.6 L155.8 120.5 L154.9 123.4 L153.8 126.2 L152.6 128.9 L151.3 131.7 L149.8 134.3 L148.2 136.9 L146.4 139.4 L144.6 141.8 L142.5 144.2 L140.4 146.4 L138.1 148.5 L135.8 150.6 L133.3 152.5 L130.7 154.3 L128.1 155.9 L125.3 157.5 L122.5 158.9 L119.5 160.1 L116.5 161.2 L113.5 162.2 L110.4 163.0 L107.2 163.6 L104.0 164.1 L100.8 164.4 L97.6 164.6 L94.3 164.6 L91.0 164.5 L87.8 164.1 L84.5 163.6 L81.3 163.0 L78.1 162.1 L74.9 161.2 L71.8 160.0 L68.7 158.7 L65.7 157.2 L62.7 155.6 L59.8 153.8 L57.1 151.9 L54.4 149.8 L51.8 147.6 L49.3 145.3 L46.9 142.8 L44.7 140.2 L42.5 137.5 L40.5 134.7 L38.7 131.7 L37.0 128.7 L35.4 125.6 L34.0 122.4 L32.8 119.1 L31.7 115.7 L30.8 112.3 L30.1 108.8 L29.5 105.3 L29.1 101.8 L28.9 98.2 L28.9 94.6 L29.0 91.0 L29.4 87.4 L29.9 83.9 L30.6 80.3 L31.5 76.8 L32.5 73.3 L33.8 69.8 L35.2 66.5 L36.8 63.1 L38.5 59.9 L40.5 56.7 L42.5 53.7 L44.8 50.7 L47.2 47.8 L49.7 45.1 L52.4 42.5 L55.2 40.0 L58.2 37.7 L61.3 35.5 L64.5 33.4 L67.8 31.5 L71.2 29.8 L74.7 28.2 L78.3 26.9 L81.9 25.7 L85.6 24.6 L89.4 23.8 L93.2 23.2 L97.1 22.7 L101.0 22.5 L104.9 22.4 L108.8 22.5 L112.7 22.9 L116.6 23.4 L120.5 24.1 L124.4 25.1 L128.2 26.2 L131.9 27.5 L135.6 29.0 L139.2 30.7 L142.8 32.6 L146.2 34.7 L149.6 36.9 L152.8 39.3 L156.0 41.9 L159.0 44.6 L161.8 47.5 L164.5 50.6 L167.1 53.8 L169.5 57.1 L171.8 60.5 L173.9 64.1 L175.8 67.8 L177.5 71.6 L179.0 75.4 L180.4 79.4 L181.5 83.4 L182.4 87.5 L183.2 91.6 L183.7 95.8 L184.0 100.0 L184.1 104.2 L184.0 108.5 L183.7 112.7 L183.1 116.9 L182.4 121.1 L181.4 125.3 L180.2 129.5 L178.8 133.5 L177.2 137.5 L175.4 141.5 L173.4 145.3 L171.2 149.1 L168.8 152.7 L166.3 156.2 L163.5 159.6 L160.6 162.9 L157.5 166.0 L154.2 169.0 L150.8 171.8 L147.2 174.4 L143.5 176.9 L139.7 179.2 L135.8 181.3 L131.7 183.1 L127.6 184.8%22 fill=%22none%22 stroke=%22currentColor%22 stroke-width=%2211%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22/%3E%3C/svg%3E") center / contain no-repeat;
}

/* valori */
.valore { text-align: center; padding: 10px; }
.valore__icona { width: 92px; height: 92px; margin: 0 auto 22px; border-radius: 50%; background: var(--rosso); display: grid; place-items: center; box-shadow: 0 5px 0 var(--bordeaux); }
.valore__icona svg { width: 46px; height: 46px; color: var(--crema); }
.valore p { color: var(--tenue); }

/* fagottino: schema spirale */
.fagottino { position: relative; aspect-ratio: 1; max-width: 420px; margin-inline: auto; }
.fagottino__pane { position: absolute; inset: 0; border-radius: 50%; background: radial-gradient(circle at 50% 50%, #F1DDB4 0 58%, #D9B67A 59% 66%, #BF9558 67%); box-shadow: inset 0 -10px 30px rgba(114, 60, 20, .25), var(--ombra); }
.fagottino .spirale { position: absolute; inset: 12%; width: 76%; --c: var(--rosso); animation: ruota 40s linear infinite; }

/* video */
.video-cornice { aspect-ratio: 9 / 16; max-width: 360px; margin-inline: auto; }
.video-cornice video { background: var(--crema-2); }

/* riconoscimento */
.premio { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: clamp(30px, 6vw, 80px); align-items: center; }
.premio .bollino { position: relative; --b: clamp(170px, 22vw, 250px); background: var(--crema); color: var(--bordeaux); }
/* il blocco centrale resta dentro il cerchio libero lasciato dal testo rotante (raggio ~0.34 del bollino) */
.premio .bollino strong { color: var(--rosso); font-size: calc(var(--b) * .145); text-align: center; line-height: .95; }
.premio .bollino strong small { display: block; font-size: .34em; letter-spacing: .1em; text-transform: uppercase; font-family: var(--font-testo); margin-top: .7em; color: var(--bordeaux); }
@media (max-width: 760px) { .premio { grid-template-columns: 1fr; justify-items: center; text-align: center; } }

/* contatti */
.contatti { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
@media (max-width: 860px) { .contatti { grid-template-columns: 1fr; } }
.contatti .scheda { display: flex; flex-direction: column; }
.contatti .scheda .btn { margin-top: auto; align-self: flex-start; }
.contatti .scheda p { margin-bottom: 1.4em; }
.icona-tonda { width: 54px; height: 54px; border-radius: 50%; background: var(--uovo); color: var(--bordeaux-scuro); display: grid; place-items: center; margin-bottom: 18px; }
.icona-tonda svg { width: 26px; height: 26px; }

.orari { width: 100%; border-collapse: collapse; font-size: 1rem; }
.orari th, .orari td { text-align: left; padding: .6em 0; border-bottom: 1.5px dashed rgba(114, 3, 14, .22); }
.orari td { text-align: right; font-variant-numeric: tabular-nums; font-weight: 600; color: var(--bordeaux); }
.orari tr.oggi th, .orari tr.oggi td { color: var(--rosso); }
.orari tr.oggi th::after { content: " · oggi"; font-weight: 700; font-size: .8em; text-transform: uppercase; letter-spacing: .1em; }
.nota { font-size: .88rem; color: var(--tenue); }

.servizi { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.servizi li:last-child:nth-child(odd) { grid-column: 1 / -1; }
/* desktop: griglia a 12 colonne, 3 servizi per riga tutti della stessa larghezza;
   un'ultima riga incompleta viene centrata (spostamento di mezza card = 2 colonne) */
@media (min-width: 961px) {
  .servizi { grid-template-columns: repeat(12, minmax(0, 1fr)); }
  .servizi li, .servizi li:last-child:nth-child(odd) { grid-column: span 4; }
  .servizi li:nth-child(3n+1):nth-last-child(2) { grid-column: 3 / span 4; }
  .servizi li:nth-child(3n+1):last-child { grid-column: 5 / span 4; }
}
@media (max-width: 600px) {
  .servizi { grid-template-columns: 1fr; }
}
.servizi li {
  display: flex; gap: 16px; align-items: flex-start;
  background: var(--carta); border-radius: 18px; padding: 20px 22px;
  border: 2px solid rgba(114, 3, 14, .14);
}
.servizi svg { flex: none; width: 30px; height: 30px; color: var(--rosso); margin-top: 2px; }
.servizi strong { display: block; font-size: 1.02rem; }
.servizi span { font-size: .92rem; color: var(--tenue); line-height: 1.5; display: block; margin-top: 2px; }

/* mappa illustrata */
.mappa {
  border-radius: var(--raggio); overflow: hidden;
  background: var(--rosso); color: var(--crema);
  display: flex; flex-direction: column;
}
.mappa__google { position: relative; flex: 1; min-height: 340px; background: var(--crema-2); }
.mappa__google iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.mappa__consenso {
  position: absolute; inset: 0; display: grid; place-content: center; justify-items: center; gap: 4px;
  padding: 28px; text-align: center; color: var(--inchiostro);
  background: url("../img/ponte-rialto.svg?v=2") center top 18px / max(115%, 520px) auto no-repeat, var(--crema-2);
}
.mappa__consenso::before { content: ""; position: absolute; inset: 0; background: rgba(246, 232, 207, .86); }
.mappa__consenso > * { position: relative; }
.mappa__consenso p { max-width: 30ch; font-size: .92rem; color: var(--tenue); }
.mappa__consenso strong { color: var(--bordeaux); font-size: 1.05rem; }
.mappa__info { padding: clamp(24px, 3.5vw, 38px); }
.mappa__info .occhiello { color: var(--crema); }
.mappa__titolo { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
/* pulsantino tondo "apri in una pagina esterna", con lo stesso effetto pressione dei pulsanti */
.esterno {
  flex: none; width: 44px; height: 44px; border-radius: 50%;
  display: grid; place-items: center;
  background: var(--crema); color: var(--bordeaux);
  box-shadow: 0 3px 0 var(--bordeaux-scuro);
  transition: transform .2s var(--ease), box-shadow .2s var(--ease);
}
.esterno svg { width: 20px; height: 20px; }
.esterno:hover { color: var(--bordeaux); transform: translateY(2px); box-shadow: 0 1px 0 var(--bordeaux-scuro); }
.esterno:active { transform: translateY(3px); box-shadow: 0 0 0 var(--bordeaux-scuro); }
.esterno:focus-visible { outline: 3px solid var(--uovo); outline-offset: 3px; }
.mappa h3 { color: var(--crema); }

/* --------------------------------------------------------------------------
   Piè di pagina
   -------------------------------------------------------------------------- */
.pie { background: var(--bordeaux-scuro); color: rgba(253, 245, 231, .86); padding-top: clamp(60px, 8vw, 100px); font-size: .96rem; position: relative; overflow: hidden; }
.pie a { color: var(--crema); text-decoration: none; }
.pie a:hover { color: var(--uovo); text-decoration: underline; }
.pie__griglia { display: grid; grid-template-columns: 1.3fr 1fr 1fr 1fr; gap: 40px; padding-bottom: 56px; }
.pie__logo img { width: 200px; }
.pie h4 { color: var(--uovo); font-family: var(--font-testo); font-size: .8rem; letter-spacing: .16em; text-transform: uppercase; font-weight: 700; margin-bottom: 1.1em; }
.pie ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .5em; }
.pie address { font-style: normal; }
.pie__fondo { border-top: 1px solid rgba(253, 245, 231, .16); padding-block: 22px; font-size: .84rem; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; color: rgba(253, 245, 231, .6); }
.pie__legale a { color: inherit; text-decoration: none; white-space: nowrap; }
.pie__legale a:hover { color: var(--crema); text-decoration: underline; }
.pie__legale svg { display: inline-block; width: .95em; height: .95em; vertical-align: -.1em; margin-left: .15em; }
.pie .spirale { position: absolute; right: -60px; bottom: -60px; --s: 280px; --c: rgba(253, 245, 231, .05); }
@media (max-width: 900px) { .pie__griglia { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .pie__griglia { grid-template-columns: 1fr; } }

/* --------------------------------------------------------------------------
   Animazioni all'ingresso
   -------------------------------------------------------------------------- */
.js .rivela { opacity: 0; transform: translateY(26px); transition: opacity .8s var(--ease), transform .8s var(--ease); }
.js .rivela.visibile { opacity: 1; transform: none; }
.js .rivela[data-ritardo="1"] { transition-delay: .1s; }
.js .rivela[data-ritardo="2"] { transition-delay: .2s; }
.js .rivela[data-ritardo="3"] { transition-delay: .3s; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .js .rivela { opacity: 1; transform: none; }
}

/* utilità */
.centro { text-align: center; }
.mt-0 { margin-top: 0; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* --------------------------------------------------------------------------
   Pulsante WhatsApp fisso in basso a destra
   -------------------------------------------------------------------------- */
.whatsapp {
  position: fixed; z-index: 60;
  right: max(18px, env(safe-area-inset-right)); bottom: max(18px, env(safe-area-inset-bottom));
  width: 60px; height: 60px; border-radius: 50%;
  display: grid; place-items: center;
  background: #25D366; color: #fff;
  /* cerchio pieno, senza bordo 3D né ombra */
  box-shadow: none;
  transition: transform .25s var(--ease), background-color .25s;
}
.whatsapp svg { width: 30px; height: 30px; }
.whatsapp:hover { transform: scale(1.06); background: #1FBF5B; }
.whatsapp:active { transform: scale(.96); }
.whatsapp:focus-visible { outline: 3px solid var(--bordeaux); outline-offset: 4px; }
.whatsapp__etichetta {
  position: absolute; right: calc(100% + 12px); white-space: nowrap;
  background: var(--nero); color: var(--crema); font-size: .85rem; font-weight: 600;
  padding: .45em .8em; border-radius: 999px;
  opacity: 0; transform: translateX(6px); pointer-events: none;
  transition: opacity .2s, transform .2s;
}
.whatsapp:hover .whatsapp__etichetta, .whatsapp:focus-visible .whatsapp__etichetta { opacity: 1; transform: none; }
@media (max-width: 640px) {
  .whatsapp { width: 54px; height: 54px; }
  .whatsapp svg { width: 27px; height: 27px; }
}
@media (prefers-reduced-motion: reduce) { .whatsapp { transition: none; } }

/* Storia: la prima sede, foto e cartolina affiancate */
.prima-sede {
  display: grid; grid-template-columns: minmax(0, 420px) minmax(0, 1fr);
  gap: clamp(36px, 6vw, 80px); align-items: center;
  padding-block: clamp(20px, 4vw, 40px);
  max-width: 960px; margin-inline: auto;
}
.prima-sede__foto .foto { aspect-ratio: 4 / 5; }
.prima-sede__foto img { object-position: 30% 50%; }
.prima-sede__testo { transform: rotate(1.5deg); }
.prima-sede__testo .occhiello { color: var(--uovo); }
.prima-sede__anni {
  font-family: var(--font-titoli); font-weight: 900; line-height: 1;
  font-size: clamp(2.4rem, 5vw, 3.6rem); color: var(--crema); margin-bottom: .45em;
}
.prima-sede__anni span { color: var(--uovo); }
@media (max-width: 860px) {
  .prima-sede { grid-template-columns: 1fr; }
  .prima-sede__foto { max-width: 420px; width: 100%; margin-inline: auto; }
  .prima-sede__testo { transform: none; }
}

/* --------------------------------------------------------------------------
   Pagine legali (privacy e cookie policy)
   -------------------------------------------------------------------------- */
.legale { max-width: 760px; margin-inline: auto; }
.legale h2 { font-size: clamp(1.45rem, 2.4vw, 1.9rem); margin: 2.2em 0 .6em; }
.legale h2:first-child { margin-top: 0; }
.legale h3 { font-size: clamp(1.1rem, 1.6vw, 1.3rem); margin: 1.6em 0 .4em; }
.legale ul { padding-left: 1.2em; margin: 0 0 1.1em; }
.legale li { margin-bottom: .5em; }
.legale li::marker { color: var(--rosso); }
.legale code { font-size: .9em; background: var(--crema-2); padding: .1em .35em; border-radius: 6px; }
/* dati del titolare ancora da inserire: ben visibili finché non vengono completati */
.da-completare { background: var(--uovo); color: var(--bordeaux-scuro); padding: 0 .3em; border-radius: 4px; font-weight: 700; }
.tabella-scorre { overflow-x: auto; margin: 0 0 1.4em; }
.tabella-legale { width: 100%; border-collapse: collapse; font-size: .95rem; min-width: 520px; }
.tabella-legale th, .tabella-legale td { text-align: left; vertical-align: top; padding: .7em .8em; border-bottom: 1px solid rgba(114, 3, 14, .15); }
.tabella-legale th { font-family: var(--font-titoli); color: var(--bordeaux); }
.esito-revoca { font-weight: 700; color: var(--bordeaux); min-height: 1.6em; }

/* --------------------------------------------------------------------------
   Banner consenso cookie (creato da main.js)
   A tutta larghezza sul bordo basso: Safari 26 ne prende anche il colore
   per la sua barra. "Rifiuta" e "Accetta" hanno la stessa evidenza.
   -------------------------------------------------------------------------- */
.banner-cookie {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 120;
  display: flex; align-items: center; gap: 18px 32px;
  padding: 22px max(var(--gutter), env(safe-area-inset-right, 0px)) max(22px, env(safe-area-inset-bottom, 0px)) max(var(--gutter), env(safe-area-inset-left, 0px));
  background-color: var(--bordeaux-scuro); color: var(--crema);
  border-radius: 22px 22px 0 0;
  box-shadow: 0 -18px 40px -20px rgba(0, 0, 0, .45);
  transform: translateY(100%); transition: transform .35s var(--ease);
}
.banner-cookie.visibile { transform: none; }
.banner-cookie[hidden] { display: none; }
.banner-cookie__testo { flex: 1; max-width: 760px; margin-right: auto; padding-right: 36px; }
.banner-cookie__titolo { font-family: var(--font-titoli); font-weight: 800; font-size: 1.2rem; margin: 0 0 .3em; color: var(--crema); }
.banner-cookie p { font-size: .93rem; line-height: 1.5; margin: 0; color: rgba(253, 245, 231, .88); }
.banner-cookie a { color: var(--uovo); white-space: nowrap; }
.banner-cookie__azioni { display: flex; gap: 12px; flex: none; }
.banner-cookie__azioni .btn { --ombra: var(--crema-ombra); min-width: 128px; justify-content: center; padding: .8em 1.3em; }
.banner-cookie__chiudi {
  position: absolute; top: 12px; right: max(12px, env(safe-area-inset-right, 0px));
  width: 40px; height: 40px; display: grid; place-items: center;
  background: none; border: 0; border-radius: 50%; color: var(--crema); cursor: pointer;
}
.banner-cookie__chiudi:hover { background: rgba(253, 245, 231, .12); }
.banner-cookie__chiudi svg { width: 22px; height: 22px; }
.banner-cookie button:focus-visible, .banner-cookie a:focus-visible { outline: 3px solid var(--uovo); outline-offset: 3px; }
/* con il banner aperto il pulsante WhatsApp non ci finisce sotto */
body.con-banner-cookie .whatsapp { opacity: 0; pointer-events: none; }
@media (max-width: 760px) {
  .banner-cookie { flex-direction: column; align-items: stretch; }
  .banner-cookie__testo { padding-right: 32px; }
  .banner-cookie__azioni .btn { flex: 1; min-width: 0; }
}
@media (prefers-reduced-motion: reduce) { .banner-cookie { transition: none; } }

/* "Preferenze cookie" nel footer: un pulsante che sembra un link */
.link-preferenze {
  background: none; border: 0; padding: 0; font: inherit; color: inherit; cursor: pointer; white-space: nowrap;
}
.link-preferenze:hover { color: var(--crema); text-decoration: underline; }
.link-preferenze:focus-visible { outline: 2px solid var(--uovo); outline-offset: 2px; }
.pulsanti-legale { display: flex; flex-wrap: wrap; gap: 12px; }
/* su mobile l'ultima riga del footer resta sopra il pulsante WhatsApp fisso */
@media (max-width: 640px) {
  .pie__fondo { padding-bottom: calc(22px + 54px + max(18px, env(safe-area-inset-bottom, 0px))); }
}
