/* rapisarda-block — il sistema di DESIGN.md, portato da docs/mockup/mockup.css sui preset di theme.json.
   Catania a tutto schermo e a colori, poi gruppi chiari su grigio carta.
   Blu notte del logo come inchiostro, bordeaux solo per la consulenza gratuita. Una sola famiglia.
   Nessun colore scritto a mano: solo var(--wp--preset--color--*) e i canali var(--wp--custom--rgb--*).
   Parte 1: base, icone, pillole, barra, apertura, sezioni della Home, piede.
   Parte 2: pagine interne, news, testi legali, moduli, larghezze. */

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

html {
  color-scheme: light;
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--wp--custom--barra) + 16px);
  scrollbar-color: var(--wp--preset--color--su-notte-2) transparent;
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
  background: var(--wp--preset--color--fondo);
  color: var(--wp--preset--color--inchiostro);
  font: 400 var(--wp--preset--font-size--corpo)/1.55 var(--wp--preset--font-family--atkinson);
  caret-color: var(--wp--preset--color--bordeaux);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

::selection { background: rgb(var(--wp--custom--rgb--inchiostro) / 0.16); }

img, video { display: block; max-width: 100%; }
[hidden] { display: none !important; }

a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 4px; }

:focus-visible { outline: 3px solid var(--wp--preset--color--inchiostro); outline-offset: 3px; border-radius: 6px; }
.apertura :focus-visible, .soglia :focus-visible, .contatto :focus-visible, html:not(.oltre-apertura) .barra :focus-visible { outline-color: var(--wp--preset--color--bianco); }

h1, h2, h3 { margin: 0; font-weight: 700; letter-spacing: -0.03em; line-height: 1.06; text-wrap: balance; }
h2 { font-size: var(--wp--preset--font-size--titolo); }
h3 { font-size: var(--wp--preset--font-size--h-3); letter-spacing: -0.02em; line-height: 1.15; }
p { margin: 0; text-wrap: pretty; }
p + p { margin-top: 0.8em; }

.contenitore { width: min(100% - 2 * var(--wp--preset--spacing--margine), var(--wp--style--global--wide-size)); margin-inline: auto; }

.salta {
  position: absolute; left: var(--wp--preset--spacing--margine); top: -100px; z-index: 100;
  padding: 10px 18px; border-radius: var(--wp--custom--raggio--pillola);
  background: var(--wp--preset--color--inchiostro); color: var(--wp--preset--color--bianco); font-weight: 600; text-decoration: none;
}
.salta:focus { top: 12px; }

/* ---------- Icone: tratto arrotondato, una sola misura ---------- */

/* Le icone sono maschere: un file SVG per icona in ../icone/, colore dal testo (currentColor).
   Nell'HTML: <span class="icona icona--nome" aria-hidden="true"></span>; su un pulsante: classe ha-icona-nome. */
.icona,
[class*="ha-icona-"] > .wp-block-button__link::before {
  content: ""; display: inline-block; inline-size: 1.2em; block-size: 1.2em; flex: none;
  background: currentColor;
  -webkit-mask: var(--icona) center / contain no-repeat; mask: var(--icona) center / contain no-repeat;
}
.icona--chiave, .ha-icona-chiave { --icona: url(../icone/chiave.svg); }
.icona--messaggio, .ha-icona-messaggio { --icona: url(../icone/messaggio.svg); }
.icona--pausa, .ha-icona-pausa { --icona: url(../icone/pausa.svg); }
.icona--play, .ha-icona-play { --icona: url(../icone/play.svg); }
.icona--avanti, .ha-icona-avanti { --icona: url(../icone/avanti.svg); }
.icona--indietro, .ha-icona-indietro { --icona: url(../icone/indietro.svg); }
.icona--giu, .ha-icona-giu { --icona: url(../icone/giu.svg); }
.icona--spunta, .ha-icona-spunta { --icona: url(../icone/spunta.svg); }
.icona--luogo, .ha-icona-luogo { --icona: url(../icone/luogo.svg); }
.icona--posta, .ha-icona-posta { --icona: url(../icone/posta.svg); }
.icona--cerca, .ha-icona-cerca { --icona: url(../icone/cerca.svg); }
.icona--documento, .ha-icona-documento { --icona: url(../icone/documento.svg); }
.icona--allegato, .ha-icona-allegato { --icona: url(../icone/allegato.svg); }

/* ---------- Pillole ---------- */

.pillola,
.wp-block-button__link {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 50px; padding: 0 24px;
  border: 0; border-radius: var(--wp--custom--raggio--pillola);
  font: 600 1.0625rem/1 var(--wp--preset--font-family--atkinson); letter-spacing: -0.01em;
  text-decoration: none; white-space: nowrap; cursor: pointer;
  transition: background-color 0.2s, color 0.2s, box-shadow 0.2s, transform 0.25s var(--wp--custom--uscita);
}
.pillola:active, .wp-block-button__link:active { transform: scale(0.97); }
.pillola--piccola, .piccola > .wp-block-button__link { min-height: 38px; padding: 0 16px; font-size: 0.9375rem; }
.pillola--chiama, .is-style-chiama > .wp-block-button__link { background: var(--wp--preset--color--bordeaux); color: var(--wp--preset--color--bianco); }
.pillola--chiama:hover, .is-style-chiama > .wp-block-button__link:hover { background: var(--wp--preset--color--bordeaux-scuro); }
.pillola--notte, .wp-block-button__link, .is-style-notte > .wp-block-button__link { background: var(--wp--preset--color--inchiostro); color: var(--wp--preset--color--bianco); }
.pillola--notte:hover, .wp-block-button__link:hover, .is-style-notte > .wp-block-button__link:hover { background: var(--wp--preset--color--inchiostro-chiaro); }
.pillola--grigia.pillola--su-bianco, .sezione--bianca .pillola--grigia { background: var(--wp--preset--color--grigio); }

.collegamento {
  padding: 0; border: 0; background: none; color: var(--wp--preset--color--inchiostro); cursor: pointer;
  font: inherit; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px;
}

.visivamente-nascosto {
  position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0;
  overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0;
}
.pillola--grigia, .is-style-grigia > .wp-block-button__link { background: var(--wp--preset--color--grigio); color: var(--wp--preset--color--inchiostro); }
.pillola--grigia:hover, .is-style-grigia > .wp-block-button__link:hover { background: var(--wp--preset--color--grigio-scuro); }
/* Sopra il video: velo chiaro e sfocato, serve a leggere il bottone sopra le immagini */
.pillola--vetro,
.is-style-vetro > .wp-block-button__link {
  background: rgb(var(--wp--custom--rgb--bianco) / 0.16); color: var(--wp--preset--color--bianco);
  box-shadow: inset 0 0 0 1px rgb(var(--wp--custom--rgb--bianco) / 0.38);
  -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px);
}
.pillola--vetro:hover, .is-style-vetro > .wp-block-button__link:hover { background: rgb(var(--wp--custom--rgb--bianco) / 0.28); }

.avanti { color: var(--wp--preset--color--inchiostro); }
a.avanti,
.avanti > a {
  display: inline-flex; align-items: center; gap: 2px;
  font-weight: 600; text-decoration: none; color: inherit;
}
a.avanti:hover, .avanti > a:hover { text-decoration: underline; }
.avanti > a::after,
.avanti--indietro > a::before {
  content: ""; inline-size: 1em; block-size: 1em; flex: none; background: currentColor;
  -webkit-mask: url(../icone/avanti.svg) center / contain no-repeat; mask: url(../icone/avanti.svg) center / contain no-repeat;
  transition: transform 0.25s var(--wp--custom--uscita);
}
.avanti--indietro > a::after { content: none; }
.avanti--indietro > a::before { -webkit-mask-image: url(../icone/indietro.svg); mask-image: url(../icone/indietro.svg); }
.avanti > a:hover::after { transform: translateX(3px); }
.avanti--indietro > a:hover::before { transform: translateX(-3px); }
a.avanti .icona { inline-size: 1em; block-size: 1em; transition: transform 0.25s var(--wp--custom--uscita); }
a.avanti:hover .icona { transform: translateX(3px); }

/* ---------- Barra in alto: trasparente sul video, chiara e sfocata dopo ---------- */

