/* ------------------------------------------------------------------
   association-laura.fr : page d'accueil, V7
   Créé le 2026-09-17 (V2), V3 le 17/09 au soir (revue à quatre lentilles),
   V4 le 2026-09-18 (revue adverse : resserrer, hiérarchiser, prouver, convertir),
   V5 le 2026-09-18 (sans carte, sans formulaire, leviers équilibrés),
   V7 le 2026-09-18 (revue « taste » : une famille de mise en page par section).
   Aucune dépendance externe.
   Palette : charte LAURA (kit logo, septembre 2026).
   ------------------------------------------------------------------ */

@font-face {
  font-family: "Scoutie Sans";
  src: url("../fonts/scoutie-sans.woff2") format("woff2");
  font-weight: 200 800;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Scoutie Sans";
  src: url("../fonts/scoutie-sans-italic.woff2") format("woff2");
  font-weight: 200 800;
  font-style: italic;
  font-display: swap;
}

:root {
  /* Palette du kit */
  --vert-profond: #033839;
  --vert-encre: #02292a;
  --orange: #ee7534;
  --orange-survol: #e2691f;
  --vert-clair: #a4d09b;
  --aqua: #add8db;
  --rose: #f086a4;
  --rose-pale: #f3dcec;
  --jaune: #fbba09;
  --jaune-pale: #fbd97c;
  --creme: #fbf4e2;
  --blanc: #ffffff;

  /* Déclinaisons pour le texte : les teintes vives du kit ne passent pas
     en texte. Réservées aux titres et aux icônes, jamais au petit corps. */
  --orange-texte: #d9631f;
  --vert-texte: #3d7a3a;
  --rose-texte: #c2406a;
  --vert-moyen: #6fb48a;
  --texte: var(--vert-profond);
  --texte-doux: #3f5c5c;

  /* Fonds dérivés, écrits en dur (pas de color-mix : navigateurs anciens) */
  --filet: #e7dcc6;
  --peche: #fdebdd;
  --vert-pale: #e3f1df;
  --creme-claire: #fdf9ef;
  --vert-pastille: #cde5c8;
  --vert-pastille-clair: #dbecd7;
  --orange-pastille: #fdeee7;
  --tuile: #fef9f5;

  /* Typographie */
  --police: "Scoutie Sans", "Avenir Next", "Segoe UI", sans-serif;
  --t-legende: 0.875rem;
  --t-petit: 0.9375rem;
  --t-base: 1rem;
  --t-corps: 1.0625rem;
  --t-chapo: 1.125rem;
  --t-h4: 1.2rem;
  --t-h3: 1.4rem;
  --t-h3-fort: 1.6rem;
  --t-section: clamp(1.7rem, 3.7vw, 2.85rem);
  --t-h1: clamp(1.8rem, 4vw, 3.25rem);

  /* Espacement */
  --e-1: 4px; --e-2: 8px; --e-3: 12px; --e-4: 16px;
  --e-5: 24px; --e-6: 32px; --e-7: 48px; --e-8: 64px;
  --largeur: 1160px;
  --gouttiere: clamp(16px, 4vw, 40px);
  --section: clamp(64px, 9vw, 112px);
  --groupe: clamp(32px, 4.5vw, 56px);   /* entre groupes de nature différente */
  --bloc: 18px;                         /* entre blocs d'un même groupe */

  /* Formes */
  --rayon-s: 10px;
  --rayon-m: 18px;
  --rayon: 22px;
  --rayon-l: 28px;
  --transition: 180ms ease;
}

*,
*::before,
*::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }

body {
  margin: 0;
  background: var(--creme);
  color: var(--texte);
  font-family: var(--police);
  font-size: var(--t-corps);
  line-height: 1.55;
  font-weight: 400;
  overflow-x: hidden;
}

img { display: block; max-width: 100%; height: auto; }
a { color: inherit; }
p { margin: 0 0 1em; text-wrap: pretty; }
h1, h2, h3, h4 { margin: 0; line-height: 1.12; font-weight: 700; letter-spacing: -0.01em; text-wrap: balance; }

