/**
 * Typographie lisible — accessibilité (yeux fatigués, basse vision)
 * Charge en dernier dans header.php pour primer sur les styles inline.
 */
:root {
  --font-lead: 1.7rem;
  --font-lead-md: 1.6rem;
  --font-card-title: 1.45rem;
  --font-card-body: 1.35rem;
  --font-ui-md: 1.4rem;
  --a11y-body: 1.6rem;
  --a11y-label: 1.4rem;
  --a11y-input: 1.4rem;
  --a11y-btn: 1.45rem;
  --a11y-meta: 1.3rem;
  --a11y-min: 1.25rem;
}

/* —— Contenu principal —— */
main {
  font-size: var(--a11y-body);
  line-height: 1.75;
}

main p {
  font-size: max(1.45rem, 1em) !important;
  line-height: 1.75 !important;
}

main h2 {
  font-size: max(1.75rem, 1em) !important;
  line-height: 1.4 !important;
}

main h3 {
  font-size: max(1.55rem, 1em) !important;
  line-height: 1.45 !important;
}

main h4,
main h5 {
  font-size: max(1.4rem, 1em) !important;
}

main label {
  font-size: var(--a11y-label) !important;
  line-height: 1.5 !important;
}

main input:not([type='checkbox']):not([type='radio']):not([type='hidden']),
main select,
main textarea {
  font-size: var(--a11y-input) !important;
  line-height: 1.5 !important;
  min-height: 2.75rem;
}

main button,
main input[type='submit'],
main input[type='button'],
main .btn,
main a[style*='font-weight:700'][style*='padding'] {
  font-size: var(--a11y-btn) !important;
}

main li {
  font-size: max(1.4rem, 1em) !important;
  line-height: 1.7 !important;
}

main td,
main th {
  font-size: 1.4rem !important;
}

/* Surcharge des tailles inline trop petites (< 1.2rem) */
main [style*='font-size:0.65rem'],
main [style*='font-size:0.7rem'],
main [style*='font-size:0.75rem'],
main [style*='font-size:0.78rem'],
main [style*='font-size:0.8rem'],
main [style*='font-size:0.82rem'],
main [style*='font-size:0.83rem'],
main [style*='font-size:0.85rem'],
main [style*='font-size:0.87rem'],
main [style*='font-size:0.88rem'],
main [style*='font-size:0.9rem'],
main [style*='font-size:0.92rem'],
main [style*='font-size:0.95rem'],
main [style*='font-size:1rem'] {
  font-size: var(--a11y-meta) !important;
  line-height: 1.6 !important;
}

main [style*='font-size:1.05rem'] {
  font-size: 1.45rem !important;
  line-height: 1.65 !important;
}

/* —— Bannières de page —— */
.page-hero h1,
.page-hero .page-hero-title {
  font-size: clamp(2.6rem, 5vw, 3.4rem) !important;
  font-weight: 800;
  font-family: 'Outfit', sans-serif;
  margin-bottom: 12px;
}

.page-hero .page-hero-lead,
.page-hero > p.page-hero-lead,
.page-hero-lead {
  font-size: var(--font-lead) !important;
  line-height: 1.75 !important;
  opacity: 0.92;
  max-width: 720px;
  margin: 0 auto;
}

.page-hero .page-hero-lead--wide {
  max-width: 800px;
  text-align: justify;
}

/* —— Accueil —— */
.section-subtitle {
  font-size: 1.85rem !important;
}

.section-subtitle span {
  font-size: inherit !important;
}

.h2.section-title {
  font-size: clamp(2.1rem, 4.5vw, 3.2rem) !important;
}

body.page-home .hero-text {
  font-size: 1.7rem !important;
  line-height: 1.75 !important;
}

body.page-home .home-section-intro,
body.page-home .home-article-excerpt,
body.page-home .home-article-modal-content {
  font-size: 1.45rem !important;
  line-height: 1.7 !important;
}

body.page-home .home-article-title {
  font-size: 1.5rem !important;
}

body.page-home .home-article-read,
body.page-home .home-article-date {
  font-size: 1.25rem !important;
}

/* —— FAQ, cartes, stats —— */
.faq-toggle {
  font-size: var(--font-ui-md) !important;
}

.faq-answer p,
main .faq-answer p {
  font-size: 1.4rem !important;
}

.text-card-title {
  font-size: var(--font-card-title) !important;
  line-height: 1.45 !important;
}

.text-card-desc,
.text-card-body {
  font-size: var(--font-card-body) !important;
  line-height: 1.7 !important;
}

.text-stat-label,
.page-stats-label {
  font-size: 1.3rem !important;
}

/* —— Partenaires —— */
.partner-name {
  font-size: 1.15rem !important;
}

.partner-role {
  font-size: 1.05rem !important;
}

.partner-location {
  font-size: 1.05rem !important;
}

.partners-locations-title {
  font-size: 1.45rem !important;
}

.partners-locations-place {
  font-size: 1.3rem !important;
}

.partners-locations-names {
  font-size: 1.25rem !important;
}

/* —— Mission / vision —— */
.page-content p,
.page-content .text-body {
  font-size: var(--font-lead-md) !important;
  line-height: 1.85 !important;
}

.page-content h3 {
  font-size: 1.55rem !important;
}

/* —— Navigation —— */
.nav-links a {
  font-size: 1.4rem !important;
}

.dropdown-menu li a,
.profile-dropdown-content a {
  font-size: 1.35rem !important;
}

.btn-donate,
.btn-volunteer {
  font-size: 1.35rem !important;
}

.profile-dropdown-content .user-name {
  font-size: 1.3rem !important;
}

.flash-msg {
  font-size: 1.3rem !important;
  line-height: 1.55 !important;
}

/* —— Pied de page —— */
.site-footer {
  font-size: 1.3rem !important;
}

.site-footer h3 {
  font-size: 1.7rem !important;
}

.site-footer h4 {
  font-size: 1.4rem !important;
}

.site-footer p,
.site-footer__tagline {
  font-size: 1.3rem !important;
  line-height: 1.6 !important;
}

.site-footer__links a {
  font-size: 1.3rem !important;
}

.site-footer__newsletter-form input,
.site-footer__form input,
.site-footer__form textarea {
  font-size: 1.35rem !important;
}

.site-footer__btn {
  font-size: 1.35rem !important;
}

.site-footer__bottom,
.site-footer__bottom p {
  font-size: 1.25rem !important;
}

/* —— Pages login / inscription (sans <main>) —— */
.auth-page label,
.login-box label,
.register-box label {
  font-size: var(--a11y-label) !important;
}

.auth-page input,
.auth-page textarea,
.auth-page select,
.login-box input,
.register-box input {
  font-size: var(--a11y-input) !important;
}

.auth-page button,
.login-box button,
.register-box button {
  font-size: var(--a11y-btn) !important;
}

/* —— Fiches CSS annexes —— */
.service-card p,
.project-card p,
.volunteer-form label,
.volunteer-form input,
.volunteer-form textarea,
.volunteer-form button,
.event-card p,
.article-card p {
  font-size: max(1.35rem, 1em) !important;
}

@media (max-width: 768px) {
  :root {
    --font-lead: 1.55rem;
    --a11y-body: 1.5rem;
    --a11y-meta: 1.25rem;
  }

  main p {
    font-size: max(1.4rem, 1em) !important;
  }
}
