/* ==========================================================================
   Maud Planner V2 — Design system
   Couleurs : bleu #145da0 en fond, orange #e18b22 boutons + accents,
   pêches #ffc0a7 / #fad5c7 en touches discrètes.
   Polices : Poppins (titres), Montserrat (sous-titres), Comfortaa (texte).
   Mobile-first : styles de base pour 375 px, media queries en min-width.
   ========================================================================== */

:root {
    --bleu: #145da0;
    --bleu-fonce: #0e4578;
    --orange: #e18b22;
    --orange-fonce: #c47513;
    --peche: #ffc0a7;
    --peche-pale: #fad5c7;
    --orange-texte: #a05500;   /* orange foncé lisible sur fond clair (AA) */
    --encre: #22303f;          /* texte foncé sur fond clair */
    --blanc: #ffffff;
    --creme: #fdf6f2;          /* fond clair des zones de lecture */

    --police-titres: "Poppins", sans-serif;
    --police-sous-titres: "Montserrat", sans-serif;
    --police-texte: "Comfortaa", sans-serif;

    /* Échelle typographique (mobile) */
    --taille-h1: 1.75rem;
    --taille-h2: 1.45rem;
    --taille-h3: 1.1rem;
    --taille-texte: 1rem;
    --taille-petit: 0.85rem;

    --rayon: 16px;
    --espace-section: 3.5rem;
}

@media (min-width: 768px) {
    :root {
        --taille-h1: 2.6rem;
        --taille-h2: 1.9rem;
        --taille-h3: 1.25rem;
        --taille-texte: 1.06rem;
        --espace-section: 5rem;
    }
}

/* --- Base ------------------------------------------------------------- */

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

html {
    scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }
}

body {
    margin: 0;
    background-color: var(--bleu);
    color: var(--blanc);
    font-family: var(--police-texte);
    font-size: var(--taille-texte);
    line-height: 1.75;
    -webkit-font-smoothing: antialiased;
}

h1,
h2 {
    font-family: var(--police-titres);
    font-weight: 700;
    line-height: 1.25;
    margin: 0 0 1rem;
}

h1 {
    font-size: var(--taille-h1);
}

h2 {
    font-size: var(--taille-h2);
}

h3 {
    font-family: var(--police-sous-titres);
    font-weight: 600;
    font-size: var(--taille-h3);
    line-height: 1.35;
    margin: 0 0 0.75rem;
}

p {
    margin: 0 0 1rem;
}

img {
    max-width: 100%;
    height: auto;
    display: block;
}

a {
    color: inherit;
}

/* --- Conteneur --------------------------------------------------------- */

.conteneur {
    width: 100%;
    max-width: 1080px;
    margin: 0 auto;
    padding: 0 1.25rem;
}

.conteneur--etroit {
    max-width: 760px;
}

/* --- Boutons (orange = action) ----------------------------------------- */

.bouton {
    display: inline-block;
    font-family: var(--police-sous-titres);
    font-weight: 700;
    font-size: 1rem;
    color: var(--encre);
    background-color: var(--orange);
    border: none;
    border-radius: 999px;
    padding: 0.95rem 2rem;
    text-decoration: none;
    text-align: center;
    cursor: pointer;
    transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

.bouton:hover,
.bouton:focus-visible {
    background-color: #e89b3d;
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.25);
}

.bouton:focus-visible {
    outline: 3px solid var(--peche);
    outline-offset: 3px;
}

.bouton--large {
    width: 100%;
}

@media (min-width: 768px) {
    .bouton--large {
        width: auto;
        min-width: 320px;
    }
}

.lien-discret {
    color: var(--blanc);
    text-decoration: underline;
    text-underline-offset: 4px;
    font-size: var(--taille-petit);
}

@media (prefers-reduced-motion: reduce) {
    .bouton {
        transition: none;
    }

    .bouton:hover,
    .bouton:focus-visible {
        transform: none;
        box-shadow: none;
    }
}

/* --- En-tête ------------------------------------------------------------ */

.entete {
    padding: 1rem 0;
}

