:root {
    /* Palette claire — crème + logotype bleu-ardoise / terracotta */
    --color-primaire: #B85F47;       /* terracotta, accents et survols */
    --color-primaire-fonce: #9C4A33; /* terracotta lisible en petit texte */
    --color-secondaire: #36527A;     /* bleu-ardoise du logotype */
    --color-texte: #2E2A26;          /* anthracite chaud */
    --color-texte-doux: #6B6259;
    --color-fond: #F5EDE3;           /* crème */
    --color-fond-halo: #FDF8F1;      /* crème clair, centre du dégradé */
    --color-fond-bord: #EDE0CF;      /* crème teintée, bords du dégradé */
    --color-bordure: #E0D2BF;
    --font-heading: "Playfair Display", Georgia, serif;
    --font-body: "Source Sans 3", system-ui, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

body {
    font-family: var(--font-body);
    background-color: var(--color-fond);
    color: var(--color-texte);
    line-height: 1.6;
    font-weight: 300;
    -webkit-font-smoothing: antialiased;
}

a { color: inherit; text-decoration: none; }

/* ÉCRAN UNIQUE — un seul bloc centré, sans scroll */
.ecran {
    min-height: 100svh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: clamp(1.5rem, 5vh, 3rem) 1.5rem;
    text-align: center;
    background: radial-gradient(circle at 50% 35%,
        var(--color-fond-halo) 0%,
        var(--color-fond) 55%,
        var(--color-fond-bord) 100%);
}
.bloc {
    width: 100%;
    max-width: 600px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: clamp(1.25rem, 3.5vh, 2.25rem);
}

/* 1. Wordmark — .bloc__logo porte sur le <picture>, l'img remplit son conteneur */
.bloc__logo {
    display: block;
    width: min(320px, 72vw);
}
.bloc__logo img {
    display: block;
    width: 100%;
    height: auto;
}

/* 2. Message d'attente */
.bloc__titre {
    font-family: var(--font-heading);
    font-weight: 600;
    line-height: 1.1;
    font-size: clamp(2.1rem, 6.5vw, 3.6rem);
    color: var(--color-primaire);
}

/* 3. Accroche */
.bloc__accroche {
    font-family: var(--font-heading);
    font-style: italic;
    font-weight: 400;
    font-size: clamp(1.05rem, 2.4vw, 1.35rem);
    color: var(--color-texte);
    max-width: 44ch;
}

/* 4. Réseaux sociaux — cible tactile large, survol terracotta */
.reseaux__list {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 1rem 1.75rem;
}
.reseaux__icone {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .55rem;
    width: 82px;
    padding: .7rem .25rem;
    border-radius: 8px;
    color: var(--color-secondaire);
    transition: color .25s ease, background-color .25s ease, transform .25s ease;
}
.reseaux__icone svg { width: 32px; height: 32px; display: block; }
.reseaux__nom {
    font-size: .75rem;
    letter-spacing: .5px;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--color-texte-doux);
    transition: color .25s ease;
}
.reseaux__icone:hover,
.reseaux__icone:focus-visible {
    color: var(--color-primaire-fonce);
    background: rgba(255, 255, 255, .55);
    transform: translateY(-3px);
}
.reseaux__icone:hover .reseaux__nom,
.reseaux__icone:focus-visible .reseaux__nom { color: var(--color-primaire-fonce); }
.reseaux__icone:focus-visible {
    outline: 2px solid var(--color-primaire-fonce);
    outline-offset: 3px;
}

.bloc__collaboration {
    font-family: var(--font-heading);
    font-weight: bold;
    font-size: .92rem;
    color: var(--color-texte);
    max-width: 44ch;
}
/* 5. Contact — discret, une ligne */
.bloc__contact { font-size: .92rem; color: var(--color-texte-doux); }
.bloc__contact a {
    color: var(--color-primaire-fonce);
    border-bottom: 1px solid var(--color-bordure);
    padding-bottom: 1px;;
    transition: border-color .3s ease;

}
.bloc__contact a:hover { border-color: var(--color-primaire-fonce); }

/* 6. Pied — copyright et mentions légales, volontairement discrets */
.pied {
    font-size: .78rem;
    color: var(--color-texte-doux);
    line-height: 1.5;
}
.pied__sep { margin: 0 .35rem; opacity: .6; }
.pied a {
    color: var(--color-texte-doux);
    border-bottom: 1px solid var(--color-bordure);
    transition: color .3s ease, border-color .3s ease;
}
.pied a:hover,
.pied a:focus-visible {
    color: var(--color-primaire-fonce);
    border-color: var(--color-primaire-fonce);
}

/* PAGE DOCUMENT (mentions légales) — lecture longue, scroll assumé */
.doc {
    max-width: 46rem;
    margin: 0 auto;
    padding: clamp(2.5rem, 8vh, 4.5rem) 1.5rem;
}
.doc__titre {
    font-family: var(--font-heading);
    font-weight: 600;
    font-size: clamp(1.8rem, 5vw, 2.6rem);
    color: var(--color-primaire);
    margin-bottom: 2rem;
}
.doc__section { margin-bottom: 2.25rem; }
.doc__section h2 {
    font-family: var(--font-heading);
    font-weight: 600;
    font-size: 1.15rem;
    color: var(--color-secondaire);
    margin-bottom: .6rem;
}
.doc__section p { margin-bottom: .9rem; }
.doc__section a {
    color: var(--color-primaire-fonce);
    border-bottom: 1px solid var(--color-bordure);
}
.doc__section a:hover { border-color: var(--color-primaire-fonce); }
/* Marqueur de remplissage — volontairement criard pour qu'un oubli se voie */
.doc__todo {
    background: #FFE9A8;
    color: #7A5A00;
    padding: 0 .3em;
    border-radius: 3px;
    font-weight: 600;
}
.doc__retour {
    margin-top: 3rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--color-bordure);
    font-size: .92rem;
}
.doc__retour a { color: var(--color-primaire-fonce); }

/* Apparition à l'ouverture */
@keyframes apparition {
    from { opacity: 0; transform: translateY(18px); }
    to   { opacity: 1; transform: none; }
}
.bloc > * {
    animation: apparition .7s ease both;
}
.bloc > *:nth-child(2) { animation-delay: .10s; }
.bloc > *:nth-child(3) { animation-delay: .18s; }
.bloc > *:nth-child(4) { animation-delay: .26s; }
.bloc > *:nth-child(5) { animation-delay: .34s; }
.bloc > *:nth-child(6) { animation-delay: .42s; }

@media (prefers-reduced-motion: reduce) {
    .bloc > * { animation: none; }
    .reseaux__icone { transition: none; }
    .reseaux__icone:hover { transform: none; }
}

/* La rangée des 5 icônes demande ~520px : en dessous elle casse en 4+1.
   On bascule alors sur 2 par ligne (2+2+1), plus régulier. */
@media (max-width: 574px) {
    .reseaux__list { gap: 1.1rem 0; }
    .reseaux__list > li { flex: 0 0 50%; display: flex; justify-content: center; }
}

/* Écrans courts (paysage mobile) : on resserre pour rester sur un écran */
@media (max-height: 620px) {
    .ecran { padding: 1rem 1.5rem; }
    .bloc { gap: .8rem; }
    .bloc__logo { width: min(210px, 46vw); }
    .bloc__titre { font-size: clamp(1.5rem, 4.4vw, 2rem); }
    .bloc__accroche { font-size: 1rem; }
    .reseaux__icone { padding: .35rem .25rem; gap: .4rem; }
    .reseaux__icone svg { width: 28px; height: 28px; }
    .pied { font-size: .72rem; }
}