.conteneur {
  width: min(100% - 2 * var(--gouttiere), var(--largeur));
  margin-inline: auto;
}

.sprite { position: absolute; width: 0; height: 0; overflow: hidden; }

/* Focus : vert profond sur fond clair, jaune sur fond vert profond */
:focus-visible { outline: 3px solid var(--vert-profond); outline-offset: 3px; border-radius: 4px; }
.annonce :focus-visible { outline-color: var(--jaune); }

/* Lien d'évitement */
.evitement {
  position: absolute; left: 8px; top: -60px; z-index: 100;
  background: var(--vert-profond); color: var(--blanc);
  padding: 10px 16px; border-radius: 999px; text-decoration: none;
}
.evitement:focus { top: 8px; outline-color: var(--jaune); }

/* ---------- Boutons ---------- */
.bouton {
  display: inline-flex; align-items: center; gap: 10px;
  min-height: 46px; padding: 12px 26px; border-radius: 999px;
  font-weight: 600; font-size: var(--t-base); line-height: 1.1;
  text-decoration: none; border: 2px solid transparent;
  transition: background-color var(--transition), color var(--transition), border-color var(--transition);
}
.bouton:focus-visible { border-radius: 999px; }
.bouton:active { transform: none; }
.bouton--plein { background: var(--orange); color: var(--vert-encre); border-color: var(--orange); }
.bouton--plein:hover { background: var(--orange-survol); border-color: var(--orange-survol); }
.bouton--contour { background: transparent; color: var(--vert-profond); border-color: var(--vert-profond); }
.bouton--contour:hover { background: var(--vert-profond); color: var(--blanc); }
.bouton svg { width: 18px; height: 18px; flex: none; }

/* ---------- Bandeau d'annonce ---------- */
.annonce {
  margin: 0;
}
.annonce p {
  margin: 0;
  background: var(--vert-profond); color: var(--creme);
  font-size: var(--t-petit); text-align: center;
  padding: 10px var(--gouttiere);
  letter-spacing: 0.01em;
}
.annonce strong { color: var(--jaune-pale); font-weight: 600; }

/* ---------- En-tête ---------- */
.entete { padding: 26px 0; }
.entete .conteneur {
  display: flex; align-items: center; justify-content: space-between; gap: 12px 20px; flex-wrap: wrap;
}
.marque { display: block; line-height: 0; }
.marque img { height: 64px; width: auto; }
.marque .logo--medium { display: none; }
@media (max-width: 980px) { .marque img { height: 52px; } }
@media (max-width: 640px) {
  .marque .logo--complet { display: none; }
  .marque .logo--medium { display: block; height: 44px; }
  .entete { padding: 16px 0; }
  .entete .bouton { padding: 10px 18px; font-size: var(--t-petit); }
}
/* À partir de 981 px, l'en-tête reste collé en haut ; dès que le bandeau d'annonce
   est sorti de l'écran (entete.js), il se réduit : logo sans descripteur, barre basse */
@media (min-width: 981px) {
  .entete { position: sticky; top: 0; z-index: 50; padding: 20px 0; background: var(--creme); border-bottom: 1px solid transparent; transition: padding var(--transition), border-color var(--transition); }
  .marque img { height: 60px; }
  .entete--reduit { padding: 8px 0; border-bottom-color: var(--filet); }
  .entete--reduit .marque .logo--complet { display: none; }
  .entete--reduit .marque .logo--medium { display: block; height: 34px; }
  .entete--reduit .bouton { min-height: 40px; padding: 9px 20px; font-size: var(--t-petit); }
  .entete--reduit .nav a { min-height: 40px; }
  .bloc-section, #analyse, #contact { scroll-margin-top: 64px; }
}

