/* Accueil — page-specific */
/* ---------- Accueil ---------- */
.hero{position:relative;background:radial-gradient(ellipse at 72% 45%,#1B4631 0%,#0F2D1E 45%,#0A2116 75%);color:#fff;overflow:hidden;min-height:calc(100vh - 88px)}
#stars{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.hero .wrap{position:relative;display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:20px;align-items:center;min-height:calc(100vh - 88px);padding-top:40px;padding-bottom:40px}
.kicker{font-size:.8rem;font-weight:700;color:var(--pine);letter-spacing:.14em;text-transform:uppercase;margin-bottom:16px}
.hero h1{font-size:clamp(2.3rem,4.8vw,3.9rem);font-weight:800;margin-bottom:18px}
.hero h1 em{font-style:normal;color:var(--pine)}
.hero .lead{color:var(--sage);margin-bottom:26px}
.active-card{border:1px solid rgba(255,255,255,.14);border-left:4px solid var(--c);background:rgba(255,255,255,.04);border-radius:12px;padding:18px 20px;max-width:470px;transition:border-color .4s}
.active-card small{display:block;font-size:.74rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--c);margin-bottom:6px;transition:color .4s}
.active-card h3{font-size:1.45rem;margin-bottom:6px}
.active-card p{color:var(--sage);font-size:.95rem;margin-bottom:14px;min-height:3em}
.active-card a{display:inline-flex;align-items:center;gap:8px;font-weight:700;color:var(--deep);background:var(--c);padding:10px 16px;border-radius:6px;text-decoration:none;transition:background .4s,transform .15s}
.active-card a:hover{transform:translateX(3px)}
.dots{display:flex;gap:8px;margin-top:16px}
.dots button{width:28px;height:6px;border-radius:6px;border:0;background:rgba(255,255,255,.2);cursor:pointer;padding:0;transition:background .3s,width .3s}
.dots button[aria-pressed="true"]{background:var(--c);width:44px}

.stage{position:relative;width:100%;aspect-ratio:1/1;max-width:660px;justify-self:center;touch-action:pan-y}
.stage canvas{position:absolute;inset:0;width:100%;height:100%;cursor:grab}
.stage canvas:active{cursor:grabbing}
.node{position:absolute;left:0;top:0;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:8px;background:none;border:0;padding:0;cursor:pointer;color:#fff;font:inherit;text-decoration:none;will-change:transform}
.node .disc{width:var(--sz,92px);height:var(--sz,92px);border-radius:50%;display:grid;place-items:center;background:var(--tex) center/cover;position:relative;overflow:hidden;box-shadow:0 0 0 4px rgba(10,33,22,.6),0 0 0 5px color-mix(in srgb,var(--c) 70%,transparent),0 12px 30px rgba(0,0,0,.45);transition:box-shadow .3s,transform .3s}
.node .disc svg{width:66%;height:66%;position:relative;filter:drop-shadow(0 1px 1px rgba(0,0,0,.25))}
.node .disc::after{content:"";position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle at 32% 26%,rgba(255,255,255,.38),rgba(255,255,255,0) 42%),radial-gradient(circle at 60% 85%,rgba(0,0,0,0),rgba(0,0,0,.38) 75%);pointer-events:none}
.node .lbl{font-size:.86rem;font-weight:700;font-stretch:108%;text-align:center;line-height:1.15;background:rgba(10,33,22,.75);padding:4px 10px;border-radius:999px;white-space:nowrap;border:1px solid rgba(255,255,255,.12)}
.node.on .disc{box-shadow:0 0 0 4px rgba(10,33,22,.6),0 0 0 7px var(--c),0 0 40px var(--c);transform:scale(1.08)}
.node.on .lbl{border-color:var(--c);color:var(--c)}
.stage .hint{position:absolute;left:0;right:0;bottom:-4px;text-align:center;font-size:.8rem;color:#86A08F;pointer-events:none}

/* métiers */
.m .ic{width:58px;height:58px;border-radius:14px;background:var(--tex) center/cover;display:grid;place-items:center;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08),0 6px 14px rgba(18,53,36,.12);transition:transform .3s}
.m .ic svg{width:88%;height:88%}
.m .ic::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.4) 48%,transparent 62%);transform:translateX(-130%);transition:transform .8s ease}
.m:hover .ic{transform:scale(1.06)}.m:hover .ic::after{transform:translateX(130%)}
.m .code{font-size:.72rem;font-weight:700;letter-spacing:.03em;color:var(--muted)}
.grp-band{padding:40px 0 0}
.grp-band + .sec{padding-top:64px}
.grp-band .group{box-shadow:0 18px 40px rgba(18,53,36,.08)}