.barra {
  position: fixed; inset: 0 0 auto; z-index: 50;
  color: var(--wp--preset--color--bianco);
  transition: background-color 0.35s, color 0.35s, box-shadow 0.35s;
}
html.scorsa:not(.oltre-apertura) .barra::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: rgb(var(--wp--custom--rgb--notte) / 0.55);
  -webkit-backdrop-filter: saturate(160%) blur(20px); backdrop-filter: saturate(160%) blur(20px);
}
html.oltre-apertura .barra {
  background: rgb(var(--wp--custom--rgb--fondo) / 0.8);
  -webkit-backdrop-filter: saturate(180%) blur(20px); backdrop-filter: saturate(180%) blur(20px);
  color: var(--wp--preset--color--inchiostro);
  box-shadow: 0 1px 0 var(--wp--preset--color--linea);
}
.barra__dentro { display: flex; align-items: center; gap: 12px; min-height: var(--wp--custom--barra); }

.marchio { display: flex; align-items: center; gap: 10px; margin-right: auto; text-decoration: none; }
.marchio__logo { inline-size: 36px; block-size: 36px; padding: 3px; background: var(--wp--preset--color--bianco); border-radius: var(--wp--custom--raggio--segmento); box-shadow: 0 1px 2px rgb(var(--wp--custom--rgb--inchiostro) / 0.2); }
.marchio__nome { font-weight: 700; font-size: 1.0625rem; letter-spacing: -0.015em; white-space: nowrap; }

.menu .wp-block-navigation__container { display: flex; gap: 4px; list-style: none; margin: 0 12px 0 0; padding: 0; }
.menu .wp-block-navigation-item__content {
  display: inline-flex; align-items: center; min-height: 40px; padding: 0 12px;
  border-radius: var(--wp--custom--raggio--pillola); font-size: 0.9375rem; text-decoration: none; opacity: 0.88;
}
.menu .wp-block-navigation-item__content:hover { opacity: 1; background: rgb(var(--wp--custom--rgb--bianco) / 0.14); }
.menu .wp-block-navigation-item__content[aria-current] { opacity: 1; font-weight: 700; background: rgb(var(--wp--custom--rgb--inchiostro) / 0.07); }
.menu-corto .wp-block-navigation-item__content[aria-current] { background: var(--wp--preset--color--fondo); }
html.oltre-apertura .menu .wp-block-navigation-item__content:hover { background: rgb(var(--wp--custom--rgb--inchiostro) / 0.06); }

html.oltre-apertura .barra :is(.pillola--vetro, .is-style-vetro > .wp-block-button__link) { background: var(--wp--preset--color--grigio); color: var(--wp--preset--color--inchiostro); box-shadow: none; }
html.oltre-apertura .barra :is(.pillola--vetro, .is-style-vetro > .wp-block-button__link):hover { background: var(--wp--preset--color--grigio-scuro); }

.menu-corto { display: none; position: relative; }
.menu-corto summary {
  list-style: none; cursor: pointer;
  display: inline-flex; align-items: center; min-height: 40px; padding: 0 16px;
  border-radius: var(--wp--custom--raggio--pillola); font-size: 0.9375rem; font-weight: 600;
  box-shadow: inset 0 0 0 1px currentColor;
}
.menu-corto summary::-webkit-details-marker { display: none; }
.menu-corto .wp-block-navigation__container {
  position: absolute; right: 0; top: calc(100% + 10px); min-width: 280px;
  list-style: none; margin: 0; padding: 8px;
  background: var(--wp--preset--color--bianco); color: var(--wp--preset--color--inchiostro);
  border-radius: var(--wp--custom--raggio--medio); box-shadow: 0 2px 6px rgb(var(--wp--custom--rgb--inchiostro) / 0.08), 0 24px 48px -16px rgb(var(--wp--custom--rgb--inchiostro) / 0.3);
}
.menu-corto .wp-block-navigation-item__content { display: flex; align-items: center; min-height: 48px; padding: 0 14px; border-radius: var(--wp--custom--raggio--campo); text-decoration: none; font-weight: 600; }
.menu-corto .wp-block-navigation-item__content:hover { background: var(--wp--preset--color--fondo); }

/* ---------- Apertura: il video a tutto schermo ---------- */
/* All'arrivo c'è già tutto, in una schermata sola anche sul telefono: il titolo e sotto la lastra di vetro
   con nome, punti e azioni (scelta di Leonardo dell'08/10/2026: prima la lastra arrivava scorrendo). */

.apertura { position: relative; color: var(--wp--preset--color--bianco); }
.apertura__palco { position: relative; min-height: max(100svh, 600px); display: grid; align-items: end; }
.apertura__media { position: absolute; inset: 0; overflow: hidden; background: var(--wp--preset--color--inchiostro); }
.apertura__video { inline-size: 100%; block-size: 100%; object-fit: cover; object-position: 44% 50%; }
/* Velature solo dove c'è testo: la barra in alto, titolo e lastra in basso */
.apertura__media::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(to bottom, rgb(var(--wp--custom--rgb--notte) / 0.5) 0, rgb(var(--wp--custom--rgb--notte) / 0) 140px);
}
.apertura__velo {
  position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(to top, rgb(var(--wp--custom--rgb--notte) / 0.88) 0%, rgb(var(--wp--custom--rgb--notte) / 0.6) 34%, rgb(var(--wp--custom--rgb--notte) / 0) 66%);
}
.apertura__dentro {
  position: relative;
  display: grid; grid-template-columns: minmax(0, 1fr); justify-items: center; gap: clamp(20px, 3vh, 32px);
  padding-bottom: clamp(28px, 6vh, 64px); text-align: center;
}
.apertura h1 {
  font-size: clamp(2.5rem, 1rem + 4.4vw, 5.25rem); line-height: 0.96; letter-spacing: -0.04em;
  text-shadow: 0 2px 28px rgb(var(--wp--custom--rgb--notte) / 0.3);
}
.apertura h1 .riga { display: block; }
.apertura__lastra {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 20px 48px;
  inline-size: min(100%, 1040px); padding: clamp(20px, 2.4vw, 30px) clamp(20px, 2.8vw, 36px);
  text-align: left;
  border-radius: var(--wp--custom--raggio--grande);
  background: rgb(var(--wp--custom--rgb--notte) / 0.46);
  box-shadow: inset 0 0 0 1px rgb(var(--wp--custom--rgb--bianco) / 0.14), 0 2px 6px rgb(var(--wp--custom--rgb--notte) / 0.2), 0 32px 64px -28px rgb(var(--wp--custom--rgb--notte) / 0.75);
  -webkit-backdrop-filter: saturate(160%) blur(20px); backdrop-filter: saturate(160%) blur(20px);
}
.apertura__nome { margin: 0; font-size: 1.375rem; font-weight: 700; letter-spacing: -0.02em; }
.apertura__punti {
  display: flex; flex-direction: column; gap: 6px; list-style: none; margin: 10px 0 0; padding: 0;
  font-size: 1.0625rem; color: rgb(var(--wp--custom--rgb--bianco) / 0.92);
}
.apertura__punti li { display: inline-flex; align-items: center; gap: 8px; }
.apertura__punti li::before {
  content: ""; inline-size: 1.05em; block-size: 1.05em; flex: none; background: currentColor;
  -webkit-mask: url(../icone/spunta.svg) center / contain no-repeat; mask: url(../icone/spunta.svg) center / contain no-repeat;
}
.apertura__azioni { display: flex; flex-direction: column; align-items: flex-end; gap: 10px; }
.apertura__pillole { display: flex; flex-wrap: wrap; gap: 12px; }
.apertura .avanti { min-height: 44px; color: var(--wp--preset--color--bianco); }

.apertura__pausa {
  position: absolute; right: var(--wp--preset--spacing--margine); bottom: clamp(28px, 6vh, 64px);
  inline-size: 48px; block-size: 48px; display: grid; place-items: center;
  border: 0; border-radius: 50%; cursor: pointer;
  background: rgb(var(--wp--custom--rgb--bianco) / 0.18); color: var(--wp--preset--color--bianco);
  box-shadow: inset 0 0 0 1px rgb(var(--wp--custom--rgb--bianco) / 0.32);
  -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px);
  transition: background-color 0.2s;
}
.apertura__pausa:hover { background: rgb(var(--wp--custom--rgb--bianco) / 0.3); }
.apertura__pausa .icona { inline-size: 20px; block-size: 20px; --icona: url(../icone/pausa.svg); }
.apertura__pausa.in-pausa .icona { --icona: url(../icone/play.svg); }