/* ---------- Navigation ---------- */
.nav { display: flex; gap: clamp(18px, 3vw, 44px); margin-inline: auto; }
.nav a {
  display: inline-flex; align-items: center; min-height: 44px;
  text-decoration: none; font-weight: 600; font-size: var(--t-base); white-space: nowrap;
  box-shadow: inset 0 -2px 0 transparent; transition: box-shadow var(--transition);
}
.nav a:hover, .nav a:focus-visible { box-shadow: inset 0 -2px 0 var(--orange); }
/* Sous 980 px : les quatre ancres passent sur une seconde ligne, défilable au besoin */
@media (max-width: 980px) {
  .nav {
    order: 3; flex: 0 0 100%; margin: 0; gap: 0 28px;
    justify-content: center;
    border-top: 1px solid var(--filet); padding-top: 4px;
    overflow-x: auto; scrollbar-width: none;
  }
  .nav::-webkit-scrollbar { display: none; }
}
@media (max-width: 560px) { .nav { justify-content: space-between; gap: 0 14px; } .nav a { font-size: var(--t-petit); } }

/* ---------- Icônes et pastilles ---------- */
.icone { width: 26px; height: 26px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.pastille {
  width: 56px; height: 56px; flex: none; border-radius: 50%;
  display: grid; place-items: center; color: var(--vert-profond);
}
.pastille--vert { background: var(--vert-pastille); }
.pastille--rose { background: var(--rose-pale); }

.petale { position: absolute; z-index: 1; pointer-events: none; aspect-ratio: 1; }
.petale svg { width: 100%; height: 100%; display: block; }
.petale--orange { color: var(--orange); }

/* ---------- Ouverture ---------- */
.ouverture {
  position: relative; z-index: 5;
  padding: clamp(32px, 5vw, 64px) 0 clamp(32px, 4vw, 56px);
  overflow-x: clip; overflow-y: visible;
}
.ouverture .conteneur {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr);
  gap: clamp(24px, 4vw, 56px);
  align-items: center;
}
.ouverture__texte { padding: 0; position: relative; z-index: 2; }
.ouverture__titre { font-size: var(--t-h1); line-height: 1.08; letter-spacing: -0.02em; text-wrap: initial; }
.ouverture__titre span { display: block; }
.ouverture__titre em { font-style: normal; color: var(--orange-texte); }
.ouverture__chapo { margin: 24px 0 0; max-width: 44ch; font-size: var(--t-chapo); }
.ouverture__actions { display: flex; flex-wrap: wrap; gap: var(--e-3); margin-top: 32px; }

/* Composition (proportions de la référence d'Olkan du 18/09) : la photo découpée
   en triple arche ; un grand pétale orange (43 % de la largeur de la photo) posé
   à droite, qui pend sous la photo. L'ensemble flotte au-dessus du bandeau de chiffres. */
.visuel { position: relative; width: 116%; max-width: none; justify-self: end; aspect-ratio: 1155 / 886; margin: 2% 0 18%; }
.visuel__photo { position: absolute; inset: 0; display: block; z-index: 2; }
.visuel__photo img { width: 100%; height: auto; display: block; }
.visuel .petale--orange { width: 43%; right: 6%; bottom: -24%; z-index: 3; }
@media (max-width: 900px) {
  .ouverture { padding-bottom: 40px; }
  .ouverture .conteneur { grid-template-columns: 1fr; }
  .visuel { justify-self: center; width: 100%; max-width: 520px; margin: 8px 0 18%; }
  .visuel .petale--orange { width: 40%; right: 5%; bottom: -20%; }
}

/* ---------- Bandeau de chiffres : les nombres seuls, sans pastilles ---------- */
.chiffres { border-top: 1px solid var(--filet); border-bottom: 1px solid var(--filet); background: var(--creme-claire); }
.chiffres ul { list-style: none; margin: 0; padding: 28px 0; display: grid; grid-template-columns: repeat(3, 1fr); }
.chiffre { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 0 var(--e-4); text-align: center; }
.chiffre + .chiffre { border-left: 1px solid var(--filet); }
.chiffre strong { font-size: clamp(2.1rem, 3.6vw, 2.9rem); font-weight: 700; letter-spacing: -0.03em; line-height: 1; white-space: nowrap; }
.chiffre strong small { font-size: 0.4em; font-weight: 600; letter-spacing: 0; }
.chiffre > span { font-size: var(--t-base); line-height: 1.2; font-weight: 500; }
@media (max-width: 760px) {
  .chiffres ul { grid-template-columns: 1fr; gap: 14px; }
  .chiffre { flex-direction: row; align-items: baseline; gap: 12px; padding: 0; text-align: left; }
  .chiffre + .chiffre { border-left: 0; }
}

