@import url(/fonts/fonts.css);
:root{
  --lin:#F7F8EF; --ciel:#E3F2F5; --feuille:#5DAE5B; --mousse:#2F7A4A; --sousbois:#1F3D2B;
  --texte:#2C4A37; --doux:#4E6656; --pollen:#F4B400; --propolis:#8A5A00; --frelon:#B2410E;
  --blanc:#FFFFFF; --trait:#CFE6C4; --rayon:22px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--lin);color:var(--sousbois);font-family:'Nunito Sans',system-ui,sans-serif;font-size:18px;line-height:1.55}
img{max-width:100%;height:auto;display:block}
a{color:var(--mousse)}
h1,h2,h3{font-family:'Bricolage Grotesque',system-ui,sans-serif;line-height:1.05;margin:0;letter-spacing:-.02em}
h1{font-size:clamp(44px,7vw,92px);font-weight:800}
h2{font-size:clamp(32px,4.5vw,56px);font-weight:800}
h3{font-size:24px;font-weight:700}
p{margin:0}
.wrap{max-width:1180px;margin:0 auto;padding:0 20px}
.section{padding:96px 0}
.kicker{font-family:'Bricolage Grotesque',sans-serif;font-weight:700;color:var(--mousse);font-size:18px;margin-bottom:14px}
.lead{font-size:21px;color:var(--texte);max-width:640px}
.btn{display:inline-flex;align-items:center;gap:10px;min-height:52px;padding:0 26px;border-radius:999px;font-weight:800;font-size:17px;text-decoration:none;border:0;cursor:pointer;font-family:inherit}
.btn-primary{background:var(--mousse);color:#fff}
.btn-primary:hover{background:#25633b}
.btn-ghost{background:transparent;color:var(--sousbois);border:2px solid var(--sousbois)}
.btn-ghost:hover{background:var(--sousbois);color:var(--lin)}

/* en-tête */
.top{position:sticky;top:0;z-index:10;background:rgba(247,248,239,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--trait)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;height:68px;gap:16px}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--sousbois);font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:28px;letter-spacing:-.03em}
.logo svg{width:36px;height:36px}
.nav{display:flex;gap:26px;align-items:center}
.nav a{text-decoration:none;color:var(--texte);font-weight:600}
.nav a:hover{color:var(--mousse)}
.nav .btn{min-height:44px;padding:0 20px;color:#fff}
@media (max-width:860px){.nav a:not(.btn){display:none}}

/* héros */
.hero{background:var(--ciel);overflow:hidden}
.hero .wrap{display:grid;grid-template-columns:1.05fr 1fr;gap:40px;align-items:center;padding-top:72px;padding-bottom:72px}
.hero .badge{display:inline-block;background:var(--blanc);color:var(--mousse);font-weight:700;border-radius:999px;padding:8px 16px;margin-bottom:22px;font-size:15px}
.hero p.lead{margin:22px 0 32px}
.hero .ctas{display:flex;gap:14px;flex-wrap:wrap}
.hero img{border-radius:28px;box-shadow:0 30px 60px rgba(31,61,43,.18)}
@media (max-width:860px){.hero .wrap{grid-template-columns:1fr}}

/* fiche produit */
.product{display:grid;grid-template-columns:1.15fr 1fr;gap:48px;align-items:start}
.gallery{display:grid;gap:14px}
.gallery .main{border-radius:var(--rayon);background:var(--blanc)}
.gallery .thumbs{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.gallery .thumbs img{border-radius:16px;background:var(--blanc);aspect-ratio:16/10;object-fit:cover}
.buy{background:var(--blanc);border-radius:28px;padding:36px;position:sticky;top:96px;box-shadow:0 10px 30px rgba(31,61,43,.08)}
.buy .price{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:64px;line-height:1;margin:14px 0 4px}
.buy .note{color:var(--doux);font-size:15px}
.buy ul{list-style:none;padding:0;margin:24px 0;display:grid;gap:12px}
.buy li{display:flex;gap:12px;align-items:flex-start}
.buy li svg{flex:none;margin-top:3px}
.buy .stock{display:flex;align-items:center;gap:10px;background:#FFF6DA;color:var(--propolis);font-weight:700;border-radius:14px;padding:12px 16px;margin-bottom:20px;font-size:16px}
.buy .btn{width:100%;justify-content:center}
.buy .sub{margin-top:16px;font-size:15px;color:var(--doux);text-align:center}
@media (max-width:900px){.product{grid-template-columns:1fr}.buy{position:static}}

/* étapes */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:44px}
.step{background:var(--blanc);border-radius:var(--rayon);padding:30px}
.step .num{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;color:var(--feuille);font-size:44px;line-height:1;margin-bottom:12px}
.step p{color:var(--texte);margin-top:10px}
@media (max-width:860px){.steps{grid-template-columns:1fr}}

/* technique */
.tech{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:44px}
.panel{background:var(--blanc);border-radius:var(--rayon);padding:28px}
.panel h3{margin-bottom:10px}
.panel p{color:var(--doux);font-size:16px}
.panel svg{width:100%;height:auto;margin-top:12px}
.chain{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:28px}
.chain span{background:var(--blanc);border:2px solid var(--feuille);border-radius:14px;padding:10px 14px;font-weight:700;font-size:15px}
.chain span.last{background:var(--mousse);color:#fff;border-color:var(--mousse)}
.chain i{color:var(--mousse);font-style:normal;font-weight:800}
@media (max-width:860px){.tech{grid-template-columns:1fr}}

/* application */
.app{background:var(--ciel)}
.phones{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:44px}
.phones figure{margin:0;text-align:center}
.phones img{border-radius:30px;border:6px solid var(--blanc);box-shadow:0 16px 36px rgba(31,61,43,.16)}
.phones figcaption{margin-top:12px;font-weight:700;color:var(--mousse)}
@media (max-width:860px){.phones{grid-template-columns:repeat(2,1fr)}}

/* tarifs */
.plans{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:44px}
.plan{background:var(--blanc);border-radius:var(--rayon);padding:32px;display:flex;flex-direction:column;gap:10px}
.plan.hl{background:var(--feuille);color:#14301F}
.plan .amount{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:54px;line-height:1}
.plan .per{color:var(--doux);font-weight:600}
.plan.hl .per{color:#14301F}
.plan ul{margin:10px 0 0;padding-left:20px;display:grid;gap:6px}
@media (max-width:860px){.plans{grid-template-columns:1fr}}

/* FAQ */
.faq{display:grid;gap:12px;margin-top:36px;max-width:860px}
.faq details{background:var(--blanc);border-radius:16px;padding:18px 22px}
.faq summary{cursor:pointer;font-weight:800;font-size:19px;list-style:none;display:flex;justify-content:space-between;gap:14px}
.faq summary::after{content:'+';color:var(--mousse);font-size:24px;line-height:1}
.faq details[open] summary::after{content:'−'}
.faq details p{margin-top:10px;color:var(--texte)}

/* liste d'attente */
.join{background:var(--mousse);color:#fff}
.join h2{color:#fff}
.join .lead{color:#E6F2E3}
.form{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:12px;margin-top:32px;align-items:end}
.form label{display:grid;gap:6px;font-weight:700;font-size:15px}
.form input,.form select{height:52px;border-radius:14px;border:0;padding:0 16px;font:inherit;color:var(--sousbois);background:#fff}
.form .consent{grid-column:1/-1;display:flex;gap:10px;align-items:flex-start;font-weight:400;font-size:15px;color:#E6F2E3}
.form .consent input{height:20px;width:20px;margin-top:2px;flex:none}
.form .btn{background:var(--pollen);color:var(--sousbois);height:52px}
.form .btn:hover{background:#ffc62e}
.msg{margin-top:16px;font-weight:700;min-height:26px}
@media (max-width:860px){.form{grid-template-columns:1fr}}

/* pied */
.foot{padding:48px 0;color:var(--doux);font-size:15px}
.foot .wrap{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;align-items:center}
.legal h1{font-size:44px;margin:48px 0 24px}
.legal h2{font-size:26px;margin:36px 0 12px}
.legal p,.legal li{color:var(--texte);margin-bottom:10px}
