/* ── Polices ─────────────────────────────────────────────────── */
@font-face { font-family: 'Outfit'; src: url('/assets/fonts/outfit.woff2') format('woff2'); font-weight: 100 900; font-display: swap; }
@font-face { font-family: 'Instrument Serif'; src: url('/assets/fonts/instrument-serif-italic.woff2') format('woff2'); font-style: italic; font-display: swap; }

/* ── Variables ───────────────────────────────────────────────── */
:root {
  color-scheme: dark;
  --fond: #120b07;
  --fond-2: #23160e;
  --creme: #f5efe6;
  --doux: #c9baa7;
  --ambre: #d8b365;
  --cuivre: #b8924a;
  --degrade: linear-gradient(#d8b365, #d8b365);
  --sur-ambre: #1a0f08;
  --verre: #1b110b;
  --verre-fort: #23160e;
  --ligne: rgba(245, 239, 230, 0.12);
  --ligne-forte: rgba(245, 239, 230, 0.28);
  --erreur: #ffab9b;
  --r-s: 12px;
  --r-m: 20px;
  --r-l: 28px;
  --marge: clamp(16px, 4vw, 56px);
  --max: 1360px;
  --sortie: cubic-bezier(0.16, 1, 0.3, 1);
}

/* ── Base ────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 96px; -webkit-text-size-adjust: 100%; background: var(--fond); overflow-x: clip; }
html.popup-ouverte { overflow: hidden; }
body { margin: 0; color: var(--creme); background: var(--fond); font: 400 17px/1.6 'Outfit', system-ui, sans-serif; overflow-x: clip; -webkit-font-smoothing: antialiased; }
img { display: block; max-width: 100%; }
a { color: inherit; }
p { margin: 0 0 1em; }
ul, ol { margin: 0; padding: 0; list-style: none; }
:focus-visible { outline: 2px solid var(--ambre); outline-offset: 3px; border-radius: 6px; }
.icone { width: 1.15em; height: 1.15em; flex: none; stroke-width: 1.8; }

/* ── Typographie ─────────────────────────────────────────────── */
h1, h2, h3 { margin: 0; font-weight: 700; letter-spacing: -0.03em; line-height: 1; text-wrap: balance; }
h1 { font-size: clamp(44px, 11.6vw, 124px); font-weight: 800; letter-spacing: -0.045em; line-height: 0.96; }
h1.h1-moyen { font-size: clamp(38px, 9.6vw, 92px); }
h2 { font-size: clamp(32px, 6.4vw, 72px); }
h3 { font-size: 22px; letter-spacing: -0.02em; line-height: 1.15; }
h1 em, h2 em { font-family: 'Instrument Serif', Georgia, serif; font-style: italic; font-weight: 400; letter-spacing: -0.02em; padding-right: 0.06em; background: var(--degrade); -webkit-background-clip: text; background-clip: text; color: transparent; }
.surtitre { display: inline-flex; align-items: center; gap: 8px; margin: 0 0 18px; font-size: 13px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ambre); }
.lead { font-size: clamp(17px, 2.2vw, 21px); line-height: 1.5; color: var(--doux); max-width: 56ch; }
.visuel-cache { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.evitement { position: fixed; left: 12px; top: -80px; z-index: 60; padding: 10px 16px; border-radius: 10px; background: var(--creme); color: var(--fond); }
.evitement:focus { top: 12px; }

/* ── Conteneurs ──────────────────────────────────────────────── */
.section { max-width: var(--max); margin: 0 auto; padding: clamp(56px, 9vw, 128px) var(--marge); }
.section-tete { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 16px 40px; margin-bottom: clamp(28px, 4vw, 56px); }
.section-note { margin: 0; color: var(--doux); max-width: 38ch; }

/* ── En-tête flottant ────────────────────────────────────────── */
.entete { position: sticky; top: 10px; z-index: 30; display: flex; align-items: center; justify-content: space-between; gap: 8px; max-width: calc(var(--max) - 2 * var(--marge)); margin: 10px clamp(8px, 4vw, 56px) 0; padding: 7px 7px 7px 16px; border: 1px solid var(--ligne); border-radius: 999px; background: rgba(18, 11, 7, 0.72); -webkit-backdrop-filter: blur(18px) saturate(150%); backdrop-filter: blur(18px) saturate(150%); }
@media (min-width: 1472px) { .entete { margin-inline: auto; } }
.logo img { width: 118px; height: auto; }
.entete nav { display: flex; align-items: center; gap: 2px; }
.entete nav a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 12px; border-radius: 999px; font-size: 14px; font-weight: 500; text-decoration: none; white-space: nowrap; transition: background-color 0.2s, color 0.2s; }
.entete nav a:hover { background: rgba(245, 239, 230, 0.09); }
.entete nav a[aria-current] { background: rgba(216, 179, 101, 0.16); color: var(--ambre); }
.nav-large { display: none !important; }

