*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
.pv{font-family:var(--font-sans);background:var(--blanc);color:var(--texte);font-size:16px;line-height:1.7}
.nav{position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:1.1rem 4rem;background:rgba(253,250,246,.93);backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}
.logo{display:flex;align-items:center;text-decoration:none}
.logo img{width:138px;height:75px;display:block}
.navlinks{display:flex;gap:2.5rem;list-style:none;align-items:center}
.navlinks a{text-decoration:none;font-size:.82rem;letter-spacing:.09em;text-transform:uppercase;color:var(--texte-doux)}
.navcta{background:var(--terra);color:var(--blanc);padding:.5rem 1.5rem;border-radius:2rem;text-decoration:none;font-size:.82rem;letter-spacing:.09em;text-transform:uppercase}
.section{padding:6rem 4rem}
.inner{max-width:1100px;margin:0 auto}
.eyebrow{font-family:var(--font-script);font-size:1.3rem;color:var(--terra);display:block;margin-bottom:.4rem}
.h2{font-family:var(--font-serif);font-weight:900;font-size:clamp(2rem,3.5vw,3rem);line-height:1.15;color:var(--texte);margin-bottom:1rem}
.h2 em{color:var(--terra);font-style:italic}
.h2 span{color:var(--vert-fonce)}
.intro{font-size:.95rem;color:var(--texte-doux);max-width:55ch;margin-bottom:3.5rem;line-height:1.85;font-weight:300}
.lead{font-size:.95rem;color:var(--texte-doux);line-height:1.85;font-weight:300;margin-bottom:1.2rem}
.hero{min-height:calc(100vh - 64px);display:grid;grid-template-columns:55% 45%}
.herocontent{position:relative;display:flex;flex-direction:column;justify-content:center;padding:5rem 3rem 5rem 5rem}
/* Personnage « assis » sur « et simplement. » — positionné en em pour suivre la taille du titre */
.hero-woman{position:absolute;left:5.1em;top:-1.13em;width:2.615em;height:5em;object-fit:contain;pointer-events:none;z-index:3}
.hero h1{font-family:var(--font-serif);font-weight:900;font-size:clamp(2.8rem,4.5vw,4.4rem);line-height:1.1;color:var(--texte);margin-bottom:1.6rem;position:relative}
.hero h1 span{color:var(--vert-fonce);display:block}
.hero h1 .h1-l2{height:1em}
.hero h1 em{color:var(--terra);font-style:italic}
.herosub{font-size:1rem;color:var(--texte-doux);line-height:1.85;max-width:44ch;margin-bottom:2.8rem;font-weight:300}
.herobtns{display:flex;gap:1rem;flex-wrap:wrap}
.btnterra{background:var(--terra);color:var(--blanc);padding:.9rem 2.2rem;border-radius:2rem;text-decoration:none;font-size:.9rem;font-weight:500;display:inline-flex;align-items:center;gap:.5rem}
.btnoutline{border:1.5px solid var(--vert-fonce);color:var(--vert-fonce);padding:.9rem 2.2rem;border-radius:2rem;text-decoration:none;font-size:.9rem;font-weight:500;display:inline-flex;align-items:center;gap:.5rem}
.herovisual{background:var(--vert-bg);display:flex;flex-direction:column;align-items:center;padding:2rem 2rem 3rem;position:relative;overflow:hidden}
.portrait{position:absolute;bottom:0;left:50%;transform:translateX(-50%);height:80%;width:auto;object-fit:contain}
.herocard{background:rgba(253,250,246,.72);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.5);border-radius:var(--r-lg);padding:2.2rem;width:100%;max-width:300px;position:relative;z-index:2;text-align:center}
.cardlabel{font-family:var(--font-script);font-size:1.1rem;color:var(--terra);margin-bottom:1rem}
.statnum{font-family:var(--font-serif);font-size:2.6rem;font-weight:900;color:var(--vert-fonce);line-height:1}
.statdesc{font-size:.78rem;color:var(--texte-doux);margin-top:.2rem}
.divider{height:1px;background:var(--border);margin:1rem 0}
.tags{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:center}
.tag{font-size:.7rem;padding:.3rem .75rem;background:var(--vert-pale);color:var(--vert-fonce);border-radius:1rem;font-weight:500}
.tagt{font-size:.7rem;padding:.3rem .75rem;background:var(--terra-pale);color:var(--terra);border-radius:1rem;font-weight:500}
.twocol{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:center}
.twocol.top{align-items:start}
.apro-left{display:flex;flex-direction:column}
.aproportrait{width:100%;max-width:340px;height:auto;object-fit:contain;align-self:center;margin-bottom:-1.5rem;position:relative;z-index:2}
.apro-left .portrait{position:static;transform:none;width:100%;max-width:340px;height:auto;object-fit:contain;align-self:center;margin:0 auto -1.5rem;display:block;z-index:2}
.parcours-illu{width:100%;max-width:360px;height:auto;object-fit:contain;display:block;margin:2.5rem auto 0}
.temo-head{display:flex;justify-content:space-between;align-items:center;gap:3rem;flex-wrap:wrap;margin-bottom:2.5rem}
.temo-head-text{flex:1;min-width:300px}
.temo-illu{height:315px;width:auto;max-width:46%;max-height:400px;object-fit:contain;flex-shrink:0;align-self:center;margin-left:auto;margin-right:1.5rem}
.aprovisual{background:var(--beige);border-radius:var(--r-lg);padding:3rem;border:1px solid var(--border);margin-top:3rem}
.aproquote{font-family:var(--font-serif);font-size:1.5rem;font-weight:700;font-style:italic;color:var(--vert-fonce);line-height:1.5;margin-bottom:1.5rem}
.aproquote em{color:var(--terra)}
.aprosig{font-family:var(--font-script);font-size:1.1rem;color:var(--terra)}
.values{display:flex;flex-direction:column;gap:1.5rem;margin-top:2.5rem}
.value{display:flex;gap:1.2rem;align-items:flex-start}
.valuen{font-family:var(--font-serif);font-size:2rem;font-weight:900;color:var(--vert-pale);line-height:1;flex-shrink:0;min-width:2.8rem;white-space:nowrap}
.value .h4{font-size:.9rem;font-weight:500;color:var(--texte);margin-bottom:.2rem}
.value p{font-size:.85rem;color:var(--texte-doux);line-height:1.6}
.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:1.5rem}
.mcard{background:var(--blanc);border:1px solid var(--border);border-radius:var(--r-lg);padding:2rem}
.mcard.hl{background:var(--vert-bg);border-color:var(--vert-pale)}
.micon{margin-bottom:.8rem;line-height:0}
.micon svg{width:30px;height:30px}
.cic svg{width:17px;height:17px;color:var(--terra)}
.mcard h3{font-family:var(--font-serif);font-size:1.25rem;font-weight:700;color:var(--texte);margin-bottom:.7rem}
.mcard p{font-size:.85rem;color:var(--texte-doux);line-height:1.75}
.mtags{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:1.2rem}
.tcard{background:var(--beige);border:1px solid var(--border);border-radius:var(--r-lg);padding:2rem 2rem 1.5rem}
.tmark{font-family:var(--font-serif);font-size:5rem;color:var(--vert-pale);line-height:.5;display:block;margin-bottom:1rem}
.ttext{font-family:var(--font-serif);font-size:1.05rem;font-style:italic;color:var(--texte);line-height:1.7;margin-bottom:1.5rem}
.tauthor{display:flex;align-items:center;gap:.9rem;padding-top:1rem;border-top:1px solid var(--border)}
.tav{width:38px;height:38px;border-radius:50%;background:var(--vert-pale);color:var(--vert-fonce);font-family:var(--font-serif);font-weight:700;font-size:.9rem;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.tstars{color:var(--terra);font-size:.75rem;margin-bottom:.2rem}
.tname{font-size:.85rem;font-weight:500;color:var(--texte)}
.trole{font-size:.75rem;color:var(--texte-doux)}
.xpstat{display:flex;align-items:baseline;gap:.6rem;margin-bottom:2rem}
.xpbig{font-family:var(--font-serif);font-size:4rem;font-weight:900;color:var(--terra);line-height:1}
.xplabel{font-family:var(--font-serif);font-size:1.3rem;font-weight:700;color:var(--texte-doux)}
.timeline{display:flex;flex-direction:column;position:relative;list-style:none;margin-bottom:-2rem}
.tlitem{display:flex;gap:1.5rem;align-items:flex-start;padding-bottom:2rem}
.tldot{width:28px;height:28px;border-radius:50%;background:var(--blanc);border:2px solid var(--vert);flex-shrink:0;margin-top:2px;display:flex;align-items:center;justify-content:center}
.tldot.terra{border-color:var(--terra)}
.tldotin{width:10px;height:10px;border-radius:50%;background:var(--vert)}
.tldot.terra .tldotin{background:var(--terra)}
.tlsub{font-size:.78rem;color:var(--terra);font-weight:500;letter-spacing:.05em;text-transform:uppercase;margin-bottom:.4rem}
.tlitem .h4{font-family:var(--font-serif);font-size:1.1rem;font-weight:700;color:var(--texte);margin-bottom:.15rem}
.tlitem p{font-size:.85rem;color:var(--texte-doux);line-height:1.65}
.cpoints{display:flex;flex-direction:column;gap:.9rem;list-style:none}
.cpoint{padding:1rem 1.2rem;background:var(--vert-bg);border-radius:var(--r-lg);border-left:3px solid var(--vert);font-size:.9rem;color:var(--texte);line-height:1.6}
.cpoint strong{color:var(--vert-fonce)}
.cnums{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}
.cnum{background:var(--beige);border-radius:var(--r-lg);padding:1.5rem;text-align:center;border:1px solid var(--border)}
.cbig{font-family:var(--font-serif);font-size:2.8rem;font-weight:900;color:var(--vert-fonce);display:block;line-height:1}
.methode{background:var(--vert)}
.methode .h2,.methode h2{color:var(--blanc)}
.methode .h2 em{color:var(--terra-or)}
.methode .intro{color:rgba(253,250,246,.65)}
.msteps{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem;margin-top:1rem;list-style:none}
.stepnum{font-family:var(--font-serif);font-size:4.5rem;font-weight:900;color:var(--blanc);opacity:.9;line-height:1;margin-bottom:.5rem}
.mstep h3{font-family:var(--font-serif);font-size:1.2rem;font-weight:700;color:var(--blanc);margin-bottom:.6rem}
.mstep p{font-size:.83rem;color:rgba(253,250,246,.65);line-height:1.75}
.contact{background:var(--beige)}
.cform{display:flex;flex-direction:column;gap:1.1rem}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.fg{display:flex;flex-direction:column;gap:.4rem}
.fg label{font-size:.78rem;color:var(--texte-doux);font-weight:500;letter-spacing:.05em;text-transform:uppercase}
.fg input,.fg select,.fg textarea{padding:.8rem 1rem;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--blanc);font-family:var(--font-sans);font-size:.9rem;color:var(--texte);outline:none}
.fg textarea{resize:vertical;min-height:120px}
.cblock .h4b{font-family:var(--font-serif);font-size:1.3rem;font-weight:700;margin-bottom:.8rem}
.cblock p{font-size:.9rem;color:var(--texte-doux);line-height:1.8}
.cdetails{display:flex;flex-direction:column;gap:.9rem;margin:1.5rem 0 2rem}
.cdetail{display:flex;align-items:center;gap:.9rem;font-size:.85rem;color:var(--texte-doux)}
.cic{width:34px;height:34px;border-radius:50%;background:var(--terra-pale);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.clabel{font-size:.8rem;font-weight:500;color:var(--texte);margin-bottom:.1rem}
.csiret{padding:1rem 1.2rem;background:var(--blanc);border-radius:var(--r-lg);border-left:3px solid var(--terra)}
.csiret p{font-size:.8rem;color:var(--texte-doux)}
.csiret strong{color:var(--texte)}
.footer{background:var(--brun);color:rgba(253,250,246,.55);padding:2.5rem 4rem;display:flex;align-items:center;justify-content:space-between;font-size:.78rem;flex-wrap:wrap;gap:1rem}
.flogo{font-family:var(--font-serif);font-size:1.6rem;font-weight:900;color:var(--blanc)}
.flogo img{height:40px;width:auto;display:block}
.flinks{display:flex;gap:2rem}
.flinks a{color:rgba(253,250,246,.45);text-decoration:none}
/* Classes remplaçant les styles inline de la maquette (rendu desktop identique) */
.strong{color:var(--texte)}
.sprite{display:none}
.micon-v{color:var(--vert-fonce)}
.micon-t{color:var(--terra)}
.cnum-wide{grid-column:1/-1}
.cnum-wide .cbig{font-size:2rem}
.eyebrow-light{color:var(--blanc)}
.parcours{background:var(--beige);padding-bottom:2rem}
.parcours-left{width:449px;align-self:stretch;position:relative;min-height:560px}
.parcours-illu-abs{position:absolute;left:50%;transform:translateX(-50%);bottom:-2rem;display:block;height:374px;width:226px}
.temoignages{padding-top:3.5rem;padding-bottom:3.5rem}
.temo-head .intro{margin-bottom:0}
.missions{background:var(--beige)}
.missions-head{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;margin-bottom:2.5rem}
.missions-head-text{flex:1;min-width:0}
.missions-head .intro{max-width:790px;margin-bottom:0}
.missions-illu{display:block;width:260px;max-width:30%;height:auto;flex-shrink:0;margin-bottom:-1rem}
.clink{color:var(--terra);text-decoration:none}
.clink-plain{color:inherit;text-decoration:none}

/* ---------- Base technique ---------- */
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;--nav-h:111px}
body{background:var(--blanc);overflow-wrap:break-word}
img{max-width:100%}
section[id]{scroll-margin-top:var(--nav-h)}
.ico{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;display:block}
.micon .ico{width:30px;height:30px}
.cic .ico{width:17px;height:17px;color:var(--terra)}
button.btnterra{border:0;cursor:pointer;font-family:inherit;align-self:flex-start}
button.btnterra[disabled]{opacity:.6;cursor:progress;transform:none}
.inlink{color:var(--terra);text-underline-offset:2px}
.skip{position:absolute;left:1rem;top:-100px;z-index:200;background:var(--vert-fonce);color:var(--blanc);padding:.6rem 1.2rem;border-radius:var(--r-pill);text-decoration:none;font-size:.85rem}
.skip:focus{top:1rem}
:focus-visible{outline:2px solid var(--terra);outline-offset:3px}
.methode :focus-visible,.footer :focus-visible{outline-color:var(--blanc)}

