/**
 * fonts.css — Auto-hébergement des polices web ProfOrga (1.40.26)
 *
 * Pourquoi auto-héberger ?
 *   - Cohérence avec le positionnement « sans tracker tiers » du site.
 *     Google Fonts log l'IP du visiteur à chaque chargement (RGPD : un
 *     jugement allemand de 2022 a explicitement condamné l'usage non
 *     auto-hébergé pour cette raison).
 *   - Pas de requête DNS supplémentaire vers fonts.googleapis.com puis
 *     fonts.gstatic.com → premier rendu plus rapide.
 *   - Possibilité de durcir la CSP (suppression de domaines externes).
 *
 * Polices utilisées :
 *   - Public Sans (corps de texte) : weights 400, 500, 600, 700
 *   - Bricolage Grotesque (display) : weights 500, 600, 700
 *   - Caveat (accent manuscrit)     : weights 500, 600, 700
 *
 * Toutes sous licence SIL Open Font License 1.1, auto-hébergement libre.
 *
 * Format : woff2 uniquement (>99% des navigateurs depuis 2018).
 * Découpage : latin et latin-ext, chargés à la demande via unicode-range.
 * font-display: swap : le texte s'affiche immédiatement avec la fallback
 *   système, puis bascule sur la web font dès qu'elle est dispo.
 */

/* =========================================================================
 * PUBLIC SANS
 * ========================================================================= */

/* Public Sans 400 — latin-ext (accents européens, devises) */
@font-face {
    font-family: 'Public Sans';
    font-style: normal;
    font-display: swap;
    font-weight: 400;
    src: url('../fonts/public-sans-400-ext.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;
}
/* Public Sans 400 — latin (texte courant français) */
@font-face {
    font-family: 'Public Sans';
    font-style: normal;
    font-display: swap;
    font-weight: 400;
    src: url('../fonts/public-sans-400.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;
}

/* Public Sans 500 */
@font-face {
    font-family: 'Public Sans';
    font-style: normal;
    font-display: swap;
    font-weight: 500;
    src: url('../fonts/public-sans-500-ext.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: 'Public Sans';
    font-style: normal;
    font-display: swap;
    font-weight: 500;
    src: url('../fonts/public-sans-500.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;
}

/* Public Sans 600 */
@font-face {
    font-family: 'Public Sans';
    font-style: normal;
    font-display: swap;
    font-weight: 600;
    src: url('../fonts/public-sans-600-ext.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: 'Public Sans';
    font-style: normal;
    font-display: swap;
    font-weight: 600;
    src: url('../fonts/public-sans-600.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;
}

/* Public Sans 700 */
@font-face {
    font-family: 'Public Sans';
    font-style: normal;
    font-display: swap;
    font-weight: 700;
    src: url('../fonts/public-sans-700-ext.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: 'Public Sans';
    font-style: normal;
    font-display: swap;
    font-weight: 700;
    src: url('../fonts/public-sans-700.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;
}

/* =========================================================================
 * BRICOLAGE GROTESQUE (display / headings)
 * ========================================================================= */

@font-face {
    font-family: 'Bricolage Grotesque';
    font-style: normal;
    font-display: swap;
    font-weight: 500;
    src: url('../fonts/bricolage-grotesque-500-ext.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: 'Bricolage Grotesque';
    font-style: normal;
    font-display: swap;
    font-weight: 500;
    src: url('../fonts/bricolage-grotesque-500.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: 'Bricolage Grotesque';
    font-style: normal;
    font-display: swap;
    font-weight: 600;
    src: url('../fonts/bricolage-grotesque-600-ext.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: 'Bricolage Grotesque';
    font-style: normal;
    font-display: swap;
    font-weight: 600;
    src: url('../fonts/bricolage-grotesque-600.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: 'Bricolage Grotesque';
    font-style: normal;
    font-display: swap;
    font-weight: 700;
    src: url('../fonts/bricolage-grotesque-700-ext.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: 'Bricolage Grotesque';
    font-style: normal;
    font-display: swap;
    font-weight: 700;
    src: url('../fonts/bricolage-grotesque-700.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;
}

/* =========================================================================
 * CAVEAT (accent manuscrit — utilisé pour les surlignements ludiques)
 * ========================================================================= */

@font-face {
    font-family: 'Caveat';
    font-style: normal;
    font-display: swap;
    font-weight: 500;
    src: url('../fonts/caveat-500-ext.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: 'Caveat';
    font-style: normal;
    font-display: swap;
    font-weight: 500;
    src: url('../fonts/caveat-500.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: 'Caveat';
    font-style: normal;
    font-display: swap;
    font-weight: 600;
    src: url('../fonts/caveat-600-ext.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: 'Caveat';
    font-style: normal;
    font-display: swap;
    font-weight: 600;
    src: url('../fonts/caveat-600.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: 'Caveat';
    font-style: normal;
    font-display: swap;
    font-weight: 700;
    src: url('../fonts/caveat-700-ext.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: 'Caveat';
    font-style: normal;
    font-display: swap;
    font-weight: 700;
    src: url('../fonts/caveat-700.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;
}
