/* ============ SPÉCIMEN 5 « FORÊT » — palette : vert forêt + menthe ============ */
:root{
  --bg:#0B1F16;        /* deep forest */
  --bg-2:#0F2A1E;
  --panel:#122B22;
  --panel-2:#173527;
  --line:rgba(234,245,238,.10);
  --line-mint:rgba(88,214,141,.22);
  --text:#EAF5EE;
  --muted:#93A99B;
  --mint:#58D68D;      /* accent */
  --gold:#E4C86A;      /* 2e accent, parcimonie */
  --ok:#4CC471;
  --r:16px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Inter Tight',ui-sans-serif,system-ui,sans-serif;background:var(--bg);color:var(--text);line-height:1.55;font-size:16px;-webkit-font-smoothing:antialiased}
.grotesk{font-family:'Space Grotesk',sans-serif}
.wrap{max-width:1140px;margin:0 auto;padding:0 22px}
a{color:inherit}
img{display:block;max-width:100%}
svg.ic{width:16px;height:16px;flex:0 0 auto}
:focus-visible{outline:3px solid var(--mint);outline-offset:2px}
.btn,a.btn,button{cursor:pointer}
.mono{font-family:'JetBrains Mono',ui-monospace,monospace}

.specimen{position:fixed;bottom:12px;left:12px;z-index:99;background:#fff;color:#0B1F16;font-size:11px;letter-spacing:.1em;text-transform:uppercase;padding:8px 12px;border-radius:999px;font-weight:600;box-shadow:0 6px 18px rgba(0,0,0,.5)}
.specimen b{color:#2E7D4F}

/* header */
header.site{position:sticky;top:0;z-index:50;background:rgba(11,31,22,.86);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;min-height:64px;gap:16px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none}
.brand-mark{width:34px;height:34px;border-radius:9px;background:var(--mint);color:#0B1F16;display:grid;place-items:center}
.brand-name{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:18px}
.menu{display:none;gap:24px}
.menu a{font-size:14.5px;color:var(--muted);font-weight:500;text-decoration:none}
.menu a:hover,.menu a.active{color:var(--mint)}
.nav-right{display:flex;align-items:center;gap:12px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-weight:700;font-size:15px;min-height:44px;padding:11px 24px;border-radius:999px;text-decoration:none;transition:transform .2s ease,box-shadow .2s ease,background .2s ease}
.btn-mint{background:var(--mint);color:#0B1F16}
.btn-mint:hover{transform:translateY(-1px);box-shadow:0 10px 30px -10px rgba(88,214,141,.6)}
.btn-line{border:1px solid var(--line)}
.btn-line:hover{border-color:var(--mint);color:var(--mint)}
@media(min-width:920px){.menu{display:flex}}

/* kicker / headings */
.kicker{display:inline-flex;align-items:center;gap:10px;font-size:12.5px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--mint);margin-bottom:24px}
.kicker::before{content:"";width:32px;height:3px;background:var(--mint)}
h1,h2{font-family:'Space Grotesk',sans-serif;font-weight:700;letter-spacing:-.02em;line-height:1.02}
h1{font-size:clamp(42px,7vw,80px);max-width:11em;margin-bottom:24px}
h2{font-size:clamp(28px,4.4vw,44px);margin-bottom:16px}
h1 .out{color:var(--mint)}
h1 .stroke{color:transparent;-webkit-text-stroke:1.5px rgba(234,245,238,.55)}
.lead{font-size:18px;color:var(--muted);max-width:33em}
.lead b{color:var(--text);font-weight:600}
section.block{padding:80px 0}
.strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--bg-2)}

/* hero */
.hero{padding:80px 0 40px;position:relative;overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(620px 340px at 80% -10%,rgba(88,214,141,.12),transparent 70%),radial-gradient(480px 300px at 5% 110%,rgba(228,200,106,.06),transparent 70%)}
.hero .wrap{position:relative}
.pill{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:600;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:7px 14px;margin-bottom:28px}
.pulse{width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 3px rgba(76,196,113,.22);animation:pulse 1.8s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}
.hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:18px}
.hero-note{font-size:13.5px;color:var(--muted)}
.hero-media{margin-top:56px;position:relative}
.hero-img{width:100%;border-radius:var(--r);border:1px solid var(--line);box-shadow:0 40px 90px -40px rgba(0,0,0,.8);aspect-ratio:21/9;object-fit:cover}
.hero-img-caption{position:absolute;bottom:14px;right:14px;background:rgba(11,31,22,.85);backdrop-filter:blur(6px);border:1px solid var(--line);border-radius:10px;padding:8px 14px;font-size:12px;color:var(--muted)}

/* stats band with count-up */
.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:28px}
@media(min-width:860px){.stats{grid-template-columns:repeat(4,1fr)}}
.stat{border:1px solid var(--line);border-radius:var(--r);padding:22px;background:var(--panel)}
.stat .n{font-family:'Space Grotesk',sans-serif;font-size:36px;font-weight:700;line-height:1;color:var(--mint)}
.stat .n em{font-style:normal;color:var(--gold)}
.stat .c{font-size:13.5px;color:var(--muted);margin-top:8px}

