/* GumGo · page de réservation. Une colonne guidée avec barre d'action fixe ; récapitulatif à droite sur grand écran. */
/* GumGo · page de réservation : une colonne guidée avec barre d'action fixe, récapitulatif à droite sur grand écran. */
:root{
  --bg:#F1F5F4; --surface:#FFFFFF; --sunk:#F6F9F8; --fg:#0E2627; --muted:#557070; --line:#D3DEDB;
  --brand:#005052; --brand-ink:#FFFFFF; --mint:#6DBEA8; --sel:#E6F4EF; --ring:#6DBEA8;
  --deal-bg:#CBEBE1; --deal-fg:#00524F; --warn-bg:#FBEBDD; --warn-fg:#8A3F0C; --logo-um:#005053;
  --f-display:"Archivo","Helvetica Neue",Arial,sans-serif;
  --f-body:"Archivo","Helvetica Neue",Arial,sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#081415; --surface:#0E2021; --sunk:#0B1A1B; --fg:#E2EEEB; --muted:#8AA4A0; --line:#22383A;
    --brand:#6DBEA8; --brand-ink:#052627; --mint:#6DBEA8; --sel:#12312E; --ring:#6DBEA8;
    --deal-bg:#1D4A43; --deal-fg:#A6E2D1; --warn-bg:#3A2413; --warn-fg:#F2B884; --logo-um:#E2EEEB;
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --bg:#081415; --surface:#0E2021; --sunk:#0B1A1B; --fg:#E2EEEB; --muted:#8AA4A0; --line:#22383A;
  --brand:#6DBEA8; --brand-ink:#052627; --mint:#6DBEA8; --sel:#12312E; --ring:#6DBEA8;
  --deal-bg:#1D4A43; --deal-fg:#A6E2D1; --warn-bg:#3A2413; --warn-fg:#F2B884; --logo-um:#E2EEEB;
  color-scheme:dark;
}
*{box-sizing:border-box}
body{background:var(--bg);color:var(--fg);font-family:var(--f-body);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}
button{font:inherit}
button:focus-visible,summary:focus-visible{outline:3px solid var(--ring);outline-offset:2px}
code{font-family:var(--f-mono);font-size:.9em}

.wrap{max-width:1080px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:0 56px}
.top{display:flex;align-items:center;justify-content:space-between;gap:10px 16px;flex-wrap:wrap;padding-block:20px 18px}
.brandline{display:flex;align-items:baseline;gap:6px 14px;flex-wrap:wrap;min-width:0}
.mark{display:block;line-height:0;align-self:center}
.logo{display:block;width:auto;aspect-ratio:1320/239}
.logo-um{fill:var(--logo-um)}
.mark .logo{height:24px}
.hero-logo{display:block;line-height:0;margin:0 0 6px;align-self:flex-start}
.hero-logo .logo{height:18px}
@media (min-width:600px){.hero-logo{margin-bottom:8px}.hero-logo .logo{height:24px}}
.tagline{color:var(--muted);font-size:14px}
.top-right{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.help{font-size:13px;color:var(--muted)}

.hero{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,40%);background:var(--surface);color:var(--fg);border:1px solid var(--line);border-radius:18px;overflow:hidden;margin:16px 0 18px;min-height:124px}
.hero-text{position:relative;z-index:1;display:flex;flex-direction:column;justify-content:center;gap:6px;padding:16px 6px 16px 18px;min-width:0}
.hero .wide{display:none}
.hero .nowrap{white-space:nowrap}
.nw{white-space:nowrap}
.hero-h{font-family:var(--f-display);font-stretch:118%;font-weight:780;font-size:clamp(20px,5.2vw,30px);line-height:1.08;letter-spacing:-.01em;margin:0;color:var(--brand);text-wrap:balance}
.hero-s{margin:0;font-size:13px;line-height:1.35;color:var(--muted)}
.hero-help{margin:2px 0 0;font-size:13px;font-weight:600}
.hero-vanbox{position:relative;min-height:96px}
.hero-vanbox::after{content:"";position:absolute;left:0;right:4%;bottom:8px;height:12px;background:radial-gradient(closest-side,rgba(0,0,0,.16),rgba(0,0,0,0));z-index:0}
.hero-van{position:absolute;z-index:1;right:1%;bottom:12px;width:108%;max-width:none;height:auto}
/* Ordinateur : camionnette posée en bas du bandeau, entière, sous le sélecteur de langue (jamais derrière). */
@media (min-width:600px){.hero{grid-template-columns:minmax(0,1fr) 300px;min-height:192px}.hero .wide{display:inline}.hero .narrow{display:none}.hero-text{padding:22px 0 22px 30px}.hero-s,.hero-help{font-size:14px}.hero-van{right:3%;width:94%;bottom:12px}.hero-vanbox::after{left:8%;right:4%;bottom:8px}}
body.s0 .top{display:none}
body:not(.s0) .hero{display:none}
.layout{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;align-items:start}
@media (min-width:920px){.layout{grid-template-columns:minmax(0,1fr) 320px}}
.flow{background:var(--surface);border:1px solid var(--line);border-radius:18px;min-width:0}
.flow-inner{padding:22px 18px 28px}
@media (min-width:600px){.flow-inner{padding:30px 32px 36px}}

