/* NeoLayer3D, sito vetrina. Stile: laboratorio notturno e oro del marchio; tessere arrotondate; foto vere dei lavori.
   Colori misurati sul logo e sulla copertina dei social; contrasti verificati (testo/fondo 17,4:1, oro/fondo 10,7:1, scritta su oro 10:1). */

@font-face { font-family: "Outfit"; src: url("../font/outfit.woff2") format("woff2"); font-weight: 100 900; font-style: normal; font-display: swap; }
@font-face { font-family: "Figtree"; src: url("../font/figtree.woff2") format("woff2"); font-weight: 300 900; font-style: normal; font-display: swap; }

:root {
  --fondo: #080b12;
  --carta: #10141f;
  --carta-2: #171c2a;
  --riga: #2a3144;
  --riga-fine: rgba(255, 255, 255, .075);
  --testo: #f4f1ea;
  --tenue: #a9afc0;
  --spento: #8a91a5;
  --oro: #e6b866;
  --oro-chiaro: #f7d38b;
  --oro-scuro: #cd9c53;
  --su-oro: #1b1203;
  --viola: #8f7df2;
  --blu: #4f8fe0;
  --bianco-foto: #f6f4f1;

  --r-s: 12px;
  --r-m: 20px;
  --r-l: 28px;
  --r-xl: 40px;
  --pillola: 999px;

  /* ombre: tre profondità più l'alone dorato dei comandi */
  --ombra-bassa: 0 18px 40px -22px rgba(0, 0, 0, .9);
  --ombra-media: 0 30px 60px -30px rgba(0, 0, 0, .9);
  --ombra-alta: 0 50px 90px -50px rgba(0, 0, 0, .95);
  --lume-oro: inset 0 1px 0 rgba(255, 255, 255, .55), 0 10px 30px -12px rgba(230, 184, 102, .65);
  --lume-oro-forte: inset 0 1px 0 rgba(255, 255, 255, .7), 0 14px 36px -10px rgba(230, 184, 102, .85);
  --anello-oro: 0 0 0 3px rgba(230, 184, 102, .22);
  --lume-pila: 0 0 18px -4px rgba(230, 184, 102, .7);

  --largo: 1200px;
  --bordo: clamp(20px, 4vw, 40px);
  --titoli: "Outfit", "Segoe UI", system-ui, sans-serif;
  --corpo: "Figtree", "Segoe UI", system-ui, sans-serif;
  --molla: cubic-bezier(.2, .7, .2, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 96px; -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--fondo);
  color: var(--testo);
  font: 400 1.0625rem/1.6 var(--corpo);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; }
h1, h2, h3, p, ul, ol, figure, fieldset { margin: 0; padding: 0; }
ul, ol { list-style: none; }
fieldset { border: 0; min-width: 0; }
h1, h2, h3 { font-family: var(--titoli); font-weight: 600; letter-spacing: -.02em; word-spacing: .09em; text-wrap: balance; }
h3 { letter-spacing: -.012em; }
p { text-wrap: pretty; }
::selection { background: var(--oro); color: var(--su-oro); }
:focus-visible { outline: 2px solid var(--oro-chiaro); outline-offset: 3px; border-radius: 6px; }

.largo { width: min(100% - 2 * var(--bordo), var(--largo)); margin-inline: auto; }
.i { width: 1.25em; height: 1.25em; flex: none; }
.centro { text-align: center; }
.salta { position: absolute; left: 16px; top: -60px; z-index: 100; background: var(--oro); color: var(--su-oro); padding: 10px 16px; border-radius: var(--pillola); font-weight: 600; text-decoration: none; transition: translate .2s var(--molla); }
.salta:focus { translate: 0 76px; }