/* L'arrivo: titolo e lastra ci sono già; la lastra sale una volta sola, poi più niente */
@media (prefers-reduced-motion: no-preference) {
  .apertura__lastra { animation: sale 0.9s var(--wp--custom--uscita) 0.2s both; }
  @keyframes sale { from { opacity: 0; transform: translateY(28px); } }
}

/* Il momento: uscendo, il video (e nelle pagine interne la foto della soglia) si raccoglie in un riquadro con gli angoli morbidi */
@supports (animation-timeline: view()) and (timeline-scope: --a) {
  @media (prefers-reduced-motion: no-preference) {
    body { timeline-scope: --apertura, --soglia; }
    .apertura { view-timeline-name: --apertura; }
    .soglia { view-timeline-name: --soglia; }
    .apertura__media { animation: raccogli linear both; animation-timeline: --apertura; animation-range: exit 0% exit 75%; }
    .soglia__media { animation: raccogli linear both; animation-timeline: --soglia; animation-range: exit 0% exit 75%; }
    /* la barra scura segue lo stesso bordo, senza sporgere sul fondo */
    html.scorsa:not(.oltre-apertura) .barra::before {
      animation: raccogli-barra linear both; animation-timeline: --apertura; animation-range: exit 0% exit 75%;
    }
    html:has(.soglia).scorsa:not(.oltre-apertura) .barra::before { animation-timeline: --soglia; }
    @keyframes raccogli {
      to { clip-path: inset(0 var(--wp--preset--spacing--margine) 0 var(--wp--preset--spacing--margine) round 0 0 var(--wp--custom--raggio--grande) var(--wp--custom--raggio--grande)); }
    }
    @keyframes raccogli-barra {
      to { clip-path: inset(0 var(--wp--preset--spacing--margine)); }
    }
  }
}

/* ---------- Sezioni e gruppi ---------- */

.sezione { padding-block: var(--wp--preset--spacing--sezione); }
.sezione--bianca { background: var(--wp--preset--color--bianco); }
.sezione__testa { display: grid; gap: 16px; margin-bottom: clamp(32px, 3vw, 48px); }
.sezione__testa h2 { max-width: 26ch; }
.sezione__frase { color: var(--wp--preset--color--secondario); max-width: 60ch; }
.sezione__piede { margin-top: 24px; }

.gruppo { background: var(--wp--preset--color--bianco); border-radius: var(--wp--custom--raggio--grande); box-shadow: var(--wp--preset--shadow--gruppo); }
.sezione--bianca .gruppo { background: var(--wp--preset--color--fondo); box-shadow: none; }

.coppia { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--wp--preset--spacing--gap); }

/* Lista raggruppata, come nelle Impostazioni di iOS */
.lista { margin: 0; padding: 4px var(--wp--preset--spacing--dentro); }
.lista > div { display: grid; gap: 4px; padding: 16px 0; border-bottom: 1px solid var(--wp--preset--color--linea); }
.lista > div:last-child { border-bottom: 0; }
.lista dd { margin: 0; }

/* Passione per Catania: parole e foto finiscono insieme */
.passione { display: flex; flex-direction: column; gap: 24px; }
.firma { display: flex; align-items: center; gap: 12px; margin-top: auto; font-weight: 700; }
.firma__volto { inline-size: 48px; block-size: 48px; border-radius: 50%; object-fit: cover; object-position: 50% 15%; }
.riquadro { position: relative; margin: 0; overflow: hidden; min-height: 440px; display: flex; align-items: flex-end; color: var(--wp--preset--color--bianco); }
.riquadro__foto { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.riquadro__foto.wp-block-image img { width: 100%; height: 100%; object-fit: cover; }
.riquadro::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(to top, rgb(var(--wp--custom--rgb--notte) / 0.75), rgb(var(--wp--custom--rgb--notte) / 0) 50%);
}
.riquadro__testo { position: relative; z-index: 1; padding: var(--wp--preset--spacing--dentro); }
.riquadro__testo h3 { font-size: clamp(1.75rem, 1.3rem + 1.4vw, 2.5rem); letter-spacing: -0.03em; }

/* Striscia: invito alla consulenza */
.striscia {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px var(--wp--preset--spacing--gap); align-items: center;
  margin-top: var(--wp--preset--spacing--gap); padding: var(--wp--preset--spacing--dentro);
}
.striscia h2 { font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem); max-width: 26ch; }
.striscia > div p { margin-top: 10px; color: var(--wp--preset--color--secondario); max-width: 62ch; }

/* Servizi: elenco raggruppato a sinistra, dettaglio a destra; a mobile si apre sotto la voce */
.servizi > .wp-block-accordion, .servizi .wp-block-accordion-item { display: contents; }
.servizi { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); column-gap: var(--wp--preset--spacing--gap); align-items: start; }
.servizi__intestazione { grid-column: 1; margin: 0 0 10px 20px; font-size: var(--wp--preset--font-size--piccolo); color: var(--wp--preset--color--secondario); }
.servizi .wp-block-accordion-heading { grid-column: 1; margin: 0; font-size: inherit; letter-spacing: 0; }
.servizi .wp-block-accordion-heading__toggle {
  width: 100%; min-height: 56px; display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 14px 20px; border: 0; background: var(--wp--preset--color--fondo); color: var(--wp--preset--color--inchiostro);
  font: 600 1.0625rem/1.3 var(--wp--preset--font-family--atkinson); letter-spacing: -0.01em; text-align: left; cursor: pointer;
  transition: background-color 0.2s, color 0.2s;
}
.servizi .wp-block-accordion-item:not(:first-child) .wp-block-accordion-heading__toggle { box-shadow: inset 0 1px 0 var(--wp--preset--color--linea); }
.servizi .wp-block-accordion-item:first-child .wp-block-accordion-heading__toggle { border-radius: var(--wp--custom--raggio--medio) var(--wp--custom--raggio--medio) 0 0; }
.servizi .wp-block-accordion-item:last-child .wp-block-accordion-heading__toggle { border-radius: 0 0 var(--wp--custom--raggio--medio) var(--wp--custom--raggio--medio); }
.servizi .wp-block-accordion-heading__toggle:hover { background: var(--wp--preset--color--grigio); }
.servizi .wp-block-accordion-heading__toggle[aria-expanded="true"] { background: var(--wp--preset--color--inchiostro); color: var(--wp--preset--color--bianco); box-shadow: none; }
.servizi .wp-block-accordion-heading__toggle:hover .wp-block-accordion-heading__toggle-title { text-decoration: none; }
.servizi .wp-block-accordion-heading__toggle::after {
  content: ""; inline-size: 1em; block-size: 1em; flex: none; opacity: 0.6; background: currentColor;
  -webkit-mask: url(../icone/avanti.svg) center / contain no-repeat; mask: url(../icone/avanti.svg) center / contain no-repeat;
  transition: transform 0.3s var(--wp--custom--uscita);
}
.servizi .wp-block-accordion-heading__toggle[aria-expanded="true"]::after { opacity: 1; }
.servizi .wp-block-accordion-panel { grid-column: 2; grid-row: 1 / span 10; }
.servizi .wp-block-accordion-panel img { inline-size: 100%; block-size: auto; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--wp--custom--raggio--grande); }
.servizi__titolo { margin-top: 24px; font-size: var(--wp--preset--font-size--h-3); font-weight: 700; letter-spacing: -0.02em; line-height: 1.2; text-wrap: balance; }
.servizi .wp-block-accordion-panel .servizi__titolo + p { margin-top: 12px; max-width: 62ch; }

/* Ciao! Sono Francesco: ritratto e parole finiscono insieme */
.ritratto { position: relative; margin: 0; overflow: hidden; min-height: 420px; }
.ritratto img, .ritratto.wp-block-image img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 15%; }
.ciao { display: flex; flex-direction: column; gap: 24px; padding: var(--wp--preset--spacing--dentro); }
.ciao__parole { max-width: 60ch; }
.ciao__azione { margin-top: auto; }

