
:root {
  --coral:         #FB926B;
  --coral-bg:      #fddfd8;
  --mint:          #BAFAEE;
  --mint-bg:       #dffdf7;
  --periwinkle:    #BFCCFB;
  --periwinkle-bg: #dee5fd;
  --cream:         #FEECC2;
  --cream-grid:    #fbefd3;
  --rose:          #FFCEEC;
  --rose-mid:      #FF9DB8;
  --lavender:      #CDB8FF;
  --ink:      #161616;
  --ink-dark: #2a2a2a;
  --ink-70:   rgba(22,22,22,.7);
  --ink-mid:  #555555;
  --ink-soft: #888888;
  --ink-45:   rgba(22,22,22,.45);
  --ink-20:   rgba(22,22,22,.2);
  --body-bg: #F2F2F2;
  --white:   #ffffff;
  --mid:     #c8c8c8;
  --border:  #161616;
  --display: 'Bricolage Grotesque', system-ui, sans-serif;
  --sans:    'Lato', system-ui, sans-serif;
  --r: 0px;
  --r-btn: 6px;
  --r-grid: 12px;
  --ease-out: cubic-bezier(.23,1,.32,1);
  --ease-spring: cubic-bezier(.34,1.56,.64,1);
  --max-w: 1240px;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family: var(--sans);background:var(--body-bg);color:var(--ink);font-size:16.8px;line-height:1.75}
h1,h2,h3,h4{font-family:var(--display)}
img{max-width:100%;display:block}

/* NAV */
.site-nav{
  position:sticky;top:0;z-index:100;
  background:rgba(242,242,242,.92);
  backdrop-filter:blur(12px);
  border-bottom:1.5px solid var(--border);
  padding:0 3rem;
  display:flex;align-items:center;gap:0;
}
.nav-top-bar{
  background:var(--ink);
  display:flex;justify-content:flex-end;gap:2rem;
  padding:.4rem 3rem;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;
}
.nav-top-bar a{color:rgba(255,255,255,.6);text-decoration:none;transition:color .2s}
.nav-top-bar a:hover{color:#fff}
.nav-logo{
  font-family:var(--display);font-size:1.15rem;font-weight:700;
  letter-spacing:-.04em;color:var(--ink);text-decoration:none;
  padding:1.2rem 0;margin-right:auto;
  display:flex;align-items:center;gap:.5rem;
}
.nav-logo em{color:var(--coral);font-style:normal}
.nav-links{display:flex;list-style:none;gap:0;height:100%}
.nav-links li{height:100%;position:relative}
.nav-links a{
  display:flex;align-items:center;height:100%;
  padding:0 1.35rem;
  font-size:.82rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  text-decoration:none;color:var(--ink-mid);
  border-bottom:2.5px solid transparent;
  transition:color .2s,border-color .2s;
}
.nav-links a:hover,.nav-links a.active{color:var(--ink);border-bottom-color:var(--coral)}
.nav-cta{
  margin-left:1.5rem;
  background:var(--coral);color:#fff;
  padding:.65rem 1.5rem;
  border:1.5px solid var(--border);
  border-radius:var(--r-btn);
  font-family: var(--sans);font-size:.82rem;font-weight:700;
  text-decoration:none;
  transition:background .2s,transform .18s var(--ease-spring);
}
.nav-cta:hover{background:var(--ink);transform:translateY(-2px)}

/* HERO */
.hero{
  background:var(--cream);
  border-bottom:1.5px solid var(--border);
  padding:5rem 3rem 4rem;
  position:relative;overflow:hidden;
}
.hero::before{
  content:'';position:absolute;inset:0;
  background-image:radial-gradient(circle,rgba(22,22,22,.06) 1px,transparent 1px);
  background-size:24px 24px;
  pointer-events:none;
}
.hero-inner{max-width:var(--max-w);margin:0 auto;position:relative}
.hero-label{
  display:inline-flex;align-items:center;gap:.6rem;
  font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ink-mid);margin-bottom:1.2rem;
}
.hero-label::before{content:'';width:20px;height:1.5px;background:var(--ink-mid)}
.hero h1{
  font-size:clamp(3rem,6vw,5.5rem);
  font-weight:700;letter-spacing:-.05em;line-height:1;
  margin-bottom:1.5rem;
}
.hero-intro{
  font-size:1.1rem;color:var(--ink-mid);line-height:1.8;
  max-width:60ch;
}

/* SECTION WRAPPER */
.section{padding:5rem 3rem}
.section-inner{max-width:var(--max-w);margin:0 auto}