/* ---------- Sections ---------- */
/* V7 : chaque titre de section porte un mot-clé coloré, dans la phrase, sans retour
   à la ligne forcé (le retour forcé de la V5 faisait la monotonie, pas la couleur).
   Orange par défaut ; sur une bande teintée, la teinte foncée de la bande
   (comme les verbes des leviers prennent la couleur de leur carte). */
.bloc-section { padding: var(--section) 0 0; }
.titre-section, .leviers__tete h2, .analyse__tete h2, .publics__tete h2, .pourquoi h2 { font-size: var(--t-section); line-height: 1.06; letter-spacing: -0.025em; }
.leviers__tete h2 em, .analyse__tete h2 em, .publics__tete h2 em, .pourquoi h2 em { font-style: normal; color: var(--orange-texte); }
.analyse__tete h2 em { color: var(--vert-texte); }

.carte-blanche { background: var(--blanc); border: 1px solid var(--filet); border-radius: var(--rayon); }

/* ---------- Trois leviers : grille en quatre cases (titre + trois leviers teintés) ---------- */
.leviers { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--bloc); }
.leviers__tete { padding: var(--e-5) var(--e-6) var(--e-5) 0; align-self: center; }
.leviers__tete p { margin: 20px 0 0; max-width: 42ch; font-size: var(--t-chapo); }
.levier { position: relative; overflow: hidden; border-radius: var(--rayon-l); padding: clamp(28px, 3.4vw, 44px); }
/* Arc de cercle qui habille l'angle haut droit : un anneau centré hors de la carte,
   dont la carte ne laisse voir que le quart. Rien ne sort de la case de la grille. */
.levier__arc { position: absolute; top: -92px; right: -92px; width: 184px; aspect-ratio: 1; border-radius: 50%; border: 26px solid currentColor; pointer-events: none; opacity: 0.55; }
/* Chaque carte montre une autre partie du signe, toujours en trait, à un autre endroit :
   Négocier, l'arrondi (quart d'anneau, haut droit) ; Optimiser, le flanc du pétale
   et son angle droit (bord droit, à mi-hauteur) ; Soutenir, le dôme du pétale (bas droit). Les motifs peuvent passer derrière le texte, adoucis ;
   ils ne changent jamais la taille des cartes. */
.levier__decor { position: absolute; z-index: 0; aspect-ratio: 1; pointer-events: none; opacity: 0.55; }
.levier h3, .levier p { position: relative; z-index: 1; }
.levier__decor svg { width: 100%; height: 100%; display: block; }
.levier__decor--angle { width: 170px; right: -96px; top: 50%; transform: translateY(-50%); }
.levier__decor--dome { width: 200px; right: -110px; bottom: -110px; }
.levier h3 { position: relative; font-size: var(--t-h3-fort); line-height: 1.12; margin-bottom: var(--e-4); padding-right: 72px; }
.levier h3 em { font-style: normal; display: block; }
.levier p { margin: 0; font-size: var(--t-base); max-width: 48ch; }
.levier--orange { background: var(--peche); }
.levier--orange .levier__arc { color: var(--orange); }
.levier--orange h3 em { color: var(--orange-texte); }
.levier--vert { background: var(--vert-pale); }
.levier--vert .levier__arc, .levier--vert .levier__decor { color: var(--vert-clair); }
.levier--vert h3 em { color: var(--vert-texte); }
.levier--rose { background: var(--rose-pale); }
.levier--rose .levier__arc, .levier--rose .levier__decor { color: var(--rose); }
.levier--rose h3 em { color: var(--rose-texte); }
@media (max-width: 860px) {
  .leviers { grid-template-columns: 1fr; }
  .leviers__tete { padding: 0 0 var(--e-4); }
  .levier__arc { width: 140px; top: -70px; right: -70px; border-width: 20px; }
  .levier__decor--angle { width: 130px; right: -74px; }
  .levier__decor--dome { width: 150px; right: -84px; bottom: -84px; }
  .levier h3 { padding-right: 56px; }
}

