/* ===== LES POINTS MAGIQUES - styles =====
   Couleurs : modifiez-les ici, tout le site suit. */
:root{
  --vert:#4A936A;        /* vert du logo */
  --vert-fonce:#0B6B26;  /* vert des boutons de l'app */
  --vert-pale:#E4EEE6;
  --ecru:#F7F5F0;
  --ecru-fonce:#EFEBE1;
  --encre:#26332B;
  --jaune:#FFD60A;
  --blanc:#fff;
  --ombre:0 2px 14px rgba(38,51,43,.07);
  --titre:'CabernetJFPro','Outfit',system-ui,sans-serif;
  --texte:'Plus Jakarta Sans',system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth;scroll-padding-top:76px}
body{font-family:var(--texte);color:var(--encre);background:var(--ecru);line-height:1.65;font-size:1.05rem}
img{max-width:100%;height:auto;display:block}
a{color:var(--vert-fonce)}
:focus-visible{outline:3px solid var(--jaune);outline-offset:3px;border-radius:6px}
.wrap{width:min(1100px,92%);margin-inline:auto}
section{padding:5rem 0}
@font-face{font-family:'CabernetJFPro';src:local('CabernetJFPro'),url('../fonts/CabernetJFPro.woff2') format('woff2');font-display:swap}
h1,h2,h3{font-family:var(--titre);font-weight:700;line-height:1.15;color:var(--encre);letter-spacing:-.01em}
h2{font-size:clamp(1.9rem,4.2vw,2.7rem);margin-bottom:1rem}
h3{font-size:1.2rem;margin-bottom:.3rem}
.centre{text-align:center}
.intro{max-width:620px;margin:0 auto 2.5rem;color:#4b5a50}
.sur-vert{background:var(--vert)}
.sur-vert h2,.sur-vert h3,.sur-vert p{color:#fff}
.alt{background:var(--ecru-fonce)}

/* En-tête */
header{position:sticky;top:0;z-index:20;background:rgba(247,245,240,.94);backdrop-filter:blur(8px);border-bottom:1px solid #e6e1d4}
header .wrap{display:flex;align-items:center;justify-content:space-between;height:68px}
.marque{display:flex;align-items:center;gap:.6rem;font-family:var(--titre);font-size:1.25rem;font-weight:700;color:var(--encre);text-decoration:none}
.marque img{width:44px}
nav ul{display:flex;gap:1.6rem;list-style:none;padding:0}
nav a{text-decoration:none;color:var(--encre);font-weight:500;font-size:.95rem}
nav a:hover{color:var(--vert)}
.menu-btn{display:none;background:none;border:0;font-size:1.8rem;color:var(--vert-fonce);cursor:pointer}

/* Boutons des stores */
.stores{display:flex;flex-wrap:wrap;gap:.8rem}
.store{display:flex;align-items:center;gap:.7rem;background:#111917;color:#fff;text-decoration:none;padding:.55rem 1.2rem .55rem .9rem;border-radius:12px;border:1px solid #3a4a41;transition:transform .2s,box-shadow .2s}
.store:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(0,0,0,.22)}
.store img{width:34px;height:34px;border-radius:8px}
.store small{display:block;font-size:.72rem;line-height:1.1;opacity:.85}
.store strong{display:block;font-size:1.15rem;line-height:1.2}
.centre .stores{justify-content:center}

/* Hero */
.hero{background:var(--vert);padding:3.5rem 0 4rem;overflow:hidden;position:relative}
.hero .wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:2rem;align-items:center}
.hero h1{color:#fff;font-size:clamp(2.2rem,5.5vw,3.8rem);margin:.8rem 0 1rem}
.hero p{color:#f2f7f3;max-width:34rem;margin-bottom:1.6rem;font-size:1.12rem}
.hero .logo{width:96px}
.hero .tel{width:min(290px,70%);margin:0 auto;border-radius:34px 34px 0 0;border:8px solid #F3EEDC;border-bottom:0;box-shadow:0 10px 30px rgba(0,0,0,.2)}
.etoile{position:absolute;color:var(--jaune);pointer-events:none;animation:scintille 4s ease-in-out infinite}
.etoile.b{color:#fff;animation-delay:1.5s}
@keyframes scintille{0%,100%{opacity:.35;transform:scale(.85)}50%{opacity:1;transform:scale(1.1)}}

/* Cartes */
.grille{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.2rem}
.carte{background:var(--blanc);border-radius:18px;padding:1.6rem;box-shadow:var(--ombre);transition:transform .25s}
.carte:hover{transform:translateY(-3px)}
.carte p{font-size:.97rem;color:#4b5a50}
.carte .pastille{width:48px;height:48px;border-radius:50%;background:var(--vert-pale);display:grid;place-items:center;font-size:1.4rem;margin-bottom:.8rem}

/* Étapes */
.etapes{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1.5rem;counter-reset:e}
.etape{counter-increment:e;position:relative;padding-top:3.2rem}
.etape::before{content:counter(e);position:absolute;top:0;left:0;width:2.6rem;height:2.6rem;border-radius:50%;background:var(--jaune);color:var(--encre);font-family:var(--titre);font-size:1.3rem;font-weight:700;display:grid;place-items:center}
.etape p{color:#e9f2ec;font-size:.97rem}

/* Bénéfices */
.benefices{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:.9rem 2rem;max-width:900px;margin:0 auto}
.benefices li{padding-left:2rem;position:relative}
.benefices li::before{content:"✦";position:absolute;left:0;color:var(--vert);}

/* Captures */
.defile{display:flex;gap:1.2rem;overflow-x:auto;padding:.5rem 4% 1.5rem;scroll-snap-type:x mandatory}
.defile figure{flex:0 0 min(250px,68vw);scroll-snap-align:center}
.defile img{border-radius:22px;box-shadow:var(--ombre);border:1px solid #e4dfd0}
.defile figcaption{text-align:center;margin-top:.6rem;font-size:.92rem;color:#4b5a50}

/* Famille */
.famille{display:grid;grid-template-columns:.8fr 1.2fr;gap:3rem;align-items:center}
.famille img{width:min(270px,100%);margin:auto;border-radius:24px;box-shadow:var(--ombre)}

/* Tarifs */
.tarifs{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.2rem;max-width:820px;margin:0 auto}
.tarif{background:#fff;border-radius:18px;padding:2rem 1.5rem;box-shadow:var(--ombre);text-align:center;border:2px solid transparent}
.tarif.choix{border-color:var(--jaune)}
.prix{font-family:var(--titre);font-size:2.6rem;font-weight:700;color:var(--encre);line-height:1.1}
.prix small{font-size:1.2rem;color:#4b5a50}

/* Final + pied de page */
.final{text-align:center}
.final h2{font-size:clamp(2rem,5vw,3.2rem)}
footer.pied{background:#1d2a22;color:#cfd9d2;padding:2.5rem 0;font-size:.92rem}
footer.pied .wrap{display:flex;flex-wrap:wrap;gap:1.5rem;justify-content:space-between;align-items:center}
footer.pied img.logo-pied{width:64px}
footer.pied a{color:#cfd9d2}
.reseaux{display:flex;gap:.8rem}
.reseaux img{width:38px;height:38px;border-radius:10px;transition:transform .2s}
.reseaux a:hover img{transform:scale(1.1)}

/* Apparition douce (une seule fois par bloc) */
.js .apparait{opacity:0;transform:translateY(14px);transition:opacity .7s,transform .7s}
.js .apparait.vu{opacity:1;transform:none}

@media(max-width:820px){
  .hero .wrap,.famille{grid-template-columns:1fr}
  .hero{text-align:center}.hero p{margin-inline:auto}.hero .stores{justify-content:center}
  .menu-btn{display:block}
  nav ul{display:none;position:absolute;top:68px;left:0;right:0;flex-direction:column;background:var(--ecru);padding:1rem 4%;gap:1rem;border-bottom:1px solid #e6e1d4}
  nav ul.ouvert{display:flex}
  section{padding:3.5rem 0}
}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .js .apparait{opacity:1;transform:none}
  html{scroll-behavior:auto}
}

/* ===== v2 : hero centré, téléphones animés, contact ===== */
.hero .wrap>div:first-child{text-align:center}
.hero p{margin-inline:auto}.hero .stores{justify-content:center}
.phone{position:relative;width:min(270px,68vw);margin:0 auto;border:9px solid #F3EEDC;border-radius:40px;background:#F3EEDC;box-shadow:0 18px 40px rgba(20,40,28,.25);animation:flotte 6s ease-in-out infinite}
.phone::before{content:"";position:absolute;top:0;left:50%;width:34%;height:16px;background:#F3EEDC;border-radius:0 0 12px 12px;transform:translateX(-50%);z-index:3}
.ecrans{position:relative;aspect-ratio:1170/2532;border-radius:30px;overflow:hidden;background:var(--ecru)}
.ecrans img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.04);transition:opacity .7s,transform .9s}
.ecrans img.on{opacity:1;transform:none}
@keyframes flotte{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
.scene{position:relative;display:grid;place-items:center;padding:1rem}
.bulle{position:absolute;background:var(--jaune);color:var(--encre);font-weight:700;border-radius:99px;padding:.3rem .9rem;box-shadow:var(--ombre);animation:flotte 5s ease-in-out infinite;z-index:4}
.bulle.etoile-b{background:#fff;color:var(--vert);padding:.2rem .6rem}
.vitrine{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center}
.onglets{display:grid;gap:.7rem}
.onglet{text-align:left;font:inherit;background:#fff;border:2px solid transparent;border-radius:16px;padding:1rem 1.2rem;cursor:pointer;box-shadow:var(--ombre);transition:border-color .2s,transform .2s;color:var(--encre)}
.onglet strong{display:block;font-family:var(--titre);font-size:1.15rem}
.onglet span{font-size:.93rem;color:#4b5a50}
.onglet:hover{transform:translateX(4px)}
.onglet[aria-selected="true"]{border-color:var(--vert)}
.vitrine .scene::before{content:"";position:absolute;width:min(380px,90%);aspect-ratio:1;border-radius:50%;background:var(--vert-pale)}
.famille .phone{transform:rotate(-3deg);animation:none}
.contact-grille{display:grid;grid-template-columns:1fr 1.2fr;gap:3rem;align-items:start}
.formulaire{background:#fff;border-radius:18px;padding:2rem;box-shadow:var(--ombre);display:grid;gap:1rem}
.formulaire label{font-weight:500;font-size:.95rem;display:grid;gap:.3rem}
.formulaire input,.formulaire textarea{font:inherit;padding:.75rem 1rem;border:1.5px solid #d8d3c4;border-radius:12px;background:var(--ecru)}
.formulaire textarea{min-height:140px;resize:vertical}
.bouton{font:inherit;font-weight:700;background:var(--vert-fonce);color:#fff;border:0;border-radius:12px;padding:.85rem 1.6rem;cursor:pointer;transition:transform .2s,background .2s}
.bouton:hover{background:#09561f;transform:translateY(-2px)}
.piege{position:absolute;left:-9999px}
nav a[aria-current="page"]{color:var(--vert-fonce);font-weight:700}
@media(max-width:1000px) and (min-width:821px){nav ul{gap:1rem}nav a{font-size:.88rem}}
@media(max-width:820px){.vitrine,.contact-grille{grid-template-columns:1fr}.vitrine .scene{order:-1}}
@media(max-width:480px){.store{width:100%;justify-content:center}.hero .stores,.final .stores{flex-direction:column}}

.final .stores,.centre .stores{justify-content:center}
.final .intro{margin-inline:auto}

/* ===== v3 : pages internes ===== */
.entete{background:var(--vert);padding:3.2rem 0 2.8rem}
.entete h1{color:#fff;font-size:clamp(1.9rem,4.8vw,2.9rem);max-width:820px;margin-inline:auto}
.entete p{color:#f2f7f3;max-width:640px;margin:1rem auto 0}
.legal{max-width:760px}
.legal h2{font-size:1.5rem;margin:2.2rem 0 .7rem}.legal h3{font-size:1.15rem;margin:1.5rem 0 .4rem}
.legal p,.legal ul{margin-bottom:1rem}.legal ul{padding-left:1.3rem}.legal li{margin-bottom:.3rem}
.legal hr{border:0;border-top:1px solid #ddd8c9;margin:2.5rem 0}
.histoire p{font-size:1.08rem}
.faq-liste{max-width:800px}
details.faq{background:#fff;border-radius:16px;box-shadow:var(--ombre);margin-bottom:.8rem}
details.faq summary{cursor:pointer;padding:1.1rem 3rem 1.1rem 1.3rem;font-family:var(--titre);font-weight:600;font-size:1.08rem;list-style:none;position:relative}
details.faq summary::-webkit-details-marker{display:none}
details.faq summary::after{content:"+";position:absolute;right:1.3rem;top:50%;transform:translateY(-50%);font-size:1.5rem;color:var(--vert)}
details.faq[open] summary::after{content:"–"}
details.faq>div{padding:0 1.3rem 1.2rem;color:#3d4c42}
details.faq p,details.faq ul{margin-bottom:.8rem}details.faq ul{padding-left:1.2rem}
.temoignages{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.2rem;margin-top:2rem}
.temoignages blockquote p{font-size:.98rem;color:#33423a}
.temoignages footer{background:none;padding:0;margin-top:.8rem;font-weight:700;font-size:.9rem;color:var(--vert-fonce)}
.bloc{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center;padding:2.5rem 0}
.bloc:nth-child(even) .scene{order:2}
.bloc .num{display:inline-grid;place-items:center;width:2.6rem;height:2.6rem;border-radius:50%;background:var(--jaune);font-family:var(--titre);font-weight:700;margin-bottom:.8rem}
.lien-blanc{color:#fff;font-weight:700}
.liens-pied a{text-decoration:none}.liens-pied a:hover{text-decoration:underline}
@media(max-width:1000px){.menu-btn{display:block}nav ul{display:none;position:absolute;top:68px;left:0;right:0;flex-direction:column;background:var(--ecru);padding:1rem 4%;gap:1rem;border-bottom:1px solid #e6e1d4}nav ul.ouvert{display:flex}}
@media(max-width:820px){.bloc{grid-template-columns:1fr;gap:1.5rem}.bloc:nth-child(even) .scene{order:0}}
