/*
 * Self-hosted Inter — replaces the former Google Fonts <link> so the strict CSP
 * can keep font-src 'self' (no fonts.googleapis.com / fonts.gstatic.com).
 *
 * Inter v20 is a variable font: a single woff2 per subset covers the whole
 * weight axis, so one @font-face per subset with `font-weight: 100 900` serves
 * every weight the UI uses (400 body, 600 headings). Subsets: latin + latin-ext
 * (covers Italian and the European languages the platform ships).
 *
 * Licensed under the SIL Open Font License 1.1 (see ../vendor/fonts/inter/).
 */

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("../vendor/fonts/inter/inter-latin.260c81a4759b.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: 'Inter';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("../vendor/fonts/inter/inter-latinext.1ad231aac0a8.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;
}

/*
 * Self-hosted Newsreader + Hanken Grotesk (editorial restyle, F0). Same rule as
 * Inter: self-hosted variable woff2, one @font-face per subset, so the strict CSP
 * keeps font-src 'self' (no fonts.googleapis.com / fonts.gstatic.com). GDPR: zero
 * third-party font requests.
 *
 * These @font-face are INERT until a selector uses the family (F1a onwards): a
 * declared-but-unused family is not fetched, so F0 renders identically. Preload
 * of the above-the-fold weights is intentionally deferred to F1a (first real use)
 * to avoid the "preloaded but not used" console warning.
 *
 * Newsreader is a variable serif (wght 200-800, opsz 6-72 — the optical-size axis
 * gives the wordmark its editorial character); Italic is a separate variable file.
 * Hanken Grotesk is a variable sans (wght 100-900; the UI uses 400-700). The wide
 * font-weight descriptors avoid synthetic bold. Licensed OFL 1.1 (see
 * ../vendor/fonts/{newsreader,hanken-grotesk}/OFL.txt; regen recipe in README.md).
 */

@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url("../vendor/fonts/newsreader/newsreader-latin.25f0373d8ded.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: 'Newsreader';
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url("../vendor/fonts/newsreader/newsreader-latinext.d922782a5a78.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: 'Newsreader';
  font-style: italic;
  font-weight: 200 800;
  font-display: swap;
  src: url("../vendor/fonts/newsreader/newsreader-italic-latin.d2f92e537257.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: 'Newsreader';
  font-style: italic;
  font-weight: 200 800;
  font-display: swap;
  src: url("../vendor/fonts/newsreader/newsreader-italic-latinext.0c854779c9ad.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: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("../vendor/fonts/hanken-grotesk/hanken-latin.842915d3b690.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: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("../vendor/fonts/hanken-grotesk/hanken-latinext.4c2582f36197.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;
}

/*
 * Self-hosted Cabin + IBM Plex Mono (CAT-SCHEDA-3, D4). Stessa regola delle
 * altre tre famiglie: woff2 sottoinsiemi serviti da noi, così la CSP resta
 * `font-src 'self'` e nessun visitatore di una scheda pubblica viene
 * consegnato a un dominio Google per il fatto di aver guardato un annuncio.
 *
 * A VERBALE: sono i font della SCHEDA PUBBLICA, non dell'applicazione. È una
 * scelta deliberata del titolare — l'identità di ciò che il pubblico vede può
 * essere diversa da quella dello strumento con cui si lavora — e il file resta
 * uno solo perché due copie di un `@font-face` divergono al primo aggiornamento.
 *
 * Cabin è VARIABILE (assi wght 400-700 + wdth): un file per subset copre i
 * quattro pesi del design. IBM Plex Mono è statico e qui serve un peso solo
 * (400, per riferimento e didascalie): due file, ~18 KB in tutto.
 *
 * SIL Open Font License 1.1 per entrambi (OFL.txt accanto ai woff2).
 */

@font-face {
  font-family: 'Cabin';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("../vendor/fonts/cabin/cabin-latin.b325354dbc9e.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: 'Cabin';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("../vendor/fonts/cabin/cabin-latinext.a42fbd586405.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 Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../vendor/fonts/plex-mono/plex-mono-latin.6fdb42dbb10f.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 Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../vendor/fonts/plex-mono/plex-mono-latinext.cb95ae0ed846.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;
}

/* ---------------------------------------------------------------------------
 * IBM Plex Sans — la scheda professionale del catalogo (CAT-FORM-2 B1, D9)
 *
 * TERZA IDENTITÀ, E DELIBERATA. La scheda pubblica e il percorso a passi
 * parlano a chi compra e a chi vende casa sua: Cabin, fondo crema. La scheda
 * professionale parla a un operatore che passa la giornata su una griglia di
 * campi: Plex Sans, grigi freddi, densità alta. Sono due mestieri diversi, e
 * il design li ha disegnati diversi apposta.
 *
 * VARIABILE E POTATA. Il file originale porta due assi (`wdth`, `wght`
 * 100-700) e pesa 106 KB nei due sottoinsiemi; qui l'asse della larghezza è
 * fissato a 100 e i pesi ridotti a 400-600 — i tre che il design usa — e i due
 * file scendono a **49 KB** (32 KB latin + 17 KB latin-ext). Un peso che non
 * si usa è banda che si paga a ogni prima visita.
 *
 * Ricetta e comandi: `core/static/core/vendor/fonts/README.md`.
 * ------------------------------------------------------------------------ */

@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url("../vendor/fonts/plex-sans/plex-sans-latin.4c694d2b8271.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: 400 600;
  font-display: swap;
  src: url("../vendor/fonts/plex-sans/plex-sans-latinext.d4c28b9694ad.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;
}
