/* ============================================================================
   TAXI 624 by GETTAXI — kit de la version 3 du site public (Amine, 18.10.2026)
   Une seule feuille pour toutes les pages : accueil, pages générées (seo.mjs),
   réservation, suivi, quittance, paiement, 404, e-mails (en inspiration).
   Source : pages/offre.html (la référence validée), généralisée.
   Règles : fond nuit profond, UN dégradé d'accent #2F6BEF→#3EDFA5, grands
   chiffres, cartes arrondies, listes à coches, UN bouton principal par écran,
   bascule FR/EN glissante en haut à droite, thème clair le jour / sombre la nuit
   (heure suisse, v3.js), réglable à la main. Un prix ne s'anime jamais.
   Préfixe « v3- » : la feuille vit à côté des styles actuels sans les casser.
   ========================================================================== */

@font-face { font-family:"Manrope"; font-style:normal; font-weight:500; font-display:swap; src:url(/fonts/manrope-500-latin.woff2) format("woff2"); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:"Manrope"; font-style:normal; font-weight:700; font-display:swap; src:url(/fonts/manrope-700-latin.woff2) format("woff2"); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:"Manrope"; font-style:normal; font-weight:800; font-display:swap; src:url(/fonts/manrope-800-latin.woff2) format("woff2"); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:"Manrope"; font-style:normal; font-weight:500; font-display:swap; src:url(/fonts/manrope-500-latin-ext.woff2) format("woff2"); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:"Manrope"; font-style:normal; font-weight:700; font-display:swap; src:url(/fonts/manrope-700-latin-ext.woff2) format("woff2"); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:"Manrope"; font-style:normal; font-weight:800; font-display:swap; src:url(/fonts/manrope-800-latin-ext.woff2) format("woff2"); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }

