/* ═══════════════════════════════════════════════════════════════════════════
   CoVœur · site vitrine — charte v2 « Jardin secret + mascotte »
   Source de vérité : design_handoff_covoeur_site_v2 (README + banniere-whatsapp.html)
   ═══════════════════════════════════════════════════════════════════════════ */

:root{
  /* Fonds */
  --bg:#F6F1E8; --bg-raised:#FCFAF4; --bg-deep:#E8DFD0;
  /* Encre (prune) */
  --ink:#2A2140; --ink-soft:#5B5470; --ink-mute:#8E88A0;
  /* Bordures */
  --border:#E4DBCB; --border-soft:#EDE5D6;
  /* Sage — primaire */
  --accent:#7FA193; --accent-deep:#5C7E71; --accent-soft:#A7BFB3; --accent-mist:#E4EDE8;
  /* Or — accent secondaire unique */
  --gold:#D4AF37; --gold-deep:#A9862B; --gold-mist:#F3E7C4;
  /* WhatsApp mode nuit */
  --wa-night:#0B141A; --wa-out:#005C4B; --wa-in:#1F2C34; --wa-text:#E8EDEF; --wa-online:#2E9E6E;
  --radius:18px; --radius-sm:12px; --radius-lg:28px;
  --serif:"Fraunces",serif; --serif-italic:"Instrument Serif",serif;
  --sans:"Inter",system-ui,sans-serif; --mono:"JetBrains Mono",monospace;
  --maxw:1200px;
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body.cv-site{
  font-family:var(--sans); color:var(--ink); background:var(--bg);
  font-size:16px; line-height:1.5; -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
body.cv-site::before{ /* texture papier */
  content:""; position:fixed; inset:0; z-index:0; pointer-events:none; opacity:.5;
  background-image:radial-gradient(rgba(42,33,64,.03) 1px, transparent 1px); background-size:5px 5px;
}
.cv-site a{color:var(--accent); text-decoration:none}
.cv-site a:hover{color:var(--accent-deep)}
img{max-width:100%; display:block}
.cv-wrap{max-width:var(--maxw); margin:0 auto; padding:0 40px; position:relative; z-index:1}
section{position:relative; z-index:1}

/* ─── Logo ─────────────────────────────────────────────────────────────── */
.cv-logo{
  display:inline-flex; align-items:baseline; font-family:var(--serif); font-weight:400;
  letter-spacing:-.02em; color:var(--ink); line-height:1; font-size:24px;
}
.cv-logo img{width:.62em; height:.77em; object-fit:contain; transform:translateY(.11em); margin:0 .02em; display:inline}
.cv-logo .oeur{position:relative}
.cv-logo .swash{position:absolute; left:2%; bottom:-.18em; width:1.5em; height:.26em; pointer-events:none}

/* ─── Eyebrow (Inter 600 + pastille or) ───────────────────────────────── */
.cv-eyebrow{
  display:inline-flex; align-items:center; gap:11px; font-family:var(--sans);
  font-size:15px; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
  color:var(--accent-deep);
}
.cv-eyebrow .dot{width:8px; height:8px; border-radius:50%; background:var(--gold); flex:0 0 8px}
.cv-eyebrow.mute{color:var(--ink-mute)}

/* ─── Boutons ─────────────────────────────────────────────────────────── */
.cv-btn{
  display:inline-flex; align-items:center; gap:9px; white-space:nowrap;
  border-radius:999px; cursor:pointer; font-family:var(--sans); font-weight:500;
  border:1px solid transparent; padding:12px 22px; font-size:14px;
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease, color .15s ease;
}
.cv-btn:hover{transform:translateY(-1px)}
.cv-btn svg{width:16px; height:16px; flex:0 0 16px}
.cv-btn--lg{padding:16px 28px; font-size:15px}
.cv-btn--sm{padding:8px 14px; font-size:12.5px}
/* NB : les couleurs de boutons sont préfixées `.cv-site` pour battre en
   spécificité la règle générique `.cv-site a{color:…}` (les boutons sont des <a>). */
.cv-site .cv-btn--primary{background:var(--accent); color:var(--bg-raised); border-color:var(--accent)}
.cv-site .cv-btn--primary:hover{background:var(--accent-deep); color:var(--bg-raised); box-shadow:0 8px 20px -10px var(--accent)}
.cv-site .cv-btn--ghost{background:transparent; color:var(--ink); border-color:var(--border)}
.cv-site .cv-btn--ghost:hover{color:var(--ink); border-color:var(--accent-soft)}
.cv-site .cv-btn--soft{background:var(--accent-mist); color:var(--accent-deep); border-color:var(--accent-soft)}
.cv-site .cv-btn--wa{background:var(--accent); color:#fff; border-color:var(--accent)}
.cv-site .cv-btn--wa:hover{background:var(--accent-deep); color:#fff}

/* ─── Pills ───────────────────────────────────────────────────────────── */
.cv-pill{
  display:inline-flex; align-items:center; gap:6px; padding:6px 12px; border-radius:999px;
  font-family:var(--sans); font-size:11.5px; font-weight:500; letter-spacing:.02em;
  background:var(--accent-mist); color:var(--accent-deep); border:1px solid var(--accent-soft);
}

/* ─── Cards ───────────────────────────────────────────────────────────── */
.cv-card{
  background:var(--bg-raised); border:1px solid var(--border); border-radius:var(--radius);
  transition:border-color .2s ease, transform .2s ease;
}
.cv-card:hover{border-color:var(--accent-soft); transform:translateY(-1px)}

/* ─── Icône en pastille ───────────────────────────────────────────────── */
.cv-icon-badge{
  width:44px; height:44px; border-radius:22px; background:var(--accent-mist); color:var(--accent);
  display:grid; place-items:center; flex:0 0 44px;
}
.cv-icon-badge svg{width:22px; height:22px}

/* ═══ NAV ══════════════════════════════════════════════════════════════ */
.cv-nav{
  position:sticky; top:0; z-index:40; background:rgba(246,241,232,.86);
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  border-bottom:1px solid var(--border-soft);
}
.cv-nav__row{max-width:var(--maxw); margin:0 auto; padding:16px 40px; display:flex; align-items:center; gap:28px}
.cv-nav__links{display:flex; gap:22px; margin-left:8px}
.cv-nav__link{
  font-family:var(--sans); font-size:13.5px; color:var(--ink-soft); font-weight:500;
  padding:6px 0; position:relative;
}
.cv-nav__link:hover{color:var(--accent)}
.cv-nav__link.is-active{color:var(--accent); font-weight:600}
.cv-nav__link.is-active::after{content:""; position:absolute; left:0; right:0; bottom:-2px; height:1px; background:var(--accent)}
.cv-nav__spacer{flex:1}
.cv-nav__login{font-family:var(--sans); font-size:13.5px; color:var(--ink-soft); font-weight:500}
.cv-nav__burger{
  display:none; background:transparent; border:1px solid var(--border); border-radius:999px;
  width:36px; height:36px; place-items:center; cursor:pointer; color:var(--ink);
}
.cv-nav__mobile{display:none; border-top:1px solid var(--border-soft); padding:8px 16px 16px; flex-direction:column; gap:2px}
.cv-nav__mobile a{
  padding:12px 14px; border-radius:var(--radius-sm); font-family:var(--sans); font-size:14px;
  color:var(--ink); font-weight:500;
}
.cv-nav__mobile a.is-active{background:var(--accent-mist); color:var(--accent-deep); font-weight:600}
.cv-nav.is-open .cv-nav__mobile{display:flex}

/* ═══ FOOTER ═══════════════════════════════════════════════════════════ */
.cv-footer{background:var(--bg-deep); color:var(--ink-soft); padding:72px 40px 36px; border-top:1px solid var(--border)}
.cv-footer__grid{max-width:var(--maxw); margin:0 auto; display:grid; grid-template-columns:1.4fr repeat(3,1fr); gap:48px; margin-bottom:56px}
.cv-footer__quote{font-family:var(--serif-italic); font-style:italic; font-size:17px; color:var(--ink-soft); line-height:1.5; max-width:320px; margin-top:14px}
.cv-footer__col h4{font-family:var(--sans); font-size:15px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-mute); margin-bottom:14px}
.cv-footer__col a{display:block; font-family:var(--sans); font-size:13.5px; color:var(--ink); margin-bottom:10px}
.cv-footer__col a:hover{color:var(--accent-deep)}
.cv-footer__bottom{max-width:var(--maxw); margin:0 auto; padding-top:24px; border-top:1px solid var(--border-soft);
  display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px;
  font-family:var(--sans); font-size:11.5px; color:var(--ink-mute)}
.cv-footer__bottom .legal{width:100%; margin-top:6px; color:var(--ink-mute)}

/* ═══ HERO ═════════════════════════════════════════════════════════════ */
.cv-hero{padding:80px 40px 96px; overflow:hidden}
.cv-hero__grid{max-width:var(--maxw); margin:0 auto; display:grid; grid-template-columns:1.15fr 1fr; gap:56px; align-items:center}
.cv-h1{font-family:var(--serif); font-weight:400; font-size:72px; line-height:1; letter-spacing:-.025em; color:var(--ink); text-wrap:balance}
.cv-h1 em, .cv-em{font-family:var(--serif-italic); font-style:italic; font-weight:400; color:var(--accent)}
.cv-hero__lede{margin-top:24px; font-size:18px; line-height:1.55; color:var(--ink-soft); max-width:480px}
.cv-hero__cta{margin-top:32px; display:flex; flex-wrap:wrap; gap:12px}
.cv-hero__meta{margin-top:28px; display:flex; flex-wrap:wrap; gap:18px; font-family:var(--mono); font-size:11px; color:var(--ink-mute); letter-spacing:.1em; text-transform:uppercase}
.cv-hero__meta span{display:inline-flex; align-items:center; gap:6px}
.cv-hero__meta svg{width:13px; height:13px}

/* Hero scene (mascotte card + bulles nuit) */
.cv-scene{position:relative; aspect-ratio:1/1.05; max-width:520px; margin-left:auto; width:100%}
.cv-scene__halo{position:absolute; inset:-4%; background:radial-gradient(closest-side, var(--gold-mist), transparent 72%); opacity:.6; border-radius:50%}
.cv-scene__card{position:absolute; top:0; left:4%; width:64%; aspect-ratio:.79/1; border-radius:var(--radius-lg); overflow:hidden;
  border:1px solid var(--border); box-shadow:0 30px 70px -30px rgba(127,161,147,.5), 0 4px 14px -6px rgba(42,33,64,.12); transform:rotate(-2.5deg)}
.cv-scene__card img{width:100%; height:100%; object-fit:cover; object-position:50% 12%}
.cv-scene__badge{position:absolute; left:12px; bottom:12px; background:rgba(253,249,239,.92); backdrop-filter:blur(4px);
  border:1px solid var(--border); border-radius:999px; padding:7px 14px; display:flex; align-items:center; gap:8px;
  font-family:var(--mono); font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:var(--accent-deep)}
.cv-scene__badge .live{width:7px; height:7px; border-radius:50%; background:var(--wa-online)}
.cv-scene__chat{position:absolute; right:0; bottom:2%; width:58%; background:var(--wa-night); border:1px solid var(--border);
  border-radius:var(--radius); padding:18px; box-shadow:0 24px 50px -24px rgba(42,33,64,.33); display:flex; flex-direction:column; gap:10px; transform:rotate(2deg)}

/* Conversation nuit (bulles) */
.cv-wa{display:flex; flex-direction:column; gap:10px}
.cv-wa__head{display:flex; align-items:center; gap:10px; padding-bottom:12px; border-bottom:1px solid rgba(232,237,239,.12)}
.cv-wa__head img{width:36px; height:36px; border-radius:18px; object-fit:cover; object-position:50% 15%}
.cv-wa__head .n{font-family:var(--sans); font-size:14px; font-weight:600; color:var(--wa-text)}
.cv-wa__head .s{font-family:var(--sans); font-size:11px; color:rgba(232,237,239,.55)}
.cv-bubble{max-width:85%; padding:9px 13px 16px; border-radius:12px; font-size:13.5px; line-height:1.42; position:relative; color:var(--wa-text)}
.cv-bubble.in{align-self:flex-start; background:var(--wa-in); border-bottom-left-radius:3px}
.cv-bubble.out{align-self:flex-end; background:var(--wa-out); border-bottom-right-radius:3px}
.cv-bubble .t{position:absolute; right:9px; bottom:3px; font-size:9.5px; color:rgba(232,237,239,.55)}
.cv-wa__day{align-self:center; padding:4px 10px; background:rgba(232,237,239,.08); border-radius:8px; font-size:11px; color:rgba(232,237,239,.6)}
.cv-typing{align-self:flex-start; display:flex; gap:4px; padding:8px 12px; background:var(--wa-in); border-radius:14px; border-bottom-left-radius:4px}
.cv-typing span{width:5px; height:5px; border-radius:50%; background:#8696A0; animation:cv-dot 1.2s infinite}
.cv-typing span:nth-child(2){animation-delay:.15s}
.cv-typing span:nth-child(3){animation-delay:.3s}
@keyframes cv-dot{0%,80%,100%{opacity:.3}40%{opacity:1}}

/* ═══ TRUST BAND ═══════════════════════════════════════════════════════ */
.cv-trust{padding:12px 40px; border-top:1px solid var(--border-soft); border-bottom:1px solid var(--border-soft); background:var(--bg-raised)}
.cv-trust__row{max-width:var(--maxw); margin:0 auto; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:18px; padding:20px 0}
.cv-trust__quote{font-family:var(--serif-italic); font-style:italic; font-size:17px; color:var(--ink-soft)}
.cv-trust__press{display:flex; gap:28px; flex-wrap:wrap; font-family:var(--mono); font-size:11px; color:var(--ink-mute); letter-spacing:.14em; text-transform:uppercase}

/* ═══ SECTIONS génériques ══════════════════════════════════════════════ */
.cv-section{padding:120px 40px}
.cv-section--raised{background:var(--bg-raised); border-top:1px solid var(--border-soft); border-bottom:1px solid var(--border-soft)}
.cv-section--deep{background:var(--bg-deep)}
.cv-h2{font-family:var(--serif); font-weight:400; font-size:48px; line-height:1.05; letter-spacing:-.02em; color:var(--ink)}
.cv-h2.sm{font-size:44px; line-height:1.08}

/* Piliers */
.cv-pillars__head{display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:end; margin-bottom:64px}
.cv-pillars__head p{font-size:16px; line-height:1.6; color:var(--ink-soft); max-width:460px}
.cv-pillars__grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px}
.cv-pillar{padding:28px; display:flex; flex-direction:column; gap:14px}
.cv-pillar__title{font-family:var(--serif); font-size:24px; line-height:1.15; color:var(--ink); letter-spacing:-.01em}
.cv-pillar__body{font-size:14.5px; line-height:1.55; color:var(--ink-soft)}

/* Conversation showcase */
.cv-showcase{max-width:var(--maxw); margin:0 auto; display:grid; grid-template-columns:1fr 1.1fr; gap:64px; align-items:center}
.cv-convo{background:var(--wa-night); border-radius:var(--radius-lg); padding:22px; border:1px solid var(--border); box-shadow:0 30px 60px -32px rgba(42,33,64,.4)}
.cv-showcase__lede{margin-top:22px; font-size:16px; line-height:1.6; color:var(--ink-soft); max-width:480px}
.cv-showcase__pills{margin-top:26px; display:flex; flex-wrap:wrap; gap:10px}

/* Moments */
.cv-moments__head{margin-bottom:48px}
.cv-moments__grid{display:grid; grid-template-columns:repeat(2,1fr); gap:22px}
.cv-moment{padding:26px; display:flex; flex-direction:column; gap:14px}
.cv-moment__title{font-family:var(--serif); font-size:22px; line-height:1.15; color:var(--ink); letter-spacing:-.01em}
.cv-moment__body{font-family:var(--serif-italic); font-style:italic; font-size:16px; line-height:1.5; color:var(--ink-soft)}
.cv-moment__cta{margin-top:4px; display:flex; align-items:center; gap:8px; font-family:var(--mono); font-size:10.5px; color:var(--accent); letter-spacing:.18em; text-transform:uppercase}
.cv-moment__cta svg{width:14px; height:14px}

/* Témoignages */
.cv-testi__grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:0}
.cv-testi{padding:28px; display:flex; flex-direction:column; gap:18px}
.cv-testi__quote{font-family:var(--serif-italic); font-style:italic; font-size:20px; line-height:1.4; color:var(--ink)}
.cv-testi__who{font-family:var(--mono); font-size:10.5px; color:var(--ink-mute); letter-spacing:.14em; text-transform:uppercase}

/* CTA strip */
.cv-ctastrip{max-width:1000px; margin:0 auto; background:linear-gradient(160deg, var(--accent-mist), var(--bg-raised) 120%);
  border:1px solid var(--accent-soft); border-radius:var(--radius-lg); display:grid; grid-template-columns:auto 1fr; gap:48px;
  align-items:center; overflow:hidden; padding-right:56px}
.cv-ctastrip__img{width:300px; height:100%; object-fit:cover; object-position:50% 8%; border-right:1px solid var(--accent-soft)}
.cv-ctastrip__body{padding:56px 0}
.cv-ctastrip__body p{margin:20px 0 28px; font-size:15.5px; line-height:1.55; color:var(--ink-soft); max-width:480px}
.cv-ctastrip__actions{display:flex; flex-wrap:wrap; gap:12px}

/* ═══ RESPONSIVE ═══════════════════════════════════════════════════════ */
@media (max-width:768px){
  .cv-wrap, .cv-nav__row, .cv-hero__grid, .cv-trust__row, .cv-footer__grid, .cv-footer__bottom{padding-left:20px; padding-right:20px}
  .cv-nav__links, .cv-nav__login{display:none}
  .cv-nav__burger{display:grid}
  .cv-nav__row{padding:14px 20px; gap:14px}
  .cv-hero{padding:40px 20px 56px}
  .cv-hero__grid{grid-template-columns:1fr; gap:36px}
  .cv-h1{font-size:44px}
  .cv-hero__lede{font-size:16px}
  .cv-section{padding:64px 20px}
  .cv-h2, .cv-h2.sm{font-size:32px; line-height:1.1}
  .cv-pillars__head{grid-template-columns:1fr; gap:32px; margin-bottom:36px}
  .cv-pillars__grid{grid-template-columns:1fr; gap:18px}
  .cv-showcase{grid-template-columns:1fr; gap:36px}
  .cv-moments__grid{grid-template-columns:1fr; gap:16px}
  .cv-testi__grid{grid-template-columns:1fr; gap:16px}
  .cv-trust{padding:20px 20px 8px}
  .cv-footer{padding:48px 24px 28px}
  .cv-footer__grid{grid-template-columns:1fr; gap:36px; margin-bottom:36px}
  .cv-scene{max-width:420px; margin:0 auto; aspect-ratio:1.05/1}
  .cv-ctastrip{grid-template-columns:1fr; padding:32px 24px; text-align:center; gap:24px}
  .cv-ctastrip__img{width:140px; height:140px; border-radius:70px; border:1px solid var(--accent-soft); margin:0 auto; object-position:50% 8%}
  .cv-ctastrip__body{padding:0}
  .cv-ctastrip__actions{justify-content:center}
}

/* ═══════════════════════════════════════════════════════════════════════════
   PAGES INTERNES (Comment ça marche · Tarifs · Partenaires · FAQ)
   ═══════════════════════════════════════════════════════════════════════════ */

/* Hero de page interne (titre + mascotte optionnelle) */
.cv-phero{padding:96px 40px 56px}
.cv-phero__grid{max-width:1080px; margin:0 auto; display:grid; grid-template-columns:1.4fr 1fr; gap:56px; align-items:center}
.cv-phero__lede{margin-top:22px; font-size:18px; line-height:1.55; color:var(--ink-soft); max-width:620px}
.cv-phero__img{width:100%; max-width:300px; aspect-ratio:.8/1; object-fit:cover; object-position:50% 10%;
  border-radius:var(--radius-lg); border:1px solid var(--border); box-shadow:0 24px 60px -30px rgba(127,161,147,.5);
  justify-self:end; transform:rotate(1.5deg)}
/* Vidéo de présentation (Comment ça marche) */
.cv-phero__videowrap{justify-self:end; display:flex; flex-direction:column; align-items:center; gap:10px}
.cv-phero__video{width:100%; max-width:300px; aspect-ratio:9/16; object-fit:cover; background:#000;
  border-radius:var(--radius-lg); border:1px solid var(--border); box-shadow:0 24px 60px -30px rgba(127,161,147,.5);
  transform:rotate(1.5deg); display:block}
.cv-phero__videocap{font-family:var(--mono); font-size:10.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-mute)}
.cv-h1-md{font-family:var(--serif); font-weight:400; font-size:64px; line-height:1.02; letter-spacing:-.025em; color:var(--ink)}
.cv-center{text-align:center; max-width:900px; margin:0 auto}
.cv-center .cv-hero__lede{margin-left:auto; margin-right:auto}

/* Comment — étapes zigzag + encart Extrait */
.cv-steps{max-width:1080px; margin:0 auto; display:flex; flex-direction:column; gap:56px; padding:40px 40px 120px}
.cv-step{display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:start}
.cv-step.rev .cv-step__txt{order:1}
.cv-step__title{font-family:var(--serif); font-weight:400; font-size:38px; line-height:1.1; letter-spacing:-.018em; color:var(--ink)}
.cv-step__body{margin-top:14px; font-size:16px; line-height:1.6; color:var(--ink-soft)}
.cv-step__extract{background:var(--bg-raised); border:1px solid var(--border); border-radius:var(--radius);
  padding:30px; font-family:var(--serif-italic); font-style:italic; font-size:17px; line-height:1.5; color:var(--ink); position:relative}
.cv-step__extract .tag{position:absolute; top:-10px; left:24px; background:var(--bg-raised); padding:2px 10px;
  font-family:var(--sans); font-size:10px; font-weight:600; color:var(--accent-deep); letter-spacing:.14em; text-transform:uppercase;
  border:1px solid var(--border); border-radius:999px}
.cv-interdits{display:grid; grid-template-columns:repeat(3,1fr); gap:22px}
.cv-interdit{padding:26px}
.cv-interdit svg{width:18px; height:18px; color:var(--accent); margin-bottom:14px}
.cv-interdit__title{font-family:var(--serif); font-size:22px; color:var(--ink); letter-spacing:-.01em; margin-bottom:10px}
.cv-interdit__body{font-size:14.5px; line-height:1.55; color:var(--ink-soft)}

/* Tarifs — toggle + plans */
.cv-billing{margin-top:28px; display:inline-flex; padding:4px; background:var(--bg-raised); border:1px solid var(--border); border-radius:999px}
.cv-billing button{background:transparent; color:var(--ink); border:0; padding:10px 22px; border-radius:999px; cursor:pointer;
  font-family:var(--sans); font-size:13.5px; font-weight:500; display:inline-flex; align-items:center; gap:8px; transition:background .15s}
.cv-billing button.is-active{background:var(--accent); color:#fff}
.cv-billing .badge{font-family:var(--mono); font-size:9.5px; padding:2px 6px; border-radius:999px; background:var(--accent-mist);
  color:var(--accent-deep); letter-spacing:.1em}
.cv-billing button.is-active .badge{background:rgba(255,255,255,.18); color:#fff}
.cv-plans{max-width:1180px; margin:0 auto; display:grid; grid-template-columns:repeat(3,1fr); gap:22px; align-items:stretch}
.cv-plan{background:var(--bg-raised); border:1px solid var(--border); border-radius:var(--radius-lg); padding:34px; position:relative}
.cv-plan--featured{background:linear-gradient(165deg, var(--bg-raised), var(--accent-mist)); border-color:var(--accent-soft);
  box-shadow:0 30px 60px -32px rgba(127,161,147,.5)}
.cv-plan__badge{position:absolute; top:-12px; left:50%; transform:translateX(-50%); background:var(--accent); color:#fff;
  padding:6px 14px; border-radius:999px; font-family:var(--sans); font-size:10px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; white-space:nowrap}
.cv-plan__name{font-family:var(--serif); font-size:30px; color:var(--ink); letter-spacing:-.015em; margin-bottom:8px}
.cv-plan__lede{font-family:var(--serif-italic); font-style:italic; font-size:15.5px; color:var(--ink-soft); line-height:1.45; margin-bottom:22px}
.cv-plan__price{display:flex; align-items:baseline; gap:6px; margin-bottom:22px}
.cv-plan__price .amount{font-family:var(--serif); font-size:56px; color:var(--ink); letter-spacing:-.025em; line-height:1}
.cv-plan__price .suffix{font-size:13.5px; color:var(--ink-mute)}
.cv-plan .cv-btn{width:100%; justify-content:center; margin-bottom:24px}
.cv-feat{display:flex; flex-direction:column; gap:12px}
.cv-feat__row{display:flex; gap:10px; align-items:flex-start}
.cv-feat__check{width:18px; height:18px; border-radius:9px; background:var(--accent-mist); color:var(--accent); flex:0 0 18px; margin-top:2px; display:grid; place-items:center}
.cv-feat__check svg{width:10px; height:10px}
.cv-feat__row span{font-size:14px; line-height:1.5; color:var(--ink)}
.cv-solidaire{max-width:980px; margin:0 auto; background:var(--bg-raised); border:1px solid var(--border);
  border-radius:var(--radius-lg); overflow:hidden; display:grid; grid-template-columns:auto 1fr 1fr; gap:40px; align-items:center}
.cv-solidaire__img{width:220px; height:100%; object-fit:cover; object-position:50% 12%; border-right:1px solid var(--border)}
.cv-solidaire__ttl{padding:40px 0}
.cv-solidaire__ttl .h{font-family:var(--serif); font-size:34px; line-height:1.1; color:var(--ink); letter-spacing:-.015em}
.cv-solidaire__body{padding:40px 40px 40px 0}
.cv-solidaire__body p{font-size:15px; line-height:1.6; color:var(--ink-soft)}

/* Partenaires — cards + stats + logos */
.cv-part-cards{max-width:1180px; margin:0 auto; display:grid; grid-template-columns:repeat(3,1fr); gap:22px}
.cv-part-card{padding:28px; display:flex; flex-direction:column; gap:14px}
.cv-part-card__title{font-family:var(--serif); font-size:22px; line-height:1.2; color:var(--ink); letter-spacing:-.01em}
.cv-part-card__body{font-size:14.5px; line-height:1.55; color:var(--ink-soft)}
.cv-part-split{max-width:1100px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center}
.cv-part-split p{margin-top:18px; font-size:15.5px; line-height:1.6; color:var(--ink-soft)}
.cv-stats{background:var(--bg-raised); border:1px solid var(--border); border-radius:var(--radius); padding:32px; display:grid; grid-template-columns:1fr 1fr; gap:20px}
.cv-stat__n{font-family:var(--serif); font-size:40px; color:var(--accent); letter-spacing:-.02em; line-height:1; margin-bottom:8px}
.cv-stat__l{font-family:var(--mono); font-size:10.5px; color:var(--ink-mute); letter-spacing:.14em; text-transform:uppercase; line-height:1.4}
.cv-logos{display:grid; grid-template-columns:repeat(5,1fr); gap:1px; background:var(--border); border:1px solid var(--border); border-radius:var(--radius); overflow:hidden}
.cv-logos > div{background:var(--bg-raised); padding:32px 20px; font-family:var(--serif); font-size:18px; color:var(--ink-soft); text-align:center; letter-spacing:-.01em}

/* FAQ — accordéons */
.cv-faq-wrap{max-width:900px; margin:0 auto; display:flex; flex-direction:column; gap:56px; padding:32px 40px 120px}
.cv-faq-group__title{font-family:var(--serif); font-size:30px; color:var(--ink); letter-spacing:-.015em; margin-bottom:18px}
.cv-faq-list{background:var(--bg-raised); border:1px solid var(--border); border-radius:var(--radius); overflow:hidden}
.cv-faq-item{border-bottom:1px solid var(--border-soft)}
.cv-faq-item:last-child{border-bottom:0}
.cv-faq-q{background:transparent; border:0; width:100%; text-align:left; padding:22px 28px; cursor:pointer;
  display:flex; justify-content:space-between; align-items:center; gap:16px}
.cv-faq-q span{font-family:var(--sans); font-size:16px; font-weight:500; color:var(--ink)}
.cv-faq-q svg{width:16px; height:16px; color:var(--accent); flex:0 0 16px; transition:transform .2s ease}
.cv-faq-item.is-open .cv-faq-q svg{transform:rotate(45deg)}
.cv-faq-a{max-height:0; overflow:hidden; transition:max-height .25s ease}
.cv-faq-item.is-open .cv-faq-a{max-height:1400px}
.cv-faq-a__inner{padding:2px 28px 24px; font-family:var(--sans); font-size:15px; line-height:1.65; color:var(--ink-soft)}
.cv-faq-a__inner p{margin:0}
.cv-faq-a__inner a{font-weight:500}
.cv-faq-cta{max-width:760px; margin:0 auto; background:var(--accent-mist); border:1px solid var(--accent-soft);
  border-radius:var(--radius-lg); padding:40px; text-align:center}
.cv-faq-cta img{width:96px; height:96px; border-radius:48px; object-fit:cover; object-position:50% 8%; border:1px solid var(--accent-soft); margin:0 auto 16px}
.cv-faq-cta .h{font-family:var(--serif); font-size:30px; color:var(--ink); letter-spacing:-.015em; margin-bottom:18px}

@media (max-width:768px){
  .cv-phero{padding:48px 20px 32px}
  .cv-phero__grid{grid-template-columns:1fr; gap:28px}
  .cv-phero__img{display:none}
  .cv-phero__videowrap{justify-self:center}
  .cv-phero__video{max-width:260px; transform:none}
  .cv-h1-md{font-size:40px}
  .cv-steps{padding:12px 20px 80px; gap:28px}
  .cv-step{grid-template-columns:1fr; gap:18px}
  .cv-step.rev .cv-step__txt{order:0}
  .cv-step__title{font-size:28px}
  .cv-interdits{grid-template-columns:1fr; gap:16px}
  .cv-billing{margin-top:20px}
  .cv-plans{grid-template-columns:1fr; gap:16px}
  .cv-solidaire{grid-template-columns:1fr; gap:22px}
  .cv-solidaire__img{display:none}
  .cv-solidaire__ttl{padding:28px 24px 0}
  .cv-solidaire__body{padding:0 24px 28px}
  .cv-part-cards{grid-template-columns:1fr; gap:16px}
  .cv-part-split{grid-template-columns:1fr; gap:28px}
  .cv-logos{grid-template-columns:repeat(2,1fr)}
  .cv-faq-wrap{padding:16px 20px 80px; gap:36px}
  .cv-faq-group__title{font-size:24px}
  .cv-faq-q{padding:20px 22px}
  .cv-faq-a__inner{padding:0 22px 22px}
  .cv-faq-cta{padding:28px}
  .cv-faq-cta .h{font-size:24px}
}

/* Partenaires — cards pros & outils */
.cv-pro__role{font-family:var(--sans); font-size:12px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--accent-deep)}
.cv-pro__name{font-family:var(--serif); font-size:23px; color:var(--ink); letter-spacing:-.01em; line-height:1.2}
.cv-pro__bio{font-size:14px; line-height:1.55; color:var(--ink-soft)}
.cv-pro-tags{display:flex; flex-wrap:wrap; gap:6px}
.cv-pro-tag{font-family:var(--mono); font-size:9.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-mute);
  background:var(--bg); border:1px solid var(--border-soft); border-radius:999px; padding:4px 9px}
.cv-tool__logo{width:56px; height:56px; border-radius:14px; object-fit:cover; border:1px solid var(--border)}
.cv-tool__name{font-family:var(--serif); font-size:22px; color:var(--ink); letter-spacing:-.01em}

/* Encart "Note importante" (persona conflictuelle) */
.cv-note{background:var(--accent-mist); border:1px solid var(--accent-soft); border-radius:var(--radius-sm);
  padding:14px 18px; font-size:14px; line-height:1.55; color:var(--ink-soft); max-width:640px}
.cv-note strong{color:var(--accent-deep)}

/* Grille 2 colonnes (persona : bénéfices, programmes) — passe à 1 col sur mobile.
   NB : classe (pas de style inline) sinon l'inline écrase la règle @media. */
.cv-pillars__grid.is-2{grid-template-columns:repeat(2,1fr)}
@media (max-width:768px){ .cv-pillars__grid.is-2{grid-template-columns:1fr} }

/* Formulaires (contact) */
.cv-form{max-width:560px; margin:0 auto; display:flex; flex-direction:column; gap:18px}
.cv-field label{display:block; font-family:var(--sans); font-size:13px; font-weight:600; color:var(--ink-soft); margin-bottom:6px; letter-spacing:.02em}
.cv-input,.cv-textarea,.cv-select{width:100%; font-family:var(--sans); font-size:15px; color:var(--ink);
  background:var(--bg-raised); border:1px solid var(--border); border-radius:var(--radius-sm); padding:12px 14px; transition:border-color .15s}
.cv-input:focus,.cv-textarea:focus,.cv-select:focus{outline:none; border-color:var(--accent)}
.cv-textarea{min-height:150px; resize:vertical}
.cv-select{appearance:auto}
.cv-status{display:none; padding:12px 16px; border-radius:var(--radius-sm); font-size:14px; line-height:1.5}
.cv-status.ok{display:block; background:var(--accent-mist); color:var(--accent-deep); border:1px solid var(--accent-soft)}
.cv-status.err{display:block; background:#F7E3DC; color:#B5705F; border:1px solid #E9C9BD}

/* vs-ChatGPT */
.cv-vs-card{padding:24px; display:flex; flex-direction:column; gap:12px}
.cv-vs-card__title{font-family:var(--serif); font-size:21px; color:var(--ink); letter-spacing:-.01em; line-height:1.2}
.cv-vs-card__body{font-size:14.5px; line-height:1.55; color:var(--ink-soft)}
.cv-vs-quote{font-size:13px; font-style:italic; color:var(--ink-mute); background:var(--bg); border:1px solid var(--border-soft);
  border-radius:12px; border-bottom-left-radius:3px; padding:10px 13px; line-height:1.45}
.cv-vs-tag{align-self:flex-start; font-family:var(--mono); font-size:9.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-deep)}
.cv-vs-tag--ok{color:var(--accent-deep)}
.cv-logos-row{display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin-top:20px; font-family:var(--serif); font-size:17px; color:var(--ink-mute)}
.cv-logos-row .vs{font-family:var(--mono); font-size:11px; letter-spacing:.14em; color:var(--ink-mute); text-transform:uppercase}
.cv-logos-row .cv{color:var(--accent-deep); font-weight:500}
/* Tableau comparatif */
.cv-table-wrap{overflow-x:auto; max-width:var(--maxw); margin:0 auto; border:1px solid var(--border); border-radius:var(--radius); background:var(--bg-raised)}
.cv-table{width:100%; border-collapse:collapse; min-width:680px; font-family:var(--sans)}
.cv-table th,.cv-table td{padding:12px 16px; text-align:left; border-bottom:1px solid var(--border-soft); font-size:13.5px; vertical-align:top; line-height:1.4}
.cv-table thead th{font-size:12px; font-weight:600; letter-spacing:.05em; text-transform:uppercase; color:var(--ink-mute); background:var(--bg-deep)}
.cv-table td:first-child,.cv-table th:first-child{font-weight:500; color:var(--ink)}
.cv-table td:last-child,.cv-table th:last-child{background:var(--accent-mist)}
.cv-table tr:last-child td{border-bottom:0}
.cv-sym{font-weight:700; margin-right:6px}
.cv-sym.y{color:var(--accent-deep)} .cv-sym.n{color:var(--ink-mute)} .cv-sym.m{color:var(--gold-deep)}

/* Programmes — catalogue */
.cv-tri{display:grid; grid-template-columns:repeat(3,1fr); gap:22px; max-width:var(--maxw); margin:0 auto}
.cv-tri__item{text-align:center; padding:26px}
.cv-tri__n{font-family:var(--serif); font-size:34px; color:var(--accent-deep); letter-spacing:-.02em}
.cv-tri__l{font-size:14px; color:var(--ink-soft); margin-top:8px; line-height:1.45}
.cv-progfilters{display:flex; flex-wrap:wrap; gap:8px; justify-content:center; margin:0 auto 40px}
.cv-progfilter{font-family:var(--sans); font-size:13.5px; font-weight:500; color:var(--ink-soft); background:var(--bg-raised);
  border:1px solid var(--border); border-radius:999px; padding:9px 18px; cursor:pointer; transition:all .15s}
.cv-progfilter:hover{border-color:var(--accent-soft)}
.cv-progfilter.is-active{background:var(--accent); color:#fff; border-color:var(--accent)}
.cv-progrid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px}
.cv-progcard{padding:28px; display:flex; flex-direction:column}
.cv-progcard.hidden{display:none}
.cv-progcard__icon{font-size:1.7rem; margin-bottom:12px}
.cv-progcard__title{font-family:var(--serif); font-size:20px; color:var(--ink); letter-spacing:-.01em; margin-bottom:8px; line-height:1.2}
.cv-progcard__desc{font-size:14px; line-height:1.55; color:var(--ink-soft)}
.cv-progcard__toggle{background:none; border:0; padding:8px 0; margin-top:8px; font-family:var(--sans); font-size:13px; font-weight:500;
  color:var(--accent-deep); cursor:pointer; text-align:left; display:inline-flex; align-items:center; gap:6px}
.cv-progcard__toggle svg{width:13px; height:13px; transition:transform .2s}
.cv-progcard.is-open .cv-progcard__toggle svg{transform:rotate(90deg)}
.cv-progcard__more{max-height:0; overflow:hidden; transition:max-height .3s ease}
.cv-progcard.is-open .cv-progcard__more{max-height:900px}
.cv-progcard__more h4{font-family:var(--sans); font-size:11.5px; font-weight:600; text-transform:uppercase; letter-spacing:.08em; color:var(--ink-mute); margin:16px 0 8px}
.cv-progcard__more ul{list-style:none; display:flex; flex-direction:column; gap:6px}
.cv-progcard__more li{font-size:13.5px; line-height:1.5; color:var(--ink-soft); padding-left:16px; position:relative}
.cv-progcard__more li::before{content:"—"; position:absolute; left:0; color:var(--accent)}
.cv-progcard__footer{display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:auto; padding-top:18px}
.cv-progtag{font-family:var(--mono); font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:var(--accent-deep);
  background:var(--accent-mist); border:1px solid var(--accent-soft); border-radius:999px; padding:4px 11px}
@media (max-width:768px){ .cv-tri{grid-template-columns:1fr} .cv-progrid{grid-template-columns:1fr} }

/* Pages légales — prose */
.cv-prose{max-width:820px; margin:0 auto; font-size:15.5px; line-height:1.75; color:var(--ink-soft)}
.cv-prose h2{font-family:var(--serif); font-weight:400; font-size:26px; color:var(--ink); letter-spacing:-.01em; margin:38px 0 14px; line-height:1.25}
.cv-prose h3{font-family:var(--sans); font-weight:600; font-size:17px; color:var(--ink); margin:26px 0 10px}
.cv-prose p{margin:0 0 14px}
.cv-prose ul,.cv-prose ol{margin:0 0 16px; padding-left:22px}
.cv-prose li{margin-bottom:8px}
.cv-prose a{color:var(--accent-deep); font-weight:500}
.cv-prose strong{color:var(--ink); font-weight:600}
.cv-prose table{width:100%; border-collapse:collapse; margin:16px 0; font-size:14px; display:block; overflow-x:auto}
.cv-prose th,.cv-prose td{border:1px solid var(--border); padding:8px 12px; text-align:left; vertical-align:top}
.cv-prose th{background:var(--bg-deep); font-weight:600; color:var(--ink)}
.cv-prose hr{border:0; border-top:1px solid var(--border-soft); margin:28px 0}
.cv-prose h1{display:none}

/* Footer — réseaux sociaux */
.cv-footer__social{display:flex; gap:10px; margin-top:18px}
.cv-footer__social a{width:38px; height:38px; border-radius:50%; border:1px solid var(--border);
  display:grid; place-items:center; color:var(--ink-soft); transition:all .15s}
.cv-footer__social a:hover{border-color:var(--accent-soft); color:var(--accent-deep); background:var(--bg-raised)}
/* Partenaires — badge logo outil (dans une card style "pro") */
.cv-tool-badge{width:48px; height:48px; border-radius:12px; object-fit:contain; background:#fff;
  border:1px solid var(--border-soft); padding:7px; margin-bottom:2px}

/* Toggle langue nav */
.cv-nav__lang{font-family:var(--sans); font-size:12.5px; font-weight:500; color:var(--ink-soft);
  border:1px solid var(--border); border-radius:999px; padding:6px 12px; white-space:nowrap; transition:all .15s}
.cv-nav__lang:hover{border-color:var(--accent-soft); color:var(--accent-deep)}
@media (max-width:768px){ .cv-nav__row .cv-nav__lang{display:none} }

/* Pilule langue FR|EN — côté actif en sage */
.cv-langpill{display:inline-flex; border:1px solid var(--border); border-radius:999px; overflow:hidden; background:var(--bg-raised)}
.cv-langpill a{font-family:var(--sans); font-size:12px; font-weight:600; letter-spacing:.04em;
  padding:6px 12px; color:var(--ink-soft); transition:all .15s}
.cv-langpill a:hover{color:var(--accent-deep)}
.cv-langpill a.is-active{background:var(--accent); color:#fff}
.cv-langpill a.is-active:hover{color:#fff}
.cv-langpill--mobile{margin:10px 14px; align-self:flex-start}
@media (max-width:768px){ .cv-nav__row .cv-langpill{display:none} }
