/* ============================================================
   LifeTrusty — Typographie centralisée (échelle normalisée)
   Police unique : Poppins (corps, titres, menus, boutons, footer)
   Toutes les tailles en rem + clamp() (aucune valeur fixe > cible)
   Cibles (standards lisibilité web) :
     corps / paragraphes      : 16px (1rem)
     contenu articles         : 17px (1.0625rem)
     H1 : 32–40px | H2 : 24–28px | H3 : 20–22px | H4-H6 : 16–18px
     nav : 14–16px | footer : 13–14px | boutons/CTA : 14–16px
   ============================================================ */

:root {
  --lt-body: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;
  --lt-mono: 'IBM Plex Mono', monospace;
  --fs-base: 1rem;            /* 16px */
  --fs-article: 1.0625rem;    /* 17px */
  --lh-body: 1.65;
  --lh-head: 1.25;
}

/* --- Racine : jamais scaler au-dessus de 16px (1rem) --- */
html { font-size: 100% !important; -webkit-text-size-adjust: 100%; }

/* --- Corps --- */
body,
body p, body li, body td, body dd, body dt, body blockquote,
body .entry-content, body .ast-single-post {
  font-family: var(--lt-body) !important;
  font-size: var(--fs-base) !important;
  line-height: var(--lh-body) !important;
  -webkit-font-smoothing: antialiased;
}

/* --- Police cohérente sur les éléments de thème (Astra) --- */
.site-title, .site-description,
.main-header-menu, .ast-nav-menu, .menu-item, .sub-menu, .ast-mobile-menu,
button, .button, input, select, textarea,
.site-footer, .astra-footer, .footer-widget-area, .widget-title,
.entry-title, .entry-content, .ast-single-post, .comment-body,
.ast-archive-entry-title {
  font-family: var(--lt-body) !important;
}

/* --- Titres (échelle rem, jamais au-dessus des cibles) --- */
h1, .lt-h1 {
  font-family: var(--lt-body) !important;
  font-size: clamp(2rem, 5vw, 2.5rem) !important;   /* 32–40px */
  line-height: 1.2 !important;
  margin: 0 0 .4em !important;
}
h2 {
  font-family: var(--lt-body) !important;
  font-size: clamp(1.5rem, 3.5vw, 1.75rem) !important; /* 24–28px */
  line-height: 1.25 !important;
  margin: 1.6em 0 .6em !important;
}
h3 {
  font-family: var(--lt-body) !important;
  font-size: clamp(1.25rem, 3vw, 1.375rem) !important;/* 20–22px */
  line-height: 1.3 !important;
  margin: 1.4em 0 .5em !important;
}
h4 {
  font-family: var(--lt-body) !important;
  font-size: 1.125rem !important;                  /* 18px */
  line-height: 1.3 !important;
  margin: 1.2em 0 .5em !important;
}
h5, h6 {
  font-family: var(--lt-body) !important;
  font-size: 1rem !important;                      /* 16px */
  line-height: 1.3 !important;
  margin: 1.1em 0 .5em !important;
}

/* --- Navigation : 14–16px --- */
.main-header-menu, .ast-nav-menu, .menu-item, .sub-menu,
.ast-mobile-menu, .ast-header-break-point .main-header-menu {
  font-size: clamp(0.875rem, 1.2vw, 1rem) !important;
}

/* --- Boutons / CTA : 14–16px --- */
button, .button, input[type="submit"], .elementor-button,
.lt-cta, .lt-lead button, .lt-calc button {
  font-family: var(--lt-body) !important;
  font-size: 0.9375rem !important;                /* 15px */
}

/* --- Contenu d'article (17px, jamais < 16px) --- */
.single .entry-content,
.single .entry-content p,
.single .entry-content li,
.single .entry-content blockquote {
  font-size: var(--fs-article) !important;
  line-height: var(--lh-body) !important;
  margin-bottom: 1.1em !important;
}
.single .entry-content h2 {
  font-size: clamp(1.5rem, 3.5vw, 1.75rem) !important;
  line-height: 1.25 !important; margin: 1.8em 0 .6em !important; font-weight: 600 !important;
}
.single .entry-content h3 {
  font-size: clamp(1.25rem, 3vw, 1.375rem) !important;
  line-height: 1.3 !important; margin: 1.5em 0 .5em !important; font-weight: 600 !important;
}
.single .entry-content h4 {
  font-size: 1.125rem !important; line-height: 1.3 !important;
}
.single .entry-content blockquote {
  font-size: 1.125rem !important; line-height: 1.7 !important;
}
.single .entry-title,
.ast-single-post .entry-title,
.single h1.entry-title {
  font-size: clamp(2rem, 5vw, 2.5rem) !important; /* 32–40px */
  line-height: 1.2 !important; margin-bottom: .3em !important;
}