/* ---------- Publics : titre à gauche, familles en étiquettes à droite ---------- */
.publics { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: var(--e-6) clamp(32px, 5vw, 72px); align-items: center; }
.publics__tete p { margin: 20px 0 0; max-width: 46ch; font-size: var(--t-chapo); }
.cibles { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.cible { display: inline-flex; align-items: center; gap: 10px; min-height: 48px; padding: 10px 20px 10px 14px; border-radius: 999px; background: var(--blanc); border: 1px solid var(--filet); font-weight: 600; font-size: var(--t-petit); line-height: 1.2; }
.cible .icone { width: 22px; height: 22px; flex: none; }
.cible:nth-child(3n+1) .icone { color: var(--orange-texte); }
.cible:nth-child(3n+2) .icone { color: var(--vert-texte); }
.cible:nth-child(3n+3) .icone { color: var(--rose-texte); }
@media (max-width: 900px) { .publics { grid-template-columns: 1fr; } }

/* ---------- Une association gouvernée par ses adhérents : bloc éditorial ---------- */
.gouvernance { margin-top: var(--groupe); background: var(--peche); border-radius: var(--rayon-l); padding: clamp(28px, 4vw, 48px); display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: clamp(28px, 4vw, 56px); align-items: center; }
.gouvernance__photo { position: relative; margin: 6% 0 8% 6%; }
.gouvernance__photo img { border-radius: var(--rayon-l); aspect-ratio: 1.35 / 1; object-fit: cover; object-position: 50% 35%; width: 100%; position: relative; z-index: 2; }
/* Le pétale mord l'angle extérieur de la photo, jamais un visage */
.gouvernance__photo .petale { width: 26%; left: -11%; top: -14%; color: var(--orange); z-index: 1; transform: rotate(90deg); }
.gouvernance__photo .arc-g { position: absolute; right: -6%; bottom: -10%; width: 32%; aspect-ratio: 1; border-radius: 50%; background: var(--vert-clair); z-index: 1; }
.gouvernance h2 { font-size: clamp(1.6rem, 2.6vw, 2.1rem); line-height: 1.12; letter-spacing: -0.02em; margin-bottom: var(--e-4); }
.gouvernance h2 em { font-style: normal; color: var(--orange-texte); }
.gouvernance p { margin: 0 0 var(--e-3); font-size: var(--t-corps); max-width: 58ch; }
.gouvernance__texte p:last-of-type { margin-bottom: 0; }
/* Un seul passage en demi-gras par paragraphe, au plus : l'essentiel au survol */
.gouvernance p strong, .analyse__tete p strong, .publics__tete p strong { font-weight: 600; }
@media (max-width: 1000px) {
  .gouvernance { grid-template-columns: 1fr; }
  .gouvernance__photo { margin: 6% 6% 8% 8%; max-width: 560px; }
}

/* ---------- Concrètement : bande vert pâle bord à bord, parcours horizontal ---------- */
.analyse { margin-top: var(--section); padding: var(--section) 0; background: var(--vert-pale); }
.analyse__tete { max-width: 60ch; }
.analyse__tete p { margin: 20px 0 0; font-size: var(--t-chapo); }
.temps { list-style: none; margin: var(--groupe) 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--e-6);  }
.temps__etape { position: relative; }
/* Le fil relie chaque pétale au suivant, à leur hauteur, et s'arrête au dernier */
.temps__etape:not(:last-child)::after { content: ""; position: absolute; left: 72px; right: calc(-1 * var(--e-6)); top: 35px; height: 2px; background: var(--vert-clair); }
.temps__num { position: relative; display: grid; place-items: center; width: 72px; height: 72px; color: var(--vert-clair); background: var(--vert-pale); }
.temps__num svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.temps__num span { position: relative; font-size: 1.5rem; font-weight: 700; color: var(--vert-profond); }
.temps__etape p { margin: var(--e-5) 0 0; font-size: var(--t-chapo); font-weight: 600; line-height: 1.3; max-width: 24ch; }
/* Sans filet : l'espace et le fil des pétales suffisent à détacher la suite */
.analyse__suite { margin-top: var(--groupe); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--e-4) var(--e-6); }
.analyse__suite p { margin: 0; max-width: 56ch; font-size: var(--t-base); color: var(--texte-doux); }
@media (max-width: 760px) {
  .temps { grid-template-columns: 1fr; gap: var(--e-5); }
  .temps__etape:not(:last-child)::after { left: 35px; right: auto; top: 72px; bottom: calc(-1 * var(--e-5)); width: 2px; height: auto; }
  .temps__etape { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: var(--e-4); align-items: center; }
  .temps__etape p { margin: 0; max-width: none; }
}

