/* ==========================================================================
   privacy.html — «la targa dati del sito»
   L'oggetto è la targa d'acciaio con i dati del sito: un comparatore a leva la
   collauda riga per riga (e con JS controlla davvero il browser di chi guarda).
   Poi il percorso dei dati, dal modulo alla casella fino alla cancellazione, e
   l'informativa con indice fisso.
   Prefisso .prv-  ·  Stato base = stato finale: gli stati di partenza esistono
   solo sotto html.js-motion con le classi messe da privacy.js.
   Spie: blu = verificato · ambra = qualcosa non torna nel browser di chi guarda.
   ========================================================================== */

.page-privacy {
  --prv-ambra: #E0A050;
  --prv-ambra-soft: rgba(224, 160, 80, .1);
  --prv-ambra-testo: #EDC08A;
  --prv-inciso: #A8B1B8;          /* scritte incise sull'acciaio: più chiare di --fg-3, restano AA anche sul riflesso */
}

/* ---------- Spia (LED) con i tre stati ---------- */
.prv-led {
  display: inline-block;
  flex: none;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: #2A3136;
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, .8), 0 0 0 2px #3B444A, 0 0 0 3px rgba(0, 0, 0, .45);
  transition: background-color 260ms var(--ease-out), box-shadow 260ms var(--ease-out);
}
.prv-row[data-state="ok"] dd .prv-led, .prv-led[data-state="ok"] {
  background: var(--blu);
  box-shadow: 0 0 0 2px #3B444A, 0 0 0 3px rgba(0, 0, 0, .45), 0 0 12px rgba(140, 192, 230, .85);
}
.prv-row[data-state="wait"] dd .prv-led, .prv-led[data-state="wait"] {
  background: var(--prv-ambra);
  box-shadow: 0 0 0 2px #3B444A, 0 0 0 3px rgba(0, 0, 0, .45), 0 0 12px rgba(224, 160, 80, .8);
}

