/* Base : remise à zéro, typographie, accessibilité. */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--nav-h) + 16px); background: var(--bg); }
body {
  margin: 0; min-height: 100vh; background: var(--bg); color: var(--text);
  font: 400 1.0625rem/1.65 var(--font-ui); text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased;
  overflow-x: clip;
}
img, svg { display: block; max-width: 100%; }
h1, h2, h3, p, ul, ol, dl, dd, figure, blockquote { margin: 0; }
ul, ol { padding: 0; list-style: none; }
a { color: inherit; text-decoration-color: color-mix(in srgb, currentColor 40%, transparent); text-underline-offset: .2em; }
a:hover { text-decoration-color: currentColor; }
button, input { font: inherit; color: inherit; }
button { cursor: pointer; }
[hidden] { display: none !important; }

h1, h2, h3 { font-family: var(--font-voice); font-weight: 560; letter-spacing: -.015em; text-wrap: balance; font-variation-settings: "opsz" 96; }
p { text-wrap: pretty; }

:focus-visible { outline: 2px solid var(--accent-light); outline-offset: 3px; border-radius: 6px; }
::selection { background: color-mix(in srgb, var(--accent) 55%, transparent); color: #fff; }

.sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.skip-link {
  position: fixed; left: 12px; top: -64px; z-index: 100; padding: 12px 18px; border-radius: var(--radius-pill);
  background: var(--text); color: var(--bg); font-weight: 650; text-decoration: none; transition: transform var(--dur) var(--ease);
}
.skip-link:focus { transform: translateY(76px); }

.wrap { width: min(100% - var(--gutter) * 2, var(--page)); margin-inline: auto; }
.section { padding-block: clamp(72px, 11vw, 144px); position: relative; }
.section-title { font-size: clamp(2rem, 5.4vw, 3.5rem); line-height: 1.05; max-width: 18ch; }
.lead { color: var(--text-2); font-size: clamp(1.0625rem, 2vw, 1.25rem); line-height: 1.6; max-width: 52ch; }