.entete .conteneur {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.entete__logo {
    width: 48px;
    height: 48px;
    border-radius: 50%;
}

.entete__nom {
    font-family: var(--police-titres);
    font-weight: 700;
    font-size: 1.1rem;
    color: var(--blanc);
    text-decoration: none;
}

/* --- Sections ----------------------------------------------------------- */

.section {
    padding: var(--espace-section) 0;
}

/* Zone de lecture claire posée sur le fond bleu */
.section--claire {
    background-color: var(--creme);
    color: var(--encre);
}

.section--claire .lien-discret {
    color: var(--bleu);
}

/* Bandeau bleu (texte blanc) */
.section--bleue {
    background-color: var(--bleu);
    color: var(--blanc);
}

.surtitre {
    font-family: var(--police-sous-titres);
    font-weight: 700;
    font-size: var(--taille-petit);
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--peche-pale);
    margin: 0 0 0.5rem;
}

.section--claire .surtitre {
    color: var(--orange-texte);
}

.souligne-peche {
    background-image: linear-gradient(transparent 62%, var(--peche-pale) 62%);
    padding: 0 0.15em;
}

/* --- Hero ---------------------------------------------------------------- */

.hero {
    padding: 2.5rem 0 var(--espace-section);
    text-align: center;
}

.hero h1 {
    margin-bottom: 1.25rem;
}

.hero__sous-titre {
    max-width: 640px;
    margin: 0 auto 2rem;
}

@media (min-width: 768px) {
    .hero {
        padding-top: 4rem;
    }
}

/* --- Cartes et listes ----------------------------------------------------- */

.carte {
    background-color: var(--blanc);
    color: var(--encre);
    border-radius: var(--rayon);
    padding: 1.5rem;
    box-shadow: 0 4px 16px rgba(20, 93, 160, 0.08);
}

.liste-symptomes {
    list-style: none;
    padding: 0;
    margin: 0 0 1.5rem;
    display: grid;
    gap: 0.9rem;
}

.liste-symptomes li {
    position: relative;
    padding-left: 1.6rem;
}

.liste-symptomes li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.55em;
    width: 0.7rem;
    height: 0.7rem;
    border-radius: 50%;
    background-color: var(--peche);
}

/* --- Portrait ------------------------------------------------------------- */

.portrait {
    display: grid;
    gap: 1.5rem;
    align-items: start;
}

.portrait__photo {
    width: 150px;
    height: 150px;
    border-radius: 50%;
    object-fit: cover;
    margin: 0 auto;
    border: 4px solid var(--peche-pale);
}

@media (min-width: 768px) {
    .portrait {
        grid-template-columns: auto 1fr;
        gap: 2.5rem;
    }

    .portrait__photo {
        width: 190px;
        height: 190px;
        margin: 0;
    }
}

/* --- Témoignages ----------------------------------------------------------- */

.temoignages {
    display: grid;
    gap: 1.25rem;
    margin: 2rem 0 0;
}

@media (min-width: 768px) {
    .temoignages {
        grid-template-columns: repeat(2, 1fr);
    }
}

.temoignage {
    background-color: var(--blanc);
    color: var(--encre);
    border-radius: var(--rayon);
    padding: 1.5rem;
    margin: 0;
    border-left: 5px solid var(--peche);
}

.temoignage p {
    font-style: normal;
}

.temoignage footer {
    font-family: var(--police-sous-titres);
    font-weight: 600;
    color: var(--bleu);
    margin-top: 0.75rem;
}

/* --- Appel final (entrée du parcours) -------------------------------------- */

.appel-final {
    text-align: center;
}

.appel-final h2 {
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
}

.appel-final .bouton {
    margin-top: 1.5rem;
}

.appel-final__note {
    font-size: var(--taille-petit);
    opacity: 0.85;
    margin-top: 1rem;
}

/* --- Pied de page ------------------------------------------------------------ */

.pied {
    background-color: var(--bleu-fonce);
    padding: 2.5rem 0 2rem;
    font-size: var(--taille-petit);
}

.pied__liens {
    list-style: none;
    padding: 0;
    margin: 0 0 1.5rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1.5rem;
    justify-content: center;
}

.pied__liens a {
    color: var(--blanc);
    text-decoration: none;
}

.pied__liens a:hover,
.pied__liens a:focus-visible {
    text-decoration: underline;
}

.pied__reseaux {
    display: flex;
    justify-content: center;
    gap: 1.25rem;
    margin-bottom: 1.5rem;
}