/* Sei motivi: titolo fermo a sinistra, elenco raggruppato a destra */
.coppia--motivi { align-items: start; }
.sezione__testa--ferma { position: sticky; top: calc(var(--wp--custom--barra) + 32px); margin-bottom: 0; }
.motivi { list-style: none; margin: 0; padding: 0 var(--wp--preset--spacing--dentro); }
.motivo {
  display: grid; grid-template-columns: minmax(0, 11rem) minmax(0, 1fr); gap: 6px 24px; align-items: baseline;
  padding: 24px 0; border-bottom: 1px solid var(--wp--preset--color--linea);
}
.motivo:last-child { border-bottom: 0; }
.motivo :is(h3, h4) { margin: 0; font-size: 1.125rem; font-weight: 700; letter-spacing: -0.01em; line-height: 1.2; text-wrap: balance; }
.motivo p { color: var(--wp--preset--color--secondario); }

/* Pausa: Catania a tutta larghezza fra due sezioni */
.pausa { margin: 0; }
.pausa img, .pausa.wp-block-image img { width: 100%; height: clamp(300px, 40vw, 600px); object-fit: cover; object-position: 50% 60%; }

/* News: elenco, tutta la riga porta all'articolo */
.notizie { list-style: none; margin: 0; padding: 0 var(--wp--preset--spacing--dentro); }
:is(.notizia, .notizie .wp-block-post) {
  position: relative; display: grid; grid-template-columns: 10rem minmax(0, 1fr) auto; gap: 6px 32px; align-items: baseline;
  padding: 26px 0; border-bottom: 1px solid var(--wp--preset--color--linea);
}
:is(.notizia, .notizie .wp-block-post):last-child { border-bottom: 0; }
:is(.notizia, .notizie .wp-block-post) time { font-size: var(--wp--preset--font-size--piccolo); color: var(--wp--preset--color--secondario); }
:is(.notizia, .notizie .wp-block-post) :is(h2, h3) { font-size: 1.25rem; letter-spacing: -0.015em; line-height: 1.2; }
:is(.notizia, .notizie .wp-block-post) :is(h2, h3) a { text-decoration: none; }
:is(.notizia, .notizie .wp-block-post) :is(h2, h3) a::after { content: ""; position: absolute; inset: 0; border-radius: var(--wp--custom--raggio--campo); }
:is(.notizia, .notizie .wp-block-post):hover :is(h2, h3) a { text-decoration: underline; }
:is(.notizia, .notizie .wp-block-post) :is(h2, h3) a:focus-visible { outline: none; }
:is(.notizia, .notizie .wp-block-post):has(a:focus-visible) { outline: 3px solid var(--wp--preset--color--inchiostro); outline-offset: 6px; border-radius: var(--wp--custom--raggio--campo); }
:is(.notizia, .notizie .wp-block-post) p { margin-top: 6px; color: var(--wp--preset--color--secondario); max-width: 70ch; }
.notizia__leggi { display: inline-flex; align-items: center; gap: 2px; font-size: var(--wp--preset--font-size--piccolo); font-weight: 600; white-space: nowrap; }
.notizia__leggi .icona { inline-size: 1em; block-size: 1em; }

/* Testimonianze: parole e nome, niente volti di stock */
.testimonianze { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--wp--preset--spacing--gap); }
.testimonianza { display: flex; flex-direction: column; gap: 24px; margin: 0; padding: var(--wp--preset--spacing--dentro); }
.testimonianza blockquote { margin: 0; }
.testimonianza figcaption { display: flex; align-items: center; gap: 12px; margin-top: auto; font-size: var(--wp--preset--font-size--piccolo); color: var(--wp--preset--color--secondario); }
.testimonianza figcaption strong { display: block; color: var(--wp--preset--color--inchiostro); }
.iniziali {
  inline-size: 44px; block-size: 44px; flex: none; display: grid; place-items: center;
  border-radius: 50%; background: var(--wp--preset--color--inchiostro); color: var(--wp--preset--color--bianco); font-weight: 700; font-size: 0.9375rem;
}

/* Contatti: il finale in un gruppo blu notte, con una luce */
.contatto {
  display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 32px clamp(32px, 5vw, 72px); align-items: center;
  padding: clamp(32px, 5vw, 64px);
  border-radius: var(--wp--custom--raggio--grande);
  background:
    radial-gradient(110% 90% at 88% -10%, rgb(var(--wp--custom--rgb--luce) / 0.22), rgb(var(--wp--custom--rgb--luce) / 0) 60%),
    var(--wp--preset--color--inchiostro);
  color: var(--wp--preset--color--fondo);
  box-shadow: var(--wp--preset--shadow--gruppo);
}
.contatto h2 { font-size: var(--wp--preset--font-size--apertura); letter-spacing: -0.035em; }
.contatto__azioni { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.lista--notte { padding: 0; }
.lista--notte > div { border-color: rgb(var(--wp--custom--rgb--bianco) / 0.14); }
.lista--notte dt { display: flex; align-items: center; gap: 10px; color: var(--wp--preset--color--su-notte-2); font-size: var(--wp--preset--font-size--piccolo); }
.lista--notte dt .icona { inline-size: 20px; block-size: 20px; }
.lista--notte dd { padding-left: 30px; font-size: 1.25rem; }
.lista--notte a { color: var(--wp--preset--color--bianco); }

/* Piede */
.piede { padding: 8px 0 48px; font-size: 0.9375rem; color: var(--wp--preset--color--secondario); }
.piede__colonne {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px var(--wp--preset--spacing--gap);
  padding-top: 32px; border-top: 1px solid var(--wp--preset--color--linea);
}
.piede__titolo { margin-bottom: 12px; font-size: 0.9375rem; letter-spacing: 0; line-height: 1.3; color: var(--wp--preset--color--inchiostro); }
.piede__colonne ul { display: grid; gap: 8px; list-style: none; margin: 0; padding: 0; }
.piede__fondo {
  display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px 32px;
  margin-top: 32px; padding-top: 20px; border-top: 1px solid var(--wp--preset--color--linea);
}
.piede__fondo ul { display: flex; flex-wrap: wrap; gap: 8px 24px; list-style: none; margin: 0; padding: 0; }
.piede a { color: var(--wp--preset--color--inchiostro); }

/* Barra del pollice, solo a mobile e solo dopo il video */
.pollice { display: none; }

/* ==========================================================================
   Parte 2
   ========================================================================== */

/* ==========================================================================
   Pagine interne: la soglia (DESIGN.md, «Soglia»). Catania a tutta larghezza sotto la barra, come il video
   della Home, e la stessa lastra di vetro con titolo, frase e azioni della pagina (scelta di Leonardo
   dell'08/10/2026, variante B). Alta nelle pagine di racconto (Servizi, Chi Siamo); bassa dove c'è subito
   un compito o una lettura (Contatti, Area Riservata, Preventivo, News, articoli). Testi legali, archivi,
   ricerca e 404 restano sul fondo chiaro.
   ========================================================================== */

.soglia { position: relative; isolation: isolate; display: grid; min-height: clamp(560px, 82svh, 860px); color: var(--wp--preset--color--bianco); }
.soglia--bassa { min-height: clamp(420px, 58svh, 600px); }
.soglia__media { position: absolute; inset: 0; z-index: -1; margin: 0; overflow: hidden; background: var(--wp--preset--color--inchiostro); }
.soglia__media.wp-block-image img { inline-size: 100%; block-size: 100%; object-fit: cover; }
/* Velature solo dove serve: sotto la barra e, leggera, dietro la lastra */
.soglia__media::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background:
    linear-gradient(to bottom, rgb(var(--wp--custom--rgb--notte) / 0.55) 0, rgb(var(--wp--custom--rgb--notte) / 0) 160px),
    linear-gradient(to top, rgb(var(--wp--custom--rgb--notte) / 0.55) 0%, rgb(var(--wp--custom--rgb--notte) / 0) 50%);
}
.soglia__dentro { display: grid; align-content: end; padding: calc(var(--wp--custom--barra) + 48px) 0 clamp(32px, 6vh, 64px); }
/* Il vetro della lastra della Home, largo quanto il contenitore: i bordi cadono su quelli dei gruppi sotto */
.soglia__lastra {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 24px 48px;
  padding: clamp(24px, 3vw, 40px) clamp(24px, 3.2vw, 44px);
  border-radius: var(--wp--custom--raggio--grande);
  background: rgb(var(--wp--custom--rgb--notte) / 0.46);
  box-shadow: inset 0 0 0 1px rgb(var(--wp--custom--rgb--bianco) / 0.14), 0 2px 6px rgb(var(--wp--custom--rgb--notte) / 0.2), 0 32px 64px -28px rgb(var(--wp--custom--rgb--notte) / 0.75);
  -webkit-backdrop-filter: saturate(160%) blur(20px); backdrop-filter: saturate(160%) blur(20px);
}
.soglia__testo { display: grid; justify-items: start; gap: 14px; }
.soglia h1 { font-size: var(--wp--preset--font-size--apertura); line-height: 0.98; letter-spacing: -0.04em; max-width: 18ch; }
.soglia--bassa h1 { font-size: clamp(2.25rem, 1.4rem + 2.8vw, 3.75rem); line-height: 1.04; letter-spacing: -0.035em; max-width: 22ch; }
.soglia__frase {
  max-width: 46ch;
  font-size: var(--wp--preset--font-size--frase); line-height: 1.35; letter-spacing: -0.012em; text-wrap: balance;
  color: rgb(var(--wp--custom--rgb--bianco) / 0.86);
}
.soglia--bassa .soglia__frase { max-width: 64ch; font-size: var(--wp--preset--font-size--corpo); line-height: 1.5; letter-spacing: 0; text-wrap: pretty; }
.soglia__firma { margin-top: 4px; font-size: 1.125rem; }
.soglia__firma .firma__volto { box-shadow: 0 0 0 2px rgb(var(--wp--custom--rgb--bianco) / 0.55); }
.soglia__azioni { flex-direction: column; align-items: stretch; }
.soglia__azioni .wp-block-button__link { display: flex; inline-size: 100%; }
.soglia .avanti { color: var(--wp--preset--color--bianco); }
.soglia__meta { display: flex; flex-wrap: wrap; gap: 0 0.35em; color: rgb(var(--wp--custom--rgb--bianco) / 0.8); font-size: var(--wp--preset--font-size--piccolo); }

