:root{
  --green-deep:#3A5C22;
  --green-mid:#486F2B;
  --green-pale:#E7EEE4;
  --gold:#DAB31F;
  --gold-pale:#F5EAC8;
  --bg:#F6F4EE;
  --ink:#17201A;
  --ink-soft:#4B564D;
  --white:#FFFFFF;
  --line:#DCD8C9;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family:'Inter',sans-serif;
  background:var(--bg);
  color:var(--ink);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,.disp{font-family:'Space Grotesk',sans-serif;font-weight:700;letter-spacing:-0.01em;color:var(--ink);}
.mono{font-family:'Space Mono',monospace;}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
.wrap{max-width:1180px;margin:0 auto;padding:0 32px;}
section{padding:100px 0;}
@media(max-width:700px){section{padding:64px 0;} .wrap{padding:0 20px;}}

/* Header */
header{
  position:sticky;top:0;z-index:50;
  background:rgba(246,244,238,0.92);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
.nav{display:flex;align-items:center;justify-content:space-between;padding:14px 32px;max-width:1180px;margin:0 auto;position:relative;}
.nav-toggle{display:none;background:none;border:none;cursor:pointer;padding:6px;color:var(--ink);}
.nav-toggle svg{width:26px;height:26px;display:block;}
.logo img{height:40px;width:auto;}
.nav-links{display:flex;gap:32px;font-size:14px;font-weight:500;}
.nav-links a{opacity:0.82;transition:opacity .15s;}
.nav-links a:hover,.nav-links a.active{opacity:1;}
.nav-links a.active{border-bottom:2px solid var(--gold);padding-bottom:2px;}
.btn{
  display:inline-block;padding:12px 22px;border-radius:3px;font-size:14px;font-weight:600;
  transition:transform .15s ease, background .15s ease;
}
.btn-primary{background:var(--green-deep);color:var(--white);}
.btn-primary:hover{background:var(--ink);}
.btn-ghost{border:1px solid var(--ink);color:var(--ink);}
.btn-ghost:hover{background:var(--ink);color:var(--white);}
.btn-gold{background:var(--gold);color:var(--white);}
.btn-gold:hover{background:#A5760F;}
@media(max-width:900px){
  .nav-toggle{display:block;}
  .nav-links{
    display:none;flex-direction:column;gap:0;
    position:absolute;top:100%;left:0;right:0;
    background:var(--bg);border-bottom:1px solid var(--line);
    box-shadow:0 8px 16px rgba(0,0,0,0.06);
  }
  .nav-links.open{display:flex;z-index:60;}
  .nav-links a{padding:16px 32px;border-bottom:1px solid var(--line);opacity:1;}
  .nav-links a.active{border-bottom:1px solid var(--line);}
}

/* Page hero (interior pages) */
.page-hero{padding:56px 0 48px;border-bottom:1px solid var(--line);}
.page-hero .eyebrow{margin-bottom:16px;}
.page-hero h1{font-size:clamp(30px,4vw,44px);margin-bottom:14px;}
.page-hero p{color:var(--ink-soft);font-size:17px;max-width:600px;}

/* Hero (home) */
.hero{padding:80px 0 100px;}
.hero-grid{display:grid;grid-template-columns:1.1fr 0.9fr;gap:60px;align-items:center;}
@media(max-width:900px){.hero-grid{grid-template-columns:1fr;}}
.eyebrow{
  font-family:'Space Mono',monospace;font-size:12px;letter-spacing:0.14em;text-transform:uppercase;
  color:var(--green-mid);display:flex;align-items:center;gap:10px;margin-bottom:22px;
}
.eyebrow::before{content:"";width:24px;height:1px;background:var(--gold);}
.hero h1{font-size:clamp(34px,4.4vw,54px);line-height:1.06;margin-bottom:22px;}
.hero h1 em{font-style:normal;color:var(--green-deep);}
.hero p.lead{font-size:18px;color:var(--ink-soft);max-width:480px;margin-bottom:34px;}
.hero-ctas{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:40px;}
.hero-proof{display:grid;grid-template-columns:repeat(2,auto);gap:22px 48px;font-size:13px;color:var(--ink-soft);border-top:1px solid var(--line);padding-top:26px;}
.hero-proof strong{display:block;font-family:'Space Grotesk',sans-serif;font-size:26px;color:var(--ink);margin-bottom:2px;}

/* Signature graphic: power curve */
.curve-card{
  background:var(--white);border:1px solid var(--line);border-radius:6px;padding:26px 26px 20px;
}
.curve-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px;}
.curve-head .t{font-size:13px;font-weight:600;}
.curve-head .s{font-family:'Space Mono',monospace;font-size:11px;color:var(--ink-soft);}
.curve-foot{display:flex;justify-content:space-between;margin-top:10px;font-family:'Space Mono',monospace;font-size:11px;color:var(--ink-soft);}

/* How it works */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line);}
@media(max-width:800px){.steps{grid-template-columns:1fr;}}
.step{padding:40px 34px;border-right:1px solid var(--line);display:flex;flex-direction:column;justify-content:center;}
.step:last-child{border-right:none;}
@media(max-width:800px){.step{border-right:none;border-bottom:1px solid var(--line);padding:30px 0;}}
.step .num{display:flex;align-items:center;gap:14px;margin-bottom:20px;}
.step .num .badge{width:34px;height:34px;border-radius:50%;background:var(--green-deep);color:var(--white);display:flex;align-items:center;justify-content:center;font-family:'Space Mono',monospace;font-size:13px;font-weight:bold;flex-shrink:0;}
.step .num .ic{width:26px;height:26px;flex-shrink:0;}
.step h3{font-size:19px;margin-bottom:10px;}
.step p{color:var(--ink-soft);font-size:15px;max-width:280px;}

