/* =========================================================
   FOOTVALUE PUBLIC TYPOGRAPHY — FINAL V1
   Chargé après les CSS propres à chaque page publique.
   Objectif : une échelle commune sans modifier les contenus.
   ========================================================= */

:root{
  --fv-type-h1:clamp(50px,5.15vw,68px);
  --fv-type-h2:clamp(36px,3.45vw,44px);
  --fv-type-h3:clamp(21px,1.9vw,25px);

  --fv-type-lead:17px;
  --fv-type-body:16px;
  --fv-type-card:15px;
  --fv-type-small:13px;
  --fv-type-kicker:11px;

  --fv-type-kpi:clamp(40px,4vw,48px);
  --fv-type-kpi-compact:clamp(30px,3vw,38px);

  --fv-type-lh-hero:.96;
  --fv-type-lh-title:1.04;
  --fv-type-lh-lead:1.66;
  --fv-type-lh-body:1.62;

  --fv-type-copy-max:700px;
  --fv-type-title-max:820px;
}

/* =========================================================
   H1 — même présence sur toutes les pages publiques
   ========================================================= */

body.public-page :where(
  .fv-home-hero,
  .method-hero,
  .fv-vp-hero,
  .fv-clv-hero,
  .tr-hero,
  .faq-hero,
  .pricing-hero
) h1{
  max-width:780px!important;
  margin-top:26px!important;
  margin-bottom:22px!important;
  font-size:var(--fv-type-h1)!important;
  line-height:var(--fv-type-lh-hero)!important;
  letter-spacing:-.058em!important;
}

body.public-page :where(
  .fv-home-hero,
  .method-hero,
  .fv-vp-hero,
  .fv-clv-hero,
  .tr-hero,
  .faq-hero,
  .pricing-hero
) h1 em{
  font-size:1em!important;
  line-height:inherit!important;
  letter-spacing:-.04em!important;
}

/* =========================================================
   H2 — hiérarchie moins massive et plus régulière
   ========================================================= */

body.public-page :where(
  .fv-home section,
  .method-section-head,
  .method-copy-block,
  .fv-vp-track-head,
  .fv-vp-section-head,
  .fv-clv-section-head,
  .fv-clv-copy-block,
  .tr-section-head,
  .faq-main-intro,
  .faq-paths-head,
  .pricing-section-head,
  .pricing-faq-intro,
  .pricing-final-copy
) h2{
  max-width:var(--fv-type-title-max)!important;
  margin-top:18px!important;
  margin-bottom:14px!important;
  font-size:var(--fv-type-h2)!important;
  line-height:var(--fv-type-lh-title)!important;
  letter-spacing:-.048em!important;
}

/* Certains H2 vivent dans des cartes finales : même échelle, largeur libre. */
body.public-page :where(
  .fv-manifest-copy,
  .fv-manifest-action,
  .method-final-stage,
  .fv-vp-cta,
  .fv-clv-final,
  .tr-responsible-card
) h2{
  font-size:var(--fv-type-h2)!important;
  line-height:var(--fv-type-lh-title)!important;
  letter-spacing:-.048em!important;
}

/* =========================================================
   H3 — titres de cartes et sous-sections
   ========================================================= */

body.public-page :where(
  .fv-home,
  .method-page,
  .fv-vp-pro,
  .fv-clv,
  .tr-page,
  .faq-page,
  .pricing-v5
) h3{
  font-size:var(--fv-type-h3)!important;
  line-height:1.12!important;
  letter-spacing:-.03em!important;
}

/* Les petits titres fonctionnels restent volontairement plus compacts. */
body.public-page :where(
  .method-terminal,
  .fv-vp-proof-console,
  .fv-vp-history-register,
  .fv-clv-terminal,
  .pricing-offer
) h3{
  font-size:22px!important;
}

/* =========================================================
   Introductions — 17 px partout
   ========================================================= */

body.public-page :where(
  .fv-home-lead,
  .method-lead,
  .fv-vp-hero-lead,
  .fv-clv-lead,
  .tr-lead,
  .faq-lead,
  .pricing-lead,
  .fv-section-intro > p,
  .fv-proof-heading > div > p,
  .method-section-head > p,
  .method-copy-block > p,
  .fv-vp-track-head p,
  .fv-vp-section-head > p,
  .fv-clv-section-head > p,
  .tr-section-head > p,
  .faq-main-intro > div > p,
  .pricing-section-head > p
){
  max-width:var(--fv-type-copy-max)!important;
  font-size:var(--fv-type-lead)!important;
  line-height:var(--fv-type-lh-lead)!important;
}