/* Il primo gruppo (Contatti, Area Riservata, Preventivo) o il testo dell'articolo non attaccano la soglia */
.soglia + .sezione--senza-cima, .soglia + .testo { padding-top: clamp(40px, 5vw, 72px); }

/* Testi legali, archivi, ricerca e 404: il titolo sul fondo chiaro */
.testa { padding: calc(var(--wp--custom--barra) + clamp(48px, 7vw, 104px)) 0 clamp(32px, 4vw, 56px); }
.testa h1 { font-size: var(--wp--preset--font-size--apertura); max-width: 18ch; letter-spacing: -0.035em; }
/* La 404: solo la testata, con il collegamento staccato dal titolo e aria prima del piede. */
.testa--sola { padding-bottom: clamp(96px, 12vw, 160px); }
.testa--sola .avanti { margin-top: 24px; }

.avanti--indietro:hover .icona { transform: translateX(-3px); }

.sezione--senza-cima { padding-top: 0; }
.sezione--stretta { padding-block: clamp(24px, 3vw, 40px) var(--wp--preset--spacing--sezione); }
.contenitore--lettura { width: min(100% - 2 * var(--wp--preset--spacing--margine), 760px); }
.coppia--testo-prima, .coppia--modulo, .coppia--ritratto { align-items: start; }
.coppia--ritratto { align-items: center; }

/* Lettura: articoli e testi lunghi */
.testo { padding-bottom: clamp(48px, 5vw, 72px); }
/* div: la classe cmplz-document la free di Complianz la mette anche sul body della cookie policy. */
.testo > * + *, div.cmplz-document > * + * { margin-top: 1em; }
.testo h2 { margin-top: 2em; font-size: clamp(1.5rem, 1.25rem + 0.8vw, 1.875rem); letter-spacing: -0.02em; line-height: 1.15; }
.testo h3 { margin-top: 1.8em; font-size: 1.3125rem; letter-spacing: -0.015em; line-height: 1.2; }
.testo :is(h2, h3) + * { margin-top: 0.6em; }
.testo :is(ul, ol) { padding-left: 1.3em; }
.testo li + li, .testo li > ul { margin-top: 0.45em; }
.testo li::marker { color: var(--wp--preset--color--secondario); }
.testo strong { font-weight: 700; }

/* Chi siamo: il ritratto e le sue parole */
.citazione { margin: 0; }
.citazione blockquote { margin: 0; }
.citazione blockquote p {
  font-size: clamp(1.5rem, 1.1rem + 1.4vw, 2.375rem); font-weight: 600; line-height: 1.25; letter-spacing: -0.022em;
  text-wrap: balance;
}
.citazione figcaption { margin-top: 24px; font-weight: 700; }
.racconto { display: grid; gap: 18px; max-width: 64ch; }
.racconto p + p { margin-top: 6px; }

/* Strati: Catania sotto, il gruppo bianco che sale sopra la foto */
.strati { padding-bottom: var(--wp--preset--spacing--sezione); }
.strati__foto { margin: 0; }
.strati__foto img, .strati__foto.wp-block-image img { width: 100%; height: clamp(320px, 46vw, 680px); object-fit: cover; object-position: 50% 55%; }
.motivi--strato { position: relative; margin-top: calc(-1 * clamp(96px, 12vw, 200px)); }
.motivi--strato .motivo { grid-template-columns: minmax(0, 19rem) minmax(0, 1fr); }

/* Modulo di contatto: campi chiari dentro un gruppo, etichette sempre visibili */
.modulo, .modulo-cornice { padding: var(--wp--preset--spacing--dentro); }
.modulo__griglia { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 16px; }
.campo { display: grid; gap: 8px; align-content: start; margin: 0; }
.campo + .campo { margin-top: 0; }
.campo--largo { grid-column: 1 / -1; }
.campo label, .campo legend, .campo__etichetta { font-size: 0.9375rem; font-weight: 700; letter-spacing: -0.005em; }
.campo__obbligo { margin-left: 4px; font-weight: 400; color: var(--wp--preset--color--secondario); }
.campo input:not([type="checkbox"], [type="radio"], [type="file"]), .campo select, .campo textarea {
  width: 100%; min-height: 52px; padding: 0 16px;
  border: 0; border-radius: var(--wp--custom--raggio--campo); background: var(--wp--preset--color--fondo); color: var(--wp--preset--color--inchiostro);
  box-shadow: inset 0 0 0 1px var(--wp--preset--color--linea);
  font: 400 1.0625rem/1.4 var(--wp--preset--font-family--atkinson);
  transition: box-shadow 0.2s, background-color 0.2s;
}
.sezione--bianca .campo :is(input, select, textarea) { background: var(--wp--preset--color--bianco); }
.campo textarea { min-height: 140px; padding: 14px 16px; resize: vertical; }
.campo :is(input, select, textarea)::placeholder { color: var(--wp--preset--color--secondario); opacity: 1; }
.campo :is(input, select, textarea):hover { box-shadow: inset 0 0 0 1px rgb(var(--wp--custom--rgb--inchiostro) / 0.28); }
.campo :is(input, select, textarea):focus-visible { outline: none; box-shadow: inset 0 0 0 1px var(--wp--preset--color--inchiostro), 0 0 0 4px rgb(var(--wp--custom--rgb--inchiostro) / 0.16); }
.campo [aria-invalid="true"] { box-shadow: inset 0 0 0 2px var(--wp--preset--color--bordeaux) !important; }
.campo__errore { color: var(--wp--preset--color--bordeaux); font-size: 0.9375rem; font-weight: 600; }
.campo__errore:empty { display: none; }
.campo__scelta { position: relative; display: block; }
.campo__scelta select { appearance: none; padding-right: 48px; cursor: pointer; }
.campo__scelta .icona { position: absolute; right: 16px; top: 50%; translate: 0 -50%; pointer-events: none; color: var(--wp--preset--color--secondario); }
.campo--spunta { grid-template-columns: auto minmax(0, 1fr); column-gap: 12px; align-items: start; margin-top: 22px; }
.campo--spunta input { inline-size: 22px; block-size: 22px; margin: 2px 0 0; accent-color: var(--wp--preset--color--inchiostro); }
.campo--spunta label { font-weight: 400; font-size: 1rem; line-height: 1.45; color: var(--wp--preset--color--secondario); }
.campo--spunta label a { color: var(--wp--preset--color--inchiostro); }
.campo--spunta .campo__errore { grid-column: 2; }
.modulo__invio { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; margin-top: 28px; }
.modulo__esito { color: var(--wp--preset--color--secondario); font-size: 1rem; }
.modulo__esito:empty { display: none; }