.prog{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.seg{height:4px;border-radius:2px;background:var(--line);transition:background-color .25s}
.seg.done{background:var(--brand)}
.seg.now{background:var(--mint)}
.eyebrow{font-family:var(--f-mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:14px 0 0}
.q{font-family:var(--f-display);font-stretch:118%;font-weight:750;font-size:clamp(24px,5vw,32px);line-height:1.12;letter-spacing:-.01em;margin:8px 0;text-wrap:balance}
.q:focus{outline:none}
.lede{color:var(--muted);margin:0;max-width:60ch}

/* Advantages */
.perks{list-style:none;margin:18px 0 0;padding:14px 16px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 18px;background:var(--sunk);border:1px solid var(--line);border-radius:14px}
@media (max-width:520px){.perks{gap:10px 14px;padding:12px 14px;margin-top:14px}.perks .perk-s{display:none}}
@media (max-width:340px){.perks{grid-template-columns:minmax(0,1fr)}}
.perks li{position:relative;padding-left:22px;min-width:0}
.perk-t{display:block;font-weight:650;font-size:14px;line-height:1.3}
.perk-s{display:block;font-size:13px;color:var(--muted);line-height:1.35;margin-top:2px}

/* Choice cards */
.opts{display:grid;gap:10px;margin-top:22px}
.opt{position:relative;display:flex;align-items:flex-start;gap:14px;padding:16px;border:1.5px solid var(--line);border-radius:14px;background:var(--surface);cursor:pointer;transition:border-color .15s,background-color .15s}
.opt:hover{border-color:var(--mint)}
.opt.sel{border-color:var(--brand);background:var(--sel)}
.opt input,.tier input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.opt:has(input:focus-visible),.tier:has(input:focus-visible){outline:3px solid var(--ring);outline-offset:2px}
.dot{flex:none;width:20px;height:20px;border-radius:50%;border:2px solid var(--line);margin-top:2px;transition:background-color .15s,border-color .15s}
.sel .dot{border-color:var(--brand);background:var(--brand);box-shadow:inset 0 0 0 4px var(--sel)}
.opt-main{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.opt-title{font-weight:650;font-size:17px;line-height:1.3}
.opt-sub{color:var(--muted);font-size:14px}
.opt-price{flex:none;font-variant-numeric:tabular-nums;font-weight:600;font-size:15px;white-space:nowrap}

.opts .follow{margin:-2px 0 4px}
.callout{display:grid;gap:10px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.callout .follow-q,.callout .hint{margin:0}
.callout-actions{display:flex;flex-wrap:wrap;gap:8px}
.callout-actions a{text-decoration:none;display:inline-flex;align-items:center}
.nw{white-space:nowrap}
.xopts{display:grid;gap:10px;margin-top:14px}
.xopt{position:relative;display:flex;align-items:flex-start;gap:14px;padding:16px;border:1.5px solid var(--line);border-radius:14px;background:var(--surface);cursor:pointer;transition:border-color .15s,background-color .15s}
.xopt:hover{border-color:var(--mint)}
.xopt.sel{border-color:var(--brand);background:var(--sel)}
.xopt input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.xopt:has(input:focus-visible){outline:3px solid var(--ring);outline-offset:2px}
.xbox{flex:none;position:relative;width:20px;height:20px;border-radius:6px;border:2px solid var(--line);margin-top:2px;transition:background-color .15s,border-color .15s}
.xopt.sel .xbox{background:var(--brand);border-color:var(--brand)}
.xopt.sel .xbox::after{content:"";position:absolute;left:5px;top:1px;width:5px;height:10px;border:solid var(--brand-ink);border-width:0 2px 2px 0;transform:rotate(45deg)}
.xaddr{margin:0 0 4px}
.opt-veh{margin:24px 0 0}
.follow{margin-top:14px;padding:16px;border-radius:14px;background:var(--sunk);border:1px solid var(--line);display:grid;gap:16px}
.follow-q{font-weight:600;margin:0 0 8px;font-size:15px}
.mt{margin-top:24px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{font-size:15px;font-weight:550;color:var(--fg);background:var(--surface);border:1.5px solid var(--line);border-radius:999px;padding:9px 15px;cursor:pointer;transition:border-color .15s,background-color .15s}
.chip:hover{border-color:var(--mint)}
.chip.sel{border-color:var(--brand);background:var(--sel)}
.chip .nw{white-space:nowrap}
.chip.sm{font-size:13px;padding:6px 11px}
.notice{margin:0;padding:12px 14px;border-radius:10px;background:var(--deal-bg);color:var(--deal-fg);font-size:14px}
.notice.warn{background:var(--warn-bg);color:var(--warn-fg)}
.notice.neutral{background:var(--sunk);color:var(--fg);border:1px solid var(--line)}
.hint{color:var(--muted);font-size:14px;margin:14px 0 0}
.follow .hint{margin:0}

/* Vehicles */
.veh-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:24px}
.veh-head + .opts{margin-top:10px}
.veh-n{font-family:var(--f-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.veh-sum{display:flex;align-items:center;gap:6px 12px;flex-wrap:wrap;margin-top:14px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--sunk)}
.veh-l{font-weight:600;flex:1;min-width:0}
.veh-acts{display:flex;gap:16px}
.addveh{display:flex;align-items:flex-start;gap:14px;width:100%;margin-top:14px;padding:16px;border:1.5px solid var(--mint);border-radius:14px;background:var(--sel);color:var(--fg);cursor:pointer;text-align:left;font:inherit;transition:background-color .15s}
.addveh:hover{background:var(--deal-bg)}
.addveh-ico{flex:none;width:24px;height:24px;border-radius:50%;background:var(--brand);color:var(--brand-ink);display:grid;place-items:center;font-size:18px;font-weight:700;line-height:1}
.addveh-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.opt-price small{font-size:.72em;font-weight:600}
.bar-plus{margin-left:6px;font-family:var(--f-body);font-stretch:100%;font-size:12.5px;font-weight:500;color:var(--muted)}

/* FAQ */
.faq{margin-top:26px;border-top:1px solid var(--line);padding-top:14px}
.faq-h{font-family:var(--f-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0 0 4px}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;padding:12px 0;font-weight:600;font-size:15px;list-style:none;display:flex;justify-content:space-between;gap:12px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--muted);font-weight:400}
.faq details[open] summary::after{content:"−"}
.faq details p{margin:0 0 12px;color:var(--muted);font-size:14px;max-width:60ch}

/* Formulas */
.tiers{display:grid;gap:16px;margin-top:28px}
@media (min-width:640px){.tiers{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.tiers.c2{grid-template-columns:repeat(2,minmax(0,1fr))}}
.mt-s{margin-top:14px}
.tier{position:relative;display:flex;flex-direction:column;gap:12px;padding:20px 16px 18px;border:1.5px solid var(--line);border-radius:14px;background:var(--surface);cursor:pointer;transition:border-color .15s,background-color .15s}
.tier:hover{border-color:var(--mint)}
.tier.deal{border-color:var(--mint);box-shadow:inset 0 0 0 1.5px var(--mint)}
.tier.sel{border-color:var(--brand);background:var(--sel);box-shadow:inset 0 0 0 1.5px var(--brand)}
.tier.off{opacity:.55;cursor:not-allowed}
.tier.off:hover{border-color:var(--line)}
.badge-reco{position:absolute;top:-11px;left:14px;font-family:var(--f-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;background:var(--brand);color:var(--brand-ink);padding:3px 9px;border-radius:999px}
.tier-top{display:flex;align-items:center;gap:10px}
.tier-top .dot{margin-top:0}
.tier-name{font-family:var(--f-display);font-stretch:118%;font-weight:700;font-size:18px}
.tier-price{font-family:var(--f-display);font-stretch:110%;font-weight:750;font-size:32px;line-height:1;font-variant-numeric:tabular-nums}
.tier-price small{font-family:var(--f-body);font-stretch:100%;font-size:13px;font-weight:500;color:var(--muted);margin-left:4px}
.tier-price small:first-child{margin:0 4px 0 0}
.tier-price s{font-family:var(--f-body);font-stretch:100%;font-size:15px;font-weight:500;color:var(--muted);margin-left:8px}
.tier-sub{font-size:13px;color:var(--muted);margin:-4px 0 0}
.tier-tag{color:var(--muted);font-size:14px;margin:0}
.tier-avail{font-size:13px;font-weight:600;color:var(--deal-fg);margin:0}
.tier.off .tier-avail{color:var(--warn-fg)}
.feat{list-style:none;margin:0;padding:12px 0 0;border-top:1px solid var(--line);display:grid;gap:7px;font-size:14px}
.feat li{position:relative;padding-left:22px}
.feat li::before,.assure li::before,.perks li::before{content:"";position:absolute;left:4px;top:.32em;width:5px;height:10px;border:solid var(--brand);border-width:0 2px 2px 0;transform:rotate(45deg)}
.feat li.inherit{color:var(--muted)}

/* Fields */
.fields{display:grid;grid-template-columns:110px minmax(0,1fr);gap:12px;margin-top:22px}
.fields.two{grid-template-columns:minmax(0,1fr)}
@media (min-width:520px){.fields.two{grid-template-columns:repeat(2,minmax(0,1fr))}}
.field{display:flex;flex-direction:column;gap:6px;min-width:0}
.field.full{margin-top:12px}
.field label{font-size:14px;font-weight:600}
.field label small{font-weight:400;color:var(--muted)}
.field input{font:inherit;font-size:16px;color:var(--fg);background:var(--surface);border:1.5px solid var(--line);border-radius:10px;padding:11px 13px;width:100%;min-width:0;transition:border-color .15s,box-shadow .15s}
.field input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--sel)}
.field input::placeholder{color:var(--muted);opacity:.75}
.zone{display:inline-flex;align-items:center;gap:8px;margin:14px 0 0;padding:7px 12px;border-radius:12px;font-size:14px;font-weight:550}
.zone.ok{background:var(--deal-bg);color:var(--deal-fg)}
.zone.no{display:block;background:var(--warn-bg);color:var(--warn-fg)}
.zdot{flex:none;width:8px;height:8px;border-radius:50%;background:currentColor}
.acct{margin-top:22px;border:1.5px solid var(--line);border-radius:14px;background:var(--sunk);transition:border-color .15s}
.acct.on{border-color:var(--brand);background:var(--sel)}
.acct-row{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;cursor:pointer}
.acct-row input{flex:none;width:20px;height:20px;margin:2px 0 0;accent-color:var(--brand)}
.acct-t{display:block;font-weight:650;font-size:16px}
.acct-s{display:block;font-size:13px;color:var(--muted);margin-top:2px}
.acct ul{list-style:none;margin:0;padding:0 16px 14px 48px;display:grid;gap:6px;font-size:14px}
.acct li{position:relative;padding-left:20px}
.acct li::before{content:"";position:absolute;left:3px;top:.32em;width:5px;height:10px;border:solid var(--brand);border-width:0 2px 2px 0;transform:rotate(45deg)}
.acct li b{font-weight:650}
.veh-list{display:grid;gap:12px;margin-top:12px}
.veh-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,9em);gap:12px;align-items:end}
.veh-fields input[data-act=plate]{text-transform:uppercase}
.linkbtn{font-size:14px;font-weight:600;color:var(--brand);background:none;border:0;padding:0;margin-top:16px;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.linkbtn.sm{font-size:13px;margin-top:0}

/* Days & slots */
.days{display:flex;gap:8px;overflow-x:auto;margin:22px -4px 0;padding:4px 4px 8px;scroll-snap-type:x proximity}
.day{flex:0 0 auto;scroll-snap-align:start;display:flex;flex-direction:column;align-items:center;gap:1px;min-width:68px;padding:10px 8px;border:1.5px solid var(--line);border-radius:12px;background:var(--surface);color:var(--fg);cursor:pointer;transition:border-color .15s,background-color .15s}
.day:hover:not(:disabled){border-color:var(--mint)}
.day.sel{border-color:var(--brand);background:var(--sel)}
.day:disabled{opacity:.55;cursor:not-allowed}
.dw{font-family:var(--f-mono);font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.dn{font-family:var(--f-display);font-stretch:112%;font-weight:700;font-size:22px;line-height:1.15;font-variant-numeric:tabular-nums}
.dm{font-size:12px;color:var(--muted)}
.dd{margin-top:5px;font-size:11px;font-weight:650;padding:2px 7px;border-radius:999px;background:var(--deal-bg);color:var(--deal-fg);min-height:19px;line-height:15px;white-space:nowrap}
.dd.ghost{background:none}
.dd.full{background:none;color:var(--muted);font-weight:500}
.cal{margin-top:20px;border:1px solid var(--line);border-radius:14px;padding:12px}
.cal-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}
.cal-title{font-weight:650;font-variant-numeric:tabular-nums}
.cal-nav{flex:none;width:40px;height:40px;border-radius:50%;border:1.5px solid var(--line);background:var(--surface);color:var(--fg);cursor:pointer;font-size:20px;line-height:1}
.cal-nav:hover:not(:disabled){border-color:var(--mint)}
.cal-nav:disabled{opacity:.35;cursor:not-allowed}
.cal-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}
.cal-wd{font-family:var(--f-mono);font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);text-align:center}
.cd{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 2px;border:1.5px solid var(--line);border-radius:10px;background:var(--surface);color:var(--fg);cursor:pointer;min-width:0;transition:border-color .15s,background-color .15s}
.cd:hover:not(:disabled):not(.off){border-color:var(--mint)}
.cd .cn{font-family:var(--f-display);font-stretch:108%;font-weight:700;font-size:18px;line-height:1.1;font-variant-numeric:tabular-nums}
.cd .cp{font-size:11px;font-weight:650;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}
.cd.deal{border-color:var(--mint);box-shadow:inset 0 0 0 1.5px var(--mint)}
.cd.deal .cp{color:var(--deal-fg)}
.cd.sel{border-color:var(--brand);background:var(--sel);box-shadow:inset 0 0 0 1.5px var(--brand)}
.cd:disabled{cursor:not-allowed;background:var(--sunk);color:var(--muted)}
.cd.off{cursor:default;background:none;border-style:dashed;color:var(--muted);opacity:.5}
.cal-legend{display:flex;flex-wrap:wrap;gap:6px 16px;margin:10px 0 0;font-size:12px;color:var(--muted)}
.cal-legend span::before{content:"";display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px;border:1.5px solid var(--line)}
.cal-legend .lg-deal::before{border:3px solid var(--mint);background:var(--deal-bg)}
@media (max-width:380px){.cd .cn{font-size:16px}.cd .cp{font-size:10px}}
.day-title{font-weight:600;margin:18px 0 10px}
.slot-note{margin:0 0 10px}
.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}
.slot{text-align:left;display:flex;flex-direction:column;gap:3px;padding:11px 12px;border:1.5px solid var(--line);border-radius:12px;background:var(--surface);color:var(--fg);cursor:pointer;min-width:0;transition:border-color .15s,background-color .15s}
.slot:hover:not(:disabled){border-color:var(--mint)}
.slot.grouped{border-color:var(--mint);box-shadow:inset 0 0 0 1.5px var(--mint)}
.slot.sel{background:var(--brand);border-color:var(--brand);color:var(--brand-ink);box-shadow:none}
.slot:disabled{cursor:not-allowed;background:var(--sunk);color:var(--muted)}
.st-row{display:flex;align-items:center;justify-content:space-between;gap:6px}
.st{font-family:var(--f-display);font-stretch:108%;font-weight:700;font-size:18px;font-variant-numeric:tabular-nums}
.slot .badge{font-size:12px;font-weight:700;padding:2px 7px;border-radius:999px;background:var(--deal-bg);color:var(--deal-fg);white-space:nowrap;font-variant-numeric:tabular-nums}
.slot .badge.plain{background:none;color:var(--muted);border:1px solid var(--line);font-weight:600}
.slot.sel .badge{background:var(--brand-ink);color:var(--brand)}
.slot.sel .badge.plain{background:none;color:var(--brand-ink);border-color:var(--brand-ink)}
.sd{font-size:13px;color:var(--muted);line-height:1.3}
.slot.grouped .sd{color:var(--deal-fg)}
.slot.sel .sd{color:var(--brand-ink)}
/* Essai local (npm run mock) : raison du prix sous chaque créneau */
.sd.dbg{font-family:var(--f-mono);font-size:11px;color:var(--warn-fg);opacity:.9}
.slot.sel .sd.dbg{color:var(--brand-ink)}
/* Anciens pneus d'un montage (étape Coordonnées) */
.old-tyres{margin:20px 0 28px}
.old-tyres .follow-q{margin-bottom:2px}
/* Tournée : réservation à la demi-journée, avec la jauge des places */
.pick{display:block}
.tours{display:grid;gap:8px}
@media (min-width:640px){.tours{grid-template-columns:repeat(2,minmax(0,1fr))}}
.slot.tour{padding:14px 14px 12px;gap:6px}
.slot.tour .st{font-size:16px}
.slot.tour .sd b{font-weight:700}
.tour-places{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;font-variant-numeric:tabular-nums}
.gauge{display:inline-flex;gap:3px;flex:none}
.gauge i{display:block;width:16px;height:8px;border-radius:3px;border:1.5px solid var(--mint);background:transparent}
.gauge i.used{background:var(--line);border-color:var(--line)}
.gauge i.mine{background:var(--mint)}
.slot.sel .gauge i{border-color:var(--brand-ink)}
.slot.sel .gauge i.used{background:var(--brand-ink);border-color:var(--brand-ink);opacity:.35}
.slot.sel .gauge i.mine{background:var(--brand-ink)}
.slot:disabled .gauge i{border-color:var(--line)}
.pick-h{font-weight:600;margin:18px 0 8px}
.pick-dur{margin:0 0 8px}
.tour-away{font-size:13px;color:var(--muted);margin:0 0 8px}
.pick.has-err .slot:not(:disabled){border-color:var(--warn-fg)}
.deal-inline{display:inline-block;font-size:.85em;font-weight:650;padding:0 7px;border-radius:999px;background:var(--deal-bg);color:var(--deal-fg)}

