/* ════════════════════════════════════════════════════════════════
   HOME — design « Voyagez l'esprit léger » (page d'accueil uniquement)
   Tout est préfixé .h- ou scopé sous body.home : aucune autre page
   n'est impactée. Les variables redéfinies ici rethèment aussi le
   tunnel de réservation, la modale CGV et les bandeaux (style.css).
   Mobile first : styles de base = mobile, puis min-width.
═══════════════════════════════════════════════════════════════ */
body.home {
  --ink:#0F172A; --ink-soft:#1E293B; --slate:#475569; --muted:#94A3B8;
  --line:#E2E8F0; --bg-soft:#F8FAFC;
  --blue:#2563EB; --blue-deep:#1D4ED8; --blue-light:#C7D9FE; --blue-pale:#EEF4FF;
  --rose:#0EA5E9;
  --font:'Schibsted Grotesk', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --r-sm:12px; --r:16px; --r-lg:22px; --r-xl:26px;
  --sh-blue:0 14px 36px rgba(37,99,235,0.30);
  --royal:#2563EB; --royal-700:#1D4ED8; --royal-800:#1E40AF; --royal-50:#EEF4FF; --royal-100:#E0EBFF;
  --sky:#0284C7; --sky-400:#38BDF8; --amber:#BAE6FD; --amber-400:#7DD3FC; --amber-500:#F5A524;
  --emerald:#059669; --emerald-50:#ECFDF5; --studio:#091024; --studio-line:#1A2747;
  background:#F8FAFC; color:#1E293B; font-weight:500;
}
body.home ::selection { background:var(--royal); color:#fff; }
.h-wrap { width:100%; max-width:1120px; margin:0 auto; padding:0 16px; }
.h-ico { width:18px; height:18px; flex-shrink:0; fill:none; stroke:currentColor; stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; }
.h-sr { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
body.home :focus-visible { outline:3px solid var(--sky-400); outline-offset:2px; border-radius:8px; }

/* Boutons */
.h-btn { display:inline-flex; align-items:center; justify-content:center; gap:10px;
  min-height:52px; padding:14px 24px; border-radius:16px; font-weight:800; font-size:1rem;
  background:var(--royal); color:#fff; box-shadow:0 14px 30px rgba(37,99,235,0.30);
  transition:background .2s, transform .15s; text-align:center; }
.h-btn:hover { background:var(--royal-700); }
.h-btn:active { transform:scale(.97); }
.h-btn.block { width:100%; }
.h-btn.lg { min-height:58px; font-size:1.05rem; font-weight:900; }
.h-btn.ghost { background:rgba(255,255,255,.12); box-shadow:none; border:1px solid rgba(255,255,255,.35); }
.h-btn.ghost:hover { background:rgba(255,255,255,.2); }

/* Pastille d'en-tête de section */
.h-eyebrow { display:inline-block; font-size:.72rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase;
  color:var(--royal); background:var(--royal-50); border:1px solid var(--royal-100); padding:6px 14px; border-radius:999px; }
.h-head { text-align:center; max-width:640px; margin:0 auto 36px; }
.h-head h2 { font-size:clamp(1.55rem, 5.6vw, 2.5rem); font-weight:900; letter-spacing:-.025em; line-height:1.15; color:var(--ink); margin-top:14px; }
.h-head p { font-size:.95rem; color:var(--slate); margin-top:10px; line-height:1.6; }
.h-section { padding:64px 0; }

/* ─── HEADER ─── */
.h-nav { position:sticky; top:0; z-index:80; background:rgba(255,255,255,.95);
  -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px); border-bottom:1px solid #F1F5F9; }
.h-nav-in { height:68px; display:flex; align-items:center; justify-content:space-between; gap:12px; }
.h-logo { display:flex; align-items:center; gap:10px; min-width:0; }
.h-logo-mark { width:42px; height:42px; border-radius:14px; background:var(--royal); display:flex; align-items:center; justify-content:center;
  box-shadow:0 6px 14px rgba(37,99,235,.3); flex-shrink:0; transition:background .2s; }
.h-logo:hover .h-logo-mark { background:var(--royal-700); }
.h-logo-mark svg { width:22px; height:22px; fill:#fff; }
.h-logo-name { display:block; font-size:1.05rem; font-weight:900; letter-spacing:-.02em; line-height:1; color:var(--ink); white-space:nowrap; }
.h-logo-name b { color:var(--royal); font-weight:900; }
.h-logo-sub { display:block; font-size:.7rem; font-weight:600; color:#64748B; margin-top:4px; white-space:nowrap; }
.h-nav-links { display:none; }
.h-nav-right { display:flex; align-items:center; gap:8px; flex-shrink:0; }
.h-nav-phone { display:none; align-items:center; gap:8px; font-size:.88rem; font-weight:800; color:#475569; padding:10px 12px; border-radius:12px; }
.h-nav-phone:hover { background:#F1F5F9; color:var(--royal); }
.h-nav-phone svg { color:var(--royal); }
.h-nav-cta { display:inline-flex; align-items:center; gap:8px; padding:11px 16px; border-radius:999px; background:var(--royal); color:#fff;
  font-weight:800; font-size:.88rem; box-shadow:0 8px 18px rgba(37,99,235,.25); white-space:nowrap; }
.h-nav-cta:hover { background:var(--royal-700); }
.h-nav-cta .h-ico { width:16px; height:16px; }
.h-nav-cta .long { display:none; }
@media (min-width:420px) { .h-nav-cta .long { display:inline; } .h-nav-cta .short { display:none; } }
@media (min-width:768px) {
  .h-nav-in { height:80px; }
  .h-logo-mark { width:48px; height:48px; border-radius:16px; }
  .h-logo-name { font-size:1.4rem; }
  .h-logo-sub { font-size:.75rem; }
  .h-nav-phone:not([hidden]) { display:flex; }
  .h-nav-cta { padding:12px 22px; font-size:.95rem; }
}
@media (min-width:1024px) {
  .h-nav-links { display:flex; gap:4px; }
  .h-nav-links a { font-size:.88rem; font-weight:700; color:#475569; padding:10px 12px; border-radius:10px; }
  .h-nav-links a:hover { color:var(--royal); background:#F1F5F9; }
}

/* ─── HERO ─── */
.h-hero { position:relative; overflow:hidden; padding:36px 0 64px;
  background:linear-gradient(180deg, #0284C7 0%, #38BDF8 52%, #F8FAFC 100%); }
.h-clouds { position:absolute; inset:0; pointer-events:none; opacity:.15; }
.h-clouds svg { position:absolute; fill:#fff; filter:blur(4px); }
.h-cloud-1 { top:-48px; left:-80px; width:450px; height:240px; animation:hDrift 20s ease-in-out infinite; }
.h-cloud-2 { top:64px; right:-80px; width:500px; height:280px; animation:hDrift 25s ease-in-out infinite reverse; }
@keyframes hDrift { 0%,100%{transform:translateX(0)} 50%{transform:translateX(20px)} }
.h-hero-in { position:relative; max-width:672px; margin:0 auto; text-align:center; }
.h-kicker { display:inline-flex; align-items:center; gap:8px; font-size:.75rem; font-weight:800; letter-spacing:.02em;
  color:#fff; background:rgba(255,255,255,.16); border:1px solid rgba(255,255,255,.35); padding:6px 14px; border-radius:999px; margin-bottom:16px; }
.h-kicker .h-ico { width:14px; height:14px; }
.h-hero h1 { font-size:clamp(1.9rem, 8.4vw, 3.75rem); font-weight:900; color:#fff; letter-spacing:-.03em; line-height:1.12;
  text-shadow:0 1px 2px rgba(2,6,23,.12); }
.h-hero h1 .amber { color:var(--amber); }
.h-hero-sub { font-size:1rem; font-weight:500; color:rgba(255,255,255,.96); max-width:560px; margin:16px auto 0; line-height:1.6; }

/* Carte calculateur */
.h-card { margin-top:28px; background:#fff; border-radius:26px; padding:20px; text-align:left;
  box-shadow:0 25px 50px -12px rgba(2,6,23,.28); border:1px solid #F1F5F9; }
.h-card > * + * { margin-top:18px; }
.h-card-top { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:12px 14px; border-radius:18px;
  background:rgba(238,244,255,.7); border:1px solid var(--royal-100); }
.h-card-top-l { display:flex; align-items:center; gap:12px; min-width:0; }
.h-card-top-ic { width:44px; height:44px; border-radius:12px; background:var(--royal); color:#fff; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.h-card-top-ic .h-ico { width:24px; height:24px; }
.h-card-top b { display:block; font-size:.95rem; font-weight:900; color:var(--ink); line-height:1.2; }
.h-card-top small { display:block; font-size:.75rem; font-weight:800; color:var(--royal-700); margin-top:2px; }
.h-badge-ok { padding:6px 12px; border-radius:999px; font-size:.68rem; font-weight:900; letter-spacing:.04em; text-transform:uppercase;
  background:#D1FAE5; color:#065F46; border:1px solid #A7F3D0; white-space:nowrap; }
.h-flabel { display:flex; align-items:center; gap:8px; font-size:.72rem; font-weight:900; letter-spacing:.06em; text-transform:uppercase; color:var(--royal-700); margin-bottom:8px; }
.h-flabel .h-ico { width:16px; height:16px; }
.h-frow { display:flex; gap:10px; }
.h-field { flex:1; min-width:0; display:flex; align-items:center; gap:8px; background:#F8FAFC; border:1px solid var(--line); border-radius:16px; padding:0 12px;
  transition:border-color .2s, background .2s; }
.h-field.time { flex:0 0 112px; padding:0 8px; }
.h-field.time > .h-ico { display:none; }
@media (min-width:480px) { .h-field.time { flex-basis:140px; padding:0 12px; } .h-field.time > .h-ico { display:block; } }
.h-field:focus-within { border-color:var(--royal); background:#fff; }
.h-field .h-ico { width:16px; height:16px; color:#94A3B8; }
.h-field input { width:100%; min-width:0; min-height:50px; border:0; background:transparent; font-size:16px; font-weight:700; color:var(--ink); outline:none; }
.h-cats { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.h-cat { min-height:46px; padding:10px 8px; border-radius:14px; border:1.5px solid var(--line); background:#F8FAFC; font-size:.82rem; font-weight:800; color:#334155;
  transition:all .15s; line-height:1.15; }
.h-cat:hover { border-color:var(--blue-light); background:#fff; }
.h-cat[aria-pressed="true"] { border-color:var(--royal); background:var(--royal-50); color:var(--royal-800); box-shadow:0 0 0 3px rgba(37,99,235,.12); }
@media (min-width:560px) { .h-cats { grid-template-columns:repeat(4,1fr); } }
.h-sum { display:flex; align-items:flex-end; justify-content:space-between; gap:12px; padding-top:14px; border-top:1px solid #F1F5F9; }
.h-sum-l b { display:block; font-size:1.02rem; font-weight:900; color:var(--ink); line-height:1.25; }
.h-sum-l small { display:block; font-size:.78rem; font-weight:600; color:#64748B; margin-top:3px; }
.h-sum-r { text-align:right; flex-shrink:0; }
.h-sum-r small { display:block; font-size:.66rem; font-weight:900; letter-spacing:.06em; text-transform:uppercase; color:#94A3B8; }
.h-price { display:block; font-size:2.1rem; font-weight:900; color:var(--royal); letter-spacing:-.03em; line-height:1.05; white-space:nowrap; min-height:2.2rem; }
.h-price.muted { font-size:1rem; color:#64748B; font-weight:800; letter-spacing:0; }
.h-price .cur { font-size:.7em; margin-left:2px; }
.h-price .spinner { border-top-color:var(--royal); }
.h-card-foot { display:flex; flex-wrap:wrap; justify-content:center; gap:6px 16px; font-size:.75rem; font-weight:700; color:#64748B; }
.h-card-foot span { display:inline-flex; align-items:center; gap:6px; }
.h-card-foot .h-ico { width:14px; height:14px; color:var(--emerald); }
@media (min-width:640px) {
  .h-hero { padding:48px 0 88px; }
  .h-hero-sub { font-size:1.12rem; }
  .h-card { padding:30px; }
  .h-price { font-size:2.5rem; }
}

/* Réassurance */
.h-trust { display:grid; grid-template-columns:1fr; gap:12px; margin-top:18px; text-align:left; }
.h-trust-i { display:flex; align-items:center; gap:14px; padding:14px 16px; border-radius:18px; background:rgba(255,255,255,.92);
  border:1px solid rgba(255,255,255,.6); box-shadow:0 1px 3px rgba(2,6,23,.06); }
.h-trust-i .h-trust-ic { margin:0; width:44px; height:44px; border-radius:12px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.h-trust-i .h-trust-ic.a { background:rgba(245,158,11,.12); color:#B45309; }
.h-trust-i .h-trust-ic.b { background:rgba(2,132,199,.10); color:var(--sky); }
.h-trust-i .h-trust-ic.c { background:rgba(16,185,129,.12); color:#047857; }
.h-trust-i .h-ico { width:22px; height:22px; }
.h-trust-i b { display:block; font-size:.9rem; font-weight:900; color:var(--ink); line-height:1.25; }
.h-trust-i span { display:block; font-size:.78rem; font-weight:500; color:#475569; margin-top:2px; }
@media (min-width:640px) { .h-trust { grid-template-columns:repeat(3,1fr); } }

/* ─── 4 ÉTAPES ─── */
.h-steps { display:grid; gap:20px; max-width:768px; margin:0 auto; }
.h-step { background:#fff; border:1px solid var(--line); border-radius:26px; padding:22px; box-shadow:0 1px 2px rgba(2,6,23,.04); }
.h-step-top { display:flex; align-items:center; justify-content:space-between; }
.h-step-top span { font-size:.8rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; color:var(--royal); }
.h-step-top i { font-style:normal; width:32px; height:32px; border-radius:50%; background:var(--royal-100); color:var(--royal-800); font-size:.85rem; font-weight:900;
  display:flex; align-items:center; justify-content:center; }
.h-step-art { margin-top:18px; height:190px; border-radius:18px; background:#F8FAFC; display:flex; align-items:center; justify-content:center; padding:12px; }
.h-step-art svg { width:100%; max-width:320px; height:auto; }
.h-step h3 { margin-top:18px; font-size:1.15rem; font-weight:900; color:var(--ink); letter-spacing:-.01em; }
.h-step p { margin-top:6px; font-size:.92rem; color:#475569; line-height:1.6; }
.h-step.last { background:rgba(236,253,245,.6); border:2px solid rgba(16,185,129,.35); }
.h-step.last .h-step-top span { color:#065F46; }
.h-step.last .h-step-top i { background:var(--emerald); color:#fff; }
.h-step.last .h-step-art { background:#fff; border:1px solid #D1FAE5; }
.h-step.last h3 { color:#022C22; }
.h-step.last p { color:#064E3B; }
@media (min-width:900px) {
  .h-steps { max-width:1040px; grid-template-columns:1fr 1fr; gap:24px; }
  .h-step { padding:30px; }
  .h-step-art { height:208px; }
}

/* ─── TARIFS ─── */
.h-prices { display:grid; gap:14px; max-width:820px; margin:0 auto; }
.h-price-card { background:#fff; border:1px solid var(--line); border-radius:22px; padding:22px; display:flex; align-items:center; justify-content:space-between; gap:14px; }
.h-price-card b { display:block; font-size:1.05rem; font-weight:900; color:var(--ink); }
.h-price-card span { display:block; font-size:.85rem; color:#64748B; margin-top:3px; }
.h-price-card .amt { text-align:right; flex-shrink:0; }
.h-price-card .amt small { display:block; font-size:.66rem; font-weight:900; letter-spacing:.06em; text-transform:uppercase; color:#94A3B8; }
.h-price-card .amt strong { font-size:2rem; font-weight:900; color:var(--royal); letter-spacing:-.03em; }
.h-prices-note { text-align:center; margin-top:18px; font-size:.88rem; color:#64748B; }
.h-prices-note a { color:var(--royal); font-weight:800; text-decoration:underline; text-underline-offset:3px; }
@media (min-width:700px) { .h-prices { grid-template-columns:1fr 1fr; } }

/* ─── LAVAGE (studio sombre) ─── */
.h-wash { background:#0F172A; color:#fff; padding:64px 0; }
.h-wash .h-eyebrow { color:var(--sky-400); background:rgba(56,189,248,.10); border-color:rgba(56,189,248,.2); }
.h-wash .h-head h2 { color:#fff; }
.h-wash .h-head p { color:#94A3B8; }
.h-studio { max-width:768px; margin:0 auto; padding:16px; border-radius:26px; background:var(--studio); border:1px solid var(--studio-line);
  box-shadow:0 25px 50px -12px rgba(0,0,0,.5); }
.h-stage { position:relative; width:100%; height:240px; overflow:hidden; border-radius:22px;
  background:radial-gradient(circle at 50% 50%, #101E3D 0%, #060B18 100%); user-select:none; -webkit-user-select:none; touch-action:pan-y; cursor:ew-resize; }
.h-stage-layer { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; padding:16px; pointer-events:none; }
.h-stage-layer svg { width:100%; max-width:560px; height:auto; }
.h-stage-clean svg { filter:drop-shadow(0 10px 35px rgba(2,132,199,.35)); }
.h-stage-dirty { clip-path:inset(0 50% 0 0); }
.h-stage-dirty svg { filter:brightness(.8) contrast(.9); }
.h-stage-tags { position:absolute; top:12px; left:0; right:0; display:flex; justify-content:center; z-index:30; pointer-events:none; padding:0 10px; }
.h-stage-tags div { display:inline-flex; align-items:center; border-radius:999px; background:rgba(2,6,23,.85); border:1px solid rgba(51,65,85,.6); padding:3px; font-size:.62rem; font-weight:900; }
.h-stage-tags span { display:flex; align-items:center; gap:5px; padding:3px 7px; white-space:nowrap; }
@media (min-width:480px) { .h-stage-tags span { gap:6px; padding:4px 10px; } }
.h-stage-tags span::before { content:''; width:8px; height:8px; border-radius:50%; background:#A16207; }
.h-stage-tags span.a { color:#E2E8F0; }
.h-stage-tags span.b { color:var(--sky-400); border-left:1px solid rgba(51,65,85,.8); }
.h-stage-tags span.b::before { background:#34D399; }
.h-handle { position:absolute; top:0; bottom:0; left:50%; width:3px; background:#fff; box-shadow:0 0 16px rgba(255,255,255,.95); transform:translateX(-50%); z-index:25; }
.h-handle button { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:44px; height:44px; border-radius:50%; background:#fff; color:var(--royal-700);
  box-shadow:0 4px 18px rgba(0,0,0,.45), 0 0 0 4px rgba(37,99,235,.4); display:flex; align-items:center; justify-content:center; cursor:grab; touch-action:none; }
.h-handle button .h-ico { width:18px; height:18px; }
.h-wash-label { display:block; font-size:.72rem; font-weight:900; letter-spacing:.06em; text-transform:uppercase; color:#94A3B8; margin:24px 0 14px 4px; }
.h-pills { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.h-pill { position:relative; min-height:56px; padding:12px 14px; border-radius:16px; border:2px solid var(--studio-line); background:var(--studio); color:#E2E8F0;
  display:flex; align-items:center; justify-content:space-between; gap:6px; text-align:left; transition:all .15s; }
.h-pill:hover { background:#1E293B; }
.h-pill b { font-size:.85rem; font-weight:900; line-height:1.15; }
.h-pill em { font-style:normal; font-size:.85rem; font-weight:900; color:var(--sky-400); white-space:nowrap; }
.h-pill.rec { border-color:rgba(245,158,11,.5); }
.h-pill.rec em { color:var(--amber-400); }
.h-pill .h-rec { position:absolute; top:-10px; right:10px; padding:2px 9px; border-radius:999px; font-size:.58rem; font-weight:900; letter-spacing:.06em; text-transform:uppercase;
  background:var(--amber-400); color:#020617; border:1px solid var(--amber); }
.h-pill[aria-pressed="true"] { background:var(--royal); border-color:var(--royal); color:#fff; box-shadow:0 0 0 2px #fff; }
.h-pill[aria-pressed="true"] em { color:rgba(255,255,255,.85); }
.h-pill.wide { grid-column:1 / -1; }
.h-wash-desc { margin-top:16px; min-height:1.4em; font-size:.88rem; color:#CBD5E1; text-align:center; }
.h-wash-desc b { color:#fff; }
.h-wash-cta { margin-top:18px; }
.h-wash-note { margin-top:12px; font-size:.75rem; color:#64748B; text-align:center; }
@media (min-width:640px) {
  .h-wash { padding:80px 0; }
  .h-studio { padding:30px; }
  .h-stage { height:340px; }
  .h-stage-tags div { font-size:.72rem; }
}
@media (min-width:900px) { .h-pills { grid-template-columns:repeat(5,1fr); } .h-pill.wide { grid-column:auto; } }

/* ─── AVIS ─── */
.h-reviews { background:#fff; border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:64px 0; overflow:hidden; }
.h-stars { display:inline-flex; gap:4px; color:var(--amber-500); }
.h-stars svg { width:20px; height:20px; fill:currentColor; }
.h-chips { display:flex; flex-wrap:wrap; justify-content:center; gap:8px; margin-top:16px; }
.h-chip { display:inline-flex; align-items:center; gap:6px; padding:5px 12px; border-radius:999px; font-size:.75rem; font-weight:800; }
.h-chip .h-ico { width:14px; height:14px; }
.h-chip.b { background:var(--royal-50); color:var(--royal-700); border:1px solid var(--royal-100); }
.h-chip.g { background:var(--emerald-50); color:#065F46; border:1px solid #D1FAE5; }
.h-chip.a { background:#FFFBEB; color:#78350F; border:1px solid #FDE68A; }
.h-rating { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:10px 18px; margin:0 auto 28px; padding:14px 18px; max-width:560px;
  border-radius:18px; background:#F8FAFC; border:1px solid var(--line); }
.h-rating-n { font-size:1.6rem; font-weight:900; color:var(--ink); letter-spacing:-.02em; }
.h-rating-n small { font-size:.9rem; color:#94A3B8; font-weight:800; }
.h-rating-t { font-size:.85rem; font-weight:700; color:#475569; }
.h-rating a { font-size:.85rem; font-weight:800; color:var(--royal); text-decoration:underline; text-underline-offset:3px; }
body.home .reviews-track-wrap { position:relative; }
body.home .reviews-track { display:flex; gap:16px; animation:scroll-x 60s linear infinite; width:max-content; padding:4px 16px; }
body.home .reviews-track:hover { animation-play-state:paused; }
body.home .review-card { width:300px; flex-shrink:0; background:#F8FAFC; border:1px solid var(--line); border-radius:26px; padding:22px;
  display:flex; flex-direction:column; gap:12px; box-shadow:0 1px 2px rgba(2,6,23,.04); transition:box-shadow .2s; }
body.home .review-card:hover { border-color:var(--line); box-shadow:0 10px 24px rgba(2,6,23,.08); }
body.home .review-stars { display:flex; gap:2px; color:var(--amber-400); order:2; }
body.home .review-stars svg { width:16px; height:16px; }
body.home .review-text { order:3; font-size:.88rem; line-height:1.6; color:#334155; font-weight:500; font-style:normal; }
body.home .review-author { order:1; display:flex; align-items:center; gap:12px; }
body.home .review-avatar { width:44px; height:44px; border-radius:14px; background:var(--royal); color:#fff; font-weight:900; font-size:.85rem;
  display:flex; align-items:center; justify-content:center; flex-shrink:0; }
body.home .review-card:nth-child(3n+2) .review-avatar { background:var(--sky); }
body.home .review-card:nth-child(3n) .review-avatar { background:var(--emerald); }
body.home .review-meta { flex:1; min-width:0; }
body.home .review-name { font-size:.9rem; font-weight:900; color:var(--ink); }
body.home .review-trip { font-size:.75rem; color:#64748B; font-weight:600; }
body.home .review-google-mark { width:18px; height:18px; flex-shrink:0; }
@media (min-width:640px) { body.home .review-card { width:370px; } .h-reviews { padding:80px 0; } }
@media (prefers-reduced-motion:reduce) {
  body.home .reviews-track, .h-cloud-1, .h-cloud-2 { animation:none; }
  body.home .reviews-track-wrap { overflow-x:auto; }
}

/* ─── TERMINAUX ─── */
.h-terms { display:grid; grid-template-columns:1fr 1fr; gap:12px; max-width:900px; margin:0 auto; }
.h-term { display:flex; flex-direction:column; gap:6px; padding:18px; border-radius:22px; background:#fff; border:1px solid var(--line); transition:all .2s; }
.h-term:hover { border-color:var(--royal); box-shadow:0 10px 24px rgba(37,99,235,.10); transform:translateY(-2px); }
.h-term-ic { width:40px; height:40px; border-radius:12px; background:var(--royal-50); color:var(--royal); display:flex; align-items:center; justify-content:center; }
.h-term b { font-size:1rem; font-weight:900; color:var(--ink); }
.h-term span { font-size:.8rem; color:#64748B; line-height:1.45; }
.h-term .go { margin-top:auto; padding-top:6px; font-size:.8rem; font-weight:800; color:var(--royal); }
.h-term.hours { background:var(--royal); border-color:var(--royal); }
.h-term.hours .h-term-ic { background:rgba(255,255,255,.16); color:#fff; }
.h-term.hours b, .h-term.hours .go { color:#fff; }
.h-term.hours span { color:rgba(255,255,255,.85); }
@media (min-width:800px) { .h-terms { grid-template-columns:repeat(4,1fr); } }

/* ─── FAQ ─── */
.h-faq { max-width:760px; margin:0 auto; display:grid; gap:10px; }
.h-faq details { background:#fff; border:1px solid var(--line); border-radius:18px; overflow:hidden; }
.h-faq details[open] { border-color:var(--blue-light); box-shadow:0 8px 20px rgba(37,99,235,.06); }
.h-faq summary { list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:18px 18px;
  font-size:.95rem; font-weight:800; color:var(--ink); min-height:56px; }
.h-faq summary::-webkit-details-marker { display:none; }
.h-faq summary::after { content:'+'; flex-shrink:0; width:28px; height:28px; border-radius:50%; background:var(--royal-50); color:var(--royal);
  display:flex; align-items:center; justify-content:center; font-size:1.1rem; font-weight:800; transition:transform .2s; }
.h-faq details[open] summary::after { transform:rotate(45deg); }
.h-faq .faq-body { padding:0 18px 18px; font-size:.9rem; color:#475569; line-height:1.65; }
.h-faq .faq-body a { color:var(--royal); font-weight:700; text-decoration:underline; }
.h-faq-more { text-align:center; margin-top:18px; }
.h-faq-more a { font-size:.9rem; font-weight:800; color:var(--royal); text-decoration:underline; text-underline-offset:3px; }

/* ─── CTA FINAL ─── */
.h-final { padding:0 0 64px; }
.h-final-in { max-width:900px; margin:0 auto; border-radius:28px; padding:40px 22px; text-align:center; color:#fff;
  background:linear-gradient(160deg, #0284C7 0%, #2563EB 60%, #1E40AF 100%); box-shadow:0 25px 50px -12px rgba(37,99,235,.45); position:relative; overflow:hidden; }
.h-final-in h2 { font-size:clamp(1.6rem, 6vw, 2.5rem); font-weight:900; letter-spacing:-.025em; line-height:1.15; }
.h-final-in h2 span { color:var(--amber); }
.h-final-in p { margin:12px auto 24px; max-width:520px; font-size:.98rem; color:rgba(255,255,255,.92); }
.h-final-in .h-btn { background:#fff; color:var(--royal-700); box-shadow:0 14px 30px rgba(2,6,23,.25); }
.h-final-in .h-btn:hover { background:#EEF4FF; }
.h-final-in .h-final-meta { margin:18px 0 0; font-size:.8rem; font-weight:700; color:rgba(255,255,255,.85); }

/* ─── FOOTER ─── */
.h-footer { background:#0F172A; color:#94A3B8; padding:48px 0 104px; font-size:.88rem; }
.h-foot-top { display:flex; flex-direction:column; align-items:center; gap:20px; padding-bottom:28px; border-bottom:1px solid #1E293B; text-align:center; }
.h-foot-brand { display:flex; align-items:center; gap:12px; }
.h-foot-brand .h-logo-mark { width:40px; height:40px; border-radius:12px; box-shadow:none; }
.h-foot-brand .h-logo-mark svg { width:20px; height:20px; }
.h-foot-brand span { font-size:1rem; font-weight:900; color:#fff; letter-spacing:-.01em; }
.h-foot-quick { display:flex; flex-wrap:wrap; justify-content:center; gap:10px 22px; font-weight:700; color:#CBD5E1; }
.h-foot-quick a:hover, .h-foot-cols a:hover { color:#fff; }
.h-foot-cols { display:grid; grid-template-columns:1fr 1fr; gap:28px 20px; padding:28px 0; border-bottom:1px solid #1E293B; }
.h-foot-cols h3 { font-size:.72rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; color:#fff; margin-bottom:12px; }
.h-foot-cols ul { list-style:none; display:grid; gap:9px; }
.h-foot-cols a { color:#94A3B8; cursor:pointer; overflow-wrap:anywhere; }
.h-foot-legal { padding-top:22px; text-align:center; display:grid; gap:8px; font-size:.78rem; color:#64748B; line-height:1.6; }
@media (min-width:768px) {
  .h-footer { padding-bottom:48px; }
  .h-foot-top { flex-direction:row; justify-content:space-between; text-align:left; }
  .h-foot-cols { grid-template-columns:repeat(4,1fr); }
}

/* ─── BARRE MOBILE COLLANTE (reprend #stickyCta) ─── */
body.home .sticky-cta { background:#fff; -webkit-backdrop-filter:none; backdrop-filter:none; border-top:1px solid var(--line);
  padding:12px 16px calc(12px + env(safe-area-inset-bottom)); gap:12px; box-shadow:0 -10px 30px rgba(2,6,23,.10); }
body.home .sticky-cta-price .from { color:#94A3B8; font-weight:900; letter-spacing:.06em; }
body.home .sticky-cta-price strong { font-size:1.45rem; font-weight:900; color:var(--royal); white-space:nowrap; }
body.home .sticky-cta-btn { min-height:52px; border-radius:16px; background:var(--royal); color:#fff; font-weight:800; font-size:.92rem; box-shadow:0 8px 18px rgba(37,99,235,.3); }

/* ─── TUNNEL / MODALES : ajustements au nouveau design ─── */
body.home .modal-overlay { background:rgba(2,6,23,.7); backdrop-filter:blur(4px); }
body.home .modal { border-radius:26px; border:1px solid #F1F5F9; }
body.home .modal-title { font-weight:900; }
body.home .form-group input, body.home .form-group select { font-size:16px; border-radius:12px; }
body.home .btn-primary { border-radius:16px; font-weight:800; }
body.home .btn-secondary { border-radius:16px; }
body.home .wash-option, body.home .toggle-option, body.home .payment-option { border-radius:16px; }
body.home .wash-option-badge { background:var(--amber-400); color:#020617; }
body.home section[id] { scroll-margin-top:76px; }
@media (min-width:768px) { body.home section[id] { scroll-margin-top:88px; } }

/* ─── BANDEAU CODE PROMO : en bas sur mobile, bandeau pleine largeur en haut sur ordinateur ─── */
body.home .promo-banner { background:var(--royal); gap:10px 12px; box-shadow:0 14px 34px rgba(2,6,23,.28); }
body.home .promo-banner p { font-size:.86rem; }
body.home .promo-banner-copy { display:inline-flex; align-items:center; gap:5px; vertical-align:middle; margin:0 2px;
  padding:4px 10px; border-radius:100px; font-weight:700; font-size:.75rem; line-height:1.2; font-family:inherit; letter-spacing:0;
  background:rgba(255,255,255,.16); color:#fff; border:1px solid rgba(255,255,255,.4); cursor:pointer; }
body.home .promo-banner-copy:hover { background:rgba(255,255,255,.26); }
body.home .promo-banner-copy svg { width:14px; height:14px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
@media (max-width:767px) {
  body.home .promo-banner { left:10px; right:10px; bottom:calc(12px + env(safe-area-inset-bottom)); border-radius:20px; padding:14px 14px 14px 18px; }
  body.home:has(.sticky-cta.show) .promo-banner { bottom:calc(88px + env(safe-area-inset-bottom)); }
  body.home.modal-open .promo-banner { display:none; }
  body.home .promo-banner { flex-wrap:wrap; }
  body.home .promo-banner p { flex:1 1 100%; }
  body.home .promo-banner-actions { flex:1 1 100%; }
  body.home .promo-banner-use { flex:1; }
}
@media (min-width:768px) {
  body.home .promo-banner { position:sticky; top:0; left:auto; right:auto; bottom:auto; z-index:90; max-width:none; margin:0;
    height:52px; padding:0 20px; border-radius:0; justify-content:center; box-shadow:none; }
  body.home .promo-banner p { flex:0 1 auto; font-size:.9rem; }
  body.home:has(#promoBanner:not([hidden])) .h-nav { top:52px; }
  body.home:has(#promoBanner:not([hidden])) section[id] { scroll-margin-top:140px; }
}


/* ═══════════════════════════════════════════════════════════
   RETOUCHES OCT. 2026 : même structure, finitions propres
   Bleu ciel uniquement, pas de jaune, éléments symétriques.
═══════════════════════════════════════════════════════════ */
body.home { --royal:#0A6CC2; --royal-700:#0858A0; --royal-800:#074A86; --royal-50:#EAF5FD; --royal-100:#D3E9FA;
  --blue:#0A6CC2; --blue-deep:#0858A0; --blue-light:#B9DCF7; --blue-pale:#EAF5FD;
  --sh-blue:0 12px 28px rgba(10,108,194,.28); }
body.home h1, body.home h2, body.home h3 { font-family:var(--font); }
.h-head h2 { margin-top:0; }

/* Boutons : relief net, état appuyé, flèche qui glisse */
.h-btn { border-radius:14px; background:linear-gradient(180deg,#1580DA 0%,#0A6CC2 100%);
  box-shadow:0 1px 0 rgba(255,255,255,.25) inset, 0 10px 24px rgba(10,108,194,.32); letter-spacing:-.005em; transition:background .2s, transform .15s, box-shadow .2s; }
.h-btn:hover { background:linear-gradient(180deg,#0F74C8 0%,#0858A0 100%); box-shadow:0 1px 0 rgba(255,255,255,.2) inset, 0 14px 30px rgba(10,108,194,.38); }
.h-btn .h-ico { transition:transform .2s; }
.h-btn:hover .h-ico { transform:translateX(3px); }
.h-btn.ghost { background:transparent; border:2px solid rgba(255,255,255,.7); color:#fff; box-shadow:none; }
.h-btn.ghost:hover { background:rgba(255,255,255,.14); border-color:#fff; }
.h-btn[hidden], .h-btn-tel[hidden] { display:none !important; }
.h-nav-cta { background:linear-gradient(180deg,#1580DA 0%,#0A6CC2 100%); box-shadow:0 8px 18px rgba(10,108,194,.28); }
.h-logo-mark { box-shadow:0 6px 14px rgba(10,108,194,.3); }

/* Héros : ciel plus profond, titre net */
.h-hero { padding:44px 0 72px; background:linear-gradient(180deg,#0B6FB8 0%,#2E9BE0 45%,#8FCBF2 78%,#F8FAFC 100%); }
.h-clouds { opacity:.18; }
.h-hero-place { font-size:.9rem; font-weight:700; color:rgba(255,255,255,.9); margin-bottom:14px; }
.h-hero h1 { font-weight:900; letter-spacing:-.035em; line-height:1.06; }
.h-hero h1 .hl { color:#CDEBFF; }
.h-hero-sub { max-width:520px; }

/* Calculateur */
.h-card { padding:22px; border-radius:24px; border:0; box-shadow:0 30px 60px -18px rgba(7,74,134,.45), 0 0 0 1px rgba(10,108,194,.06); }
.h-card > * + * { margin-top:20px; }
.h-card-top { padding:0 0 16px; border-radius:0; background:none; border:0; border-bottom:1px solid #EEF2F6; }
.h-card-top b { font-size:1.08rem; }
.h-card-top small { color:#64748B; font-weight:600; font-size:.8rem; margin-top:3px; }
.h-badge-ok { background:var(--royal-50); color:var(--royal-800); border:1px solid var(--royal-100); font-size:.78rem; letter-spacing:0; text-transform:none; padding:7px 12px; }
.h-dates { display:grid; gap:16px; }
.h-flabel { font-size:.8rem; letter-spacing:0; text-transform:none; font-weight:800; color:var(--ink); margin-bottom:8px; }
.h-frow { display:grid; grid-template-columns:1fr 112px; gap:8px; }
.h-field { padding:0 12px; border-radius:14px; border:1.5px solid #E2E8F0; background:#F8FAFC; }
.h-field.time { padding:0 10px; }
.h-field:hover { border-color:var(--blue-light); }
.h-field:focus-within { box-shadow:0 0 0 4px rgba(10,108,194,.12); }
.h-field input { min-height:52px; font-weight:700; }
@media (min-width:640px) {
  .h-card { padding:28px; }
  .h-dates { grid-template-columns:1fr 1fr; gap:16px; }
  .h-frow { grid-template-columns:1fr 104px; }
}
.h-sum { align-items:center; padding:16px 18px; border-top:0; border-radius:16px; background:var(--royal-50); }
.h-sum-l small { color:#4B6380; }
.h-sum-r small { color:#4B6380; letter-spacing:.02em; text-transform:none; font-size:.75rem; font-weight:700; }
.h-price { color:var(--royal-800); }
.h-card-btns { display:grid; gap:10px; }
.h-btn-tel { display:flex; align-items:center; justify-content:center; min-height:54px; border-radius:14px; border:1.5px solid var(--royal-100);
  background:#fff; color:var(--royal-800); font-weight:800; font-size:1rem; transition:background .2s, border-color .2s; }
.h-btn-tel:hover { background:var(--royal-50); border-color:var(--blue-light); }
.h-card-foot { gap:8px 0; }
.h-card-foot span { padding:0 12px; position:relative; }
.h-card-foot span + span::before { content:''; position:absolute; left:-2px; top:50%; width:4px; height:4px; border-radius:50%; background:#CBD5E1; transform:translateY(-50%); }

/* Chiffres de confiance : 3 blocs identiques */
.h-trust { gap:12px; margin-top:20px; text-align:center; }
.h-trust-i { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; padding:18px 16px; border-radius:18px;
  background:rgba(255,255,255,.95); border:1px solid #E6EEF5; box-shadow:0 4px 14px rgba(7,74,134,.06); }
.h-trust-i b { font-size:1.6rem; letter-spacing:-.03em; color:var(--royal-800); line-height:1.1; }
.h-trust-i span { font-size:.82rem; color:#475569; line-height:1.45; max-width:220px; margin:0; }
@media (min-width:640px) { .h-trust { grid-template-columns:repeat(3,1fr); } }

/* Étapes : 4 cartes identiques */
.h-step-top { justify-content:flex-start; }
.h-step-top i { width:36px; height:36px; background:var(--royal); color:#fff; font-size:.95rem; }
.h-step { display:flex; flex-direction:column; border-radius:24px; }
.h-step-art { background:var(--royal-50); }

/* Tarifs alignés sur la grille des étapes */
.h-prices { max-width:1040px; }
.h-price-card { padding:26px 28px; border-radius:24px; }
.h-price-card .amt strong { color:var(--royal-800); font-size:2.3rem; }
.h-price-card .amt small { letter-spacing:.02em; text-transform:none; font-size:.8rem; font-weight:700; }

/* Lavage */
.h-wash { background:#0B1B2E; }
.h-studio { background:#0E2238; border-color:#1C3653; }
.h-stage { background:radial-gradient(circle at 50% 50%, #12325A 0%, #08182B 100%); }
.h-wash-label { text-align:center; margin-left:0; letter-spacing:.02em; text-transform:none; font-size:.85rem; font-weight:700; }
.h-pills { grid-template-columns:repeat(2,1fr); }
.h-pill { flex-direction:column; justify-content:center; align-items:center; text-align:center; gap:4px; min-height:76px; padding:14px 10px;
  background:#0E2238; border-color:#1C3653; }
.h-pill:hover { background:#14304F; border-color:#2B4E75; }
.h-pill b { font-size:.92rem; }
.h-pill em, .h-pill.rec em { color:#7DD3FC; }
.h-pill.rec { border-color:#2E7FC4; }
.h-pill .h-rec { left:50%; right:auto; transform:translateX(-50%); white-space:nowrap; background:#7DD3FC; border-color:#BAE6FD; color:#062033; letter-spacing:.02em; }
.h-pill[aria-pressed="true"] { background:var(--royal); border-color:#7DD3FC; box-shadow:none; }
@media (min-width:900px) { .h-pills { grid-template-columns:repeat(5,1fr); } }
.h-wash-note a { color:#94A3B8; text-decoration:underline; }

/* Avis */
.h-rating { gap:10px 14px; }
body.home .review-card { border-radius:22px; background:#fff; }
body.home .review-card:nth-child(3n) .review-avatar { background:#0E7490; }

/* Terminaux : 4 cartes identiques */
.h-term { min-height:132px; padding:20px; }
.h-term.hours { background:var(--royal-50); border-color:var(--royal-100); }
.h-term.hours b { color:var(--ink); }
.h-term.hours span { color:#64748B; }
.h-term.hours .go { color:var(--royal); }

/* Contact direct */
.h-contact { padding-top:0; }
.h-contact-in { max-width:900px; margin:0 auto; text-align:center; padding:40px 22px; border-radius:28px; background:#fff; border:1px solid var(--line); }
.h-contact-in h2 { font-size:clamp(1.5rem,4.5vw,2.1rem); font-weight:900; letter-spacing:-.025em; color:var(--ink); }
.h-contact-in p { margin:10px auto 24px; max-width:540px; color:var(--slate); line-height:1.6; }
.h-contact-btns { display:grid; gap:12px; max-width:560px; margin:0 auto; }
@media (min-width:600px) { .h-contact-btns { grid-template-columns:1fr 1fr; } .h-contact-btns:has(> [hidden]) { grid-template-columns:1fr; max-width:360px; } }
.h-contact-btns a { display:flex; align-items:center; justify-content:center; min-height:60px; padding:0 20px; border-radius:14px; font-weight:800; font-size:1.05rem; }
.h-contact-btns a[hidden] { display:none; }
.h-btn-call { background:linear-gradient(180deg,#1580DA 0%,#0A6CC2 100%); color:#fff; box-shadow:0 10px 24px rgba(10,108,194,.3); }
.h-btn-call:hover { background:linear-gradient(180deg,#0F74C8 0%,#0858A0 100%); }
.h-btn-wa { background:#fff; color:#0F7A3E; border:1.5px solid #BFE5CD; }
.h-btn-wa:hover { background:#F0FAF4; }
.h-contact-mail { display:inline-block; margin-top:16px; font-size:.9rem; font-weight:700; color:var(--royal); text-decoration:underline; text-underline-offset:3px; }

/* CTA final */
.h-final-in { background:linear-gradient(160deg,#0B6FB8 0%,#0A6CC2 55%,#074A86 100%); box-shadow:0 25px 50px -12px rgba(7,74,134,.45); }
.h-final-in h2 span { color:#CDEBFF; }
.h-final-btns { display:flex; flex-wrap:wrap; justify-content:center; gap:12px; }
.h-final-btns .h-btn { min-width:220px; }
.h-final-in .h-btn:not(.ghost) { background:#fff; color:var(--royal-800); }
.h-final-in .h-btn:not(.ghost):hover { background:#EAF5FD; }
.h-final-in .h-btn.ghost { background:transparent; color:#fff; box-shadow:none; }
body.home .wash-option-badge { background:var(--royal-50); color:var(--royal-800); }
body.home .opt { font-weight:400; color:var(--muted); }
body.home .review-stars, .h-stars { color:#F5A524; }
.h-final-in .h-final-meta { text-align:center; }
.h-frow { grid-template-columns:1fr 124px; }
.h-field.time { padding:0 6px 0 10px; }
@media (min-width:640px) { .h-frow { grid-template-columns:1fr 116px; } }
@media (max-width:639px) {
  .h-trust { grid-template-columns:repeat(3,1fr); gap:8px; }
  .h-trust-i { padding:14px 8px; border-radius:14px; }
  .h-trust-i b { font-size:1.2rem; }
  .h-trust-i span { font-size:.7rem; }
}
.h-trust-i { justify-content:flex-start; }

/* Rappel des dates dans le tunnel */
.bk-recap { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 16px; margin-bottom:18px; border-radius:14px; background:var(--royal-50); border:1px solid var(--royal-100); }
.bk-recap[hidden], #bk-dates-fields[hidden] { display:none !important; }
.bk-recap-l { display:flex; flex-direction:column; gap:2px; min-width:0; }
.bk-recap-k { font-size:.75rem; font-weight:700; color:#4B6380; }
.bk-recap-l b { font-size:.95rem; color:var(--ink); }
.bk-recap-price { font-size:.85rem; font-weight:800; color:var(--royal-800); }
.bk-recap-edit { flex-shrink:0; padding:9px 16px; border-radius:10px; border:1.5px solid var(--blue-light); background:#fff; color:var(--royal-800); font-weight:800; font-size:.88rem; }
.bk-recap-edit:hover { background:#fff; border-color:var(--royal); }

/* ===== RETOUCHES 2 : héros allégé, terminaux informatifs ===== */
.h-hero { padding:52px 0 72px; background:linear-gradient(180deg,#07508F 0%,#0A6CC2 38%,#5CB3EA 74%,#F8FAFC 100%); }
.h-hero h1 { font-size:clamp(2.5rem, 11.5vw, 4.4rem); line-height:1.02; text-shadow:0 2px 24px rgba(4,40,80,.25); }
.h-hero h1 .hl { color:#BFE3FF; }
.h-hero-sub { font-size:1rem; font-weight:500; color:rgba(255,255,255,.85); margin-top:18px; }
.h-hero .h-card { margin-top:32px; }
.h-card-top { padding-bottom:14px; }
.h-card-top > b { font-size:1.15rem; font-weight:900; color:var(--ink); }
.h-flabel { font-size:.8rem; font-weight:800; color:#4B6380; letter-spacing:0; }
.h-sum-l small { font-weight:600; }
@media (min-width:640px){ .h-hero { padding:72px 0 96px; } .h-hero-sub { font-size:1.12rem; } }

.h-term { min-height:0; padding:20px; gap:8px; border-radius:18px; background:#fff; border:1px solid var(--line); box-shadow:none; cursor:default; }
.h-term:hover { transform:none; box-shadow:none; border-color:var(--line); }
.h-term b { font-size:1.05rem; }
.h-term span { font-size:.84rem; line-height:1.5; color:#475569; }
.h-term.hours { background:var(--royal-50); border-color:#CFE6F8; }
.h-term.hours b { color:var(--ink); }
.h-term.hours span { color:#475569; }
.h-terms-note { max-width:620px; margin:20px auto 0; text-align:center; font-size:.92rem; line-height:1.55; color:#475569; }
.h-hero h1 { font-size:clamp(2.35rem, 10.4vw, 4.4rem); text-wrap:balance; }
.h-hero h1 br { display:none; }
.h-hero h1 .hl { display:block; margin-top:4px; }
.h-term { padding:18px 16px; }

/* Comparateur lavage : photos avant / après */
.h-stage { height:auto; aspect-ratio:1600/893; background:#0b1220; }
.h-stage-layer { padding:0; display:block; }
.h-stage-layer img { width:100%; height:100%; object-fit:cover; display:block; -webkit-user-drag:none; }
@media (min-width:768px) { .h-stage { height:auto; } }

/* Étapes 2 et 4 : photos */
.h-step-photo { padding:0; overflow:hidden; background:#0b1220; }
.h-step-photo img { width:100%; height:100%; object-fit:cover; display:block; }
.h-step.last .h-step-photo { border:0; }

/* Héros : 1re ligne sur toute la largeur quand il y a la place */
.h-hero h1 { width:min(94vw, 1040px); margin-left:50%; transform:translateX(-50%); text-wrap:wrap; }
.h-hero h1 .hl { margin-top:2px; }
@media (min-width:600px) { .h-hero h1 { white-space:nowrap; } }
@media (max-width:599px) { .h-hero h1 { font-size:clamp(2rem, 9.2vw, 2.6rem); } .h-hero h1 .hl { text-wrap:balance; } }

/* Étapes : titre à côté du numéro, au-dessus de la photo */
.h-step-top { gap:12px; justify-content:flex-start; align-items:center; }
.h-step-top i { flex-shrink:0; }
.h-step .h-step-top h3 { margin:0; font-size:1.15rem; line-height:1.25; }

/* Héros : photo de fond (ciel + avion) avec voile bleu léger */
.h-hero {
  background:
    linear-gradient(180deg, rgba(6,64,122,.50) 0%, rgba(10,100,175,.22) 52%, rgba(248,250,252,.96) 100%),
    url(/img/hero-ciel.webp) 30% -110px / auto 130% no-repeat, #0A6CC2;
}
.h-hero .h-clouds { display:none; }
.h-hero h1 { text-shadow:0 2px 26px rgba(3,30,70,.5), 0 1px 3px rgba(3,30,70,.25); }
.h-hero-sub { color:#fff; text-shadow:0 1px 12px rgba(3,30,70,.55); }
@media (max-width:599px) { .h-hero { background-position:0 0, 4% 100%, 0 0; background-size:auto, auto 100%, auto; } }

/* ===== Carte prix : masquée sans dates, badge "Voiturier inclus" ===== */
.h-sum[hidden] { display:none; }
.h-sum { animation:hSumIn .25s ease both; }
@keyframes hSumIn { from { opacity:0; transform:translateY(-4px); } to { opacity:1; transform:none; } }
.h-incl { display:inline-flex; align-items:center; gap:5px; margin-top:8px; padding:4px 10px 4px 8px; border-radius:999px; background:#DCFCE7; color:#166534; font-size:.74rem; font-weight:800; line-height:1; }
.h-incl[hidden] { display:none; }
.h-incl svg { width:13px; height:13px; fill:none; stroke:currentColor; stroke-width:3; stroke-linecap:round; stroke-linejoin:round; }

/* ===== Tarifs : une seule carte compacte, deux colonnes ===== */
.h-prices { display:grid; grid-template-columns:1fr 1fr; gap:0; max-width:620px; margin:0 auto; background:#fff; border:1px solid var(--line); border-radius:22px; overflow:hidden; }
.h-price-card { display:flex; flex-direction:column; align-items:center; text-align:center; gap:2px; padding:20px 12px 18px; border:0; border-radius:0; background:none; }
.h-price-card + .h-price-card { border-left:1px solid var(--line); }
.h-price-card b { font-size:.95rem; font-weight:800; color:#475569; }
.h-price-card .amt { text-align:center; display:flex; align-items:baseline; justify-content:center; gap:6px; }
.h-price-card .amt small { display:inline; font-size:.85rem; font-weight:700; text-transform:none; letter-spacing:0; color:#94A3B8; }
.h-price-card .amt strong { font-size:2.3rem; line-height:1.1; color:var(--royal-800); }
.h-price-card > span { font-size:.82rem; color:#64748B; margin:0; }
.h-prices-note { max-width:520px; margin:16px auto 0; font-size:.85rem; line-height:1.5; }

/* ===== Terminaux : liste épurée ===== */
.h-tlist { display:grid; gap:10px; max-width:760px; margin:0 auto; }
.h-trow { display:flex; align-items:center; gap:14px; padding:14px 16px; border-radius:16px; background:#fff; border:1px solid var(--line); }
.h-trow i { flex-shrink:0; width:38px; height:38px; border-radius:12px; background:var(--royal-50); display:flex; align-items:center; justify-content:center; }
.h-trow i svg { width:20px; height:20px; fill:none; stroke:var(--royal); stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.h-trow b { display:block; font-size:1.02rem; font-weight:900; color:var(--ink); line-height:1.2; }
.h-trow span { display:block; font-size:.85rem; color:#64748B; margin-top:2px; }
.h-thours { display:flex; align-items:flex-start; gap:10px; max-width:760px; margin:16px auto 0; padding:14px 16px; border-radius:16px; background:var(--royal-50); font-size:.88rem; line-height:1.5; color:#475569; }
.h-thours svg { flex-shrink:0; width:20px; height:20px; margin-top:1px; fill:none; stroke:var(--royal); stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.h-thours b { color:var(--ink); }
@media (min-width:700px) { .h-tlist { grid-template-columns:repeat(3,1fr); } .h-trow { flex-direction:column; align-items:flex-start; gap:10px; padding:18px; } }

/* ===== Bandeau final : plus aéré, réassurance en liste ===== */
.h-final-in { padding:44px 22px 36px; }
.h-final-in p { margin:14px auto 26px; }
.h-final-in .h-final-meta { display:flex; flex-wrap:wrap; justify-content:center; gap:8px 18px; list-style:none; margin:24px 0 0; padding:0; font-size:.82rem; font-weight:600; color:rgba(255,255,255,.88); }
.h-final-in .h-final-meta li { display:flex; align-items:center; gap:6px; }
.h-final-in .h-final-meta li::before { content:""; width:6px; height:6px; border-radius:50%; background:#86EFAC; }
@media (max-width:520px) { .h-final-in .h-final-meta { flex-direction:column; align-items:center; gap:6px; } }
@media (max-width:520px) { .h-final-in .h-final-meta { align-items:flex-start; width:fit-content; margin-left:auto; margin-right:auto; } }

/* ===== Lavage : liste compacte, une ligne par formule (bouton rond + prix) ===== */
.h-pills { grid-template-columns:1fr; gap:8px; max-width:560px; margin:0 auto; }
.h-pill { flex-direction:row; justify-content:flex-start; align-items:center; text-align:left; gap:12px; min-height:54px; padding:12px 16px; border-radius:14px;
  background:rgba(255,255,255,.05); border:1.5px solid rgba(255,255,255,.14); color:#fff; }
.h-pill::before { content:""; flex-shrink:0; order:0; width:20px; height:20px; border-radius:50%; border:2px solid #5B7391; box-sizing:border-box; }
.h-pill b { order:1; flex:0 1 auto; font-size:1rem; }
.h-pill .h-rec { order:2; position:static; transform:none; left:auto; right:auto; top:auto; margin-right:auto; padding:3px 8px; background:#FBBF24; border:0; color:#3B2A00; font-size:.58rem; }
.h-pill b { margin-right:auto; }
.h-pill .h-rec + b { margin-right:0; }
.h-pill em { order:3; margin-left:auto; font-size:1rem; color:#7DD3FC; }
.h-pill:hover { background:rgba(255,255,255,.09); border-color:rgba(255,255,255,.3); }
.h-pill.rec { border-color:rgba(251,191,36,.55); }
.h-pill.wide { grid-column:auto; }
.h-pill[aria-pressed="true"] { background:#fff; border-color:#fff; color:var(--ink); box-shadow:0 8px 22px rgba(0,0,0,.25); }
.h-pill[aria-pressed="true"]::before { border-color:var(--royal); background:radial-gradient(var(--royal) 46%, transparent 52%); }
.h-pill[aria-pressed="true"] em { color:var(--royal-800); }
.h-wash-desc { font-size:.9rem; }

/* ===== Sections du bas allégées : avis, terminaux, FAQ + contact, bandeau final ===== */
.h-reviews { padding:40px 0; }
.h-reviews .h-head { margin-bottom:14px; }
.h-rating { margin-bottom:18px; padding:10px 16px; }
body.home .review-card { width:280px; padding:16px; gap:8px; border-radius:20px; }
body.home .review-avatar { width:38px; height:38px; border-radius:12px; }
@media (min-width:640px) { body.home .review-card { width:330px; } .h-reviews { padding:48px 0; } }
#terminaux { padding-top:40px; padding-bottom:28px; }
#terminaux .h-head { margin-bottom:16px; }
.h-tlist { grid-template-columns:repeat(3,1fr); gap:8px; max-width:640px; }
.h-trow { display:block; text-align:center; padding:12px 6px; border-radius:14px; }
.h-trow b { font-size:.95rem; }
.h-trow span { font-size:.72rem; line-height:1.3; }
@media (min-width:700px) { .h-trow { padding:14px 10px; } .h-trow b { font-size:1.02rem; } .h-trow span { font-size:.82rem; } }
.h-thours { display:block; background:none; padding:0; margin:12px auto 0; text-align:center; font-size:.82rem; max-width:640px; }
#faq { padding-bottom:28px; }
#faq .h-head { margin-bottom:16px; }
.h-faq { gap:8px; }
.h-faq summary { padding:13px 14px; font-size:.92rem; }
.h-faq .faq-body { padding:0 14px 14px; }
.h-faq-extra { display:grid; gap:8px; }
.h-faq-extra[hidden] { display:none; }
.h-faq-more { margin-top:12px; }
.h-faq-more button { background:none; border:0; font:inherit; font-size:.9rem; font-weight:800; color:var(--royal); text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
.h-contact-bar { max-width:760px; margin:16px auto 0; padding:10px 14px; border-radius:16px; background:var(--royal-50); display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; }
.h-contact-bar > b { font-size:.9rem; font-weight:900; color:var(--ink); }
.h-contact-bar .h-contact-btns { display:flex; gap:6px; max-width:none; margin:0; grid-template-columns:none; }
.h-contact-bar .h-contact-btns a { min-height:0; padding:8px 14px; border-radius:10px; font-size:.82rem; font-weight:800; background:#fff; color:var(--royal); }
.h-contact-bar .h-contact-btns a.h-btn-call { background:var(--royal); color:#fff; }
.h-contact-bar .h-contact-btns a[hidden] { display:none; }
.h-final { padding-bottom:40px; }
.h-final-in { padding:26px 18px; }
.h-final-in h2 { font-size:clamp(1.4rem,5vw,2rem); }
.h-final-btns { margin-top:16px; }
.h-final-in p { display:none; }
#faq { padding-bottom:40px; }
.h-rating { gap:4px 12px; }
.h-rating-t { font-size:.8rem; }