/* Servizi: indice che resta in alto, sei capitoli con foto e due elenchi */
.indice {
  position: sticky; top: var(--wp--custom--barra); z-index: 40;
  background: rgb(var(--wp--custom--rgb--fondo) / 0.82);
  -webkit-backdrop-filter: saturate(180%) blur(20px); backdrop-filter: saturate(180%) blur(20px);
  box-shadow: 0 1px 0 var(--wp--preset--color--linea);
}
.indice ul {
  display: flex; gap: 6px; list-style: none; margin: 0; padding: 10px 0;
  overflow-x: auto; scrollbar-width: none; scroll-snap-type: x proximity;
}
.indice ul::-webkit-scrollbar { display: none; }
.indice a {
  display: inline-flex; align-items: center; min-height: 40px; padding: 0 16px; scroll-snap-align: start;
  border-radius: var(--wp--custom--raggio--pillola); font-size: 0.9375rem; font-weight: 600; white-space: nowrap; text-decoration: none;
  transition: background-color 0.2s, color 0.2s;
}
.indice a:hover { background: rgb(var(--wp--custom--rgb--inchiostro) / 0.07); }
.indice a[aria-current="true"] { background: var(--wp--preset--color--inchiostro); color: var(--wp--preset--color--bianco); }

.capitoli { display: grid; gap: clamp(72px, 9vw, 140px); padding-block: var(--wp--preset--spacing--sezione); }
.capitolo {
  display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(32px, 5vw, 72px); align-items: start;
  scroll-margin-top: calc(var(--wp--custom--barra) + 76px);
}
.capitolo:nth-child(even) .capitolo__foto { order: 2; }
.capitolo__foto { position: sticky; top: calc(var(--wp--custom--barra) + 92px); margin: 0; overflow: hidden; }
.capitolo__foto img { inline-size: 100%; block-size: auto; aspect-ratio: 1; object-fit: cover; }
.capitolo h2 { font-size: var(--wp--preset--font-size--titolo); }
.capitolo__lungo { margin-top: 14px; font-size: var(--wp--preset--font-size--h-3); font-weight: 600; line-height: 1.25; letter-spacing: -0.018em; text-wrap: balance; }
/* WordPress 7.1 dà la classe wp-block-paragraph a ogni paragrafo: niente :not([class]) */
.capitolo__testo > p:not(.capitolo__lungo, .capitolo__azione) { margin-top: 18px; max-width: 60ch; color: var(--wp--preset--color--secondario); }
.capitolo__elenchi { display: grid; gap: 28px; margin-top: 36px; }
.capitolo__azione { margin-top: 32px; }
/* Due capitoli cambiano scala: foto larga sopra, testo ed elenchi affiancati sotto */
.capitolo--largo { grid-template-columns: minmax(0, 1fr); gap: clamp(28px, 3vw, 44px); }
.capitolo--largo .capitolo__foto { position: static; order: 0 !important; }
.capitolo--largo .capitolo__foto img { aspect-ratio: 21 / 9; }
.capitolo--largo .capitolo__testo { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); column-gap: clamp(32px, 5vw, 72px); align-items: start; }
.capitolo--largo .capitolo__testo > * { grid-column: 1; }
.capitolo--largo .capitolo__elenchi { grid-column: 2; grid-row: 1 / span 6; margin-top: 0; }
.elenco__titolo { margin: 0 0 10px 20px; font-size: 0.9375rem; font-weight: 700; letter-spacing: 0; color: var(--wp--preset--color--secondario); }
.elenco__voci { list-style: none; margin: 0; padding: 4px 22px; font-size: var(--wp--preset--font-size--corpo); color: var(--wp--preset--color--secondario); }
.elenco__voci li { padding: 14px 0; border-bottom: 1px solid var(--wp--preset--color--linea); line-height: 1.45; }
.elenco__voci li:last-child { border-bottom: 0; }
.elenco__voci strong { color: var(--wp--preset--color--inchiostro); font-weight: 700; }
.elenchi-intro { display: grid; gap: 36px; }
.elenchi-intro .motivo { grid-template-columns: minmax(0, 12rem) minmax(0, 1fr); }

/* News: filtri per argomento sopra l'elenco */
.filtri { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0 0 14px; padding: 0; }
.filtro {
  min-height: 40px; padding: 0 16px; border: 0; border-radius: var(--wp--custom--raggio--pillola); cursor: pointer;
  background: var(--wp--preset--color--bianco); color: var(--wp--preset--color--inchiostro); box-shadow: inset 0 0 0 1px var(--wp--preset--color--linea);
  font: 600 0.9375rem/1 var(--wp--preset--font-family--atkinson);
  transition: background-color 0.2s, color 0.2s, box-shadow 0.2s;
}
.filtro:hover { box-shadow: inset 0 0 0 1px rgb(var(--wp--custom--rgb--inchiostro) / 0.3); }
.filtro[aria-pressed="true"] { background: var(--wp--preset--color--inchiostro); color: var(--wp--preset--color--bianco); box-shadow: none; }
.filtri__conto { margin-bottom: 16px; color: var(--wp--preset--color--secondario); font-size: var(--wp--preset--font-size--piccolo); }
:is(.notizia, .notizie .wp-block-post)[hidden] { display: none; }
:is(.notizia, .notizie .wp-block-post) .notizia__categorie { margin-top: 10px; font-size: 0.9375rem; }

/* Articolo: invito finale */
.invito { display: grid; gap: 14px; padding: var(--wp--preset--spacing--dentro); }
.invito h2 { font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem); }
.invito p:not(:last-child) { color: var(--wp--preset--color--secondario); }
.invito p { margin: 0; }
.invito p:last-child, .invito > .wp-block-buttons { margin-top: 10px; }

/* Testi legali (Complianz): indice fermo a sinistra, lettura a destra */
.legale {
  display: grid; grid-template-columns: minmax(0, 16rem) minmax(0, 1fr); gap: clamp(32px, 5vw, 80px); align-items: start;
  padding-bottom: var(--wp--preset--spacing--sezione);
}
.legale__indice { position: sticky; top: calc(var(--wp--custom--barra) + 32px); }
.legale__indice h2 { margin-bottom: 12px; font-size: 0.9375rem; letter-spacing: 0; color: var(--wp--preset--color--secondario); }
.legale__indice ol { list-style: none; margin: 0; padding: 0; }
.legale__indice a { display: block; padding: 7px 0; font-size: 0.9375rem; line-height: 1.35; text-decoration: none; }
.legale__indice a:hover { text-decoration: underline; }
.testo--legale { max-width: 72ch; font-size: 1.125rem; }
.testo--legale h2 { scroll-margin-top: calc(var(--wp--custom--barra) + 24px); }
.testo--legale h2:first-of-type { margin-top: 1.2em; }
.testo--legale details { margin-top: 12px; border-radius: var(--wp--custom--raggio--medio); background: var(--wp--preset--color--bianco); box-shadow: var(--wp--preset--shadow--gruppo); }
.testo--legale summary { padding: 18px 20px; cursor: pointer; list-style: none; }
.testo--legale summary::-webkit-details-marker { display: none; }
.testo--legale summary h3 { margin: 0; font-size: 1.1875rem; }
.testo--legale summary p { margin-top: 2px; font-size: 1rem; color: var(--wp--preset--color--secondario); }
.testo--legale details > :not(summary) { padding: 0 20px; }
.testo--legale details[open] { padding-bottom: 20px; }
.testo--legale details h4 { margin: 18px 0 6px; font-size: 1rem; }
.testo--legale details h5 { margin: 0; font-size: 0.9375rem; font-weight: 400; color: var(--wp--preset--color--secondario); }
.testo--legale .cookies-per-purpose { display: grid; grid-template-columns: minmax(0, 7rem) minmax(0, 1fr); gap: 0 16px; font-size: 1rem; }
.testo--legale .cookies-per-purpose > div { padding: 6px 0; }
.testo--legale .name-header, .testo--legale .name { border-top: 1px solid var(--wp--preset--color--linea); padding-top: 12px !important; }
.testo--legale .purpose { grid-column: 1 / -1; }
/* I nomi dei cookie sono chiavi lunghe anche senza link (Site Kit, 550px): vanno a capo dove serve. */
.testo--legale .cookies-per-purpose :is(.name, a) { overflow-wrap: anywhere; }

