/*
Theme Name: Horizons Mer en Partage — Beta 1
Theme URI: https://www.horizons-mer-en-partage.fr
Author: Fonds de dotation Horizons Mer en Partage
Description: Version Beta 1 — refonte éditoriale et dynamique du site du fonds de dotation. Coexiste avec le thème Alpha. Tout le contenu est paramétrable via le Personnalisateur.
Version: 1.0.0-beta.26
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: horizons-beta
*/

:root{
  --ink:#101f33;          /* marine profond */
  --navy:#17324f;
  --cream:#faf5eb;
  --cream-2:#f2e9d8;
  --terra:#e0512a;
  --terra-deep:#bf3f1d;
  --sage:#5f9ea0;
  --sage-deep:#457e80;
  --sun:#f0b64b;
  --paper-line:rgba(16,31,51,.14);
  --glow:0 24px 60px -24px rgba(16,31,51,.45);
  --lift:0 14px 34px -18px rgba(16,31,51,.35);
  --disp:"Fraunces",Georgia,serif;
  --sans:"Manrope",system-ui,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--sans);color:var(--ink);background:var(--cream);line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.wrap{max-width:1180px;margin:0 auto;padding:0 28px}
h1,h2,h3{font-family:var(--disp);font-weight:600;line-height:1.06;letter-spacing:-.01em}
h2{font-size:clamp(2rem,4.4vw,3.4rem);color:var(--ink)}
em{font-style:italic;color:var(--terra)}
.kicker{
  display:inline-flex;align-items:center;gap:10px;
  font-size:.78rem;font-weight:800;letter-spacing:.22em;text-transform:uppercase;color:var(--sage-deep);
}
.kicker::before{content:"";width:34px;height:2px;background:var(--terra)}