/* MISSIONS */
.missions-wrap{
  background:var(--cream-grid);
  border:1.5px solid var(--border);
  border-radius:var(--r-grid);
  padding:1.5rem;
}
.missions-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
.mission-item{
  background:#fff;
  border:1.5px solid var(--border);
  padding:2rem;
  cursor:pointer;
  transition:transform .3s var(--ease-spring), box-shadow .3s var(--ease-out);
  position:relative;overflow:hidden;
}
.mission-item::after{
  content:'';position:absolute;top:0;left:0;right:0;height:3px;
  background:var(--coral);
  transform:scaleX(0);transform-origin:left;
  transition:transform .35s var(--ease-out);
}
.mission-item:hover{transform:translateY(-4px);box-shadow:4px 10px 0 rgba(0,0,0,.1)}
.mission-item:hover::after{transform:scaleX(1)}
.mission-num{
  font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ink-soft);margin-bottom:.75rem;
}
.mission-title{
  font-family:var(--display);font-size:1.05rem;font-weight:700;
  letter-spacing:-.02em;margin-bottom:.5rem;
}
.mission-desc{font-size:.88rem;color:var(--ink-mid);line-height:1.7}

/* IMAGE + TEXT 2col */
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center}
.two-col-img{
  background:var(--mid);
  aspect-ratio:4/3;
  border:1.5px solid var(--border);
  display:flex;align-items:center;justify-content:center;
  position:relative;overflow:hidden;
}
.img-placeholder{font-size:3rem;opacity:.3}

/* VALEURS */
.valeurs-section{background:var(--mint-bg)}
.valeurs-grid{display:flex;flex-direction:column;gap:1px;background:var(--border)}
.valeur-item{
  background:#fff;
  display:grid;grid-template-columns:80px 1fr;
  align-items:center;
  border-left:0 solid transparent;
  cursor:pointer;
  transition:background .2s, border-left-width .2s var(--ease-spring),transform .2s;
}
.valeur-item:hover{background:var(--mint-bg);border-left:5px solid var(--mint);transform:translateX(3px)}
.valeur-icon{
  display:flex;align-items:center;justify-content:center;
  padding:1.8rem;font-size:1.4rem;
  border-right:1.5px solid var(--border);
}
.valeur-body{padding:1.6rem 2rem}
.valeur-title{
  font-family:var(--display);font-size:1rem;font-weight:700;
  letter-spacing:-.02em;margin-bottom:.3rem;
}
.valeur-desc{font-size:.88rem;color:var(--ink-mid);line-height:1.7}