/* ---------- Pulsanti ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 52px; padding: 0 26px;
  border-radius: var(--pillola); border: 1px solid transparent;
  font: 600 1rem/1 var(--corpo); text-decoration: none; white-space: nowrap; cursor: pointer;
  transition: background-color .2s var(--molla), border-color .2s var(--molla), scale .15s var(--molla);
}
.btn:active { scale: .98; }
.btn-s { min-height: 44px; padding: 0 20px; font-size: .95rem; }
.btn-oro {
  background: linear-gradient(180deg, var(--oro-chiaro), var(--oro));
  color: var(--su-oro);
  box-shadow: var(--lume-oro);
}
.btn-linea { background: rgba(255, 255, 255, .03); border-color: var(--riga); color: var(--testo); }
@media (hover: hover) and (pointer: fine) {
  .btn-oro:hover { box-shadow: var(--lume-oro-forte); }
  .btn-linea:hover { background: var(--carta-2); border-color: #3a4259; }
}

/* ---------- Barra in alto ---------- */
.barra { position: fixed; inset: 14px 0 auto 0; z-index: 50; pointer-events: none; }
.barra-in {
  pointer-events: auto;
  width: min(100% - 2 * var(--bordo) + 16px, var(--largo) + 16px); margin-inline: auto;
  display: flex; align-items: center; justify-content: space-between; gap: 20px;
  padding: 8px 8px 8px 22px;
  background: rgba(13, 17, 27, .72);
  -webkit-backdrop-filter: blur(18px) saturate(1.4); backdrop-filter: blur(18px) saturate(1.4);
  border: 1px solid var(--riga-fine); border-radius: var(--pillola);
  transition: background-color .25s var(--molla), border-color .25s var(--molla);
}
.barra.giu .barra-in { background: rgba(11, 14, 23, .9); border-color: var(--riga); box-shadow: var(--ombra-bassa); }
.marchio { display: inline-flex; align-items: center; gap: 10px; flex: none; color: var(--testo); text-decoration: none; }
/* marchio scritto: provvisorio, finché non arriva il logo nuovo come immagine */
.sigillo { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 11px; background: linear-gradient(180deg, var(--oro-chiaro), var(--oro)); color: var(--su-oro); box-shadow: var(--lume-oro); }
.sigillo .i { width: 20px; height: 20px; }
.scritta { font: 700 1.3rem/1 var(--titoli); letter-spacing: -.02em; }
.scritta b, .insegna-nome b { font-weight: inherit; color: var(--oro); }
.marchio img { height: 32px; width: auto; }
.voci { display: flex; gap: 4px; }
.voci a { padding: 10px 14px; border-radius: var(--pillola); color: var(--tenue); font-size: .95rem; font-weight: 500; text-decoration: none; transition: color .2s var(--molla), background-color .2s var(--molla); }
@media (hover: hover) and (pointer: fine) { .voci a:hover { color: var(--testo); background: rgba(255, 255, 255, .06); } }

/* ---------- Elementi ricorrenti ---------- */
.etichetta {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 7px 14px 7px 10px; margin-bottom: 22px;
  border: 1px solid var(--riga); border-radius: var(--pillola);
  background: rgba(255, 255, 255, .03);
  color: var(--tenue); font-size: .875rem; font-weight: 500; line-height: 1.2;
}
.etichetta .i { color: var(--oro); width: 1.15em; height: 1.15em; }
.oro { color: var(--oro); }
.tondo { display: inline-grid; place-items: center; width: 44px; height: 44px; flex: none; border-radius: 50%; background: rgba(230, 184, 102, .12); border: 1px solid rgba(230, 184, 102, .28); color: var(--oro); }
.tondo .i { width: 22px; height: 22px; }
.guida { color: var(--tenue); font-size: 1.125rem; line-height: 1.6; max-width: 34em; }

.sezione { padding-block: clamp(64px, 8.5vw, 112px); }
.sezione-stretta { padding-block: clamp(56px, 7vw, 96px); }
.testata { margin-bottom: clamp(36px, 5vw, 56px); }
.testata h2 { font-size: clamp(2rem, 4.3vw, 3.25rem); line-height: 1.06; }
.testata .guida { margin-top: 18px; }
.testata-due { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(24px, 5vw, 72px); align-items: end; }
.testata-due .guida { margin-top: 0; padding-bottom: 6px; }
.testata-centro { text-align: center; }
.testata-centro .guida { margin-inline: auto; }

/* ---------- Apertura ---------- */
.apertura { position: relative; padding: clamp(128px, 15vw, 176px) 0 clamp(64px, 8vw, 104px); overflow: clip; }
.strati-sfondo { position: absolute; inset: 0; pointer-events: none; }
.strati-sfondo::before {
  content: ""; position: absolute; inset: -10% -10% 0 30%;
  background:
    radial-gradient(46% 52% at 62% 42%, rgba(143, 125, 242, .30), transparent 70%),
    radial-gradient(40% 46% at 86% 70%, rgba(79, 143, 224, .20), transparent 72%);
}
.strati-sfondo::after {
  content: ""; position: absolute; inset: 0;
  background: repeating-linear-gradient(to bottom, rgba(255, 255, 255, .05) 0 1px, transparent 1px 8px);
  -webkit-mask-image: radial-gradient(60% 70% at 72% 46%, #000 0%, transparent 72%); mask-image: radial-gradient(60% 70% at 72% 46%, #000 0%, transparent 72%);
}
.apertura-griglia { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.06fr); gap: clamp(32px, 5vw, 72px); align-items: center; }
.apertura h1 { font-size: clamp(2.5rem, 5.1vw, 4rem); line-height: 1.04; letter-spacing: -.03em; }
.apertura h1 .oro { display: block; padding-bottom: .08em; }
.sommario { margin-top: 24px; color: var(--tenue); font-size: clamp(1.0625rem, 1.4vw, 1.2rem); line-height: 1.6; max-width: 31em; }
.azioni { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 34px; }
.nota { display: flex; align-items: center; gap: 8px; margin-top: 22px; color: var(--spento); font-size: .925rem; }
.nota .i { color: var(--oro); }