.pied__reseaux a {
    color: var(--blanc);
    text-decoration: underline;
    text-underline-offset: 4px;
}

.pied__copyright {
    text-align: center;
    opacity: 0.8;
    margin: 0;
}

/* --- Parcours d'orientation ---------------------------------------------- */

.ecran {
    padding: 2rem 0 var(--espace-section);
    text-align: center;
}

.ecran__question {
    max-width: 620px;
    margin-left: auto;
    margin-right: auto;
}

.fil-parcours {
    font-family: var(--police-sous-titres);
    font-size: var(--taille-petit);
    margin-bottom: 2rem;
}

.fil-parcours a {
    color: var(--blanc);
    text-decoration: underline;
    text-underline-offset: 4px;
    opacity: 0.85;
}

.fil-parcours a:hover,
.fil-parcours a:focus-visible {
    opacity: 1;
}

.fil-parcours--clair a {
    color: var(--bleu);
    opacity: 1;
}

.cartes-choix {
    display: grid;
    gap: 1rem;
    margin: 2rem auto 0;
    max-width: 760px;
    text-align: left;
}

@media (min-width: 768px) {
    .cartes-choix--deux {
        grid-template-columns: repeat(2, 1fr);
    }
}

.carte-choix {
    display: block;
    background-color: var(--blanc);
    color: var(--encre);
    border-radius: var(--rayon);
    padding: 1.5rem;
    text-decoration: none;
    border: 2px solid transparent;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
    transition: transform 0.2s ease, border-color 0.2s ease;
}

.carte-choix:hover,
.carte-choix:focus-visible {
    border-color: var(--orange);
    transform: translateY(-3px);
}

.carte-choix:focus-visible {
    outline: 3px solid var(--peche);
    outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
    .carte-choix {
        transition: none;
    }

    .carte-choix:hover,
    .carte-choix:focus-visible {
        transform: none;
    }
}

.carte-choix h2,
.carte-choix h3 {
    font-family: var(--police-sous-titres);
    font-weight: 700;
    font-size: 1.05rem;
    color: var(--bleu);
    margin-bottom: 0.5rem;
}

.carte-choix p {
    margin: 0;
    font-size: 0.95rem;
}

.carte-choix--reponse {
    padding: 1.15rem 1.5rem;
}

.carte-choix--reponse p {
    font-family: var(--police-sous-titres);
    font-weight: 600;
    color: var(--encre);
}

/* --- Écran résultat -------------------------------------------------------- */

.pastille-bientot {
    display: inline-block;
    font-family: var(--police-sous-titres);
    font-weight: 700;
    font-size: var(--taille-petit);
    color: var(--encre);
    background-color: var(--peche-pale);
    border-radius: 999px;
    padding: 0.4rem 1.1rem;
    margin-bottom: 1rem;
}

.encart {
    background-color: var(--blanc);
    color: var(--encre);
    border-radius: var(--rayon);
    padding: 1.5rem;
    margin: 1.25rem auto 0;
    max-width: 620px;
    text-align: left;
}

.encart h2,
.encart h3 {
    font-family: var(--police-sous-titres);
    font-weight: 700;
    font-size: 1rem;
    color: var(--bleu);
    margin-bottom: 0.5rem;
}

.encart p {
    font-size: 0.95rem;
    margin-bottom: 0.75rem;
}

.encart p:last-child {
    margin-bottom: 0;
}

.encart .bouton {
    padding: 0.7rem 1.5rem;
    font-size: 0.95rem;
}

.liens-secondaires {
    margin-top: 2rem;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 1rem 2rem;
}

/* --- Blocs [TEXTE À VENIR] --------------------------------------------------
   Blocs de substitution en attendant les textes rédigés par Maud.
   Volontairement très visibles pour ne pas partir en ligne par accident. */

.a-venir {
    border: 2px dashed var(--orange);
    border-radius: var(--rayon);
    padding: 1.25rem 1.5rem;
    margin: 0 0 1rem;
    font-style: italic;
    opacity: 0.9;
}

.a-venir::before {
    content: "[TEXTE À VENIR]";
    display: block;
    font-family: var(--police-sous-titres);
    font-style: normal;
    font-weight: 700;
    font-size: var(--taille-petit);
    letter-spacing: 0.08em;
    color: var(--orange-texte);
    margin-bottom: 0.5rem;
}

