:root{--bg-1:#000;--text-1:#fff;--text-2:#a1a1aa;--accent:#cc0000;--nav-bg:rgba(0,0,0,0.95);--border:rgba(255,255,255,0.1)}body.light-mode{--bg-1:#ffffff;--text-1:#000000;--text-2:#444444;--nav-bg:rgba(255, 255, 255, 0.98);--border:rgba(0, 0, 0, 0.1)}body.zoom-mode{font-size:1.25rem!important}body{font-family:Overpass,sans-serif;background-color:var(--bg-1);color:var(--text-1);transition:.4s;overflow-x:hidden}.btn-red{background:var(--accent);padding:12px 30px;border-radius:12px;font-weight:900;font-size:11px;text-transform:uppercase;letter-spacing:1px;color:#fff!important;transition:.3s;display:inline-flex;align-items:center;gap:8px;border:none;cursor:pointer}.btn-red.scroll-hover,.btn-red:hover{transform:scale(1.05);filter:brightness(1.1)}.nav-link{color:var(--text-2);font-weight:700;text-transform:uppercase;font-size:13px;letter-spacing:1px;transition:.3s}.nav-link:hover{color:var(--text-1)}.access-trigger{width:42px;height:42px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.05);border:1px solid var(--border);border-radius:12px;cursor:pointer;color:var(--text-2);transition:.3s;margin-left:15px;padding:0}#access-panel{position:fixed;top:90px;right:20px;width:60px;background:var(--bg-1);backdrop-filter:blur(20px);border:1px solid var(--border);border-radius:30px;display:flex;flex-direction:column;align-items:center;padding:20px 0;gap:20px;z-index:2000;transition:.5s;transform:translateX(150%);box-shadow:0 20px 50px rgba(0,0,0,.3)}#access-panel.active{transform:translateX(0)}.tool-icon{cursor:pointer;transition:.3s;color:var(--text-2);display:flex;align-items:center;justify-content:center}.tool-icon.active,.tool-icon:hover{color:var(--accent)}.color-dot{width:14px;height:14px;border-radius:50%;cursor:pointer;border:1px solid rgba(255,255,255,.2)}.section-title{font-size:clamp(2.25rem, 4.5vw, 3.5rem);font-weight:900;text-transform:uppercase;font-style:italic;line-height:.95}.portrait-frame{position:relative;width:100%;max-width:500px;aspect-ratio:1/1}.portrait-frame::before{content:'';position:absolute;inset:-20px;border:1px solid var(--accent);opacity:.3;border-radius:40px}.portrait-img{width:100%;height:100%;object-fit:cover;border-radius:32px;filter:grayscale(100%);position:relative;z-index:10;transition:.5s}.portrait-frame:hover .portrait-img{filter:grayscale(0%)}.eng-card{background:var(--bg-1);border:1px solid var(--border);border-radius:32px;overflow:hidden;transition:.4s;padding:16px;height:100%;display:flex;flex-direction:column}.eng-card:hover{border-color:var(--accent);transform:translateY(-10px)}.eng-img-container{width:100%;height:300px;overflow:hidden;border-radius:20px;margin-bottom:24px;background:#111}.eng-img{width:100%;height:100%;object-fit:cover;filter:grayscale(100%);transition:.6s}.eng-img[src*="26_La-cellule"],.eng-img[src*="28_Temoigner"]{object-position:center 10%}.eng-card:hover .eng-img{filter:grayscale(0%);transform:scale(1.05)}.eng-list{list-style:none;padding:0;margin-top:15px}.eng-list li{position:relative;padding-left:20px;font-size:13px;color:var(--text-2);margin-bottom:8px}.eng-list li::before{content:'•';position:absolute;left:0;color:var(--accent);font-weight:700}.poem-section.py-32{position:relative;overflow:hidden;padding-top:6rem!important}@media (max-width:640px){.poem-section.py-32{padding-top:4rem!important;padding-bottom:5rem!important}}.poem-eyebrow{color:var(--accent);font-weight:900;text-transform:uppercase;font-size:11px;letter-spacing:.4em;display:block;margin-bottom:1rem;text-align:center}.poem-text{font-size:1.35rem;font-style:italic;font-weight:300;line-height:2;color:var(--text-1);text-align:center;max-width:720px;margin:0 auto}.poem-text p{margin-bottom:1.75rem}.poem-signature{display:block;margin-top:2.5rem;text-align:center;font-style:normal;font-weight:900;text-transform:uppercase;letter-spacing:.1em;font-size:13px;color:var(--text-2)}.poem-signature::before{content:'— '}@media (max-width:640px){.poem-text{font-size:1.1rem;line-height:1.9}}.bg-portrait-fixed{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:110%;height:110%;object-fit:cover;opacity:.08;z-index:-1;pointer-events:none;filter:grayscale(100%);transition:opacity .5s}.light-mode .bg-portrait-fixed{opacity:.18}.light-mode #header-logo,.light-mode img[alt=Logo]{filter:invert(1)}h1{text-align:left!important}#menu-btn{display:none;width:40px;height:40px;align-items:center;justify-content:center;background:0 0;border:none;padding:0;color:var(--text-1)}#menu-btn svg{width:26px;height:26px}@media (max-width:1023px){.eng-card.scroll-hover{border-color:var(--accent);transform:translateY(-10px)}.eng-card.scroll-hover .eng-img{filter:grayscale(0%);transform:scale(1.05)}.portrait-frame.scroll-hover .portrait-img{filter:grayscale(0%)}#menu-btn{display:flex!important}nav>div.hidden.lg\:flex.items-center:not(.mobile-menu-active){display:none!important}nav>div.hidden.lg\:flex.items-center.mobile-menu-active{display:flex!important;position:fixed;top:73px;left:0;width:100%;height:calc(100vh - 73px);overflow-y:auto;background:var(--bg-1);border-bottom:1px solid var(--border);flex-direction:column;align-items:stretch;padding:28px 24px;z-index:999}nav>div.hidden.lg\:flex.items-center.mobile-menu-active .flex.items-center.space-x-6{flex-direction:column;align-items:stretch;margin-right:0;gap:18px;width:100%}nav>div.hidden.lg\:flex.items-center.mobile-menu-active .flex.items-center.space-x-6>*{margin-left:0!important;max-width:100%;box-sizing:border-box}nav>div.hidden.lg\:flex.items-center.mobile-menu-active .nav-link{display:flex;align-items:center;font-size:15px;padding:14px 4px;border-bottom:1px solid var(--border);color:var(--text-1);text-align:left}nav>div.hidden.lg\:flex.items-center.mobile-menu-active .nav-link:active,nav>div.hidden.lg\:flex.items-center.mobile-menu-active .nav-link:hover{color:var(--accent);border-color:var(--accent)}nav>div.hidden.lg\:flex.items-center.mobile-menu-active .btn-red{width:100%;justify-content:center;margin-top:4px}nav>div.hidden.lg\:flex.items-center.mobile-menu-active .access-trigger{display:flex;align-items:center;width:100%;justify-content:flex-start;margin:24px 0 0;padding:14px 4px;background:0 0;border:none;border-radius:0;border-top:1px solid var(--border);color:var(--text-2)}nav>div.hidden.lg\:flex.items-center.mobile-menu-active .access-trigger:active,nav>div.hidden.lg\:flex.items-center.mobile-menu-active .access-trigger:hover{color:var(--accent)}#access-panel{top:80px;right:14px}main>section:first-of-type{padding-top:7rem}.section-title{font-size:clamp(2rem, 4vw, 2.75rem)}}@media (max-width:767px){main>section:first-of-type{padding-top:6rem;padding-bottom:3rem}.section-title{font-size:clamp(1.9rem, 5vw, 2.25rem)}}.py-32{padding-top:0!important;padding-bottom:8rem!important}main section:nth-of-type(2) .text-center.mb-24{text-align:left!important}main section:nth-of-type(2) .max-w-6xl{max-width:80rem}@keyframes revealUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.reveal-pre{opacity:0}.reveal-pre.is-visible{animation:revealUp .7s ease forwards}.site-footer{background:var(--bg-2,#0a0a0a);border-top:1px solid var(--border);padding:64px 24px 0}.foot-wrap{max-width:1200px;margin:0 auto}.foot-top{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:40px;padding-bottom:48px;border-bottom:1px solid var(--border);text-align:left}@media (max-width:900px){.foot-top{grid-template-columns:1fr 1fr}}@media (max-width:560px){.foot-top{grid-template-columns:1fr}}#footer-logo,.foot-brand img{display:block;height:40px;width:auto;max-width:200px;object-fit:contain;object-position:left center;margin:0 0 16px}.foot-brand p{color:var(--text-2);font-size:14px;line-height:1.7;max-width:280px;margin:0 0 20px}.foot-social{display:flex;gap:12px}.foot-social a{width:38px;height:38px;border:1px solid var(--border);border-radius:10px;display:flex;align-items:center;justify-content:center;transition:.3s;color:var(--text-1)}.foot-social a:hover{border-color:var(--accent);color:var(--accent)}.foot-col-title{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.15em;color:var(--accent);margin:0 0 18px}.foot-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.foot-col a{font-size:14px;color:var(--text-2);transition:.2s}.foot-col a:hover{color:var(--text-1)}.foot-contact address{font-style:normal;font-size:14px;color:var(--text-2);line-height:1.8}.foot-cta{display:inline-block;margin-top:16px;background:var(--accent);color:#fff!important;font-weight:800;font-size:11px;text-transform:uppercase;letter-spacing:.05em;padding:12px 22px;border-radius:10px}.foot-bottom{padding:24px 0;display:flex;flex-wrap:wrap;gap:12px 24px;align-items:center;justify-content:space-between;font-size:12px;color:var(--text-2)}.foot-legal-links{display:flex;flex-wrap:wrap;gap:6px 18px}.foot-legal-links a:hover{color:var(--text-1)}.foot-placeholder{color:#ff8080;font-weight:700}.portrait-frame.scroll-hover .portrait-img,.portrait-frame:hover .portrait-img{filter:grayscale(0%)}.eng-card.scroll-hover{border-color:var(--accent);transform:translateY(-10px)}.eng-card.scroll-hover .eng-img{filter:grayscale(0%);transform:scale(1.05)}.eng-card.manual-hover,.eng-card.scroll-hover{border-color:var(--accent)!important;transform:translateY(-10px)!important}.eng-card.manual-hover .eng-img,.eng-card.scroll-hover .eng-img{filter:grayscale(0%)!important;transform:scale(1.05)!important}.portrait-frame.manual-hover .portrait-img,.portrait-frame.scroll-hover .portrait-img{filter:grayscale(0%)!important}.eng-card,.eng-img,.portrait-frame{transition:all .5s ease!important}.eng-card,.eng-img,.portrait-frame{transition:transform .5s ease,filter .5s ease,border-color .5s ease!important}.eng-card{transform:none!important}.eng-card .eng-img{filter:grayscale(100%)!important;transform:none!important}.portrait-frame .portrait-img{filter:grayscale(100%)!important}@media (hover:hover) and (pointer:fine){.eng-card.mouse-active,.eng-card:hover{border-color:var(--accent)!important;transform:translateY(-10px)!important}.eng-card.mouse-active .eng-img,.eng-card:hover .eng-img{filter:grayscale(0%)!important;transform:scale(1.05)!important}.portrait-frame.mouse-active .portrait-img,.portrait-frame:hover .portrait-img{filter:grayscale(0%)!important}}@media (hover:none),(pointer:coarse){.eng-card.scroll-active,.eng-card.touch-active{border-color:var(--accent)!important;transform:translateY(-10px)!important}.eng-card.scroll-active .eng-img,.eng-card.touch-active .eng-img{filter:grayscale(0%)!important;transform:scale(1.05)!important}.portrait-frame.scroll-active .portrait-img,.portrait-frame.touch-active .portrait-img{filter:grayscale(0%)!important}}.eng-card.scroll-hover{border-color:inherit!important;transform:none!important}.eng-card.scroll-hover .eng-img{filter:grayscale(100%)!important;transform:none!important}.portrait-frame.scroll-hover .portrait-img{filter:grayscale(100%)!important}.parcours-portrait-featured{display:block;max-width:1120px;margin:0 auto;border:1px solid var(--border);border-radius:28px;overflow:hidden;background:var(--bg-2);text-decoration:none;transition:border-color .3s ease,box-shadow .3s ease,transform .3s ease}.parcours-portrait-featured-inner{display:grid;grid-template-columns:1fr 1fr;min-height:360px}.parcours-portrait-featured-inner>img{width:100%;height:100%;min-height:360px;object-fit:cover;filter:grayscale(70%);transition:filter .6s ease,transform .7s ease}.parcours-portrait-featured-text{padding:44px;display:flex;flex-direction:column;justify-content:center;background:var(--bg-2)}.parcours-portrait-featured-tag{display:block;color:var(--accent);font-size:11px;font-weight:900;letter-spacing:.3em;text-transform:uppercase;margin-bottom:14px}.parcours-portrait-featured-text h1{margin:0 0 16px;font-size:clamp(2rem,4vw,3.4rem);font-weight:900;font-style:italic;line-height:.92;text-transform:uppercase;color:var(--text-1)}.parcours-portrait-featured-text h1 span{color:var(--accent)}.parcours-portrait-featured-text p{margin:0 0 18px;color:var(--text-2);font-size:14px;line-height:1.7;font-style:italic}.parcours-portrait-featured-text .parcours-portrait-role{color:var(--text-1);font-size:12px;font-weight:800;font-style:normal;text-transform:uppercase;letter-spacing:.04em;margin-bottom:14px}.parcours-portrait-featured-text .btn-red{width:fit-content}.parcours-portrait-featured:hover{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),0 22px 55px rgba(0,0,0,.25);transform:translateY(-3px)}.parcours-portrait-featured:hover img{filter:grayscale(0);transform:scale(1.04)}@media(max-width:899px){.parcours-portrait-featured-inner{grid-template-columns:1fr}.parcours-portrait-featured-inner>img{height:280px;min-height:280px}.parcours-portrait-featured-text{padding:30px}}@media(max-width:560px){.parcours-portrait-featured-inner>img{height:230px;min-height:230px}.parcours-portrait-featured-text{padding:24px}.parcours-portrait-featured-text h1{font-size:clamp(2rem,11vw,3rem)}}
/* Carte d'appel aux dons — remplace l'ancien bouton isolé */
.donation-card-section { margin-top: 100px; padding-bottom: 40px; }
.donation-card {
  position: relative;
  overflow: hidden;
  border-radius: 32px;
  background: linear-gradient(155deg, #fffdfb 0%, #fbf3ef 100%);
  border: 1px solid rgba(204,0,0,.12);
  padding: 72px 48px;
  text-align: center;
  isolation: isolate;
  box-shadow: 0 30px 70px rgba(0,0,0,.08);
  transition: transform .3s cubic-bezier(.4,0,.2,1), box-shadow .3s cubic-bezier(.4,0,.2,1), border-color .3s ease;
}
.donation-card:hover {
  transform: translateY(-6px);
  border-color: rgba(204,0,0,.35);
  box-shadow: 0 40px 90px rgba(204,0,0,.14);
}
.donation-card-glow {
  position: absolute;
  top: -40%;
  left: 50%;
  transform: translateX(-50%);
  width: 640px;
  height: 640px;
  background: radial-gradient(circle, rgba(204,0,0,.09) 0%, transparent 68%);
  pointer-events: none;
  z-index: 0;
}
.donation-card-inner { position: relative; z-index: 1; max-width: 640px; margin: 0 auto; }
.donation-card-title {
  font-family: 'Dosis', sans-serif;
  font-weight: 900;
  text-transform: uppercase;
  font-size: clamp(1.9rem, 3.4vw, 2.7rem);
  line-height: 1.08;
  color: #17130f;
  margin: 14px 0 20px;
}
.donation-card-text {
  color: #5c5651;
  font-size: 1rem;
  line-height: 1.7;
  margin: 0 auto 36px;
  max-width: 540px;
}
.donation-card-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 18px 44px;
  font-size: 15px;
  box-shadow: 0 18px 40px rgba(204,0,0,.28);
}
@media (max-width: 640px) {
  .donation-card { padding: 48px 24px; border-radius: 24px; }
  .donation-card-btn { width: 100%; justify-content: center; padding: 16px 28px; }
}

/* Section Partenaires - Carrousel Infini */

    100% { transform: translateX(calc(-50% - 10px)); } /* -50% car on a doublé les logos + compensation du gap */
}
/* Section Partenaires - Carrousel Infini */
.partners-section {
    position: relative;
    z-index: 5;
    background: transparent;
    padding-top: 50px;
    padding-bottom: 80px;
}
.partners-carousel-wrap {
    width: 100%;
    overflow: hidden;
    position: relative;
    padding: 20px 0;
}
/* Dégradé sur les bords pour l'effet d'apparition en douceur */
.partners-carousel-wrap::before,
.partners-carousel-wrap::after {
    content: "";
    position: absolute;
    top: 0;
    width: 15%;
    height: 100%;
    z-index: 2;
    pointer-events: none;
}
.partners-carousel-wrap::before {
    left: 0;
    background: linear-gradient(to right, var(--bg-1) 0%, transparent 100%);
}
.partners-carousel-wrap::after {
    right: 0;
    background: linear-gradient(to left, var(--bg-1) 0%, transparent 100%);
}