.section-head{max-width:560px;margin-bottom:52px;}
.section-head .eyebrow{margin-bottom:14px;}
.section-head h2{font-size:clamp(26px,3vw,36px);margin-bottom:14px;}
.section-head p{color:var(--ink-soft);font-size:16px;}

/* Filières */
.filieres{background:var(--green-deep);color:var(--white);}
.filieres .section-head h2,.filieres .eyebrow{color:var(--white);}
.filieres .eyebrow::before{background:var(--gold);}
.filieres .section-head p{color:#C9D6CB;}
.fil-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(255,255,255,0.14);border:1px solid rgba(255,255,255,0.14);}
@media(max-width:900px){.fil-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:480px){.fil-grid{grid-template-columns:1fr;}}
.fil-card{background:var(--green-deep);padding:32px 26px;}
.fil-card .ic{width:36px;height:36px;margin-bottom:20px;}
.fil-card h3{color:var(--white);font-size:17px;margin-bottom:8px;}
.fil-card p{color:#B9C9BC;font-size:14px;}

/* Stats */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:32px;border-top:1px solid var(--line);padding-top:48px;}
@media(max-width:760px){.stats{grid-template-columns:1fr 1fr;}}
.stat strong{display:block;font-family:'Space Grotesk',sans-serif;font-size:38px;color:var(--green-deep);}
.stat span{font-size:13px;color:var(--ink-soft);}

/* Testimonials */
.testi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
@media(max-width:860px){.testi-grid{grid-template-columns:1fr;}}
.testi{background:var(--white);border:1px solid var(--line);border-radius:6px;padding:28px;}
.testi p.q{font-size:15px;margin-bottom:20px;color:var(--ink);}
.testi .who{display:flex;align-items:center;gap:12px;}
.testi .av{width:38px;height:38px;border-radius:50%;background:var(--gold-pale);color:var(--gold);display:flex;align-items:center;justify-content:center;font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:14px;}
.testi .who .name{font-size:14px;font-weight:600;}
.testi .who .loc{font-size:12px;color:var(--ink-soft);}