.hero .a-venir::before,
.section--bleue .a-venir::before {
    color: var(--peche-pale);
}

.a-venir p:last-child {
    margin-bottom: 0;
}

/* --- Page Orga Rescue --------------------------------------------------------- */

.phases {
    display: grid;
    gap: 1.25rem;
    margin-top: 2rem;
}

@media (min-width: 768px) {
    .phases {
        grid-template-columns: repeat(2, 1fr);
        /* Chaque carte prend sa hauteur naturelle : la plus courte
           n'est pas étirée avec du vide en bas. */
        align-items: start;
    }
}

.phase {
    background-color: var(--blanc);
    color: var(--encre);
    border-radius: var(--rayon);
    padding: 1.75rem 1.5rem;
    box-shadow: 0 4px 16px rgba(20, 93, 160, 0.08);
}

.phase__badge {
    display: inline-block;
    font-family: var(--police-sous-titres);
    font-weight: 700;
    font-size: var(--taille-petit);
    color: var(--encre);
    background-color: var(--peche-pale);
    border-radius: 999px;
    padding: 0.35rem 1rem;
    margin-bottom: 0.85rem;
}

.phase h3 {
    color: var(--bleu);
}

.phase ul {
    list-style: none;
    padding: 0;
    margin: 0 0 1rem;
    display: grid;
    gap: 0.6rem;
}

.phase ul li {
    position: relative;
    padding-left: 1.4rem;
    font-size: 0.95rem;
}

.phase ul li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.55em;
    width: 0.55rem;
    height: 0.55rem;
    border-radius: 50%;
    background-color: var(--peche);
}

.pour-qui {
    display: grid;
    gap: 1.25rem;
    margin-top: 2rem;
}

@media (min-width: 768px) {
    .pour-qui {
        grid-template-columns: repeat(2, 1fr);
    }
}

.pour-qui__carte {
    background-color: var(--blanc);
    color: var(--encre);
    border-radius: var(--rayon);
    padding: 1.75rem 1.5rem;
    border-top: 5px solid var(--peche);
}

.pour-qui__carte--non {
    border-top-color: var(--bleu);
}

.pour-qui__carte h3 {
    color: var(--bleu);
}

/* --- Page Produits digitaux --------------------------------------------------- */

.produits {
    display: grid;
    gap: 1.25rem;
    margin-top: 2rem;
}

@media (min-width: 768px) {
    .produits {
        grid-template-columns: repeat(2, 1fr);
    }

    .produits > .produit-carte--pleine {
        grid-column: 1 / -1;
    }
}

.produit-carte {
    background-color: var(--blanc);
    color: var(--encre);
    border-radius: var(--rayon);
    padding: 1.75rem 1.5rem;
    box-shadow: 0 4px 16px rgba(20, 93, 160, 0.08);
}

.produit-carte h3 {
    color: var(--bleu);
    margin-bottom: 0.35rem;
}

.produit-carte .pastille-bientot {
    margin: 0.5rem 0 0.75rem;
}

.produit-carte__promesse {
    font-family: var(--police-sous-titres);
    font-weight: 600;
    color: var(--orange-texte);
}

.produit-carte__prix {
    font-family: var(--police-titres);
    font-weight: 700;
    font-size: 1.5rem;
    color: var(--bleu);
    margin: 0.25rem 0 0.75rem;
}

.produit-carte--bundle .produit-carte__prix {
    font-size: 1.9rem;
}

.prix-resultat {
    font-family: var(--police-titres);
    font-weight: 700;
    font-size: 1.9rem;
    margin: 0.5rem 0 0.25rem;
}

.prix-resultat__note {
    font-size: var(--taille-petit);
    opacity: 0.9;
    margin: 0 0 1rem;
}

/* Économie mise en avant sous un prix (ex. formule 30 jours) */
.produit-carte__economie {
    display: inline-block;
    font-family: var(--police-sous-titres);
    font-weight: 600;
    font-size: var(--taille-petit);
    color: var(--encre);
    background-color: var(--peche-pale);
    border-radius: 999px;
    padding: 0.35rem 0.9rem;
    margin: 0 0 0.75rem;
}