section.sec{padding:96px 0}
.sec-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;align-items:end;margin-bottom:44px}
.sec-head p{margin:0}
 .loop{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px;counter-reset:l}
.m{position:relative;background:#fff;border-radius:16px;padding:22px 18px 20px;border-top:5px solid var(--c);text-decoration:none;display:flex;flex-direction:column;gap:10px;transition:transform .2s,box-shadow .2s}
.m:hover{transform:translateY(-4px);box-shadow:0 18px 36px rgba(18,53,36,.12)}
.m h3{font-size:1.2rem}
.m p{font-size:.93rem;color:var(--muted);margin:0;flex:1}
.m span{font-weight:700;font-size:.9rem;color:color-mix(in srgb,var(--c) 65%,#000)}
.cycle{margin-top:36px;padding:18px 22px;border-radius:12px;background:var(--forest);color:var(--sage);font-size:.98rem;max-width:none}
.cycle b{color:#fff}
.cycle i{font-style:normal;color:var(--pine);font-weight:800}

.figs{background:var(--forest);color:#fff}
.figs .lead{color:var(--sage)}
.fig-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid rgba(255,255,255,.18)}
.fig-grid div{padding:22px 18px 22px 0;border-bottom:1px solid rgba(255,255,255,.18)}
.fig-grid div:not(:nth-child(3n)){border-right:1px solid rgba(255,255,255,.18)}
.fig-grid div:not(:nth-child(3n+1)){padding-left:20px}
.fig-grid b{display:block;font-stretch:118%;font-size:1.6rem;color:var(--pine);line-height:1.1;margin-bottom:4px}
.fig-grid span{font-size:.92rem;color:#B9CDBF}
.sectors{display:flex;gap:10px;flex-wrap:wrap;margin-top:30px}
.sectors span{padding:8px 14px;border-radius:999px;border:1px solid rgba(255,255,255,.25);font-size:.92rem}
.group{display:grid;grid-template-columns:auto 1fr auto;gap:28px;align-items:center;background:#fff;border:1px solid var(--rule);border-radius:16px;padding:26px 30px}
.group img{width:120px;height:auto;background:#fff;padding:8px 10px;border-radius:12px;border:1px solid var(--rule);object-fit:contain}
.group p{margin:6px 0 0;color:var(--muted)}
.group a.lk{font-weight:700;color:var(--leaf);text-decoration:none;white-space:nowrap}

@media (max-width:1180px){.loop{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:1000px){
  .hero .wrap{grid-template-columns:1fr;min-height:0;padding-top:30px}
  .stage{max-width:520px;order:-1}
  .loop{grid-template-columns:1fr 1fr}
  .sec-head{grid-template-columns:1fr;gap:12px}
}
@media (max-width:600px){
  .node .lbl{font-size:.74rem;padding:3px 8px}
  .loop{grid-template-columns:1fr}
  .fig-grid{grid-template-columns:1fr 1fr}
  .fig-grid div{padding-left:0!important;border-right:0!important}
  .group{grid-template-columns:1fr}
  section.sec{padding:66px 0}
}

.ma{background:radial-gradient(ellipse at 80% 30%,#1B4631,#0F2D1E 55%,#0A2116);color:#fff}
.ma .lead{color:var(--sage)}
.ma-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;align-items:center}
.ma .kick{font-size:.8rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--pine);margin-bottom:14px}
.ma h2{margin-bottom:16px}
.sites{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:28px 0 22px}
.site{border:1px solid rgba(255,255,255,.14);border-top:3px solid var(--pine);border-radius:12px;padding:16px;background:rgba(255,255,255,.04);transition:background .2s,transform .2s}
.site:hover{background:rgba(217,183,118,.1);transform:translateY(-2px)}
.site small{display:block;font-size:.74rem;font-weight:700;letter-spacing:.1em;color:var(--pine)}
.site b{display:block;font-stretch:115%;font-size:1.6rem;line-height:1.1;margin:6px 0 4px}
.site span{font-size:.86rem;color:#B9CDBF}
.zl{font-size:.86rem;font-weight:700;color:#B9CDBF;margin:0 0 10px}
.zones{display:flex;flex-wrap:wrap;gap:8px}
.zones button{font:inherit;font-size:.9rem;padding:8px 14px;border-radius:999px;border:1px solid rgba(217,183,118,.45);background:transparent;color:#fff;cursor:pointer;transition:all .2s}
.zones button:hover,.zones button.on{background:var(--pine);color:var(--char);border-color:var(--pine)}
.map-card{position:relative;border-radius:20px;background:rgba(0,0,0,.18);border:1px solid rgba(255,255,255,.08);padding:18px}
.map-wrap{position:relative}
.ma-map{display:block;width:100%;height:auto}
.pin .dot{fill:#fff;stroke:#D9B776;stroke-width:3;transition:r .2s}
.pin.main .dot{fill:#D9B776;stroke:#fff}
.pin .pulse{fill:none;stroke:#D9B776;stroke-width:2;transform-box:fill-box;transform-origin:center;animation:mpulse 2.2s ease-out infinite}
.pin.on .dot{stroke:#fff;fill:#E4C792}
@keyframes mpulse{from{opacity:.9;transform:scale(.6)}to{opacity:0;transform:scale(2.6)}}
@media (prefers-reduced-motion:reduce){.pin .pulse{animation:none}}
.lab{position:absolute;transform:translateY(-50%);font-size:.78rem;font-weight:700;white-space:nowrap;padding:4px 10px;border-radius:999px;background:rgba(10,33,22,.82);border:1px solid rgba(217,183,118,.35);color:#fff;transition:all .2s;pointer-events:none}
.lab.near{margin-left:-8px}.lab.l{transform:translate(-100%,-50%)}
.lead-ln{stroke:rgba(217,183,118,.55);stroke-width:1.2;stroke-dasharray:3 3}
.lab.on{background:var(--pine);color:var(--char);border-color:var(--pine)}
.map-note{font-size:.78rem;color:#86A08F;margin:10px 4px 0}
.refs{background:#fff;overflow:hidden}
.marquee{position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.track{display:flex;gap:16px;width:max-content;animation:scroll 48s linear infinite}
.marquee.rev .track{animation-direction:reverse;animation-duration:56s}
.marquee + .marquee{margin-top:16px}
.marquee:hover .track{animation-play-state:paused}
@keyframes scroll{to{transform:translateX(-50%)}}
.logo{flex:none;width:210px;height:96px;border-radius:14px;border:1px solid var(--rule);background:var(--paper);display:grid;place-items:center;padding:16px;transition:border-color .2s,transform .2s,box-shadow .2s}
.logo:hover{border-color:var(--pine);transform:translateY(-3px);box-shadow:0 12px 24px rgba(18,53,36,.08)}
.logo img{max-width:100%;max-height:56px;object-fit:contain;filter:grayscale(1);opacity:.8;transition:filter .3s,opacity .3s}
.logo:hover img{filter:none;opacity:1}
.logo span{font-stretch:112%;font-weight:800;font-size:1.05rem;color:#3b4a41;text-align:center;letter-spacing:.01em}
.logo img + span{display:none}
@media (prefers-reduced-motion:reduce){.track{animation:none;flex-wrap:wrap;width:auto;justify-content:center}.marquee.rev{display:none}}
@media (max-width:1000px){.ma-grid{grid-template-columns:1fr}}
@media (max-width:600px){.sites{grid-template-columns:1fr}.logo{width:160px;height:80px}.lab{font-size:.68rem}}