/* Recap & payment */
.recap{margin-top:22px;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.recap dl{margin:0;display:grid;grid-template-columns:auto minmax(0,1fr)}
.recap dt,.recap dd{margin:0;padding:11px 14px;border-bottom:1px solid var(--line);font-size:15px}
.recap dt{color:var(--muted)}
.recap dd{text-align:right;font-weight:550;overflow-wrap:anywhere}
.lines{background:var(--sunk);padding:12px 14px;display:grid;gap:6px;font-variant-numeric:tabular-nums}
.line{display:flex;justify-content:space-between;gap:12px;font-size:15px}
.line > span:last-child{white-space:nowrap}
.line s{color:var(--muted);margin-right:6px;font-weight:400}
.line.deal{color:var(--deal-fg)}
.lines-note{margin:2px 0 0;font-size:12px;color:var(--muted)}
.acct-note{margin:0;padding:0 16px 14px 48px;font-size:13px;color:var(--muted)}
.line.tot{font-family:var(--f-display);font-stretch:110%;font-weight:750;font-size:22px;padding-top:8px;margin-top:2px;border-top:1px solid var(--line)}
.ref{margin-top:4px}
.ref-row{display:flex;align-items:flex-end;gap:10px;margin-top:16px}
.ref-row .field{flex:1}
.ref .notice{margin-top:10px}
.assure{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:6px;font-size:14px;color:var(--muted)}
.assure li{position:relative;padding-left:22px}

/* Confirmation */
.done-mark{width:56px;height:56px;border-radius:50%;background:var(--deal-bg);position:relative;margin:6px 0 10px}
.done-mark::after{content:"";position:absolute;left:21px;top:12px;width:12px;height:24px;border:solid var(--deal-fg);border-width:0 3px 3px 0;transform:rotate(45deg)}
.h2{font-family:var(--f-display);font-stretch:115%;font-weight:700;font-size:18px;margin:28px 0 6px}
.next{margin:10px 0 0;padding-left:22px;display:grid;gap:10px}
.next b{display:block}
.refer{margin-top:30px;padding:18px;border:1.5px dashed var(--mint);border-radius:14px}
.refer .h2{margin-top:0}
.code-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:12px}
.mycode{font-family:var(--f-mono);font-size:20px;font-weight:500;letter-spacing:.06em;padding:8px 14px;background:var(--sunk);border:1px solid var(--line);border-radius:10px;user-select:all}
.restart{margin-top:26px}

