/*
 * IBM Plex Sans, servito dal server del portale.
 *
 * Perché qui e non da un servizio di font: il browser di chiunque apra una
 * pagina del portale (accesso, attivazione, pannelli) chiedeva il carattere a
 * fonts.bunny.net, che riceveva così indirizzo IP e browser di ogni visitatore,
 * anche prima dell'accesso (GDPR artt. 5.1.c, 28 e 44; ISO 27001 A.5.14).
 * Serviti da qui, i file non escono dal portale e la CSP non ammette più
 * nessuna origine esterna per stili e font.
 *
 * Origine dei file: pacchetto npm @fontsource/ibm-plex-sans 5.3.0 (Fontsource,
 * https://github.com/fontsource/font-files, cartella fonts/google/ibm-plex-sans;
 * font «IBM Plex Sans» di Google Fonts, versione v23), scaricato dal registro
 * npm e verificato con l'integrità pubblicata dal registro
 * (sha512-CbE4CbbEEZJX860XyUiRpsksXIQR8Rp2XDva2VO53NJox9tVNtusrysd2x5YkUEY3ErQ66W1IiiQL8/wihhw5w==).
 * Licenza SIL Open Font License 1.1, copyright IBM Corp.: testo in OFL.txt,
 * copiato senza modifiche dal pacchetto. Sono gli stessi byte che fonts.bunny.net
 * serviva al portale (confrontati file per file con SHA-256 il 17/09/2026):
 * l'aspetto a schermo non cambia.
 *
 * Solo ciò che il portale usa:
 * - pesi 400, 500, 600 e 700, quelli che Filament chiedeva al servizio di font
 *   (le pagine pubbliche ne usano tre, 400, 500 e 600); nessun corsivo, come
 *   prima: il browser lo inclina da sé;
 * - due sottoinsiemi di caratteri: `latin` (tutto l'italiano, compresi « » ’ – —
 *   € …) e `latin-ext`, per i nomi propri con lettere che l'italiano non ha
 *   (per esempio ș, ț, ă del romeno, ł del polacco, č del croato). Senza il
 *   secondo quelle lettere comparirebbero in un altro carattere in mezzo al
 *   nome. Grazie a `unicode-range` il browser scarica `latin-ext` solo nelle
 *   pagine che contengono una di quelle lettere;
 * - `font-display: swap`, come prima: il testo compare subito con il
 *   carattere di sistema e passa a IBM Plex Sans appena il file è arrivato.
 * Cirillico, greco e vietnamita, che il servizio offriva, non servono.
 *
 * L'ordine delle regole è quello del servizio (prima `latin`, poi
 * `latin-ext`): per i pochi caratteri presenti in entrambi gli intervalli
 * (U+0304, U+0308, U+0329) vince la regola dichiarata per ultima, come prima.
 *
 * SHA-256 dei file (verificati da tests/Feature/Sicurezza/FontLocaleTest.php):
 * 3b646991d30055a93a4ecc499713d4347953a74a947ecab435ab72070cbdab0e  ibm-plex-sans-latin-400-normal.woff2
 * 0717336fb31fcdcde4b8deb3675bb4a0f7f6d484864afcd6751ac29975962203  ibm-plex-sans-latin-500-normal.woff2
 * 8960851d691c054ed38e259bdcf1a6190d157b4203ed5bb32c632a863fb8ec2f  ibm-plex-sans-latin-600-normal.woff2
 * 42e7b0c143c19df9d99fd896e76b48f846edf0902d200bc29796b34d12c33aa7  ibm-plex-sans-latin-700-normal.woff2
 * c93d2a12aaa280f68b9ab7b726ff8dfedda67c99ef9abed047c1847a1cc6d583  ibm-plex-sans-latin-ext-400-normal.woff2
 * 2846035d85100f84c79393f80f1442d4ee720129ab8b3ffa8969aae281db8c6c  ibm-plex-sans-latin-ext-500-normal.woff2
 * b25dfd4f979e442ae1e25cd0894463434cf01ba21ac1a35d39f4a82bd4cc060e  ibm-plex-sans-latin-ext-600-normal.woff2
 * 92f0392bd74fa3955bfa92f6ec747e7246d3567b6f46b32ddbaf271104836ab8  ibm-plex-sans-latin-ext-700-normal.woff2
 * d0283623ef57e722fd0eb688a8041589670c608ab780cd3612d06ba6f153d3fd  OFL.txt
 *
 * Aggiornare i file vuol dire aggiornare anche questo elenco (il test lo
 * pretende): un file cambiato in silenzio non deve passare inosservato.
 */

/* latin */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(./ibm-plex-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: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url(./ibm-plex-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: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(./ibm-plex-sans-latin-600-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: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(./ibm-plex-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;
}

/* latin-ext */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(./ibm-plex-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: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url(./ibm-plex-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+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: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(./ibm-plex-sans-latin-ext-600-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: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(./ibm-plex-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+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;
}