/* CTA / Contact */
.cta-band{background:var(--ink);color:var(--white);border-radius:10px;padding:56px;display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;}
@media(max-width:800px){.cta-band{grid-template-columns:1fr;padding:36px 26px;}}
.cta-band h2{color:var(--white);font-size:28px;margin-bottom:14px;}
.cta-band p{color:#C7C9C4;font-size:15px;margin-bottom:0;}
form{display:grid;gap:12px;}
form .row2{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
@media(max-width:480px){form .row2{grid-template-columns:1fr;}}
input,textarea,select{
  width:100%;background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.22);
  border-radius:3px;padding:12px 14px;color:var(--white);font-family:'Inter',sans-serif;font-size:14px;
}
input::placeholder,textarea::placeholder{color:#9AA097;}
input:focus,textarea:focus,select:focus{outline:2px solid var(--gold);outline-offset:1px;}
textarea{resize:vertical;min-height:80px;}
form .btn-gold{border:none;cursor:pointer;font-size:14px;justify-self:start;}

/* Light form (on light background pages) */
.form-light input,.form-light textarea,.form-light select{
  background:var(--white);border:1px solid var(--line);color:var(--ink);
}
.form-light input::placeholder,.form-light textarea::placeholder{color:#8B9187;}

footer{border-top:1px solid var(--line);padding:44px 0;}
.foot-grid{display:flex;justify-content:space-between;flex-wrap:wrap;gap:24px;font-size:13px;color:var(--ink-soft);align-items:center;}
.foot-grid a{opacity:0.85;}
.foot-grid a:hover{opacity:1;text-decoration:underline;}
.foot-links{display:flex;gap:20px;flex-wrap:wrap;}

/* Qui sommes-nous */
.timeline{border-top:1px solid var(--line);}
.tl-item{display:grid;grid-template-columns:120px 1fr;gap:24px;padding:28px 0;border-bottom:1px solid var(--line);}
@media(max-width:600px){.tl-item{grid-template-columns:1fr;gap:8px;}}
.tl-item .yr{font-family:'Space Mono',monospace;color:var(--gold);font-size:15px;font-weight:bold;}
.tl-item h3{font-size:17px;margin-bottom:6px;}
.tl-item p{color:var(--ink-soft);font-size:15px;}

.values-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
@media(max-width:800px){.values-grid{grid-template-columns:1fr;}}

.engagements-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);}
@media(max-width:860px){.engagements-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:480px){.engagements-grid{grid-template-columns:1fr;}}
.engagement-card{background:var(--white);padding:28px 24px;}
.engagement-card .num{font-family:'Space Mono',monospace;color:var(--gold);font-size:13px;margin-bottom:14px;}
.engagement-card h3{font-size:16px;margin-bottom:8px;}
.engagement-card p{color:var(--ink-soft);font-size:14px;}
.value-card{padding:0;}
.value-card .num{font-family:'Space Mono',monospace;color:var(--gold);font-size:13px;margin-bottom:12px;}
.value-card h3{font-size:18px;margin-bottom:8px;}
.value-card p{color:var(--ink-soft);font-size:15px;}

/* Actualités */
.actu-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
@media(max-width:860px){.actu-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:600px){.actu-grid{grid-template-columns:1fr;}}
.actu-card{background:var(--white);border:1px solid var(--line);border-radius:6px;overflow:hidden;display:flex;flex-direction:column;}
.actu-thumb{height:150px;background:var(--green-pale);display:flex;align-items:center;justify-content:center;overflow:hidden;}
.actu-thumb img{width:100%;height:100%;object-fit:contain;}
.actu-body{padding:22px;flex:1;display:flex;flex-direction:column;}
.actu-tag{font-family:'Space Mono',monospace;font-size:11px;text-transform:uppercase;letter-spacing:0.08em;color:var(--green-mid);margin-bottom:10px;}
.actu-body h3{font-size:16px;margin-bottom:10px;}
.actu-body p{color:var(--ink-soft);font-size:14px;flex:1;}
.actu-date{font-family:'Space Mono',monospace;font-size:12px;color:var(--ink-soft);margin-top:14px;}
.actu-featured{display:block;background:var(--white);border:1px solid var(--line);border-radius:6px;overflow:hidden;margin-bottom:32px;}
.actu-featured .actu-thumb{width:100%;height:320px;min-height:0;background:var(--green-pale);}
.actu-featured .actu-body{padding:32px 36px 36px;}
.actu-featured h3{font-size:24px;}
.actu-featured .actu-body p{margin-bottom:12px;}
.actu-featured .actu-body p:last-of-type{margin-bottom:0;}
@media(max-width:700px){.actu-featured .actu-thumb{height:220px;} .actu-featured .actu-body{padding:24px;}}
.actu-signature{font-weight:600;color:var(--ink);margin-top:16px;font-size:14px;}
.actu-byline{font-family:'Space Mono',monospace;font-size:12px;color:var(--ink-soft);margin-bottom:14px;}

/* Devenir adhérent */
.avantages{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line);}
@media(max-width:700px){.avantages{grid-template-columns:1fr;}}
.avantage{background:var(--white);padding:28px;}
.avantage h3{font-size:16px;margin-bottom:8px;}
.avantage p{color:var(--ink-soft);font-size:14px;}

.criteres{border-top:1px solid var(--line);}
.critere{display:flex;gap:16px;padding:22px 0;border-bottom:1px solid var(--line);align-items:flex-start;}
.critere .ck{width:22px;height:22px;border-radius:50%;background:var(--green-pale);color:var(--green-deep);display:flex;align-items:center;justify-content:center;font-size:13px;flex-shrink:0;margin-top:2px;}
.critere p{font-size:15px;color:var(--ink-soft);}
.critere strong{color:var(--ink);}

