/* MKG Move · quote wizard (no-build page asset) */
/* ── Funnel · warm customer register ───────────────────────────────────── */
body.has-mobile-cta .mobile-cta{display:none !important}

.wiz-phases{border-bottom:1px solid var(--line); background:var(--surface); margin-bottom:26px}
.wiz-phases ol{list-style:none; margin:0 auto; padding:0; max-width:1180px; display:grid; grid-template-columns:repeat(3,1fr)}
.wiz-phases li{display:flex; align-items:center; gap:11px; padding:16px 18px; border-bottom:3px solid transparent; min-width:0}
.wiz-phases li.cur{border-bottom-color:var(--warm)}
.wiz-phases .n{flex:none; width:24px; height:24px; border-radius:999px; display:grid; place-items:center;
    font:800 .78rem/1 var(--font); background:var(--surface-2); color:var(--ink-faint); font-variant-numeric:tabular-nums}
.wiz-phases li.cur .n{background:var(--warm); color:#fff}
.wiz-phases li.done .n{background:var(--navy); color:#fff}
.wiz-phases .t{font-weight:600; font-size:.95rem; color:var(--ink-faint); white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.wiz-phases li.cur .t,.wiz-phases li.done .t{color:var(--ink)}

.wiz-page{max-width:1180px; margin-inline:auto; padding:0 20px 40px; display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:34px; align-items:start}
.wiz-main{min-width:0}
.wiz-eyebrow{font:700 .68rem/1 var(--font-narrow); text-transform:uppercase; letter-spacing:.14em; color:var(--ink-faint); margin-bottom:10px}
.wiz h1{font-size:clamp(1.5rem,1.2rem + 1.2vw,2.1rem); margin:.1em 0 .2em; letter-spacing:-.03em}
.wiz .lede{color:var(--ink-soft); margin:0 0 22px; max-width:52ch; text-wrap:pretty}

/* category tiles */
.cat-tiles{display:flex; flex-direction:column; gap:12px}
.cat-tile{display:flex; align-items:center; gap:16px; text-align:left; cursor:pointer; width:100%; font:inherit; color:inherit; padding:18px}
.cat-tile .ico{display:grid; place-items:center; width:52px; height:52px; border-radius:14px; background:var(--accent-soft); color:var(--accent); flex-shrink:0}
.cat-tile:nth-child(2) .ico{background:var(--warm-soft); color:var(--warm-2)}
.cat-tile:nth-child(3) .ico{background:var(--good-soft); color:var(--good)}
.cat-tile strong{display:block; font-size:1.05rem; margin-bottom:2px}
.cat-tile .arr{margin-left:auto; color:var(--accent); display:grid; place-items:center}

/* typology segmented control */
.typo-lbl{font:700 .66rem/1 var(--font-narrow); text-transform:uppercase; letter-spacing:.14em; color:var(--ink-faint); margin:0 0 8px}
.typo{display:flex; flex-wrap:wrap; gap:0; border:1px solid var(--line); border-radius:12px; overflow:hidden; background:var(--surface); width:fit-content; max-width:100%}
.typo button{font:600 .92rem/1 var(--font); color:var(--ink-soft); background:transparent; border:0; border-right:1px solid var(--line);
    padding:12px 18px; cursor:pointer; transition:background .12s,color .12s}
.typo button:last-child{border-right:0}
.typo button:hover{background:var(--surface-2); color:var(--ink)}
.typo button[aria-pressed="true"]{background:var(--navy); color:#fff}
.typo-hint{font-size:.82rem; color:var(--ink-faint); margin:8px 0 0}

/* inventory */
.inv-head{display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; margin:26px 0 10px}
.inv-title{font:700 .68rem/1 var(--font-narrow); text-transform:uppercase; letter-spacing:.14em; color:var(--ink-faint)}
.inv-tools{display:flex; align-items:center; gap:10px; margin-left:auto}
.inv-search{position:relative}
.inv-search input{padding-left:34px; min-width:210px; height:38px}
.inv-search .gl{position:absolute; left:11px; top:50%; transform:translateY(-50%); color:var(--ink-faint); pointer-events:none}
.link-btn{background:none; border:0; padding:0; font:600 .84rem/1 var(--font); color:var(--accent); cursor:pointer; text-decoration:underline; text-underline-offset:3px}

.rooms{border:1px solid var(--line); border-radius:14px; overflow:hidden; background:var(--surface)}
.room + .room{border-top:1px solid var(--line)}
.room > summary{display:flex; align-items:center; gap:10px; padding:14px 16px; cursor:pointer; list-style:none; background:var(--surface-2)}
.room > summary::-webkit-details-marker{display:none}
.room > summary:focus-visible{outline:var(--focus-width) solid var(--focus-color); outline-offset:calc(var(--focus-offset) * -1)}
.room .sq{width:9px; height:9px; border-radius:2px; background:var(--line-mid); flex:none}
.room.filled .sq{background:var(--warm)}
.room .rn{font-weight:700; font-size:.98rem}
.room .rc{font:700 .62rem/1 var(--font-narrow); text-transform:uppercase; letter-spacing:.1em; color:var(--ink-faint)}
.room .rv{margin-left:auto; font-weight:700; font-variant-numeric:tabular-nums; color:var(--navy)}
.room .chev{color:var(--ink-faint); transition:transform .18s var(--ease-out); flex:none}
.room[open] .chev{transform:rotate(180deg)}
.room[open] > summary{background:var(--surface)}

.item{display:flex; align-items:center; gap:12px; padding:11px 16px; border-top:1px solid var(--line-soft); transition:background .12s}
.item:hover{background:var(--surface-2)}
.item:focus-within{background:var(--surface-2); box-shadow:inset 3px 0 0 var(--accent)}
.item.on{box-shadow:inset 3px 0 0 var(--warm)}
.item .nm{font-weight:600; font-size:.94rem}
.item .mc{font-size:.74rem; color:var(--ink-faint); font-variant-numeric:tabular-nums; margin-top:2px}
.item .sp{margin-left:auto; display:flex; align-items:center; gap:6px; flex:none}
.item .sp button{width:32px; height:32px; border-radius:8px; border:1px solid var(--line-strong); background:var(--surface);
    color:var(--ink); display:grid; place-items:center; cursor:pointer; transition:.12s}
.item .sp button:hover{border-color:var(--accent); color:var(--accent)}
.item .sp .q{min-width:30px; text-align:center; font-variant-numeric:tabular-nums; font-weight:800}
.item.is-hidden{display:none}
.room.is-hidden{display:none}
.room-add{padding:11px 16px; border-top:1px solid var(--line-soft); display:flex; align-items:center; gap:10px; flex-wrap:wrap}

.custom-block{margin-top:18px}
.custom-row{display:flex; gap:10px; flex-wrap:wrap; align-items:flex-start}
.custom-list{list-style:none; padding:0; margin:10px 0 0}
.custom-list li{display:flex; justify-content:space-between; align-items:center; gap:8px; padding:8px 0; border-bottom:1px solid var(--line-soft); font-size:.9rem}

/* sticky in-column action bar */
.actbar{position:sticky; bottom:0; z-index:20; margin-top:22px; display:flex; align-items:center; gap:14px; flex-wrap:wrap;
    padding:14px 16px calc(14px + env(safe-area-inset-bottom)); border:1px solid var(--line); border-bottom:0;
    border-radius:14px 14px 0 0; background:color-mix(in srgb,var(--surface) 94%,transparent);
    backdrop-filter:blur(10px); box-shadow:0 -8px 24px rgba(14,44,72,.07)}
.actbar .live{display:flex; flex-direction:column; gap:2px; min-width:0}
.actbar .live .k{font:700 .6rem/1 var(--font-narrow); text-transform:uppercase; letter-spacing:.12em; color:var(--ink-faint)}
.actbar .live .v{font:800 1.15rem/1 var(--font-display); letter-spacing:-.02em; color:var(--navy); font-variant-numeric:tabular-nums}
.actbar .acts{margin-left:auto; display:flex; gap:10px; align-items:center; flex-wrap:wrap}
.actbar .why{flex-basis:100%; font-size:.8rem; color:var(--signal); display:flex; align-items:center; gap:6px; margin:0}

/* addresses */
.addr-card{border:1px solid var(--line); border-radius:14px; background:var(--surface); padding:18px; border-top:3px solid var(--navy)}
.addr-card.to{border-top-color:var(--warm)}
.addr-tag{display:inline-flex; align-items:center; gap:8px; margin-bottom:12px}
.addr-tag b{font:700 .6rem/1 var(--font-narrow); text-transform:uppercase; letter-spacing:.14em; background:var(--navy); color:#fff; padding:.45em .7em; border-radius:3px}
.addr-card.to .addr-tag b{background:var(--warm)}
.addr-tag span{font-size:.85rem; color:var(--ink-faint)}
.ta-wrap{position:relative}
.ta-list{position:absolute; z-index:30; inset:calc(100% + 4px) 0 auto 0; background:var(--surface); border:1px solid var(--line-strong);
    border-radius:10px; box-shadow:var(--shadow); list-style:none; margin:0; padding:4px; max-height:270px; overflow:auto}
.ta-list[hidden]{display:none}
.ta-list li{padding:9px 11px; border-radius:7px; cursor:pointer; font-size:.9rem}
.ta-list li[aria-selected="true"],.ta-list li:hover{background:var(--accent-soft); color:var(--accent)}
.ta-list .pc{color:var(--ink-faint); font-variant-numeric:tabular-nums}
.access-note{margin-top:12px; background:var(--surface-2); border-radius:10px; padding:10px 12px; font-size:.86rem; color:var(--ink-soft)}
.opt-tag{font:700 .56rem/1 var(--font-narrow); text-transform:uppercase; letter-spacing:.12em; color:var(--ink-faint);
    border:1px solid var(--line); border-radius:3px; padding:.35em .5em; margin-left:6px}
.opt-tag.inc{color:var(--good); border-color:color-mix(in srgb,var(--good) 40%,var(--line))}

/* date strip */
.strip-lbl{font:700 .66rem/1 var(--font-narrow); text-transform:uppercase; letter-spacing:.14em; color:var(--ink-faint); margin:22px 0 8px}
.date-strip{display:grid; grid-template-columns:repeat(7,1fr); gap:8px}
.day{display:flex; flex-direction:column; gap:3px; align-items:flex-start; text-align:left; padding:12px 10px 11px;
    border:1px solid var(--line); border-radius:12px; background:var(--surface); cursor:pointer; font:inherit; transition:.12s}
.day:hover:not(:disabled){border-color:var(--navy)}
.day:disabled{cursor:not-allowed; background:var(--surface-2); color:var(--ink-faint); opacity:.75}
.day .dw{font:700 .58rem/1 var(--font-narrow); text-transform:uppercase; letter-spacing:.12em; color:var(--ink-faint)}
.day .dn{font:800 1.5rem/1 var(--font-display); letter-spacing:-.03em; font-variant-numeric:tabular-nums; color:var(--ink)}
.day .ds{font:700 .56rem/1.25 var(--font-narrow); text-transform:uppercase; letter-spacing:.1em}
.day.tone-good .ds{color:var(--good)} .day.tone-info .ds{color:var(--accent)}
.day.tone-warn .ds{color:var(--signal)} .day.tone-crit .ds{color:var(--crit)} .day.tone-neutral .ds{color:var(--ink-faint)}
.day[aria-pressed="true"]{background:var(--navy); border-color:var(--navy)}
.day[aria-pressed="true"] .dn{color:#fff} .day[aria-pressed="true"] .dw{color:var(--on-navy-2)}
.day[aria-pressed="true"] .ds{color:var(--warm-4)}
.slots{display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:10px; margin-top:12px}
.slot{display:flex; align-items:center; gap:10px; border:1px solid var(--line); border-radius:12px; padding:14px 16px; cursor:pointer; background:var(--surface)}
.slot:has(input:checked){border-color:var(--warm); box-shadow:inset 0 0 0 1px var(--warm)}
.slot input{width:auto; margin:0; accent-color:var(--warm)}
.slot b{font-weight:700} .slot span{color:var(--ink-faint); font-size:.88rem}

/* .err / .hint exist only inside .fld in app.css — give them a home in the funnel too */
.wiz-root .err{display:flex; align-items:flex-start; gap:6px; color:var(--crit); font-size:.82rem; font-weight:600; margin:4px 0 0}
.wiz-root .hint{font-size:.82rem; color:var(--muted); margin:5px 0 0}

.check{display:flex; align-items:flex-start; gap:10px; font-weight:500; margin:10px 0; cursor:pointer}
.check input{width:auto; margin:2px 0 0}
.field-row{display:flex; gap:14px; flex-wrap:wrap}
.field-row > .field{flex:1 1 200px; min-width:0}

/* ── right rail ───────────────────────────────────────────────────────── */
.wiz-rail{position:sticky; top:88px; display:grid; gap:14px}
.rail-card{padding:18px}
.sum-label{font:700 .64rem/1 var(--font-narrow); text-transform:uppercase; letter-spacing:.14em; color:var(--ink-faint)}
.price-lock{margin-top:12px; border:1px solid var(--line); border-radius:12px; background:var(--surface-2); padding:16px; text-align:center}
.price-lock .tag{display:inline-flex; align-items:center; gap:6px; font:700 .58rem/1 var(--font-narrow); text-transform:uppercase;
    letter-spacing:.14em; color:var(--warm-2); background:var(--warm-soft); border-radius:999px; padding:.45em .8em}
.price-lock .big{font:800 1.35rem/1.15 var(--font-display); letter-spacing:-.02em; color:var(--navy); margin:9px 0 6px}
.price-lock p{font-size:.8rem; color:var(--ink-soft); margin:0; text-wrap:pretty}

.reveal .rp{font:800 clamp(2rem,1.4rem + 2vw,2.9rem)/1 var(--font-display); letter-spacing:-.04em; color:var(--navy);
    font-variant-numeric:tabular-nums; margin:8px 0 0; display:flex; align-items:baseline; gap:6px}
.reveal .rp .cur{font-size:.9rem; font-weight:700; color:var(--warm-2)}
.reveal .rule{height:2px; background:var(--warm); border-radius:2px; margin:12px 0 12px; transform-origin:left center; animation:rule-draw .5s var(--ease-out) both}
.reveal .seal{display:inline-flex; align-items:center; gap:6px; font:700 .58rem/1 var(--font-narrow); text-transform:uppercase;
    letter-spacing:.16em; color:#fff; background:var(--navy); border-radius:3px; padding:.5em .8em; animation:seal-in .45s .35s var(--ease-out) both}
.reveal .bl{list-style:none; margin:0; padding:0; display:grid; gap:7px; font-size:.86rem}
.reveal .bl li{display:flex; justify-content:space-between; gap:10px; color:var(--ink-soft); animation:line-up .4s var(--ease-out) both;
    animation-delay:calc(.18s + var(--i) * .06s)}
.reveal .bl li b{color:var(--ink); font-variant-numeric:tabular-nums; white-space:nowrap}
.reveal .bl li.tot{border-top:1px solid var(--line); padding-top:8px; margin-top:2px; color:var(--ink); font-weight:700}
@keyframes rule-draw{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes seal-in{from{opacity:0; transform:scale(.85)}to{opacity:1; transform:none}}
@keyframes line-up{from{opacity:0; transform:translateY(6px)}to{opacity:1; transform:none}}
@media (prefers-reduced-motion:reduce){
    .reveal .rule,.reveal .seal,.reveal .bl li{animation:none !important}
}

.rail-sk{display:grid; gap:9px; padding:4px 0 8px}
.reveal.is-waiting{opacity:.35; transition:opacity .12s}

.vol-gauge{margin-top:16px; padding-top:15px; border-top:1px dashed var(--line-strong)}
.vg-top{display:flex; justify-content:space-between; align-items:baseline}
.vg-lbl{font:700 .62rem/1 var(--font-narrow); text-transform:uppercase; letter-spacing:.14em; color:var(--ink-faint)}
.vg-top b{font:800 1.2rem/1 var(--font-display); color:var(--navy); letter-spacing:-.02em; font-variant-numeric:tabular-nums}
.vg-bar{height:9px; border-radius:999px; background:var(--surface-2); margin:9px 0 5px; overflow:hidden}
.vg-bar span{display:block; height:100%; border-radius:999px; background:var(--grad-cta); transition:width .35s var(--ease-out)}
.vg-scale{display:flex; justify-content:space-between; font-size:.68rem; color:var(--ink-faint)}
.vg-scale .mid{color:var(--muted); font-weight:600}

.roombars{list-style:none; margin:14px 0 0; padding:0; display:grid; gap:9px}
.roombars li{display:grid; grid-template-columns:1fr auto; gap:2px 10px; font-size:.82rem}
.roombars .rb-n{color:var(--ink-soft)}
.roombars .rb-v{color:var(--navy); font-weight:700; font-variant-numeric:tabular-nums}
.roombars .rb-t{grid-column:1/-1; height:5px; border-radius:999px; background:var(--surface-2); overflow:hidden}
.roombars .rb-t i{display:block; height:100%; background:var(--navy); border-radius:999px}

.checklist{list-style:none; padding:0; margin:0; display:grid; gap:10px; font-size:.86rem}
.checklist li{display:flex; justify-content:space-between; gap:10px; align-items:center; color:var(--ink-soft)}
.checklist b{font:700 .6rem/1 var(--font-narrow); text-transform:uppercase; letter-spacing:.1em; white-space:nowrap}
.checklist b.ok{color:var(--good)} .checklist b.todo{color:var(--ink-faint)} .checklist b.prog{color:var(--warm-2)}

.how{border-left:3px solid var(--warm); background:var(--warm-soft); border-radius:0 10px 10px 0; padding:13px 15px}
.how strong{display:block; font-size:.9rem; margin-bottom:5px}
.how p{margin:0; font-size:.82rem; color:var(--ink-soft); text-wrap:pretty}

.reassure{margin-top:4px; display:grid; gap:8px; font-size:.78rem; color:var(--ink-faint)}
.reassure span{display:inline-flex; align-items:center; gap:7px}
.resume-box{margin-top:12px; border:1px dashed var(--line-strong); border-radius:10px; padding:11px 13px; font-size:.8rem; word-break:break-all}

.save-inline{display:none; margin:18px 0 0}
.only-lg{display:inline}

@media (max-width:700px){
    .actbar .btn-save{display:none}
    .only-lg{display:none}
    .save-inline{display:block}
    .actbar{gap:10px}
    .actbar .live .v{font-size:1rem}
    .actbar .acts{gap:8px; flex-wrap:nowrap}
    .actbar .btn-lg{padding-inline:18px}
}

@media (max-width:980px){
    .wiz-phases .t{display:block;font-size:.78rem;line-height:1.25;white-space:normal}
    .wiz-phases li{justify-content:center;padding-inline:10px}
    .wiz-page{grid-template-columns:1fr; gap:20px}
    .wiz-rail{position:static}
    .site-footer{display:none}
    #cookie-banner{display:none !important}
    .date-strip{grid-template-columns:repeat(4,1fr)}
    .actbar{position:sticky; bottom:0; margin-left:-20px; margin-right:-20px; border-radius:0; border-left:0; border-right:0}
}