/* Area riservata: la ricerca prima di tutto */
.accesso { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); overflow: hidden; }
.accesso__foto { margin: 0; }
.accesso__foto img, .accesso__foto.wp-block-image img { inline-size: 100%; block-size: 100%; min-height: 320px; object-fit: cover; }
.accesso__modulo { display: grid; gap: 20px; align-content: center; padding: var(--wp--preset--spacing--dentro); }
.accesso__modulo h2 { font-size: clamp(1.75rem, 1.3rem + 1.4vw, 2.5rem); }
.campo__cerca { position: relative; display: block; }
.campo__cerca .icona { position: absolute; left: 16px; top: 50%; translate: 0 -50%; color: var(--wp--preset--color--secondario); pointer-events: none; }
.campo__cerca input { padding-left: 48px !important; }
.campo__cerca input::-webkit-search-decoration { -webkit-appearance: none; }
.spunte { list-style: none; margin: 0; padding: 4px var(--wp--preset--spacing--dentro); }
.spunte li { position: relative; padding: 16px 0 16px 34px; border-bottom: 1px solid var(--wp--preset--color--linea); line-height: 1.45; }
.spunte li:last-child { border-bottom: 0; }
.spunte li::before {
  content: ""; position: absolute; left: 4px; top: 1.32em; width: 13px; height: 7px;
  border: solid var(--wp--preset--color--inchiostro); border-width: 0 0 2.4px 2.4px; border-radius: 1px; rotate: -45deg;
}

/* Contatti: la mappa si carica solo se la chiedi */
.contatto--pagina h2 { font-size: var(--wp--preset--font-size--titolo); }
.contatto--pagina .contatto__testa > p { margin-top: 16px; color: var(--wp--preset--color--su-notte-2); max-width: 58ch; }
.contatto--pagina .contatto__testa a:not(.pillola) { color: var(--wp--preset--color--bianco); }
.mappa { position: relative; display: grid; align-items: end; min-height: 420px; margin: var(--wp--preset--spacing--gap) 0 0; overflow: hidden; color: var(--wp--preset--color--bianco); }
.mappa__foto { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.mappa::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(to top, rgb(var(--wp--custom--rgb--notte) / 0.94) 0%, rgb(var(--wp--custom--rgb--notte) / 0.82) 40%, rgb(var(--wp--custom--rgb--notte) / 0.1) 85%); }
.mappa__invito { position: relative; z-index: 2; display: grid; gap: 10px; padding: var(--wp--preset--spacing--dentro); max-width: 60ch; }
.mappa__indirizzo { display: flex; align-items: center; gap: 8px; font-size: 1.25rem; font-weight: 700; }
.mappa__invito p:not(.mappa__indirizzo) { color: rgb(var(--wp--custom--rgb--bianco) / 0.85); }
.mappa__azioni { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 8px !important; }
.mappa--viva { min-height: 0; }
.mappa--viva::before { content: none; }
.mappa iframe { display: block; width: 100%; height: 480px; border: 0; }
.pillola--bianca, .is-style-bianca > .wp-block-button__link { background: var(--wp--preset--color--bianco); color: var(--wp--preset--color--inchiostro); }
.pillola--bianca:hover, .is-style-bianca > .wp-block-button__link:hover { background: var(--wp--preset--color--grigio); }

/* Preventivo: i sei passi a sinistra, il modulo a destra */
.coppia--preventivo { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); align-items: start; }
.preventivo__lato { position: sticky; top: calc(var(--wp--custom--barra) + 32px); display: grid; gap: 24px; }
.preventivo__foto { margin: 0; overflow: hidden; }
.preventivo__foto img { inline-size: 100%; block-size: auto; aspect-ratio: 16 / 10; object-fit: cover; }
.tappe { list-style: none; margin: 0; padding: 0 0 0 4px; }
.tappe li { display: flex; align-items: center; gap: 12px; min-height: 44px; color: var(--wp--preset--color--secondario); font-weight: 600; }
.tappe__numero {
  inline-size: 30px; block-size: 30px; flex: none; display: grid; place-items: center;
  border-radius: 50%; box-shadow: inset 0 0 0 1.5px currentColor; font-size: 0.875rem;
}
.tappe li.fatta { color: var(--wp--preset--color--inchiostro); }
.tappe li.fatta .tappe__numero { background: var(--wp--preset--color--grigio); box-shadow: none; }
.tappe li[aria-current="step"] { color: var(--wp--preset--color--inchiostro); font-weight: 700; }
.tappe li[aria-current="step"] .tappe__numero { background: var(--wp--preset--color--inchiostro); color: var(--wp--preset--color--bianco); box-shadow: none; }
.passo { min-width: 0; margin: 0; padding: 0; border: 0; }
.passo:focus { outline: none; }
.passo__titolo { padding: 0; font-size: var(--wp--preset--font-size--h-3); font-weight: 700; letter-spacing: -0.02em; }
.passo__frase { margin: 8px 0 26px; color: var(--wp--preset--color--secondario); }
.passo__conto { margin-bottom: 14px; color: var(--wp--preset--color--secondario); font-size: var(--wp--preset--font-size--piccolo); font-weight: 600; }
.passo__azioni { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; margin-top: 32px; }
.passo__azioni > :only-child { margin-left: auto; }
.campo--sino { border: 0; margin: 0; padding: 0; }
.campo--sino legend { padding: 0; margin-bottom: 8px; }
.segmenti { display: inline-flex; justify-self: start; padding: 3px; border-radius: var(--wp--custom--raggio--campo); background: var(--wp--preset--color--grigio); }
.segmenti label { position: relative; cursor: pointer; }
.segmenti input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.segmenti span { display: grid; place-items: center; min-width: 72px; min-height: 44px; padding: 0 18px; border-radius: var(--wp--custom--raggio--segmento); font-weight: 600; transition: background-color 0.2s, box-shadow 0.2s; }
.segmenti input:checked + span { background: var(--wp--preset--color--bianco); box-shadow: 0 1px 3px rgb(var(--wp--custom--rgb--inchiostro) / 0.16); }
.segmenti input:focus-visible + span { outline: 3px solid var(--wp--preset--color--inchiostro); outline-offset: 2px; }
.campo--spunte { border: 0; margin: 0; padding: 0; display: grid; gap: 4px; }
.campo--spunte legend { padding: 0; margin-bottom: 6px; }
.spunta { display: flex; align-items: center; gap: 12px; min-height: 44px; font-weight: 400 !important; font-size: 1.0625rem !important; cursor: pointer; }
.spunta input { inline-size: 22px; block-size: 22px; margin: 0; accent-color: var(--wp--preset--color--inchiostro); }
.allega {
  display: flex; align-items: center; gap: 10px; min-height: 56px; padding: 0 18px;
  border-radius: var(--wp--custom--raggio--campo); background: var(--wp--preset--color--fondo); box-shadow: inset 0 0 0 1px var(--wp--preset--color--linea);
  font-weight: 600 !important; cursor: pointer;
}
.allega:hover { box-shadow: inset 0 0 0 1px rgb(var(--wp--custom--rgb--inchiostro) / 0.28); }
.visivamente-nascosto:focus-visible + .allega { outline: 3px solid var(--wp--preset--color--inchiostro); outline-offset: 3px; }
.modulo--passi .campo--spunta { margin-top: 0; }

/* Catture a pagina intera: senza la barra fissa del pollice (tema.js, ?cattura=pagina) */
html.cattura .pollice { display: none !important; }

/* ---------- Larghezze ---------- */

@media (max-width: 1400px) {
  /* la lastra arriva al bordo: la pausa sale sotto la barra */
  .apertura__pausa { top: calc(var(--wp--custom--barra) + 16px); bottom: auto; }
}

@media (max-width: 1080px) {
  .menu { display: none; }
  .menu-corto { display: block; }
}