/* Contact */
.contact-grid{display:grid;grid-template-columns:0.9fr 1.1fr;gap:56px;}
@media(max-width:860px){.contact-grid{grid-template-columns:1fr;}}
.contact-info{display:grid;gap:24px;}
.info-item{display:flex;gap:14px;}
.info-item .ic{width:22px;height:22px;flex-shrink:0;margin-top:2px;}
.info-item h3{font-size:14px;margin-bottom:4px;}
.info-item p{color:var(--ink-soft);font-size:15px;}
.map-block{border:1px solid var(--line);border-radius:6px;height:280px;overflow:hidden;margin-top:8px;}
.map-block iframe{width:100%;height:100%;border:0;display:block;}
.contact-form-card{background:var(--white);border:1px solid var(--line);border-radius:6px;padding:32px;}
.contact-form-card h2{font-size:20px;margin-bottom:22px;}

/* Photo band */
.photo-band{
  height:78vh;min-height:520px;max-height:820px;background-size:cover;background-position:center;position:relative;
}
.photo-band .overlay{
  position:absolute;inset:0;background:linear-gradient(0deg, rgba(15,20,15,0.82) 0%, rgba(15,20,15,0.1) 68%);
  display:flex;align-items:flex-end;
}
.photo-band .cap{padding:56px;max-width:1180px;margin:0 auto;width:100%;box-sizing:border-box;}
.photo-band .cap .eyebrow{color:var(--gold-pale);margin-bottom:14px;}
.photo-band .cap .eyebrow::before{background:var(--gold-pale);}
.photo-band .cap h2{color:var(--white);font-size:clamp(28px,4vw,44px);margin-bottom:12px;max-width:640px;}
.photo-band .cap p{font-size:16px;max-width:520px;color:#EDEAE0;}
@media(max-width:700px){
  .photo-band{height:64vh;min-height:420px;background-position:center 75%;}
  .photo-band .cap{padding:28px;}
  .photo-band .overlay{background:linear-gradient(0deg, rgba(15,20,15,0.88) 0%, rgba(15,20,15,0.25) 78%);}
}

/* Page hero with photo background */
.page-hero.with-photo{
  background-size:cover;background-position:center;position:relative;border-bottom:none;
}
.page-hero.with-photo .overlay{
  position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(20,26,20,0.68);
}
.page-hero.with-photo.light .overlay{
  background:rgba(20,26,20,0.46);
}
.page-hero.with-photo .wrap{position:relative;}
.page-hero.with-photo h1,.page-hero.with-photo p,.page-hero.with-photo .eyebrow{color:var(--white);}
.page-hero.with-photo p strong{color:var(--white);}
.page-hero.with-photo .eyebrow{color:var(--gold-pale);}
.page-hero.with-photo .eyebrow::before{background:var(--gold-pale);}

.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}

/* Cookie consent banner */
.cookie-banner{
  position:fixed;left:0;right:0;bottom:0;z-index:200;
  background:var(--ink);color:var(--white);
  padding:22px 24px;box-shadow:0 -6px 24px rgba(0,0,0,0.18);
  display:none;
}
.cookie-banner.show{display:block;}
.cookie-banner .inner{
  max-width:1180px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:32px;flex-wrap:wrap;
}
.cookie-banner p{font-size:13.5px;color:#D8DED9;max-width:760px;margin:0;}
.cookie-banner p a{color:var(--gold-pale);text-decoration:underline;}
.cookie-banner .actions{display:flex;gap:12px;flex-wrap:wrap;flex-shrink:0;}
.cookie-banner button{
  font-family:'Inter',sans-serif;font-size:13.5px;font-weight:600;
  padding:11px 20px;border-radius:3px;cursor:pointer;border:none;
}
.cookie-banner .btn-refuse{background:transparent;color:var(--white);border:1px solid rgba(255,255,255,0.35);}
.cookie-banner .btn-refuse:hover{background:rgba(255,255,255,0.08);}
.cookie-banner .btn-accept{background:var(--gold);color:var(--ink);}
.cookie-banner .btn-accept:hover{background:#c2a01a;}
@media(max-width:700px){
  .cookie-banner .inner{flex-direction:column;align-items:stretch;gap:16px;}
  .cookie-banner .actions{justify-content:flex-end;}
}
