:root{
    --orange:#DE5F38;
    --orange-dark:#C64F2B;
    --navy:#263340;
    --navy-soft:#33424f;
    --cream:#F4EFE7;
    --cream-card:#FAF7F1;
    --white:#ffffff;
    --grey:#8a94a0;
    --radius:14px;
  }
  *{margin:0;padding:0;box-sizing:border-box}
  html{scroll-behavior:smooth}
  body{font-family:'Nunito Sans',sans-serif;color:var(--navy);background:var(--white);line-height:1.6}
  h1,h2,h3{font-weight:900;line-height:1.15}
  a{color:inherit}
  .wrap{max-width:1060px;margin:0 auto;padding:0 24px}
  .accent-bar{width:64px;height:5px;background:var(--orange);border-radius:3px;margin:18px 0 26px}
  .kicker{color:var(--orange);font-weight:800;text-transform:uppercase;letter-spacing:.12em;font-size:.8rem}
  .btn{display:inline-block;padding:14px 30px;border-radius:999px;font-weight:800;text-decoration:none;transition:background .18s,color .18s,transform .18s;cursor:pointer;border:none;font-size:1rem}
  .btn:hover{transform:translateY(-2px)}
  .btn-orange{background:var(--orange);color:#fff}
  .btn-orange:hover{background:var(--orange-dark)}
  .btn-outline{background:transparent;color:var(--navy);border:2px solid var(--navy)}
  .btn-outline:hover{background:var(--navy);color:#fff}
  .btn-white{background:#fff;color:var(--navy)}
  .btn-white:hover{background:var(--cream)}

  /* NAV */
  nav{position:sticky;top:0;background:rgba(255,255,255,.92);backdrop-filter:blur(8px);z-index:50;border-bottom:1px solid #eee}
  .nav-inner{display:flex;align-items:center;justify-content:space-between;padding:14px 24px;max-width:1060px;margin:0 auto}
  .nav-logo{display:flex;align-items:center}
  .nav-logo img{height:46px;width:auto;display:block}
  .nav-links{display:flex;gap:22px;align-items:center;font-weight:700;font-size:.92rem}
  .nav-links a{text-decoration:none;color:var(--navy-soft)}
  .nav-links a:hover{color:var(--orange)}
  .nav-links a.btn-orange{color:#fff}
  .nav-links a.btn-orange:hover{color:#fff}
  .nav-links .btn{padding:9px 20px;font-size:.9rem}
  @media(max-width:760px){.nav-links a:not(.btn){display:none}}

  /* HERO */
  header{background:var(--white);padding:84px 0 60px;position:relative;overflow:hidden;text-align:left}
  header::after{content:"";position:absolute;right:-140px;top:-140px;width:480px;height:480px;border-radius:50%;background:var(--cream);z-index:0}
  .hero-inner{position:relative;z-index:2;text-align:left}
  .hero-inner h1{max-width:720px}
  header h1{font-size:clamp(2.2rem,5.5vw,3.6rem)}
  header h1 em{color:var(--orange);font-style:normal}
  header p.lead{font-size:1.15rem;margin:22px 0 32px;color:var(--navy-soft);max-width:560px}
  .hero-ctas{display:flex;gap:14px;flex-wrap:wrap}

  /* PROGRESS */
  .progress-card{background:var(--navy);color:#fff;border-radius:var(--radius);padding:34px 38px;margin-top:56px;position:relative;z-index:1}
  .progress-top{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:8px}
  .progress-amount{font-size:2rem;font-weight:900}
  .progress-amount small{font-size:1rem;font-weight:600;color:#b8c2cc}
  .progress-track{background:var(--navy-soft);border-radius:999px;height:14px;margin:18px 0 10px;overflow:hidden}
  .progress-fill{background:var(--orange);height:100%;border-radius:999px;width:0;transition:width 1.2s ease}
  .progress-meta{display:flex;justify-content:space-between;font-size:.85rem;color:#b8c2cc;flex-wrap:wrap;gap:6px}

  /* Tribune 2D : un supporter par donateur, arrivée par la droite */
  .tribune{position:absolute;right:24px;bottom:4px;width:350px}
  .t-row{position:relative;height:40px;margin:0 auto}
  .t-row:nth-child(1){width:78%}
  .t-row:nth-child(2){width:84%}
  .t-row:nth-child(3){width:90%}
  .t-row:nth-child(4){width:95%}
  .t-row:nth-child(5){width:100%}
  .t-row::after{content:"";position:absolute;left:0;right:0;bottom:0;height:5px;border-radius:3px;background:var(--cream);box-shadow:0 2px 0 #e3dccd}
  .tribune .fan{position:absolute;bottom:5px;width:22px;height:22px;color:var(--orange);
    animation:fanArrive .9s cubic-bezier(.25,.9,.3,1.05) both, fanBob 2.8s ease-in-out infinite}
  .fan svg{width:100%;height:100%;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
  .donors-empty{display:flex;align-items:center;gap:9px;font-weight:800}
  .donors-empty .fan{width:20px;height:20px;color:var(--orange);animation:ghostPulse 2s ease-in-out infinite}
  @keyframes fanArrive{from{transform:translateX(70vw)}to{transform:translateX(0)}}
  @keyframes fanBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
  @keyframes ghostPulse{0%,100%{opacity:.35}50%{opacity:.9}}
  @media(max-width:1160px){.tribune{position:static;width:100%;max-width:400px;margin:34px 0 0}}

  section{padding:72px 0}
  section.alt{background:var(--cream)}
  .num{color:var(--orange);font-weight:900;font-size:1.5rem;margin-right:12px}
  h2{font-size:clamp(1.6rem,3.5vw,2.2rem)}
  .section-intro{max-width:640px;color:var(--navy-soft);margin-bottom:40px}

  /* STATS */
  .stats{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:40px}
  .stat{background:var(--cream-card);border-radius:var(--radius);padding:26px;text-align:center}
  section.alt .stat{background:#fff}
  .stat b{display:block;font-size:2.2rem;color:var(--orange);font-weight:900}
  .stat span{font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:var(--grey);font-weight:700}
  @media(max-width:640px){.stats{grid-template-columns:1fr}}

  /* CARDS grid */
  .grid{display:grid;gap:20px}
  .grid-2{grid-template-columns:repeat(2,1fr)}
  .grid-3{grid-template-columns:repeat(3,1fr)}
  @media(max-width:900px){.grid-3{grid-template-columns:repeat(2,1fr)}}
  @media(max-width:600px){.grid-2,.grid-3{grid-template-columns:1fr}}
  .card{background:#fff;border:1px solid #eee;border-radius:var(--radius);padding:26px}
  .card h3{font-size:1.05rem;margin-bottom:8px}
  .card p{font-size:.92rem;color:var(--navy-soft)}

  /* Icônes (Feather Icons, licence MIT) */
  .ic{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
  .card-icon{width:44px;height:44px;border-radius:11px;background:var(--cream);color:var(--orange);display:flex;align-items:center;justify-content:center;margin-bottom:14px}
  .btn .ic{width:17px;height:17px;vertical-align:-3px;margin-right:8px}
  .biz-callout .tag .ic{width:15px;height:15px;vertical-align:-3px;margin-right:6px}

  /* TIERS */
  .tier{display:flex;flex-direction:column;border:1px solid #e8e2d8;border-radius:var(--radius);overflow:hidden;background:#fff}
  .tier-head{position:relative;padding:20px 22px;background:var(--navy);color:#fff;min-height:104px;display:flex;flex-direction:column;justify-content:flex-end}
  .tier.popular .tier-head{background:var(--orange)}
  .tier-head .tier-tag{font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;font-weight:800;opacity:.85;white-space:nowrap}
  .tier-head .tier-name{font-size:1.25rem;font-weight:900;margin:2px 0 0}
  .tier-head .tier-price{font-size:1.9rem;font-weight:900}
  .tier-body{padding:20px 22px;flex:1;display:flex;flex-direction:column}
  .tier-body ul{list-style:none;flex:1}
  .tier-body li{font-size:.88rem;padding:7px 0 7px 22px;position:relative;color:var(--navy-soft)}
  .tier-body li::before{content:"+";position:absolute;left:0;color:var(--orange);font-weight:900}
  .tier-body .btn{margin-top:18px;text-align:center;font-size:.92rem;padding:11px 18px}
  .popular-badge{position:absolute;top:14px;right:16px;background:#fff;color:var(--orange);font-size:.58rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em;padding:3px 9px;border-radius:999px;white-space:nowrap;float:none}

  /* Mise en avant entreprises */
  .biz-callout{margin-top:34px;background:var(--navy);color:#fff;border-radius:var(--radius);padding:32px 36px;display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}
  .biz-callout .tag{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;font-weight:900;opacity:.9}
  .biz-callout h3{font-size:1.35rem;margin:4px 0 6px}
  .biz-callout p{font-size:.92rem;opacity:.92;max-width:520px}

  /* budget table */
  table{width:100%;border-collapse:collapse;background:#fff;border-radius:var(--radius);overflow:hidden;font-size:.92rem}
  th{background:var(--navy);color:#fff;text-align:left;padding:12px 16px;font-size:.75rem;text-transform:uppercase;letter-spacing:.08em}
  td{padding:11px 16px;border-bottom:1px solid #f0ece4;color:var(--navy-soft)}
  tr:nth-child(even) td{background:var(--cream-card)}
  tr.total td{background:var(--orange);color:#fff;font-weight:900;font-size:1rem}


  /* FAQ */
  details{background:#fff;border:1px solid #eee;border-radius:12px;margin-bottom:12px;padding:18px 22px}
  summary{font-weight:800;cursor:pointer;font-size:.98rem}
  details p{margin-top:10px;font-size:.92rem;color:var(--navy-soft)}

  footer{background:var(--navy);color:#b8c2cc;padding:40px 0;font-size:.88rem}
  .footer-inner{display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px}
  footer b{color:#fff}
  footer a{color:var(--orange);text-decoration:none}