/* Formule secondaire proposée en petit (ex. « commencer plus petit ») */
.produit-carte__formule-alt {
    font-size: var(--taille-petit);
    opacity: 0.85;
}

.produit-carte p {
    font-size: 0.95rem;
    margin-bottom: 0.5rem;
}

.produit-carte p:last-child {
    margin-bottom: 0;
}

.produit-carte__note {
    font-size: var(--taille-petit);
    opacity: 0.75;
}

.produit-carte--bundle {
    border: 2px solid var(--orange);
}

.pastille-gratuit {
    display: inline-block;
    font-family: var(--police-sous-titres);
    font-weight: 700;
    font-size: var(--taille-petit);
    color: var(--encre);
    background-color: var(--orange);
    border-radius: 999px;
    padding: 0.4rem 1.1rem;
    margin-bottom: 1rem;
}

.carte-crash-test {
    background-color: var(--blanc);
    color: var(--encre);
    border-radius: var(--rayon);
    padding: 2rem 1.5rem;
    max-width: 620px;
    margin: 0 auto;
    text-align: center;
    box-shadow: 0 8px 28px rgba(0, 0, 0, 0.16);
}

.carte-crash-test h2 {
    color: var(--bleu);
}

/* --- Page RDV (Calendly) ------------------------------------------------------ */

.calendly-conteneur {
    background-color: var(--blanc);
    border-radius: var(--rayon);
    padding: 0.5rem;
    box-shadow: 0 4px 16px rgba(20, 93, 160, 0.08);
    margin-top: 1.5rem;
}

.calendly-conteneur noscript p {
    padding: 1rem;
    margin: 0;
}

/* --- Blog : liste des articles ------------------------------------------------ */

.articles-liste {
    display: grid;
    gap: 1.25rem;
    margin-top: 2rem;
}

@media (min-width: 768px) {
    .articles-liste {
        grid-template-columns: repeat(2, 1fr);
    }
}

.carte-article {
    display: block;
    background-color: var(--blanc);
    color: var(--encre);
    border-radius: var(--rayon);
    padding: 1.75rem 1.5rem;
    text-decoration: none;
    border: 2px solid transparent;
    box-shadow: 0 4px 16px rgba(20, 93, 160, 0.08);
    transition: transform 0.2s ease, border-color 0.2s ease;
}

.carte-article:hover,
.carte-article:focus-visible {
    border-color: var(--orange);
    transform: translateY(-3px);
}

.carte-article:focus-visible {
    outline: 3px solid var(--peche);
    outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
    .carte-article {
        transition: none;
    }

    .carte-article:hover,
    .carte-article:focus-visible {
        transform: none;
    }
}

.carte-article h3 {
    color: var(--bleu);
    margin-bottom: 0.4rem;
}

.carte-article p {
    font-size: 0.95rem;
    margin: 0;
}

.carte-article time {
    display: block;
    font-family: var(--police-sous-titres);
    font-size: var(--taille-petit);
    opacity: 0.7;
    margin-bottom: 0.5rem;
}

.etat-vide {
    background-color: var(--blanc);
    color: var(--encre);
    border-radius: var(--rayon);
    padding: 2rem 1.5rem;
    text-align: center;
    max-width: 620px;
    margin: 2rem auto 0;
}

/* --- Blog : article ------------------------------------------------------------ */

.fil-ariane {
    font-family: var(--police-sous-titres);
    font-size: var(--taille-petit);
    margin-bottom: 1.5rem;
}