/* bento */
.bento{display:grid;grid-template-columns:1fr;gap:16px}
@media(min-width:860px){.bento{grid-template-columns:repeat(2,1fr)}.b-1{grid-column:span 2}}
.b-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:26px;transition:border-color .2s ease,transform .2s ease;text-decoration:none;color:var(--text);display:block}
.b-card:hover{border-color:var(--line-mint);transform:translateY(-3px)}
.b-ico{width:42px;height:42px;border-radius:12px;background:rgba(88,214,141,.12);color:var(--mint);display:grid;place-items:center;margin-bottom:16px}
.b-ico svg{width:20px;height:20px}
.b-card h3{font-family:'Space Grotesk',sans-serif;font-size:20px;font-weight:600;margin-bottom:8px}
.b-card p{font-size:14.5px;color:var(--muted)}
.mini{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.chip{font-size:12px;font-weight:600;border:1px solid var(--line);border-radius:999px;padding:5px 12px}
.b-1 .duo{display:grid;gap:18px}
@media(min-width:640px){.b-1 .duo{grid-template-columns:1fr 1fr;align-items:center}}
.b-1 p{font-size:16px;max-width:34em}

/* marquee niches (paused on hover, off en reduced-motion) */
.marquee{overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:18px 0;background:var(--bg-2)}
.marquee-track{display:flex;gap:48px;width:max-content;animation:slide 36s linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
@keyframes slide{to{transform:translateX(-50%)}}
.marquee span{font-family:'Space Grotesk',sans-serif;font-size:15px;color:var(--muted);white-space:nowrap;display:inline-flex;align-items:center;gap:48px}
.marquee b{color:var(--text)}

/* media split (pages services) */
.svc-detail{display:grid;grid-template-columns:1fr;gap:32px;padding:56px 0;border-bottom:1px solid var(--line)}
.svc-detail:last-child{border-bottom:none}
@media(min-width:900px){.svc-detail{grid-template-columns:1fr 1fr;align-items:center}.svc-detail.rev .media{order:-1}}
.media img{width:100%;border-radius:var(--r);border:1px solid var(--line);box-shadow:0 30px 60px -35px rgba(0,0,0,.8);aspect-ratio:16/10;object-fit:cover}
.num{font-family:'JetBrains Mono',monospace;font-size:13px;color:var(--mint);letter-spacing:.14em;display:block;margin-bottom:12px;font-weight:700}
.pillars{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 22px}
.pill{font-size:12.5px;font-weight:600;border:1px solid var(--line-mint);border-radius:999px;padding:6px 13px;color:var(--mint)}
.svc-detail p{color:var(--muted);font-size:16px}
.toc{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
.toc a{font-size:13px;font-weight:700;color:var(--mint);text-decoration:none;border:1px solid var(--line);border-radius:999px;padding:8px 16px}
.toc a:hover{background:var(--panel)}

/* pricing */
.price-grid{display:grid;grid-template-columns:1fr;gap:18px}
@media(min-width:900px){.price-grid{grid-template-columns:repeat(3,1fr)}}
.plan{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:28px;display:flex;flex-direction:column;transition:transform .2s,border-color .2s}
.plan:hover{transform:translateY(-4px);border-color:var(--line-mint)}
.plan.featured{border:1px solid var(--mint);position:relative}
.plan.featured::before{content:"Le plus choisi";position:absolute;top:-13px;left:24px;background:var(--mint);color:#0B1F16;font-size:11.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:4px 12px;border-radius:999px}
.plan h3{font-family:'Space Grotesk',sans-serif;font-size:20px;font-weight:600;margin-bottom:4px}
.plan .for{font-size:13px;color:var(--muted);margin-bottom:16px}
.plan .p{font-family:'Space Grotesk',sans-serif;font-size:34px;font-weight:700}
.plan .p small{font-size:14px;color:var(--muted);font-weight:500;font-family:'Inter Tight',sans-serif}
.plan ul{list-style:none;margin:18px 0 22px;display:grid;gap:10px;flex:1}
.plan li{display:flex;gap:10px;font-size:14.5px;color:var(--text)}
.plan li svg{color:var(--mint);margin-top:4px;flex:0 0 auto}
.fine{font-size:13px;color:var(--muted);margin-top:24px;text-align:center}

/* faq */
.faq{display:grid;gap:10px;max-width:760px;margin:0 auto}
.faq details{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px 20px}
.faq summary{font-weight:700;cursor:pointer}
.faq p{margin-top:10px;color:var(--muted);font-size:15px}

/* form */
form{display:grid;gap:16px}
.field label{display:block;font-weight:700;font-size:14px;margin-bottom:6px}
.field .hint{font-size:12.5px;color:var(--muted);margin-bottom:6px}
.field input{width:100%;min-height:44px;padding:10px 12px;font:inherit;font-size:15px;border:1.5px solid var(--line);border-radius:10px;background:var(--panel);color:var(--text)}
.field input:focus-visible{outline:3px solid var(--mint);outline-offset:2px}
.field input[aria-invalid="true"]{border-color:#F87171}
.field .err{display:none;color:#F87171;font-size:13px;font-weight:600;margin-top:4px}
.field input[aria-invalid="true"]~.err{display:block}
.form-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:32px;max-width:640px;margin:0 auto}
.form-card h3{font-family:'Space Grotesk',sans-serif;font-size:21px;margin-bottom:6px}
.form-card .sub{font-size:14px;color:var(--muted);margin-bottom:20px}

/* cta band */
.cta-band{border:1px solid var(--line-mint);border-radius:var(--r);background:linear-gradient(135deg,rgba(88,214,141,.10),rgba(88,214,141,.03));padding:52px 28px;text-align:center;margin:72px 0}
.cta-band h2{max-width:15em;margin:0 auto 14px}
.cta-band p{color:var(--muted);margin:0 auto 28px;max-width:30em}
.cta-band .btn{margin:0 7px 10px}

/* footer */
footer.site{border-top:1px solid var(--line);padding:40px 0}
.foot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:14px;font-size:13.5px;color:var(--muted)}
footer.site a:hover{color:var(--mint)}

/* ============ ANIMATIONS ============ */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .6s ease,transform .6s ease}
.reveal.in{opacity:1;transform:none}
.reveal[data-d="1"]{transition-delay:.1s}
.reveal[data-d="2"]{transition-delay:.2s}
.reveal[data-d="3"]{transition-delay:.3s}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .reveal{opacity:1;transform:none}
  .marquee-track{transform:none!important;width:auto!important;flex-wrap:wrap}
}
