/* Échelle de lecture propre à l’accueil français. */
body { font-size: 1rem; }

.eyebrow, .native-heading .eyebrow, .section-kicker,
.definition-label, .path-copy small { font-size: .8125rem; line-height: 1.5; letter-spacing: .12em; }

.hero-copy > p { font-size: 1.125rem; line-height: 1.75; }
.native-definition p, .section-intro > p, .path-copy p,
.impact-heading > p, .impact-card > p, .location-card p,
.faq-heading p, .faq-list details p, .cta-side p {
  font-size: 1.0625rem;
  line-height: 1.7;
}

.native-heading h2, .section-intro h2, .impact-heading h2,
.ecosystem-heading h2, .faq-heading h2, .cta-panel h2 {
  font-size: clamp(2.25rem, 3.8vw, 4rem);
  line-height: 1.1;
  letter-spacing: -.045em;
}
.location-card h2 { font-size: clamp(2rem, 3.4vw, 3.5rem); line-height: 1.12; }
.path-copy h3, .impact-card h3 { font-size: 1.625rem; line-height: 1.25; }
.path-step { min-height: 250px; padding-block: 22px; }
.path-note { max-width: 100%; font-size: .9375rem; line-height: 1.45; }
.path-note span { min-width: 0; }

.button, .impact-link { font-size: .9375rem; line-height: 1.45; }
.impact-link { max-width: 100%; }
.impact-link span { flex: 0 0 auto; }
.impact-card { row-gap: 8px; }
.impact-index, .partner-number { font-size: .8125rem; }
.viz small, .risk-chips span, .viz .risk-status,
.budget-card > small, .impact-card > strong small { font-size: .875rem; line-height: 1.5; }
.viz small { color: #655d73; }
.partner-cta { font-size: .875rem; letter-spacing: .05em; }
.map-visual small { font-size: .875rem; }

/* Panneau de confiance : les textes restent lisibles à leur taille réelle. */
.strategy-layout { grid-template-columns: .94fr 1.06fr; gap: 56px; }
.strategy-copy h2 { font-size: clamp(2.25rem, 3.6vw, 3.5rem); line-height: 1.1; letter-spacing: -.045em; }
.strategy-copy > p { color: #d1c8e1; font-size: 1.125rem; line-height: 1.75; }
.strategy-copy > a { align-items: center; font-size: 1rem; line-height: 1.5; }
.strategy-copy > a span { flex: 0 0 auto; }
.strategy-console { min-width: 0; padding: 24px; }
.console-head { flex-wrap: wrap; align-items: center; gap: 8px 16px; padding-bottom: 22px; }
.console-head span { font-size: 1.125rem; line-height: 1.4; }
.console-head small { color: #d0b7ff; font-size: .8125rem; line-height: 1.5; letter-spacing: .08em; }
.console-row { grid-template-columns: 40px minmax(0, 1fr) auto; gap: 14px; padding: 20px 16px; }
.console-row i { width: 40px; height: 40px; font-size: .875rem; }
.console-row div { min-width: 0; gap: 5px; }
.console-row b { font-size: 1rem; line-height: 1.4; }
.console-row span { color: #d1c8e1; font-size: .875rem; line-height: 1.5; }
.console-row > strong { padding: 6px 10px; font-size: .75rem; line-height: 1.4; letter-spacing: .03em; }

.faq-list summary { font-size: 1.125rem; line-height: 1.5; }
.faq-list details p { margin-top: 0; }
.footer-inner > p, .footer-inner > div { color: #c9c2d4; font-size: .9375rem; line-height: 1.65; }
.footer-inner > div a { overflow-wrap: anywhere; }
.footer-inner > * { min-width: 0; }
.footer-bottom { color: #b9b0c8; font-size: .875rem; line-height: 1.6; flex-wrap: wrap; }
.brand-copy small { font-size: .625rem; letter-spacing: .18em; }
.footer-brand .brand-copy small { font-size: .6875rem; letter-spacing: .1em; }
.lang-switch { font-size: .875rem; }

@media (min-width: 781px) {
  .main-nav { gap: 18px; }
  .main-nav a, .header-action { font-size: .9375rem; }
}

@media (min-width: 781px) and (max-width: 1100px) {
  .strategy-layout { grid-template-columns: 1fr; gap: 36px; }
  .strategy-copy { max-width: 760px; }
  .strategy-copy > p { max-width: 680px; }
  .strategy-console { width: 100%; }
}

@media (max-width: 780px) {
  .topbar-inner { gap: 12px; }
  .header-tools { gap: 8px; }
  .brand-copy strong { font-size: .8125rem; letter-spacing: .1em; }
  .brand-copy small { font-size: .5625rem; letter-spacing: .08em; }
  .lang-switch { min-width: 36px; padding-inline: 10px; }
  .strategy-layout { grid-template-columns: 1fr; gap: 36px; }
  .path-step { min-height: 0; padding-block: 0 48px; }
  .impact-card { gap: 0; }
  .impact-card > p { align-self: stretch; }
  .footer-brand .brand-copy strong { font-size: .875rem; }
  .footer-brand .brand-copy small { font-size: .6875rem; }
}

@media (max-width: 520px) {
  .hero-copy h1 { font-size: clamp(2.375rem, 9.5vw, 3.125rem); line-height: 1.05; }
  .hero-copy > p, .strategy-copy > p { font-size: 1.0625rem; }
  .native-heading h2, .section-intro h2, .impact-heading h2,
  .strategy-copy h2, .ecosystem-heading h2, .faq-heading h2,
  .cta-panel h2 { font-size: clamp(2rem, 8.5vw, 2.5rem); }
  .location-card h2 { font-size: 2rem; }
  .brand-copy strong { font-size: .75rem; }
  .path-copy h3, .impact-card h3 { font-size: 1.375rem; }
  .path-note { font-size: .875rem; }
  .strategy-console { padding: 18px; }
  .console-row { grid-template-columns: 36px minmax(0, 1fr); gap: 10px 12px; padding: 18px 12px; }
  .console-row i { width: 36px; height: 36px; }
  .console-row > strong { grid-column: 2; justify-self: start; }
  .console-head span { font-size: 1.0625rem; }
  .footer-bottom { gap: 12px; }
}