@media (max-width: 860px) {
  .apertura__lastra { grid-template-columns: minmax(0, 1fr); }
  .soglia__lastra { grid-template-columns: minmax(0, 1fr); align-items: stretch; }
  .soglia { min-height: clamp(520px, 86svh, 760px); }
  .soglia--bassa { min-height: clamp(400px, 62svh, 540px); }
  .apertura__azioni { align-items: stretch; }
  .apertura .avanti { justify-content: center; }
  .coppia, .striscia, .contatto, .testimonianze, .piede__colonne { grid-template-columns: minmax(0, 1fr); }
  .ritratto { min-height: 0; aspect-ratio: 4 / 5; }
  .riquadro { min-height: 320px; }
  .motivo { grid-template-columns: minmax(0, 1fr); }
  .sezione__testa--ferma { position: static; margin-bottom: 8px; }
  :is(.notizia, .notizie .wp-block-post) { grid-template-columns: minmax(0, 1fr); }
  .capitolo, .capitolo__elenchi, .legale, .accesso, .coppia--preventivo { grid-template-columns: minmax(0, 1fr); }
  .capitolo:nth-child(even) .capitolo__foto { order: 0; }
  .capitolo--largo .capitolo__testo { grid-template-columns: minmax(0, 1fr); }
  .capitolo--largo .capitolo__elenchi { grid-column: 1; grid-row: auto; margin-top: 32px; }
  .capitolo--largo .capitolo__foto img { aspect-ratio: 3 / 2; }
  .capitolo__foto, .preventivo__lato, .legale__indice { position: static; }
  .capitolo__foto img { aspect-ratio: 3 / 2; }
  .legale__indice { padding: 20px 22px; border-radius: var(--wp--custom--raggio--medio); background: var(--wp--preset--color--bianco); box-shadow: var(--wp--preset--shadow--gruppo); }
  .preventivo__foto { display: none; }
  .tappe { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; padding: 0; }
  .tappe li { flex: none; gap: 8px; padding-right: 8px; font-size: 0.9375rem; }
  .tappe li:not([aria-current]) .tappe__testo { display: none; }
  .accesso__foto img, .accesso__foto.wp-block-image img { min-height: 0; aspect-ratio: 16 / 9; }
  .motivi--strato .motivo, .elenchi-intro .motivo { grid-template-columns: minmax(0, 1fr); }

  /* Servizi: ogni voce si apre sotto di sé */
  .servizi { grid-template-columns: minmax(0, 1fr); }
  .servizi .wp-block-accordion-panel { grid-column: 1; grid-row: auto; padding: 4px 20px 24px; background: var(--wp--preset--color--fondo); }
  .servizi .wp-block-accordion-panel img { border-radius: 14px; }
  .servizi__titolo { margin-top: 18px; }
  .servizi .wp-block-accordion-heading__toggle::after { transform: rotate(90deg); }
  .servizi .wp-block-accordion-heading__toggle[aria-expanded="true"]::after { transform: rotate(-90deg); }
  .servizi .wp-block-accordion-item:last-child .wp-block-accordion-heading__toggle[aria-expanded="true"] { border-radius: 0; }
  .servizi .wp-block-accordion-item:last-child .wp-block-accordion-panel { border-radius: 0 0 var(--wp--custom--raggio--medio) var(--wp--custom--raggio--medio); }
}

@media (max-width: 640px) {
  :root { --wp--custom--barra: 60px; }
  .barra__area, .barra__chiama, .barra .barra__azioni { display: none; }
  .marchio__nome { font-size: 1rem; }
  .apertura__punti, .apertura .avanti { font-size: 1rem; }
  .soglia__dentro { padding-bottom: 24px; }
  .soglia__lastra { padding: 22px 20px; }
  .contatto { padding: 32px 20px; }
  .modulo__griglia { grid-template-columns: minmax(0, 1fr); }
  .modulo, .modulo-cornice { padding: 24px 18px; }
  .elenco__voci, .spunte { padding-inline: 18px; }
  .mappa { min-height: 480px; }
  .mappa__azioni .pillola, .modulo__invio .pillola, .passo__azioni .pillola { flex: 1 1 100%; white-space: normal; text-align: center; line-height: 1.25; padding: 12px 16px; }
  .passo__azioni > :only-child { margin-left: 0; }
  .segmenti { justify-self: stretch; }
  .segmenti label { flex: 1 1 0; }
  /* 2. pulsanti a tutta larghezza: il testo va a capo invece di uscire dal gruppo */
  .apertura__azioni .pillola, .contatto__azioni .pillola {
    flex: 1 1 100%; white-space: normal; text-align: center; line-height: 1.25; padding: 12px 16px;
  }
  /* nei blocchi la riga intera la prendono i contenitori; il padding resta alla pillola, qui sotto */
  .apertura__azioni :is(.wp-block-buttons, .wp-block-button), .contatto__azioni .wp-block-button { flex: 1 1 100%; }
  main :is(.pillola:not(.pillola--piccola), .wp-block-button:not(.piccola) > .wp-block-button__link) {
    display: block; max-width: 100%; min-height: 0; padding: 14px 18px;
    white-space: normal; text-wrap: balance; text-align: center; line-height: 1.3;
  }
  main .pillola:not(.pillola--piccola) .icona,
  main .wp-block-button:not(.piccola) > .wp-block-button__link::before { display: inline-block; vertical-align: -0.24em; margin-right: 8px; }

  .pollice {
    display: grid; grid-template-columns: 1fr 1fr; gap: 8px;
    position: fixed; left: 12px; right: 12px; bottom: calc(12px + env(safe-area-inset-bottom)); z-index: 60;
    padding: 8px; border-radius: var(--wp--custom--raggio--pillola);
    background: rgb(var(--wp--custom--rgb--bianco) / 0.82);
    -webkit-backdrop-filter: saturate(180%) blur(20px); backdrop-filter: saturate(180%) blur(20px);
    box-shadow: 0 2px 6px rgb(var(--wp--custom--rgb--inchiostro) / 0.1), 0 16px 40px -12px rgb(var(--wp--custom--rgb--inchiostro) / 0.35);
    transform: translateY(calc(100% + 24px)); visibility: hidden;
    transition: transform 0.45s var(--wp--custom--uscita), visibility 0s 0.45s;
  }
  .pollice .pillola { padding: 0 14px; }
  html.oltre-apertura .pollice { transform: none; visibility: visible; transition: transform 0.45s var(--wp--custom--uscita), visibility 0s; }
  body { padding-bottom: 88px; }
}

/* ---------- Movimento ridotto ---------- */

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


/* ---------- Blocchi del core: il layout lo fa questo file (theme.json ha blockGap null) ---------- */

.wp-block-buttons { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.wp-block-button { margin: 0; }
:where(.wp-block-image) { margin: 0; } /* toglie il margine del browser al figure; le classi del mockup (.soglia__media…) vincono */
.wp-block-image img { display: block; inline-size: 100%; block-size: auto; }
/* Una foto ritagliata dentro un blocco Immagine ha la classe sul figure: .X.wp-block-image img (0,2,1) batte
   .wp-block-image img del core (0,1,1) qualunque sia l'ordine dei fogli. */

/* «Avanti» accanto ai pulsanti: il paragrafo si centra sulla riga come il link del mockup */
.apertura__azioni > p.avanti { display: flex; align-items: center; }
:where(.wp-block-group) > * + * { margin-block-start: 0; }
.wp-site-blocks > * + * { margin-block-start: 0; }

/* News nei blocchi: la riga è un li.wp-block-post del post-template, le categorie sono link sopra la riga */
.wp-block-post-template.notizie { padding-inline: var(--wp--preset--spacing--dentro); }
.notizie .notizia__categorie { color: var(--wp--preset--color--secondario); }
.notizie .notizia__categorie a { position: relative; z-index: 1; text-decoration: none; }
.notizie .notizia__categorie a:hover { text-decoration: underline; }
.notizie__vuoto { padding: 26px var(--wp--preset--spacing--dentro); color: var(--wp--preset--color--secondario); }
.filtri:empty, .filtri__conto:empty { display: none; }
.paginazione { display: flex; justify-content: space-between; gap: 12px; margin-top: 24px; font-weight: 600; }
.legale__indice:is(:empty, [hidden]) { display: none; }
.legale:has(> .legale__indice:is(:empty, [hidden])) { grid-template-columns: minmax(0, 1fr); }