/* ---------- 1. JETONS ---------- */
:root {
  /* couleurs — NUIT (par défaut : celles d'offre.html) */
  --v3-fond:#05070D; --v3-fond2:#0B1020;
  --v3-verre:rgba(13,17,27,.84); --v3-verre2:rgba(255,255,255,.06); --v3-verre3:rgba(255,255,255,.10);
  --v3-bord:rgba(255,255,255,.11); --v3-bord2:rgba(255,255,255,.18);
  --v3-fort:#FFFFFF; --v3-texte:#E6E8EC; --v3-doux:#A9B4CB; --v3-sourd:#8A95AD;
  --v3-bleu:#2F6BEF; --v3-bleu2:#5C94FF; --v3-bleu3:#93B6FF; --v3-vert:#3EDFA5; --v3-vert2:#1FB57E; --v3-rouge:#FF9AA0; --v3-jaune:#FFD166;
  --v3-degrade:linear-gradient(135deg,#2F6BEF 0%,#4E88FF 55%,#3EDFA5 100%);
  --v3-degrade-texte:linear-gradient(90deg,#5C94FF,#3EDFA5);
  /* LISIBILITÉ (Amine, 18.10.2026) : sous un texte blanc, le dégradé reste bleu là où les lettres se posent (le blanc sur le vert
     clair ne se lit pas : 1,7:1) — le vert ne vit que dans le coin et dans la lueur. --v3-degrade (bleu → vert franc) reste pour
     les traits, les anneaux et les lueurs, jamais sous un texte. La bande : un bleu profond de la charte, blanc lisible partout. */
  --v3-degrade-bouton:linear-gradient(135deg,#2F6BEF 90%,#3EDFA5 135%);
  --v3-degrade-bande:linear-gradient(120deg,color-mix(in srgb,#2F6BEF 86%,#0B1020) 0%,color-mix(in srgb,#2F6BEF 60%,#0B1020) 100%);
  --v3-degrade-vert:linear-gradient(180deg,#3EDFA5,#1FB57E);
  --v3-lueur:0 12px 30px rgba(47,107,239,.45); --v3-lueur-vert:0 12px 30px rgba(31,181,126,.35);
  --v3-ombre:0 10px 30px rgba(0,0,0,.5); --v3-ombre-douce:0 4px 16px rgba(0,0,0,.35);
  --v3-halo:rgba(61,123,255,.28); --v3-decor-opacite:.45;
  --v3-anneau:rgba(92,148,255,.25);
  /* espaces */
  --v3-s1:4px; --v3-s2:8px; --v3-s3:12px; --v3-s4:16px; --v3-s5:20px; --v3-s6:28px; --v3-s7:40px; --v3-s8:64px;
  /* rayons */
  --v3-r1:10px; --v3-r2:14px; --v3-r3:18px; --v3-r4:22px; --v3-r5:28px; --v3-rond:999px;
  /* texte */
  --v3-police:"Manrope",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  --v3-t0:12px; --v3-t1:13.5px; --v3-t2:15.5px; --v3-t3:17px; --v3-t4:19px; --v3-t5:23px; --v3-t6:29px; --v3-t7:40px; --v3-t8:56px;
  --v3-toucher:48px; /* la taille minimale de tout ce qui se touche */
  --v3-largeur:520px; --v3-largeur-large:1120px;
  --v3-vite:.16s; --v3-lent:.32s;
  color-scheme:dark;
}
/* JOUR : la même charte en clair. v3.js pose html.jour (07 h–19 h, heure suisse) ou l'ancien bouton lune ;
   html.nuit force la nuit. Sans script : un appareil réglé en clair lit la version claire. */
html.jour, html[data-theme="light"] {
  --v3-fond:#F4F7FF; --v3-fond2:#E9EEFB;
  --v3-verre:rgba(255,255,255,.86); --v3-verre2:rgba(10,20,40,.045); --v3-verre3:rgba(10,20,40,.08);
  --v3-bord:rgba(10,20,40,.10); --v3-bord2:rgba(10,20,40,.18);
  --v3-fort:#0A1428; --v3-texte:#182238; --v3-doux:#3E4A63; --v3-sourd:#5A6580;
  /* textes d'accent du jour : les bleus et le vert foncés d'un cran (4,5:1 au moins sur le fond clair) */
  /* #1B49B3 = #1F56D6 80 % + #0A1428 ; #0A5F4A = #0A7F58 70 % + #0A1428 (lisibles sur le fond clair ET sous le halo bleu du haut) */
  --v3-bleu2:#1B49B3; --v3-bleu3:#1B49B3; --v3-vert:#0A5F4A; --v3-rouge:#C23B47; --v3-jaune:#B7791F;
  --v3-degrade-texte:linear-gradient(90deg,#1B49B3,#0A5F4A);
  --v3-lueur:0 10px 26px rgba(47,107,239,.30); --v3-lueur-vert:0 10px 26px rgba(14,159,110,.28);
  --v3-ombre:0 10px 30px rgba(20,40,90,.12); --v3-ombre-douce:0 4px 14px rgba(20,40,90,.10);
  --v3-halo:rgba(61,123,255,.16); --v3-decor-opacite:.10;
  --v3-anneau:rgba(47,107,239,.22);
  color-scheme:light;
}
@media (prefers-color-scheme: light) { html:not(.nuit):not(.jour):not([data-theme]) { color-scheme:light; } }

/* ---------- 2. SOCLE ---------- */
.v3 *, .v3 *::before, .v3 *::after { box-sizing:border-box; }
html.v3 { background:var(--v3-fond); -webkit-text-size-adjust:100%; }
.v3 body, body.v3 { margin:0; min-height:100vh; background:var(--v3-fond); color:var(--v3-texte); font:16px/1.5 var(--v3-police);
  -webkit-font-smoothing:antialiased; -webkit-tap-highlight-color:transparent; }
:where(.v3) a { color:inherit; } /* sans poids : la couleur d'un bouton-lien (.btnPlein…) l'emporte toujours (lisibilité, 18.10.2026) */
.v3 img, .v3 svg { display:block; max-width:100%; }
.v3 h1, .v3 h2, .v3 h3, .v3 p { margin:0; }
.v3 h1 { font-size:var(--v3-t6); line-height:1.15; font-weight:800; letter-spacing:-.02em; color:var(--v3-fort); text-wrap:balance; }
.v3 h2 { font-size:var(--v3-t5); line-height:1.2; font-weight:800; letter-spacing:-.01em; color:var(--v3-fort); text-wrap:balance; }
.v3 h3 { font-size:var(--v3-t4); line-height:1.25; font-weight:800; color:var(--v3-fort); }
.v3 .v3-grad { background:var(--v3-degrade-texte); -webkit-background-clip:text; background-clip:text; color:transparent; }
.v3 .v3-sous { margin-top:var(--v3-s2); font-size:var(--v3-t3); font-weight:600; color:var(--v3-doux); line-height:1.45; }
.v3 .v3-sous b { color:var(--v3-fort); }
.v3 .v3-etiquette { margin:var(--v3-s6) 4px 0; font-size:var(--v3-t1); font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--v3-doux); }
.v3 .v3-aide { margin:6px 2px 0; font-size:var(--v3-t1); font-weight:600; color:var(--v3-sourd); }
.v3 .v3-erreur { margin:8px 2px 0; font-size:14.5px; font-weight:700; color:var(--v3-rouge); } .v3 .v3-erreur:empty { display:none; }
.v3 .v3-cache { display:none !important; }
.v3 .v3-prix, .v3 [translate="no"] { font-variant-numeric:tabular-nums; }
@media (min-width:760px) { :root { --v3-t6:38px; --v3-t5:27px; --v3-t7:48px; --v3-t8:68px; } }

/* page : colonne étroite (formulaires, suivi, offre) ou large (accueil, pages SEO) */
.v3 .v3-page { position:relative; z-index:1; max-width:var(--v3-largeur); margin:0 auto; padding:calc(12px + env(safe-area-inset-top,0px)) 16px calc(40px + env(safe-area-inset-bottom,0px)); }
.v3 .v3-page.large { max-width:var(--v3-largeur-large); padding-left:22px; padding-right:22px; }
.v3 .v3-page.avec-barre { padding-bottom:calc(170px + env(safe-area-inset-bottom,0px)); }
.v3 .v3-section { margin-top:var(--v3-s7); }
.v3 .v3-section > h2 + p { margin-top:var(--v3-s2); color:var(--v3-doux); font-weight:600; }

/* décor de fond : la carte de Lausanne la nuit, voilée, et le halo bleu — comme offre.html */
.v3 .v3-decor { position:fixed; inset:0; z-index:0; pointer-events:none; overflow:hidden; }
.v3 .v3-decor .carte { position:absolute; left:50%; top:0; width:720px; height:1160px; margin-left:-360px; background:url(/img/connexion-lausanne-nuit.webp) 0 0 / 720px 1160px no-repeat; opacity:var(--v3-decor-opacite); }
.v3 .v3-decor .voile { position:absolute; inset:0; background:linear-gradient(180deg, transparent 0%, var(--v3-fond) 55%); }
.v3 .v3-decor .lueur { position:absolute; left:0; right:0; top:0; height:380px; background:radial-gradient(ellipse at 50% 0%, var(--v3-halo) 0%, transparent 62%); }
@media (min-width:760px) { .v3 .v3-decor .carte { width:1440px; margin-left:-720px; background-size:1440px 1160px; } }

/* ---------- 3. EN-TÊTE : logo · navigation · FR/EN · thème ---------- */
.v3 .v3-haut { position:sticky; top:0; z-index:40; display:flex; align-items:center; justify-content:space-between; gap:var(--v3-s3); min-height:60px;
  padding:calc(6px + env(safe-area-inset-top,0px)) 16px 6px; margin:0 -16px; background:color-mix(in srgb, var(--v3-fond) 82%, transparent);
  -webkit-backdrop-filter:blur(18px) saturate(1.3); backdrop-filter:blur(18px) saturate(1.3); border-bottom:1px solid var(--v3-bord); }
.v3 .v3-page.large .v3-haut { margin:0 -22px; padding-left:22px; padding-right:22px; }
.v3 .v3-marque { display:flex; align-items:center; min-height:var(--v3-toucher); color:var(--v3-fort); text-decoration:none; }
.v3 .v3-marque svg { height:38px; width:auto; }
.v3 .v3-marque-texte { font-size:15px; font-weight:800; letter-spacing:3px; color:var(--v3-fort); }
.v3 .v3-marque-texte small { font-weight:700; letter-spacing:1px; color:var(--v3-doux); font-size:11px; margin-left:6px; }
.v3 .v3-nav { display:none; gap:4px; flex:1; justify-content:center; }
.v3 .v3-nav a { display:inline-flex; align-items:center; min-height:40px; padding:0 12px; border-radius:var(--v3-rond); font-size:var(--v3-t2); font-weight:700; color:var(--v3-doux); text-decoration:none; }
.v3 .v3-nav a:hover, .v3 .v3-nav a[aria-current="page"] { color:var(--v3-fort); background:var(--v3-verre2); }
@media (min-width:900px) { .v3 .v3-nav { display:flex; } }
.v3 .v3-outils { display:flex; align-items:center; gap:var(--v3-s2); }
/* la bascule FR | EN glissante */
.v3 .v3-langues { position:relative; display:inline-flex; padding:4px; border-radius:var(--v3-rond); background:var(--v3-verre); border:1px solid var(--v3-bord); isolation:isolate; }
.v3 .v3-langues::before { content:""; position:absolute; z-index:-1; top:4px; bottom:4px; left:4px; width:calc(50% - 4px); border-radius:var(--v3-rond); background:var(--v3-degrade-bouton); box-shadow:0 4px 14px rgba(47,107,239,.35); transition:transform var(--v3-lent) cubic-bezier(.2,.8,.2,1); }
.v3 .v3-langues.en::before { transform:translateX(100%); }
.v3 .v3-langues a, .v3 .v3-langues button { min-width:46px; min-height:40px; display:inline-grid; place-items:center; border:0; border-radius:var(--v3-rond); background:transparent; color:var(--v3-doux); font:inherit; font-size:14px; font-weight:800; letter-spacing:.04em; text-decoration:none; cursor:pointer; transition:color var(--v3-lent); }
.v3 .v3-langues [aria-pressed="true"], .v3 .v3-langues [aria-current="true"] { color:#fff; }
/* le bouton jour / nuit (reprend l'ancien #btnTheme) */
.v3 .v3-theme { width:44px; height:44px; display:inline-grid; place-items:center; border-radius:50%; border:1px solid var(--v3-bord); background:var(--v3-verre); color:var(--v3-fort); font:inherit; font-size:17px; cursor:pointer; transition:transform var(--v3-vite), background var(--v3-vite); }
.v3 .v3-theme:active { transform:scale(.94); }
.v3 .v3-theme svg { width:20px; height:20px; }
.v3 .v3-theme .soleil, .v3 .v3-theme .lune, .v3 .v3-theme .auto { display:none; }
html.jour .v3-theme .soleil { display:block; } html.nuit .v3-theme .lune { display:block; }
html:not(.jour):not(.nuit) .v3-theme .auto { display:block; }
/* menu téléphone (tiroir) */
.v3 .v3-burger { width:44px; height:44px; display:inline-grid; place-items:center; border-radius:50%; border:1px solid var(--v3-bord); background:var(--v3-verre); color:var(--v3-fort); font-size:20px; cursor:pointer; }
@media (min-width:900px) { .v3 .v3-burger { display:none; } }

/* ---------- 4. BOUTONS ---------- */
.v3 .v3-btn { position:relative; display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:54px; padding:0 22px; border:0; border-radius:var(--v3-r2);
  font:inherit; font-size:16.5px; font-weight:800; text-decoration:none; cursor:pointer; white-space:nowrap; user-select:none; -webkit-user-select:none;
  transition:transform var(--v3-vite) ease, box-shadow var(--v3-lent) ease, filter var(--v3-lent) ease; }
.v3 .v3-btn:active { transform:scale(.97); }
.v3 .v3-btn:disabled, .v3 .v3-btn[aria-disabled="true"] { opacity:.55; pointer-events:none; }
.v3 .v3-btn:focus-visible { outline:0; box-shadow:0 0 0 3px var(--v3-anneau), var(--v3-lueur); }
/* principal : UN par écran — dégradé, lueur douce, reflet, halo qui respire au survol */
.v3 .v3-btn.principal { color:#fff; background:var(--v3-degrade-bouton); box-shadow:var(--v3-lueur), inset 0 1px 0 rgba(255,255,255,.3); }
.v3 .v3-btn.principal::after { content:""; position:absolute; inset:-2px; border-radius:inherit; background:var(--v3-degrade); filter:blur(14px); opacity:.35; z-index:-1; transition:opacity var(--v3-lent); }
.v3 .v3-btn.principal:hover::after { opacity:.6; }
.v3 .v3-btn.principal.vert { background:var(--v3-degrade-vert); color:#05261A; box-shadow:var(--v3-lueur-vert), inset 0 1px 0 rgba(255,255,255,.35); }
.v3 .v3-btn.principal.vert::after { background:var(--v3-degrade-vert); }
/* secondaire : verre et contour */
.v3 .v3-btn.secondaire { color:var(--v3-fort); background:var(--v3-verre2); border:1.5px solid var(--v3-bord2); }
.v3 .v3-btn.secondaire:hover { background:var(--v3-verre3); }
/* discret : texte seul (« Appeler » reste petit, jamais mis en avant) */
.v3 .v3-btn.discret { min-height:44px; padding:0 12px; color:var(--v3-doux); background:transparent; font-weight:700; text-decoration:underline; text-underline-offset:4px; }
.v3 .v3-btn.large { width:100%; min-height:58px; font-size:17.5px; }
.v3 .v3-btn.petit { min-height:44px; padding:0 16px; font-size:15px; border-radius:12px; }
/* le petit rond (téléphone, WhatsApp, partager) */
.v3 .v3-rond { width:var(--v3-toucher); height:var(--v3-toucher); display:inline-grid; place-items:center; border-radius:50%; border:1px solid var(--v3-bord); background:var(--v3-verre); color:var(--v3-fort); text-decoration:none; cursor:pointer; transition:transform var(--v3-vite); }
.v3 .v3-rond:active { transform:scale(.94); } .v3 .v3-rond svg { width:22px; height:22px; }

/* ---------- 5. CARTES (feuilles de verre) ---------- */
.v3 .v3-carte { position:relative; margin-top:var(--v3-s4); padding:20px 18px 18px; border-radius:var(--v3-r5); background:var(--v3-verre); border:1px solid var(--v3-bord);
  -webkit-backdrop-filter:blur(22px) saturate(1.3); backdrop-filter:blur(22px) saturate(1.3); box-shadow:var(--v3-ombre); }
.v3 .v3-carte.plate { backdrop-filter:none; -webkit-backdrop-filter:none; box-shadow:var(--v3-ombre-douce); }
.v3 .v3-carte.accent { background:var(--v3-degrade-bande); color:#fff; border:0; } .v3 .v3-carte.accent h1, .v3 .v3-carte.accent h2, .v3 .v3-carte.accent h3, .v3 .v3-carte.accent .v3-sous, .v3 .v3-carte.accent .v3-sous b { color:#fff; }
.v3 .v3-carte.lien { display:block; text-decoration:none; transition:transform var(--v3-vite), border-color var(--v3-vite); }
.v3 .v3-carte.lien:hover { transform:translateY(-2px); border-color:var(--v3-bord2); } .v3 .v3-carte.lien:active { transform:scale(.985); }
.v3 .v3-carte .v3-photo { margin:-20px -18px 14px; border-radius:var(--v3-r5) var(--v3-r5) 0 0; aspect-ratio:16/9; object-fit:cover; width:calc(100% + 36px); max-width:none; }
.v3 .v3-grille { display:grid; gap:var(--v3-s4); grid-template-columns:1fr; }
@media (min-width:640px) { .v3 .v3-grille { grid-template-columns:repeat(2,1fr); } .v3 .v3-grille.trois { grid-template-columns:repeat(3,1fr); } }
.v3 .v3-grille .v3-carte { margin-top:0; }
/* chiffres clés */
.v3 .v3-chiffres { display:grid; grid-template-columns:repeat(2,1fr); gap:var(--v3-s3); margin-top:var(--v3-s4); }
@media (min-width:640px) { .v3 .v3-chiffres { grid-template-columns:repeat(4,1fr); } }
.v3 .v3-chiffre { padding:16px 14px; border-radius:var(--v3-r4); background:var(--v3-verre2); border:1px solid var(--v3-bord); }
.v3 .v3-chiffre b { display:block; font-size:var(--v3-t6); line-height:1; font-weight:800; letter-spacing:-.02em; color:var(--v3-fort); }
.v3 .v3-chiffre span { display:block; margin-top:6px; font-size:var(--v3-t1); font-weight:700; color:var(--v3-doux); }
/* lignes de récapitulatif */
.v3 .v3-recap { margin:0; padding:0; list-style:none; }
.v3 .v3-recap li { padding:12px 0; border-top:1px solid var(--v3-bord); } .v3 .v3-recap li:first-child { border-top:0; padding-top:2px; }
.v3 .v3-recap .t { font-size:16.5px; font-weight:800; color:var(--v3-fort); } .v3 .v3-recap .d { font-size:15px; font-weight:600; color:var(--v3-doux); margin-top:2px; }
.v3 .v3-total { display:flex; justify-content:space-between; align-items:baseline; gap:12px; margin-top:6px; padding-top:12px; border-top:1px solid var(--v3-bord); font-size:16px; font-weight:700; color:var(--v3-doux); }
.v3 .v3-total b { font-size:22px; font-weight:800; color:var(--v3-fort); white-space:nowrap; }
/* trajet : départ → arrivée, points reliés */
.v3 .v3-trajet { margin:0; padding:0; list-style:none; } .v3 .v3-trajet li { position:relative; padding:6px 0 6px 28px; font-size:16px; font-weight:700; color:var(--v3-fort); }
.v3 .v3-trajet li::before { content:""; position:absolute; left:4px; top:12px; width:12px; height:12px; border-radius:50%; background:var(--v3-bleu2); box-shadow:0 0 0 3px color-mix(in srgb, var(--v3-bleu2) 25%, transparent); }
.v3 .v3-trajet li:last-child::before { background:var(--v3-vert); box-shadow:0 0 0 3px color-mix(in srgb, var(--v3-vert) 25%, transparent); }
.v3 .v3-trajet li + li::after { content:""; position:absolute; left:9px; top:-14px; height:22px; border-left:2px dashed var(--v3-bord2); }
.v3 .v3-trajet small { display:block; font-size:var(--v3-t1); font-weight:600; color:var(--v3-doux); }

/* ---------- 6. LISTES À COCHES, PASTILLES, ÉTATS ---------- */
.v3 .v3-coches { list-style:none; margin:16px 0 0; padding:0; display:grid; gap:10px; }
.v3 .v3-coches li { display:flex; gap:10px; align-items:flex-start; font-size:var(--v3-t2); line-height:1.4; font-weight:600; color:var(--v3-texte); }
.v3 .v3-coches li::before { content:""; flex:none; width:22px; height:22px; margin-top:-1px; border-radius:50%; background:color-mix(in srgb, var(--v3-vert) 18%, transparent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233EDFA5' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.2 4.2L19 7'/%3E%3C/svg%3E") center / 13px no-repeat; }
html.jour .v3-coches li::before { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230E9F6E' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.2 4.2L19 7'/%3E%3C/svg%3E"); }
.v3 .v3-coches.numeros { counter-reset:etape; } .v3 .v3-coches.numeros li::before { counter-increment:etape; content:counter(etape); background:var(--v3-degrade-bouton); color:#fff; font-size:12px; font-weight:800; display:grid; place-items:center; }
.v3 .v3-badge { display:inline-flex; align-items:center; gap:8px; padding:7px 14px; border-radius:var(--v3-rond); background:var(--v3-degrade-bouton); color:#fff; font-size:var(--v3-t0); font-weight:800; letter-spacing:2px; text-transform:uppercase; }
.v3 .v3-badge.vert { background:var(--v3-degrade-vert); color:#05261A; }
.v3 .v3-badge.doux { background:var(--v3-verre3); color:var(--v3-fort); letter-spacing:.06em; }
.v3 .v3-puces { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.v3 .v3-puce { display:inline-flex; align-items:center; gap:6px; min-height:40px; padding:0 14px; border-radius:var(--v3-rond); border:1px solid var(--v3-bord2); background:var(--v3-verre2); color:var(--v3-fort); font:inherit; font-size:14.5px; font-weight:700; text-decoration:none; cursor:pointer; transition:background var(--v3-vite), border-color var(--v3-vite), transform var(--v3-vite); }
.v3 .v3-puce:hover { background:var(--v3-verre3); } .v3 .v3-puce:active { transform:scale(.96); }
.v3 .v3-puce.on, .v3 .v3-puce[aria-pressed="true"] { background:var(--v3-degrade-bouton); border-color:transparent; color:#fff; }
.v3 .v3-etat { display:inline-flex; align-items:center; gap:9px; height:40px; padding:0 16px; border-radius:var(--v3-rond); background:var(--v3-verre); border:1px solid var(--v3-bord); font-size:15px; font-weight:800; color:var(--v3-fort); }
.v3 .v3-etat i { width:10px; height:10px; border-radius:50%; background:var(--v3-vert); box-shadow:0 0 10px var(--v3-vert); }
.v3 .v3-etat.attente i { background:var(--v3-bleu2); box-shadow:0 0 10px var(--v3-bleu2); } .v3 .v3-etat.gris i { background:var(--v3-sourd); box-shadow:none; } .v3 .v3-etat.alerte i { background:var(--v3-rouge); box-shadow:0 0 10px var(--v3-rouge); }
.v3 .v3-etat.direct i { animation:v3-pouls 1.6s ease-in-out infinite; }
@keyframes v3-pouls { 0%,100% { transform:scale(1); opacity:1; } 50% { transform:scale(1.35); opacity:.6; } }
.v3 .v3-note { display:flex; gap:12px; align-items:flex-start; margin-top:var(--v3-s4); padding:14px 16px; border-radius:var(--v3-r3); background:var(--v3-verre2); border:1px solid var(--v3-bord); font-size:var(--v3-t2); font-weight:600; color:var(--v3-texte); line-height:1.45; }
.v3 .v3-note.bleue { border-color:color-mix(in srgb, var(--v3-bleu2) 40%, transparent); background:color-mix(in srgb, var(--v3-bleu) 12%, transparent); }
.v3 .v3-note.verte { border-color:color-mix(in srgb, var(--v3-vert) 40%, transparent); background:color-mix(in srgb, var(--v3-vert) 10%, transparent); }

/* ---------- 7. PRIX ---------- */
.v3 .v3-prix { display:flex; align-items:baseline; gap:10px; flex-wrap:wrap; }
.v3 .v3-prix .des { font-size:var(--v3-t1); font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--v3-doux); align-self:flex-end; margin-bottom:6px; }
.v3 .v3-prix .montant { font-size:var(--v3-t7); line-height:1; font-weight:800; letter-spacing:-.02em; color:var(--v3-fort); white-space:nowrap; }
.v3 .v3-prix .montant small { font-size:.5em; font-weight:800; color:var(--v3-doux); margin-left:4px; letter-spacing:0; }
.v3 .v3-prix .par { font-size:var(--v3-t3); font-weight:700; color:var(--v3-doux); }
.v3 .v3-prix .avant { font-size:var(--v3-t3); font-weight:700; color:var(--v3-sourd); text-decoration:line-through; }
.v3 .v3-prix.geant .montant { font-size:var(--v3-t8); }
.v3 .v3-prix-sous { margin-top:6px; font-size:var(--v3-t1); font-weight:600; color:var(--v3-doux); }
.v3 .v3-prix-sous b { color:var(--v3-vert); }
.v3 .v3-prix-ligne { display:flex; justify-content:space-between; gap:12px; padding:9px 0; border-top:1px solid var(--v3-bord); font-size:15px; font-weight:600; color:var(--v3-doux); }
.v3 .v3-prix-ligne:first-of-type { border-top:0; } .v3 .v3-prix-ligne b { color:var(--v3-fort); font-weight:800; white-space:nowrap; }
.v3 .v3-prix-ligne.rabais b { color:var(--v3-vert); }

/* ---------- 8. CHAMPS ---------- */
.v3 .v3-champ { display:block; margin-top:14px; }
.v3 .v3-champ > span { display:block; margin:0 0 6px 2px; font-size:14px; font-weight:700; color:var(--v3-doux); }
.v3 .v3-champ input, .v3 .v3-champ textarea, .v3 .v3-champ select, .v3 .v3-saisie { width:100%; min-height:52px; padding:13px 14px; border-radius:16px; border:1.5px solid var(--v3-bord2); background:var(--v3-verre2); color:var(--v3-fort); font:inherit; font-size:17px; font-weight:600; outline:none; -webkit-appearance:none; appearance:none; }
.v3 .v3-champ input::placeholder, .v3 .v3-champ textarea::placeholder { color:var(--v3-sourd); font-weight:600; }
.v3 .v3-champ textarea { min-height:76px; resize:vertical; font-size:16px; }
.v3 .v3-champ input:focus, .v3 .v3-champ textarea:focus, .v3 .v3-champ select:focus { border-color:var(--v3-bleu2); box-shadow:0 0 0 3px var(--v3-anneau); }
.v3 .v3-champ input.choisi { border-color:color-mix(in srgb, var(--v3-vert) 60%, transparent); }
.v3 .v3-champ input[readonly] { opacity:.7; }
.v3 .v3-champ.erreur input, .v3 .v3-champ.erreur textarea { border-color:var(--v3-rouge); }
.v3 .v3-champ.icone { position:relative; } .v3 .v3-champ.icone input { padding-left:46px; }
.v3 .v3-champ.icone svg { position:absolute; left:14px; bottom:15px; width:22px; height:22px; color:var(--v3-bleu2); pointer-events:none; }
.v3 .v3-deux { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.v3 .v3-segments { display:grid; grid-auto-flow:column; grid-auto-columns:1fr; gap:4px; margin-top:14px; padding:4px; border-radius:var(--v3-r3); background:var(--v3-verre2); border:1px solid var(--v3-bord); }
.v3 .v3-segments button { min-height:46px; border:0; border-radius:14px; background:transparent; color:var(--v3-doux); font:inherit; font-size:15.5px; font-weight:800; cursor:pointer; transition:background var(--v3-vite), color var(--v3-vite); }
.v3 .v3-segments button[aria-pressed="true"] { background:var(--v3-degrade-bouton); color:#fff; box-shadow:0 4px 14px rgba(47,107,239,.3); }
.v3 .v3-compteur { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:14px; padding:6px 6px 6px 14px; border-radius:18px; background:var(--v3-verre2); border:1px solid var(--v3-bord); }
.v3 .v3-compteur > span { font-size:16px; font-weight:700; color:var(--v3-texte); }
.v3 .v3-pas { display:flex; align-items:center; gap:6px; }
.v3 .v3-pas button { width:48px; height:48px; border-radius:14px; border:1px solid var(--v3-bord2); background:var(--v3-verre3); color:var(--v3-fort); font:inherit; font-size:24px; font-weight:700; cursor:pointer; }
.v3 .v3-pas button:active { transform:scale(.96); }
.v3 .v3-pas output { min-width:40px; text-align:center; font-size:21px; font-weight:800; color:var(--v3-fort); }
.v3 .v3-case { display:flex; align-items:center; gap:10px; min-height:48px; margin-top:12px; font-size:15.5px; font-weight:700; color:var(--v3-texte); cursor:pointer; }
.v3 .v3-case input { width:24px; height:24px; accent-color:#3EDFA5; margin:0; }
.v3 .v3-interrupteur { position:relative; width:52px; height:30px; flex:none; border-radius:var(--v3-rond); background:var(--v3-verre3); border:1px solid var(--v3-bord2); transition:background var(--v3-lent); }
.v3 .v3-interrupteur::after { content:""; position:absolute; top:3px; left:3px; width:22px; height:22px; border-radius:50%; background:#fff; box-shadow:0 2px 6px rgba(0,0,0,.3); transition:transform var(--v3-lent) cubic-bezier(.2,.8,.2,1); }
.v3 .v3-case input:checked + .v3-interrupteur { background:var(--v3-degrade); border-color:transparent; } .v3 .v3-case input:checked + .v3-interrupteur::after { transform:translateX(22px); }
.v3 .v3-case input.v3-cache-case { position:absolute; opacity:0; width:0; height:0; }

/* ---------- 9. BARRE DU BAS ET FEUILLE QUI MONTE ---------- */
.v3 .v3-barre { position:fixed; z-index:30; left:0; right:0; bottom:0; padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px)); background:linear-gradient(180deg, transparent 0%, color-mix(in srgb, var(--v3-fond) 92%, transparent) 28%, var(--v3-fond) 100%); pointer-events:none; }
.v3 .v3-barre .dedans { pointer-events:auto; max-width:var(--v3-largeur); margin:0 auto; display:flex; flex-direction:column; gap:8px; padding:10px; border-radius:var(--v3-r4); background:var(--v3-verre); border:1px solid var(--v3-bord);
  -webkit-backdrop-filter:blur(22px); backdrop-filter:blur(22px); box-shadow:0 -6px 30px rgba(0,0,0,.25); }
.v3 .v3-barre .resume { display:flex; align-items:baseline; justify-content:space-between; flex-wrap:wrap; gap:4px 12px; padding:0 8px; font-size:16px; font-weight:700; color:var(--v3-doux); line-height:1.25; }
.v3 .v3-barre .resume b { font-size:21px; font-weight:800; color:var(--v3-fort); white-space:nowrap; }
.v3 .v3-barre .v3-btn { width:100%; }
.v3 .v3-feuille { position:fixed; z-index:45; left:0; right:0; bottom:0; max-height:88vh; overflow:auto; padding:8px 16px calc(20px + env(safe-area-inset-bottom,0px)); border-radius:var(--v3-r5) var(--v3-r5) 0 0; background:var(--v3-verre); border:1px solid var(--v3-bord); border-bottom:0;
  -webkit-backdrop-filter:blur(24px) saturate(1.3); backdrop-filter:blur(24px) saturate(1.3); box-shadow:0 -10px 40px rgba(0,0,0,.45); transform:translateY(104%); transition:transform var(--v3-lent) cubic-bezier(.2,.8,.2,1); }
.v3 .v3-feuille.ouverte { transform:none; }
.v3 .v3-feuille .poignee { width:44px; height:5px; margin:4px auto 12px; border-radius:var(--v3-rond); background:var(--v3-bord2); }
.v3 .v3-feuille .dedans { max-width:var(--v3-largeur); margin:0 auto; }
.v3 .v3-voile { position:fixed; inset:0; z-index:44; background:rgba(3,5,10,.55); opacity:0; pointer-events:none; transition:opacity var(--v3-lent); }
.v3 .v3-voile.ouvert { opacity:1; pointer-events:auto; }
@media (min-width:760px) { .v3 .v3-feuille { left:50%; right:auto; width:min(560px, 100%); transform:translate(-50%, 104%); } .v3 .v3-feuille.ouverte { transform:translate(-50%, 0); } }

/* ---------- 10. TABLEAU DE PRIX, FAQ, FIL ---------- */
.v3 .v3-tableau { width:100%; border-collapse:collapse; margin-top:var(--v3-s4); font-size:15px; }
.v3 .v3-tableau th { text-align:left; padding:10px 12px; font-size:var(--v3-t0); font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--v3-doux); border-bottom:2px solid var(--v3-bleu); }
.v3 .v3-tableau td { padding:14px 12px; border-bottom:1px solid var(--v3-bord); font-weight:600; color:var(--v3-texte); } .v3 .v3-tableau td b { color:var(--v3-fort); font-weight:800; white-space:nowrap; }
.v3 .v3-tableau tr:hover td { background:var(--v3-verre2); }
.v3 .v3-faq { margin-top:10px; border-radius:var(--v3-r3); background:var(--v3-verre2); border:1px solid var(--v3-bord); }
.v3 .v3-faq summary { list-style:none; display:flex; justify-content:space-between; align-items:center; gap:12px; min-height:var(--v3-toucher); padding:12px 16px; font-size:16px; font-weight:800; color:var(--v3-fort); cursor:pointer; }
.v3 .v3-faq summary::-webkit-details-marker { display:none; }
.v3 .v3-faq summary::after { content:"+"; flex:none; width:28px; height:28px; display:grid; place-items:center; border-radius:50%; background:var(--v3-verre3); font-size:18px; transition:transform var(--v3-lent); }
.v3 .v3-faq[open] summary::after { transform:rotate(45deg); }
.v3 .v3-faq p { padding:0 16px 14px; font-size:15px; font-weight:600; color:var(--v3-doux); line-height:1.5; }
.v3 .v3-fil { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; font-size:var(--v3-t1); font-weight:700; color:var(--v3-sourd); }
.v3 .v3-fil a { color:var(--v3-doux); text-decoration:none; min-height:32px; display:inline-flex; align-items:center; } .v3 .v3-fil a:hover { color:var(--v3-fort); }
.v3 .v3-fil span::before { content:"›"; margin-right:6px; }

/* ---------- 11. PIED DE PAGE AVEC SIGNATURE ---------- */
/* z-index 0 : la barre « Réserver » fixe (dans <main>, z-index 1) passe AU-DESSUS du pied ; à 1, les textes du pied s'écrivaient sur la barre (lisibilité, 18.10.2026) */
.v3 .v3-pied { position:relative; z-index:0; margin-top:var(--v3-s8); padding:var(--v3-s6) 0 var(--v3-s4); border-top:1px solid var(--v3-bord); }
.v3 .v3-pied .signature { display:flex; align-items:center; gap:14px; }
.v3 .v3-pied .signature .trait { width:44px; height:5px; border-radius:var(--v3-rond); background:var(--v3-degrade); box-shadow:0 2px 12px rgba(47,107,239,.4); flex:none; }
.v3 .v3-pied .signature b { font-size:15px; font-weight:800; letter-spacing:3px; color:var(--v3-fort); }
.v3 .v3-pied .signature small { font-size:11px; font-weight:700; letter-spacing:1px; color:var(--v3-doux); margin-left:6px; }
.v3 .v3-pied .devise { margin-top:10px; font-size:var(--v3-t2); font-weight:700; color:var(--v3-doux); }
.v3 .v3-pied .colonnes { display:grid; gap:var(--v3-s5); margin-top:var(--v3-s5); grid-template-columns:1fr; }
@media (min-width:640px) { .v3 .v3-pied .colonnes { grid-template-columns:repeat(3,1fr); } }
.v3 .v3-pied .colonnes h4 { margin:0 0 6px; font-size:var(--v3-t0); font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--v3-doux); }
.v3 .v3-pied .colonnes a { display:inline-flex; align-items:center; min-height:36px; margin-right:12px; font-size:14.5px; font-weight:600; color:var(--v3-texte); text-decoration:none; }
.v3 .v3-pied .colonnes a:hover { color:var(--v3-fort); text-decoration:underline; text-underline-offset:3px; }
.v3 .v3-pied .mentions { margin-top:var(--v3-s5); padding-top:var(--v3-s4); border-top:1px solid var(--v3-bord); font-size:var(--v3-t0); line-height:1.7; color:var(--v3-sourd); text-align:center; }
.v3 .v3-pied .mentions a { display:inline-block; min-height:36px; line-height:36px; padding:0 6px; color:var(--v3-bleu3); text-decoration:none; }

/* ---------- 12. MOUVEMENT ---------- */
.v3 .v3-apparait { animation:v3-monte .5s cubic-bezier(.2,.8,.2,1) both; }
.v3 .v3-apparait.d1 { animation-delay:.08s; } .v3 .v3-apparait.d2 { animation-delay:.16s; } .v3 .v3-apparait.d3 { animation-delay:.24s; }
@keyframes v3-monte { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:none; } }
@media (prefers-reduced-motion:reduce) {
  .v3 *, .v3 *::before, .v3 *::after { transition:none !important; animation:none !important; }
  .v3 .v3-apparait { opacity:1; transform:none; }
}
/* impression (quittance) : fond blanc, pas de décor ni de barre */
@media print { .v3 .v3-decor, .v3 .v3-barre, .v3 .v3-haut .v3-outils { display:none !important; } html.v3, .v3 body { background:#fff !important; color:#000 !important; } .v3 .v3-carte { box-shadow:none; border-color:#ccc; background:#fff; } }