.partners-track {
    display: flex;
    align-items: center;
    gap: 80px;
    width: max-content;
    animation: scroll-partners 40s linear infinite;
}
.partners-track:hover {
    animation-play-state: paused;
}

.partner-logo {
    flex: 0 0 auto;
    width: 220px; /* Taille fixe raisonnable */
    height: 110px; /* Hauteur fixe pour alignement propre */
    display: flex;
    align-items: center;
    justify-content: center;
    transition: 0.5s ease;
}

.partner-logo img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    filter: grayscale(100%) opacity(0.6);
    transition: 0.4s ease;
}

.partner-logo:hover img {
    filter: grayscale(0%) opacity(1);
    transform: scale(1.05);
}

/* Mode sombre automatique sur les logos complexes */
.dark-mode .partner-logo img {
    filter: grayscale(100%) brightness(0) invert(1) opacity(0.6);
}
.dark-mode .partner-logo:hover img {
    filter: grayscale(0%) brightness(0) invert(1) opacity(1);
}

/* On exempte certains logos du mode blanc total s'ils ont déjà des couleurs intégrées, 
   on laisse le navigateur gérer ou on passe par ACF plus tard si on veut un contrôle total */
.dark-mode .partner-logo:hover img[src*="ceid"],
.dark-mode .partner-logo:hover img[src*="esperer"] {
    filter: grayscale(0%) brightness(1) invert(0) opacity(1);
    background: white;
    padding: 10px;
    border-radius: 8px;
}

@keyframes scroll-partners {
    0% { transform: translateX(0); }
    100% { transform: translateX(calc(-33.333%)); } /* On a mis 3 boucles, donc on décale d'un tiers pour une boucle infinie parfaite */
}

@media (max-width: 768px) {
    .partner-logo { width: 150px; height: 75px; }
    .partners-track { gap: 40px; }
    .partners-carousel-wrap::before, .partners-carousel-wrap::after { width: 20%; }
}

@media (min-width: 1024px) {
  /* On annule la marge container automatique juste pour l'alignement visuel parfait des titres */
  .parcours-engagement-section .container,
  .partners-section .container {
      max-width: 1152px !important;
  }
  .eng-title-wrap, .partners-title-wrap {
      margin-left: 0 !important;
      padding-left: 0 !important;
  }
  .grid-cols-1.md\:grid-cols-2.gap-10 {
      margin-left: 0 !important;
  }
}
