/* Refonte v2 — typographie, lisibilité et composants communs (carrousel). Tout est préfixé .v2 (classe posée sur <html> quand DESIGN=v2).
   Chargé sur toutes les pages de la v2 ; l'accueil ajoute assets/css/v2-home.css. */
.v2 { --muted: #4a4d66; --v2-sand: #ece3d3; --v2-night: #0b0d22; --v2-paper: #faf8f4; }
:root.v2[data-theme="dark"] { --muted: #c0c2d8; --v2-sand: #11143a; --v2-night: #070818; --v2-paper: #0e1030; }
@media (prefers-color-scheme: dark) { :root.v2:not([data-theme="light"]) { --muted: #c0c2d8; --v2-sand: #11143a; --v2-night: #070818; --v2-paper: #0e1030; } }
.v2.a11y-hc { --muted: #2b2d45; }
:root.v2[data-theme="dark"] .v2-trade { --illu-acc: var(--copper-l); }
@media (prefers-color-scheme: dark) { :root.v2:not([data-theme="light"]) .v2-trade { --illu-acc: var(--copper-l); } }
.v2 body { font-size: 1.125rem; line-height: 1.7; }
.v2[dir="rtl"] body { font-size: 1.1875rem; line-height: 1.85; }
.v2 main h2 { font-size: clamp(1.85rem, 1.25rem + 2.3vw, 3rem); letter-spacing: -.025em; text-wrap: balance; }
.v2[dir="rtl"] main h2 { letter-spacing: 0; }
.v2 main h2, .v2 main h3 { overflow-wrap: break-word; hyphens: auto; }
.v2 h3 { text-wrap: balance; }
.v2 .lead { max-width: 60ch; }
.v2 .sec-head p, .v2 .card p { color: var(--muted); }
/* Sections de nuit (frise .method, appel final) : intro claire, contraste ≥ 4,5 */
.v2 .method .sec-head p, .v2 .final .sec-head p, .v2 .v2-t-night .sec-head p { color: rgba(236, 234, 255, .82); }
.v2 .method .sec-head a, .v2 .final .sec-head a { color: #f2c79d; }
.v2 .card p { font-size: 1.02rem; }
.v2 .prose p, .v2 .split p { max-width: 70ch; }

/* Carrousel horizontal accessible : la zone défilante est une région nommée, focalisable (flèches du clavier), avec boutons précédent / suivant */
.v2-car { position: relative; }
.v2-car-vp { overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: none; scroll-padding-inline: 0; border-radius: var(--radius); }
.v2-car-vp::-webkit-scrollbar { display: none; }
.v2-car-vp:focus-visible { outline: 2px solid var(--copper); outline-offset: 4px; }
.v2-car-list { list-style: none; margin: 0; padding: 0 0 .4rem; display: grid; grid-auto-flow: column; grid-auto-columns: var(--car-w, minmax(17rem, calc((100% - 2 * 1.2rem) / 3))); gap: 1.2rem; }
.v2-car-list > li { scroll-snap-align: start; min-width: 0; display: flex; }
.v2-car-list > li > * { flex: 1; min-width: 0; }
.v2-car-nav { position: absolute; inset-block-start: -4.2rem; inset-inline-end: 0; display: flex; gap: .5rem; }
.v2-car-nav[hidden] { display: none; }
.v2-car-b { width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; border: 1px solid var(--line); background: var(--surface); color: var(--text); cursor: pointer; transition: background .2s, border-color .2s, opacity .2s; }
.v2-car-b svg { width: 20px; height: 20px; }
.v2[dir="rtl"] .v2-car-b svg { transform: scaleX(-1); }
.v2-car-b:hover:not(:disabled) { border-color: var(--copper-ink); }
.v2-car-b:disabled { opacity: .35; cursor: default; }
@media (max-width: 700px) {
  .v2-car-vp { margin-inline: -1.25rem; padding-inline: 1.25rem; scroll-padding-inline: 1.25rem; border-radius: 0; }
  .v2-car-list { grid-auto-columns: var(--car-wm, 82%); gap: .9rem; }
  .v2-car-nav { position: static; justify-content: flex-end; margin-top: .9rem; }
}
@media (prefers-reduced-motion: reduce) { .v2-car-vp { scroll-behavior: auto; } }
