:root{
  --paper:#F4F6F0; --card:#FFFFFF; --ink:#1D2A23; --muted:#56645B;
  --cedar:#1F3D2C; --leaf:#2F6B45; --sage:#B9C9AE; --line:#DDE5D6;
  --pollen:#F2C744; --pollen-ink:#2A2306; --error:#B3261E;
  --display:"Bricolage Grotesque",system-ui,sans-serif;
  --body:"Atkinson Hyperlegible",system-ui,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
body{margin:0;background:var(--paper);color:var(--ink);font:400 1.0625rem/1.6 var(--body);-webkit-font-smoothing:antialiased}
a{color:var(--leaf)}
:focus-visible{outline:3px solid var(--pollen);outline-offset:2px}
.wrap{max-width:1120px;margin:0 auto;padding:0 16px}
h1,h2,h3{font-family:var(--display);line-height:1.08;margin:0;letter-spacing:-.01em}

/* En-tête : pas de navigation, une seule action sur la page */
.top{background:var(--cedar);color:#fff}
.top .wrap{display:flex;align-items:center;justify-content:space-between;min-height:60px;gap:12px}
.brand{font-family:var(--display);font-weight:800;font-size:1.15rem;color:#fff;text-decoration:none}
.brand small{display:block;font:400 .78rem/1.2 var(--body);color:var(--sage)}
.top-note{font-size:.9rem;color:var(--sage)}

/* Hero : titre à gauche, formulaire à droite, plan de jardin en fond */
.hero{background:var(--cedar);color:#fff;position:relative;overflow:hidden;padding:28px 0 56px}
.plan{position:absolute;inset:0;width:100%;height:100%;opacity:.16;pointer-events:none}
.hero-grid{position:relative;display:grid;grid-template-columns:1fr;gap:28px}
@media(min-width:960px){.hero-grid{grid-template-columns:1.05fr .95fr;gap:56px;align-items:start}.hero{padding:72px 0 96px}}
.hero h1{font-size:clamp(2.1rem,5.2vw,3.6rem);font-weight:800;max-width:15ch}
.lede{font-size:1.08rem;color:#E3EBDD;max-width:46ch;margin:18px 0 22px}
.promises{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.promises li{display:flex;gap:10px;align-items:flex-start;color:#F1F5EE}
.promises svg{flex:none;margin-top:3px}
.hero-aside{margin-top:24px;font-size:.92rem;color:var(--sage);max-width:46ch}
.hide-sm{display:none}
@media(min-width:960px){.hide-sm{display:block}}

/* Formulaire */
.form-card{background:var(--card);color:var(--ink);border-radius:18px;padding:22px 20px 20px;box-shadow:0 18px 50px rgba(8,25,15,.35);scroll-margin-top:16px}
@media(min-width:600px){.form-card{padding:28px 28px 24px}}
.progress{display:flex;align-items:center;gap:12px;margin-bottom:18px;font-size:.9rem;color:var(--muted)}
.bar{flex:1;height:6px;background:var(--line);border-radius:6px;overflow:hidden}
.bar i{display:block;height:100%;width:16%;background:var(--leaf);border-radius:6px;transition:width .3s ease}
.step{display:none}
.step.on{display:block}
.q{font-family:var(--display);font-weight:800;font-size:1.45rem;margin:0 0 6px}
.hint{color:var(--muted);margin:0 0 16px;font-size:.98rem}
.choices{display:grid;gap:10px}
.choices.two{grid-template-columns:1fr 1fr}
.choice{display:flex;align-items:center;gap:12px;width:100%;min-height:56px;padding:12px 14px;background:#fff;border:2px solid var(--line);border-radius:12px;font:700 1rem/1.25 var(--body);color:var(--ink);text-align:left;cursor:pointer}
.choice:hover{border-color:var(--sage);background:#FAFCF8}
.choice[aria-pressed="true"]{border-color:var(--leaf);background:#EEF5EA}
.choice .ico{flex:none;width:36px;height:36px;border-radius:50%;background:#EEF3EA;display:grid;place-items:center}
.choice span small{display:block;font-weight:400;color:var(--muted);font-size:.88rem;margin-top:2px}
.choices.two .choice{justify-content:center;text-align:center;min-height:64px}
label.f{display:block;font-weight:700;margin:14px 0 6px}
label.f .opt{font-weight:400;color:var(--muted)}
input[type=text],input[type=tel],input[type=email],select,textarea{width:100%;min-height:52px;padding:12px 14px;border:2px solid var(--line);border-radius:12px;font:400 1.05rem/1.3 var(--body);color:var(--ink);background:#fff}
textarea{min-height:88px;resize:vertical}
input:focus,select:focus,textarea:focus{border-color:var(--leaf);outline:none;box-shadow:0 0 0 3px rgba(47,107,69,.18)}
.invalid{border-color:var(--error)!important}
.err{color:var(--error);font-size:.92rem;margin:6px 0 0;display:none}
.err.on{display:block}
.zone-note{font-size:.92rem;color:var(--muted);margin:8px 0 0}
.consent{display:flex;gap:10px;align-items:flex-start;margin:16px 0 4px;font-size:.92rem;color:var(--muted)}
.consent input{width:22px;height:22px;flex:none;margin-top:2px;accent-color:var(--leaf)}
.actions{display:flex;align-items:center;gap:12px;margin-top:18px}
.cta{appearance:none;border:0;border-radius:12px;background:var(--pollen);color:var(--pollen-ink);font:800 1.08rem/1 var(--display);padding:18px 22px;min-height:56px;cursor:pointer;flex:1}
.cta:hover{background:#F6D35F}
.cta[disabled]{opacity:.6;cursor:progress}
.back{appearance:none;background:none;border:0;color:var(--muted);font:700 .98rem var(--body);padding:12px 6px;cursor:pointer;text-decoration:underline}
.reassure{display:flex;gap:8px;align-items:center;justify-content:center;margin:14px 0 0;color:var(--muted);font-size:.88rem;text-align:center}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.done{text-align:center;padding:12px 4px}
.done h2{font-size:1.7rem;margin:12px 0 8px}
.done p{color:var(--muted)}

/* Sections */
section{padding:64px 0}
.sec-title{font-size:clamp(1.6rem,3.4vw,2.3rem);font-weight:800;max-width:22ch;margin-bottom:28px}
.steps{list-style:none;padding:0;margin:0;display:grid;gap:24px;counter-reset:s}
@media(min-width:800px){.steps{grid-template-columns:repeat(3,1fr);gap:32px}}
.steps li{counter-increment:s;border-top:3px solid var(--cedar);padding-top:16px}
.steps li::before{content:counter(s);font:800 2.4rem/1 var(--display);color:var(--leaf);display:block;margin-bottom:10px}
.steps h3{font-size:1.2rem;margin-bottom:6px}
.steps p{margin:0;color:var(--muted)}

.works{display:grid;gap:0;grid-template-columns:1fr;border-top:1px solid var(--line)}
@media(min-width:700px){.works{grid-template-columns:1fr 1fr;column-gap:40px}}
.works div{display:flex;gap:14px;padding:18px 0;border-bottom:1px solid var(--line)}
.works svg{flex:none}
.works h3{font-size:1.1rem;margin-bottom:2px}
.works p{margin:0;color:var(--muted);font-size:.98rem}

.why{background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.why-grid{display:grid;gap:28px}
@media(min-width:900px){.why-grid{grid-template-columns:1fr 1fr;gap:64px;align-items:center}}
.why p{color:var(--muted);max-width:56ch}
.compare{display:grid;gap:12px}
.compare div{border-radius:14px;padding:18px}
.compare .them{background:#F3F1EC;color:#5E5A50}
.compare .us{background:#EEF5EA;border:2px solid var(--leaf)}
.compare b{display:block;font-family:var(--display);font-size:1.1rem;margin-bottom:4px;color:var(--ink)}

.faq details{border-bottom:1px solid var(--line);padding:4px 0}
.faq summary{cursor:pointer;list-style:none;font:700 1.08rem/1.4 var(--body);padding:16px 36px 16px 0;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:4px;top:12px;font:800 1.5rem var(--display);color:var(--leaf)}
.faq details[open] summary::after{content:"–"}
.faq p{margin:0 0 18px;color:var(--muted);max-width:68ch}
.faq-wrap{max-width:820px}

.final{background:var(--cedar);color:#fff;text-align:left}
.final .wrap{display:grid;gap:20px}
@media(min-width:800px){.final .wrap{grid-template-columns:1fr auto;align-items:center}}
.final h2{font-size:clamp(1.6rem,3.4vw,2.3rem);max-width:20ch}
.final p{color:#E3EBDD;margin:8px 0 0}
.final .cta{flex:none;display:inline-block;text-decoration:none;text-align:center}

footer{padding:40px 0 96px;font-size:.88rem;color:var(--muted)}
@media(min-width:960px){footer{padding-bottom:48px}}
footer h2{font:700 1rem var(--body);color:var(--ink);margin:22px 0 6px}
footer p{max-width:80ch;margin:0 0 8px}

/* Barre d'action mobile, visible quand le formulaire est hors écran */
.sticky{position:fixed;left:0;right:0;bottom:0;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:rgba(244,246,240,.96);border-top:1px solid var(--line);transform:translateY(110%);transition:transform .25s ease;z-index:20}
.sticky.on{transform:none}
.sticky .cta{width:100%;display:block;text-align:center;text-decoration:none}
@media(min-width:960px){.sticky{display:none}}
