/* Source Sans Pro — fichiers locaux (dossier font/), aucun appel externe :
   la police est servie depuis le même serveur, aucune donnée du visiteur ne
   part vers un tiers, conformément à l'article 9 de la politique. */
@font-face {
    font-family: 'Source Sans Pro';
    src: url('font/SourceSansPro-Regular.ttf') format('truetype');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Source Sans Pro';
    src: url('font/SourceSansPro-It.ttf') format('truetype');
    font-weight: 400;
    font-style: italic;
    font-display: swap;
}
@font-face {
    font-family: 'Source Sans Pro';
    src: url('font/SourceSansPro-Semibold.ttf') format('truetype');
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Source Sans Pro';
    src: url('font/SourceSansPro-Bold.ttf') format('truetype');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

:root {
    --orange: #f7942e;          /* couleur de marque : aplats, bordures, filets */
    --orange-texte: #b35f06;    /* variante foncée : liens et petits textes (4.6:1 sur blanc) */
    --orange-fonce: #e5851d;    /* survol des boutons */
    --orange-pale: #fdf3e7;     /* fonds teintés */
    --texte: #33404d;
    --doux: #5a6a7a;
    --fond: #f5f3f0;
    --bord: #e0d9d1;
}

* { box-sizing: border-box; }

body {
    margin: 0;
    padding: 2rem 1rem;
    background: var(--fond);
    color: var(--texte);
    font-family: 'Source Sans Pro', system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
    line-height: 1.6;
}

.page {
    max-width: 46rem;
    margin: 0 auto;
    background: #fff;
    border: 1px solid var(--bord);
    border-top: 4px solid var(--orange);
    border-radius: 10px;
    padding: 2rem;
}

.logo {
    display: block;
    width: 190px;
    max-width: 60%;
    height: auto;
    margin-bottom: 1.2rem;
}

.asso {
    margin: 0;
    text-transform: uppercase;
    letter-spacing: .12em;
    font-size: .78rem;
    font-weight: 700;
    color: var(--orange-texte);
}

h1 { font-size: 1.7rem; margin: .3rem 0 .8rem; font-weight: 700; }
h2 { font-size: 1.28rem; font-weight: 600; }
h3 { font-size: 1.02rem; font-weight: 600; margin-top: 1.6rem; color: var(--orange-texte); }

.intro { color: var(--doux); margin-top: 0; }

.politique {
    max-height: 26rem;
    overflow-y: auto;
    border: 1px solid var(--bord);
    border-radius: 8px;
    padding: 0 1.2rem;
    margin: 1.5rem 0;
    background: #fffdfb;
    font-size: .93rem;
}

.politique h2 { margin-top: 1.4rem; color: var(--texte); }
.politique:focus-visible { outline: 2px solid var(--orange-texte); outline-offset: 2px; }
.maj { color: var(--doux); font-style: italic; }

.champ { margin-bottom: 1rem; }
.champ label { display: block; font-weight: 600; margin-bottom: .3rem; }

.champ input {
    width: 100%;
    padding: .6rem .7rem;
    border: 1px solid var(--bord);
    border-radius: 6px;
    font-size: 1rem;
    font-family: inherit;
    color: var(--texte);
    background: #fff;
}

.champ input:focus {
    outline: 2px solid var(--orange);
    outline-offset: 1px;
    border-color: var(--orange);
}

.case {
    display: flex;
    gap: .7rem;
    align-items: flex-start;
    background: var(--orange-pale);
    border: 1px solid #f3ddc0;
    border-radius: 6px;
    padding: .9rem 1rem;
    margin: 1.2rem 0;
}

.case input {
    margin-top: .35rem;
    width: 1.1rem;
    height: 1.1rem;
    flex: none;
    accent-color: var(--orange-texte);
}

.case label { font-weight: 600; }

.mention { font-size: .85rem; color: var(--doux); }

button {
    background: var(--orange);
    color: #2b1a08;               /* brun très foncé sur orange : 7.4:1 */
    border: 0;
    border-radius: 6px;
    padding: .75rem 1.5rem;
    font-size: 1rem;
    font-family: inherit;
    font-weight: 700;
    cursor: pointer;
}

button:hover { background: var(--orange-fonce); }
button:focus-visible { outline: 2px solid var(--texte); outline-offset: 2px; }

.erreurs {
    background: #fdecec;
    border: 1px solid #f0b6b6;
    border-radius: 6px;
    padding: .8rem 1.2rem;
    margin: 1.2rem 0;
    color: #8c1f1f;
}

.erreurs p { margin: 0 0 .4rem; font-weight: 600; }
.erreurs ul { margin: 0; padding-left: 1.2rem; }

.confirmation {
    background: var(--orange-pale);
    border: 1px solid #f3ddc0;
    border-left: 4px solid var(--orange);
    border-radius: 8px;
    padding: 1.2rem 1.5rem;
    margin: 1.5rem 0;
}

.confirmation h2 { margin-top: 0; color: var(--orange-texte); }

.pied {
    margin-top: 2rem;
    padding-top: 1rem;
    border-top: 1px solid var(--bord);
    font-size: .85rem;
    color: var(--doux);
}

a { color: var(--orange-texte); }
a:hover { color: #8a4a04; }
