
:root {
  --blu-950: #071a2e; 
  --blu-900: #0b2a47; 
  --blu-800: #10395f; 
  --blu-700: #17527f; 
  --blu-600: #1e6ba8; 
  --blu-500: #2e86c8; 
  --blu-300: #8fc2e8; 
  --blu-200: #c9dff3; 
  --blu-100: #e6f0fa; 
  --blu-50: #f3f7fb;
  --rosso-700: #9e0e19; 
  --rosso-600: #c1121f; 
  --rosso-400: #f08a92; 
  --rosso-50: #fdf3f4;
  --verde-600: #15803d; 
  --verde-400: #4ade80; 
  --ambra-600: #b45309; 
  --ambra-400: #fbbf24; 
  --grigio-900: #161b22; 
  --grigio-700: #434c59; 
  --grigio-600: #5a6472; 
  --grigio-400: #7e8a98; 
  --grigio-200: #e3e7ec;
  --bianco: #ffffff;
  --segnaposto-fondo: #fff4c2;
  --segnaposto-bordo: #b45309;
  --segnaposto-testo: #7c2d12;
  --color-testo: var(--grigio-700);
  --color-testo-forte: var(--blu-900);
  --color-testo-tenue: var(--grigio-600);
  --color-superficie: var(--bianco);
  --color-superficie-2: var(--blu-100);
  --color-carta: var(--bianco); 
  --color-bordo: var(--grigio-200);
  --color-bordo-forte: var(--grigio-400);
  --color-azione: var(--rosso-600);
  --color-azione-hover: var(--rosso-700);
  --color-link: var(--blu-700);
  --color-link-hover: var(--blu-600);
  --color-focus: var(--rosso-600);
  --color-accento: var(--blu-600); 
  --color-velo: var(--blu-50);
  --color-errore: var(--rosso-700);
  --color-errore-fondo: var(--rosso-50);
  --color-aperto: var(--verde-600);
  --color-in-chiusura: var(--ambra-600);
  --color-chiuso: var(--rosso-600);
  --font-titoli: "Source Serif 4 Variable", Georgia, "Times New Roman", serif;
  --font-testo: "Inter Variable", -apple-system, BlinkMacSystemFont, "Segoe UI",
    Roboto, system-ui, sans-serif;
  --font-mono: ui-monospace, "SFMono-Regular", Menlo, monospace;
  --testo--2: 0.875rem; 
  --testo--1: 1rem; 
  --testo-0: clamp(1rem, 0.97rem + 0.15vw, 1.0625rem); 
  --testo-1: clamp(1.0625rem, 1.02rem + 0.2vw, 1.1875rem);
  --testo-2: clamp(1.25rem, 1.15rem + 0.4vw, 1.5rem);
  --testo-3: clamp(1.625rem, 1.4rem + 0.9vw, 2.125rem);
  --testo-4: clamp(2rem, 1.6rem + 1.5vw, 2.75rem);
  --testo-5: clamp(2rem, 1.45rem + 1.6vw, 2.875rem); 
  --testo-numero: clamp(3.5rem, 2.5rem + 4vw, 5.5rem);
  --lh-titolo: 1.1;
  --lh-titolo-sm: 1.25;
  --lh-corpo: 1.6;
  --lh-compatta: 1.3;
  --tracking-titolo: -0.015em;
  --tracking-eyebrow: 0.08em;
  --peso-medio: 500;
  --peso-forte: 600;
  --peso-pieno: 700;
  --misura-titolo: 20ch;
  --sp-1: 0.25rem; --sp-2: 0.5rem; --sp-3: 0.75rem; --sp-4: 1rem; --sp-5: 1.5rem;
  --sp-6: 2rem; --sp-7: 3rem; --sp-8: 4rem; --sp-9: 6rem; --sp-10: 8rem;
  --sezione-y: clamp(3.5rem, 2.5rem + 4vw, 6.5rem); 
  --gutter: clamp(1rem, 0.5rem + 2.5vw, 2rem);
  --container: 1200px;
  --container-largo: 1360px;
  --container-testo: 68ch;
  --raggio-sm: 4px; --raggio-md: 8px; --raggio-lg: 12px; --raggio-xl: 16px;
  --raggio-pillola: 999px; 
  --raggio-tondo: 50%;
  --linea: 1px; --linea-media: 1.5px; --linea-spessa: 3px;
  --ombra-1: 0 1px 2px rgba(11, 42, 71, 0.06), 0 2px 8px rgba(11, 42, 71, 0.05);
  --ombra-2: 0 2px 4px rgba(11, 42, 71, 0.07), 0 16px 32px rgba(11, 42, 71, 0.12);
  --ombra-3: 0 24px 60px rgba(7, 26, 46, 0.35);
  --dur-1: 150ms; 
  --dur-2: 250ms; 
  --dur-3: 650ms; 
  --dur-disegno: 1400ms; 
  --ease: cubic-bezier(0.2, 0.7, 0.2, 1);
  --entrata-y: 32px;
  --ritardo-passo: 90ms; 
  --hover-y: -2px;
  --hover-card-y: -6px;
  --z-sticky-cta: 40; --z-header: 50; --z-menu: 60; --z-skiplink: 100;
  --altezza-header: 76px;
  --altezza-cta-mobile: 68px;
  --altezza-controllo: 48px;
  --altezza-controllo-grande: 52px;
  --touch-min: 44px;
  --icona: 20px;
  --icona-lg: 24px;
  --icona-xl: 48px;
  --logo-h: 52px; 
  --logo-h-compatto: 44px;
  --pallino: 0.5rem;
  --misura-stretta: 26rem;
  --misura-disegno: 11rem;
}
.sezione--scura {
  --color-testo: rgba(255, 255, 255, 0.86);
  --color-testo-forte: var(--bianco);
  --color-testo-tenue: rgba(255, 255, 255, 0.72);
  --color-superficie: var(--blu-900);
  --color-superficie-2: var(--blu-800);
  --color-carta: rgba(255, 255, 255, 0.06);
  --color-bordo: rgba(255, 255, 255, 0.16);
  --color-bordo-forte: rgba(255, 255, 255, 0.4);
  --color-link: var(--blu-300);
  --color-link-hover: var(--bianco);
  --color-focus: var(--blu-300);
  --color-accento: var(--blu-300);
  --color-velo: rgba(255, 255, 255, 0.08);
  --color-aperto: var(--verde-400);
  --color-in-chiusura: var(--ambra-400);
  --color-chiuso: var(--rosso-400);
  background-color: var(--blu-900);
  color: var(--color-testo);
}
.superficie-chiara {
  --color-testo: var(--grigio-700);
  --color-testo-forte: var(--blu-900);
  --color-testo-tenue: var(--grigio-600);
  --color-carta: var(--bianco);
  --color-bordo: var(--grigio-200);
  --color-bordo-forte: var(--grigio-400);
  --color-link: var(--blu-700);
  --color-link-hover: var(--blu-600);
  --color-focus: var(--rosso-600);
  --color-accento: var(--blu-600);
  --color-velo: var(--blu-50);
  --color-aperto: var(--verde-600);
  --color-in-chiusura: var(--ambra-600);
  --color-chiuso: var(--rosso-600);
  background-color: var(--bianco);
  color: var(--color-testo);
}
@font-face {
  font-family: "Inter Variable";
  font-style: normal;
  font-weight: 100 900;
  font-display: optional; 
  src: url("/fonts/inter-latin1-wght-normal.woff2") format("woff2-variations"),
    url("/fonts/inter-latin1-wght-normal.woff2") format("woff2");
  unicode-range: U+0020-007E, U+00A0-00FF, U+2013-2014, U+2018-2019, U+201C-201D, U+2022,
    U+2026, U+20AC;
}
@font-face {
  font-family: "Source Serif 4 Variable";
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
  src: url("/fonts/source-serif-4-italiano-wght-normal.woff2") format("woff2-variations"),
    url("/fonts/source-serif-4-italiano-wght-normal.woff2") format("woff2");
  unicode-range: U+0020-007E, U+00A0, U+00A9, U+00AB, U+00B0, U+00B7, U+00BB, U+00C0,
    U+00C8-00C9, U+00CC-00CD, U+00D2-00D3, U+00D9-00DA, U+00E0, U+00E8-00E9, U+00EC-00EE,
    U+00F2-00F3, U+00F9-00FA, U+2013-2014, U+2018-2019, U+201C-201D, U+2026, U+20AC;
}
@font-face {
  font-family: "Source Serif 4 Variable";
  font-style: italic;
  font-weight: 200 900;
  font-display: swap;
  src: url("/fonts/source-serif-4-italiano-wght-italic.woff2") format("woff2-variations"),
    url("/fonts/source-serif-4-italiano-wght-italic.woff2") format("woff2");
  unicode-range: U+0020-007E, U+00A0, U+00A9, U+00AB, U+00B0, U+00B7, U+00BB, U+00C0,
    U+00C8-00C9, U+00CC-00CD, U+00D2-00D3, U+00D9-00DA, U+00E0, U+00E8-00E9, U+00EC-00EE,
    U+00F2-00F3, U+00F9-00FA, U+2013-2014, U+2018-2019, U+201C-201D, U+2026, U+20AC;
}
*,
*::before,
*::after {
  box-sizing: border-box;
}
html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--altezza-header) + var(--sp-4));
}
body {
  margin: 0;
  font-family: var(--font-testo);
  font-size: var(--testo-0);
  line-height: var(--lh-corpo);
  color: var(--color-testo);
  background-color: var(--color-superficie);
  -webkit-font-smoothing: antialiased;
  overflow-wrap: anywhere;
}
@media (max-width: 767px) {
  html { scroll-padding-bottom: calc(var(--altezza-cta-mobile) + env(safe-area-inset-bottom, 0px)); }
  body.ha-cta-mobile {
    padding-bottom: calc(var(--altezza-cta-mobile) + env(safe-area-inset-bottom, 0px));
  }
}
h1,
h2,
h3,
h4 {
  font-family: var(--font-titoli);
  font-weight: var(--peso-forte);
  color: var(--color-testo-forte);
  line-height: var(--lh-titolo);
  letter-spacing: var(--tracking-titolo);
  margin: 0 0 var(--sp-4);
  text-wrap: balance;
}
h1 { font-size: var(--testo-5); }
h2 { font-size: var(--testo-3); }
h3 { font-size: var(--testo-2); line-height: var(--lh-titolo-sm); letter-spacing: 0; }
h4 { font-size: var(--testo-1); line-height: var(--lh-titolo-sm); letter-spacing: 0; }
p { margin: 0 0 var(--sp-4); text-wrap: pretty; }
ul, ol { margin: 0 0 var(--sp-4); padding-left: var(--sp-5); }
li + li { margin-top: var(--sp-2); }
address { font-style: normal; }
strong { font-weight: var(--peso-forte); color: var(--color-testo-forte); }
a {
  color: var(--color-link);
  text-underline-offset: 0.18em;
  text-decoration-thickness: var(--linea);
  transition: color var(--dur-1) var(--ease);
}
a:hover { color: var(--color-link-hover); }
:where(a[href^="tel:"]) { white-space: nowrap; }
img,
picture,
video,
svg {
  max-width: 100%;
  height: auto;
  display: block;
}
:focus-visible {
  outline: var(--linea-spessa) solid var(--color-focus);
  outline-offset: 2px;
  border-radius: 2px;
}
.skip-link {
  position: absolute;
  left: var(--sp-4);
  top: -100%;
  z-index: var(--z-skiplink);
  padding: var(--sp-3) var(--sp-4);
  background: var(--blu-900);
  color: var(--bianco);
  border-radius: var(--raggio-md);
  font-weight: var(--peso-forte);
  text-decoration: none;
}
.skip-link:focus-visible { top: var(--sp-4); color: var(--bianco); }
.container {
  width: 100%;
  max-width: var(--container);
  margin-inline: auto;
  padding-inline: var(--gutter);
}
.container--largo { max-width: var(--container-largo); }
.prosa { max-width: var(--container-testo); }
.solo-screen-reader {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}
.sezione { padding-block: var(--sezione-y); }
.sezione--azzurra { background-color: var(--color-superficie-2); }
.titolo-sezione { max-width: var(--container-testo); margin-bottom: var(--sp-7); }
.titolo-sezione > :last-child { margin-bottom: 0; }
.titolo-sezione p:not(.eyebrow) { font-size: var(--testo-1); }
.titolo-sezione--centro { margin-inline: auto; text-align: center; }
.titolo-sezione--centro .eyebrow { justify-content: center; }
.titolo-sezione--centro .eyebrow::after { display: none; }
@media (min-width: 768px) {
  .titolo-sezione--con-link {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: var(--sp-6);
    max-width: none;
  }
  .titolo-sezione--con-link > div { max-width: var(--container-testo); }
  .titolo-sezione--con-link .link-freccia { margin: 0; flex-shrink: 0; }
}
.eyebrow {
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  margin-bottom: var(--sp-4);
  font-size: var(--testo--1);
  font-weight: var(--peso-pieno);
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-accento);
}
.eyebrow::after {
  content: "";
  flex: 0 1 var(--sp-8);
  min-width: var(--sp-5);
  height: var(--sp-3);
  border-top: var(--linea) solid currentColor;
  border-right: var(--linea) solid currentColor;
  transform: translateY(calc(var(--sp-3) / 2));
}
.eyebrow__numero { font-variant-numeric: tabular-nums; }
.eyebrow__numero::after { content: " —"; }
.quota {
  position: relative;
  height: var(--sp-4);
  margin-block: var(--sp-7);
  border-inline: var(--linea) solid var(--color-accento);
  opacity: 0.6;
}
.quota::before {
  content: "";
  position: absolute;
  inset-inline: 0;
  top: 50%;
  border-top: var(--linea) solid var(--color-accento);
}
.link-freccia { margin: var(--sp-6) 0 0; font-weight: var(--peso-forte); }
.link-freccia a,
.elenco-link a {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-2);
  min-height: var(--touch-min);
  text-decoration: none;
}
.link-freccia a:hover,
.elenco-link a:hover { text-decoration: underline; }
.icona { width: var(--icona); height: var(--icona); flex-shrink: 0; }
:is(.link-freccia, .elenco-link) .icona { transition: transform var(--dur-1) var(--ease); }
:is(.link-freccia, .elenco-link) a:hover .icona { transform: translateX(var(--sp-1)); }
.orari { margin: 0 0 var(--sp-5); max-width: var(--misura-stretta); }
.orari__riga {
  display: flex;
  justify-content: space-between;
  gap: var(--sp-4);
  padding-block: var(--sp-2);
  border-bottom: var(--linea) solid var(--color-bordo);
}
.orari__riga dt { font-weight: var(--peso-medio); color: var(--color-testo-forte); }
.orari__riga dd { margin: 0; font-variant-numeric: tabular-nums; }
.orari__chiuso { color: var(--color-testo-tenue); }
.dati { margin: 0 0 var(--sp-5); }
.dati > div {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--sp-1);
  padding-block: var(--sp-3);
  border-bottom: var(--linea) solid var(--color-bordo);
}
.dati dt { font-weight: var(--peso-forte); color: var(--color-testo-tenue); }
.dati dd { margin: 0; color: var(--color-testo-forte); }
@media (min-width: 480px) {
  .dati > div { grid-template-columns: minmax(var(--sp-10), 1fr) minmax(0, 2fr); gap: var(--sp-4); }
}
.elenco-spunte,
.elenco-link { list-style: none; padding: 0; margin: 0 0 var(--sp-5); }
.elenco-spunte li { display: flex; gap: var(--sp-3); }
.elenco-spunte .icona { margin-top: var(--sp-1); color: var(--color-accento); }
.elenco-link li + li { margin-top: 0; }
.nota { color: var(--color-testo-tenue); }
.galleria {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--sp-5);
  list-style: none;
  margin: var(--sp-7) 0 0;
  padding: 0;
}
.galleria li { margin: 0; }
.galleria img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--raggio-xl); box-shadow: var(--ombra-1); }
@media (min-width: 768px) {
  .galleria { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.galleria--ampia { margin-top: 0; }
@media (min-width: 768px) {
  .galleria--ampia { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.bottone {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--sp-2);
  min-height: var(--altezza-controllo);
  padding: var(--sp-3) var(--sp-5);
  border: var(--linea-media) solid transparent;
  border-radius: var(--raggio-md);
  font: inherit;
  font-weight: var(--peso-forte);
  line-height: var(--lh-compatta);
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition:
    background-color var(--dur-1) var(--ease),
    border-color var(--dur-1) var(--ease),
    color var(--dur-1) var(--ease),
    box-shadow var(--dur-2) var(--ease),
    transform var(--dur-2) var(--ease);
}
.bottone:hover { transform: translateY(var(--hover-y)); }
.bottone:active { transform: translateY(0); }
.bottone .icona { transition: transform var(--dur-2) var(--ease); }
.bottone:hover .icona:last-child:not(:first-child) { transform: translateX(var(--sp-1)); }
.bottone--grande {
  min-height: var(--altezza-controllo-grande);
  padding-inline: var(--sp-6);
  font-size: var(--testo-0);
}
@media (max-width: 479px) {
  .bottone--grande { padding-inline: var(--sp-4); }
}
.bottone--primario {
  background: var(--color-azione);
  color: var(--bianco);
  box-shadow: 0 6px 18px -6px var(--color-azione);
}
.bottone--primario:hover {
  background: var(--color-azione-hover);
  color: var(--bianco);
  box-shadow: 0 10px 24px -8px var(--color-azione);
}
.bottone--secondario {
  background: transparent;
  border-color: var(--color-link);
  color: var(--color-link);
}
.bottone--secondario:hover {
  background: var(--color-velo);
  color: var(--color-link);
}
.sezione--scura .bottone--secondario {
  border-color: var(--color-bordo-forte);
  color: var(--color-testo-forte);
}
.sezione--scura .bottone--secondario:hover { border-color: var(--color-testo-forte); }
.azioni {
  display: flex;
  flex-direction: column;
  gap: var(--sp-3);
}
@media (min-width: 480px) {
  .azioni { flex-direction: row; flex-wrap: wrap; align-items: center; }
}
.intestazione {
  position: sticky;
  top: 0;
  z-index: var(--z-header);
  background-color: var(--color-superficie);
  border-bottom: var(--linea) solid var(--color-bordo);
  transition: box-shadow var(--dur-2) var(--ease);
}
.intestazione--ombra { box-shadow: var(--ombra-2); }
.intestazione__interno {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--sp-2) var(--sp-4);
  min-height: calc(var(--altezza-header) - var(--linea));
}
.marchio {
  display: inline-flex;
  align-items: center;
  margin-inline-end: auto;
  padding-block: var(--sp-2);
  text-decoration: none;
}
.logo { width: auto; height: var(--logo-h); flex-shrink: 0; }
.nav__lista { display: flex; flex-wrap: wrap; gap: 0 var(--sp-6); list-style: none; margin: 0; padding: 0; }
.nav__lista li + li { margin-top: 0; }
.nav__lista a {
  position: relative;
  display: inline-flex;
  align-items: center;
  min-height: var(--touch-min);
  color: var(--color-testo-forte);
  font-size: var(--testo-0);
  font-weight: var(--peso-forte);
  text-decoration: none;
}
.nav__lista a::after {
  content: "";
  position: absolute;
  inset: auto 0 var(--sp-1);
  height: var(--linea-spessa);
  border-radius: var(--linea-spessa);
  background: var(--color-accento);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--dur-2) var(--ease);
}
.nav__lista a:hover::after,
.nav__lista [aria-current]::after { transform: scaleX(1); }
.nav__lista [aria-current] { color: var(--color-link); }
.menu__contatti, .menu__bottone, .intestazione__cta, .intestazione__telefono { display: none; }
.intestazione__telefono {
  position: relative;
  align-items: center;
  gap: var(--sp-2);
  min-height: var(--touch-min);
  padding-inline-start: var(--sp-5);
  color: var(--color-testo-forte);
  font-size: 0.9375rem; 
  font-weight: var(--peso-forte);
  font-variant-numeric: tabular-nums;
  text-decoration: none;
  white-space: nowrap;
}
.intestazione__telefono::before {
  content: "";
  position: absolute;
  inset-inline-start: 0;
  top: 50%;
  width: var(--linea);
  height: var(--sp-5);
  translate: 0 -50%;
  background: var(--color-bordo-forte);
}
.intestazione__telefono .icona { color: var(--color-accento); }
.intestazione__telefono:hover { color: var(--color-link); }
.intestazione__chiama {
  display: inline-grid;
  place-items: center;
  width: var(--touch-min);
  height: var(--touch-min);
  border: var(--linea) solid var(--blu-200);
  border-radius: 10px;
  color: var(--blu-800);
}
.intestazione__chiama:hover { background: var(--blu-50); }
@media (min-width: 1024px) {
  .intestazione { overflow-x: clip; }
  .intestazione__destra { display: flex; align-items: center; gap: var(--sp-5); transition: translate var(--dur-2) var(--ease); }
  .intestazione__telefono, .intestazione__cta { display: inline-flex; }
  .intestazione__chiama { display: none; }
  .intestazione__cta { transition: opacity var(--dur-2) var(--ease), visibility 0s; }
  .js:has([data-cta-hero]):not(.cta-hero-fuori) .intestazione__destra {
    translate: calc(var(--larghezza-cta, 12.5rem) + var(--sp-5)) 0;
  }
  .js:has([data-cta-hero]):not(.cta-hero-fuori) .intestazione__cta {
    opacity: 0;
    visibility: hidden;
    transition: opacity var(--dur-2) var(--ease), visibility 0s linear var(--dur-2);
  }
}
@media (max-width: 479px) {
  .logo { height: var(--logo-h-compatto); }
}
@media (max-width: 359px) {
  .menu__etichetta { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
}
@media (max-width: 1023px) {
  .intestazione__destra { display: contents; }
  .menu { order: 3; flex-basis: 100%; }
  .intestazione__chiama { order: 1; }
  .menu__bottone { order: 2; }
  .js .menu__bottone {
    display: inline-flex;
    align-items: center;
    gap: var(--sp-2);
    min-height: var(--touch-min);
    padding-inline: var(--sp-4);
    border: var(--linea-media) solid var(--blu-100);
    border-radius: var(--raggio-md);
    background: var(--blu-100);
    color: var(--blu-800);
    font: inherit;
    font-weight: var(--peso-forte);
    cursor: pointer;
  }
  .menu__icona-apri, .intestazione--aperta .menu__icona-chiudi { display: inline-flex; }
  .menu__icona-chiudi, .intestazione--aperta .menu__icona-apri { display: none; }
  .js .menu {
    display: none;
    position: absolute;
    inset: 100% 0 auto;
    max-height: calc(100dvh - var(--altezza-header));
    overflow-y: auto;
    padding: var(--sp-3) var(--gutter) var(--sp-6);
    background: var(--color-superficie);
    border-bottom: var(--linea) solid var(--color-bordo);
    box-shadow: var(--ombra-2);
  }
  .js .intestazione--aperta .menu { display: block; }
  .js .menu .nav__lista { flex-direction: column; }
  .js .menu .nav__lista a {
    width: 100%;
    min-height: var(--altezza-controllo-grande);
    font-family: var(--font-titoli);
    font-size: var(--testo-2);
    border-bottom: var(--linea) solid var(--color-bordo);
  }
  .js .menu .nav__lista a::after { display: none; }
  .js .menu__contatti { display: flex; flex-direction: column; gap: var(--sp-3); margin-top: var(--sp-5); }
}
.stato-riga {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--sp-1) var(--sp-3);
  margin-top: var(--sp-5);
  font-size: var(--testo--2);
  line-height: var(--lh-compatta);
}
.stato-riga > p { margin: 0; }
.stato-riga__nota { color: var(--color-testo-tenue); }
.stato {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-2);
  padding: var(--sp-1) var(--sp-3) var(--sp-1) var(--sp-2);
  border: var(--linea) solid var(--color-bordo);
  border-radius: var(--raggio-pillola);
  background: var(--color-carta);
  color: var(--color-testo-forte);
  font-weight: var(--peso-medio);
}
.stato__pallino {
  position: relative;
  flex-shrink: 0;
  width: var(--pallino);
  height: var(--pallino);
  border: var(--linea-media) solid var(--color-bordo-forte);
  border-radius: var(--raggio-tondo);
}
.stato--aperto { border-color: var(--color-aperto); }
.stato--aperto .stato__pallino { background: var(--color-aperto); border-color: var(--color-aperto); }
.stato--in-chiusura { border-color: var(--color-in-chiusura); }
.stato--in-chiusura .stato__pallino { background: var(--color-in-chiusura); border-color: var(--color-in-chiusura); }
.stato--chiuso { border-color: var(--color-chiuso); }
.stato--chiuso .stato__pallino { background: var(--color-chiuso); border-color: var(--color-chiuso); }
.stato--aperto .stato__pallino::after {
  content: "";
  position: absolute;
  inset: calc(var(--linea-media) * -1);
  border-radius: var(--raggio-tondo);
  background: var(--color-aperto);
  animation: respiro 2.4s var(--ease) infinite;
}
@keyframes respiro {
  from { transform: scale(1); opacity: 0.6; }
  to { transform: scale(2.6); opacity: 0; }
}
.hero {
  --hero-titolo: clamp(2.375rem, 1.5rem + 2.6vw, 3.75rem); 
  --hero-spazio-sottotitolo: 1.75rem; 
  --hero-spazio-azioni: 2.75rem; 
  --hero-spazio-recensioni: 2.5rem; 
  --hero-foto-h: min(475px, 58vh);
  --hero-foto-h: min(475px, 58svh);
  background: var(--bianco);
}
.hero__griglia { padding-block: calc(var(--sp-6) + var(--sp-2)) var(--sp-7); }
.hero__titolo {
  margin: 0;
  font-size: var(--hero-titolo);
  font-weight: var(--peso-forte);
  line-height: 1.06;
  letter-spacing: -0.02em;
  color: var(--color-testo-forte);
}
.hero__titolo span { display: block; }
.hero__gancio { font-style: italic; font-weight: var(--peso-medio); color: var(--blu-600); }
.hero__sottotitolo {
  max-width: 31.25rem;
  margin: var(--hero-spazio-sottotitolo) 0 0;
  font-size: var(--testo-1);
  line-height: var(--lh-corpo);
  color: var(--color-testo);
}
.hero__azioni {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--sp-3) 1.75rem;
  margin-top: var(--hero-spazio-azioni);
}
.hero__cta {
  min-height: 3.75rem;
  padding: 0 1.625rem;
  font-size: 1.03125rem; 
  box-shadow: 0 1px 2px rgba(158, 14, 25, 0.25), 0 10px 24px rgba(193, 18, 31, 0.22);
}
.hero__cta:hover { box-shadow: 0 2px 4px rgba(158, 14, 25, 0.28), 0 14px 28px rgba(193, 18, 31, 0.26); }
.hero__secondario {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-2);
  min-height: var(--touch-min);
  color: var(--color-link);
  font-size: var(--testo--1);
  font-weight: var(--peso-forte);
  text-decoration: none;
}
.hero__secondario:hover { color: var(--color-link-hover); text-decoration: underline; }
.hero__secondario .icona { transition: transform var(--dur-1) var(--ease); }
.hero__secondario:hover .icona { transform: translateX(var(--sp-1)); }
.hero__recensioni {
  display: flex;
  align-items: center;
  gap: var(--sp-2);
  width: fit-content;
  min-height: var(--sp-5);
  margin-top: var(--hero-spazio-recensioni);
  color: var(--color-testo-tenue);
  font-size: 0.90625rem; 
  text-decoration: none;
}
.hero__recensioni strong { color: var(--color-testo-forte); font-weight: var(--peso-forte); }
.hero__recensioni:hover > span:last-child { text-decoration: underline; }
.hero__stelle { display: inline-flex; gap: 1px; color: var(--ambra-600); }
.hero__stelle svg { width: 15px; height: 15px; }
.hero__foto { margin: var(--sp-6) 0 0; }
.hero__foto img { width: 100%; height: auto; border-radius: var(--raggio-lg); }
.hero__scorri { display: none; }
@media (max-width: 767px) {
  .hero { --hero-spazio-sottotitolo: 1.25rem; }
  .hero__titolo { line-height: 1.08; }
  .hero__azioni { flex-direction: column; align-items: stretch; gap: var(--sp-2); margin-top: var(--sp-6); }
  .hero__cta { width: 100%; min-height: 3.5rem; }
  .hero__secondario { justify-content: center; min-height: var(--altezza-controllo); }
  .hero__recensioni { margin: 0.875rem auto 0; }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .hero__foto { max-width: 35rem; margin-top: var(--sp-7); }
}
@media (min-width: 1024px) {
  .hero {
    display: grid;
    grid-template-rows: minmax(0, 1fr) 5.5rem;
    min-height: calc(100vh - var(--altezza-header));
    min-height: calc(100svh - var(--altezza-header));
  }
  .hero__griglia {
    display: grid;
    grid-template-columns: minmax(0, 1fr) min(560px, calc(var(--hero-foto-h) * 1400 / 1187), 100% - 3.75rem - 32rem);
    column-gap: 3.75rem;
    align-items: center;
    align-self: center;
    width: 100%;
    padding-block: var(--sp-6) 0;
  }
  .hero__titolo span { white-space: nowrap; }
  .hero__foto { margin: 0; } 
  .hero__scorri {
    display: grid;
    place-items: center;
    place-self: center;
    width: var(--touch-min);
    height: var(--touch-min);
    border: var(--linea) solid var(--blu-200);
    border-radius: var(--raggio-tondo);
    color: var(--blu-700);
    transition: border-color var(--dur-1) var(--ease), background-color var(--dur-1) var(--ease);
  }
  .hero__scorri:hover { border-color: var(--blu-600); background: var(--blu-50); }
}
@media (min-width: 1024px) and (max-height: 760px) {
  .hero {
    --hero-titolo: clamp(2.375rem, 1.5rem + 2.6vw, 3.25rem); 
    --hero-spazio-sottotitolo: 1.25rem;
    --hero-spazio-azioni: 2rem;
    --hero-spazio-recensioni: 1.75rem;
    grid-template-rows: minmax(0, 1fr) 4.5rem;
  }
  .hero__cta { min-height: 3.5rem; }
}
.situazioni {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--sp-5);
  list-style: none;
  margin: 0;
  padding: 0;
}
@media (min-width: 1024px) {
  .situazioni { grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: auto auto; }
  .situazioni__gruppo { display: grid; grid-row: span 2; grid-template-rows: subgrid; row-gap: 0; }
}
.situazioni__gruppo {
  margin: 0;
  padding: var(--sp-6) var(--sp-5) var(--sp-4);
  background: var(--color-carta);
  border: var(--linea) solid var(--color-bordo);
  border-top: var(--linea-spessa) solid var(--color-accento);
  border-radius: var(--raggio-lg);
  box-shadow: var(--ombra-1);
}
.situazioni__titolo {
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  margin-bottom: var(--sp-4);
  font-size: var(--testo-2);
}
.situazioni__icona {
  display: inline-grid;
  place-items: center;
  flex-shrink: 0;
  width: var(--icona-xl);
  height: var(--icona-xl);
  border-radius: var(--raggio-md);
  background: var(--blu-900);
  color: var(--bianco);
}
.situazioni__icona .icona { width: var(--icona-lg); height: var(--icona-lg); }
.situazioni__voci { list-style: none; margin: 0; padding: 0; }
.situazioni__voci li { margin: 0; border-top: var(--linea) solid var(--color-bordo); }
.situazioni__link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-4);
  min-height: var(--sp-8);
  margin-inline: calc(var(--sp-3) * -1);
  padding: var(--sp-3);
  border-radius: var(--raggio-md);
  color: var(--color-testo-forte);
  font-weight: var(--peso-medio);
  line-height: var(--lh-compatta);
  text-decoration: none;
  transition: background-color var(--dur-1) var(--ease), color var(--dur-1) var(--ease);
}
.situazioni__link .icona { color: var(--color-accento); transition: transform var(--dur-2) var(--ease); }
.situazioni__link:hover { background: var(--blu-100); color: var(--color-link); }
.situazioni__link:hover .icona { transform: translateX(var(--sp-1)); }
.situazioni__altro {
  margin: var(--sp-7) 0 0;
  text-align: center;
  font-size: var(--testo-1);
}
.area { --accento-area: var(--blu-600); }
.area--lavori { --accento-area: var(--blu-800); }
.area--condominio { --accento-area: var(--blu-500); }
.area + .area { margin-top: var(--sp-9); }
.area__testa {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: var(--sp-1) var(--sp-4);
  align-items: center;
  margin-bottom: var(--sp-6);
  padding-bottom: var(--sp-5);
  border-bottom: var(--linea) solid var(--color-bordo);
}
.area__icona {
  display: inline-grid;
  grid-row: span 2;
  place-items: center;
  width: var(--icona-xl);
  height: var(--icona-xl);
  border-radius: var(--raggio-md);
  background: var(--accento-area);
  color: var(--bianco);
}
.area__icona .icona { width: var(--icona-lg); height: var(--icona-lg); }
.area__titolo { margin: 0; font-size: var(--testo-3); }
.area__descrizione { margin: 0; font-size: var(--testo-1); color: var(--color-testo-tenue); }
.area__card,
.griglia-card {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr));
  gap: var(--sp-5);
}
@media (min-width: 600px) {
  .area__card:has(> :nth-child(4)) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
  .area__card:has(> :nth-child(4)) { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--sp-4); }
  .area__card:has(> :nth-child(4)) .card-servizio__titolo { font-size: var(--testo-1); }
}
.card-servizio {
  --accento-area: var(--blu-600);
  position: relative;
  display: flex;
  flex-direction: column;
  padding: calc(var(--sp-4) + var(--sp-1));
  background: var(--bianco);
  border: var(--linea) solid var(--color-bordo);
  border-radius: var(--raggio-lg);
  transition:
    opacity var(--dur-3) var(--ease) var(--ritardo, 0ms),
    translate var(--dur-3) var(--ease) var(--ritardo, 0ms),
    transform var(--dur-2) var(--ease),
    border-color var(--dur-2) var(--ease),
    box-shadow var(--dur-2) var(--ease);
}
.area .card-servizio { --accento-area: inherit; }
.card-servizio:hover,
.card-servizio:focus-within {
  transform: translateY(var(--hover-card-y));
  border-color: var(--accento-area);
  box-shadow: var(--ombra-2);
}
.card-servizio__disegno {
  display: grid;
  place-items: center;
  margin-bottom: var(--sp-4);
  padding: var(--sp-3);
  border-radius: var(--raggio-md);
  background: var(--blu-50);
  color: var(--accento-area);
  transition: background-color var(--dur-2) var(--ease);
}
.card-servizio:hover .card-servizio__disegno { background: var(--blu-100); }
.card-servizio__disegno .illustrazione { max-height: 6.5rem; }
.card-servizio__titolo { margin-bottom: var(--sp-3); font-size: var(--testo-2); }
.card-servizio__titolo a { color: inherit; text-decoration: none; }
.card-servizio__titolo a::after { content: ""; position: absolute; inset: 0; border-radius: var(--raggio-lg); }
.card-servizio__testo { flex-grow: 1; margin-bottom: var(--sp-5); }
.card-servizio__azione {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-2);
  color: var(--color-link);
  font-weight: var(--peso-forte);
}
.card-servizio__azione .icona { transition: transform var(--dur-2) var(--ease); }
.card-servizio:hover .card-servizio__azione .icona { transform: translateX(var(--sp-2)); }
@media (max-width: 599px) {
  .card-servizio { display: grid; grid-template-columns: 4.5rem minmax(0, 1fr); column-gap: var(--sp-4); align-content: start; padding: var(--sp-4); }
  .card-servizio__disegno { grid-row: 1 / span 3; align-self: start; margin: 0; padding: var(--sp-2); }
  .card-servizio__titolo { margin-bottom: var(--sp-2); font-size: var(--testo-1); }
  .card-servizio__testo { margin-bottom: var(--sp-3); }
}
.illustrazione { width: 100%; max-width: var(--misura-disegno); height: auto; overflow: visible; }
.ill__tratto { fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.ill__muro { stroke-width: 3.5; }
.ill__quota { stroke-width: 1.25; opacity: 0.6; }
.ill__crepa { stroke-width: 2.5; }
.ill__tinta { fill: var(--blu-100); }
.ill__tinta-forte { fill: var(--blu-200); }
.ill__lente { fill-opacity: 0.6; }
.perche__griglia { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--sp-7); }
@media (min-width: 1024px) {
  .perche__griglia { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--sp-9); align-items: center; }
}
.perche__numero { display: flex; flex-direction: column; margin: var(--sp-6) 0 var(--sp-6); }
.perche__numero > [aria-hidden] {
  font-family: var(--font-titoli);
  font-size: var(--testo-numero);
  font-weight: var(--peso-pieno);
  line-height: 1;
  color: var(--color-testo-forte);
  font-variant-numeric: tabular-nums;
}
.perche__etichetta { font-weight: var(--peso-forte); letter-spacing: var(--tracking-eyebrow); text-transform: uppercase; color: var(--color-accento); }
.motivi { list-style: none; margin: 0; padding: 0; }
.motivo { display: flex; gap: var(--sp-5); margin: 0; padding-block: var(--sp-6); border-top: var(--linea) solid var(--color-bordo); }
.motivo:last-child { border-bottom: var(--linea) solid var(--color-bordo); }
.motivo__icona {
  display: inline-grid;
  place-items: center;
  flex-shrink: 0;
  width: var(--icona-xl);
  height: var(--icona-xl);
  border: var(--linea) solid var(--color-bordo-forte);
  border-radius: var(--raggio-md);
  background: var(--color-velo);
  color: var(--color-accento);
}
.motivo__icona .icona { width: var(--icona-lg); height: var(--icona-lg); }
.motivo__titolo { font-size: var(--testo-2); margin-bottom: var(--sp-2); }
.motivo p { margin: 0; }
.team__griglia { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--sp-7); align-items: center; }
@media (min-width: 1024px) {
  .team__griglia { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--sp-9); }
}
.team__testo p:not(.eyebrow):not(.link-freccia) { font-size: var(--testo-1); }
.team__foto { margin: 0; }
.team__foto img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--raggio-xl); box-shadow: var(--ombra-2); }
.team__foto--ritratto img { object-position: 50% 15%; } 
.titolare__griglia { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--sp-7); align-items: center; }
@media (min-width: 768px) {
  .titolare__griglia { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--sp-8); }
}
.titolare__foto { max-width: 28rem; margin: 0; }
.titolare__foto img { width: 100%; height: auto; border-radius: var(--raggio-xl); box-shadow: var(--ombra-2); }
.titolare__testo { max-width: var(--container-testo); }
.titolare__testo p:not(.eyebrow):not(.link-freccia) { font-size: var(--testo-1); }
.titolare__ruolo { font-family: var(--font-titoli); color: var(--color-accento); }
.metodo { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--sp-6); list-style: none; margin: 0; padding: 0; }
.metodo li + li { margin-top: 0; }
@media (min-width: 768px) { .metodo { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1280px) { .metodo { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--sp-7); } }
.metodo__passo { position: relative; }
.metodo__numero {
  position: relative;
  z-index: 1;
  display: inline-grid;
  place-items: center;
  width: var(--sp-8);
  height: var(--sp-8);
  margin-bottom: var(--sp-4);
  border-radius: var(--raggio-tondo);
  background: var(--blu-900);
  color: var(--bianco);
  font-family: var(--font-titoli);
  font-size: var(--testo-2);
  font-weight: var(--peso-pieno);
}
@media (min-width: 1280px) {
  .metodo__passo:not(:last-child)::after {
    content: "";
    position: absolute;
    top: calc(var(--sp-8) / 2);
    left: var(--sp-8);
    right: calc(var(--sp-7) * -1);
    border-top: var(--linea-media) dashed var(--blu-500);
  }
}
.metodo__passo h3 { font-size: var(--testo-1); }
.metodo__passo p { margin: 0; }
.fascia-cta__interno { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--sp-6); align-items: center; }
.fascia-cta__testo { max-width: var(--container-testo); }
.fascia-cta__testo h2 { font-size: var(--testo-4); }
.fascia-cta__testo p:not(.eyebrow) { font-size: var(--testo-1); }
.fascia-cta__testo > :last-child { margin-bottom: 0; }
.fascia-cta__rimando { margin-top: var(--sp-6); padding-top: var(--sp-5); border-top: var(--linea) solid var(--color-bordo); }
.fascia-cta__azioni { display: flex; flex-direction: column; gap: var(--sp-3); }
@media (min-width: 1024px) {
  .fascia-cta__interno { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--sp-8); }
}
.valutazione { margin-bottom: var(--sp-7); }
.valutazione__voto { display: flex; align-items: center; gap: var(--sp-3); margin: 0; }
.valutazione__numero { font-family: var(--font-titoli); font-size: var(--testo-4); font-weight: var(--peso-pieno); line-height: var(--lh-titolo); color: var(--color-testo-forte); }
.valutazione__stelle { display: inline-flex; gap: var(--sp-1); color: var(--ambra-600); }
.valutazione__dettaglio { margin: var(--sp-2) 0 0; color: var(--color-testo-tenue); }
.griglia-recensioni { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--sp-5); list-style: none; margin: 0; padding: 0; }
.griglia-recensioni li + li { margin-top: 0; }
@media (min-width: 768px) { .griglia-recensioni { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.card-recensione {
  position: relative;
  height: 100%;
  margin: 0;
  padding: var(--sp-7) var(--sp-6) var(--sp-6);
  background: var(--color-carta);
  border-radius: var(--raggio-lg);
  box-shadow: var(--ombra-1);
}
.card-recensione::before {
  content: "“";
  position: absolute;
  top: var(--sp-2);
  left: var(--sp-5);
  font-family: var(--font-titoli);
  font-size: var(--testo-numero);
  line-height: 1;
  color: var(--blu-200);
}
.card-recensione blockquote { position: relative; margin: 0 0 var(--sp-4); }
.card-recensione blockquote p { font-family: var(--font-titoli); font-size: var(--testo-2); line-height: var(--lh-titolo-sm); color: var(--color-testo-forte); }
.card-recensione figcaption { color: var(--color-testo-tenue); }
.faq { border-top: var(--linea) solid var(--color-bordo-forte); interpolate-size: allow-keywords; }
.faq__voce { border-bottom: var(--linea) solid var(--color-bordo-forte); }
.faq__voce::details-content { block-size: 0; overflow: hidden; transition: block-size var(--dur-3) var(--ease), content-visibility var(--dur-3) allow-discrete; }
.faq__voce[open]::details-content { block-size: auto; }
.faq__domanda {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-4);
  min-height: var(--altezza-controllo-grande);
  padding-block: var(--sp-4);
  font-size: var(--testo-1);
  font-weight: var(--peso-forte);
  color: var(--color-testo-forte);
  cursor: pointer;
  list-style: none;
}
.faq__domanda::-webkit-details-marker { display: none; }
.faq__domanda:hover, .faq__voce[open] .faq__domanda { color: var(--color-link); }
.faq__domanda .icona { transition: transform var(--dur-2) var(--ease); }
.faq__voce[open] .faq__domanda .icona { transform: rotate(180deg); }
.faq__risposta { padding-bottom: var(--sp-5); max-width: var(--container-testo); }
.dove { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--sp-7); }
@media (min-width: 1024px) {
  .dove { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--sp-8); align-items: start; }
}
.dove__indirizzo { display: flex; gap: var(--sp-3); margin-bottom: var(--sp-5); font-size: var(--testo-1); }
.dove__indirizzo .icona { width: var(--icona-lg); height: var(--icona-lg); margin-top: var(--sp-1); color: var(--color-accento); }
.dove__punti { list-style: none; margin: 0 0 var(--sp-6); padding: 0; }
.dove__punti li { display: flex; gap: var(--sp-3); margin: 0; padding-block: var(--sp-3); border-top: var(--linea) solid var(--color-bordo); }
.dove__punti li:last-child { border-bottom: var(--linea) solid var(--color-bordo); }
.dove__punti .icona { margin-top: var(--sp-1); color: var(--color-accento); }
.dove__etichetta { margin-bottom: var(--sp-2); font-weight: var(--peso-forte); color: var(--color-testo-forte); }
.dove__visivo { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--sp-5); align-items: start; }
@media (min-width: 640px) {
  .dove__visivo { grid-template-columns: minmax(0, 3fr) minmax(0, 1fr); }
}
.mappa {
  overflow: hidden;
  border: var(--linea) solid var(--color-bordo);
  border-radius: var(--raggio-xl);
  background: var(--blu-50);
  box-shadow: var(--ombra-2);
}
.mappa__iframe { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; border: 0; }
@media (min-width: 1024px) { .mappa__iframe { aspect-ratio: 1 / 1; } }
html:not(.js) .mappa__iframe[data-src] { display: none; }
.dove__citofono { margin: 0; max-width: 14rem; }
.dove__citofono img { width: 100%; height: auto; border-radius: var(--raggio-lg); box-shadow: var(--ombra-1); }
.dove__citofono figcaption { margin-top: var(--sp-2); font-size: var(--testo--1); color: var(--color-testo-tenue); }
.pagina-testa { padding-block: var(--sp-8); }
.pagina-testa h1 { max-width: var(--misura-titolo); font-size: var(--testo-4); }
.pagina-testa__intro { max-width: var(--container-testo); font-size: var(--testo-1); }
.servizi-indice { padding-top: var(--sp-7); }
.servizi-indice h1 { font-size: var(--testo-4); }
.servizio__testa { padding-block: var(--sp-8); }
.servizio__testa h1 { font-size: var(--testo-4); }
.servizio__intro { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--sp-7); align-items: start; }
@media (min-width: 1024px) {
  .servizio__intro { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--sp-8); }
}
.servizio__apertura { max-width: var(--container-testo); }
.servizio__problema {
  margin-bottom: var(--sp-5);
  padding-left: var(--sp-4);
  border-left: var(--linea-spessa) solid var(--color-accento);
  font-family: var(--font-titoli);
  font-size: var(--testo-2);
  line-height: var(--lh-titolo-sm);
  color: var(--color-testo-forte);
}
.servizio__spiegazione { font-size: var(--testo-1); }
.servizio__azione-rapida { margin-bottom: var(--sp-6); }
.servizio__azione-rapida .bottone { width: 100%; }
@media (min-width: 480px) { .servizio__azione-rapida .bottone { width: auto; } }
@media (min-width: 1024px) { .servizio__azione-rapida { display: none; } }
.servizio__contatto {
  display: flex;
  flex-direction: column;
  gap: var(--sp-3);
  padding: var(--sp-6);
  border-radius: var(--raggio-xl);
  box-shadow: var(--ombra-3);
}
.servizio__contatto > p { margin: 0; }
.servizio__disegno { display: grid; place-items: center; margin-bottom: var(--sp-2); padding: var(--sp-4); border-radius: var(--raggio-md); background: var(--blu-50); color: var(--blu-600); }
.servizio__contatto-titolo { font-family: var(--font-titoli); font-size: var(--testo-2); line-height: var(--lh-titolo-sm); color: var(--color-testo-forte); }
.servizio__contatto .stato-riga { margin-top: var(--sp-2); }
.servizio__corpo { padding-block: var(--sp-8) var(--sezione-y); }
.servizio__contenuto { max-width: var(--container-testo); margin-inline: auto; }
.servizio__laterale { display: none; }
@media (min-width: 1024px) {
  .servizio__corpo { display: grid; grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); gap: var(--sp-9); align-items: start; }
  .servizio__contenuto { margin-inline: 0; }
  .servizio__laterale { display: block; position: sticky; top: calc(var(--altezza-header) + var(--sp-6)); }
}
.servizio__sezione + .servizio__sezione { margin-top: var(--sp-9); }
.servizio__sezione--tinta { padding: var(--sp-6); border-radius: var(--raggio-xl); background: var(--color-superficie-2); }
.approfondimento { padding-left: var(--sp-5); border-left: var(--linea-spessa) solid var(--blu-200); }
.approfondimento + .approfondimento { margin-top: var(--sp-6); }
.approfondimento h3 { font-size: var(--testo-2); }
.passi { list-style: none; margin: 0; padding: 0; }
.passi__voce { display: flex; gap: var(--sp-4); align-items: flex-start; }
.passi__voce + .passi__voce { margin-top: var(--sp-4); }
.passi__voce p { margin: 0; padding-top: var(--sp-1); }
.passi__numero {
  display: inline-grid;
  place-items: center;
  flex-shrink: 0;
  width: var(--sp-7);
  height: var(--sp-7);
  border-radius: var(--raggio-tondo);
  background: var(--blu-900);
  color: var(--bianco);
  font-family: var(--font-titoli);
  font-weight: var(--peso-pieno);
}
.contatti { padding-top: var(--sp-7); }
.contatti__griglia { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--sp-7); align-items: start; }
@media (min-width: 1024px) {
  .contatti__griglia { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--sp-8); }
}
.contatti__modulo { padding: var(--sp-6) var(--gutter); border-radius: var(--raggio-xl); background: var(--bianco); box-shadow: var(--ombra-2); }
@media (min-width: 768px) { .contatti__modulo { padding: var(--sp-7); } }
.contatti__modulo h1 { font-size: var(--testo-3); }
.canale { padding-block: var(--sp-5); border-top: var(--linea) solid var(--color-bordo-forte); }
.canale:first-of-type { padding-top: 0; border-top: 0; }
.canale p { margin-bottom: var(--sp-3); }
.canale__etichetta {
  display: flex;
  align-items: center;
  gap: var(--sp-2);
  font-weight: var(--peso-forte);
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-accento);
}
.canale__numero {
  display: inline-block;
  padding-block: var(--sp-1);
  font-family: var(--font-titoli);
  font-size: var(--testo-4);
  font-weight: var(--peso-pieno);
  line-height: var(--lh-titolo);
  font-variant-numeric: tabular-nums;
  text-decoration: none;
  white-space: normal; 
  color: var(--color-testo-forte);
}
.canale__numero:hover { color: var(--color-link); }
.canale .stato-riga { margin-block: var(--sp-2) var(--sp-4); }
.legale h2 { font-size: var(--testo-2); margin-top: var(--sp-7); }
.legale h2:first-child { margin-top: 0; }
.pagina-errore { padding-block: var(--sp-8) var(--sezione-y); }
.pagina-errore .elenco-link { font-size: var(--testo-1); font-weight: var(--peso-forte); }
.laterale__riquadro {
  display: flex;
  flex-direction: column;
  gap: var(--sp-3);
  padding: var(--sp-6);
  border-radius: var(--raggio-xl);
  box-shadow: var(--ombra-2);
}
.laterale__riquadro p { margin: 0; }
.laterale__titolo { font-family: var(--font-titoli); font-size: var(--testo-2); font-weight: var(--peso-forte); color: var(--color-testo-forte); }
.laterale__telefono {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--sp-2);
  min-height: var(--touch-min);
  font-weight: var(--peso-forte);
  text-decoration: none;
}
.laterale__servizi { margin-top: var(--sp-6); padding: var(--sp-5) var(--sp-6); border: var(--linea) solid var(--color-bordo); border-radius: var(--raggio-xl); }
.laterale__etichetta { margin-bottom: var(--sp-2); font-size: var(--testo--1); font-weight: var(--peso-pieno); letter-spacing: var(--tracking-eyebrow); text-transform: uppercase; color: var(--color-accento); }
.laterale__servizi .pie__lista { list-style: none; margin: 0; padding: 0; }
.laterale__servizi li { margin: 0; border-top: var(--linea) solid var(--color-bordo); }
.laterale__servizi li:first-child { border-top: 0; }
.laterale__servizi a { display: flex; align-items: center; min-height: var(--touch-min); color: var(--color-link); text-decoration: none; font-weight: var(--peso-medio); }
.laterale__servizi a:hover { text-decoration: underline; }
.laterale__servizi [aria-current] { color: var(--color-testo-forte); font-weight: var(--peso-pieno); }
.modulo { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--sp-5); }
.modulo[hidden] { display: none; }
.modulo__trappola { display: none; }
.campo { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--sp-2); }
.campo__etichetta { font-weight: var(--peso-forte); color: var(--color-testo-forte); }
.campo__facoltativo { font-weight: var(--peso-medio); color: var(--color-testo-tenue); }
.campo__aiuto { margin: 0; color: var(--color-testo-tenue); }
.campo__controllo {
  width: 100%;
  min-height: var(--altezza-controllo);
  padding: var(--sp-3) var(--sp-4);
  border: var(--linea-media) solid var(--color-bordo-forte);
  border-radius: var(--raggio-md);
  background: var(--bianco);
  color: var(--grigio-900);
  font: inherit;
  transition: border-color var(--dur-1) var(--ease);
}
.campo__controllo:hover { border-color: var(--color-testo-tenue); }
textarea.campo__controllo { resize: vertical; }
.campo__controllo[aria-invalid="true"] {
  border-color: var(--color-azione);
  border-width: var(--linea-spessa);
}
.campo__errore {
  display: flex;
  align-items: flex-start;
  gap: var(--sp-2);
  margin: 0;
  padding: var(--sp-2) var(--sp-3);
  border-radius: var(--raggio-sm);
  background: var(--color-errore-fondo);
  color: var(--color-errore);
  font-weight: var(--peso-medio);
}
.campo__errore[hidden] { display: none; }
.campo__errore .icona { margin-top: var(--sp-1); }
.campo--spunta {
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  column-gap: var(--sp-3);
}
.campo--spunta .campo__errore { grid-column: 1 / -1; }
.campo__spunta {
  width: var(--icona-lg);
  height: var(--icona-lg);
  margin: 0;
  accent-color: var(--blu-700);
}
.campo--spunta label { padding-block: var(--sp-1); cursor: pointer; }
.modulo .bottone { justify-self: start; }
@media (max-width: 479px) {
  .modulo .bottone { justify-self: stretch; }
}
.modulo__esito {
  padding: var(--sp-6);
  border: var(--linea) solid var(--color-bordo);
  border-left: var(--linea-spessa) solid var(--color-accento);
  border-radius: var(--raggio-md);
  background: var(--bianco);
}
.modulo__esito > .icona {
  width: var(--icona-lg);
  height: var(--icona-lg);
  margin-bottom: var(--sp-3);
  color: var(--color-accento);
}
.modulo__esito:focus-visible { outline-offset: var(--sp-1); }
.modulo__esito-titolo { font-family: var(--font-titoli); font-size: var(--testo-2); font-weight: var(--peso-forte); color: var(--color-testo-forte); }
.pie {
  padding-block: var(--sp-8) var(--sp-6);
  background-color: var(--blu-950);
}
.pie__griglia { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--sp-7); }
@media (min-width: 768px) {
  .pie__griglia { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
  .pie__griglia { grid-template-columns: minmax(0, 5fr) minmax(0, 4fr) minmax(0, 3fr); gap: var(--sp-8); }
}
.pie__logo {
  display: inline-flex;
  margin-bottom: var(--sp-5);
  padding: var(--sp-3) var(--sp-5);
  border-radius: var(--raggio-lg);
  background: var(--bianco);
}
.pie__logo .logo { height: calc(var(--logo-h) * 2.4); } 
.pie__presentazione { max-width: 42ch; }
.pie__contatti a { display: inline-flex; align-items: center; min-height: var(--touch-min); }
.pie__titolo {
  margin: 0 0 var(--sp-3);
  font-family: var(--font-testo);
  font-size: var(--testo--1);
  font-weight: var(--peso-pieno);
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-accento);
}
.pie__orari .pie__titolo:not(:first-child) { margin-top: var(--sp-6); }
.pie__nota { color: var(--color-testo-tenue); }
.pie__lista,
.pie .nav__lista { display: flex; flex-direction: column; gap: 0; list-style: none; margin: 0; padding: 0; }
.pie__lista li { margin: 0; }
.pie__lista a,
.pie .nav__lista a {
  display: inline-flex;
  align-items: center;
  min-height: var(--touch-min);
  color: var(--color-link);
  font-size: var(--testo-0);
  font-weight: var(--peso-medio);
  text-decoration: none;
}
.pie__lista a:hover,
.pie .nav__lista a:hover { color: var(--color-link-hover); text-decoration: underline; }
.pie .nav__lista a::after { display: none; }
.pie .quota { margin-block: var(--sp-7) var(--sp-5); }
.pie__legale { color: var(--color-testo-tenue); }
.pie__legale p { margin-bottom: var(--sp-3); }
.pie__link-legali { display: flex; flex-wrap: wrap; gap: 0 var(--sp-5); }
.pie__link-legali a { display: inline-flex; align-items: center; min-height: var(--touch-min); }
.cta-mobile {
  position: fixed;
  inset: auto 0 0;
  z-index: var(--z-sticky-cta);
  display: none;
  align-items: center;
  gap: var(--sp-2);
  min-height: var(--altezza-cta-mobile);
  padding: var(--sp-2) var(--gutter);
  padding-bottom: calc(var(--sp-2) + env(safe-area-inset-bottom, 0px));
  background: var(--bianco);
  border-top: var(--linea) solid var(--grigio-200);
  box-shadow: var(--ombra-2);
  transform: translateY(100%);
  visibility: hidden;
  transition: transform var(--dur-2) var(--ease), visibility 0s linear var(--dur-2);
}
.cta-mobile--visibile {
  transform: translateY(0);
  visibility: visible;
  transition: transform var(--dur-2) var(--ease);
}
.cta-mobile__azione {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  min-width: var(--sp-8);
  min-height: var(--altezza-controllo);
  color: var(--blu-800);
  font-size: var(--testo--1);
  font-weight: var(--peso-forte);
  text-decoration: none;
}
.cta-mobile__principale { flex: 1; }
@media (max-width: 767px) {
  .cta-mobile:not([hidden]) { display: flex; }
}
[data-entra] {
  transition:
    opacity var(--dur-3) var(--ease) var(--ritardo, 0ms),
    translate var(--dur-3) var(--ease) var(--ritardo, 0ms);
}
.da-entrare { opacity: 0; translate: 0 var(--entrata-y); }
[data-disegno] .ill__tratto {
  transition: stroke-dashoffset var(--dur-disegno) var(--ease) calc(var(--ritardo, 0ms) + 150ms);
}
.da-disegnare .ill__tratto { stroke-dasharray: 1; stroke-dashoffset: 1; }
[data-disegno] .ill__tinta,
[data-disegno] .ill__tinta-forte { transition: opacity var(--dur-3) var(--ease) calc(var(--ritardo, 0ms) + 500ms); }
.da-disegnare .ill__tinta,
.da-disegnare .ill__tinta-forte { opacity: 0; }
@media print {
  .da-entrare { opacity: 1; translate: none; }
  .da-disegnare .ill__tratto { stroke-dashoffset: 0; }
}
.todo {
  background: var(--segnaposto-fondo);
  border: 2px dashed var(--segnaposto-bordo);
  color: var(--segnaposto-testo);
  padding: 0.1em 0.35em;
  border-radius: var(--raggio-sm);
  font-family: var(--font-mono);
  font-size: 0.9em;
}