/* ---------- Testata ---------- */
.prv-hero {
  isolation: isolate;
  padding-top: calc(var(--header-h) + clamp(32px, 5vw, 72px));
}
.prv-hero::before {
  /* tavola tecnica appena accennata dietro la targa */
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background-image:
    linear-gradient(rgba(195, 202, 208, .055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(195, 202, 208, .055) 1px, transparent 1px);
  background-size: 48px 48px;
  background-position: -1px -1px;
  -webkit-mask-image: radial-gradient(56% 60% at 74% 44%, #000 0%, transparent 80%);
  mask-image: radial-gradient(56% 60% at 74% 44%, #000 0%, transparent 80%);
}
.prv-hero__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: clamp(40px, 6vw, 72px); align-items: center; }
.prv-hero__text { display: grid; gap: 20px; align-content: start; }
.prv-hero__text h1 { font-size: clamp(2.5rem, 7vw, 4.4rem); }
.prv-hero__object { position: relative; min-width: 0; }
@media (min-width: 1100px) {
  /* in alto, non al centro: se la targa cambia altezza di una riga il testo accanto non si muove */
  .prv-hero__grid { grid-template-columns: minmax(0, 5fr) minmax(0, 6.4fr); column-gap: clamp(48px, 5.4vw, 88px); align-items: start; }
  .prv-hero__text { padding-top: clamp(20px, 3vw, 48px); }
  .prv-hero__text h1 { font-size: clamp(3rem, 4.4vw, 4.4rem); }
}

/* ---------- La targa ---------- */
.prv-plate {
  --prv-gw: 150px;                 /* larghezza della colonna del comparatore */
  container: prv-plate / inline-size;
  position: relative;
  isolation: isolate;
  border-radius: var(--radius-l);
  padding: clamp(26px, 3vw, 40px) clamp(18px, 3vw, 38px) clamp(20px, 2.6vw, 30px);
  background:
    var(--brushed),
    linear-gradient(180deg, #2A3035 0%, #1E2327 55%, #191D20 100%);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, .1),
    inset 0 -1px 0 rgba(0, 0, 0, .55),
    0 2px 0 rgba(0, 0, 0, .6),
    0 30px 60px -28px rgba(0, 0, 0, .85),
    0 70px 120px -60px rgba(0, 0, 0, .75);
}
/* luce del puntatore: un livello già disegnato (.light-spot del core) che si sposta in transform,
   sotto smusso e viti. La targa non si ridisegna quando il puntatore si muove. */
.prv-plate > .light-spot { --lx: .5; --ly: 0; --spot-w: 1.32; --spot-h: .84; --spot-color: rgba(255, 255, 255, .08); z-index: -2; }
.prv-plate::before {
  /* smusso lavorato */
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  border-radius: inherit;
  padding: 1px;
  background: linear-gradient(180deg, rgba(255, 255, 255, .24), rgba(255, 255, 255, .05) 30%, rgba(0, 0, 0, .4));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask-composite: exclude;
  pointer-events: none;
}
.prv-plate::after {
  /* quattro viti agli angoli */
  --v: radial-gradient(circle at 50% 50%, #C9D0D5 0 1.2px, #7A848B 1.6px 3.2px, #2A3035 3.6px 4.6px, transparent 5px);
  content: "";
  position: absolute;
  inset: 12px;
  z-index: -1;
  pointer-events: none;
  background:
    var(--v) left top / 10px 10px no-repeat,
    var(--v) right top / 10px 10px no-repeat,
    var(--v) left bottom / 10px 10px no-repeat,
    var(--v) right bottom / 10px 10px no-repeat;
}
.prv-plate__head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px 16px;
  padding: 0 4px 16px;
  border-bottom: 1px solid var(--line-strong);
}
.prv-plate__title, .prv-plate__code {
  font-family: var(--font-mono);
  font-size: .7rem;
  font-weight: 500;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.prv-plate__title { color: var(--fg); }
.prv-plate__code { color: var(--fg-3); font-size: .62rem; }

.prv-plate__body { position: relative; padding-right: var(--prv-gw); }

.prv-rows { margin: 0; }
.prv-row {
  display: grid;
  grid-template-columns: minmax(0, 10rem) minmax(0, 1fr);
  gap: 4px 18px;
  align-items: center;
  min-height: 58px;
  padding: 10px 4px;
  border-bottom: 1px solid var(--line);
}
.prv-row dt {
  font-family: var(--font-mono);
  font-size: .64rem;
  font-weight: 500;
  letter-spacing: .13em;
  line-height: 1.5;
  text-transform: uppercase;
  color: var(--prv-inciso);
}
.prv-row dd {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 0;
  color: var(--fg);
  font-size: .98rem;
  line-height: 1.4;
}
.prv-row__v { flex: 1 1 auto; min-width: 0; }
.prv-row[data-state="wait"] .prv-row__v { color: var(--prv-ambra-testo); }
.prv-row dd .prv-led { margin-left: auto; }

.prv-plate__live {
  display: flex;
  gap: 10px;
  align-items: baseline;
  margin: 16px 4px 0;
  color: var(--fg-2);
  font-size: var(--fs-small);
  line-height: 1.5;
}
.prv-plate__live::before {
  content: "";
  flex: none;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  transform: translateY(-2px);
  background: var(--blu);
  box-shadow: 0 0 8px rgba(140, 192, 230, .8);
}
.prv-plate__live.is-warn::before, .prv-plate__live.is-pending::before { background: var(--prv-ambra); box-shadow: 0 0 8px rgba(224, 160, 80, .8); }
.prv-plate__live.is-pending { color: var(--fg-3); }
.prv-plate__live:empty { display: none; }

.prv-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 22px;
  margin: 18px 4px 0;
  padding: 0;
  list-style: none;
  font-family: var(--font-mono);
  font-size: .6rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--fg-3);
}
.prv-legend li { display: inline-flex; align-items: center; gap: 9px; }
.prv-legend .prv-led { width: 9px; height: 9px; }

/* ---------- Il comparatore a leva sulla sua guida ---------- */
.prv-gauge {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: var(--prv-gw);
  pointer-events: none;
}
.prv-gauge__rail {
  /* la guida: una barra d'acciaio rettificata con i fine corsa */
  position: absolute;
  top: 6px;
  bottom: 6px;
  left: calc(var(--prv-gw) * 132 / 190 - 4px);
  width: 8px;
  border-radius: 3px;
  background: linear-gradient(90deg, #3E464C 0%, #C9D0D5 35%, #8E979E 55%, #4A5359 100%);
  box-shadow: 0 0 0 1px rgba(0, 0, 0, .5), 0 6px 14px -6px rgba(0, 0, 0, .8);
}
.prv-gauge__rail::before, .prv-gauge__rail::after {
  content: "";
  position: absolute;
  left: -5px;
  right: -5px;
  height: 7px;
  border-radius: 2px;
  background: linear-gradient(180deg, #D5DADD, #6F7980);
  box-shadow: 0 1px 0 rgba(0, 0, 0, .6);
}
.prv-gauge__rail::before { top: -4px; }
.prv-gauge__rail::after { bottom: -4px; }
.prv-gauge__car {
  /* a riposo: in fondo alla guida, collaudo finito */
  position: absolute;
  left: 0;
  right: 0;
  bottom: 4px;
  height: calc(var(--prv-gw) * 120 / 190);
}
.prv-gauge__clamp {
  /* il morsetto che stringe la guida */
  position: absolute;
  top: 50%;
  left: calc(var(--prv-gw) * 132 / 190 - 11px);
  width: 22px;
  height: 40%;
  transform: translateY(-50%);
  border-radius: 4px;
  background: linear-gradient(90deg, #5B656C, #D5DADD 45%, #7A848B);
  box-shadow: 0 0 0 1px rgba(0, 0, 0, .55);
}
.prv-gauge__svg {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  overflow: visible;
}
/* l'ombra del quadrante, già disegnata: un disco sfumato 10 px più in basso. Prima era un
   drop-shadow sull'SVG, ricalcolato a ogni passo del collaudo; ora il carrello si sposta in
   transform con la sua ombra, e durante il collaudo sta su un livello proprio. */
.prv-gauge__car::before {
  content: "";
  position: absolute;
  left: calc(var(--prv-gw) * 77 / 190 - 14px);
  top: calc(var(--prv-gw) * 5 / 190 - 4px);
  width: calc(var(--prv-gw) * 110 / 190 + 28px);
  aspect-ratio: 1;
  border-radius: 50%;
  background: radial-gradient(closest-side, rgba(0, 0, 0, .55) calc(100% - 24px), rgba(0, 0, 0, .3) calc(100% - 14px), rgba(0, 0, 0, .08) calc(100% - 7px), rgba(0, 0, 0, 0));
  pointer-events: none;
}
.js-motion .prv-plate.is-armed .prv-gauge__car { will-change: transform; }
.prv-gauge__zero { font-family: var(--font-mono); font-size: 9px; font-weight: 600; fill: #15181A; }
.prv-gauge__unit { font-family: var(--font-mono); font-size: 6.4px; letter-spacing: .06em; fill: #5B656C; }

/* targa stretta: righe su due livelli, comparatore più piccolo */
@container prv-plate (max-width: 540px) {
  .prv-plate__body { --prv-gw: 66px; }
  .prv-row { grid-template-columns: minmax(0, 1fr); gap: 4px; min-height: 64px; padding: 11px 2px; }
  .prv-row dd { font-size: .94rem; gap: 10px; }
  .prv-gauge__rail { width: 5px; left: calc(var(--prv-gw) * 132 / 190 - 2.5px); }
  .prv-gauge__rail::before, .prv-gauge__rail::after { left: -3px; right: -3px; height: 5px; }
  .prv-gauge__clamp { width: 12px; left: calc(var(--prv-gw) * 132 / 190 - 6px); }
}

/* Collaudo in corso (solo con movimento): le spie delle righe da provare partono spente */
.js-motion .prv-plate.is-armed .prv-row[data-test]:not(.is-tested) dd .prv-led {
  background: #2A3136;
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, .8), 0 0 0 2px #3B444A, 0 0 0 3px rgba(0, 0, 0, .45);
}
.js-motion .prv-plate.is-armed .prv-row[data-test].is-probing { background: linear-gradient(90deg, transparent, rgba(140, 192, 230, .06)); }
.prv-row { transition: background-color 300ms var(--ease-out); }

/* ---------- Il percorso dei dati (alluminio) ---------- */
.prv-path .section-head { max-width: 46rem; }
.prv-line { --node: 34px; --prv-gap: clamp(16px, 2.4vw, 32px); position: relative; }
.prv-line__list {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 28px var(--prv-gap);
  margin: 0;
  padding: 0;
  list-style: none;
}
.prv-st { position: relative; display: grid; gap: 8px; align-content: start; padding-top: calc(var(--node) + 18px); }
.prv-st__node {
  position: absolute;
  top: 0;
  left: 0;
  display: grid;
  place-items: center;
  width: var(--node);
  height: var(--node);
  border-radius: 50%;
  background: radial-gradient(circle at 40% 30%, #FFFFFF, #E3E7E9 60%, #C9D0D5);
  box-shadow: inset 0 0 0 1px rgba(21, 24, 26, .18), 0 6px 14px -8px rgba(21, 24, 26, .5);
  z-index: 1;
}
.prv-st .prv-led { background: #BCC3C8; box-shadow: inset 0 1px 1px rgba(0, 0, 0, .25); }
.prv-st[data-state="ok"] .prv-led { background: var(--blu-scuro); box-shadow: 0 0 0 3px rgba(47, 110, 158, .16), 0 0 10px rgba(47, 110, 158, .6); }
.prv-st__title { font-size: 1.12rem; font-stretch: 108%; }
.prv-st__text { color: var(--fg-2); font-size: var(--fs-small); line-height: 1.55; }
.prv-st__state { font-family: var(--font-mono); font-size: .6rem; font-weight: 500; letter-spacing: .14em; line-height: 1.5; text-transform: uppercase; color: var(--fg-3); }
.prv-st__n { color: var(--fg-3); }
.prv-st[data-state="ok"] .prv-st__state { color: var(--blu-scuro); }
/* la linea fra le stazioni: piena dove il dato è passato, tratteggiata dove deve ancora passare */
.prv-st:not(:last-child)::before {
  content: "";
  position: absolute;
  top: calc(var(--node) / 2 - 1px);
  left: var(--node);
  width: calc(100% + var(--prv-gap) - var(--node));
  height: 0;
  border-top: 2px dashed rgba(21, 24, 26, .28);
}
.prv-st[data-state="ok"]::before { border-top-style: solid; border-top-color: var(--blu-scuro); }
/* la scintilla: il dato. Parte dal nodo della stazione 01; a riposo è spenta (il viaggio è già finito) */
.prv-spark {
  position: absolute;
  top: calc(var(--node) / 2);
  left: calc(var(--node) / 2);
  width: 0;
  height: 0;
  z-index: 2;
  opacity: 0;
}
.prv-spark i {
  position: absolute;
  left: -6px;
  top: -6px;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: radial-gradient(circle, #FFF3DC 0 22%, #F0B45E 45%, rgba(224, 160, 80, 0) 72%);
  box-shadow: 0 0 14px 4px rgba(224, 160, 80, .55);
}
.prv-spark i::after {
  /* il lampo all'arrivo: una persona legge */
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 46px;
  height: 46px;
  margin: -23px 0 0 -23px;
  border-radius: 50%;
  background: radial-gradient(closest-side, rgba(255, 214, 150, .75), rgba(224, 160, 80, 0));
  opacity: 0;
}
/* prima del viaggio: le stazioni dopo la prima sono spente e la linea è tratteggiata; si accendono al passaggio */
.js-motion .prv-line.is-armed .prv-st:not(:first-child):not(.is-reached) .prv-led { background: #BCC3C8; box-shadow: inset 0 1px 1px rgba(0, 0, 0, .25); }
.js-motion .prv-line.is-armed .prv-st:not(:first-child):not(.is-reached) .prv-st__state { color: var(--fg-3); }
.js-motion .prv-line.is-armed .prv-st:not(:last-child):not(.is-passed)::before { border-top-style: dashed; border-top-color: rgba(21, 24, 26, .28); }
.prv-line .prv-led, .prv-line .prv-st__state { transition: background-color 260ms var(--ease-out), box-shadow 260ms var(--ease-out), color 260ms var(--ease-out); }
.prv-st::before { transition: border-color 260ms var(--ease-out); }
.prv-spark.is-hit i::after { animation: prv-hit 620ms var(--ease-out) both; }
@keyframes prv-hit {
  0% { opacity: 0; transform: scale(.3); }
  18% { opacity: 1; transform: scale(1); }
  100% { opacity: 0; transform: scale(1.35); }
}

/* in verticale su schermi stretti: la linea scende a sinistra */
@media (max-width: 899px) {
  .prv-line__list { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .prv-st { padding: 4px 0 30px calc(var(--node) + 18px); min-height: calc(var(--node) + 30px); }
  .prv-st:last-child { padding-bottom: 0; }
  .prv-st:not(:last-child)::before {
    top: var(--node);
    left: calc(var(--node) / 2 - 1px);
    width: 0;
    height: calc(100% - var(--node));
    border-top: 0;
    border-left: 2px dashed rgba(21, 24, 26, .28);
  }
  .prv-st[data-state="ok"]::before { border-top: 0; border-left: 2px solid var(--blu-scuro); }
  .js-motion .prv-line.is-armed .prv-st:not(:last-child):not(.is-passed)::before { border-left-style: dashed; border-left-color: rgba(21, 24, 26, .28); }
}

/* ---------- L'informativa ---------- */
.prv-doc__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: clamp(28px, 4vw, 48px); }
.prv-doc__head { display: grid; gap: 16px; margin-bottom: clamp(28px, 4vw, 44px); }
.prv-doc__intro { color: var(--fg-2); max-width: 40em; }

.prv-toc {
  border-radius: var(--radius);
  background: var(--brushed), linear-gradient(180deg, #20262A, #1A1E21);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .06), inset 0 0 0 1px var(--line), 0 18px 30px -24px rgba(0, 0, 0, .8);
}
.prv-toc__sum {
  display: flex;
  align-items: center;
  gap: 14px;
  min-height: 52px;
  padding: 10px 14px 10px 18px;
  cursor: pointer;
  list-style: none;
  font-family: var(--font-mono);
  font-size: .7rem;
  font-weight: 500;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--fg);
}
.prv-toc__sum::-webkit-details-marker { display: none; }
.prv-toc__count { color: var(--fg-3); font-size: .6rem; }
.prv-toc__sum .acc__knob { margin-left: auto; }
.prv-toc[open] .prv-toc__sum .acc__knob { transform: rotate(180deg); }
.prv-toc[open] .prv-toc__sum .acc__knob::after { transform: rotate(0deg); }
.prv-toc__nav { padding: 2px 10px 14px; }
.prv-toc__list { position: relative; margin: 0; padding: 0 0 0 14px; list-style: none; }
.prv-toc__list::before {
  /* la guida su cui scorre l'indicatore */
  content: "";
  position: absolute;
  left: 4px;
  top: 8px;
  bottom: 8px;
  width: 2px;
  border-radius: 1px;
  background: linear-gradient(180deg, rgba(0, 0, 0, .6), rgba(255, 255, 255, .06));
}
.prv-toc__list a {
  display: flex;
  align-items: baseline;
  gap: 10px;
  min-height: 44px;
  padding: 11px 8px 11px 10px;
  border-radius: var(--radius-s);
  color: var(--fg-2);
  font-size: .92rem;
  line-height: 1.35;
  text-decoration: none;
  transition: color var(--t-micro) var(--ease-out), background-color var(--t-micro) var(--ease-out);
}
.prv-toc__list a:hover { color: var(--fg); background: rgba(255, 255, 255, .03); }
.prv-toc__list a[aria-current="true"] { color: var(--fg); }
.prv-toc__n { flex: none; font-family: var(--font-mono); font-size: .6rem; letter-spacing: .1em; color: var(--fg-3); }
.prv-toc__list a[aria-current="true"] .prv-toc__n { color: var(--blu); }
.prv-toc__mark {
  /* l'indicatore: un cursore d'acciaio con la spia, scatta sulla voce che state leggendo */
  position: absolute;
  left: 0;
  top: 0;
  width: 10px;
  height: 22px;
  margin-top: 11px;
  border-radius: 3px;
  background: linear-gradient(90deg, #7A848B, #EEF1F3 45%, #98A2A9);
  box-shadow: 0 0 0 1px rgba(0, 0, 0, .5), 0 3px 6px rgba(0, 0, 0, .5);
  transform: translateY(var(--y, 0px));
  transition: transform 520ms var(--ease-clack), opacity 200ms var(--ease-out);
  pointer-events: none;
}
.prv-toc__mark::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 4px;
  height: 4px;
  margin: -2px 0 0 -2px;
  border-radius: 50%;
  background: var(--blu);
  box-shadow: 0 0 6px rgba(140, 192, 230, .9);
}
.prv-toc__mark.is-off { opacity: 0; }
/* WebKit (Safari): il cursore dell'indice resta su un livello suo. Senza, a ogni cambio di voce
   la transizione lo promuove e a fine scatto lo rimette nell'indice, che Safari ridipinge. */
html.is-webkit .prv-toc__mark { will-change: transform; }
/* col mouse le voci possono stare più strette (44px restano per il tocco) */
@media (pointer: fine) {
  .prv-toc__list a { min-height: 38px; padding-block: 8px; }
  .prv-toc__mark { margin-top: 8px; }
}

.prv-sec { padding: clamp(26px, 3vw, 36px) 0; border-top: 1px solid var(--line); }
.prv-sec:last-child { border-bottom: 1px solid var(--line); }
.prv-sec h3 { display: flex; align-items: baseline; gap: 14px; }
.prv-sec__n { flex: none; font-family: var(--font-mono); font-size: .66rem; font-weight: 500; letter-spacing: .14em; color: var(--fg-3); }
.prv-sec > p, .prv-sec > ul { max-width: 40em; color: var(--fg-2); }
.prv-sec > * + * { margin-top: 14px; }
.prv-list { margin-bottom: 0; padding: 0; list-style: none; display: grid; gap: 8px; }
.prv-list li { position: relative; padding-left: 22px; }
.prv-list li::before { content: ""; position: absolute; left: 2px; top: .8em; width: 10px; height: 1.5px; background: var(--acciaio); }
.prv-facts { margin-bottom: 0; padding: 0; list-style: none; display: grid; gap: 14px; }
.prv-facts li { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 14px; align-items: baseline; }
.prv-facts .prv-led { width: 10px; height: 10px; transform: translateY(1px); }
.prv-facts strong { color: var(--fg); font-weight: 620; }

.prv-sec strong { color: var(--fg); font-weight: 620; }
/* il titolare: i dati di chi risponde, in un riquadro da copiare */
.prv-card {
  width: fit-content;
  max-width: 100%;
  padding: 16px 20px;
  border-radius: var(--radius-s);
  border: 1px solid var(--line);
  background: rgba(255, 255, 255, .025);
  color: var(--fg-2);
  font-style: normal;
  line-height: 1.75;
}
/* il nome della società non si spezza: se non ci sta, va a capo prima di «di», mai dentro il cognome */
.prv-card__nome { display: inline-block; }
.prv-card strong { display: block; margin-bottom: 4px; line-height: 1.4; }
.prv-stamp-line { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; }

@media (min-width: 1024px) {
  .prv-doc__grid { grid-template-columns: minmax(0, 17rem) minmax(0, 1fr); column-gap: clamp(48px, 6vw, 96px); align-items: start; }
}
/* l'indice resta accanto al testo solo se ci sta tutto in altezza */
@media (min-width: 1024px) and (min-height: 700px) {
  .prv-doc__side { position: sticky; top: calc(var(--header-h) + 28px); }
}

/* ---------- Movimento ridotto ---------- */
@media (prefers-reduced-motion: reduce) {
  .prv-toc__mark { transition: none; }
}

/* ---------- Stampa: resta il documento ---------- */
@media print {
  .prv-hero__object, .prv-path, .prv-doc__side { display: none !important; }
  .prv-doc__grid { display: block; }
  .prv-sec { break-inside: avoid; }
}
