/* styles.css — extrait du fichier HTML d'origine (thème de la campagne) */
  @import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500&family=Spectral:ital,wght@0,300;0,400;0,500;0,600;1,400&display=swap');

  :root{
    --plum:#4A1F3F; --plum-2:#6B2D5C; --magenta:#A8326E;
    --ember:#D98324; --ember-2:#E9A23B; --ember-glow:#F2C879;
    --cream:#FBF4EC; --cream-2:#F3E7DA; --ink:#2A2128; --ink-soft:#5C4B57;
    --line:rgba(74,31,63,.18);
    --display:'Cormorant Garamond', Georgia, serif;
    --body:'Spectral', Georgia, serif;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth}
  body{
    background:
      radial-gradient(900px 500px at 78% -8%, rgba(217,131,36,.16), transparent 60%),
      radial-gradient(800px 600px at -6% 12%, rgba(168,50,110,.12), transparent 55%),
      var(--cream);
    color:var(--ink); font-family:var(--body); line-height:1.6;
    -webkit-font-smoothing:antialiased; overflow-x:hidden;
  }
  .wrap{max-width:1120px;margin:0 auto;padding:0 24px}
  a{color:inherit}

  /* grain overlay */
  body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:1;opacity:.05;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");}

  /* ---------- NAV ---------- */
  nav{position:sticky;top:0;z-index:50;backdrop-filter:blur(10px);
    background:rgba(251,244,236,.82);border-bottom:1px solid var(--line)}
  .nav-inner{display:flex;align-items:center;justify-content:space-between;height:64px}
  .brand{display:flex;align-items:center;gap:10px;font-family:var(--display);font-weight:600;font-size:20px;color:var(--plum)}
  .flame{width:22px;height:22px;display:inline-block}
  .nav-links{display:flex;align-items:center;gap:22px}
  .nav-links a{font-size:13px;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;color:var(--ink-soft);font-family:var(--body);transition:color .2s}
  .nav-links a:hover{color:var(--magenta)}
  .lang{border:1px solid var(--line);border-radius:999px;display:flex;overflow:hidden;font-size:12px;letter-spacing:.05em}
  .lang button{background:none;border:none;padding:6px 12px;cursor:pointer;font-family:var(--body);color:var(--ink-soft)}
  .lang button.on{background:var(--plum);color:var(--cream)}
  @media(max-width:760px){.nav-links a:not(.cta){display:none}}

  /* ---------- HERO ---------- */
  header.hero{position:relative;padding:88px 0 64px;text-align:center;z-index:2}
  .kicker{font-size:13px;letter-spacing:.34em;text-transform:uppercase;color:var(--magenta);margin-bottom:18px}
  h1.title{font-family:var(--display);font-weight:600;color:var(--plum);
    font-size:clamp(52px,11vw,128px);line-height:.92;letter-spacing:-.01em}
  h1.title em{font-style:italic;color:var(--ember)}
  .slogan{font-family:var(--display);font-size:clamp(22px,3.6vw,34px);font-weight:500;color:var(--ink);margin-top:14px}
  .slogan b{color:var(--magenta)}
  .hero-quote{max-width:620px;margin:30px auto 0;font-style:italic;font-size:19px;color:var(--ink-soft)}
  .hero-cta{margin-top:34px;display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
  .btn{font-family:var(--body);font-size:15px;letter-spacing:.04em;border-radius:999px;padding:13px 26px;cursor:pointer;border:1px solid transparent;text-decoration:none;transition:transform .15s,box-shadow .2s,background .2s}
  .btn:hover{transform:translateY(-2px)}
  .btn-primary{background:linear-gradient(135deg,var(--ember),var(--magenta));color:#fff;box-shadow:0 10px 30px rgba(168,50,110,.32)}
  .btn-ghost{background:transparent;border-color:var(--plum);color:var(--plum)}
  .counter{margin-top:30px;font-family:var(--display);color:var(--plum)}
  .counter .n{font-size:46px;font-weight:700;color:var(--ember);display:block;line-height:1}
  .counter .l{font-size:14px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft)}

  /* floating embers */
  .embers{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1}
  .ember{position:absolute;bottom:-10px;width:6px;height:6px;border-radius:50%;
    background:radial-gradient(circle,var(--ember-glow),var(--ember));opacity:.0;
    animation:rise linear infinite}
  @keyframes rise{0%{transform:translateY(0) scale(.6);opacity:0}
    12%{opacity:.9}80%{opacity:.5}100%{transform:translateY(-78vh) scale(1.1);opacity:0}}

  /* ---------- SECTIONS ---------- */
  section{position:relative;z-index:2;padding:66px 0}
  .sec-head{display:flex;align-items:baseline;gap:16px;margin-bottom:34px}
  .sec-num{font-family:var(--display);font-size:18px;color:var(--ember);font-weight:600}
  .sec-title{font-family:var(--display);font-size:clamp(30px,5vw,50px);font-weight:600;color:var(--plum);line-height:1}
  .sec-sub{color:var(--ink-soft);max-width:640px;margin-top:-18px;margin-bottom:30px;font-size:17px}

  .rule{height:1px;background:linear-gradient(90deg,var(--magenta),transparent);border:0}

  /* ---------- PAMPHLETS ---------- */
  .pamphlets{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px}
  .pamphlet{position:relative;border:1px solid var(--line);border-radius:6px;overflow:hidden;
    background:linear-gradient(180deg,#fff,var(--cream-2));padding:26px 24px 64px;
    transition:transform .2s,box-shadow .25s;cursor:default}
  .pamphlet:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(74,31,63,.16)}
  .pamphlet::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:linear-gradient(var(--ember),var(--magenta))}
  .p-no{font-family:var(--display);font-size:13px;letter-spacing:.2em;color:var(--magenta);text-transform:uppercase}
  .p-title{font-family:var(--display);font-size:25px;font-weight:600;color:var(--plum);margin:6px 0 14px;line-height:1.05}
  .p-verse{font-family:var(--display);font-style:italic;font-size:18.5px;color:var(--ink);white-space:pre-line;line-height:1.5}
  .p-print{position:absolute;bottom:16px;left:24px;font-size:12px;letter-spacing:.1em;text-transform:uppercase;
    background:none;border:1px solid var(--line);border-radius:999px;padding:7px 14px;cursor:pointer;color:var(--ink-soft);font-family:var(--body);transition:all .2s}
  .p-print:hover{border-color:var(--magenta);color:var(--magenta)}

  /* ---------- FORM ---------- */
  .panel{background:linear-gradient(180deg,#fff,var(--cream-2));border:1px solid var(--line);border-radius:10px;padding:30px}
  .grid2{display:grid;grid-template-columns:1fr 1fr;gap:30px}
  @media(max-width:820px){.grid2{grid-template-columns:1fr}}
  label{display:block;font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);margin:14px 0 6px}
  input,textarea{width:100%;font-family:var(--body);font-size:16px;color:var(--ink);
    background:var(--cream);border:1px solid var(--line);border-radius:7px;padding:12px 14px;resize:vertical}
  input:focus,textarea:focus{outline:none;border-color:var(--magenta);box-shadow:0 0 0 3px rgba(168,50,110,.12)}
  .check{display:flex;gap:10px;align-items:flex-start;margin-top:14px;font-size:14px;color:var(--ink-soft)}
  .check input{width:auto;margin-top:4px}
  .demands{list-style:none;margin:8px 0 0}
  .demands li{position:relative;padding-left:26px;margin:10px 0;color:var(--ink)}
  .demands li::before{content:"";position:absolute;left:0;top:9px;width:9px;height:9px;border-radius:50%;background:linear-gradient(var(--ember),var(--magenta))}
  .note{font-size:12.5px;color:var(--ink-soft);margin-top:10px;font-style:italic}
  .msg{margin-top:12px;font-size:14px;min-height:20px}
  .msg.ok{color:var(--magenta)} .msg.err{color:#b1402a}

  /* feed */
  .feed{display:flex;flex-direction:column;gap:14px;max-height:520px;overflow:auto;padding-right:6px}
  .feed::-webkit-scrollbar{width:8px}.feed::-webkit-scrollbar-thumb{background:var(--line);border-radius:8px}
  .card{border:1px solid var(--line);border-radius:8px;padding:16px 18px;background:#fff}
  .card .who{font-family:var(--display);font-size:19px;color:var(--plum);font-weight:600}
  .card .where{font-size:12.5px;letter-spacing:.05em;color:var(--magenta);text-transform:uppercase}
  .card .txt{margin-top:8px;font-style:italic;color:var(--ink)}
  .empty{color:var(--ink-soft);font-style:italic;padding:20px;text-align:center}
  .loading{color:var(--ink-soft);font-style:italic;padding:10px 0}

  /* testimonial wall */
  .wall{columns:3 260px;column-gap:18px}
  .wall .card{break-inside:avoid;margin-bottom:18px;background:linear-gradient(180deg,#fff,var(--cream-2))}

  /* ===== HYMN INFOGRAPHIC ===== */
  .hymn{position:relative;max-width:760px;margin:0 auto;padding-left:54px}
  .hymn::before{content:"";position:absolute;left:18px;top:6px;bottom:6px;width:3px;
    background:linear-gradient(var(--ember-glow),var(--ember),var(--magenta),var(--plum));border-radius:3px;opacity:.55}
  .refrain{position:relative;text-align:center;margin:30px 0;padding:6px 0;
    font-family:var(--display);font-style:italic;font-weight:600;color:var(--ember);
    font-size:clamp(26px,4.2vw,38px);line-height:1.1}
  .refrain .fl{display:block;font-size:18px;margin-bottom:4px;color:var(--magenta)}
  .mvt{position:relative;margin:26px 0 30px}
  .mvt-badge{position:absolute;left:-54px;top:0;width:38px;height:38px;border-radius:50%;
    display:grid;place-items:center;font-family:var(--display);font-weight:700;font-size:15px;color:#fff;
    background:linear-gradient(135deg,var(--ember),var(--magenta));box-shadow:0 0 0 6px var(--cream),0 6px 18px rgba(168,50,110,.35)}
  .mvt-title{font-family:var(--display);font-size:clamp(22px,3.4vw,30px);font-weight:600;color:var(--plum);
    line-height:1.05;margin-bottom:14px;border-bottom:1px solid var(--line);padding-bottom:8px}
  .stanza{font-family:var(--display);font-size:clamp(18px,2.5vw,21px);line-height:1.5;color:var(--ink);
    white-space:pre-line;margin:0 0 16px;font-style:italic}
  .hymn-final{position:relative;margin-top:18px;padding:26px 28px;border-radius:10px;
    background:linear-gradient(135deg,var(--plum),var(--plum-2));color:var(--cream)}
  .hymn-final .stanza{color:var(--cream);font-style:italic;margin:0}
  .hymn-sign{text-align:right;margin-top:12px;font-family:var(--display);font-style:italic;color:var(--ember-2);font-size:20px}
  @media(max-width:560px){.hymn{padding-left:42px}.hymn::before{left:12px}.mvt-badge{left:-42px;width:32px;height:32px;font-size:13px}}

  footer{position:relative;z-index:2;background:var(--plum);color:var(--cream);padding:54px 0 40px;text-align:center}

  /* gallery */
  .gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:22px;align-items:start}
  .frame{position:relative;border-radius:8px;overflow:hidden;border:1px solid var(--line);
    background:#000;box-shadow:0 14px 38px rgba(74,31,63,.2);transition:transform .25s}
  .frame:hover{transform:translateY(-4px) rotate(-.4deg)}
  .frame img{display:block;width:100%;height:auto;filter:saturate(1.02)}
  .frame::after{content:"";position:absolute;inset:0;box-shadow:inset 0 -70px 60px -30px rgba(74,31,63,.55);pointer-events:none}
  .frame figcaption{position:absolute;left:0;right:0;bottom:0;padding:14px 16px;z-index:2;
    font-family:var(--display);color:var(--cream);font-style:italic;font-size:18px}
  .frame .nm{font-style:normal;font-weight:600;color:var(--ember-2);letter-spacing:.02em}

  /* audio testimony */
  .audio-testi{display:flex;gap:18px;align-items:flex-start;background:linear-gradient(135deg,var(--plum),var(--plum-2));
    color:var(--cream);border-radius:12px;padding:24px 26px;margin-bottom:26px}
  .audio-ic{flex:none;width:54px;height:54px;border-radius:50%;display:grid;place-items:center;
    background:linear-gradient(135deg,var(--ember),var(--magenta));color:#fff}
  .audio-label{font-family:var(--display);font-size:24px;font-weight:600;color:var(--ember-2)}
  .audio-desc{font-size:15px;color:rgba(251,244,236,.85);margin-top:2px}
  .audio-testi .note{color:rgba(251,244,236,.6)}
  audio{filter:sepia(.15)}

  footer .f-title{font-family:var(--display);font-size:34px;font-weight:600;color:var(--ember-2)}
  footer .orgs{margin-top:8px;letter-spacing:.18em;text-transform:uppercase;font-size:13px;color:rgba(251,244,236,.7)}
  footer .disc{margin-top:22px;font-size:12.5px;color:rgba(251,244,236,.55);max-width:640px;margin-left:auto;margin-right:auto}

  @media print{
    nav,footer,.hero-cta,.embers,.p-print,.lang{display:none!important}
  }