/* ---------- États interactifs (issus du design system) ---------- */
.navlinks a{transition:color var(--t-base) var(--ease)}
.navlinks a:hover{color:var(--terra)}
.navlinks a.navcta{color:var(--blanc);transition:background var(--t-base) var(--ease)} /* la maquette laissait .navlinks a imposer texte-doux */
.navlinks a.navcta:hover{color:var(--blanc);background:var(--terra-fonce)}
.btnterra{transition:background var(--t-base) var(--ease),transform var(--t-base) var(--ease)}
.btnterra:hover{background:var(--terra-fonce);transform:translateY(-2px)}
.btnoutline{transition:background var(--t-base) var(--ease)}
.btnoutline:hover{background:var(--vert-pale)}
.mcard{position:relative;overflow:hidden;transition:transform var(--t-base),box-shadow var(--t-slow)}
.mcard::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:linear-gradient(90deg,var(--terra),var(--vert));transform:scaleX(0);transform-origin:left;transition:transform var(--t-slow)}
.mcard:hover{transform:translateY(-4px);box-shadow:var(--shadow-card-hover)}
.mcard:hover::after{transform:scaleX(1)}
.fg input,.fg select,.fg textarea{transition:border-color var(--t-base)}
.fg input:focus,.fg select:focus,.fg textarea:focus{border-color:var(--vert)}
.fg select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%236B5A46' stroke-width='1.5'%3E%3Cpath d='m1 1.5 5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;padding-right:2.5rem}
.fg input:user-invalid,.fg textarea:user-invalid{border-color:var(--terra)}
.flinks a{transition:color var(--t-base)}
.flinks a:hover{color:var(--blanc)}