/* STRATEGIE */
.strategie-section{background:var(--cream)}
.strategie-inner{display:grid;grid-template-columns:320px 1fr;gap:3rem;align-items:start}
.strategie-side h2{
  font-size:2.8rem;font-weight:700;letter-spacing:-.05em;line-height:1.05;margin-bottom:1rem;
}
.strategie-side p{font-size:.95rem;color:var(--ink-mid);line-height:1.8;margin-bottom:1.5rem}
.rapport-cards{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.rapport-card{
  background:#fff;border:1.5px solid var(--border);padding:1.5rem;
  box-shadow:3px 3px 0 rgba(0,0,0,.1);
  cursor:pointer;
  transition:transform .25s var(--ease-spring),box-shadow .25s var(--ease-out);
  display:flex;flex-direction:column;
}
.rapport-card:hover{transform:translateY(-5px);box-shadow:5px 12px 0 rgba(0,0,0,.12)}
.rapport-img{
  aspect-ratio:3/2;
  border:1.5px solid var(--border);
  margin-bottom:1rem;
  overflow:hidden;
}
.rapport-img img{width:100%;height:100%;object-fit:cover;display:block}
.rapport-year{font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:.3rem}
.rapport-name{font-family:var(--display);font-size:.95rem;font-weight:700}
.rapport-cta{
  margin-top:auto;padding-top:.8rem;
  font-size:.8rem;font-weight:700;color:var(--coral);
  display:flex;align-items:center;gap:.3rem;
  text-decoration:none;
}

/* PUBLICS */
.publics-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.public-card{
  background:#fff;border:1.5px solid var(--border);padding:1.8rem 1.5rem;
  box-shadow:3px 3px 0 rgba(0,0,0,.08);
  transition:transform .25s var(--ease-spring),box-shadow .25s;
}
.public-card:hover{transform:translateY(-5px);box-shadow:5px 12px 0 rgba(0,0,0,.1)}
.public-icon{
  width:40px;height:40px;
  background:var(--periwinkle-bg);
  border:1.5px solid var(--border);
  display:flex;align-items:center;justify-content:center;
  font-size:1.1rem;margin-bottom:1rem;
}
.public-title{font-family:var(--display);font-size:.95rem;font-weight:700;letter-spacing:-.02em;margin-bottom:.4rem}
.public-desc{font-size:.83rem;color:var(--ink-mid);line-height:1.65}

/* PARTENAIRES */
.partenaires-section{background:var(--periwinkle-bg)}
.testimonials-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.partner-logos{display:flex;flex-wrap:wrap;gap:1.5rem;align-items:center;justify-content:center;padding:1rem 0}
.partner-logo-item{background:#fff;border:1.5px solid var(--border);border-radius:8px;padding:1.5rem 2rem;display:flex;align-items:center;justify-content:center;min-width:160px;max-width:240px;flex:1}
.partner-logo-item img{max-width:100%;max-height:80px;object-fit:contain;display:block}
.partner-logo-item--lg{min-width:200px;max-width:300px}
.partner-logo-item--lg img{max-height:120px}
.testimonial{
  background:#fff;border:1.5px solid var(--border);padding:2rem;
  box-shadow:3px 3px 0 rgba(0,0,0,.08);
  position:relative;
}
.quote-mark{
  font-size:3rem;line-height:1;color:var(--periwinkle);
  font-family:Georgia,serif;margin-bottom:.5rem;
}
.testimonial-text{font-size:.92rem;color:var(--ink-mid);line-height:1.8;margin-bottom:1.2rem;font-style:italic}
.testimonial-author{
  display:flex;align-items:center;gap:.75rem;
  border-top:1.5px solid var(--mid);padding-top:.9rem;
}
.author-avatar{
  width:36px;height:36px;background:var(--mid);
  border:1.5px solid var(--border);border-radius:50%;
  flex-shrink:0;display:flex;align-items:center;justify-content:center;
  font-size:.8rem;font-weight:700;color:var(--ink-soft);
}
.author-name{font-size:.82rem;font-weight:700;color:var(--ink)}
.author-role{font-size:.75rem;color:var(--ink-soft)}

/* SOUTIEN */
.soutien-section{background:var(--ink);color:#fff}
.soutien-inner{max-width:var(--max-w);margin:0 auto;padding:5rem 3rem;text-align:center}
.soutien-inner h2{
  font-family:var(--display);font-size:clamp(2.2rem,4vw,3.5rem);
  font-weight:700;letter-spacing:-.05em;margin-bottom:1.2rem;color:#fff;
}
.soutien-intro{font-size:1rem;color:rgba(255,255,255,.65);line-height:1.8;max-width:56ch;margin:0 auto 2.5rem}
.soutien-points{
  display:grid;grid-template-columns:repeat(2,1fr);
  gap:1rem;max-width:700px;margin:0 auto 3rem;
  text-align:left;
}
.soutien-point{
  display:flex;align-items:flex-start;gap:.75rem;
  background:rgba(255,255,255,.06);
  border:1.5px solid rgba(255,255,255,.12);
  padding:1.2rem;
}
.soutien-point-dot{
  width:8px;height:8px;background:var(--coral);
  flex-shrink:0;margin-top:.45rem;
}
.soutien-point-text{font-size:.88rem;color:rgba(255,255,255,.75);line-height:1.65}
.soutien-btns{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}
.btn-coral{
  display:inline-flex;align-items:center;gap:.6rem;
  background:var(--coral);color:#fff;
  padding:.9rem 2rem;
  border:1.5px solid var(--coral);
  border-radius:var(--r-btn);
  font-family: var(--sans);font-size:.95rem;font-weight:700;
  text-decoration:none;cursor:pointer;
  transition:background .22s var(--ease-out),transform .18s var(--ease-spring);
  box-shadow:0 2px 0 rgba(0,0,0,.3);
}
.btn-coral:hover{background:#e8784f;transform:translateY(-3px);box-shadow:0 6px 0 rgba(0,0,0,.3)}
.btn-outline-white{
  display:inline-flex;align-items:center;gap:.6rem;
  background:transparent;color:rgba(255,255,255,.8);
  padding:.9rem 2rem;
  border:1.5px solid rgba(255,255,255,.3);
  border-radius:var(--r-btn);
  font-family: var(--sans);font-size:.95rem;font-weight:600;
  text-decoration:none;cursor:pointer;
  transition:background .2s,color .2s,border-color .2s,transform .18s var(--ease-spring);
}
.btn-outline-white:hover{border-color:#fff;color:#fff;background:rgba(255,255,255,.08);transform:translateY(-2px)}

/* SECTION HEADER */
.section-header{margin-bottom:3rem}
.section-eyebrow{
  font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:var(--coral);display:flex;align-items:center;gap:.6rem;margin-bottom:.6rem;
}
.section-eyebrow::before{content:'';width:20px;height:1.5px;background:var(--coral)}
.section-title{
  font-size:clamp(2rem,4vw,3rem);font-weight:700;letter-spacing:-.05em;line-height:1.05;
  margin-bottom:.6rem;
}
.section-desc{font-size:.98rem;color:var(--ink-mid);line-height:1.78;max-width:58ch}

/* FOOTER */
footer{background:var(--ink)!important;color:rgba(255,255,255,.85)!important;padding:4rem 3rem 2rem;
  border-top:1.5px solid var(--border)}
.footer-inner{max-width:var(--max-w);margin:0 auto}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:3rem;margin-bottom:3rem}
.footer-brand{font-family:var(--display);font-size:1.3rem;font-weight:700;color:#fff;letter-spacing:-.04em;margin-bottom:.75rem}
.footer-brand em{color:var(--coral);font-style:normal}
.footer-tagline{font-size:.85rem;line-height:1.7;max-width:30ch;margin-bottom:1.5rem}
.footer-social{display:flex;gap:.5rem}
.footer-social a{
  width:34px;height:34px;border:1.5px solid rgba(255,255,255,.2);
  display:flex;align-items:center;justify-content:center;
  color:rgba(255,255,255,.5);font-size:.8rem;text-decoration:none;
  transition:border-color .2s,color .2s,background .2s;
}
.footer-social a:hover{border-color:var(--coral);color:var(--coral);background:rgba(251,146,107,.1)}
.footer-col h4{font-family:var(--display);font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#fff;margin-bottom:1rem}
.footer-col ul{list-style:none;display:flex;flex-direction:column;gap:.45rem}
.footer-col ul li a{font-size:.82rem;color:rgba(255,255,255,.5);text-decoration:none;transition:color .2s}
.footer-col ul li a:hover{color:var(--coral)}
.footer-bottom{
  border-top:1.5px solid rgba(255,255,255,.1);
  padding-top:1.5rem;
  display:flex;align-items:center;justify-content:space-between;
  flex-wrap:wrap;gap:1rem;
}
.footer-bottom-left{display:flex;align-items:center;gap:2rem;font-size:.75rem}
.footer-contact{display:flex;align-items:center;gap:.5rem;font-size:.78rem;color:rgba(255,255,255,.45)}

/* REVEAL ANIMATIONS */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .6s var(--ease-out),transform .6s var(--ease-out)}
.reveal.in{opacity:1;transform:translateY(0)}
.reveal-delay-1{transition-delay:.1s}
.reveal-delay-2{transition-delay:.2s}
.reveal-delay-3{transition-delay:.3s}

/* ══════════════════════════════════════════
   RESPONSIVE — 768px
══════════════════════════════════════════ */
@media(max-width:768px){
  body{font-size:16px}

  /* Hero */
  .hero{padding:3rem 1.25rem 2.5rem}
  .hero h1{font-size:clamp(2.2rem,10vw,3.2rem)}
  .hero-intro{font-size:.98rem}

  /* Sections */
  .section{padding:3rem 1.25rem}

  /* Missions — 1 colonne */
  .missions-grid{grid-template-columns:1fr}
  .mission-item{padding:1.4rem}

  /* Two-col image + text */
  .two-col{grid-template-columns:1fr;gap:2rem}
  .two-col-img{aspect-ratio:16/9}

  /* Valeurs */
  .valeur-icon{padding:1.2rem}
  .valeur-body{padding:1.2rem 1.4rem}

  /* Stratégie */
  .strategie-inner{grid-template-columns:1fr;gap:2rem}
  .strategie-side h2{font-size:2rem}
  .rapport-cards{grid-template-columns:1fr 1fr}

  /* Publics — 2 colonnes (4→2) */
  .publics-grid{grid-template-columns:1fr 1fr;gap:.75rem}
  .public-card{padding:1.3rem 1rem}

  /* Partenaires / testimonials */
  .testimonials-grid{grid-template-columns:1fr;gap:.75rem}

  /* Soutien */
  .soutien-inner{padding:3.5rem 1.25rem}
  .soutien-points{grid-template-columns:1fr}
  .soutien-btns{flex-direction:column;align-items:center}
  .soutien-btns a{width:100%;justify-content:center}

  /* Footer */
  footer{padding:3rem 1.25rem 1.5rem}
  .footer-grid{grid-template-columns:1fr;gap:2rem}
  .footer-bottom{flex-direction:column;align-items:flex-start;gap:.6rem}
  .footer-bottom-left{flex-wrap:wrap;gap:.75rem}
}

@media(max-width:480px){
  .missions-grid{grid-template-columns:1fr}
  .rapport-cards{grid-template-columns:1fr}
  .publics-grid{grid-template-columns:1fr}
}
