/* BetterWorld — socle de mise en page partagé.
   Sorti du <style> en ligne d'index.html pour être servi aussi aux pages
   À propos, Guides, Contact et Confidentialité, qui étaient auparavant des
   vues internes de l'accueil et utilisent les mêmes composants
   (page-hero, section-lite, crumb, legal, guide-*, form-*, cta-band…).
   Une seule source : ne pas recopier ces règles dans une page. */
/* ═══ VARIABLES ═══ */
    :root{
      --bg:       #FBFAF7;
      --surface:  #FFFFFF;
      --dark:     #16161A;
      --dark-2:   #2A2A30;
      --text:     #16161A;
      --text-2:   #6B6B74;
      --border:   #ECEAE3;
      --border-2: #E0DDD3;
      /* Couleurs de marque (issues du logo) — USAGE GRAPHIQUE UNIQUEMENT :
         aplats, icônes de 24 px et plus, pastilles, blocs de couleur.
         Aucune ne porte du texte sur fond clair : le vert plafonne à 2,99:1,
         très en dessous du minimum lisible de 4,5:1. Pour des lettres, un trait
         fin, une icône sous 24 px ou du blanc posé dessus, prendre la variante
         « -txt » ci-dessous. (charte de marque §1.4 et §1.5) */
      --vert:   #6AA529;
      --or:     #FFA000;
      --orange: #F57C00;
      --rose:   #EC2D6B;
      --bleu:   #1789E6;
      /* Variantes texte, mode clair — même teinte, assombrie jusqu'à passer
         le seuil AA. Le mode sombre les ramène aux valeurs vives (§1.6). */
      --vert-txt:   #4F7D1E;
      --or-txt:     #A36600;
      --orange-txt: #B45B00;
      --rose-txt:   #D01455;
      --bleu-txt:   #1476C6;
      --grad: linear-gradient(90deg, #6AA529 0%, #FFA000 22%, #F57C00 42%, #EC2D6B 60%, #6A35FF 78%, #1789E6 96%);
      --r-sm: 10px; --r-md: 14px; --r-lg: 20px; --r-xl: 28px;
      --shadow-sm: 0 1px 3px rgba(22,22,26,.05);
      --shadow:    0 4px 24px rgba(22,22,26,.06), 0 1px 3px rgba(22,22,26,.04);
      --shadow-lg: 0 16px 48px rgba(22,22,26,.10);
      --max: 1280px;
      --pad: 28px;
    }/* ═══ RESET ═══ */
    *,*::before,*::after{ box-sizing: border-box; margin: 0; padding: 0; }html{ scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }body{
      font-family: 'Inter', system-ui, sans-serif;
      font-size: 16px; line-height: 1.55;
      color: var(--text); background: var(--bg);
      -webkit-font-smoothing: antialiased;
    }img,svg{ display: block; max-width: 100%; }a{ color: inherit; text-decoration: none; }ul{ list-style: none; }button{ cursor: pointer; font-family: inherit; border: none; background: none; color: inherit; }/* ═══ TYPOGRAPHIE ═══ */
    h1,h2,h3,h4{
      font-family: 'Bricolage Grotesque', sans-serif;
      font-weight: 800; letter-spacing: -0.025em; line-height: 1.08;
      color: var(--text);
    }h2{ font-size: clamp(28px, 4vw, 44px); }h3{ font-size: 19px; font-weight: 700; }.lead{ font-size: 18px; color: var(--text-2); line-height: 1.65; }/* arc-en-ciel — réservé aux moments forts uniquement */
    .grad-text{
      background: var(--grad);
      -webkit-background-clip: text; background-clip: text;
      -webkit-text-fill-color: transparent; color: transparent;
    }/* ═══ LAYOUT ═══ */
    .container{ max-width: var(--max); margin: 0 auto; padding: 0 var(--pad); }section{ padding: 104px 0; }section[id]{ scroll-margin-top: 84px; }.eyebrow{
      display: inline-block;
      font-size: 12px; font-weight: 700; letter-spacing: .14em;
      text-transform: uppercase; color: var(--text-2);
      margin-bottom: 18px;
    }/* ═══ ICÔNES ═══ */
    .ico{
      display: inline-flex; align-items: center; justify-content: center;
    }.ico svg{ width: 100%; height: 100%; stroke: currentColor; fill: none;
               stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }.ico-box{
      width: 48px; height: 48px; flex-shrink: 0;
      border-radius: var(--r-md);
      display: inline-flex; align-items: center; justify-content: center;
      background: var(--bg); border: 1px solid var(--border);
      color: var(--dark);
    }.ico-box .ico{ width: 23px; height: 23px; }/* ═══ BOUTONS ═══ */
    .btn{
      display: inline-flex; align-items: center; gap: 9px;
      padding: 13px 24px; border-radius: var(--r-md);
      font-family: 'Inter', sans-serif; font-weight: 700; font-size: 15px;
      transition: transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease;
      white-space: nowrap;
    }.btn .ico{ width: 17px; height: 17px; }.btn-primary{ background: var(--dark); color: #fff; }.btn-primary:hover{ background: var(--dark-2); transform: translateY(-2px); box-shadow: var(--shadow); }.btn-outline{ border: 1.5px solid var(--dark); color: var(--dark); }.btn-outline:hover{ background: var(--dark); color: #fff; transform: translateY(-2px); }.btn-light{ background: #fff; color: var(--dark); box-shadow: var(--shadow-sm); }.btn-light:hover{ transform: translateY(-2px); box-shadow: var(--shadow); }.btn-grad{ background: var(--grad); color: #fff; }.btn-grad:hover{ transform: translateY(-2px); box-shadow: 0 8px 28px rgba(244,81,123,.3); }.btn-ghost{ color: var(--text-2); font-weight: 600; font-size: 14px; }.btn-ghost:hover{ color: var(--text); }.btn-ghost .ico{ width: 15px; height: 15px; transition: transform .2s; }.btn-ghost:hover .ico{ transform: translateX(3px); }/* ═══ CARTES ═══ */
    .card{
      background: var(--surface); border: 1px solid var(--border);
      border-radius: var(--r-lg); padding: 28px;
      transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
    }.card:hover{ transform: translateY(-3px); box-shadow: var(--shadow-lg); border-color: var(--border-2); }/* ═══ BADGES ═══ */
    .badge{
      display: inline-block; padding: 4px 11px; border-radius: 99px;
      font-size: 11.5px; font-weight: 700; letter-spacing: .03em;
    }.badge-soft{ background: #f2f0e9; color: #5f5e57; }/* « À venir » : la classe était posée dans le HTML sans qu'aucune règle ne la
       définisse — le badge sortait en texte nu. */
    .badge-soon{ display:inline-block; padding:4px 11px; border-radius:99px; font-size:11.5px; font-weight:700; letter-spacing:.03em; background:#f2f0e9; color:#5f5e57; }.badge-free{ background: #eaf4dd; color: #4a6b1e; }.badge-paid{ background: #ece7fb; color: #4a37a0; }/* ═══ RUBAN HAUT (signature arc-en-ciel) ═══ */
    .top-ribbon{ height: 5px; background: var(--grad); width: 100%; }/* ═══════════════════════════════════════
       HEADER
    ═══════════════════════════════════════ */
    #header{
      position: sticky; top: 0; z-index: 100;
      background: rgba(251,250,247,.85);
      backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
      border-bottom: 1px solid transparent;
      transition: border-color .2s, box-shadow .2s;
    }#header.scrolled{ border-bottom-color: var(--border); box-shadow: var(--shadow-sm); }.header-inner{ display: flex; align-items: center; gap: 28px; height: 70px; }.logo{ display: flex; align-items: center; gap: 11px; flex-shrink: 0; }.logo img{ height: 30px; width: auto; }.logo-name{
      font-family: 'Bricolage Grotesque', sans-serif; font-weight: 800;
      font-size: 19px; letter-spacing: -0.03em; color: var(--text);
    }nav.main-nav{ display: flex; align-items: center; gap: 2px; margin-left: 8px; }nav.main-nav a{
      padding: 8px 13px; border-radius: var(--r-sm);
      font-size: 14px; font-weight: 600; color: var(--text-2);
      transition: color .15s, background .15s;
    }nav.main-nav a:hover{ color: var(--text); background: rgba(22,22,26,.045); }.header-actions{ display: flex; align-items: center; gap: 10px; margin-left: auto; }.lang-toggle{ display: flex; background: rgba(22,22,26,.06); border-radius: var(--r-sm); padding: 3px; }.lang-btn{
      padding: 5px 10px; border-radius: 7px;
      font-size: 12px; font-weight: 700; color: var(--text-2);
      transition: all .15s;
    }.lang-btn.active{ background: #fff; color: var(--text); box-shadow: var(--shadow-sm); }.btn-sm{ padding: 9px 16px; font-size: 13.5px; border-radius: var(--r-sm); }/* ═══════════════════════════════════════
       1. HERO
    ═══════════════════════════════════════ */
    #hero{ padding: 64px 0 88px; position: relative; overflow: hidden; }.hero-glow{
      position: absolute; top: -180px; right: -140px;
      width: 620px; height: 620px; border-radius: 50%;
      background: radial-gradient(circle, rgba(124,179,66,.10) 0%, rgba(33,150,243,.06) 50%, transparent 70%);
      pointer-events: none;
    }.hero-inner{ position: relative; z-index: 1; max-width: 860px; margin-left: auto; margin-right: auto; text-align: center; }.hero-eyebrow-row{ display: flex; align-items: center; gap: 10px; margin-bottom: 26px; }.hero-pill{
      display: inline-flex; align-items: center; gap: 8px;
      padding: 7px 15px; border-radius: 99px;
      background: var(--surface); border: 1px solid var(--border);
      font-size: 13px; font-weight: 600; color: var(--text-2);
      box-shadow: var(--shadow-sm);
    }.hero-pill .dot{ width: 7px; height: 7px; border-radius: 50%; background: var(--vert); }#hero h1{ font-size: clamp(44px, 6.5vw, 78px); line-height: 1.0; margin-bottom: 26px; }.hero-sub{ max-width: 580px; margin-bottom: 40px; }.hero-ctas{ display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }.hero-stat + .hero-stat{ border-left: 1px solid var(--border); }/* ═══════════════════════════════════════
       2. MISSION
    ═══════════════════════════════════════ */
    .pillars{ display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; margin-bottom: 64px; }.pillar{ padding: 32px 28px; border-radius: var(--r-lg); border: 1px solid var(--border); background: var(--bg); }.pillar .ico-box{ background: #fff; margin-bottom: 22px; }.pillar h3{ margin-bottom: 11px; }.pillar p{ font-size: 14.5px; color: var(--text-2); line-height: 1.62; }/* ═══════════════════════════════════════
       3. HUB — DEUX VOLETS
    ═══════════════════════════════════════ */
    #hub{ background: var(--bg); }.volet-tag .ico{ width: 15px; height: 15px; }.volet-card .ico-box{ width: 42px; height: 42px; background: var(--bg); }.volet-card .ico-box .ico{ width: 20px; height: 20px; }/* ═══════════════════════════════════════
       4. RESSOURCES APERÇU
    ═══════════════════════════════════════ */
    #ressources{ background: var(--surface); border-top: 1px solid var(--border); }.res-intro{ text-align: center; max-width: 680px; margin: 0 auto 52px; }.res-intro h2{ margin-bottom: 0; }.res-tagline{ font-family: 'Fraunces', serif; font-style: italic; font-size: clamp(19px, 2.4vw, 24px); color: var(--text); margin: 18px 0; }.btn-big{ padding: 18px 38px; font-size: 18px; border-radius: var(--r-md); }.btn-big .ico{ width: 20px; height: 20px; }.sec-head{ display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 44px; flex-wrap: wrap; }.sec-head-text{ max-width: 560px; }.res-grid{ display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-bottom: 40px; }.res-card{ display: flex; flex-direction: column; gap: 14px; }.res-card .ico-box{ margin-bottom: 2px; }.res-card h3{ font-size: 17px; }.res-card p{ font-size: 14px; color: var(--text-2); line-height: 1.55; }.res-card .count{ font-size: 12.5px; font-weight: 700; color: var(--text-2); margin-top: auto; }.ad-slot .ico{ width: 16px; height: 16px; }/* ═══════════════════════════════════════
       5. GUIDES APERÇU
    ═══════════════════════════════════════ */
    #guides{ background: var(--bg); }.guide-grid{ display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-bottom: 40px; }.guide-card{ display: flex; flex-direction: column; gap: 15px; padding: 0; overflow: hidden; }.guide-cover{
      aspect-ratio: 16/10; border-radius: var(--r-md);
      background: linear-gradient(135deg, #f1eee7, #e7e3da);
      display: flex; align-items: center; justify-content: center;
      color: var(--text-2); border: 1px solid var(--border);
    }.guide-cover .ico{ width: 40px; height: 40px; opacity: .55; }.guide-body{ display: flex; flex-direction: column; gap: 10px; flex: 1; }.guide-meta{ display: flex; align-items: center; gap: 7px; }.guide-card h3{ font-size: 16.5px; }.guide-card p{ font-size: 13.5px; color: var(--text-2); line-height: 1.55; flex: 1; }.guide-foot{ display: flex; align-items: center; justify-content: space-between; margin-top: 4px; }.guide-price{ font-family: 'Inter', sans-serif; font-weight: 800; font-size: 18px; }.affil .badge-soft{ flex-shrink: 0; }/* ═══════════════════════════════════════
       6. AIDES
    ═══════════════════════════════════════ */
    #aide{ background: var(--surface); border-top: 1px solid var(--border); }.aide-grid{ display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; margin-bottom: 40px; }.aide-card{ display: flex; gap: 20px; align-items: flex-start; padding: 28px; background: var(--bg); border: 1px solid var(--border); border-radius: var(--r-lg); transition: box-shadow .2s, transform .2s; }.aide-card:hover{ box-shadow: var(--shadow); transform: translateY(-2px); background: var(--surface); }.aide-card .ico-box{ background: #fff; }.aide-body h3{ margin-bottom: 8px; }.aide-body p{ font-size: 14px; color: var(--text-2); line-height: 1.6; margin-bottom: 15px; }.humain-pill{
      display: inline-flex; align-items: center; gap: 9px;
      padding: 11px 20px; border-radius: 99px;
      background: var(--bg); border: 1px solid var(--border);
      font-size: 13.5px; font-weight: 600; color: var(--text-2);
    }.humain-pill .ico{ width: 16px; height: 16px; color: var(--vert); }/* ═══════════════════════════════════════
       BOUTIQUE
    ═══════════════════════════════════════ */
    #boutique{ background: var(--bg); }.boutique-head{ text-align: center; max-width: 640px; margin: 0 auto 52px; }.boutique-head h2{ margin-bottom: 16px; }.boutique-desc{ max-width: 580px; margin: 0 auto; }.boutique-grid{ display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-bottom: 40px; }.product-card{ display: flex; flex-direction: column; padding: 0; overflow: hidden; text-decoration: none; color: inherit; }.product-img{ aspect-ratio: 1/1; background: linear-gradient(135deg, #f1eee7, #e7e3da); display: flex; align-items: center; justify-content: center; color: var(--text-2); border-bottom: 1px solid var(--border); }.product-img .ico{ width: 46px; height: 46px; opacity: .5; transition: transform .25s; }.product-img img{ width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease; }.product-card:hover .product-img img{ transform: scale(1.04); }.product-card:hover .product-img .ico{ transform: scale(1.08); }.product-info{ padding: 20px; display: flex; flex-direction: column; gap: 9px; }.product-info h3{ font-size: 16px; }.product-foot{ display: flex; align-items: center; justify-content: space-between; margin-top: 3px; }.product-price{ font-family: 'Inter', sans-serif; font-weight: 800; font-size: 18px; }.product-link{ font-size: 13px; font-weight: 700; color: var(--text-2); transition: color .2s; }.product-card:hover .product-link{ color: var(--text); }.boutique-cta{ display: flex; justify-content: center; margin-bottom: 44px; }.boutique-benefits{ display: flex; justify-content: center; gap: 14px 40px; flex-wrap: wrap; }.benefit{ display: flex; align-items: center; gap: 10px; font-size: 14.5px; color: var(--text-2); font-weight: 500; }.benefit .ico{ width: 18px; height: 18px; color: var(--vert); }/* ═══════════════════════════════════════
       7. REJOINDRE (dark)
    ═══════════════════════════════════════ */
    #rejoindre{ background: var(--dark); color: #fff; position: relative; overflow: hidden; }.rejoindre-glow{ position: absolute; inset: 0; pointer-events: none;
      background: radial-gradient(620px circle at 80% 0%, rgba(124,179,66,.12), transparent 60%),
                  radial-gradient(520px circle at 10% 100%, rgba(33,150,243,.10), transparent 55%); }.rejoindre-inner{ position: relative; text-align: center; }#rejoindre .pill-count{
      display: inline-flex; align-items: center; gap: 9px;
      padding: 7px 17px; border-radius: 99px; margin-bottom: 26px;
      background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.13);
      font-size: 13px; font-weight: 600; color: rgba(255,255,255,.8);
    }#rejoindre .pill-count .dot{ width: 7px; height: 7px; border-radius: 50%; background: var(--vert); }#rejoindre h2{ color: #fff; margin-bottom: 16px; }#rejoindre > .container > .rejoindre-inner > .lead{ color: rgba(255,255,255,.6); max-width: 520px; margin: 0 auto 60px; }.impliquer-grid{ display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; text-align: left; }.impliquer-card{ padding: 30px 26px; border-radius: var(--r-lg); background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.1); transition: background .2s; }.impliquer-card:hover{ background: rgba(255,255,255,.08); }.impliquer-card .ico-box{ background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.12); color: #fff; margin-bottom: 20px; }.impliquer-card h3{ color: #fff; margin-bottom: 10px; }.impliquer-card p{ font-size: 14px; color: rgba(255,255,255,.55); line-height: 1.6; margin-bottom: 24px; }.nl-form{ display: flex; gap: 9px; }.nl-input{ flex: 1; min-width: 0; padding: 12px 15px; border-radius: var(--r-sm); border: 1px solid rgba(255,255,255,.16); background: rgba(255,255,255,.07); color: #fff; font-size: 14px; font-family: 'Inter', sans-serif; outline: none; transition: border-color .2s; }.nl-input::placeholder{ color: rgba(255,255,255,.35); }.nl-input:focus{ border-color: rgba(255,255,255,.4); }.nl-btn{ padding: 12px 18px; border-radius: var(--r-sm); background: #fff; color: var(--dark); font-family: 'Inter', sans-serif; font-weight: 700; font-size: 14px; white-space: nowrap; transition: opacity .2s; }.nl-btn:hover{ opacity: .85; }.nl-ok{ display: none; color: var(--vert); font-size: 13.5px; font-weight: 600; margin-top: 11px; }/* ═══════════════════════════════════════
       8. DON
    ═══════════════════════════════════════ */
    #don{ background: var(--bg); }.don-inner{ display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; }.don-text h2{ margin-bottom: 20px; }.don-text p{ font-size: 16px; color: var(--text-2); line-height: 1.7; margin-bottom: 28px; }.don-text a.btn-ghost{ text-decoration: none; }.don-card{ background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-xl); padding: 38px; box-shadow: var(--shadow); }.don-card h3{ font-size: 20px; margin-bottom: 26px; }.don-choix-i{ font-size:14px; color:var(--text-2); margin-bottom:12px; }.don-choix{ list-style:none; display:grid; gap:9px; margin-bottom:22px; }.don-choix li{ display:flex; align-items:center; gap:11px; font-size:15px; font-weight:600; }.don-choix .dc-p{ width:11px; height:11px; border-radius:3px; background:var(--c); flex:none; }.montants{ display: flex; gap: 10px; margin-bottom: 18px; flex-wrap: wrap; }.montant-btn{ flex: 1; min-width: 64px; padding: 14px 8px; border-radius: var(--r-sm); border: 1.5px solid var(--border); font-family: 'Inter', sans-serif; font-weight: 700; font-size: 17px; background: var(--bg); transition: all .18s; }.montant-btn:hover{ border-color: var(--dark); }.montant-btn.active{ border-color: var(--dark); background: var(--dark); color: #fff; }.montant-libre{ width: 100%; padding: 13px 16px; border-radius: var(--r-sm); border: 1.5px solid var(--border); background: var(--bg); font-size: 15px; font-family: 'Inter', sans-serif; outline: none; transition: border-color .2s; margin-bottom: 18px; }.montant-libre:focus{ border-color: var(--dark); }.don-secure{ font-size: 12px; color: var(--text-2); margin-top: 13px; text-align: center; }/* ═══════════════════════════════════════
       9. DASHBOARD
    ═══════════════════════════════════════ */
    #dashboard{ background: var(--surface); border-top: 1px solid var(--border); }.dash-head{ text-align: center; max-width: 560px; margin: 0 auto 56px; }.dash-head h2{ margin-bottom: 14px; }.dash-note .ico{ width: 15px; height: 15px; }/* ═══════════════════════════════════════
       FOOTER
    ═══════════════════════════════════════ */
    #footer{ background: var(--dark); color: rgba(255,255,255,.75); padding: 76px 0 36px; }.foot-grid{ display: grid; grid-template-columns: 2.2fr 1fr 1fr 1fr; gap: 44px; margin-bottom: 60px; }.foot-brand .foot-logo{ display: flex; align-items: center; gap: 11px; margin-bottom: 16px; }.foot-brand .foot-logo img{ height: 28px; }.foot-brand .foot-logo span{ font-family: 'Bricolage Grotesque', sans-serif; font-weight: 800; font-size: 20px; color: #fff; letter-spacing: -0.03em; }.foot-brand p{ font-size: 14px; color: rgba(255,255,255,.45); line-height: 1.65; max-width: 290px; margin-bottom: 26px; }.socials{ display: flex; gap: 11px; }.social{ width: 40px; height: 40px; border-radius: var(--r-sm); border: 1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.05); display: flex; align-items: center; justify-content: center; transition: all .2s; }.social:hover{ background: rgba(255,255,255,.12); border-color: rgba(255,255,255,.25); }.social .ico{ width: 17px; height: 17px; color: rgba(255,255,255,.7); }.foot-col h5{ font-family: 'Bricolage Grotesque', sans-serif; font-weight: 700; font-size: 12.5px; text-transform: uppercase; letter-spacing: .08em; color: rgba(255,255,255,.4); margin-bottom: 18px; }.foot-col li{ margin-bottom: 11px; }.foot-col a{ font-size: 14px; color: rgba(255,255,255,.62); transition: color .15s; }.foot-col a:hover{ color: #fff; }.foot-bottom{ border-top: 1px solid rgba(255,255,255,.08); padding-top: 30px; display: flex; align-items: center; justify-content: space-between; gap: 16px; font-size: 13px; color: rgba(255,255,255,.32); flex-wrap: wrap; }.foot-bottom a{ color: rgba(255,255,255,.4); }.foot-bottom a:hover{ color: rgba(255,255,255,.7); }.foot-bottom .lang-toggle{ background: rgba(255,255,255,.07); }.foot-bottom .lang-btn{ color: rgba(255,255,255,.5); }.foot-bottom .lang-btn.active{ background: rgba(255,255,255,.15); color: #fff; box-shadow: none; }/* ═══ REVEAL ═══ */
    .reveal{ opacity: 0; transform: translateY(22px); transition: opacity .6s ease, transform .6s ease; }.reveal.in{ opacity: 1; transform: none; }.d1{ transition-delay: .08s; }.d2{ transition-delay: .16s; }.d3{ transition-delay: .24s; }.sr-only{ position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }:focus-visible{ outline: 2px solid var(--bleu); outline-offset: 2px; border-radius: 4px; }[data-scroll]{ cursor: pointer; }/* ═══ RESPONSIVE ═══ */
    @media (max-width: 920px){
      .pillars, .res-grid, .guide-grid, .impliquer-grid, .dash-grid, .volet-grid, .boutique-grid { grid-template-columns: 1fr 1fr; }.don-inner{ grid-template-columns: 1fr; gap: 36px; }.foot-grid{ grid-template-columns: 1fr 1fr; gap: 36px; }.aide-grid{ grid-template-columns: 1fr; }}
    @media (max-width: 680px){
      nav.main-nav { display: none; }section{ padding: 72px 0; }.pillars,.res-grid,.guide-grid,.impliquer-grid,.dash-grid,.foot-grid,.boutique-grid{ grid-template-columns: 1fr; }.hero-stat + .hero-stat{ border-left: none; }.hero-stat:nth-child(3),.hero-stat:nth-child(4){ border-top: 1px solid var(--border); }.sec-head{ flex-direction: column; align-items: flex-start; }.header-actions .btn-sm.btn-primary{ display: none; }}
  

  /* ── Sous-pages : hero compact,fil d'ariane,prose,formulaire ── */
  .page-hero{ padding: 52px 0 56px; position: relative; overflow: hidden; }