/* ---------- Formulaire ---------- */
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.fnote{font-size:.78rem;color:var(--texte-doux);line-height:1.6}
.fnote a{color:inherit}
.fstatus{font-size:.9rem;line-height:1.6}
.fstatus:empty{display:none}
.fstatus.ok{padding:1rem 1.2rem;background:var(--vert-bg);border-left:3px solid var(--vert-fonce);border-radius:var(--r-lg);color:var(--texte)}
.fstatus.err{padding:1rem 1.2rem;background:var(--terra-pale);border-left:3px solid var(--terra);border-radius:var(--r-lg);color:var(--texte)}

/* ---------- Menu mobile ---------- */
.navtoggle{display:none;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid var(--border);border-radius:50%;background:var(--blanc);color:var(--vert-fonce);cursor:pointer}
.navtoggle .ico{width:22px;height:22px}
.navtoggle .ico-close,.nav.is-open .navtoggle .ico-open{display:none}
.nav.is-open .navtoggle .ico-close{display:block}

/* ---------- Responsive ---------- */
@media (max-width:1024px){
  .nav{padding:1rem 2.5rem}
  .navlinks{gap:1.6rem}
  .section{padding:5rem 2.5rem}
  .footer{padding:2.5rem}
  .twocol{gap:3.5rem}
  .parcours-left{width:auto}
  .msteps{grid-template-columns:repeat(2,1fr);row-gap:2.5rem}
}
@media (max-width:900px){
  html{--nav-h:81px}
  .nav{padding:.75rem 2rem}
  .logo img{width:102px;height:56px}
  .navtoggle{display:flex}
  .navmenu{display:none;position:absolute;top:100%;left:0;right:0;background:var(--blanc);border-bottom:1px solid var(--border);box-shadow:0 12px 24px rgba(62,42,26,.08);max-height:calc(100vh - var(--nav-h));overflow-y:auto}
  .nav.is-open .navmenu{display:block}
  .navlinks{flex-direction:column;align-items:stretch;gap:0;padding:.5rem 2rem 1.5rem}
  .navlinks a{display:block;padding:.95rem 0;border-bottom:1px solid var(--border);font-size:.85rem}
  .navlinks li:last-child a{border-bottom:0}
  .navlinks a.navcta{display:inline-block;margin-top:1rem;padding:.8rem 1.6rem;text-align:center}

  .hero{grid-template-columns:1fr;min-height:0}
  .herocontent{padding:3.5rem 2rem 3rem}
  .herovisual{padding:3rem 2rem}

  .section{padding:4.5rem 2rem}
  .twocol{grid-template-columns:1fr;gap:3rem}
  .apro-left .portrait{max-width:280px}
  .aprovisual{margin-top:2rem}

  .parcours{padding-bottom:4rem}
  .parcours-left{min-height:0}
  .parcours-illu-abs{position:static;transform:none;height:260px;width:auto;margin:2rem auto 0}
  .timeline{margin-bottom:0}

  .temo-head{flex-direction:column;align-items:stretch;gap:2rem}
  .temo-head-text{min-width:0}
  .temo-illu{height:240px;max-width:100%;margin:0 auto}

  .missions-head{flex-direction:column;align-items:stretch}
  .missions-illu{width:200px;max-width:60%;margin:0 auto}

  .footer{flex-direction:column;text-align:center;padding:2.5rem 2rem}
  .flinks{flex-wrap:wrap;justify-content:center;gap:.6rem 1.5rem}
}
@media (max-width:600px){
  .nav{padding:.75rem 1rem}
  .navlinks{padding:.5rem 1rem 1.5rem}
  .herocontent{padding:2.75rem 1rem 2.5rem}
  .hero h1{font-size:clamp(2rem,11.5vw,2.8rem)}
  .herosub{margin-bottom:2rem}
  .herobtns a{flex:1 1 100%;justify-content:center}
  .herovisual{padding:2.5rem 1rem}
  .section{padding:3.5rem 1rem}
  .temoignages{padding-top:3rem;padding-bottom:3rem}
  .intro{margin-bottom:2.5rem}
  .aprovisual{padding:2rem 1.5rem}
  .aproquote{font-size:1.3rem}
  .xpbig{font-size:3.2rem}
  .mcard,.tcard{padding:1.6rem}
  .msteps{grid-template-columns:1fr;row-gap:2rem}
  .stepnum{font-size:3.5rem}
  .cnums{gap:.8rem}
  .cbig{font-size:2.3rem}
  .frow{grid-template-columns:1fr}
  button.btnterra{align-self:stretch;justify-content:center}
  .footer{padding:2rem 1rem}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important}
}