/* ---------- Adhérer : raisons en grille, cotisation en carte ---------- */
.adherer { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: clamp(32px, 5vw, 80px); align-items: start; }
/* « Rejoignez » seul sur sa ligne : la coupure vient de la largeur, pas d'un <br> */
.pourquoi h2 { max-width: 11em; }
.pourquoi h3 { font-size: var(--t-h4); margin: var(--e-7) 0 var(--e-5); }
.raisons { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--e-6) var(--e-5); }
.raison { display: grid; gap: 6px; align-content: start; }
.raison .pastille { width: 48px; height: 48px; margin-bottom: 8px; }
.raison strong { font-size: var(--t-corps); line-height: 1.2; }
.raison__texte { font-size: var(--t-petit); color: var(--texte-doux); line-height: 1.45; }
.cotisation { background: var(--blanc); border: 1px solid var(--filet); border-radius: var(--rayon-l); padding: clamp(28px, 3.4vw, 40px); }
.cotisation__prix { margin: 0; font-size: var(--t-chapo); font-weight: 600; }
.cotisation__prix strong { font-size: clamp(3rem, 5vw, 4rem); letter-spacing: -0.04em; line-height: 1; margin-right: 6px; }
.cotisation__texte { margin: var(--e-3) 0 0; color: var(--texte-doux); font-size: var(--t-base); }
.cotisation h3 { font-size: var(--t-h4); margin: var(--e-6) 0 var(--e-4); padding-top: var(--e-5); border-top: 1px solid var(--filet); }
/* Étapes sur un rail vertical : pas de pastilles numérotées, déjà utilisées plus haut */
.etapes { list-style: none; margin: 0 0 var(--e-5); padding: 0 0 0 20px; border-left: 2px solid var(--rose); display: grid; gap: var(--e-4); }
.etape strong { display: block; line-height: 1.2; }
.etape span { display: block; margin-top: 2px; font-size: var(--t-petit); color: var(--texte-doux); line-height: 1.4; }
@media (max-width: 860px) { .adherer { grid-template-columns: 1fr; } }
@media (max-width: 520px) {
  .raisons { grid-template-columns: 1fr; gap: var(--e-5); }
  .raison { grid-template-columns: auto minmax(0, 1fr); gap: 2px var(--e-4); align-items: center; }
  .raison .pastille { grid-row: span 2; margin: 0; }
  .raison strong { align-self: end; }
  .raison__texte { align-self: start; }
}