.aide-hero{ padding: 44px 0 48px !important; }
.aide-hero .crumb{ margin-bottom: 14px; }.page-hero .glow{ position:absolute; top:-160px; right:-140px; width:560px; height:560px; border-radius:50%; background:radial-gradient(circle, rgba(124,179,66,.10), rgba(33,150,243,.05) 55%, transparent 72%); pointer-events:none; }.page-hero .inner{ position: relative; max-width: 760px; }.crumb{ display:flex; align-items:center; gap:8px; font-size:13px; color:var(--text-2); margin-bottom:22px; }.crumb a{ color:var(--text-2); font-weight:600; }.crumb a:hover{ color:var(--text); }.crumb span{ opacity:.5; }.page-hero h1{ font-size: clamp(36px,5.2vw,60px); line-height:1.04; margin-bottom:20px; }.page-hero .lead{ max-width: 600px; }.section-lite{ padding: 72px 0; }.two-col{ display:grid; grid-template-columns: 1fr 1fr; gap:56px; align-items:center; }/* Légal */
  .legal{ max-width: 800px; margin: 0 auto; }.legal h2{ font-size:22px; margin:34px 0 12px; }.legal p,.legal li{ font-size:15px; color:var(--text-2); line-height:1.7; }.legal ul{ padding-left: 22px; margin: 0 0 16px; }.legal li{ margin-bottom:8px; list-style: disc; }.legal .updated{ font-size:13px; color:var(--text-2); padding:14px 18px; background:var(--bg); border:1px solid var(--border); border-radius:var(--r-md); margin-bottom:32px; }.legal .disclaimer{ font-size:13.5px; color:#8a6d1f; background:#fdf6dc; border:1px solid #f0e3b0; border-radius:var(--r-md); padding:16px 18px; margin-top:32px; }/* Formulaire clair */
  .form-grid{ display:grid; gap:16px; }.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }.field label{ display:block; font-size:13px; font-weight:700; color:var(--text); margin-bottom:7px; }.field input,.field textarea,.field select{ width:100%; padding:12px 15px; border-radius:var(--r-sm); border:1.5px solid var(--border); background:var(--surface); font-family:'Inter',sans-serif; font-size:15px; color:var(--text); outline:none; transition:border-color .2s; }.field input:focus,.field textarea:focus,.field select:focus{ border-color:var(--dark); }.field textarea{ min-height:140px; resize:vertical; }.form-ok{ display:none; margin-top:14px; padding:12px 16px; border-radius:var(--r-sm); background:#eaf4dd; color:#4a6b1e; font-weight:600; font-size:14px; }
/* Mention de collecte sous le formulaire de contact (Loi 25 art. 8). Discrète,
   mais lisible : c'est une information due, pas une note de bas de page. */
.form-note{ margin-top:14px; font-size:13.5px; line-height:1.6; color:var(--text-2,#5B5B64); }
.form-urgence{ margin-top:10px; padding:12px 14px; border-radius:var(--r-sm); border-left:4px solid var(--bleu,#1789E6); background:rgba(23,137,230,.07); font-size:14px; line-height:1.55; }.info-card{ padding:26px; border:1px solid var(--border); border-radius:var(--r-lg); background:var(--bg); }.info-row{ display:flex; align-items:center; gap:12px; margin-bottom:16px; font-size:15px; }.info-row:last-child{ margin-bottom:0; }.info-row .ico-box{ width:42px; height:42px; }.filter-tabs{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom:36px; }.filter-tabs button{ padding:9px 18px; border-radius:99px; border:1.5px solid var(--border); background:var(--surface); font-family:'Inter',sans-serif; font-weight:700; font-size:13.5px; color:var(--text-2); cursor:pointer; transition:all .18s; }.filter-tabs button.active,.filter-tabs button:hover{ border-color:var(--dark); color:var(--dark); }.cta-band{ background:var(--dark); color:#fff; border-radius:var(--r-xl); padding:56px 48px; text-align:center; position:relative; overflow:hidden; }.cta-band .glow{ position:absolute; inset:0; background:radial-gradient(560px circle at 80% 0%, rgba(124,179,66,.14), transparent 60%); pointer-events:none; }.cta-band h2{ color:#fff; margin-bottom:14px; position:relative; }.cta-band p{ color:rgba(255,255,255,.6); max-width:520px; margin:0 auto 28px; position:relative; }
  @media (max-width:820px){.two-col{grid-template-columns:1fr;gap:32px;}.form-row{grid-template-columns:1fr;} }/* ── Routeur de vues ── */
  .route-page{ display: none; }.route-page.active{ display: block; }
.route-page{ padding-top: 0; }#home-main.hidden{ display: none; }.main-nav a.nav-active{ color: var(--text); background: rgba(22,22,26,.06); }[data-view],[data-go]{ cursor: pointer; }/* ── Bouton 'J'ai besoin d'aide' mis en valeur ── */
  .btn-help{
    background: var(--bleu); color: #fff;
    font-size: 17px; padding: 16px 30px; border-radius: var(--r-md);
    box-shadow: 0 6px 22px rgba(23,137,230,.34);
    position: relative;
  }.btn-help:hover{ background: #1372c4; transform: translateY(-2px); box-shadow: 0 10px 30px rgba(23,137,230,.42); }.btn-help .ico{ width: 19px; height: 19px; }.btn-help .arr{ width: 17px; height: 17px; transition: transform .2s; }.btn-help:hover .arr{ transform: translateX(4px); }/* léger halo pulsé pour attirer l'œil */
  .btn-help::after{
    content: ''; position: absolute; inset: -3px; border-radius: inherit;
    border: 2px solid var(--bleu); opacity: 0; animation: helpPulse 2.4s ease-out infinite; pointer-events: none;
  }
  @keyframes helpPulse { 0% { opacity:.5; transform:scale(1); } 70%,100% { opacity:0; transform:scale(1.12); } }/* ── Onglet 'Aide' accentué dans la nav ── */
  .main-nav a.nav-aide{ color: var(--bleu); font-weight: 700; }.main-nav a.nav-aide:hover{ background: rgba(23,137,230,.12); color: var(--bleu); }.main-nav a.nav-aide.nav-active{ background: rgba(23,137,230,.16); color: var(--bleu); }/* ── Indicateur 'Découvrir BetterWorld ↓' ── */
  .discover{
    display: flex; flex-direction: column; align-items: center; gap: 8px;
    margin-top: 64px; cursor: pointer; width: fit-content; margin-left: auto; margin-right: auto;
    background: none; border: none;
  }.discover span{ font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--text); transition: color .2s; }.discover:hover span{ color: var(--text); }.discover .chev{ width: 26px; height: 26px; color: var(--vert); animation: bob 1.8s ease-in-out infinite; }.discover .chev svg{ width: 100%; height: 100%; stroke: currentColor; fill: none; stroke-width: 2.2; }
  @keyframes bob { 0%,100% { transform: translateY(0); } 50% { transform: translateY(6px); } }



  /* ── Bouton retour (visible seulement sur une vue) ── */
  #bw-back { display: none; position: fixed; left: 20px; bottom: 22px; z-index: 95; align-items: center; gap: 7px; padding: 11px 18px; border-radius: 99px; background: var(--dark); color: #fff; border: none; cursor: pointer; font-family: 'Inter', sans-serif; font-weight: 700; font-size: 14px; box-shadow: 0 6px 22px rgba(22,22,26,.22); transition: transform .18s, background .18s; }
  #bw-back.show { display: inline-flex; }
  #bw-back:hover { background: var(--dark-2); transform: translateY(-2px); }
  #bw-back .ico { width: 17px; height: 17px; transition: transform .18s; }
  #bw-back .ico svg { width: 100%; height: 100%; }
  #bw-back:hover .ico { transform: translateX(-3px); }
  /* ── Accès rapide dans la vue Aide ── */
  .aide-quicknav { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 32px; }
  .qn-btn { display: inline-flex; align-items: center; gap: 12px; padding: 18px 32px; border-radius: 99px; background: var(--surface); border: 1.5px solid var(--border); font-family: 'Inter', sans-serif; font-weight: 700; font-size: 17px; color: var(--text); cursor: pointer; transition: all .18s; }
  .qn-btn:hover { border-color: var(--vert); color: var(--vert); transform: translateY(-2px); box-shadow: 0 6px 18px rgba(106,165,41,.18); }
  .qn-btn .ico { width: 24px; height: 24px; }
  .qn-btn .ico svg { width: 100%; height: 100%; }

  .aide-tagline { font-size: 15px; color: var(--text-2); margin-top: 18px; }
  .aide-tagline strong { color: var(--text); font-weight: 700; }

  .dash-live { max-width: 700px; margin: 0 auto; text-align: center; padding: 44px 36px; border: 1px solid var(--border); border-radius: var(--r-xl); background: var(--bg); }
.dash-live-icon{ width: 56px; height: 56px; margin: 0 auto 20px; display: flex; align-items: center; justify-content: center; border-radius: 16px; background: rgba(23,137,230,.10); color: var(--bleu); }
.dash-live-icon svg{ width: 28px; height: 28px; }
.dash-live h3 { font-family: 'Bricolage Grotesque', sans-serif; font-size: 21px; margin-bottom: 12px; letter-spacing: -.01em; }
.dash-live p { font-size: 15px; color: var(--text-2); line-height: 1.65; max-width: 56ch; margin: 0 auto; }
.dash-live-chiffres{ display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin: 28px auto 26px; max-width: 560px; }
.dash-live-chiffres .dlc{ padding: 16px 12px; border-radius: var(--r-md); background: var(--surface); border: 1px solid var(--border); }
.dash-live-chiffres b{ display: block; font-family: 'Bricolage Grotesque', sans-serif; font-weight: 800; font-size: 24px; letter-spacing: -.02em; color: var(--bleu); margin-bottom: 5px; }
.dash-live-chiffres span{ display: block; font-size: 12.5px; font-weight: 600; color: var(--text-2); line-height: 1.4; }
.dash-live-actions{ display: flex; gap: 14px; justify-content: center; align-items: center; flex-wrap: wrap; }
@media(max-width:640px){ .dash-live{ padding: 34px 22px; } .dash-live-chiffres{ grid-template-columns: 1fr; } }
.guide-cover-img{ padding: 0 !important; overflow: hidden; background: #0d0d0f; }
.guide-cover-img img{ width: 100%; height: 100%; object-fit: contain; display: block; }





@keyframes hssPulse{ 0%,100%{ opacity:1; transform:scale(1); } 50%{ opacity:.4; transform:scale(.7); } }

.hss-grid{ display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.hss-card{ text-align: center; padding: 18px 12px; border-radius: var(--r-md); background: var(--bg); border: 1px solid var(--border); }
.hss-icon{ font-size: 24px; margin-bottom: 12px; opacity: .9; }
.hss-ph{ height: 26px; width: 64px; margin: 0 auto 10px; border-radius: 7px; background: linear-gradient(90deg, rgba(23,137,230,.10) 25%, rgba(23,137,230,.18) 50%, rgba(23,137,230,.10) 75%); background-size: 200% 100%; animation: hssShimmer 1.8s linear infinite; }
@keyframes hssShimmer{ 0%{ background-position: 200% 0; } 100%{ background-position: -200% 0; } }
.hss-lbl{ font-size: 12.5px; font-weight: 600; color: var(--text-2); }
@media (max-width: 680px){ .hss-grid{ grid-template-columns: 1fr; } }

@keyframes dssGrow{ 0%,100%{ width: 28%; } 50%{ width: 52%; } }

.nl-note{ font-size: 12.5px; color: rgba(255,255,255,.55); margin-top: 12px; line-height: 1.5; }
.cta-band .nl-note{ margin: 12px auto 0; max-width: 460px; }

/* ══ Redesign v2 ══ */
.hero-sub{ font-size: clamp(20px, 2.4vw, 26px); color: var(--text); font-weight: 500; max-width: 560px; }
#acces-rapide{ padding: 0 0 88px; margin-top: -26px; }
.qa-grid{ display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
.qa-card{ display: flex; align-items: flex-start; gap: 16px; padding: 24px 22px; border-radius: var(--r-lg); background: var(--surface); border: 1px solid var(--border); color: var(--text); text-decoration: none; cursor: pointer; transition: transform .18s, box-shadow .18s, border-color .18s; position: relative; }
.qa-card:hover{ transform: translateY(-3px); box-shadow: var(--shadow-md); border-color: rgba(22,22,26,.18); }
.qa-card h3{ font-size: 17px; margin-bottom: 6px; }
.qa-card p{ font-size: 13.5px; color: var(--text-2); line-height: 1.5; margin: 0; }
.qa-ico{ flex: 0 0 auto; width: 44px; height: 44px; border-radius: 13px; background: var(--bg); border: 1px solid var(--border); display: flex; align-items: center; justify-content: center; color: var(--text-2); }
.qa-ico svg{ width: 21px; height: 21px; }
.qa-arrow{ position: absolute; right: 18px; top: 22px; color: var(--text-3, var(--text-2)); font-weight: 700; opacity: 0; transform: translateX(-4px); transition: opacity .18s, transform .18s; }
.qa-card:hover .qa-arrow{ opacity: 1; transform: none; }
.qa-aide{ background: rgba(23,137,230,.07); border-color: rgba(23,137,230,.35); }
.qa-aide .qa-ico{ background: var(--bleu); border-color: var(--bleu); color: #fff; }
.qa-aide h3{ color: #0f6dbd; }
.qa-aide:hover{ border-color: var(--bleu); box-shadow: 0 10px 28px rgba(23,137,230,.18); }
.ap-h{ font-family:'Bricolage Grotesque',sans-serif; font-size:clamp(26px,3.4vw,34px); font-weight:700; letter-spacing:-.02em; color:var(--text); margin:0 0 30px; position:relative; padding-bottom:15px; }
.ap-h::after{ content:''; position:absolute; left:0; bottom:0; width:54px; height:4px; border-radius:99px; background:var(--grad); }
.ap-h2{ margin-top: 68px; }
.dash-soon .hss-grid{ max-width: 560px; margin: 24px auto 4px; text-align: center; }
.dash-soon .hss-card{ background: var(--surface); }
@media (max-width: 860px){ .qa-grid{ grid-template-columns: 1fr; } #acces-rapide{ margin-top: -6px; padding-bottom: 64px; } }

.founder-card{ max-width: 640px; margin: 56px auto 0; padding: 42px 40px; border: 1px solid var(--border); border-radius: var(--r-xl); background: linear-gradient(165deg,#ffffff,#faf7f1); box-shadow: var(--shadow); text-align: center; position: relative; overflow: hidden; }
.founder-card::before{ content:''; position:absolute; top:0; left:0; right:0; height:4px; background:var(--grad); }
.founder-ava{ width: 78px; height: 78px; border-radius: 50%; background: #fff; border: 1px solid var(--border); margin: 0 auto 18px; display: flex; align-items: center; justify-content: center; color: var(--vert); box-shadow: var(--shadow-sm); }
.founder-ava .ico{ width: 34px; height: 34px; }
.founder-quote{ font-family: 'Fraunces', serif; font-style: italic; font-size: 20px; color: var(--text); line-height: 1.55; margin-bottom: 18px; }
.founder-name{ font-family: 'Bricolage Grotesque', sans-serif; font-size: 17px; font-weight: 700; }
.founder-role{ font-size: 13.5px; color: var(--text-2); }

/* ── À propos : cartes valeurs/principes plus esthétiques (scopé) ── */
[data-route="apropos"] .pillar{ background:var(--surface); border:1px solid var(--border); border-radius:var(--r-lg); padding:32px 28px; transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease; }
[data-route="apropos"] .pillar:hover{ transform:translateY(-5px); box-shadow:var(--shadow-lg); border-color:var(--border-2); }
[data-route="apropos"] .pillar .ico-box{ width:52px; height:52px; border-radius:15px; display:grid; place-items:center; margin-bottom:22px; }
[data-route="apropos"] .pillar .ico{ width:26px; height:26px; }
[data-route="apropos"] .pillar .ico svg{ width:100%; height:100%; fill:none; stroke:currentColor; stroke-width:1.9; }
[data-route="apropos"] .pillars .pillar:nth-child(1) .ico-box{ background:rgba(106,165,41,.13); color:var(--vert); }
[data-route="apropos"] .pillars .pillar:nth-child(2) .ico-box{ background:rgba(23,137,230,.13); color:var(--bleu); }
[data-route="apropos"] .pillars .pillar:nth-child(3) .ico-box{ background:rgba(245,124,0,.13); color:var(--orange); }
[data-route="apropos"] .pillar h3{ font-family:'Bricolage Grotesque',sans-serif; font-size:18px; margin-bottom:10px; }
[data-route="apropos"] .pillar p{ font-size:14.5px; color:var(--text-2); line-height:1.62; }

.aide-urgence{ margin: 14px 0 0; }
.aide-urgence a{ display: inline-flex; align-items: center; gap: 7px; color: #c81e1e; font-family: 'Inter', sans-serif; font-weight: 700; font-size: 14.5px; text-decoration: none; background: rgba(200,30,30,.06); border: 1px solid rgba(200,30,30,.28); padding: 10px 18px; border-radius: 99px; transition: background .18s, transform .18s; }
.aide-urgence a:hover{ background: rgba(200,30,30,.12); transform: translateY(-1px); }

/* ══ Menu mobile (hamburger) ══ */
.menu-toggle{ display: none; flex-direction: column; justify-content: center; gap: 5px; width: 42px; height: 42px; padding: 0; background: transparent; border: 1px solid var(--border); border-radius: var(--r-sm); cursor: pointer; }
.menu-toggle span{ display: block; width: 20px; height: 2px; background: var(--text); margin: 0 auto; border-radius: 2px; transition: transform .25s ease, opacity .2s ease; }
.menu-toggle[aria-expanded="true"] span:nth-child(1){ transform: translateY(7px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:nth-child(2){ opacity: 0; }
.menu-toggle[aria-expanded="true"] span:nth-child(3){ transform: translateY(-7px) rotate(-45deg); }
.mobile-menu{ position: fixed; top: 70px; left: 0; right: 0; background: var(--bg); border-bottom: 1px solid var(--border); box-shadow: 0 18px 44px rgba(0,0,0,.13); z-index: 99; visibility: hidden; opacity: 0; transform: translateY(-8px); pointer-events: none; transition: opacity .22s ease, transform .22s ease, visibility .22s; max-height: calc(100dvh - 70px); overflow-y: auto; }
.mobile-menu.open{ visibility: visible; opacity: 1; transform: translateY(0); pointer-events: auto; }
.mobile-menu-nav{ display: flex; flex-direction: column; padding: 10px 22px 24px; }
.mobile-menu-nav > a{ padding: 15px 6px; font-family: 'Inter', sans-serif; font-weight: 600; font-size: 16px; color: var(--text); text-decoration: none; border-bottom: 1px solid var(--border); }
.mobile-menu-nav > a:active{ background: rgba(22,22,26,.04); }
.mobile-menu-nav > a.mm-aide{ color: var(--bleu); }
.mobile-menu-nav > a.mm-urgence{ color: #c81e1e; font-weight: 700; }
.mm-actions{ display: flex; flex-direction: column; gap: 10px; margin-top: 18px; }
.mm-actions .btn{ width: 100%; justify-content: center; text-align: center; padding: 14px; font-size: 15px; }
.mobile-menu-backdrop{ position: fixed; inset: 70px 0 0 0; background: rgba(0,0,0,.32); z-index: 98; visibility: hidden; opacity: 0; pointer-events: none; transition: opacity .22s ease, visibility .22s; }
.mobile-menu-backdrop.open{ visibility: visible; opacity: 1; pointer-events: auto; }
body.menu-open{ overflow: hidden; }
@media (max-width: 680px){
  .menu-toggle{ display: inline-flex; }
  .header-actions .btn-outline{ display: none; }
}

/* ══ Messages infolettre ══ */
.nl-success{ font-family:'Inter',sans-serif; font-weight:700; font-size:15.5px; color:#fff; background:rgba(106,165,41,.22); border:1px solid rgba(106,165,41,.55); border-radius:12px; padding:14px 18px; margin:10px auto 0; max-width:460px; text-align:center; line-height:1.5; }
.nl-error{ font-size:14px; color:#ffdada; background:rgba(220,40,40,.18); border:1px solid rgba(220,40,40,.45); border-radius:10px; padding:11px 16px; margin:10px auto 0; max-width:460px; text-align:center; }

.aide-soon{ display:inline-block; font-family:'Inter',sans-serif; font-size:13px; font-weight:800; text-transform:uppercase; letter-spacing:.04em; color:var(--text-2); background:rgba(22,22,26,.06); padding:8px 15px; border-radius:99px; }
#header .container{ max-width: none; }

/* ══ Hero redesign : logo filigrane + 2 grands choix ══ */
#hero{ position: relative; }
.hero-logo{ position:absolute; top:50%; left:50%; transform:translate(-50%,-52%); width:min(1150px,112vw); aspect-ratio:560/309; background:url('img/filigrane-hero.png') center/contain no-repeat; opacity:.20; pointer-events:none; z-index:0; }
#hero .hero-eyebrow-row{ justify-content:center; }
#hero .hero-sub{ margin-left:auto; margin-right:auto; }
.hero-choices{ display:flex; justify-content:center; gap:30px; flex-wrap:wrap; margin-top:48px; width:100vw; margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw); padding-left:28px; padding-right:28px; box-sizing:border-box; }
.choice{ display:flex; flex-direction:column; align-items:center; text-align:center; gap:24px; flex:1 1 0; min-width:0; max-width:none; padding:58px 48px; background:var(--surface); border:1.5px solid var(--border); border-radius:var(--r-xl); box-shadow:var(--shadow); cursor:pointer; text-decoration:none; transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.choice:hover, .choice:focus-visible{ transform:translateY(-5px); box-shadow:var(--shadow-lg); outline:none; }
.choice-support{ background:rgba(23,137,230,.09); border-color:rgba(23,137,230,.25); }
.choice-impact{ background:rgba(106,165,41,.09); border-color:rgba(106,165,41,.25); }
.choice-support:hover, .choice-support:focus-visible{ border-color:var(--bleu); }
.choice-impact:hover, .choice-impact:focus-visible{ border-color:var(--vert); }
.choice-ic{ flex-shrink:0; width:112px; height:112px; border-radius:50%; display:grid; place-items:center; }
.choice-support .choice-ic{ background:rgba(23,137,230,.12); color:var(--bleu); }
.choice-impact .choice-ic{ background:rgba(106,165,41,.12); color:var(--vert); }
.choice-ic svg{ width:56px; height:56px; }
.choice-main{ display:flex; flex-direction:column; align-items:center; gap:9px; }
.choice-title{ font-family:'Inter',sans-serif; font-weight:800; font-size:35px; color:var(--text); letter-spacing:-.01em; line-height:1.15; }
.choice-sub{ font-size:23px; color:var(--text-2); line-height:1.35; }
.choice-arr{ flex-shrink:0; color:var(--text-2); display:grid; place-items:center; margin-top:3px; transition:transform .18s ease, color .18s ease; }
.choice-arr svg{ width:37px; height:37px; }
.choice:hover .choice-arr, .choice:focus-visible .choice-arr{ transform:translateX(3px); }
/* « Créer un impact » : flèche vers la gauche → on décale dans le même sens */
.choice-impact .choice-arr, .choice-impact:focus-visible .choice-arr{ transform:translateX(-3px); }
.choice-support:hover .choice-arr{ color:var(--bleu); }
.choice-impact:hover .choice-arr{ color:var(--vert); }
/* Second chemin sous chaque grande porte. Il vit DANS une colonne, À CÔTÉ du
   lien principal — jamais à l'intérieur : un lien imbriqué dans un lien est
   invalide, et les navigateurs le déplient n'importe comment. La colonne
   reprend le flex:1 1 0 que portait .choice, pour que les deux portes gardent
   exactement la largeur qu'elles avaient. */
.choice-col{ display:flex; flex-direction:column; align-items:stretch; gap:12px; flex:1 1 0; min-width:0; }
/* Les deux grandes portes doivent rester de hauteur identique. Avant, elles
   étaient sœurs dans une rangée flex : align-items:stretch les égalisait tout
   seul. En colonnes, l'égalité vient d'ailleurs — les colonnes, elles, restent
   égales (stretch de .hero-choices), donc il suffit que la porte remplisse
   l'espace laissé par le lien, ET que les deux liens fassent la même hauteur.
   D'où le nowrap plus bas : sur un écran étroit, « Apprendre et agir » passait
   sur deux lignes quand « Nos outils » tenait sur une, et l'écart se reportait
   sur les portes (448 px contre 424 px). */
.choice-col > .choice{ flex:1 1 auto; }
.choice-more{ white-space:nowrap; }
.choice-more{ display:inline-flex; align-items:center; justify-content:center; gap:7px;
  font-family:'Inter',sans-serif; font-weight:600; font-size:14.5px; color:var(--text-2);
  text-decoration:none; padding:9px 14px; border-radius:11px; transition:color .15s, background .15s; }
.choice-more svg{ width:15px; height:15px; fill:none; stroke:currentColor; stroke-width:2;
  stroke-linecap:round; stroke-linejoin:round; transition:transform .15s; }
.choice-more:hover{ background:rgba(128,128,128,.08); }
.choice-more:hover svg{ transform:translateX(3px); }
.choice-col-impact .choice-more:hover{ color:var(--vert); }
.choice-col-support .choice-more:hover{ color:var(--bleu); }
#hero .discover{ margin-top:38px; }
@media (max-width:680px){ .hero-choices{ gap:18px; } .choice{ width:100%; max-width:none; padding:44px 32px; } .choice-title{ font-size:28px; } .choice-sub{ font-size:18px; } .choice-ic{ width:92px; height:92px; } .choice-ic svg{ width:46px; height:46px; } .choice-col{ width:100%; }
  /* 143 px de large par colonne à 360 px : le libellé doit tenir sur UNE ligne,
     sinon les deux portes cessent d'être de la même hauteur. Mesuré à 12 px. */
  .choice-more{ font-size:12px; padding:7px 8px; gap:5px; } .choice-more svg{ width:13px; height:13px; } }

/* ══ Sections mission : moitié du logo en image latérale ══ */
#environnement .sec-head, #social .sec-head{ display:flex; align-items:center; gap:46px; }
#social .sec-head{ flex-direction:row-reverse; }
.sec-img{ flex-shrink:0; width:40%; max-width:420px; background-position:center; background-repeat:no-repeat; background-size:contain; }
#environnement .sec-head-text, #social .sec-head-text{ flex:1; min-width:0; }
@media (max-width:760px){ #environnement .sec-head, #social .sec-head{ flex-direction:column; gap:26px; text-align:center; } .sec-img{ width:72%; max-width:300px; } #environnement .sec-head-text .lead, #social .sec-head-text .lead{ margin-left:auto; margin-right:auto; } }

/* ══ Carrousel d'articles ══ */
.cz-sec{padding:62px 0;background:var(--bg)}
.cz-sec .container{max-width:none}
.cz-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:26px}
.cz-eyebrow{font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--vert)}
.cz-title{font-size:clamp(1.6rem,3vw,2.2rem);margin-top:6px}
.cz-ctrl{display:flex;gap:10px;flex-shrink:0}
.cz-arrow{width:44px;height:44px;border-radius:50%;border:1.5px solid var(--border);background:var(--surface);color:var(--text);display:grid;place-items:center;cursor:pointer;transition:all .18s}
.cz-arrow:hover{border-color:var(--vert);color:var(--vert);transform:translateY(-2px)}
.cz-arrow svg{width:20px;height:20px}
.cz-track{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding-bottom:6px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.cz-track::-webkit-scrollbar{display:none}
.cz-card{flex:0 0 300px;max-width:300px;scroll-snap-align:start;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;transition:transform .2s ease,box-shadow .2s ease}
.cz-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.cz-img{aspect-ratio:16/10;position:relative}
.cz-cat{position:absolute;left:12px;top:12px;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;padding:.3rem .56rem;border-radius:999px;background:rgba(255,255,255,.94);color:var(--text)}
.cz-soon{position:absolute;right:12px;top:12px;font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;padding:.3rem .54rem;border-radius:999px;background:var(--or);color:#3a2c06}
.cz-ct{font-size:1.05rem;line-height:1.25;padding:16px 18px 20px}
.cz-img.env{background:linear-gradient(135deg,#8fd14f,#3f7d12)}
.cz-img.soc{background:linear-gradient(135deg,#5bb8f0,#1576c4)}
.cz-img.mov{background:linear-gradient(135deg,#f4b53f,#16161a)}
.cz-img.gui{background:linear-gradient(135deg,#7fe0a6,#2f9e5b)}
.cz-all{display:inline-block;margin-top:22px;font-weight:700;color:var(--vert);font-size:.95rem}
@media(max-width:560px){.cz-card{flex-basis:78%;max-width:78%}}
body::before{content:'';position:fixed;top:0;left:0;right:0;height:3px;z-index:999;background:linear-gradient(90deg,#6AA529,#EE9D1F,#1789E6)}.cover-txt{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px 16px;gap:10px}.cover-title{font-family:'Bricolage Grotesque',system-ui,sans-serif;font-weight:800;font-size:clamp(1.05rem,2.4vw,1.4rem);line-height:1.12;letter-spacing:-.01em;color:#fff;text-shadow:0 2px 16px rgba(0,0,0,.32)}.cover-down{width:26px;height:26px;color:rgba(255,255,255,.85);animation:coverBob 1.9s ease-in-out infinite}@keyframes coverBob{0%,100%{transform:translateY(0)}50%{transform:translateY(5px)}}.cover-ico{color:rgba(255,255,255,.95);filter:drop-shadow(0 4px 14px rgba(0,0,0,.32))}.cover-ico svg{width:52px;height:52px;display:block}.cz-img>svg:not(.cover-down),.post .img>svg:not(.cover-down){position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);height:70%;width:auto;max-width:80%;filter:drop-shadow(0 6px 16px rgba(0,0,0,.35))}


/* ═══ MODE SOMBRE ═══════════════════════════════════════════════════════
   Vivait en ligne dans index.html sous <style id="bw-dark">. Déplacé ici :
   les pages À propos, Guides, Contact et Confidentialité posent le même
   data-theme="dark" et partagent le même en-tête, le même pied de page et
   les mêmes champs — sans ces règles, elles annonçaient un thème sombre
   qu'aucune couleur ne suivait.
   Les couleurs de marque redeviennent vives sur fond sombre : elles y
   passent le seuil de contraste (charte §1.6). */
:root[data-theme="dark"]{--vert-txt:#6AA529;--or-txt:#FFA000;--orange-txt:#F57C00;--rose-txt:#EC2D6B;--bleu-txt:#1789E6}
:root[data-theme="dark"]{--bg:#14151a;--surface:#1e1f26;--text:#ECEBE6;--text-2:#AEAEB8;--border:#2c2e36;--border-2:#3a3c46;--dark:#ECEBE6;--dark-2:#c9c9d3;--shadow-sm:0 1px 2px rgba(0,0,0,.5);--shadow:0 6px 26px rgba(0,0,0,.5);--shadow-lg:0 18px 50px rgba(0,0,0,.6);--bw-focus:#8FC6EE}
:root[data-theme="dark"] body{background:var(--bg);color:var(--text)}
:root[data-theme="dark"] [class*="card"]{background:var(--surface)}
:root[data-theme="dark"] input,:root[data-theme="dark"] select,:root[data-theme="dark"] textarea{background:#22232b;color:var(--text);border-color:var(--border)}
:root[data-theme="dark"] #header,:root[data-theme="dark"] #header.scrolled{background:rgba(20,21,26,.9)!important;border-bottom-color:var(--border)!important}
:root[data-theme="dark"] .cz-arrow{background:var(--surface);border-color:var(--border);color:var(--text)}
:root[data-theme="dark"] .lang-toggle{background:rgba(255,255,255,.08)}
:root[data-theme="dark"] #footer,:root[data-theme="dark"] #bw-footer,:root[data-theme="dark"] #rejoindre,:root[data-theme="dark"] .cta-band{background:#0f1014}
:root[data-theme="dark"] .btn-primary{background:var(--text)!important;color:#14151a!important;border-color:var(--text)!important}
:root[data-theme="dark"] .cc-btn,:root[data-theme="dark"] .montant-btn.active{background:var(--text);color:#14151a;border-color:var(--text)}
:root[data-theme="dark"] #bw-back{background:#23242c;color:var(--text)}
:root[data-theme="dark"] a{color:#6cb8f2}
:root[data-theme="dark"] .mobile-menu,:root[data-theme="dark"] #mobile-menu,:root[data-theme="dark"] #bw-mobile-menu{background:#181920!important}