/* =========================================================
   Texte courant et texte de cartes
   ========================================================= */

body.public-page :where(
  .fv-home,
  .method-page,
  .fv-vp-pro,
  .fv-clv,
  .tr-page,
  .faq-page,
  .pricing-v5
) :where(
  .section-copy,
  .content-copy,
  .body-copy
){
  font-size:var(--fv-type-body)!important;
  line-height:var(--fv-type-lh-body)!important;
}

body.public-page :where(
  .fv-process article,
  .fv-principles-grid article,
  .method-pipeline-step,
  .method-risk-card,
  .fv-vp-panel,
  .fv-vp-chart-card,
  .fv-vp-league-card-v9,
  .fv-clv-card,
  .tr-refusal-grid article,
  .tr-limits-list article,
  .tr-verification-grid a,
  .faq-item,
  .faq-path-grid a,
  .pricing-feature-card,
  .pricing-faq-list details
) p{
  font-size:var(--fv-type-card)!important;
  line-height:1.6!important;
}

/* =========================================================
   Kicker / eyebrow — identité conservée
   ========================================================= */

body.public-page :where(
  .fv-section-kicker,
  .fv-eyebrow,
  .fv-vp-eyebrow,
  .fv-vp-kicker,
  .method-eyebrow,
  .method-kicker,
  .method-chapter span,
  .tr-kicker,
  .tr-section-kicker,
  .faq-eyebrow,
  .pricing-eyebrow
){
  font-size:var(--fv-type-kicker)!important;
}

/* =========================================================
   KPI — légèrement renforcés
   ========================================================= */

body.public-page :where(
  .fv-proof-grid article,
  .fv-vp-kpi,
  .fv-vp-proof-primary,
  .fv-clv-live-grid article,
  .method-hero-stats article,
  .pricing-trial-price,
  .pricing-monthly-price
) > strong,
body.public-page :where(
  .fv-proof-grid article,
  .fv-vp-kpi,
  .fv-clv-live-grid article,
  .method-hero-stats article
) strong{
  font-weight:950!important;
}

body.public-page :where(
  .fv-proof-grid article,
  .fv-vp-kpi,
  .fv-clv-live-grid article
) > strong{
  font-size:var(--fv-type-kpi)!important;
  line-height:.96!important;
  letter-spacing:-.055em!important;
}

body.public-page .method-hero-stats article > strong{
  font-size:var(--fv-type-kpi-compact)!important;
}

body.public-page :where(
  .pricing-trial-price,
  .pricing-monthly-price
) > strong{
  font-size:clamp(50px,5vw,64px)!important;
  line-height:.92!important;
  letter-spacing:-.06em!important;
}

/* =========================================================
   Espacements éditoriaux communs
   ========================================================= */

body.public-page :where(
  .fv-section-intro,
  .method-section-head,
  .fv-vp-section-head,
  .fv-clv-section-head,
  .tr-section-head,
  .pricing-section-head
){
  margin-bottom:38px!important;
}

body.public-page :where(
  .fv-home section,
  .method-section,
  .fv-vp-section,
  .fv-clv-section,
  .tr-section,
  .pricing-section
){
  scroll-margin-top:92px;
}

/* =========================================================
   Tablette
   ========================================================= */

@media(max-width:980px){
  :root{
    --fv-type-h1:clamp(46px,8vw,60px);
    --fv-type-h2:clamp(34px,5.4vw,42px);
    --fv-type-h3:23px;
    --fv-type-kpi:clamp(36px,6vw,44px);
  }
}

/* =========================================================
   Mobile
   ========================================================= */

@media(max-width:640px){
  :root{
    --fv-type-h1:clamp(40px,11.5vw,50px);
    --fv-type-h2:clamp(32px,9vw,38px);
    --fv-type-h3:22px;
    --fv-type-lead:16.5px;
    --fv-type-body:15.5px;
    --fv-type-card:14.5px;
    --fv-type-kpi:38px;
    --fv-type-kpi-compact:31px;
  }

  body.public-page :where(
    .fv-home-hero,
    .method-hero,
    .fv-vp-hero,
    .fv-clv-hero,
    .tr-hero,
    .faq-hero,
    .pricing-hero
  ) h1{
    margin-top:22px!important;
    margin-bottom:18px!important;
  }

  body.public-page :where(
    .fv-section-intro,
    .method-section-head,
    .fv-vp-section-head,
    .fv-clv-section-head,
    .tr-section-head,
    .pricing-section-head
  ){
    margin-bottom:30px!important;
  }
}