.mosaico { display: grid; grid-template-columns: 1.22fr 1fr 1fr; grid-template-rows: 1fr 1fr; gap: 14px; aspect-ratio: 1.1; }
.tessera { position: relative; overflow: hidden; border-radius: var(--r-l); background: #000; border: 1px solid var(--riga-fine); box-shadow: var(--ombra-media); }
.tessera img { width: 100%; height: 100%; object-fit: cover; }
.tessera figcaption {
  position: absolute; left: 10px; bottom: 10px; max-width: calc(100% - 20px);
  padding: 6px 12px; border-radius: var(--pillola);
  background: rgba(8, 11, 18, .74); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, .12);
  color: var(--testo); font-size: .8rem; font-weight: 500; line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.t-anubi { grid-column: 1; grid-row: 1 / 3; }
.t-anubi img { object-position: 50% 40%; }
.t-fantasmi { grid-column: 2 / 4; grid-row: 1; }
.t-fantasmi img { object-fit: contain; }
.t-santo { grid-column: 2; grid-row: 2; background: #1b1c20; }
.t-santo img { object-position: 46% 50%; }
.t-chiavi { grid-column: 3; grid-row: 2; background: var(--bianco-foto); }

/* ---------- Cosa realizziamo ---------- */
.bento { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 20px; }
.s-7 { grid-column: span 7; }
.s-5 { grid-column: span 5; }
.scheda { display: flex; flex-direction: column; overflow: hidden; background: var(--carta); border: 1px solid var(--riga-fine); border-radius: var(--r-l); transition: border-color .25s var(--molla), translate .25s var(--molla); }
.scheda-foto { position: relative; height: clamp(220px, 26vw, 320px); background: #000; overflow: hidden; }
.scheda-foto img { width: 100%; height: 100%; object-fit: cover; transition: scale .3s var(--molla); }
.scheda-foto.chiara { background: var(--bianco-foto); }
.scheda-foto.bianca { background: #fff; }
.bollo {
  position: absolute; left: 14px; top: 14px; display: inline-flex; align-items: center; gap: 6px;
  padding: 6px 12px; border-radius: var(--pillola);
  background: rgba(8, 11, 18, .78); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, .14);
  color: var(--testo); font-size: .78rem; font-weight: 600; line-height: 1.2;
}
.bollo.vero .i { color: var(--oro); width: 1.05em; height: 1.05em; }
.scheda-testo { padding: 28px; display: flex; flex-direction: column; gap: 14px; flex: 1; }
.scheda-testo h3 { display: flex; align-items: center; gap: 14px; font-size: 1.4rem; line-height: 1.2; }
.scheda-testo p { color: var(--tenue); }
.pillole { display: flex; flex-wrap: wrap; gap: 8px; margin-top: auto; padding-top: 6px; }
.pillole li { padding: 6px 13px; border: 1px solid var(--riga); border-radius: var(--pillola); color: var(--tenue); font-size: .85rem; font-weight: 500; line-height: 1.3; }
@media (hover: hover) and (pointer: fine) {
  .scheda:hover { border-color: rgba(230, 184, 102, .35); translate: 0 -3px; }
  .scheda:hover .scheda-foto img { scale: 1.03; }
}

/* ---------- Statue ---------- */
.sezione-statue { position: relative; }
.sezione-statue::before { content: ""; position: absolute; inset: 8% 0 30% 0; background: radial-gradient(50% 60% at 50% 40%, rgba(230, 184, 102, .09), transparent 70%); pointer-events: none; }
.sezione-statue .largo { position: relative; }
.confronto { position: relative; overflow: hidden; border-radius: var(--r-xl); border: 1px solid var(--riga); background: #1b1c20; aspect-ratio: 1600 / 894; box-shadow: var(--ombra-alta); isolation: isolate; }
.confronto img { width: 100%; height: 100%; object-fit: cover; -webkit-user-drag: none; user-select: none; }
.confronto-sopra { position: absolute; inset: 0; clip-path: inset(0 0 0 var(--pos)); }
.confronto-voce {
  position: absolute; top: 16px; padding: 7px 14px; border-radius: var(--pillola);
  background: rgba(8, 11, 18, .78); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, .14); font-size: .85rem; font-weight: 600; line-height: 1.2; pointer-events: none;
}
.confronto-voce.a-sinistra { left: 16px; }
.confronto-voce.a-destra { right: 16px; color: var(--oro-chiaro); }
.confronto-linea { position: absolute; top: 0; bottom: 0; left: var(--pos); width: 2px; margin-left: -1px; background: linear-gradient(180deg, transparent, var(--oro-chiaro) 12%, var(--oro-chiaro) 88%, transparent); pointer-events: none; }
.confronto-pomo { position: absolute; top: 50%; left: 50%; translate: -50% -50%; display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50%; background: linear-gradient(180deg, var(--oro-chiaro), var(--oro)); color: var(--su-oro); box-shadow: var(--ombra-bassa), inset 0 1px 0 rgba(255, 255, 255, .6); }
.confronto-pomo .i { width: 24px; height: 24px; }
.confronto-cursore { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: ew-resize; touch-action: pan-y; -webkit-appearance: none; appearance: none; background: transparent; }
.confronto-cursore::-webkit-slider-thumb { -webkit-appearance: none; width: 56px; height: 600px; }
.confronto-cursore::-moz-range-thumb { width: 56px; height: 600px; border: 0; }
.confronto:has(.confronto-cursore:focus-visible) { outline: 2px solid var(--oro-chiaro); outline-offset: 4px; }
.didascalia { margin-top: 16px; text-align: center; color: var(--spento); font-size: .925rem; }
.fatti { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin-block: clamp(32px, 4vw, 48px); }
.fatti li { display: flex; gap: 16px; align-items: flex-start; padding: 24px; background: var(--carta); border: 1px solid var(--riga-fine); border-radius: var(--r-m); }
.fatti strong { display: block; font: 600 1.125rem/1.3 var(--titoli); letter-spacing: -.01em; word-spacing: .08em; margin-bottom: 4px; }
.fatti span { color: var(--tenue); font-size: .975rem; line-height: 1.5; }

/* ---------- Come funziona ---------- */
.passi { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; counter-reset: passo; }
.passo { position: relative; padding: 28px; background: var(--carta); border: 1px solid var(--riga-fine); border-radius: var(--r-l); }
.pila { display: grid; gap: 5px; width: 64px; margin-bottom: 28px; }
.pila i { display: block; height: 9px; border-radius: var(--pillola); background: var(--carta-2); border: 1px solid var(--riga); }
.pila i.on { background: linear-gradient(180deg, var(--oro-chiaro), var(--oro)); border-color: transparent; box-shadow: var(--lume-pila); }
.numero { position: absolute; right: 26px; top: 26px; font: 600 .95rem/1 var(--titoli); color: var(--spento); letter-spacing: .04em; }
.passo h3 { font-size: 1.25rem; line-height: 1.25; margin-bottom: 10px; }
.passo p { color: var(--tenue); font-size: .975rem; line-height: 1.55; }

/* ---------- Domande ---------- */
.domande-griglia { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(32px, 6vw, 88px); align-items: start; }
.domande-griglia .testata { margin-bottom: 0; }
.domande { display: grid; gap: 12px; }
.domande details { background: var(--carta); border: 1px solid var(--riga-fine); border-radius: var(--r-m); transition: border-color .2s var(--molla); }
.domande details[open] { border-color: rgba(230, 184, 102, .32); }
.domande summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px 22px 20px 24px; cursor: pointer; list-style: none; font: 600 1.125rem/1.35 var(--titoli); letter-spacing: -.01em; word-spacing: .08em; border-radius: var(--r-m); }
.domande summary::-webkit-details-marker { display: none; }
.piu { position: relative; flex: none; width: 34px; height: 34px; border-radius: 50%; border: 1px solid var(--riga); transition: rotate .25s var(--molla), background-color .2s var(--molla), border-color .2s var(--molla); }
.piu::before, .piu::after { content: ""; position: absolute; left: 50%; top: 50%; width: 12px; height: 2px; margin: -1px 0 0 -6px; border-radius: 2px; background: var(--testo); }
.piu::after { rotate: 90deg; }
details[open] .piu { rotate: 45deg; background: var(--oro); border-color: var(--oro); }
details[open] .piu::before, details[open] .piu::after { background: var(--su-oro); }
.domande details p { padding: 0 24px 22px; color: var(--tenue); max-width: 40em; }

/* ---------- Contatti ---------- */
.sezione-contatti { padding-top: clamp(24px, 4vw, 48px); }
.pannello {
  position: relative; display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(28px, 5vw, 64px);
  padding: clamp(24px, 4.5vw, 56px);
  background:
    radial-gradient(70% 90% at 0% 0%, rgba(230, 184, 102, .13), transparent 60%),
    radial-gradient(60% 80% at 100% 100%, rgba(143, 125, 242, .14), transparent 60%),
    var(--carta);
  border: 1px solid rgba(230, 184, 102, .26); border-radius: var(--r-xl);
}
.pannello h2 { font-size: clamp(2rem, 4vw, 3rem); line-height: 1.06; }
.pannello .guida { margin-top: 16px; }
.canali { display: grid; gap: 10px; margin-top: 32px; }
.canali a { display: flex; align-items: center; gap: 14px; padding: 10px 16px 10px 10px; border: 1px solid var(--riga-fine); border-radius: var(--pillola); background: rgba(8, 11, 18, .45); text-decoration: none; color: var(--tenue); font-size: .95rem; line-height: 1.3; overflow-wrap: anywhere; transition: border-color .2s var(--molla), background-color .2s var(--molla); }
.canali strong { display: block; color: var(--testo); font: 600 1rem/1.3 var(--titoli); }
@media (hover: hover) and (pointer: fine) { .canali a:hover { border-color: rgba(230, 184, 102, .4); background: rgba(8, 11, 18, .7); } }

.idea { display: grid; gap: 18px; padding: clamp(20px, 3vw, 32px); background: rgba(8, 11, 18, .62); border: 1px solid var(--riga-fine); border-radius: var(--r-l); align-content: start; }
.scelta { display: flex; flex-wrap: wrap; gap: 8px; }
.scelta legend, .campo > span { display: block; margin-bottom: 10px; font: 600 .95rem/1.3 var(--corpo); color: var(--testo); }
.campo em { font-style: normal; font-weight: 400; color: var(--spento); }
.scelta label { position: relative; cursor: pointer; }
.scelta input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.scelta label span { display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; border: 1px solid var(--riga); border-radius: var(--pillola); color: var(--tenue); font-size: .95rem; font-weight: 500; transition: background-color .2s var(--molla), border-color .2s var(--molla), color .2s var(--molla); }
.scelta input:checked + span { background: var(--oro); border-color: var(--oro); color: var(--su-oro); font-weight: 600; }
.scelta input:focus-visible + span { outline: 2px solid var(--oro-chiaro); outline-offset: 3px; }
.campi-due { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.campo input, .campo textarea { width: 100%; padding: 14px 16px; background: var(--carta); border: 1px solid var(--riga); border-radius: var(--r-s); color: var(--testo); font: 400 1rem/1.5 var(--corpo); transition: border-color .2s var(--molla); }
.campo textarea { resize: vertical; min-height: 112px; }
.campo input::placeholder, .campo textarea::placeholder { color: var(--spento); }
.campo input:focus, .campo textarea:focus { outline: none; border-color: var(--oro); box-shadow: var(--anello-oro); }
.invii { display: flex; flex-wrap: wrap; gap: 10px; }
.invii .btn { flex: 1 1 auto; padding: 0 20px; }
.avviso { color: var(--spento); font-size: .875rem; line-height: 1.5; }
.avviso.fatto { color: var(--oro-chiaro); }

/* ---------- Piede ---------- */
.piede { padding: clamp(24px, 4vw, 48px) 0 32px; }
.insegna { position: relative; overflow: hidden; border-radius: var(--r-xl); border: 1px solid var(--riga-fine); min-height: clamp(260px, 32vw, 400px); display: grid; place-items: end center; isolation: isolate; }
.insegna-sfondo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 40%; z-index: -2; }
.insegna::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(8, 11, 18, .05) 0%, rgba(8, 11, 18, .5) 50%, rgba(8, 11, 18, .95) 100%); }
.insegna-dentro { padding: clamp(24px, 4vw, 48px); text-align: center; }
.insegna-logo { width: min(560px, 78vw); margin-inline: auto; filter: drop-shadow(0 12px 30px rgba(0, 0, 0, .8)); }
.insegna-nome { font: 700 clamp(2.4rem, 7vw, 4.5rem)/1 var(--titoli); letter-spacing: -.03em; color: var(--testo); }
.insegna-motto { margin-top: 14px; color: var(--testo); font: 500 clamp(1rem, 1.6vw, 1.2rem)/1.4 var(--titoli); letter-spacing: .01em; }
.piede-riga { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 28px; padding-top: 26px; color: var(--spento); font-size: .9rem; }
.piede-riga nav { display: flex; flex-wrap: wrap; gap: 6px 22px; }
.piede-riga a { color: var(--tenue); text-decoration: none; padding-block: 6px; }
@media (hover: hover) and (pointer: fine) { .piede-riga a:hover { color: var(--testo); text-decoration: underline; text-underline-offset: 4px; } }