.fil-ariane ol {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.fil-ariane li + li::before {
    content: "›";
    margin-right: 0.35rem;
    opacity: 0.6;
}

.fil-ariane a {
    color: var(--bleu);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.article-en-tete {
    padding: 2rem 0 2.5rem;
}

.article-en-tete time {
    display: block;
    font-family: var(--police-sous-titres);
    font-size: var(--taille-petit);
    opacity: 0.85;
    margin-top: 0.75rem;
}

.article-corps h2 {
    color: var(--bleu);
    margin-top: 2.5rem;
}

.article-corps h3 {
    color: var(--bleu);
    margin-top: 2rem;
}

.article-corps ul,
.article-corps ol {
    padding-left: 1.4rem;
    margin: 0 0 1rem;
    display: grid;
    gap: 0.5rem;
}

.article-corps blockquote {
    margin: 1.5rem 0;
    padding: 1rem 1.5rem;
    background-color: var(--peche-pale);
    border-left: 5px solid var(--peche);
    border-radius: 0 var(--rayon) var(--rayon) 0;
}

.article-corps blockquote p:last-child {
    margin-bottom: 0;
}

/* --- FAQ (details/summary) --------------------------------------------------- */

.faq {
    display: grid;
    gap: 0.75rem;
    margin-top: 2rem;
    max-width: 760px;
    margin-left: auto;
    margin-right: auto;
    text-align: left;
}

.faq__item {
    background-color: var(--blanc);
    color: var(--encre);
    border-radius: var(--rayon);
    padding: 0 1.5rem;
    box-shadow: 0 4px 16px rgba(20, 93, 160, 0.08);
}

.faq__item summary {
    font-family: var(--police-sous-titres);
    font-weight: 700;
    color: var(--bleu);
    cursor: pointer;
    padding: 1.25rem 0;
    list-style: none;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
}

.faq__item summary::-webkit-details-marker {
    display: none;
}

.faq__item summary::after {
    content: "+";
    font-size: 1.4rem;
    color: var(--orange-texte);
    flex-shrink: 0;
}

.faq__item[open] summary::after {
    content: "\2212";
}

.faq__item summary:focus-visible {
    outline: 3px solid var(--peche);
    outline-offset: 3px;
}

.faq__reponse {
    padding: 0 0 1.25rem;
    margin: 0;
    font-size: 0.95rem;
}

/* --- Pages légales ------------------------------------------------------------
   Réutilisent .article-corps pour la typographie du contenu. */

.page-legale__date {
    font-family: var(--police-sous-titres);
    font-size: var(--taille-petit);
    opacity: 0.85;
    margin-top: 0.75rem;
}

.page-legale .article-corps h2:first-of-type {
    margin-top: 0;
}

.page-legale address {
    font-style: normal;
    margin: 0 0 1rem;
}

.page-legale .avertissement {
    background-color: var(--peche-pale);
    border-radius: var(--rayon);
    padding: 1.25rem 1.5rem;
    margin: 0 0 2rem;
    font-size: 0.95rem;
}

.page-legale .avertissement p:last-child {
    margin-bottom: 0;
}

/* Tableau (sous-traitants) : défile horizontalement sans casser la page */
.tableau-scroll {
    overflow-x: auto;
    margin: 0 0 1.5rem;
    -webkit-overflow-scrolling: touch;
}

.tableau-scroll table {
    border-collapse: collapse;
    width: 100%;
    min-width: 480px;
    font-size: 0.95rem;
}

.tableau-scroll th,
.tableau-scroll td {
    text-align: left;
    padding: 0.75rem 1rem;
    border-bottom: 1px solid rgba(34, 48, 63, 0.15);
}

.tableau-scroll th {
    font-family: var(--police-sous-titres);
    font-weight: 700;
    color: var(--bleu);
    background-color: var(--peche-pale);
}

.tableau-scroll tr:last-child td {
    border-bottom: none;
}

/* Formulaire type de rétractation */
.formulaire-type {
    background-color: var(--blanc);
    color: var(--encre);
    border: 1px solid rgba(34, 48, 63, 0.2);
    border-radius: var(--rayon);
    padding: 1.5rem;
    margin: 1.5rem 0;
}

.formulaire-type ul {
    list-style: none;
    padding: 0;
    margin: 1rem 0 0;
    display: grid;
    gap: 0.75rem;
}

.formulaire-type li {
    border-bottom: 1px dotted rgba(34, 48, 63, 0.35);
    padding-bottom: 0.5rem;
}

/* Liens légaux du pied de page : plus discrets que la navigation */
.pied__liens--legaux {
    margin-top: -0.5rem;
    margin-bottom: 1.5rem;
    font-size: 0.8rem;
    opacity: 0.8;
}

/* --- Pages provisoires ------------------------------------------------------ */

.page-provisoire {
    padding: var(--espace-section) 0;
    text-align: center;
    min-height: 45vh;
}

.page-provisoire .bouton {
    margin-top: 1rem;
}

/* --- Animations (état initial géré en JS pour ne rien casser sans JS) -------- */

.anim-apparition {
    will-change: transform, opacity;
}