/* ---------- Pied de page, en plein ---------- */
.pied { margin-top: var(--section); position: relative; overflow: hidden; background: var(--vert-profond); color: var(--creme); padding: clamp(40px, 5vw, 64px) 0 24px; }
.pied__haut { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: var(--e-6) clamp(32px, 6vw, 96px); align-items: start; }
.pied__appel h2 { font-size: clamp(1.5rem, 2.8vw, 2.1rem); color: var(--blanc); margin-bottom: 10px; }
.pied__appel p { margin: 0 0 var(--e-5); font-size: var(--t-chapo); max-width: 46ch; }
.pied__contact h2 { font-size: var(--t-h4); color: var(--blanc); margin-bottom: var(--e-3); }
.pied__contact ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.pied__contact li { display: flex; gap: 14px; align-items: center; min-height: 44px; font-weight: 600; }
.pied__contact li:last-child { align-items: flex-start; padding-top: 10px; }
.pied__contact .icone { flex: none; color: var(--vert-clair); }
.pied__contact a { display: inline-block; padding: 10px 0; color: var(--creme); text-decoration: underline; text-decoration-color: var(--orange); text-decoration-thickness: 2px; text-underline-offset: 5px; }
.pied__contact a:hover { text-decoration-color: var(--creme); }
.pied__contact address { font-style: normal; font-weight: 400; line-height: 1.5; }
.pied__bas {
  position: relative; z-index: 1;
  margin-top: clamp(32px, 4vw, 48px); padding-top: 20px; border-top: 1px solid rgba(251, 244, 226, 0.22);
  display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px 24px;
  font-size: var(--t-legende);
}
.pied__logo { height: 40px; width: auto; }
.pied__mentions { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 22px; }
.pied__mentions a { display: inline-block; padding: 11px 0; color: rgba(251, 244, 226, 0.85); text-decoration: underline; text-decoration-color: rgba(251, 244, 226, 0.35); text-underline-offset: 4px; }
.pied__mentions a:hover { color: var(--creme); text-decoration-color: var(--orange); }
.pied :focus-visible { outline-color: var(--jaune); }
.pied__petale { position: absolute; right: -110px; top: -80px; width: 260px; color: var(--orange); transform: rotate(180deg); pointer-events: none; opacity: 0.9; }
.pied__petale svg { width: 100%; height: 100%; display: block; }
@media (max-width: 900px) {
  .pied__haut { grid-template-columns: 1fr; }
  .pied__petale { right: -90px; top: auto; bottom: -110px; width: 170px; }
  .pied__bas { flex-direction: column; align-items: flex-start; }
}

/* ---------- Pages légales ---------- */
.legal { padding: 40px 0 clamp(64px, 9vw, 112px); }
.legal .conteneur { max-width: 780px; }
.legal h1 { font-size: clamp(2rem, 4vw, 2.8rem); margin-bottom: 8px; }
.legal .maj { color: var(--texte-doux); margin-bottom: 36px; }
.legal h2 { font-size: var(--t-h3); margin: 36px 0 12px; padding-top: 24px; border-top: 1px solid var(--filet); }
.legal h2:first-of-type { border-top: 0; padding-top: 0; }
.legal dl { display: grid; grid-template-columns: max-content 1fr; gap: 8px 24px; margin: 0 0 16px; }
.legal dt { font-weight: 600; }
.legal dd { margin: 0; }
.legal a { color: var(--vert-profond); text-decoration: underline; text-decoration-color: var(--orange); text-decoration-thickness: 2px; text-underline-offset: 3px; }
.legal ul { padding-left: 20px; }
@media (max-width: 560px) { .legal dl { grid-template-columns: 1fr; gap: 2px 0; } .legal dd { margin-bottom: 10px; } }

/* ---------- Mouvement : seulement si le visiteur ne l'a pas réduit ---------- */
@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }
  .apparait { animation: apparait 400ms ease-out both; }
  @keyframes apparait {
    from { opacity: 0; }
    to { opacity: 1; }
  }
  /* V7 : chaque bloc entre dans l'ordre de lecture, sans script (animation liée au défilement) */
  @supports (animation-timeline: view()) {
    .revele { animation: revele linear both; animation-timeline: view(); animation-range: entry 0% entry 40%; }
    @keyframes revele {
      from { opacity: 0; transform: translateY(20px); }
      to { opacity: 1; transform: none; }
    }
  }
}

main { overflow-x: clip; }