/* ---------- Comparsa allo scorrimento ---------- */
/* comparsa di presentazione, una sola volta per elemento: per questo dura più dei 300 ms dei comandi */
.js [data-r] { opacity: 0; translate: 0 22px; transition: opacity .6s var(--molla) var(--d, 0s), translate .6s var(--molla) var(--d, 0s); }
.js [data-r].dentro { opacity: 1; translate: 0 0; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .js [data-r] { opacity: 1; translate: none; transition: none; }
  .btn, .scheda, .scheda-foto img, .piu { transition: none; }
}

@media print { .js [data-r] { opacity: 1; translate: none; } .barra { display: none; } }

/* ---------- Schermi medi ---------- */
@media (max-width: 1040px) {
  .voci { display: none; }
  .passi { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 920px) {
  .apertura-griglia { grid-template-columns: 1fr; gap: 44px; }
  .mosaico { aspect-ratio: 1.25; }
  .testata-due { grid-template-columns: 1fr; gap: 0; align-items: start; }
  .testata-due .guida { margin-top: 18px; padding-bottom: 0; }
  .s-7, .s-5 { grid-column: span 12; }
  .domande-griglia { grid-template-columns: 1fr; }
  .domande-griglia .testata { margin-bottom: 4px; }
  .pannello { grid-template-columns: 1fr; }
  .fatti { grid-template-columns: 1fr; gap: 12px; }
}

@media (max-width: 420px) { .sigillo { display: none; } }

/* ---------- Telefono ---------- */
@media (max-width: 620px) {
  html { scroll-padding-top: 84px; }
  body { font-size: 1rem; }
  .barra { inset: 10px 0 auto 0; }
  .barra-in { padding: 6px 6px 6px 16px; }
  .marchio img { height: 26px; }
  .scritta { font-size: 1.15rem; }
  .apertura { padding-top: 116px; }
  .azioni .btn { flex: 1 1 100%; }
  .mosaico { grid-template-columns: 1fr 1fr; grid-template-rows: auto; aspect-ratio: auto; gap: 10px; }
  .tessera { border-radius: var(--r-m); }
  .t-anubi { grid-column: 1; grid-row: 1 / 3; }
  .t-santo { grid-column: 2; grid-row: 1; aspect-ratio: 1; }
  .t-chiavi { grid-column: 2; grid-row: 2; aspect-ratio: 1; }
  .t-fantasmi { grid-column: 1 / 3; grid-row: 3; aspect-ratio: 2.1; }
  .bento { gap: 14px; }
  .scheda-testo { padding: 22px; }
  .scheda-testo h3 { font-size: 1.25rem; }
  .confronto-voce { top: 8px; font-size: .72rem; padding: 5px 10px; }
  .confronto-voce.a-sinistra { left: 8px; }
  .confronto-voce.a-destra { right: 8px; }
  .confronto-pomo { width: 44px; height: 44px; }
  .passi { grid-template-columns: 1fr; gap: 12px; }
  .passo { padding: 22px; display: grid; grid-template-columns: 64px 1fr; column-gap: 18px; align-items: start; }
  .pila { margin-bottom: 0; grid-row: 1 / 3; margin-top: 4px; }
  .passo h3 { margin-bottom: 6px; padding-right: 40px; }
  .numero { right: 20px; top: 24px; }
  .campi-due { grid-template-columns: 1fr; }
  .invii .btn { flex: 1 1 100%; }
  .pannello, .insegna, .confronto { border-radius: var(--r-l); }
  .piede-riga { flex-direction: column; align-items: flex-start; }
}