/* Action bar */
.bar{position:sticky;bottom:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 18px calc(12px + env(safe-area-inset-bottom,0px));background:var(--surface);border-top:1px solid var(--line);border-radius:0 0 18px 18px}
@media (min-width:600px){.bar{padding-left:32px;padding-right:32px}}
/* Ordinateur : le bouton reste juste sous les questions (le récapitulatif à droite donne le prix). */
@media (min-width:920px){.bar{position:static}}
.flow.has-after .bar{border-radius:0}
.flow-after{padding:0 18px 28px}
.flow-after:empty{display:none}
@media (min-width:600px){.flow-after{padding:0 32px 36px}}
.flow-after .faq{margin-top:0;border-top:1px solid var(--line);padding-top:18px}
@media (max-width:700px){body.typing .bar{display:none}}
.bar-sum{display:flex;flex-direction:column;min-width:0;flex:1}
.bar-label{font-size:13px;color:var(--muted);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bar-total{font-family:var(--f-display);font-stretch:110%;font-weight:750;font-size:22px;font-variant-numeric:tabular-nums;line-height:1.15;white-space:nowrap}
.bar-actions{display:flex;gap:8px;flex:none}
.bar[hidden]{display:none}
.bar-label.err{color:var(--warn-fg);font-weight:600}
.btn.wait{opacity:.55}
.btn.wait:hover{opacity:.7}
/* Ce qui manque, affiché après un clic sur Continuer */
.ferr{margin:6px 0 0;font-size:14px;line-height:1.35;color:var(--warn-fg);font-weight:500}
.opts + .ferr,.ferr + .opts,.ferr + .tiers,.ferr + .slots{margin-top:8px}
p.ferr:has(+ .opts),p.ferr:has(+ .tiers),p.ferr:has(+ .slots){margin:14px 0 0;padding:10px 12px;border-radius:10px;background:var(--warn-bg)}
.field.has-err input{border-color:var(--warn-fg)}
.field.has-err input:focus{box-shadow:0 0 0 3px var(--warn-bg)}
.grp.has-err .chip{border-color:var(--warn-fg)}
.btn{font-weight:650;font-size:16px;border:0;border-radius:999px;padding:13px 22px;background:var(--brand);color:var(--brand-ink);cursor:pointer;transition:opacity .15s,transform .1s}
.btn:active:not(:disabled){transform:translateY(1px)}
.btn:disabled{opacity:.4;cursor:not-allowed}
.btn-ghost{font-weight:600;font-size:15px;background:none;border:1.5px solid var(--line);color:var(--fg);border-radius:999px;padding:12px 16px;cursor:pointer}
@media (max-width:420px){.bar .btn-ghost .t{display:none}.bar .btn-ghost{padding:12px 14px}.btn{padding:13px 18px}}

/* Rail */
.rail{display:none}
@media (min-width:920px){.rail{display:block;position:sticky;top:calc(16px + env(safe-area-inset-top,0px));background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:22px}}
.rail-h{font-family:var(--f-display);font-stretch:115%;font-weight:700;font-size:17px;margin:0 0 14px}
.rl{margin:0;display:grid;gap:12px}
.rl div{display:grid;gap:1px}
.rl dt{font-family:var(--f-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.rl dd{margin:0;font-size:15px;font-weight:550;overflow-wrap:anywhere}
.rl dd.empty{color:var(--muted);font-weight:400}
.rail .lines{margin-top:18px;border-radius:12px}

/* Notes, planning & signals */

@keyframes rise{from{opacity:.4;transform:translateY(6px)}to{opacity:1;transform:none}}
#step.anim{animation:rise .22s ease-out}
@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}

/* Pied de page, bannière cookies, chargement */
.foot{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:28px;font-size:13px;color:var(--muted)}
.foot a{color:var(--muted)}
.consent{position: fixed;left: 0;right: 0;bottom: 0;z-index: 20;background: var(--surface);border-top: 1px solid var(--line);box-shadow: 0 -6px 24px rgba(0, 0, 0, .08);padding: 14px max(16px, env(safe-area-inset-right, 0px)) calc(14px + env(safe-area-inset-bottom, 0px)) max(16px, env(safe-area-inset-left, 0px));display: flex;flex-wrap: wrap;align-items: center;justify-content: center;gap: 10px 20px;}
.consent p{margin: 0;font-size: 14px;max-width: 60ch;}
.consent p a{color: inherit;text-decoration: underline;}
.consent-actions{display: flex;gap: 8px;}
.noscript{padding: 16px;text-align: center;}

.help a,.hero-help a{color:inherit;font-weight:600;text-decoration:none;white-space:nowrap}
.help a:hover,.hero-help a:hover{text-decoration:underline}
.loading{display:flex;align-items:center;gap:10px;padding:18px 0;color:var(--muted);font-size:15px}
.loading::before{content:"";width:18px;height:18px;border-radius:50%;border:2.5px solid var(--line);border-top-color:var(--brand);animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion: reduce){.loading::before{animation:none}}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* Sélecteur de langue */
.langs{display:inline-flex;gap:2px;padding:2px;border:1px solid var(--line);border-radius:999px;background:var(--surface)}
.langs button{font:500 12px/1 var(--f-mono);letter-spacing:.06em;color:var(--muted);background:none;border:0;border-radius:999px;padding:6px 9px;cursor:pointer;min-height:28px}
.langs button[aria-pressed="true"]{background:var(--brand);color:var(--brand-ink);font-weight:600}
.langs button:focus-visible{outline:2px solid var(--ring);outline-offset:1px}
.hero-langs{position:absolute;top:10px;right:10px;z-index:2}
.hero-langs button{padding:5px 8px;min-height:26px;font-size:11px}