/* ---------- Pages secondaires (mentions légales, 404) ---------- */
.nav-simple .navcta{transition:background var(--t-base)}
.nav-simple .navcta:hover{background:var(--terra-fonce)}
.legal-inner{max-width:760px}
.legal h2{font-family:var(--font-serif);font-size:1.4rem;font-weight:700;color:var(--vert-fonce);margin:2.5rem 0 .8rem}
.legal p{font-size:.95rem;color:var(--texte-doux);line-height:1.85;margin-bottom:1rem}
.legal p strong{color:var(--texte);font-weight:500}
.legal a{color:var(--terra)}
.legal mark{background:var(--terra-pale);color:var(--terra-fonce);padding:0 .3rem;border-radius:var(--r-sm)}
.legal-back{margin-top:3rem}
.legal-back a.btnoutline{color:var(--vert-fonce);text-decoration:none}
.notfound{min-height:calc(100vh - var(--nav-h));display:flex;align-items:center}
.notfound .inner{width:100%}
@media (max-width:600px){.nav-simple .navcta{padding:.5rem 1rem;font-size:.75rem}}

/* ---------- Carte du hero : grandit avec l'espace disponible ----------
   Tailles converties en em (équivalentes à la maquette à 16px), puis la taille de base
   de la carte augmente sur grand écran : 300px de large jusqu’à ~1185px, puis ~55 % du panneau vert (510px max). */
.herocard{font-size:clamp(1rem,1.35vw,1.7rem);max-width:18.75em;padding:2.2em}
.herocard .cardlabel{font-size:1.1em;margin-bottom:.91em}
.herocard .statnum{font-size:2.6em}
.herocard .statdesc{font-size:.78em;margin-top:.26em}
.herocard .divider{margin:1em 0}
.herocard .tags{gap:.4em}
.herocard .tag,.herocard .tagt{font-size:.7em;padding:.43em 1.07em;border-radius:1.43em}
@media (min-width:901px){.herovisual{justify-content:center}}
@media (max-width:900px){.herocard{font-size:1rem}}