/* --- Hero (accueil) --- */
.lt-h1 { font-size: clamp(1.75rem, 5vw, 2.5rem) !important; line-height: 1.15 !important; } /* 28–40px */
.lt-desc { font-size: 1.0625rem !important; line-height: 1.6 !important; }                   /* 17px */
.lt-badge, .lt-trust-item, .lt-cat-tag { font-size: .8125rem !important; }                  /* 13px */
.lt-stat-num { font-size: clamp(1.25rem, 3vw, 1.625rem) !important; }                        /* 20–26px */
.lt-stat-lbl { font-size: .75rem !important; }                                               /* 12px */
.lt-disclaimer { font-size: .8125rem !important; }                                           /* 13px */

/* --- Cartes (accueil / catégories) --- */
.lt-cards-title { font-size: clamp(1.5rem, 3.5vw, 1.75rem) !important; line-height: 1.2 !important; } /* 24–28px */
.lt-card-title { font-size: 1.125rem !important; line-height: 1.35 !important; }                        /* 18px */
.lt-card-ex { font-size: 1rem !important; line-height: 1.6 !important; }                                /* 16px */
.lt-cat { font-size: .75rem !important; }                                                         /* tag */

/* --- Lead / CTA "Get Your Free Plan" --- */
.lt-lead h3 { font-size: 1.125rem !important; line-height: 1.3 !important; }   /* 18px */
.lt-lead p { font-size: .9375rem !important; line-height: 1.6 !important; }    /* 15px */
.lt-lead input, .lt-lead select { font-size: .9375rem !important; }            /* 15px */
.lt-lead-note { font-size: .75rem !important; }                                 /* 12px */

/* --- Quote --- */
.lt-quote-text { font-size: 1.25rem !important; line-height: 1.5 !important; } /* 20px */
.lt-quote-foot { font-size: .75rem !important; }

/* --- Sidebar widgets --- */
.lt-widget-title { font-size: 1rem !important; }                 /* 16px */
.lt-mini-title { font-size: .9375rem !important; line-height: 1.4 !important; } /* 15px */
.lt-mini-date { font-size: .8125rem !important; }               /* 13px */

/* --- Calorie & Macro Calculator (override inline font-sizes) --- */
.lt-calc,
.lt-calc label,
.lt-calc select,
.lt-calc input,
.lt-calc button,
.lt-calc [data-lt="out"],
.lt-calc p {
  font-family: var(--lt-body) !important;
  font-size: .9375rem !important;   /* 15px (champs, libellés, résultat) */
  line-height: 1.5 !important;
}

/* --- Footer + mentions légales : 13–14px --- */
.site-footer, .custom-site-footer, .footer-text, .footer-column,
.footer-column a, .footer-bottom, .footer-widget-area, .astra-footer {
  font-size: .8125rem !important; line-height: 1.6 !important;
}
.footer-column .widget-title { font-size: .875rem !important; }  /* 14px */

/* --- Mobile : corps jamais < 16px, titres réduits --- */
@media (max-width: 768px) {
  html { font-size: 100% !important; }
  body, body p, body li { font-size: 1rem !important; line-height: 1.65 !important; }
  h1, .lt-h1 { font-size: clamp(1.75rem, 8vw, 2rem) !important; }     /* 28–32px */
  h2 { font-size: clamp(1.375rem, 6vw, 1.625rem) !important; }        /* 22–26px */
  .lt-desc { font-size: 1rem !important; }
  .single .entry-content,
  .single .entry-content p,
  .single .entry-content li { font-size: 1rem !important; line-height: 1.65 !important; }
  .lt-calc, .lt-calc label, .lt-calc select, .lt-calc input, .lt-calc button { font-size: .9375rem !important; }
}

/* ============================================================
   LifeTrusty — Key Takeaways + Sources boxes
   ============================================================ */
.lt-key-takeaways,
.lt-sources {
  margin: 1.6rem 0;
  padding: 1.1rem 1.3rem;
  border-left: 4px solid #183ad6;
  background: #f4f7ff;
  border-radius: 0 8px 8px 0;
}
.lt-key-takeaways .lt-kt-title,
.lt-sources .lt-src-title {
  margin: 0 0 .6rem;
  font-weight: 700;
  color: #10204a;
}
.lt-key-takeaways ul,
.lt-sources ul { margin: 0; padding-left: 1.2rem; }
.lt-key-takeaways li,
.lt-sources li { margin: .35rem 0; }
.lt-sources a { color: #183ad6; text-decoration: underline; }

/* Reading time badge */
.lt-read-time {
  display: inline-block;
  margin: 0 0 1rem;
  padding: .25rem .7rem;
  font-size: .8rem;
  font-weight: 600;
  color: #10204a;
  background: #eaf0ff;
  border-radius: 999px;
}

/* Accessibility: darken borderline muted text (#5c7570 ~4.49:1 -> #3f5650 ~7:1) so it passes WCAG AA */
[style*="color:#5c7570"]{color:#3f5650 !important;}
[style*="color: #5c7570"]{color:#3f5650 !important;}
