/* I gatti con la valigia — fondamenta condivise
   Font in locale (nessuna richiesta a server esterni), token, reset, focus. */

@font-face { font-family: "DM Sans"; font-style: normal; font-weight: 400; font-display: swap;
  src: url("../fonts/dm-sans-latin-400-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "DM Sans"; font-style: normal; font-weight: 400; font-display: swap;
  src: url("../fonts/dm-sans-latin-ext-400-normal.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "DM Sans"; font-style: italic; font-weight: 400; font-display: swap;
  src: url("../fonts/dm-sans-latin-400-italic.woff2") format("woff2"); }
@font-face { font-family: "DM Sans"; font-style: normal; font-weight: 500; font-display: swap;
  src: url("../fonts/dm-sans-latin-500-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "DM Sans"; font-style: normal; font-weight: 500; font-display: swap;
  src: url("../fonts/dm-sans-latin-ext-500-normal.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1E00-1E9F, U+20A0-20AB, U+20AD-20C0, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "DM Sans"; font-style: normal; font-weight: 700; font-display: swap;
  src: url("../fonts/dm-sans-latin-700-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "DM Sans"; font-style: normal; font-weight: 700; font-display: swap;
  src: url("../fonts/dm-sans-latin-ext-700-normal.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1E00-1E9F, U+20A0-20AB, U+20AD-20C0, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "DM Serif Display"; font-style: normal; font-weight: 400; font-display: swap;
  src: url("../fonts/dm-serif-display-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "DM Serif Display"; font-style: italic; font-weight: 400; font-display: swap;
  src: url("../fonts/dm-serif-display-latin-400-italic.woff2") format("woff2"); }

:root {
  /* Colori: ruoli, non decorazioni */
  --inchiostro: #1C1C1C;      /* testo, azioni principali */
  --bianco: #FFFFFF;          /* fondo */
  --salvia: #BAD3CD;          /* sezioni che raccontano */
  --salvia-profonda: #9CC0B6; /* il fondo del logo, «adottato» */
  --salvia-linea: #9CC0B6;
  --cipria: #F1C2B0;          /* sezioni che chiedono aiuto, Dona */
  --menta: #B3DDD3;           /* evidenziatore, conferme */
  --ambra: #FBE3B8;           /* «richieste in corso», avvisi lievi */
  --errore: #A3261B;          /* 7,4:1 su bianco */
  --grafite: #55534E;         /* testo secondario, 7,7:1 su bianco */
  --superficie: #F2EFEA;      /* segnaposto, fondi neutri */
  --linea: #DCD9D2;           /* divisori */
  --scuro-linea: #3A3936;

  /* Caratteri */
  --sans: "DM Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --serif: "DM Serif Display", Georgia, "Times New Roman", serif;

  /* Spazi: multipli di 4 */
  --s1: 4px; --s2: 8px; --s3: 12px; --s4: 16px; --s5: 24px; --s6: 32px; --s7: 48px; --s8: 64px; --s9: 96px;

  --margine: 16px;
  --larghezza: 1200px;
  --altezza-pulsante: 52px;
  --tocco: 44px;
}
@media (min-width: 768px) { :root { --margine: 32px; } }
@media (min-width: 1280px) { :root { --margine: 40px; } }

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: var(--sans);
  font-size: 17px;
  line-height: 1.55;
  color: var(--inchiostro);
  background: var(--bianco);
  -webkit-font-smoothing: antialiased;
}
img, svg { display: block; max-width: 100%; }
h1, h2, h3, h4, p, ul, ol, figure, blockquote { margin: 0; }
button, input, select, textarea { font: inherit; color: inherit; }
a { color: inherit; text-underline-offset: 0.22em; text-decoration-thickness: 1.5px; }
a:hover { color: var(--grafite); }

:focus-visible { outline: 3px solid var(--inchiostro); outline-offset: 3px; }
.sfondo-scuro :focus-visible { outline-color: var(--bianco); }

.serif { font-family: var(--serif); font-weight: 400; }
.visivamente-nascosto {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.salta-al-contenuto {
  position: absolute; left: -9999px; top: 8px; z-index: 100;
  background: var(--inchiostro); color: var(--bianco); padding: 10px 16px; font-weight: 700;
}
.salta-al-contenuto:focus { left: 8px; }

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

/* Titoli e main ricevono il focus a ogni cambio pagina per i lettori di schermo: niente anello visibile lì. */
h1[tabindex="-1"]:focus, main[tabindex="-1"]:focus { outline: none; }