/* ── Boutons ─────────────────────────────────────────────────── */
.btn { position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 54px; padding: 14px 26px; border: 0; border-radius: 999px; font: 600 17px/1.2 'Outfit', sans-serif; letter-spacing: -0.01em; text-align: center; text-decoration: none; cursor: pointer; transition: transform 0.25s var(--sortie), box-shadow 0.25s, background-color 0.2s, border-color 0.2s; }
.btn:active { transform: scale(0.98); }
.btn:disabled { opacity: 0.65; cursor: progress; }
.btn-principal { background: var(--ambre); color: var(--sur-ambre); }
.btn-verre { background: rgba(245, 239, 230, 0.07); color: var(--creme); border: 1px solid var(--ligne-forte); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
@media (hover: hover) {
  .btn-principal:hover { background: #e6c681; }
  .btn-verre:hover { background: rgba(245, 239, 230, 0.1); }
}
.actions { display: flex; flex-wrap: wrap; gap: 10px; }
.actions .btn { flex: 1 1 100%; }

/* ── Accueil : scène d'ouverture ─────────────────────────────── */
.ouverture { position: relative; max-width: var(--max); margin: 0 auto; padding: clamp(36px, 7vw, 88px) var(--marge) 8px; display: grid; gap: 4px; }
.ouverture .lead { margin: 18px 0 22px; }
/* Le haut de page s'anime sans JavaScript : le titre reste visible immédiatement au chargement */
.ouverture-texte { animation: entree 0.9s var(--sortie) backwards; }
@keyframes entree { from { opacity: 0; transform: translateY(20px); } }
.scene { position: relative; height: 330px; overflow: clip; animation: entree 1.1s var(--sortie) 0.1s backwards; }
.scene .stage { position: absolute; inset: 0; height: auto; }
.infini { position: absolute; left: 50%; top: 50%; width: min(100%, 900px); transform: translate(-50%, -50%); pointer-events: none; overflow: visible; }
.infini path { fill: none; stroke-linecap: round; }
.infini-base { stroke: rgba(245, 239, 230, 0.1); stroke-width: 2.5; }
.infini-halo { display: none; }
.infini-trait { stroke: var(--ambre); stroke-width: 2.5; stroke-dasharray: 26 74; animation: infini 9s linear infinite; }
@keyframes infini { to { stroke-dashoffset: -100; } }

/* ── Bandeau défilant ────────────────────────────────────────── */
.bandeau { display: flex; overflow: hidden; border-block: 1px solid var(--ligne); margin-top: 20px; -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.bandeau ul { display: flex; flex: none; gap: 44px; padding: 16px 22px; animation: defile 34s linear infinite; }
.bandeau li { display: inline-flex; align-items: center; gap: 10px; color: var(--doux); font-size: 15px; white-space: nowrap; }
.bandeau .icone { color: var(--ambre); }
@keyframes defile { to { transform: translateX(-100%); } }

/* ── Catalogue ───────────────────────────────────────────────── */
.grille { display: grid; gap: 14px; grid-template-columns: minmax(0, 1fr); }
.carte { position: relative; display: flex; flex-direction: column; min-width: 0; border: 1px solid var(--ligne); border-radius: var(--r-l); background: var(--fond-2); overflow: hidden; transition: border-color 0.3s, transform 0.5s var(--sortie); }
@media (hover: hover) {
  .carte:hover { border-color: var(--ligne-forte); }
}
.carte-haut { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 16px 18px 0; font-size: 13px; color: var(--doux); }
.carte-num { font-variant-numeric: tabular-nums; font-weight: 500; color: var(--ambre); }
.carte-etat { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border: 1px solid var(--ligne); border-radius: 999px; background: rgba(0, 0, 0, 0.4); }
.carte-etat .icone { color: var(--ambre); width: 14px; height: 14px; }
.carte-texte { position: relative; padding: 2px 18px 8px; display: flex; flex-direction: column; flex: 1; }
.carte-titre { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; margin-bottom: 14px; }
.carte h3 a { text-decoration: none; }
.carte h3 a::after { content: ''; }
.carte h3 a:hover { color: var(--ambre); }
.carte h3 span { display: block; margin-top: 5px; font-size: 13px; font-weight: 400; letter-spacing: 0.02em; color: var(--doux); }
.prix { flex: none; margin: 0; font-size: 22px; font-weight: 700; letter-spacing: -0.02em; line-height: 1.15; white-space: nowrap; color: var(--ambre); }
.carte .btn-principal { width: 100%; }
.vendue { margin: 0; padding: 15px; text-align: center; border: 1px dashed var(--ligne-forte); border-radius: 999px; color: var(--doux); }

/* Photo de la machine */
.stage { position: relative; height: 330px; }
.stage::before { content: ''; position: absolute; left: 50%; top: 52%; width: 74%; aspect-ratio: 1; transform: translate(-50%, -50%); border-radius: 50%; background: radial-gradient(closest-side, rgba(200, 150, 100, 0.2), transparent); pointer-events: none; }
.stage-photo { position: absolute; inset: 8% 6%; width: 88%; height: 84%; object-fit: contain; transition: transform 0.6s var(--sortie); }
@media (hover: hover) { .carte:hover .stage-photo { transform: scale(1.03); } }
.galerie { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: thin; }
.galerie .stage { flex: 0 0 100%; scroll-snap-align: center; }
.galerie .stage:not(:only-child) { flex-basis: 88%; }

/* Détails */
.details { margin-top: 6px; }
.details summary { display: flex; align-items: center; justify-content: center; gap: 6px; min-height: 48px; font-size: 16px; font-weight: 500; cursor: pointer; list-style: none; }
.details summary::-webkit-details-marker { display: none; }
.details summary .icone { color: var(--ambre); transition: transform 0.35s var(--sortie); }
.details[open] summary .icone { transform: rotate(180deg); }
.details > p { margin-top: 4px; font-size: 16px; color: var(--doux); }
.specs { width: 100%; margin-bottom: 14px; border-collapse: collapse; font-size: 15px; }
.specs th, .specs td { padding: 9px 0; border-top: 1px solid var(--ligne); text-align: left; vertical-align: top; }
.specs th { width: 44%; padding-right: 12px; font-weight: 400; color: var(--doux); }
.lien { display: inline-flex; align-items: center; gap: 6px; margin-bottom: 12px; font-size: 15px; color: var(--ambre); }

/* ── Panneau d'impact ────────────────────────────────────────── */
.impact { position: relative; display: grid; gap: 22px; padding: clamp(28px, 6vw, 72px); border: 1px solid var(--ligne); border-radius: var(--r-l); background: var(--fond-2); overflow: hidden; }
.impact-chiffre { display: block; margin-bottom: 14px; font-size: clamp(64px, 19vw, 210px); font-weight: 800; letter-spacing: -0.06em; line-height: 0.88; background: var(--degrade); -webkit-background-clip: text; background-clip: text; color: transparent; }
.impact h2 { font-size: clamp(26px, 4.4vw, 48px); }
.impact p { margin: 12px 0 0; color: var(--doux); max-width: 44ch; }
.impact .btn { justify-self: start; }

/* ── Tuiles ──────────────────────────────────────────────────── */
.tuiles { display: grid; gap: 12px; grid-template-columns: minmax(0, 1fr); }
.tuile { padding: 22px; border: 1px solid var(--ligne); border-radius: var(--r-m); background: var(--verre); color: var(--doux); font-size: 16px; }
.tuile .icone { display: block; width: 26px; height: 26px; margin-bottom: 18px; color: var(--ambre); }
.tuile strong { display: block; margin-bottom: 4px; font-size: 19px; font-weight: 600; letter-spacing: -0.015em; line-height: 1.2; color: var(--creme); }
.tuile a { color: var(--ambre); }
.deux-colonnes { display: grid; gap: 32px; grid-template-columns: minmax(0, 1fr); }
.deux-colonnes .lead { margin-top: 20px; }

/* Étapes */
.etapes { display: grid; gap: 12px; counter-reset: etape; }
.etapes li { counter-increment: etape; padding: 24px; border: 1px solid var(--ligne); border-radius: var(--r-m); background: var(--verre); color: var(--doux); font-size: 16px; }
.etapes li::before { content: '0' counter(etape); display: block; margin-bottom: 18px; font-size: 44px; font-weight: 800; letter-spacing: -0.04em; line-height: 1; background: var(--degrade); -webkit-background-clip: text; background-clip: text; color: transparent; }
.etapes strong { display: block; margin-bottom: 4px; font-size: 19px; font-weight: 600; color: var(--creme); }

/* FAQ */
.faq { border-top: 1px solid var(--ligne); }
.faq details { border-bottom: 1px solid var(--ligne); }
.faq summary { display: flex; align-items: center; justify-content: space-between; gap: 18px; min-height: 60px; padding: 14px 0; font-size: 18px; font-weight: 500; line-height: 1.3; letter-spacing: -0.01em; cursor: pointer; list-style: none; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary .icone { color: var(--ambre); transition: transform 0.35s var(--sortie); }
.faq details[open] summary .icone { transform: rotate(180deg); }
.faq p { margin-bottom: 18px; color: var(--doux); max-width: 62ch; }

/* ── Pages intérieures ───────────────────────────────────────── */
.fil { max-width: var(--max); margin: 0 auto; padding: 20px var(--marge) 0; font-size: 14px; color: var(--doux); }
.fil ol { display: flex; flex-wrap: wrap; gap: 6px; }
.fil li:not(:last-child)::after { content: '/'; margin-left: 6px; opacity: 0.5; }
.page-tete { max-width: var(--max); margin: 0 auto; padding: clamp(28px, 6vw, 72px) var(--marge) 0; }
.page-tete .lead { margin: 22px 0 26px; }
.page-tete .btn { width: 100%; }
.texte { max-width: 720px; }
.texte p { color: var(--doux); }
.texte h1 { margin-bottom: 28px; }
.texte a { color: var(--ambre); }

/* Fiche produit */
.fiche { max-width: var(--max); margin: 0 auto; padding: 12px var(--marge) 0; display: grid; gap: 8px; grid-template-columns: minmax(0, 1fr); }
.fiche-scene { position: relative; border: 1px solid var(--ligne); border-radius: var(--r-l); background: var(--fond-2); overflow: hidden; }
.fiche-scene .stage { height: 380px; }
.fiche-texte { padding-top: 22px; }
.fiche h1 { font-size: clamp(36px, 7vw, 68px); }
.fiche h1 small { display: block; margin-top: 10px; font-size: 16px; font-weight: 400; letter-spacing: 0.02em; color: var(--doux); }
.fiche .prix { margin: 18px 0 8px; font-size: 36px; }
.fiche .accroche { font-size: 19px; line-height: 1.4; }
.fiche .btn-principal { width: 100%; margin-bottom: 20px; }
.fiche-description { color: var(--doux); }
.garanties { display: grid; gap: 10px; margin-bottom: 26px; color: var(--doux); font-size: 15px; }
.garanties li { display: flex; align-items: center; gap: 10px; }
.garanties .icone { color: var(--ambre); }
.fiche h2 { margin: 30px 0 12px; font-size: 24px; }
.autres { display: grid; gap: 12px; grid-template-columns: minmax(0, 1fr); }
.autres a { display: flex; align-items: center; gap: 16px; padding: 14px 18px; border: 1px solid var(--ligne); border-radius: var(--r-m); background: var(--verre); font-weight: 500; text-decoration: none; transition: border-color 0.25s; }
.autres a:hover { border-color: var(--ligne-forte); }
.autres img { width: 54px; height: 86px; object-fit: contain; }
.autres small { display: block; font-size: 15px; font-weight: 600; color: var(--ambre); }

/* ── Popups ──────────────────────────────────────────────────── */
.popup { width: min(500px, calc(100vw - 20px)); max-height: calc(100dvh - 20px); padding: 0; border: 1px solid var(--ligne-forte); border-radius: var(--r-l); background: var(--verre-fort); color: var(--creme); overflow-y: auto; }
.popup[open] { animation: popup 0.45s var(--sortie); }
.popup::backdrop { background: rgba(0, 0, 0, 0.72); }
@keyframes popup { from { opacity: 0; transform: translateY(18px) scale(0.98); } }
.popup-form, .popup-succes { padding: 24px 20px 20px; }
.popup h2 { margin: 0 40px 16px 0; font-size: 28px; }
.popup-fermer { position: absolute; top: 12px; right: 12px; display: grid; place-items: center; width: 44px; height: 44px; border: 0; border-radius: 50%; background: rgba(245, 239, 230, 0.08); color: var(--creme); cursor: pointer; }
.popup-fermer:hover { background: rgba(245, 239, 230, 0.16); }
.recap { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; padding: 10px 14px; border: 1px solid var(--ligne); border-radius: var(--r-s); background: rgba(0, 0, 0, 0.45); }
.recap img { width: 42px; height: 66px; object-fit: contain; }
.recap strong { display: block; font-weight: 600; line-height: 1.25; }
.recap span { font-weight: 700; color: var(--ambre); }
.champ { margin-bottom: 12px; }
.champ label { display: block; margin-bottom: 5px; font-size: 14px; font-weight: 500; }
.champ input, .champ textarea { width: 100%; min-height: 50px; padding: 12px 14px; border: 1px solid var(--ligne-forte); border-radius: var(--r-s); background: rgba(0, 0, 0, 0.55); color: var(--creme); font: 16px/1.4 'Outfit', sans-serif; transition: border-color 0.2s, box-shadow 0.2s; }
.champ input::placeholder, .champ textarea::placeholder { color: #9c8d7b; }
.champ input:focus, .champ textarea:focus { outline: 0; border-color: var(--ambre); box-shadow: 0 0 0 3px rgba(216, 179, 101, 0.25); }
.champ [aria-invalid] { border-color: var(--erreur); }
.champ-erreur { margin: 5px 0 0; font-size: 14px; color: var(--erreur); }
.champ-erreur:empty { display: none; }
.form-erreur { padding: 10px 14px; border-radius: var(--r-s); background: rgba(255, 171, 155, 0.12); font-size: 15px; color: var(--erreur); }
.popup .btn { width: 100%; }
.form-note { margin: 12px 0 0; text-align: center; font-size: 14px; color: var(--doux); }
.popup-succes:focus { outline: 0; }
.popup-succes .icone { width: 44px; height: 44px; margin-bottom: 16px; color: var(--ambre); }
.popup-succes p { color: var(--doux); }
.popup-succes strong { color: var(--creme); }
.piege { position: absolute; left: -9999px; height: 0; overflow: hidden; }

/* ── Pied de page ────────────────────────────────────────────── */
.pied { position: relative; margin-top: clamp(40px, 7vw, 96px); border-top: 1px solid var(--ligne); overflow: hidden; color: var(--doux); font-size: 15px; }
.pied-grille { display: grid; gap: 28px; max-width: var(--max); margin: 0 auto; padding: 44px var(--marge) 28px; }
.pied h2 { margin-bottom: 10px; font-size: 14px; font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase; color: var(--creme); }
.pied li { padding: 4px 0; }
.pied a { text-decoration-color: var(--ligne-forte); text-underline-offset: 3px; }
.pied a:hover { color: var(--ambre); }
.pied-note { max-width: var(--max); margin: 0 auto; padding: 0 var(--marge) 16px; font-size: 13px; }
.pied-marque { display: block; margin-bottom: -0.17em; text-align: center; font-size: 20.5vw; font-weight: 800; letter-spacing: -0.05em; line-height: 1; white-space: nowrap; user-select: none; background: linear-gradient(180deg, rgba(245, 239, 230, 0.15), rgba(245, 239, 230, 0)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.whatsapp { position: fixed; right: 14px; bottom: 14px; z-index: 15; padding: 13px 18px; border-radius: 999px; background: #1a8a49; color: #fff; font-weight: 600; text-decoration: none; }

/* ── Apparition au défilement (uniquement si JavaScript est actif) ── */
.js .reveal { opacity: 0; transform: translateY(26px); transition: opacity 0.9s var(--sortie), transform 0.9s var(--sortie); }
.js .reveal.visible { opacity: 1; transform: none; }

/* ── Tablette ────────────────────────────────────────────────── */
@media (min-width: 640px) {
  .logo img { width: 152px; }
  .entete { padding-left: 22px; }
  .entete nav a { padding: 0 16px; font-size: 15px; }
  .nav-large { display: inline-flex !important; }
  .actions .btn { flex: 0 0 auto; }
  .page-tete .btn { width: auto; }
  .grille { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
  .carte:first-child { grid-column: span 2; }
  .carte:first-child .stage { height: 420px; }
  .tuiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .etapes { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .autres { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .pied-grille { grid-template-columns: 2fr 1fr 1fr; }
  .scene { height: 440px; }
  .fiche-scene .stage { height: 460px; }
}

/* ── Grand écran : grille éditoriale ─────────────────────────── */
@media (min-width: 1024px) {
  .ouverture { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); align-items: center; gap: 0; min-height: min(78vh, 760px); }
  .ouverture-texte { position: relative; z-index: 2; }
  .scene { height: min(68vh, 620px); margin-left: -8%; }
  .grille { grid-template-columns: repeat(12, minmax(0, 1fr)); }
  .carte { grid-column: span 4; }
  .carte:first-child, .carte:nth-child(2) { grid-column: span 6; }
  .carte:first-child .stage, .carte:nth-child(2) .stage { height: 440px; }
  /* Dernière carte en largeur : image à gauche, texte à droite */
  .carte:last-child { grid-column: span 12; display: grid; grid-template-columns: 1.2fr 1fr; grid-template-rows: auto 1fr; }
  .carte:last-child .carte-haut { grid-column: 1 / -1; }
  .carte:last-child .stage { height: 400px; }
  .carte:last-child .carte-texte { justify-content: center; padding: 0 40px 24px; }
  .impact { grid-template-columns: 1.3fr 1fr; align-items: end; }
  .impact .btn { justify-self: end; }
  .tuiles-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pannes { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .deux-colonnes { grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 64px; align-items: start; }
  .fiche { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 56px; align-items: start; }
  .fiche-scene { position: sticky; top: 88px; }
  .fiche-scene .stage { height: min(76vh, 680px); }
  .fiche-texte { padding-top: 12px; }
  .fiche .btn-principal { width: auto; min-width: 300px; }
}

/* ── Mouvement réduit ────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .js .reveal { opacity: 1; transform: none; }
  .bandeau { -webkit-mask-image: none; mask-image: none; }
  .bandeau ul { flex-wrap: wrap; flex: 1; justify-content: center; gap: 8px 28px; }
  .bandeau ul[aria-hidden] { display: none; }
}
