    /* ==========================================================================
       STYLES-INDEX.CSS — Page d’accueil (/index.html)

       SOMMAIRE (bannières numérotées, dans l’ordre du fichier)
        1. Variables — couleurs vérifiées WCAG AA (4,5:1 minimum sur texte)
        2. Reset & base
        3. Lien d'évitement (navigation clavier)
        4. Focus visible — indicateur sur fond clair et fond sombre
        5. Utilitaires
        6. Header sticky
        7. Section identité — ouverture de page
        8. Boutons
        9. Titre de section générique
       10. Section Bénéfices
       11. Section Comment ça marche
       12. Section Aides couvertes
       13. Section Pré-inscription
       14. Footer
       15. Responsive mobile-first — seuil unique ≤ 640 px
       16. Impression

       Règle : aucun réordonnancement de règles (l’ordre de la cascade est
       sémantique : à spécificité égale, la dernière règle gagne).

       1. Variables — couleurs vérifiées WCAG AA (4,5:1 minimum sur texte)
       ========================================================================== */
    :root {
      --c-bg:          #FFFFFF;
      --c-bg-alt:      #FAF5EF;   /* crème chaud — fond du logo          */
      --c-hero:        #2A3828;   /* vert forêt chaud                    */
      --c-footer:      #1C2418;   /* vert très sombre                    */
      --c-text:        #2C1A10;   /* brun foncé  ≈ 14:1 sur blanc        */
      --c-text-inv:    #FFFFFF;
      --c-text-muted:  #5C4038;   /* brun moyen  ≈  7:1 sur blanc        */
      --c-primary:     #8B4A30;   /* terracotta  ≈  6:1 sur blanc/crème  */
      --c-primary-dk:  #6E3822;
      --c-border:      #C8B5A8;
      --c-disabled-bg: #6B7280;   /* bouton désactivé — exempt WCAG 1.4.3 */
      --c-error-bdr:   #C0392B;
      --c-ok-bdr:      #4A7255;
      --c-ok-bg:       #F2F7F0;

      /* Typographie système — zéro CDN */
      --font: -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;
      --sz-sm:   1rem;       /* 16 px */
      --sz-base: 1.125rem;   /* 18 px — confort seniors */
      --sz-lg:   1.375rem;   /* 22 px */
      --sz-xl:   1.75rem;    /* 28 px */

      /* Espacements */
      --sp-1: 0.5rem;
      --sp-2: 1rem;
      --sp-3: 1.5rem;
      --sp-4: 2rem;
      --sp-6: 3rem;
      --sp-8: 4rem;
      --sp-10: 5rem;

      /* Layout */
      --max-w:  1100px;
      --radius: 0.5rem;
    }

    /* ==========================================================================
       2. Reset & base
       ========================================================================== */
    *, *::before, *::after {
      box-sizing: border-box;
      margin: 0;
      padding: 0;
    }

    html {
      scroll-behavior: smooth;
    }

    @media (prefers-reduced-motion: reduce) {
      html { scroll-behavior: auto; }
      *, *::before, *::after {
        animation-duration: 0.01ms !important;
        transition-duration: 0.01ms !important;
      }
    }

    body {
      font-family: var(--font);
      font-size: var(--sz-base);
      color: var(--c-text);
      background: var(--c-bg);
      line-height: 1.65;
    }

    /* ==========================================================================
       3. Lien d'évitement (navigation clavier)
       ========================================================================== */
    .skip-link {
      position: absolute;
      top: -999px;
      left: -999px;
      background: var(--c-primary);
      color: var(--c-text-inv);
      padding: var(--sp-2) var(--sp-3);
      border-radius: var(--radius);
      font-weight: 700;
      font-size: var(--sz-base);
      text-decoration: none;
      z-index: 9999;
    }
    .skip-link:focus {
      top: var(--sp-2);
      left: var(--sp-2);
    }

    /* ==========================================================================
       4. Focus visible — indicateur sur fond clair et fond sombre
       ========================================================================== */
    :focus-visible {
      outline: 3px solid var(--c-primary);
      outline-offset: 3px;
      border-radius: 2px;
    }

    .preinscription :focus-visible,
    .site-footer :focus-visible {
      outline-color: #FFFFFF;
    }

    /* ==========================================================================
       5. Utilitaires
       ========================================================================== */
    .container {
      width: 100%;
      max-width: var(--max-w);
      margin: 0 auto;
      padding: 0 var(--sp-3);
    }

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

    /* ==========================================================================
       6. Header sticky
       ========================================================================== */
    .site-header {
      background: #FFFFFF;
      color: var(--c-text);
      position: sticky;
      top: 0;
      z-index: 100;
      border-bottom: 2px solid #E8DDD0;
      box-shadow: 0 2px 8px rgba(44, 26, 16, 0.08);
    }

    .site-header .container {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding-top: var(--sp-2);
      padding-bottom: var(--sp-2);
      gap: var(--sp-3);
      flex-wrap: wrap;
    }

    .logo-link {
      display: flex;
      align-items: center;
      gap: var(--sp-1);
      text-decoration: none;
    }

    .logo-img {
      height: 48px;
      width: auto;
      display: block;
      border-radius: 4px;
    }

    /* Fallback texte CSS si l'image est absente */
    .logo-text {
      font-size: var(--sz-xl);
      font-weight: 800;
      color: var(--c-primary);   /* terracotta ≈ 6:1 sur blanc — lisible */
      letter-spacing: -0.03em;
      display: none;
    }

    .site-nav ul {
      list-style: none;
      display: flex;
      gap: 0;
      flex-wrap: wrap;
    }

    .site-nav a {
      display: block;
      color: var(--c-text);
      text-decoration: none;
      padding: var(--sp-1) var(--sp-2);
      border-radius: var(--radius);
      font-size: var(--sz-sm);
      font-weight: 600;
      white-space: nowrap;
      transition: background 0.15s, color 0.15s;
    }

    .site-nav a:hover {
      background: rgba(44, 26, 16, 0.07);
      color: var(--c-primary);
      text-decoration: underline;
    }

    /* Lien CTA "Tester l'application" — distinct des liens de navigation */
    .nav-cta {
      display: inline-block;
      background: var(--c-primary);
      color: var(--c-text-inv) !important;
      padding: 0.45rem 1.1rem !important;
      border-radius: 999px;
      font-weight: 700 !important;
      white-space: nowrap;
      border: 2px solid var(--c-primary);
      transition: background 0.15s, border-color 0.15s !important;
      text-decoration: none !important;
    }
    .nav-cta:hover {
      background: var(--c-primary-dk) !important;
      border-color: var(--c-primary-dk) !important;
      text-decoration: none !important;
      color: var(--c-text-inv) !important;
    }

    /* ==========================================================================
       7. Section identité — ouverture de page
       ========================================================================== */
    .identite {
      background: var(--c-bg-alt);
      padding: var(--sp-10) 0;
      border-bottom: 1px solid #E8DDD0;
    }

    .identite .container {
      display: flex;
      flex-direction: column;
      align-items: center;
      text-align: center;
      gap: var(--sp-4);
    }

    /* Grand logo centré (~180 px de hauteur) */
    .identite__logo-wrap {
      display: flex;
      justify-content: center;
    }

    .identite__logo {
      height: 180px;
      width: auto;
      max-width: 100%;
      border-radius: 8px;
      display: block;
    }

    /* Fallback visuel si l'image échoue — aria-hidden car H1 couvre le sens */
    .identite__logo-fallback {
      font-size: 4.5rem;
      font-weight: 900;
      color: var(--c-primary);
      letter-spacing: 0.12em;
      line-height: 1;
    }

    /* Bloc acronyme — aria-hidden car l'alt du logo couvre le contenu */
    .identite__acronyme {
      display: inline-flex;
      flex-direction: column;
      gap: 0.45rem;
      background: rgba(255, 255, 255, 0.7);
      border: 1px solid rgba(139, 74, 48, 0.22);
      border-radius: var(--radius);
      padding: var(--sp-3) var(--sp-4);
    }

    .acronyme-ligne {
      display: flex;
      align-items: baseline;
      gap: 0.875rem;
    }

    /* Lettre : grande, terracotta, gras */
    .acronyme-lettre {
      font-size: 2.5rem;
      font-weight: 800;
      color: var(--c-primary);   /* ≈ 6:1 sur fond mixte blanc/crème */
      min-width: 1.75rem;
      text-align: center;
      line-height: 1.1;
      flex-shrink: 0;
    }

    .acronyme-sep {
      font-size: var(--sz-lg);
      color: var(--c-text-muted);
      line-height: 1;
      flex-shrink: 0;
    }

    /* Mot : taille normale, brun foncé */
    .acronyme-mot {
      font-size: var(--sz-lg);
      font-weight: 600;
      color: var(--c-text);      /* ≈ 14:1 sur fond */
      text-align: left;
    }

    /* H1 — accroche courte */
    .identite__titre {
      font-size: clamp(var(--sz-lg), 3vw, var(--sz-xl));
      font-weight: 600;
      color: var(--c-text);
      max-width: 540px;
      line-height: 1.4;
    }

    /* CTA désactivé */
    .identite__cta {
      margin-top: var(--sp-1);
    }

    /* Mention discrète de l'assistant — sous le CTA principal */
    .identite__hint {
      margin-top: var(--sp-2);
      font-size: var(--sz-sm);   /* 16 px — seuil WCAG pour texte normal */
      color: var(--c-text-muted);  /* #5C4038 ≈ 8,6:1 sur --c-bg-alt */
      display: flex;
      align-items: center;
      gap: 0.4em;
      text-align: center;
    }

    /* ==========================================================================
       8. Boutons
       ========================================================================== */
    .btn {
      display: inline-flex;
      align-items: center;
      gap: var(--sp-1);
      padding: 0.9rem 1.875rem;
      border-radius: var(--radius);
      font-family: var(--font);
      font-size: var(--sz-base);
      font-weight: 700;
      border: 2px solid transparent;
      text-decoration: none;
      cursor: pointer;
      transition: background 0.15s, border-color 0.15s;
    }

    .btn-primary {
      background: var(--c-primary);
      color: var(--c-text-inv);
      border-color: var(--c-primary);
    }

    .btn-primary:hover {
      background: var(--c-primary-dk);
      border-color: var(--c-primary-dk);
    }

    /* Désactivé — exempt de l'exigence de contraste (WCAG 1.4.3) */
    .btn[disabled],
    .btn[aria-disabled="true"] {
      background: var(--c-disabled-bg);
      color: var(--c-text-inv);
      border-color: var(--c-disabled-bg);
      cursor: not-allowed;
    }

    .btn[disabled]:hover,
    .btn[aria-disabled="true"]:hover {
      background: var(--c-disabled-bg);
      border-color: var(--c-disabled-bg);
    }

    /* ==========================================================================
       9. Titre de section générique
       ========================================================================== */
    .section-title {
      font-size: var(--sz-xl);
      font-weight: 700;
      text-align: center;
      margin-bottom: var(--sp-6);
      color: var(--c-text);
    }

    /* ==========================================================================
       10. Section Bénéfices
       ========================================================================== */
    .benefices {
      background: var(--c-bg);
    }

    .benefices__grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
      gap: var(--sp-4);
      list-style: none;
    }

    .benefit-card {
      display: flex;
      flex-direction: column;
      gap: var(--sp-2);
      padding: var(--sp-4);
      background: var(--c-bg-alt);
      border-radius: var(--radius);
      border-left: 4px solid var(--c-primary);
    }

    .benefit-card__icon {
      width: 48px;
      height: 48px;
      color: var(--c-primary);
      flex-shrink: 0;
    }

    .benefit-card__title {
      font-size: var(--sz-lg);
      font-weight: 700;
      color: var(--c-text);
    }

    .benefit-card__desc {
      font-size: var(--sz-base);
      color: var(--c-text-muted);   /* ≈ 7:1 sur blanc */
      line-height: 1.55;
    }

    /* ==========================================================================
       11. Section Comment ça marche
       ========================================================================== */
    .comment {
      background: var(--c-bg-alt);
    }

    .comment .section-title {
      margin-bottom: var(--sp-8);
    }

    .steps {
      list-style: none;
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
      gap: var(--sp-6);
    }

    .step {
      display: flex;
      flex-direction: column;
      align-items: center;
      text-align: center;
      gap: var(--sp-3);
    }

    .step__head {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: var(--sp-2);
    }

    .step__number {
      width: 52px;
      height: 52px;
      border-radius: 50%;
      background: var(--c-primary);
      color: var(--c-text-inv);
      font-size: var(--sz-xl);
      font-weight: 800;
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
    }

    .step__icon {
      width: 56px;
      height: 56px;
      color: var(--c-primary);
    }

    .step__title {
      font-size: var(--sz-lg);
      font-weight: 700;
      color: var(--c-text);
    }

    .step__desc {
      font-size: var(--sz-base);
      color: var(--c-text-muted);
      max-width: 300px;
      line-height: 1.55;
    }

    /* ==========================================================================
       12. Section Aides couvertes
       ========================================================================== */
    .aides {
      background: var(--c-bg);
    }

    .aides__intro {
      text-align: center;
      max-width: 640px;
      margin: -2rem auto var(--sp-6);
      color: var(--c-text-muted);
      line-height: 1.55;
    }

    .aides__grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
      gap: var(--sp-3);
      list-style: none;
    }

    .aide-item {
      display: flex;
      align-items: flex-start;
      gap: var(--sp-2);
      background: var(--c-bg-alt);
      border-radius: var(--radius);
      padding: var(--sp-3);
      font-size: var(--sz-base);
      font-weight: 500;
      color: var(--c-text);
    }

    .aide-item__icon {
      flex-shrink: 0;
      width: 22px;
      height: 22px;
      color: var(--c-primary);
      margin-top: 3px;
    }

    .aides__note {
      text-align: center;
      margin-top: var(--sp-4);
      font-size: var(--sz-sm);
      color: var(--c-text-muted);
      font-style: italic;
    }

    /* ==========================================================================
       13. Section Pré-inscription
       ========================================================================== */
    .preinscription {
      background: radial-gradient(ellipse at 30% 60%, #3D5830 0%, var(--c-hero) 65%);
      color: var(--c-text-inv);
    }

    .preinscription .section-title {
      color: var(--c-text-inv);
    }

    .preinscription__intro {
      text-align: center;
      max-width: 560px;
      margin: -2rem auto var(--sp-6);
      color: #D8E8C8;   /* ≈ 9,9:1 sur fond hero */
      line-height: 1.55;
    }

    /* Bouton CTA final de la section preinscription */
    .preinscription__cta {
      margin-top: 1rem;
    }

    /* D-06 (2026-10-11) : styles du formulaire de pré-inscription supprimé
       (.form-*, .field-error*, .confirmation*) retirés — aucune occurrence
       dans index.html ni dans les scripts. */

    /* ==========================================================================
       14. Footer
       ========================================================================== */
    .site-footer {
      background: var(--c-footer);
      color: #C8D0B8;   /* ≈ 10,5:1 sur footer */
      padding: var(--sp-8) 0;
      font-size: var(--sz-sm);
    }

    .site-footer .container {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: var(--sp-4);
      text-align: center;
    }

    .footer__logo {
      font-size: var(--sz-xl);
      font-weight: 800;
      color: #FFFFFF;
      letter-spacing: -0.02em;
    }

    .footer__sources {
      max-width: 640px;
      line-height: 1.6;
    }

    .footer__rgpd {
      display: flex;
      align-items: flex-start;
      gap: var(--sp-1);
      max-width: 560px;
      text-align: left;
    }

    .footer__rgpd-icon {
      flex-shrink: 0;
      margin-top: 2px;
      color: #C0A888;
    }

    .footer__copy {
      color: #8A9A70;   /* ≈ 5,5:1 sur footer */
    }

    .footer__link {
      color: #C8D0B8;   /* même teinte que le corps footer ≈ 10,5:1 sur #1C2418 */
      text-decoration: underline;
      transition: color 0.15s;
    }
    .footer__link:hover,
    .footer__link:focus-visible {
      color: #FFFFFF;
    }

    /* ==========================================================================
       15. Responsive mobile-first — seuil unique ≤ 640 px
       ========================================================================== */
    @media (max-width: 640px) {
      :root {
        --sp-10: 3.5rem;
        --sp-8:  2.5rem;
      }

      /* Header */
      .site-header .container {
        flex-direction: column;
        align-items: flex-start;
      }

      /* Section identité — logo 70 % de la largeur max */
      .identite__logo {
        height: auto;
        width: 70%;
        max-width: 280px;
      }

      .identite__acronyme {
        padding: var(--sp-2) var(--sp-3);
      }

      .acronyme-lettre {
        font-size: 2rem;
        min-width: 1.4rem;
      }

      .acronyme-mot,
      .acronyme-sep {
        font-size: var(--sz-base);
      }

      /* Étapes */
      .step {
        align-items: flex-start;
        text-align: left;
      }

      .step__head {
        flex-direction: row;
        align-items: center;
      }

      .step__desc {
        max-width: 100%;
      }
    }

    /* ==========================================================================
       16. Impression
       ========================================================================== */
    @media print {
      .site-header,
      .identite__cta,
      .preinscription,
      .site-footer {
        display: none;
      }
    }