/* ---------- BOUTONS ---------- */
.btn{
  display:inline-flex;align-items:center;gap:10px;
  font-weight:800;font-size:.95rem;letter-spacing:.01em;
  padding:15px 28px;border-radius:100px;cursor:pointer;border:none;
  background:var(--terra);color:#fff;transition:.25s;
  box-shadow:0 12px 26px -12px rgba(224,81,42,.7);
}
.btn svg{transition:.25s}
.btn:hover{background:var(--terra-deep);transform:translateY(-2px)}
.btn:hover svg{transform:translateX(4px)}
.btn.ghost{background:transparent;color:var(--ink);box-shadow:none;border:2px solid var(--paper-line)}
.btn.ghost:hover{border-color:var(--ink);background:var(--ink);color:var(--cream)}
.btn.light{background:var(--cream);color:var(--ink);box-shadow:0 12px 26px -14px rgba(0,0,0,.5)}
.btn.light:hover{background:#fff}

/* ---------- NAV ---------- */
header{position:fixed;inset:0 0 auto 0;z-index:60;padding:16px 0;transition:.35s}
header.scrolled{background:rgba(16,31,51,.9);backdrop-filter:blur(14px);padding:10px 0;box-shadow:0 1px 0 rgba(255,255,255,.08)}
.nav{display:flex;align-items:center;justify-content:space-between}
.brand{display:flex;align-items:center;gap:12px}
.brand .logo-disc{width:46px;height:46px;border-radius:50%;background:#fff;display:grid;place-items:center;overflow:hidden;box-shadow:var(--lift)}
.brand .logo-disc img{width:82%;height:auto}
.brand .bt{font-family:var(--disp);font-weight:700;font-size:1.2rem;color:#fff;line-height:1}
.brand .bs{font-size:.6rem;letter-spacing:.26em;text-transform:uppercase;color:var(--sun);font-weight:800}
nav.menu{display:flex;gap:30px}
nav.menu a{color:rgba(255,255,255,.85);font-weight:600;font-size:.92rem;transition:.2s;position:relative}
nav.menu a::after{content:"";position:absolute;left:0;bottom:-6px;width:0;height:2px;background:var(--sun);transition:.25s}
nav.menu a:hover{color:#fff}
nav.menu a:hover::after{width:100%}
.nav-cta{display:flex;align-items:center;gap:12px}
.burger{display:none;background:none;border:none;cursor:pointer;padding:8px}
.burger span{display:block;width:24px;height:2px;background:#fff;margin:5px 0;border-radius:2px;transition:.3s}

/* ---------- HERO ---------- */
.hero{
  position:relative;min-height:100svh;display:flex;align-items:center;
  padding:150px 0 110px;color:var(--cream);overflow:hidden;
  background:
    radial-gradient(90% 70% at 85% 15%, rgba(95,158,160,.25), transparent 60%),
    radial-gradient(70% 60% at 8% 90%, rgba(224,81,42,.16), transparent 60%),
    linear-gradient(165deg,#101f33 0%, #17324f 70%, #1c3f60 100%);
}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:70px;align-items:center;width:100%}
.hero .kicker{color:var(--sun)}
.hero .kicker::before{background:var(--sun)}
.hero h1{font-size:clamp(2.8rem,6.2vw,5rem);color:#fff;margin:24px 0 22px}
.hero h1 em{color:var(--sun);font-weight:600}
.hero .sub{font-size:1.18rem;color:rgba(255,255,255,.82);max-width:44ch;margin-bottom:36px}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap}
.hero .btn.ghost{color:#fff;border-color:rgba(255,255,255,.28)}
.hero .btn.ghost:hover{background:#fff;color:var(--ink);border-color:#fff}
/* image en arche */
.hero-visual{position:relative}
.arch{
  border-radius:0;overflow:hidden;
  border:8px solid rgba(255,255,255,.95);box-shadow:var(--glow);
}
.arch img{width:100%;height:560px;object-fit:cover;object-position:center 20%}
.hero-badge{
  position:absolute;left:-20px;bottom:34px;background:var(--sun);color:var(--ink);
  font-weight:800;font-size:.88rem;padding:12px 20px;border-radius:100px;
  box-shadow:var(--lift);transform:rotate(-2deg);
}
/* cerf-volant flottant */
.kite{position:absolute;top:-24px;right:6%;width:70px;animation:float 7s ease-in-out infinite;filter:drop-shadow(0 10px 16px rgba(0,0,0,.3))}
@keyframes float{0%,100%{transform:translateY(0) rotate(-5deg)}50%{transform:translateY(-16px) rotate(6deg)}}

/* ---------- MARQUEE ---------- */
.marquee{background:var(--cream-2);overflow:hidden;padding:14px 0;border-top:1px solid var(--paper-line);border-bottom:1px solid var(--paper-line)}
.mq-track{display:inline-flex;align-items:center;gap:38px;white-space:nowrap;animation:mq 40s linear infinite;will-change:transform}
.mq-track span{font-family:var(--sans);font-weight:700;font-size:.82rem;letter-spacing:.2em;text-transform:uppercase;color:var(--navy)}
.mq-track i{font-style:normal;color:var(--sage);font-size:.6rem}
@keyframes mq{to{transform:translateX(-50%)}}

/* ---------- SECTIONS ---------- */
.sec{padding:110px 0;position:relative}
.sec-head{max-width:680px;margin-bottom:56px}
.sec-head.center{margin-inline:auto;text-align:center}
.sec-head.center .kicker{justify-content:center}
.sec-head h2{margin:16px 0 14px}
.sec-head p{color:#4c5b6d;font-size:1.08rem}

/* ---------- MISSION ---------- */
.mission-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;align-items:start}
#mission .act:nth-child(2){margin-top:30px}
#mission .act:nth-child(3){margin-top:60px}
.act{
  position:relative;background:#fff;border-radius:20px;padding:44px 32px 36px;
  box-shadow:var(--lift);overflow:hidden;transition:.35s;border:1px solid rgba(16,31,51,.05);
}
.act:hover{transform:translateY(-10px) rotate(-.6deg);box-shadow:0 26px 54px -22px rgba(16,31,51,.45)}
.act .n{
  position:absolute;top:-18px;right:10px;font-family:var(--disp);font-weight:700;
  font-size:7rem;line-height:1;color:transparent;-webkit-text-stroke:2px var(--cream-2);
  transition:.45s cubic-bezier(.2,.75,.3,1.4);
}
.act:hover .n{color:var(--terra);-webkit-text-stroke:0;transform:translateY(-8px) rotate(-5deg)}
.act:nth-child(2):hover .n{color:var(--sun)}
.act:nth-child(3):hover .n{color:var(--sage)}
.act:nth-child(2) .n{-webkit-text-stroke-color:#f6d9cd}
.act:nth-child(3) .n{-webkit-text-stroke-color:#d9e6e4}
.act h3{font-size:1.5rem;margin-bottom:12px;position:relative}
.act p{color:#4c5b6d;font-size:.98rem;position:relative}
.act::after{content:"";position:absolute;left:32px;bottom:0;width:52px;height:4px;border-radius:4px 4px 0 0;background:var(--terra);transition:.5s cubic-bezier(.2,.75,.2,1)}
.act:hover::after{width:calc(100% - 64px)}
.act:nth-child(2)::after{background:var(--sun)}
.act:nth-child(3)::after{background:var(--sage)}

/* ---------- IMPACT ---------- */
.impact{background:var(--ink);color:var(--cream);clip-path:polygon(0 3%,100% 0,100% 97%,0 100%)}
.impact .kicker{color:var(--sun)}
.impact .kicker::before{background:var(--sun)}
.impact h2{color:#fff}
.impact .sec-head p{color:rgba(255,255,255,.7)}
.imp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.imp{
  border:1px solid rgba(255,255,255,.14);border-radius:18px;padding:32px 26px;
  background:rgba(255,255,255,.04);transition:.3s;
}
.imp:hover{background:rgba(255,255,255,.08);transform:translateY(-4px)}
.imp .big{font-family:var(--disp);font-weight:700;font-size:clamp(2.6rem,4.5vw,4rem);line-height:1;color:var(--sun)}
.imp .big .u{font-size:.55em;color:var(--terra);margin-left:2px}
.imp p{color:rgba(255,255,255,.75);font-size:.92rem;margin-top:10px}
.imp-note{margin-top:30px;font-size:.8rem;color:rgba(255,255,255,.45)}

/* ---------- HISTOIRE / FRISE ---------- */
.histoire-grid{display:grid;grid-template-columns:1fr .9fr;gap:64px;align-items:start}
.timeline{position:relative;padding-left:34px}
.timeline::before{content:"";position:absolute;left:9px;top:8px;bottom:8px;width:2px;background:repeating-linear-gradient(180deg,var(--sage) 0 8px,transparent 8px 16px)}
.tl-item{position:relative;padding-bottom:38px}
.tl-item::before{content:"";position:absolute;left:-32px;top:6px;width:16px;height:16px;border-radius:50%;background:var(--cream);border:3px solid var(--terra)}
.tl-item:nth-child(2)::before{border-color:var(--sun)}
.tl-item:nth-child(3)::before{border-color:var(--sage)}
.tl-item:nth-child(4)::before{border-color:var(--ink)}
.tl-item .y{display:inline-block;font-size:.74rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;background:var(--cream-2);border-radius:100px;padding:5px 14px;color:var(--navy);margin-bottom:10px}
.tl-item h3{font-size:1.45rem;margin-bottom:8px}
.tl-item p{color:#4c5b6d;font-size:.98rem;max-width:52ch}
.histoire-visual{position:sticky;top:110px}
.histoire-visual .frame{
  border-radius:0;overflow:hidden;box-shadow:var(--glow);
  border:8px solid #fff;
}
.histoire-visual img{width:100%;height:540px;object-fit:cover}

/* ---------- LE LIEU ---------- */
.lieu{background:linear-gradient(180deg,var(--cream),var(--cream-2))}
.lieu-grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:64px;align-items:center}
.lieu-visual .arch{border-color:#fff}
.lieu-visual .arch img{height:480px}
.lieu-text h2{margin:16px 0 18px}
.lieu-text p{color:#4c5b6d;font-size:1.06rem;margin-bottom:28px}

/* ---------- PARTICIPER ---------- */
.part-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.pcard{cursor:pointer;text-decoration:none;color:inherit;
  border-radius:22px;padding:40px 32px;display:flex;flex-direction:column;gap:14px;
  color:#fff;box-shadow:var(--glow);transition:.35s;position:relative;overflow:hidden;
}
.pcard:hover{transform:translateY(-8px) scale(1.01)}
.pcard.don{background:linear-gradient(150deg,var(--terra),var(--terra-deep))}
.pcard.mec{background:linear-gradient(150deg,#1c3f60,var(--ink))}
.pcard.rel{background:linear-gradient(150deg,var(--sage),var(--sage-deep))}
.pcard h3{color:#fff;font-size:1.55rem}
.pcard p{color:rgba(255,255,255,.85);font-size:.96rem;flex:1}
.pcard .btn{align-self:flex-start;background:#fff;color:var(--ink);box-shadow:none}
.pcard .btn:hover{background:var(--cream)}
.pcard::after{
  content:"";position:absolute;right:-40px;top:-40px;width:150px;height:150px;border-radius:50%;
  background:rgba(255,255,255,.1);
}

/* ---------- CITATION ---------- */
.quote{padding:120px 0;text-align:center;background:var(--cream)}
.quote.quote-tint{
  background:
    radial-gradient(70% 90% at 50% 0%, rgba(95,158,160,.16), transparent 60%),
    linear-gradient(180deg,#eef2f0 0%,#f4ede1 100%);
}
.quote .kicker{justify-content:center;margin-bottom:22px}
.quote blockquote{
  font-family:var(--disp);font-style:italic;font-weight:500;
  font-size:clamp(1.6rem,3.6vw,2.7rem);line-height:1.3;color:var(--navy);
  max-width:22ch;margin:0 auto 28px;position:relative;
}
.quote blockquote::before{content:"«";position:absolute;left:-.7em;top:-.15em;font-size:1.6em;color:var(--terra);opacity:.5}
.quote .who b{display:block;font-weight:800;color:var(--ink)}
.quote .who span{color:#71808f;font-size:.9rem}

/* ---------- FAQ ---------- */
.faq{background:linear-gradient(180deg,var(--cream-2),var(--cream))}
.faq-list{max-width:760px;margin:0 auto}
.faq-item{background:#fff;border-radius:16px;margin-bottom:14px;box-shadow:var(--lift);overflow:hidden;border:1px solid rgba(16,31,51,.05)}
.faq-q{
  width:100%;background:none;border:none;cursor:pointer;text-align:left;
  display:flex;justify-content:space-between;align-items:center;gap:16px;
  padding:22px 26px;font-family:var(--sans);font-weight:800;font-size:1.02rem;color:var(--ink);
}
.faq-q .x{
  flex-shrink:0;width:30px;height:30px;border-radius:50%;background:var(--cream-2);
  display:grid;place-items:center;font-weight:700;color:var(--terra);transition:.3s;font-size:1.2rem;line-height:1;
}
.faq-item.open .faq-q .x{transform:rotate(45deg);background:var(--terra);color:#fff}
.faq-a{max-height:0;overflow:hidden;transition:max-height .4s ease}
.faq-a p{padding:0 26px 24px;color:#4c5b6d;font-size:.97rem}

/* ---------- CTA FINAL ---------- */
.cta{
  position:relative;padding:130px 0;text-align:center;color:var(--cream);overflow:hidden;
  background:
    radial-gradient(70% 60% at 50% 0%, rgba(95,158,160,.25), transparent 60%),
    linear-gradient(160deg,#101f33,#17324f);
}
.cta h2{color:#fff;font-size:clamp(2.2rem,5vw,3.8rem);max-width:20ch;margin:0 auto 20px}
.cta h2 em{color:var(--sun)}
.cta p{color:rgba(255,255,255,.78);font-size:1.12rem;max-width:52ch;margin:0 auto 36px}
.cta .hero-cta{justify-content:center}
.cta .btn.ghost{color:#fff;border-color:rgba(255,255,255,.28)}
.cta .btn.ghost:hover{background:#fff;color:var(--ink)}
.cta .kite{top:40px;right:12%}

/* ---------- WIDGET DON ---------- */
.don-widget{margin-top:50px;background:#fff;border-radius:22px;padding:36px 28px;box-shadow:var(--lift)}
.don-widget h3{font-size:1.7rem;text-align:center;margin-bottom:6px}
.don-widget .don-sub{text-align:center;color:#71808f;font-size:.94rem;margin-bottom:22px}
.don-widget iframe{width:100%;height:820px;border:none;border-radius:14px;display:block}
.don-widget .don-alt{text-align:center;color:#71808f;font-size:.85rem;margin-top:14px}
.don-widget .don-alt a{color:var(--terra);font-weight:700;text-decoration:underline}

/* ---------- FOOTER ---------- */
footer{background:var(--ink);color:#93a4b8;padding:64px 0 30px}
.foot-grid{display:flex;flex-wrap:wrap;gap:44px;margin-bottom:44px}.foot-grid>div:first-child{flex:1.6 1 280px}.foot-col{flex:1 1 150px}
.foot-name{display:block;font-family:var(--disp);font-size:1.6rem;color:#fff;line-height:1.1;margin-bottom:12px}
.foot-name em{display:block;font-style:normal;font-family:var(--sans);font-size:.8rem;letter-spacing:.22em;text-transform:uppercase;color:var(--sun);margin-top:6px}
.foot-grid p{font-size:.92rem;max-width:36ch}
.foot-col h5{color:#fff;font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;margin-bottom:16px;font-weight:800}
.foot-col a{display:block;font-size:.92rem;margin-bottom:10px;transition:.2s}
.foot-col a:hover{color:var(--sun)}
.foot-bottom{border-top:1px solid rgba(255,255,255,.1);padding-top:24px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:.8rem;color:#5f7186}

/* ---------- PAGES INTERNES ---------- */
.page-hero{
  padding:170px 0 80px;text-align:center;color:var(--cream);
  background:radial-gradient(80% 70% at 50% 0%, rgba(95,158,160,.22), transparent 60%),linear-gradient(160deg,#101f33,#17324f);
}
.page-hero h1{color:#fff;font-size:clamp(2.4rem,5vw,3.8rem);margin:16px 0 14px}
.page-hero .kicker{color:var(--sun);justify-content:center}
.page-hero .kicker::before{background:var(--sun)}
.page-hero p{color:rgba(255,255,255,.78);font-size:1.12rem;max-width:56ch;margin:0 auto}
.spec-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.spec{background:#fff;border-radius:16px;padding:20px 22px;box-shadow:var(--lift);display:flex;flex-direction:column;gap:4px}
.spec-l{font-size:.8rem;color:#71808f;font-weight:600}
.spec-v{font-family:var(--disp);font-size:1.4rem;color:var(--ink);font-weight:600;line-height:1.1}
.split{display:grid;grid-template-columns:1.05fr .95fr;gap:60px;align-items:center}
.split .arch img{height:460px}
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.gal-item{margin:0;border-radius:16px;overflow:hidden;box-shadow:var(--lift);border:5px solid #fff;aspect-ratio:4/3;background:#fff}
.gal-item img{width:100%;height:100%;object-fit:cover;transition:.5s}
.gal-item:hover img{transform:scale(1.06)}
.pp-block{background:#fff;border-radius:22px;padding:44px 40px;box-shadow:var(--lift);margin-bottom:26px;border-left:6px solid var(--terra)}
.pp-block:nth-of-type(2){border-left-color:var(--navy)}
.pp-block:nth-of-type(3){border-left-color:var(--sage)}
.pp-block h2{font-size:1.8rem;margin-bottom:12px}
.pp-block p{color:#4c5b6d;font-size:1.02rem;margin-bottom:20px}
.page-content p{margin-bottom:16px;color:#3d4c5e}

/* ---------- ANIMATIONS ---------- */
.reveal{opacity:0;transform:translateY(34px);transition:.9s cubic-bezier(.2,.75,.2,1)}
.reveal.in{opacity:1;transform:none}
.reveal-l{opacity:0;transform:translateX(-40px);transition:.9s cubic-bezier(.2,.75,.2,1)}
.reveal-l.in{opacity:1;transform:none}

/* ---------- RESPONSIVE ---------- */
@media(max-width:960px){
  .hero-grid,.histoire-grid,.lieu-grid,.split{grid-template-columns:1fr;gap:48px}
  .hero-visual{order:-1}
  .mission-grid,.part-grid{grid-template-columns:1fr}
  #mission .act:nth-child(2),#mission .act:nth-child(3){margin-top:0}
  .imp-grid{grid-template-columns:1fr 1fr}
  nav.menu{display:none}
  .burger{display:block}
  header.open nav.menu{
    display:flex;position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:18px;
    background:var(--ink);padding:26px 28px;box-shadow:var(--glow);
  }
  .arch img{height:420px}
  .histoire-visual{position:static}
  .histoire-visual img{height:400px}
  .spec-grid,.gallery{grid-template-columns:1fr 1fr}
}
@media(max-width:540px){
  .wrap{padding:0 20px}
  .sec{padding:80px 0}
  .imp-grid,.spec-grid,.gallery{grid-template-columns:1fr}
  .pp-block{padding:32px 24px}
  .don-widget iframe{height:900px}
}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important}
  .reveal,.reveal-l{opacity:1;transform:none;transition:none}
  .mq-track{animation:none}
  html{scroll-behavior:auto}
}

/* ---------- PAGE FAMILLES : coches & bienveillance ---------- */
.check-list{list-style:none}
.check-list li{
  position:relative;padding:12px 0 12px 44px;color:#3d4c5e;font-size:1.02rem;
  border-bottom:1px dashed var(--paper-line);
}
.check-list li:last-child{border-bottom:none}
.check-list li::before{
  content:"✓";position:absolute;left:0;top:10px;width:28px;height:28px;border-radius:50%;
  background:var(--sage);color:#fff;font-weight:800;display:grid;place-items:center;font-size:.9rem;
}
.reassure{
  background:linear-gradient(135deg,var(--sun),#e9a63a);color:var(--ink);
  padding:90px 0;text-align:center;transform:rotate(-.6deg);margin:20px 0;box-shadow:var(--lift);
}
.reassure .wrap{transform:rotate(.6deg)}
.reassure .heart{width:44px;height:44px;fill:var(--terra);margin:0 auto 16px;display:block}
.reassure h2{font-size:clamp(1.8rem,4vw,2.8rem);margin-bottom:14px}
.reassure p{font-size:1.12rem;max-width:56ch;margin:0 auto;color:#3a3020}


/* ---------- PAGE PROJET & PARTICIPER : compléments ---------- */
.vision-q{font-family:var(--disp);font-style:italic;font-size:1.3rem;color:var(--navy)!important}
.proj-pts{display:grid;gap:12px}
.proj-pt{background:#fff;border-radius:14px;padding:16px 20px;box-shadow:var(--lift);border-left:4px solid var(--sage)}
.proj-pt b{display:block;color:var(--ink);font-weight:800;font-size:.98rem}
.proj-pt span{color:#4c5b6d;font-size:.9rem}
.sej-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.sej-b{background:#fff;border-radius:16px;padding:24px 22px;box-shadow:var(--lift);border-top:4px solid var(--sage);transition:.3s}
.sej-b:nth-child(3n+2){border-top-color:var(--sun)}
.sej-b:nth-child(3n){border-top-color:var(--terra)}
.sej-b:hover{transform:translateY(-4px)}
.sej-b b{display:block;font-family:var(--disp);font-size:1.2rem;color:var(--ink);margin-bottom:4px}
.sej-b span{color:#4c5b6d;font-size:.92rem}
.map-frame{border-radius:0;overflow:hidden;border:8px solid #fff;box-shadow:var(--glow);background:#fff}
.map-frame img{width:100%;height:auto;display:block}
.ter-h{font-size:1.35rem;margin-bottom:10px}
.ter-note{margin-top:36px;background:var(--cream-2);border-radius:16px;padding:22px 26px;color:var(--navy);font-size:.98rem;border-left:4px solid var(--sage)}
.tax-row{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:34px}
.tax-b{background:var(--ink);color:#fff;border-radius:18px;padding:28px 30px;display:flex;align-items:center;gap:22px;box-shadow:var(--glow)}
.tax-b .pct{font-family:var(--disp);font-weight:700;font-size:3rem;color:var(--sun);line-height:1;flex-shrink:0}
.tax-b b{display:block;font-size:1rem}
.tax-b span{color:rgba(255,255,255,.72);font-size:.86rem}
.check-list li strong{color:var(--ink)}
@media(max-width:860px){.sej-grid{grid-template-columns:1fr 1fr}.tax-row{grid-template-columns:1fr}}
@media(max-width:540px){.sej-grid{grid-template-columns:1fr}}


/* ---------- LANGAGE VISUEL PLAQUETTE ---------- */
.sec-ico{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;margin-bottom:16px;box-shadow:var(--lift)}
.sec-ico svg{width:27px;height:27px;stroke:#fff;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.sec-ico.terra{background:var(--terra)}
.sec-ico.teal{background:var(--sage-deep)}
.sec-ico.sun{background:var(--sun)}
.sec-ico.sun svg{stroke:var(--ink)}
.sec-head.center .sec-ico{margin-inline:auto;margin-bottom:16px}
.hr-heart{display:flex;align-items:center;gap:14px;justify-content:center;max-width:300px;margin:22px auto 0}
.hr-heart span{flex:1;height:2px;background:var(--terra);opacity:.45;border-radius:2px}
.hr-heart svg{width:18px;height:18px;fill:var(--terra);stroke:none;flex-shrink:0}
.deco-art{margin-top:28px}
.deco-art.teal{color:var(--sage-deep)}
.deco-art.terra{color:var(--terra)}
.deco-art svg{width:min(100%,340px);height:auto;opacity:.85}

/* Mission repensée : cartes teintées + pastilles (les numéros filigrane disparaissent) */
#mission .act{padding-top:36px}
.act .sec-ico{margin-bottom:18px;transition:.4s cubic-bezier(.2,.75,.3,1.4)}
.act:hover .sec-ico{transform:translateY(-6px) rotate(-6deg) scale(1.08)}
.act.act-1{background:linear-gradient(180deg,#fdeee7 0%,#fff 55%)}
.act.act-2{background:linear-gradient(180deg,#fdf4dd 0%,#fff 55%)}
.act.act-3{background:linear-gradient(180deg,#e7f1f0 0%,#fff 55%)}


/* Visuel des valeurs (page projet) */
.vis-visual{border:8px solid #fff;box-shadow:var(--glow);overflow:hidden;max-width:980px;margin:0 auto}
.vis-visual img{width:100%;height:auto;display:block}

/* Respiration au-dessus des boutons d'appel final */
.cta .hero-cta{margin-top:38px}


/* Mini-sommaire (page projet) */
.toc{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:28px}
.toc a{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.3);color:#fff;font-weight:700;font-size:.85rem;padding:8px 18px;border-radius:100px;transition:.25s}
.toc a:hover{background:#fff;color:var(--ink)}

/* Renvois croisés */
.xlink{margin-top:22px}
.xlink a{color:var(--terra);font-weight:800;border-bottom:2px solid rgba(224,81,42,.35);padding-bottom:2px;transition:.2s}
.xlink a:hover{border-color:var(--terra)}

/* Camembert de financement */
.fin-viz{display:flex;align-items:center;justify-content:center;gap:38px;flex-wrap:wrap;margin-top:36px}
.fin-pie{width:170px;height:170px;flex-shrink:0;filter:drop-shadow(0 10px 18px rgba(16,31,51,.18))}
.fin-legend{list-style:none;display:grid;gap:12px}
.fin-legend li{display:flex;align-items:center;gap:12px;font-weight:700;color:var(--ink)}
.fin-legend i{width:16px;height:16px;border-radius:4px;flex-shrink:0}


/* Bloc participer à 4 cartes (accueil) */
.part-grid.part-4{grid-template-columns:repeat(4,1fr)}
.part-grid.part-5{grid-template-columns:repeat(5,1fr)}
.part-grid.part-6{grid-template-columns:repeat(6,1fr)}
.pcard.logmt{background:linear-gradient(150deg,var(--sun),#e09a2e)}
.pcard.logmt h3,.pcard.logmt p{color:var(--ink)}
.pcard.logmt p{color:#3a3020}
.pcard.bnv{background:linear-gradient(150deg,#2e5a6e,#1c3f4f)}
.pcard.crowd{background:linear-gradient(150deg,#e0a13a,#c8842a)}
@media(max-width:1080px){.part-grid.part-4{grid-template-columns:1fr 1fr}.part-grid.part-5{grid-template-columns:repeat(3,1fr)}.part-grid.part-6{grid-template-columns:repeat(3,1fr)}}
@media(max-width:560px){.part-grid.part-4{grid-template-columns:1fr}.part-grid.part-5{grid-template-columns:1fr}.part-grid.part-6{grid-template-columns:1fr}}

/* Grille financement à 4 sources */
.mission-grid-4{grid-template-columns:repeat(4,1fr)}
@media(max-width:960px){.mission-grid-4{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.mission-grid-4{grid-template-columns:1fr}}


/* ---------- VISION & VALEURS : pastilles-image + photo panoramique ---------- */
.vision-sec{padding-bottom:0}
.values-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;max-width:980px;margin:0 auto 56px}
.value-b{text-align:center;padding:8px 14px}
.val-badge{display:block;width:120px;height:120px;margin:0 auto 18px;border-radius:22px;overflow:hidden;box-shadow:var(--lift);background:#fff}
.val-badge img{width:100%;height:100%;object-fit:contain;display:block}
.val-badge-fallback{display:block;width:100%;height:100%;border-radius:22px}
.val-badge-fallback.terra{background:var(--terra)}
.val-badge-fallback.sun{background:var(--sun)}
.val-badge-fallback.teal{background:var(--sage-deep)}
.value-b h3{font-size:1.3rem;margin-bottom:10px}
.value-b p{color:#4c5b6d;font-size:.96rem;max-width:30ch;margin:0 auto}
.vis-photo-full{width:100%;line-height:0}
.vis-photo-full img{width:100%;height:auto;display:block;max-height:420px;object-fit:cover}
@media(max-width:860px){.values-grid{grid-template-columns:1fr}.value-b{max-width:340px;margin:0 auto}}

/* ---------- BLOCS D'ACTION RICHES (page Participer) ---------- */
.act-block{
  display:grid;grid-template-columns:.85fr 1.15fr;gap:0;
  background:#fff;border-radius:24px;overflow:hidden;box-shadow:var(--glow);
  margin-bottom:40px;border:1px solid rgba(16,31,51,.06);
}
.act-block:nth-child(even){grid-template-columns:1.15fr .85fr}
.act-block:nth-child(even) .act-visual{order:2}
.act-visual{position:relative;min-height:280px;background:linear-gradient(150deg,var(--cream-2),var(--cream))}
.act-visual img{width:100%;height:100%;object-fit:cover;display:block;position:absolute;inset:0}
.act-visual .val-badge-fallback{position:absolute;inset:0;border-radius:0;opacity:.18}
.act-body{padding:40px 40px 36px;display:flex;flex-direction:column}
.act-body h3{font-size:1.7rem;margin-bottom:12px}
.act-body .act-desc{color:#4c5b6d;font-size:1.03rem;margin-bottom:20px}
.act-use{background:var(--cream-2);border-radius:14px;padding:16px 20px;margin-bottom:16px}
.act-use b{display:block;font-size:.76rem;letter-spacing:.1em;text-transform:uppercase;color:var(--sage-deep);margin-bottom:6px;font-weight:800}
.act-use p{color:#3d4c5e;font-size:.92rem;margin:0}
.act-inc{
  display:flex;align-items:flex-start;gap:10px;margin-bottom:24px;
  font-family:var(--disp);font-style:italic;color:var(--terra);font-size:1.05rem;font-weight:600;
}
.act-inc svg{width:20px;height:20px;flex-shrink:0;margin-top:3px;stroke:var(--terra)}
.act-block .btn{align-self:flex-start;margin-top:auto}

@media(max-width:860px){
  .act-block,.act-block:nth-child(even){grid-template-columns:1fr}
  .act-block:nth-child(even) .act-visual{order:0}
  .act-visual{min-height:200px}
  .act-body{padding:32px 28px}
}

/* ---------- FISCALITÉ (bloc séparé de la gouvernance) ---------- */
.tax-sec{background:linear-gradient(180deg,var(--cream),var(--cream-2))}

/* Conteneur élargi pour les blocs d'action riches (page Participer) */
.wrap-wide{max-width:1180px}

/* ---------- CRITÈRES & ORIENTATION (tableau, page Familles) ---------- */
.crit-table{background:#fff;border-radius:20px;overflow:hidden;box-shadow:var(--lift);max-width:900px;margin:0 auto}
.crit-row{display:grid;grid-template-columns:1fr 1.3fr;gap:24px;padding:18px 28px;border-bottom:1px solid var(--paper-line)}
.crit-row:last-child{border-bottom:none}
.crit-row.crit-head{background:var(--cream-2);font-weight:800;color:var(--navy);font-size:.85rem;letter-spacing:.04em;text-transform:uppercase}
.crit-pub{font-weight:700;color:var(--ink)}
.crit-cad{color:#4c5b6d;font-size:.95rem}
@media(max-width:640px){.crit-row{grid-template-columns:1fr;gap:6px}.crit-row.crit-head{display:none}.crit-pub{font-weight:800;color:var(--terra)}}

/* ---------- CARNET DE BORD : frise par statut ---------- */
.cb-legend{display:flex;gap:26px;justify-content:center;margin-bottom:40px;flex-wrap:wrap}
.cb-legend-item{display:flex;align-items:center;gap:8px;font-weight:700;font-size:.88rem;color:var(--navy)}
.cb-dot{width:12px;height:12px;border-radius:50%;display:inline-block}
.cb-dot.cb-fait{background:var(--sage-deep)}
.cb-dot.cb-encours{background:var(--sun)}
.cb-dot.cb-avenir{background:#9fb3c8}

.cb-timeline{display:flex;flex-direction:column;gap:18px;max-width:820px;margin:0 auto}
.cb-item{
  background:#fff;border-radius:18px;padding:24px 28px;box-shadow:var(--lift);
  border-left:6px solid #9fb3c8;position:relative;
}
.cb-item.cb-fait{border-left-color:var(--sage-deep)}
.cb-item.cb-encours{border-left-color:var(--sun)}
.cb-item.cb-avenir{border-left-color:#9fb3c8;opacity:.88}
.cb-badge{
  display:inline-block;font-size:.7rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;
  padding:4px 12px;border-radius:100px;margin-bottom:10px;color:#fff;
}
.cb-fait .cb-badge{background:var(--sage-deep)}
.cb-encours .cb-badge{background:var(--sun);color:var(--ink)}
.cb-avenir .cb-badge{background:#9fb3c8}
.cb-date{display:block;font-size:.82rem;color:#71808f;font-weight:700;margin-bottom:6px}
.cb-item h3{font-size:1.3rem;margin-bottom:6px}
.cb-item p{color:#4c5b6d;font-size:.95rem;margin:0}


/* ---------- PLANNING ---------- */
.cal-nav{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;margin-bottom:36px}
.cal-btn{display:inline-block;padding:10px 20px;border:1.5px solid var(--navy);border-radius:999px;font-weight:700;font-size:.88rem;color:var(--navy);transition:.2s}
.cal-btn:hover{background:var(--navy);color:#fff}
.cal-wrap{display:flex;flex-wrap:wrap;gap:36px;justify-content:center}
.cal-month{flex:1 1 320px;max-width:430px}
.cal-title{font-family:var(--serif,Fraunces,serif);font-weight:700;color:var(--navy);font-size:1.15rem;text-align:center;margin-bottom:14px}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.cal-dow{text-align:center;font-size:.72rem;font-weight:800;letter-spacing:.08em;color:#7a8ba0;padding:4px 0}
.cal-cell{aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;border-radius:8px;font-size:.85rem;font-weight:600;background:#f5efe2;color:var(--navy)}
.cal-cell.is-vide{background:transparent}
.cal-cell.is-attente{background:#f6dfae;color:#7a5410}
.cal-cell.is-reserve{background:var(--navy);color:#fff}
.cal-cell.is-passe{opacity:.45}
.cal-cell.is-today{outline:2px solid var(--terra,#e0512a);outline-offset:1px}
.cal-legende{display:flex;justify-content:center;gap:26px;flex-wrap:wrap;margin-top:30px;font-size:.9rem;color:var(--navy)}
.cal-legende .leg{display:inline-block;width:14px;height:14px;border-radius:4px;margin-right:8px;vertical-align:-2px;background:#f5efe2}
.cal-legende .leg.is-attente{background:#f6dfae}
.cal-legende .leg.is-reserve{background:var(--navy)}
.cal-note{text-align:center;color:#7a8ba0;font-size:.85rem;margin-top:18px}


/* ---------- ESPACE ASSOCIATIONS ---------- */
.ea-msg{padding:14px 20px;border-radius:10px;margin-bottom:26px;font-weight:600}
.ea-msg.is-ok{background:#e6f2e8;color:#1a5c2c}
.ea-msg.is-err{background:#fdeae4;color:#a4361c}
.ea-card{background:#fff;border:1px solid #eee4d2;border-radius:14px;padding:34px 36px;margin-bottom:26px;box-shadow:0 10px 30px rgba(22,50,79,.05)}
.ea-h2{font-family:var(--serif,Fraunces,serif);color:var(--navy);font-size:1.3rem;margin-bottom:18px}
.ea-topbar{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:20px;font-size:.9rem;color:#5a6b7d}
.ea-topbar a{color:var(--navy);font-weight:700;text-decoration:underline}
.ea-login p{margin-bottom:14px}
.ea-login label{font-weight:700;color:var(--navy);font-size:.9rem}
.ea-login input[type=text],.ea-login input[type=password],.ea-form input[type=date]{width:100%;padding:11px 14px;border:1.5px solid #dcd2bd;border-radius:10px;font:inherit;margin-top:6px;background:#fdfbf5}
.ea-login .login-remember label{font-weight:400}
.ea-login .button-primary,.ea-envoyer{display:inline-block;background:var(--navy);color:#fff;border:none;border-radius:999px;padding:12px 26px;font-weight:800;font-size:.92rem;cursor:pointer;transition:.2s}
.ea-login .button-primary:hover,.ea-envoyer:hover{background:#dc4f28}
.ea-aide{margin-top:14px;font-size:.9rem}
.ea-aide a{color:var(--navy);text-decoration:underline}
.ea-note{margin-top:14px;font-size:.85rem;color:#7a8ba0}
.ea-vide{color:#7a8ba0}
.ea-liste{list-style:none;margin:0;padding:0}
.ea-liste li{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:13px 0;border-bottom:1px dashed #e7ddc8}
.ea-liste li:last-child{border-bottom:none}
.ea-dates{font-weight:700;color:var(--navy);min-width:220px}
.ea-badge{display:inline-block;padding:4px 12px;border-radius:999px;font-size:.76rem;font-weight:800;background:#eef1f4;color:#5a6b7d}
.ea-badge.is-ok{background:#e6f2e8;color:#1a5c2c}
.ea-badge.is-attente{background:#f6dfae;color:#7a5410}
.ea-liste form{margin-left:auto}
.ea-annuler{background:none;border:1.5px solid #c8b89a;color:#8a6d3b;border-radius:999px;padding:5px 14px;font-size:.78rem;font-weight:700;cursor:pointer;transition:.2s}
.ea-annuler:hover{border-color:#a4361c;color:#a4361c}
.ea-champs{display:flex;gap:18px;flex-wrap:wrap;align-items:flex-end}
.ea-champs label{flex:1 1 180px;font-weight:700;color:var(--navy);font-size:.9rem}
.ea-champs .ea-envoyer{flex:0 0 auto}

.ea-infos{display:flex;flex-direction:column;gap:2px}
.ea-detail{font-size:.8rem;color:#8a99a8}
.ea-badge.is-annule{background:#f3e3de;color:#a4361c}
.ea-actions{display:flex;gap:8px;margin-left:auto}
.ea-liste .ea-actions form{margin-left:0}
.ea-confirmer{background:var(--navy);border:1.5px solid var(--navy);color:#fff;border-radius:999px;padding:5px 14px;font-size:.78rem;font-weight:700;cursor:pointer;transition:.2s}
.ea-confirmer:hover{background:#dc4f28;border-color:#dc4f28}
.ea-card.is-off{background:#faf7f0}
.ea-form select,.ea-form textarea,.ea-form input[type=text],.ea-form input[type=number]{width:100%;padding:11px 14px;border:1.5px solid #dcd2bd;border-radius:10px;font:inherit;margin-top:6px;background:#fdfbf5}
.ea-form .ea-champs{margin-bottom:14px}
.ea-opt{font-weight:400;color:#8a99a8;font-size:.8rem}

.ea-regle{background:#fdf3e0;border-radius:10px;padding:10px 16px;font-size:.88rem;font-weight:600;color:#7a5410;margin-bottom:16px}
