#app{--bg:#dfc8a5;--panel:#e8d8bf;--ink:#241006;--small:#3a2412;--line:#cdb893;--sel:#b91c1c;--selfill:#fbe7dc;--c1:#ff4f8b;--c2:#ff9a2e;--cta:#1b1410}
#app,#app *{box-sizing:border-box}
#app{margin:0;background:var(--bg);color:var(--ink);font:500 19px/1.45 Inter,"Helvetica Neue",Arial,sans-serif;-webkit-text-size-adjust:100%}
.vz{max-width:1800px;margin:0 auto;padding:20px;display:flex;flex-direction:column;gap:18px}
.vz-head{display:flex;align-items:center;gap:14px}
.vz-logo{width:62px;height:62px;border-radius:50%;flex:none;display:block}
#app h1{margin:0;font-size:clamp(32px,4.2vw,52px);line-height:1.05;font-weight:800;letter-spacing:-.03em}
.vz-grad{background-image:linear-gradient(90deg,#d6146b,#c2410c);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}
.vz-sub{margin:6px 0 0;font-size:22px;font-weight:600;color:var(--ink)}
.vz-panel{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(430px,1fr);align-items:start;background:var(--panel);border-radius:30px;overflow:clip;box-shadow:0 30px 70px -36px rgba(40,20,5,.55)}
.vz-left{min-width:0;padding:20px;display:flex;flex-direction:column;gap:14px}
.vz-right{min-width:0;padding:22px;border-left:1px solid var(--line);display:flex;flex-direction:column;gap:30px}
.vz-stage{position:relative;border-radius:22px;overflow:hidden;background:#cdbfa8;aspect-ratio:3/2;cursor:pointer}
.vz-canvas,.vz-still{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:cover}
[hidden]{display:none!important}
.vz-shown{position:absolute;left:10px;bottom:10px;margin:0;max-width:calc(100% - 20px);padding:5px 12px;border-radius:999px;background:rgba(251,244,232,.94);color:var(--ink);font-size:17px;font-weight:700;line-height:1.25;pointer-events:none}
.vz-shown.warn{background:var(--ink);color:#fff;border-radius:12px}
.vz-sum{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.vz-sum-img{width:54px;height:54px;border-radius:50%;object-fit:cover;border:2px solid var(--ink);flex:none}
.vz-sum-txt{flex:1 1 200px;min-width:0}
.vz-sum-name{font-size:23px;font-weight:800}
.vz-sum-spec{font-size:19px;font-weight:600;color:var(--small)}
.vz-watch{min-height:46px;padding:0 20px;border-radius:999px;border:0;cursor:pointer;background:var(--ink);color:var(--panel);font:700 18px Inter,Arial,sans-serif}
.vz-group{display:flex;flex-direction:column;gap:11px;scroll-margin-top:12px}
.vz-label{margin:0;font-size:23px;line-height:1.2;font-weight:800;letter-spacing:-.01em}
.vz-for{font-size:19px;font-weight:700;color:var(--small)}
.vz-opt{font-family:inherit;color:var(--ink);background:transparent;border:1.5px solid var(--ink);border-radius:13px;cursor:pointer}
.vz-opt.on{border-color:var(--sel);box-shadow:0 0 0 2px var(--sel);background:var(--selfill)}
#app button:focus-visible,#app select:focus-visible,#app input:focus-visible,#app textarea:focus-visible,.vz-stage:focus-visible,#app a:focus-visible{outline:3px solid var(--cta);outline-offset:2px}
/* Step 1: category cards */
.vz-cats{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}
.vz-catc{position:relative;display:flex;flex-direction:column;padding:6px;border:1.5px solid var(--ink);border-radius:16px;background:rgba(255,253,249,.55);color:var(--ink);font:inherit;text-align:left;cursor:pointer;min-width:0}
.vz-catc.on{border-color:var(--sel);box-shadow:0 0 0 2px var(--sel);background:var(--selfill)}
.vz-catc:disabled{cursor:default;border-style:dashed;border-color:var(--small)}
.vz-catc:disabled .vfo-jc-stage{filter:saturate(.55)}
.vz-catc .vfo-jc-stage{aspect-ratio:16/9;border-radius:11px;width:100%;display:block;flex:none}
.vz-catc-b{display:grid;grid-template-columns:auto 1fr;gap:0 8px;align-items:baseline;padding:6px 4px 2px}
.vz-catc-n{font-size:21px;font-weight:800;line-height:1.2}
.vz-catc-p{font-size:18px;font-weight:800;line-height:1.2;text-align:right}
.vz-catc-s:empty,.vz-catc-p:empty{display:none}
.vz-catc-s{grid-column:1/-1;font-size:17px;font-weight:600;line-height:1.25;color:var(--small)}
.vz-soon{position:absolute;top:12px;right:12px;padding:2px 10px;border-radius:999px;background:var(--ink);color:#fff;font-size:17px;font-weight:800}
/* scenes keep the website's 4:3 drawing; the card shows a 16:9 window onto it */
.vz-catc .vfo-jc-stage>div{inset:auto;left:0;right:0;top:calc(var(--sy,19) * -1cqw);height:75cqw}
.vz-catc .vfo-jc-spc{--sy:9}
.vz-catc .vfo-jc-stack{left:23cqw}
.vz-catc .vfo-jc-spc .vfo-jc-shadow{left:22cqw}
.vz-floors{display:flex;flex-direction:column;gap:12px;margin-top:4px}
.vz-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:10px}
.vz-item{padding:5px 5px 7px;display:flex;flex-direction:column;gap:3px;min-width:0;border-radius:14px;text-align:left}
.vz-imgw{position:relative;display:block;margin-bottom:2px}
.vz-imgw img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;border-radius:10px;display:block}
.vz-sale{position:absolute;top:6px;left:6px;background:var(--sel);color:#fff;font-size:16px;font-weight:800;padding:2px 8px;border-radius:999px}
.vz-item .n{font-size:18px;line-height:1.2;font-weight:800}
.vz-item .m{font-size:17px;line-height:1.25;font-weight:600}
/* SPC tiers */
.vz-pick{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;align-items:center}
.vz-ourpick{background:var(--sel);color:#fff;font-size:18px;font-weight:800;padding:3px 12px;border-radius:999px}
.vz-pick-p{font-size:26px;font-weight:800;letter-spacing:-.02em;line-height:1.15}
.vz-pick-s{grid-column:1/-1;font-size:19px;font-weight:700}
.vz-starter{border-top:1px solid var(--line);padding-top:12px;display:flex;flex-direction:column;gap:8px}
.vz-starter-h{font-size:18px;line-height:1.35}
.vz-starter-h b{display:block;font-size:19px;font-weight:800}
.vz-starter-h span{font-weight:600}
.vz-starter-row{display:flex;flex-wrap:wrap;gap:8px}
.vz-mini{display:flex;align-items:center;gap:8px;padding:4px 12px 4px 4px;font-size:18px;font-weight:700;border-radius:11px}
.vz-mini img{width:38px;height:48px;object-fit:cover;border-radius:7px;display:block}
.vz-compare{margin:0;font-size:18px;line-height:1.4;font-weight:600}
/* Step 2: rooms */
.vz-roomlist{display:flex;flex-direction:column;gap:10px}
.vz-room{border:1.5px solid var(--ink);border-radius:16px;padding:12px;min-width:0}
.vz-room-on{display:flex;flex-direction:column;gap:11px;border-color:var(--sel);box-shadow:0 0 0 2px var(--sel)}
.vz-room-c{display:flex;align-items:center;gap:10px;padding:0 12px 0 0}
.vz-room-open{flex:1;min-width:0;min-height:60px;padding:10px 12px;background:none;border:0;border-radius:15px;font:inherit;color:var(--ink);text-align:left;cursor:pointer;display:flex;flex-direction:column;line-height:1.3}
.vz-room-open b{font-size:19px;font-weight:800}
.vz-room-open span{font-size:18px;font-weight:600}
.vz-room-top{display:flex;align-items:flex-end;gap:10px}
.vz-sel{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px;font-size:18px;font-weight:700}
.vz-sel select,.vz-exact input{width:100%;min-height:48px;padding:0 12px;border:1.5px solid var(--ink);border-radius:12px;background:#fffdf9;color:var(--ink);font:700 19px Inter,Arial,sans-serif}
.vz-x{flex:none;min-height:44px;padding:0 10px;background:none;border:0;color:var(--ink);font:700 18px Inter,Arial,sans-serif;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.vz-room-floor{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 10px;font-size:18px;font-weight:600;line-height:1.35}
.vz-link{min-height:40px;padding:0;background:none;border:0;color:var(--ink);font:800 18px Inter,Arial,sans-serif;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.vz-sizes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.vz-size{min-height:58px;padding:6px 4px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;text-align:center}
.vz-size .b{font-size:18px;font-weight:800;line-height:1.15}
.vz-size .s{font-size:17px;font-weight:600;line-height:1.2}
.vz-exact{display:grid;grid-template-columns:auto 130px;align-items:center;justify-content:space-between;gap:10px;font-size:19px;font-weight:700}
.vz-hint{margin:0;font-size:18px;font-weight:700;color:#8f1414}
.vz-add{min-height:50px;border:1.5px dashed var(--ink);border-radius:14px;background:none;color:var(--ink);font:800 19px Inter,Arial,sans-serif;cursor:pointer}
/* Step 3: price */
.vz-scope{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.vz-scope button{min-height:52px;padding:4px 6px;border:1.5px solid var(--ink);border-radius:13px;background:none;color:var(--ink);font:800 18px Inter,Arial,sans-serif;cursor:pointer}
.vz-scope button.on{background:var(--ink);color:#fff}
.vz-lines{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.vz-lines li{padding:10px 0;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:2px}
.vz-line-top{display:flex;justify-content:space-between;gap:10px;font-size:20px;font-weight:800}
.vz-line-f{font-size:18px;font-weight:700}
.vz-line-m{font-size:18px;font-weight:600}
.vz-line-n{font-size:17px;font-weight:600}
.vz-total{display:grid;grid-template-columns:1fr auto;gap:0 10px;align-items:end}
.vz-total-k{font-size:18px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.vz-total-v{grid-row:1/3;grid-column:2;font-size:46px;line-height:1.05;font-weight:800;letter-spacing:-.03em}
.vz-total-s{font-size:18px;font-weight:600;line-height:1.3}
.vz-removal{display:flex;align-items:center;gap:12px;padding:8px 12px;border-radius:14px;background:var(--selfill);font-size:19px}
.vz-removal strong{font-weight:800}
.vz-roll{position:relative;flex:none;width:64px;height:30px;display:block;overflow:hidden}
.vz-roll i{position:absolute;left:0;right:0;bottom:2px;height:6px;border-radius:3px;background:repeating-linear-gradient(90deg,#b4532f 0 3px,#8f3f27 3px 6px);transform-origin:100% 50%}
.vz-roll b{position:absolute;bottom:2px;left:2px;width:22px;height:22px;border-radius:50%;background:radial-gradient(circle,var(--selfill) 0 12%,#8f3f27 13% 26%,#b4532f 27% 42%,#8f3f27 43% 58%,#b4532f 59%)}
@media (prefers-reduced-motion:no-preference){
.vz-roll b{animation:vz-roll 3.4s ease-in-out infinite}
.vz-roll i{animation:vz-unroll 3.4s ease-in-out infinite}
}
@keyframes vz-roll{0%,10%{transform:translateX(0) rotate(0)}70%,100%{transform:translateX(38px) rotate(420deg) scale(1.15)}}
@keyframes vz-unroll{0%,10%{transform:scaleX(1)}70%,100%{transform:scaleX(.08)}}
.vz-note{margin:0;font-size:18px;line-height:1.45;font-weight:600}
.vz-cta{width:100%;min-height:60px;padding:0 16px;border:0;border-radius:999px;display:flex;align-items:center;justify-content:center;cursor:pointer;background:linear-gradient(90deg,var(--c1),var(--c2));color:var(--cta);font:800 20px Inter,Arial,sans-serif;box-shadow:0 16px 30px -16px var(--c1)}
/* Step 4: form */
.vz-book{display:flex;flex-direction:column;gap:12px;min-width:0;scroll-margin-top:10px}
.vzf{border-radius:24px;background:var(--panel);overflow:hidden;box-shadow:0 30px 70px -36px rgba(40,20,5,.55)}
.vzf-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}
.vzf-offer{margin:0;padding:12px 20px;display:flex;flex-direction:column;background:linear-gradient(90deg,var(--c1),var(--c2));color:var(--cta);font-size:18px;font-weight:700;line-height:1.3}
.vzf-offer b{font-size:20px;font-weight:800}
.vzf-body,.vzf-done{padding:18px 20px 20px;display:flex;flex-direction:column;gap:13px}
.vzf-prefill{padding:10px 12px;border-radius:14px;background:var(--selfill);font-size:18px;font-weight:600}
.vzf-prefill-k b{font-weight:800}
.vzf-prefill ul{margin:6px 0 0;padding:0 0 0 18px;line-height:1.4}
.vzf-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.vzf-f{display:flex;flex-direction:column;gap:4px;font-size:19px;font-weight:700;min-width:0}
.vzf-f input,.vzf-notes textarea{width:100%;min-height:54px;padding:0 14px;border:1.5px solid var(--ink);border-radius:13px;background:#fffdf9;color:var(--ink);font:600 20px Inter,Arial,sans-serif}
.vzf-f input::placeholder,.vzf-notes textarea::placeholder{color:var(--small);opacity:.8}
.vzf-f input[aria-invalid=true]{border-color:#a3241b;box-shadow:0 0 0 2px #a3241b}
.vzf-err{color:#8f1414;font-size:18px;font-weight:700}
.vzf-errors{padding:12px;border-radius:12px;background:#fbe7dc;color:#8f1414;font-weight:700}
.vzf-sms{display:grid;grid-template-columns:26px minmax(0,1fr);gap:10px;align-items:start;cursor:pointer}
.vzf-sms input{width:26px;height:26px;margin:0;accent-color:var(--sel)}
.vzf-sms strong{display:block;font-size:19px;font-weight:800;line-height:1.3}
.vzf-sms small{display:block;margin-top:1px;font-size:17px;font-weight:500;line-height:1.4;color:var(--small)}
.vzf-trust,.vzf-call,.vzf-legal{margin:0;text-align:center;font-size:18px;font-weight:600}
.vzf a{color:var(--ink);font-weight:800}
.vzf-call a{display:inline-block;padding:8px 2px}
.vzf-preview{margin:0;padding:8px 12px;border-radius:12px;border:1.5px dashed var(--ink);text-align:center;font-size:18px;font-weight:700}
.vzf-preview-on{background:var(--ink);color:#fff;border-style:solid;font-weight:800;font-size:20px}
.vzf-done{outline:0}
.vzf-done h3{margin:0;font-size:27px;line-height:1.15;font-weight:800;letter-spacing:-.02em}
.vzf-done>p{margin:0;font-size:19px;font-weight:600}
.vzf-done>p.vzf-preview{font-weight:800;font-size:20px}
.vzf-hours{font-size:18px!important}
.vzf-more{display:flex;flex-direction:column;gap:12px;padding:16px;border-radius:18px;background:var(--selfill)}
.vzf-more h4{margin:0;font-size:21px;font-weight:800}
.vzf-more h4 small{font-size:18px;font-weight:600}
.vzf-group p{margin:0 0 6px;font-size:19px;font-weight:800}
.vzf-chips{display:flex;flex-wrap:wrap;gap:8px}
.vzf-chip{position:relative}
.vzf-chip input{position:absolute;opacity:0;width:1px;height:1px}
.vzf-chip span{display:inline-flex;align-items:center;min-height:46px;padding:0 14px;border:1.5px solid var(--ink);border-radius:12px;font-size:18px;font-weight:700;cursor:pointer}
.vzf-chip input:checked+span{border-color:var(--sel);box-shadow:0 0 0 2px var(--sel);background:#fffdf9}
.vzf-chip input:focus-visible+span{outline:3px solid var(--cta);outline-offset:2px}
.vzf-notes{display:flex;flex-direction:column;gap:4px;font-size:19px;font-weight:800}
.vzf-notes textarea{padding:10px 14px;min-height:88px;font-size:19px;resize:vertical}
.vzf-send{align-self:flex-start;min-height:50px;padding:0 22px;border:0;border-radius:999px;background:var(--ink);color:#fff;font:800 18px Inter,Arial,sans-serif;cursor:pointer}
.vzf-thanks{padding:12px;border-radius:12px;background:var(--selfill);font-weight:800!important}
.vz-end{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(430px,1fr);gap:18px;align-items:start}
#vz-step3{background:var(--panel);border-radius:24px;padding:22px;box-shadow:0 30px 70px -36px rgba(40,20,5,.55)}
.vz-left>#vz-step2{margin-top:10px}
@media (max-width:1300px){
  .vz-catc-b{grid-template-columns:1fr}
  .vz-catc-p{text-align:left}
}
@media (max-width:900px){
  .vz{padding:12px;gap:14px}
  .vz-panel{border-radius:22px;display:flex;flex-direction:column;overflow:visible}
  .vz-stage{order:1}.vz-sum{order:2}.vz-right{order:3}.vz-left>#vz-step2{order:4;margin:0;padding:14px}
  .vz-end{grid-template-columns:minmax(0,1fr)}
  .vz-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .vz-cats{grid-template-columns:repeat(2,minmax(0,1fr))}
  #vz-step3{padding:14px;border-radius:22px}
  /* the room stays on screen while people scroll the floor choices */
  .vz-left{display:contents}
  .vz-sum{margin:12px}
  .vz-right{padding:14px;border-left:0;border-top:1px solid var(--line);gap:26px}
  .vz-stage{position:sticky;top:0;z-index:5;border-radius:16px;box-shadow:0 10px 18px -12px rgba(40,20,5,.7)}
  .vz-group{scroll-margin-top:calc((100vw - 24px)*2/3 + 12px)}
  .vz-panel :is(input,select,button){scroll-margin-top:calc((100vw - 24px)*2/3 + 16px)}
  .vz-shown{left:6px;bottom:6px;padding:3px 9px;font-size:17px}
  .vz-sub{font-size:19px}
  .vz-sum-spec{font-size:18px}
}
.vz-sale-in{position:static;display:inline-block}
.vz-heart{display:inline-block}
@media (prefers-reduced-motion:no-preference){.vz-heart{animation:vz-beat 1.1s ease-in-out infinite}}
@keyframes vz-beat{0%,100%{transform:scale(1)}50%{transform:scale(1.35)}}

/* Cleanup pass (owner 2026-10-30): same size and features, easier to read. White work surfaces on sand, one quiet border, red only for what's selected. */
#app{--panel:#fff;--ink:#17100b;--small:#2b1d13;--line:#e4dacb;--quiet:#d8ccb8;--soft:#f7f2ea;--field:#fff;--pageink:#17100b}
.vz-panel,#vz-step3,.vzf{box-shadow:0 18px 44px -30px rgba(40,20,5,.5)}
.vz-right{border-left:1px solid var(--line)}
.vz-label{font-size:24px}
.vz-group{gap:12px}
.vz-opt,.vz-catc,.vz-add{border:1.5px solid var(--quiet)}
.vz-opt:hover:not(:disabled),.vz-catc:hover:not(:disabled),.vz-add:hover{border-color:var(--ink)}
.vz-opt.on,.vz-catc.on{border-color:var(--sel);box-shadow:0 0 0 2px var(--sel);background:var(--selfill)}
.vz-catc:disabled{border:1.5px dashed var(--quiet)}
.vz-item .n{min-height:0}
.vz-starter{background:var(--soft);border:0;border-radius:14px;padding:14px}
.vz-mini{background:var(--field)}
.vz-room{background:var(--soft);border:0;border-radius:14px}
.vz-room-on{background:var(--panel);border:2px solid var(--sel)}
.vz-sel select,.vz-exact input{border:1.5px solid var(--quiet);border-radius:10px;min-height:44px;padding:0 10px;font-size:19px;font-weight:700;background:#fff;color:var(--ink)}
.vz-sel select{width:100%}
.vz-scope button{border:1.5px solid var(--quiet);background:var(--field);color:var(--ink)}
.vz-scope button.on{background:var(--ink);color:var(--panel);border-color:var(--ink)}
.vz-removal{background:var(--soft)}
.vz-lines li{border-color:var(--line)}
.vzf-prefill{background:var(--soft)}
.vzf input[type=text],.vzf input[type=tel],.vzf input:not([type]),.vzf textarea{border:1.5px solid var(--quiet)}
.vz-watch{color:var(--panel)}
.vz-sale-in{width:fit-content;justify-self:start;align-self:center;flex:none}
.vz-cats{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (min-width:1280px){.vz-cats{grid-template-columns:repeat(4,minmax(0,1fr))}}
.vz-catc-b{grid-template-columns:1fr}
.vz-catc-p{white-space:nowrap;text-align:left}

/* Rooms: room type up front, compact size row. Bigger text on everything (owner 2026-10-30). */
.vz-rtypes{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:8px}
.vz-rt{font:inherit;color:var(--ink);background:var(--field);border:1.5px solid var(--quiet);border-radius:12px;padding:6px;cursor:pointer;display:flex;flex-direction:column;gap:3px;text-align:left;min-height:44px}
.vz-rt:hover{border-color:var(--ink)}
.vz-rt.on{border-color:var(--sel);box-shadow:0 0 0 2px var(--sel);background:var(--selfill)}
.vz-rt:focus-visible{outline:3px solid var(--ink);outline-offset:2px}
.vz-rt-pic{display:block;height:62px;border-radius:8px;background:linear-gradient(135deg,#efe6d6,#dcccb1);background-size:cover;background-position:center}
.vz-rt-n{font-size:18px;font-weight:800;line-height:1.2}
.vz-rt-s{font-size:16px;font-weight:600;color:var(--small)}
.vz-room-size{display:grid;grid-template-columns:minmax(0,1fr) 130px;gap:10px;align-items:end}
.vz-room-size label{display:flex;flex-direction:column;gap:4px;font-size:18px;font-weight:800}
.vz-room-size input{width:100%;box-sizing:border-box}
.vz-room-floor{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 14px;font-size:18px}
.vz-room-acts{display:flex;gap:14px}
.vz-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}
@media (max-width:900px){.vz-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.vz-rtypes{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* Fields stay white so typed text is always readable. Text sitting on the page background follows the page color. */
.vz-sel select,.vz-exact input,.vzf input,.vzf textarea{background:#fff;color:#17100b}
#app{background:var(--bg)}
#app h1,.vz-sub,.vz-book>.vz-label{color:var(--pageink)}
.vz-opt,.vz-catc,.vz-item,.vz-add,.vz-link,.vz-x,.vz-room-open,.vz-mini span{color:var(--ink)}
.vz-catc{background:var(--field)}
/* Color tester */
.vzc{position:fixed;right:max(14px,env(safe-area-inset-right,0px));bottom:14px;z-index:50;font-family:Inter,Arial,sans-serif;color:#17100b}
.vzc-open{min-height:50px;padding:0 22px;border:0;border-radius:999px;background:#17100b;color:#fff;font:800 18px Inter,Arial,sans-serif;cursor:pointer;box-shadow:0 10px 24px -8px rgba(0,0,0,.6)}
.vzc-panel{width:min(560px,calc(100vw - 28px));max-height:80vh;overflow:auto;box-sizing:border-box;background:#fff;border-radius:18px;padding:16px;box-shadow:0 24px 60px -16px rgba(0,0,0,.6)}
.vzc-top{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:17px}
.vzc-close{min-height:44px;padding:0 16px;border:1.5px solid #17100b;border-radius:999px;background:#fff;color:#17100b;font:700 16px Inter,Arial,sans-serif;cursor:pointer}
.vzc h3{margin:12px 0 6px;font-size:18px;font-weight:800}
.vzc-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(82px,1fr));gap:6px}
.vzc-row button{font:600 14px Inter,Arial,sans-serif;color:#17100b;background:#fff;border:1.5px solid transparent;border-radius:10px;padding:4px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:3px;text-align:center;min-height:44px}
.vzc-row button.on{border-color:#b91c1c;box-shadow:0 0 0 1px #b91c1c}
.vzc-row i{display:block;width:100%;height:34px;border-radius:7px;border:1px solid rgba(0,0,0,.25)}
.vz-soon{background:#17100b;color:#fff}
.vz-shown:not(.warn){background:rgba(255,255,255,.92);color:#17100b}
.vz-sel select,.vzf select{color:#17100b}
.vzf input::placeholder,.vzf textarea::placeholder{color:#5a4a3c;opacity:1}

/* Rooms, clearer: one room at a time with three plain questions. Others listed below. */
.vz-room-on{display:flex;flex-direction:column;gap:10px;padding:16px}
.vz-room-head{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:21px;border-bottom:1px solid var(--line);padding-bottom:10px}
.vz-q{font-size:19px;font-weight:800;margin-top:4px}
.vz-rt-pic{height:54px}
.vz-room-size{display:flex;align-items:center;flex-wrap:wrap;gap:10px}
.vz-room-size .vz-sel{flex:1 1 240px;flex-direction:row;display:block}
.vz-room-size .vz-sel select{height:50px}
.vz-or{font-size:18px;font-weight:700}
.vz-room-size .vz-exact{display:flex;flex-direction:row;align-items:center;gap:8px;font-size:18px;font-weight:700}
.vz-room-size .vz-exact input{width:100px;height:50px}
.vz-vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.vz-room-floor{align-items:center;background:var(--soft);border-radius:10px;padding:10px 12px;font-weight:700}
.vz-others{margin:8px 0 0;font-size:19px;font-weight:800;color:var(--ink)}
.vz-room-c{display:flex;align-items:center;gap:14px;padding:10px 14px}
.vz-room-c .vz-room-open{flex:1 1 auto;min-width:0;text-align:left;background:none;border:0;font:inherit;cursor:pointer;display:flex;flex-direction:column;gap:2px;font-size:18px}
.vz-edit{font-size:18px;font-weight:700;font-family:inherit;color:var(--ink);background:none;border:0;text-decoration:underline;cursor:pointer;min-height:44px}
/* This visualizer only: start the estimate form at the name fields. The rooms still go with the request. */
.vz-book .vzf-offer,.vz-book .vzf-prefill{display:none}

/* Clickable things stand out (owner 2026-10-30), in the colors of the floor-card animations. Blue = choose, purple = action, pink/orange = book. */
#app{--blue:#0284c7;--purple:#6d28d9;--pink:#db2777}
.vz-catc{background:#fff;border:3px solid rgb(var(--t));box-shadow:0 6px 16px -8px rgba(40,20,5,.55);color:#17100b}
.vz-catc:hover:not(:disabled){border-color:rgb(var(--t));transform:translateY(-2px);box-shadow:0 12px 22px -10px rgba(40,20,5,.65)}
.vz-catc.on{border-color:#17100b;box-shadow:0 0 0 3px #17100b;background:#fff}
.vz-catc *{color:#17100b}
.vz-catc:disabled{background:rgba(255,255,255,.5);box-shadow:none}
.vz-catc .vz-soon{color:#fff}
.vz-item,.vz-mini{background:#fff;border:2.5px solid var(--blue);box-shadow:0 6px 14px -8px rgba(40,20,5,.55);color:#17100b}
.vz-item *,.vz-mini *{color:#17100b}
.vz-item .vz-sale{color:#fff}
.vz-item:hover,.vz-mini:hover{border-color:var(--blue);transform:translateY(-2px)}
.vz-item.on,.vz-mini.on{border-color:#17100b;box-shadow:0 0 0 3px #17100b;background:#fff}
.vz-rt{background:#fff;border:3px solid var(--rt);box-shadow:0 6px 14px -8px rgba(40,20,5,.55);color:#17100b}
.vz-rt *{color:#17100b}
.vz-rt:hover{border-color:var(--rt);transform:translateY(-2px)}
.vz-rt.on{background:var(--rt);border-color:var(--rt);box-shadow:0 0 0 3px #17100b}
.vz-rt.on .vz-rt-n,.vz-rt.on .vz-rt-s{color:#fff}
.vz-rt-pic:not(.live){background:color-mix(in srgb,var(--rt) 22%,#fff)}
.vz-scope button{border:3px solid var(--blue);background:#fff;color:#17100b;font-weight:800;min-height:54px}
.vz-scope button:nth-child(2){border-color:var(--purple)}
.vz-scope button.on{background:var(--blue);border-color:var(--blue);color:#fff}
.vz-scope button:nth-child(2).on{background:var(--purple);border-color:var(--purple);color:#fff}
.vz-add{background:var(--purple);border:0;color:#fff;font-weight:800;min-height:56px;box-shadow:0 8px 18px -8px rgba(60,20,120,.7)}
.vz-add:hover{background:#5b21b6}
.vz-watch{background:var(--purple);color:#fff;box-shadow:0 8px 18px -8px rgba(60,20,120,.7)}
.vz-link,.vz-edit{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border-radius:999px;background:var(--blue);color:#fff!important;border:0;text-decoration:none;font-weight:800;font-size:17px;cursor:pointer}
.vz-x{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border-radius:999px;background:#fff;color:var(--pink)!important;border:2.5px solid var(--pink);text-decoration:none;font-weight:800;font-size:17px;cursor:pointer}
.vz-sel select,.vz-room-size .vz-exact input{border:3px solid var(--blue)}
.vzf input:not([type=checkbox]),.vzf textarea{border:2.5px solid var(--blue)}
.vzf input[type=checkbox]{accent-color:var(--blue);width:26px;height:26px}
.vz-room-on{border:2px solid var(--ink)}
@media (prefers-reduced-motion:reduce){.vz-catc:hover,.vz-item:hover,.vz-mini:hover,.vz-rt:hover{transform:none}}
.vz-catc:disabled{border:3px dashed rgb(var(--t))}

/* One color family (owner 2026-10-30): the heading gradient for actions and selected things, the book button gradient for the big one. */
#app{--mag:#d6146b;--org:#c2410c;--deep:linear-gradient(90deg,#d6146b,#c2410c);--bright:linear-gradient(90deg,#ff4f8b,#ff9a2e)}
.vz-catc,.vz-catc:hover:not(:disabled),.vz-item,.vz-mini,.vz-item:hover,.vz-mini:hover,.vz-rt,.vz-rt:hover{border:2.5px solid var(--mag);background:#fff}
.vz-catc:disabled{border:2.5px dashed var(--mag);background:rgba(255,255,255,.5)}
.vz-catc.on,.vz-item.on,.vz-mini.on,.vz-rt.on{border-color:transparent;background:var(--deep);box-shadow:0 8px 18px -8px rgba(160,20,70,.8)}
.vz-catc.on .vz-catc-b,.vz-catc.on .vz-catc-b *,.vz-item.on .n,.vz-item.on .m,.vz-mini.on>span,.vz-rt.on .vz-rt-n,.vz-rt.on .vz-rt-s{color:#fff}
.vz-rt-pic:not(.live){background:linear-gradient(135deg,#ffe3ee,#ffe9d2)}
.vz-sale,.vz-ourpick{background:var(--mag);color:#fff}
.vz-scope button,.vz-scope button:nth-child(2){border:2.5px solid var(--mag);background:#fff;color:#17100b}
.vz-scope button.on,.vz-scope button:nth-child(2).on{border-color:transparent;background:var(--deep);color:#fff}
.vz-watch,.vz-link,.vz-edit{background:var(--deep);color:#fff!important;box-shadow:0 8px 18px -10px rgba(160,20,70,.8)}
.vz-x{color:var(--mag)!important;border-color:var(--mag)}
.vz-add{background:var(--bright);color:#17100b;box-shadow:0 10px 20px -10px rgba(214,20,107,.8)}
.vz-add:hover{background:var(--bright);filter:brightness(1.05)}
.vz-sel select,.vz-room-size .vz-exact input,.vzf input:not([type=checkbox]),.vzf textarea{border:2px solid var(--org)}
.vzf input[type=checkbox]{accent-color:var(--mag)}
.vz-room-on{border:1.5px solid var(--quiet);box-shadow:0 8px 20px -14px rgba(40,20,5,.5)}

/* Lighter (owner 2026-10-30): the book button colors for actions, soft pink for selected, dark text on all of them. */
#app{--pink:#ff4f8b;--softsel:linear-gradient(135deg,#ffe3ee,#ffeeda);--softline:#ff8db2}
.vz-catc,.vz-catc:hover:not(:disabled),.vz-item,.vz-mini,.vz-item:hover,.vz-mini:hover,.vz-rt,.vz-rt:hover{border:2.5px solid var(--softline)}
.vz-catc:disabled{border:2.5px dashed var(--softline)}
.vz-catc.on,.vz-item.on,.vz-mini.on,.vz-rt.on{border:3px solid var(--pink);background:var(--softsel);box-shadow:0 0 0 3px rgba(255,79,139,.35),0 8px 18px -10px rgba(255,79,139,.8)}
.vz-catc.on .vz-catc-b,.vz-catc.on .vz-catc-b *,.vz-item.on .n,.vz-item.on .m,.vz-mini.on>span,.vz-rt.on .vz-rt-n,.vz-rt.on .vz-rt-s{color:#17100b}
.vz-sale,.vz-ourpick{background:var(--pink);color:#17100b}
.vz-item .vz-sale{color:#17100b}
.vz-scope button,.vz-scope button:nth-child(2){border:2.5px solid var(--softline)}
.vz-scope button.on,.vz-scope button:nth-child(2).on{border-color:transparent;background:var(--bright);color:#17100b}
.vz-watch,.vz-link,.vz-edit{background:var(--bright);color:#17100b!important;box-shadow:0 8px 16px -10px rgba(255,79,139,.9)}
.vz-x{background:#fff;color:#17100b!important;border:2.5px solid var(--softline)}
.vz-sel select,.vz-room-size .vz-exact input,.vzf input:not([type=checkbox]),.vzf textarea{border:2px solid #ffa24d}
/* The room being edited is the highlighted one */
.vz-room-on{background:#fff7f1;border:3px solid var(--pink);box-shadow:0 0 0 4px rgba(255,79,139,.18),0 14px 28px -18px rgba(255,79,139,.8);padding:0 16px 16px;overflow:hidden}
.vz-room-head{background:var(--bright);margin:0 -16px 4px;padding:12px 16px;border:0;color:#17100b}
.vz-room-floor{background:#fff}
.vz-room-c{background:#fff;border:1.5px solid var(--quiet)}
/* Price first, tags to its right */
.vz-pick{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
.vz-pick-s{flex:1 0 100%}
/* Heart beside each favorite color */
.vz-item .n{display:flex;align-items:center;justify-content:space-between;gap:6px}
.vz-heart-i{color:#ff2d78;font-size:20px;line-height:1;flex:none}

/* Button text: deep aubergine instead of black, passes contrast on both ends of the gradient */
#app{--btn:#3a0b2e}
.vz-add,.vz-watch,.vz-link,.vz-edit,.vz-scope button.on,.vz-scope button:nth-child(2).on,.vz-room-head,.vz-room-head b,.vzf .vzf-submit,.vz-cta,.vzf button[type=submit]{color:var(--btn)!important}
.vz-sale,.vz-ourpick,.vz-item .vz-sale{color:var(--btn)}

/* White button text (owner 2026-10-30): in-between gradient, bigger and bolder. */
#app{--wbtn:linear-gradient(90deg,#e0186f,#cf4d0a)}
.vz-add,.vz-watch,.vz-link,.vz-edit,.vz-scope button.on,.vz-scope button:nth-child(2).on,.vz-room-head,.vz-cta,.vzf button[type=submit]{background:var(--wbtn);color:#fff!important;font-weight:800}
.vz-room-head b{color:#fff!important}
.vz-add,.vz-cta,.vzf button[type=submit]{font-size:21px}
.vz-watch,.vz-scope button{font-size:19px}
.vz-link,.vz-edit,.vz-x{font-size:18px}
.vz-sale,.vz-ourpick,.vz-item .vz-sale{background:#e0186f;color:#fff}
.vz-add:hover{background:var(--wbtn)}

/* The ballpark total is the star of step 3 */
.vz-total{background:linear-gradient(135deg,#ffe3ee,#ffeeda);border:3px solid #ff4f8b;border-radius:16px;padding:16px 18px;box-shadow:0 0 0 4px rgba(255,79,139,.16),0 12px 24px -14px rgba(255,79,139,.8);color:#17100b}
.vz-total-k,.vz-total-s{color:#17100b}
.vz-total-v{color:#c0105c;font-size:60px}

/* Room names, room prices and the ballpark label stand out */
.vz-line-top b,.vz-room-c .vz-room-open b,.vz-room-p{color:#c0105c;font-weight:800}
.vz-line-top b{font-size:23px}
.vz-line-top .vz-line-v{font-size:27px}
.vz-room-c .vz-room-open b{font-size:22px}
.vz-room-p{font-size:27px;white-space:nowrap}
.vz-total-k{color:#c0105c;font-size:24px}
@media (max-width:600px){.vz-room-c{flex-wrap:wrap}.vz-room-c .vz-room-open{flex-basis:100%}.vz-room-p{margin-right:auto}}

.vz-pick-2{margin-top:10px;border-top:1px solid var(--line);padding-top:12px}

/* Titles in the brand colors instead of black */
#app h1{color:#3a0b2e}
.vz-sub{color:#3a0b2e}
.vz-label,.vz-others,.vz-q{background-image:linear-gradient(90deg,#d6146b,#c2410c);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;width:fit-content}
.vz-label .vz-for{-webkit-text-fill-color:#3a0b2e}
.vz-sum-name{color:#3a0b2e}
/* Inside a website page: the site supplies logo and background */
.is-embed .vz-logo,.is-embed .vzc{display:none}
.is-embed .vz{padding:0}

/* All pricing stands out */
.vz-pick-p{color:#c0105c;font-size:34px;font-weight:800}
.vz-catc-p,.vz-catc.on .vz-catc-b .vz-catc-p{color:#c0105c;font-weight:800;font-size:19px}
.vz-item .m:last-child,.vz-item.on .m:last-child{color:#c0105c;font-weight:800;font-size:18px}
.vz-starter-h b{color:#c0105c;font-size:22px}
.vz-compare{font-weight:700}
.vz-line-m{font-weight:700}

/* Titles, take 2: dark aubergine with one strong color word */
#app h1{color:#2a0a24;font-weight:800}
.vz-grad{background-image:linear-gradient(90deg,#e00f63,#f25a00)}
.vz-sub{color:#2a0a24}
.vz-label,.vz-others,.vz-q{background-image:none;-webkit-text-fill-color:#8f0f4d;color:#8f0f4d}
.vz-q{-webkit-text-fill-color:#2a0a24;color:#2a0a24}
/* Upload your room card */
.vz-head{flex-wrap:wrap}
.vz-upcard{margin-left:auto;display:flex;align-items:center;gap:14px;background:#fff;border:2.5px dashed var(--softline);border-radius:16px;padding:10px 18px;box-shadow:0 8px 18px -12px rgba(255,79,139,.8);color:#17100b}
.vz-cam{position:relative;display:block;width:62px;height:46px;flex:none}
.vz-flash{position:absolute;left:50%;top:-6px;width:26px;height:26px;margin-left:-13px;border-radius:50%;background:radial-gradient(circle,#fff 0,#fff3a8 35%,rgba(255,220,90,0) 70%);opacity:0;z-index:2}
.vz-up-t{display:flex;flex-direction:column;line-height:1.25;font-size:16px;font-weight:600}
.vz-up-t b{font-size:20px;font-weight:800;color:#8f0f4d}
.vz-soon-t{align-self:flex-start;background:#e0186f;color:#fff;font-size:14px;font-weight:800;padding:1px 10px;border-radius:999px;margin-bottom:2px}
@media (prefers-reduced-motion:no-preference){.vz-flash{animation:vz-snap 3.2s ease-out infinite}@keyframes vz-snap{0%,86%{opacity:0;transform:scale(.4)}90%{opacity:1;transform:scale(2.2)}100%{opacity:0;transform:scale(3)}}}
@media (max-width:900px){.vz-upcard{margin-left:0;width:100%}}

/* Title colors come from the Colors panel */
#app h1,.vz-sub,.vz-sum-name{color:var(--t1)}
.vz-grad{background-image:linear-gradient(90deg,var(--t2a),var(--t2b))}
.vz-label,.vz-others{-webkit-text-fill-color:var(--t3);color:var(--t3)}
.vz-label .vz-for{-webkit-text-fill-color:var(--t1)}
.vz-q{-webkit-text-fill-color:var(--t1);color:var(--t1)}
.vzc-titles{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}
.vzc-titles button{font-size:16px;align-items:flex-start;text-align:left;background:#D4BC96;padding:8px}
.vzc-titles span{color:#17100b;font-size:14px}

/* The whole title moves slowly through the brand colors */
#app h1{background-image:linear-gradient(90deg,#1f6b35,#c2410c,#d6146b,#f25a00,#1f6b35);background-size:300% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;width:fit-content}
#app h1 .vz-grad{background:none;-webkit-text-fill-color:transparent}
@media (prefers-reduced-motion:no-preference){h1{animation:vz-title 9s linear infinite}@keyframes vz-title{to{background-position:300% 0}}}

/* Tabs keep each floor type short; the list scrolls in its own box on a computer */
.vz-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.vz-tab{font:inherit;font-size:18px;font-weight:800;min-height:46px;padding:0 16px;border-radius:999px;background:#fff;color:#17100b;border:2.5px solid var(--softline);cursor:pointer}
.vz-tab span{font-weight:700;color:#8f0f4d}
.vz-tab.on{background:var(--wbtn);border-color:transparent;color:#fff}
.vz-tab.on span{color:#fff}
.vz-floors .vz-grid{margin-top:10px}
@media (min-width:901px){.vz-floors .vz-grid{max-height:640px;overflow-y:auto;padding:4px}}

/* Tabs keep each floor type short; the list scrolls in its own box on a computer */
.vz-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.vz-tab{font:inherit;font-size:18px;font-weight:800;min-height:46px;padding:0 16px;border-radius:999px;background:#fff;color:#17100b;border:2.5px solid var(--softline);cursor:pointer}
.vz-tab span{font-weight:700;color:#8f0f4d}
.vz-tab.on{background:var(--wbtn);border-color:transparent;color:#fff}
.vz-tab.on span{color:#fff}
.vz-floors .vz-grid{margin-top:10px}
@media (min-width:901px){.vz-floors .vz-grid{max-height:640px;overflow-y:auto;padding:4px}}

/* No inner scroll box: show every color. Step titles in the button colors, bigger. */
@media (min-width:901px){.vz-floors .vz-grid{max-height:none;overflow:visible}}
.vz-label,.vz-book>.vz-label{font-size:30px;line-height:1.15;font-weight:800;background-image:linear-gradient(90deg,#e0186f,#cf4d0a);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}
.vz-label .vz-for{font-size:22px;-webkit-text-fill-color:#2a0a24}
.vz-others{font-size:24px;-webkit-text-fill-color:#2a0a24;color:#2a0a24}
.vz-q{font-size:21px;-webkit-text-fill-color:#2a0a24;color:#2a0a24}
.vz-sub{font-size:23px;color:#2a0a24}
.vz-sum-name{color:#2a0a24;font-size:24px}

@media (min-width:901px){.vz-floors .vz-grid{overflow-y:auto;padding:4px}}
.vz-more{margin:0;color:#c0105c;font-weight:800;font-size:19px;line-height:1.25}

/* No room caption; the label only appears while loading or for a warning. Product name in the price color. */
.vz-shown:empty{display:none}
.vz-sum-name{color:#c0105c}

.vz-sum-img{border-radius:12px;border:3px solid #c0105c}

/* Materials and installation button pictures */
.vz-scope button{display:flex;align-items:center;justify-content:center;gap:12px;min-height:66px;padding:6px 10px}
.vz-ic{position:relative;display:block;width:92px;height:62px;flex:none}
.vz-ic img{display:block;position:absolute;max-width:none}
.vz-ic-pl .vz-pl{left:0;width:92px;height:17px;filter:drop-shadow(0 0 .6px rgba(255,255,255,.95)) drop-shadow(0 2px 3px rgba(60,20,10,.5))}
.vz-ic-pl{clip-path:inset(-4px 0)}
.vz-pl1{top:4px}.vz-pl2{top:23px}.vz-pl3{top:42px}
.vz-ic-cr{width:172px;height:auto;aspect-ratio:3.576}
.vz-wave{position:absolute;top:0;bottom:0;display:block;background-size:1200% 100%;background-repeat:no-repeat;background-position:36.36% 0}
.vz-wave1{left:0;width:44.47%;background-image:url(../assets/icons/crew-wave1.webp)}
.vz-wave2{left:28.3%;width:38.07%;background-image:url(../assets/icons/crew-wave2.webp)}
.vz-wave3{left:56.6%;width:43.4%;background-image:url(../assets/icons/crew-wave3.webp)}
@media (prefers-reduced-motion:no-preference){
  .vz-pl1{animation:vz-plk 3.8s ease-in-out infinite}
  .vz-pl2{animation:vz-plk 3.8s ease-in-out .15s infinite}
  .vz-pl3{animation:vz-plk 3.8s ease-in-out .3s infinite}
  @keyframes vz-plk{0%{transform:translateX(-46px);opacity:0}12%,92%{transform:none;opacity:1}100%{transform:translateX(46px);opacity:0}}
  .vz-wave{animation:vz-wv 1.5s steps(12,jump-none) infinite}
  .vz-wave2{animation-delay:-.45s}.vz-wave3{animation-delay:-.95s}
  @keyframes vz-wv{from{background-position:0 0}to{background-position:100% 0}}
}
.vz-next,.vz-nav,.vz-pinprice,.vz-seeall{display:none}
.vz-pin{display:contents}
/* ---------- Phones: the page's main target ---------- */
@media (max-width:900px){
  .vz{overflow-x:clip}
  .vz-panel>.vz-stage,.vz-stage{width:100%;flex:none;align-self:stretch}
  .vz-unpin .vz-stage{position:relative}
  .vz-stage{background-size:cover;background-position:center}
  .vz-head{display:grid;grid-template-columns:48px minmax(0,1fr);gap:4px 10px}
  .vz-logo{width:48px;height:48px}
  .vz-head h1{font-size:30px;line-height:1.1;margin:0}
  .vz-sub{font-size:17px;line-height:1.3;margin:2px 0 0}
  .vz-upcard{grid-column:1/-1;padding:6px 12px;gap:10px;border-width:2px;border-radius:12px}
  .vz-upcard .vz-cam svg{width:40px;height:30px}
  .vz-up-t>span:last-child{display:none}
  .vz-up-t b{font-size:17px}
  .vz-soon-t{font-size:16px}
  .vz-sum{margin:10px 12px;gap:10px;flex-wrap:wrap}
  .vz-sum-img{width:52px;height:52px}
  .vz-sum-txt{flex:1 1 0;min-width:0}
  .vz-watch{width:100%;min-height:48px}
  .vz-right{padding:12px;gap:18px}
  .vz-cats{gap:8px}
  .vz-catc{padding:5px;border-radius:12px}
  .vz-catc .vfo-jc-stage{height:44px;aspect-ratio:auto;border-radius:8px}
  .vz-catc-b{padding:4px 2px 0;gap:0}
  .vz-catc-n{font-size:19px}
  .vz-catc-p,.vz-catc.on .vz-catc-b .vz-catc-p{font-size:17px}
  .vz-catc-s{font-size:16px}
  .vz-tabs{gap:6px}
  .vz-tab{min-height:46px}
  .vz-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .vz-item .n,.vz-item .m{font-size:16px}
  .vz-rtypes{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
  .vz-total{display:block!important;padding:12px 14px}
  .vz-total-k,.vz-total-v,.vz-total-s{display:block;text-align:left}
  .vz-total-v{font-size:clamp(44px,14vw,60px);line-height:1.05;overflow-wrap:anywhere}
  .vz-rt{padding:4px;min-height:44px;min-width:0}
  .vz-rt-n{font-size:16px;line-height:1.15}
  .vz-rt-s{font-size:16px;white-space:nowrap}
  .vz-rt-pic{height:48px}
  .vz-room-size select{min-height:48px}
  .vz-exact input{min-height:48px}
  .vz-scope button{flex-direction:column;gap:4px;padding:6px 4px}
  .vz-ic-cr{align-self:center}
  .vzf-call a{min-height:44px;padding:11px 2px}
  .vzf-legal a{display:inline-block;padding:11px 2px;min-height:44px}
  .vzf-sms{min-height:44px}
  .vzc{position:static;display:flex;justify-content:center;padding:0 0 16px}
  .vzc-panel{position:fixed;left:14px;right:14px;bottom:14px;width:auto;z-index:50}
}

@media (max-width:480px){.vz-item{position:relative}.vz-heart-i{position:absolute;top:10px;right:10px;font-size:22px;text-shadow:0 0 3px #fff,0 0 6px #fff}}

/* ---------- Phones and the Duo: chosen by screen shape in visualizer.js ---------- */
.vz-m{--nav:76px}
.vz-m .vzc,.vz-m .vz-sub{display:none}
.vz-m .vz-head{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
.vz-m .vz-logo{width:40px;height:40px}
.vz-m .vz-head h1{font-size:25px;margin:0}
.vz-m .vz-head>div:not(.vz-upcard){flex:1 1 auto;min-width:0}
.vz-m .vz-upcard{width:100%;margin:0;padding:4px 10px;gap:8px;border-width:2px;border-radius:12px}
.vz-m .vz-up-t{flex:1;flex-direction:row;align-items:center;justify-content:space-between;gap:6px}
.vz-m .vz-up-t b{font-size:16px;order:1}
.vz-m .vz-soon-t{font-size:16px;order:2;align-self:center;margin:0;white-space:nowrap}
.vz-m .vz-up-t>span:last-child{display:none}
.vz-m .vz-cam{width:30px;height:24px}
.vz-m .vz-cam svg{width:30px;height:24px}
.vz-m .vz-label,.vz-m .vz-book>.vz-label{font-size:25px}
.vz-m .vz-q{font-size:18px}
.vz-m .vz-sum-name{font-size:20px;line-height:1.2}
.vz-m .vz-sum-spec{font-size:16px;line-height:1.3}
.vz-m .vz-sum-img{width:46px;height:46px}
.vz-m .vz-catc .vfo-jc-stage{height:auto;aspect-ratio:16/9;border-radius:8px}
.vz-m .vz-cats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.vz-m .vz-catc{padding:5px;border-radius:12px}
.vz-m .vz-catc-b{grid-template-columns:1fr;padding:3px 2px 1px;gap:0}
.vz-m .vz-catc-n{font-size:18px}
.vz-m .vz-catc-p,.vz-m .vz-catc.on .vz-catc-b .vz-catc-p{font-size:16px;text-align:left;white-space:normal}
.vz-m .vz-catc-s{font-size:16px;line-height:1.2}
.vz-m .vz-pick-p{font-size:25px}
.vz-m .vz-pick-s,.vz-m .vz-compare,.vz-m .vz-more{font-size:16px}
.vz-m .vz-ourpick,.vz-m .vz-sale{font-size:16px}
.vz-m .vz-floors .vz-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;max-height:none;overflow:visible;padding:0}
.vz-m .vz-floors .vz-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.vz-m .vz-grid-2 .vz-imgw img{aspect-ratio:1/1}
.vz-m .vz-item .n,.vz-m .vz-item .m{font-size:16px}
.vz-m .vz-item .m:last-child,.vz-m .vz-item.on .m:last-child{font-size:17px;white-space:nowrap}
.vz-m .vz-grid.vz-cap>:nth-child(n+21){display:none}
.vz-m .vz-seeall{display:block;width:100%;min-height:46px;border:2.5px solid var(--softline);border-radius:999px;background:#fff;color:#17100b;font:800 17px Inter,Arial,sans-serif;cursor:pointer}
.vz-m .vz-next{display:block;width:100%;min-height:48px;border:2.5px solid #e0186f;border-radius:999px;background:#fff;color:#17100b;font:800 17px Inter,Arial,sans-serif;cursor:pointer}
.vz-m .vz-rtypes{grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}
.vz-m .vz-rt{grid-column:span 2;padding:4px;min-height:44px;min-width:0}
.vz-m .vz-rt:nth-child(n+4){grid-column:span 3}
.vz-m .vz-rt-s{display:none}
.vz-m .vz-rt-n{font-size:16px;line-height:1.15;white-space:nowrap}
.vz-m .vz-rt-pic{height:44px}
.vz-m .vz-room-on{padding:0 12px 12px;gap:9px}
.vz-m .vz-room-head{margin:0 -12px 2px;padding:8px 12px;font-size:18px}
.vz-m .vz-room-size{flex-wrap:nowrap;gap:8px}
.vz-m .vz-room-size .vz-sel{flex:1 1 0;min-width:0}
.vz-m .vz-sel select,.vz-m .vz-exact input{font-size:16px;padding:0 8px;height:46px;min-height:46px}
.vz-m .vz-or,.vz-m .vz-exact>span:not(.vz-vh){display:none}
.vz-m .vz-room-size .vz-exact input{width:78px}
.vz-m .vz-q-floor{display:none}
.vz-m .vz-room-floor{flex-wrap:nowrap;padding:6px 8px;font-size:16px;line-height:1.25;gap:8px}
.vz-m .vz-link{flex:none;min-height:44px;font-size:16px;padding:0 14px;white-space:nowrap}
.vz-m .vz-add{font-size:18px;min-height:50px}
.vz-m .vz-scope button{flex-direction:column;gap:4px;padding:6px 4px;font-size:17px;min-height:96px}
.vz-m .vz-ic-cr{width:min(100%,190px);align-self:center}
.vz-m .vz-ic-pl{transform:scale(.8);margin:-6px 0}
.vz-m .vz-line-top b{font-size:19px}
.vz-m .vz-line-top .vz-line-v{font-size:23px}
.vz-m .vz-line-f,.vz-m .vz-line-m,.vz-m .vz-line-n,.vz-m .vz-note,.vz-m .vz-total-s{font-size:16px}
.vz-m .vz-total-k{font-size:20px}
.vz-m .vz-total-v{font-size:48px}
.vz-m .vz-removal{font-size:16px;justify-content:flex-start;gap:8px;padding:6px 10px}
.vz-m .vz-cta,.vz-m .vzf button[type=submit]{font-size:19px}

/* A tapped card keeps its highlight on touch screens, where :hover sticks */
.vz-catc.on:hover:not(:disabled),.vz-item.on:hover,.vz-rt.on:hover{border:3px solid var(--pink);background:var(--softsel);box-shadow:0 0 0 3px rgba(255,79,139,.35),0 8px 18px -10px rgba(255,79,139,.8)}
@media (hover:none){.vz-catc:hover:not(:disabled):not(.on),.vz-item:hover:not(.on),.vz-rt:hover:not(.on){transform:none}}
.vz-pp-b{min-height:50px;border:0;border-radius:14px;background:var(--wbtn);color:#fff;font:800 19px Inter,Arial,sans-serif;cursor:pointer}
.vz-extras{display:block;margin-top:4px;font-weight:800;color:#8f0f4d}
.vz-extras:empty{display:none}
.vz-added{margin:0;padding:8px 12px;border-radius:12px;background:var(--softsel);border:2px solid var(--pink);font-size:17px;font-weight:800;color:#17100b;text-align:center}

/* Watch the install: a glass play button on the photo */
.vz-m .vz-stage .vz-watch{position:absolute;left:auto;right:8px;bottom:8px;width:auto;z-index:3;display:inline-flex;align-items:center;gap:7px;min-height:44px;padding:0 14px 0 10px;border-radius:999px;font-size:16px;color:#fff!important;background:rgba(40,12,30,.55);-webkit-backdrop-filter:blur(10px) saturate(1.4);backdrop-filter:blur(10px) saturate(1.4);border:1px solid rgba(255,255,255,.5);box-shadow:inset 0 1px 0 rgba(255,255,255,.45),0 6px 14px -6px rgba(0,0,0,.6)}
.vz-play{display:none}
.vz-m .vz-play{display:block;width:0;height:0;border-style:solid;border-width:7px 0 7px 12px;border-color:transparent transparent transparent #fff}

/* Liquid glass step buttons */
.vz-m .vz-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding:6px;border-radius:24px;background:rgba(255,255,255,.42);-webkit-backdrop-filter:blur(20px) saturate(1.7);backdrop-filter:blur(20px) saturate(1.7);border:1px solid rgba(255,255,255,.75);box-shadow:inset 0 1px 0 rgba(255,255,255,.9),inset 0 -1px 0 rgba(120,80,50,.15),0 14px 30px -12px rgba(50,20,5,.6)}
.vz-m .vz-typing .vz-nav{display:none}
.vz-nav-ic{width:23px;height:23px;display:block;margin-bottom:1px}
.vz-nav button{position:relative;overflow:hidden;min-width:0;min-height:72px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4px 2px;border:1px solid rgba(255,255,255,.85);border-radius:18px;background:linear-gradient(180deg,rgba(255,255,255,.82),rgba(255,255,255,.5));box-shadow:inset 0 1px 1px #fff,inset 0 -3px 6px rgba(150,110,80,.14),0 3px 7px -3px rgba(60,25,5,.45);color:#17100b;font:800 16px/1.15 Inter,Arial,sans-serif;cursor:pointer;touch-action:manipulation;transition:transform .12s}
.vz-nav button:active{transform:scale(.96)}
.vz-nav button::before{content:"";position:absolute;left:8%;right:8%;top:2px;height:38%;border-radius:14px 14px 40% 40%;background:linear-gradient(180deg,rgba(255,255,255,.75),rgba(255,255,255,0));pointer-events:none}
.vz-nav button>*{position:relative}
.vz-nav button b{font-weight:800}
.vz-nav button span{font-size:16px;font-weight:800;color:#c0105c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.vz-nav button.on{background:linear-gradient(180deg,rgba(255,214,230,.95),rgba(255,160,195,.6));border-color:rgba(255,120,170,.95);box-shadow:inset 0 1px 1px #fff,inset 0 -3px 7px rgba(224,24,111,.22),0 0 0 2px rgba(255,79,139,.35),0 4px 12px -3px rgba(224,24,111,.6)}
.vz-nav .vz-nav-book,.vz-nav .vz-nav-book.on{background:linear-gradient(135deg,#f02a80,#e0186f 45%,#d9520a);border-color:rgba(255,255,255,.55);color:#fff;box-shadow:inset 0 1px 1px rgba(255,255,255,.75),inset 0 -4px 8px rgba(110,10,30,.35),0 5px 14px -3px rgba(214,20,107,.75)}
.vz-nav .vz-nav-book span{color:#fff}

/* Tall or nearly square screens: a third of the screen for the room, glass bar for the thumb */
.vz-m-narrow{--nav:100px}
.vz-m-narrow .vz{padding:8px 8px calc(var(--nav) + 12px + env(safe-area-inset-bottom));gap:10px}
.vz-m-narrow .vz-panel{border-radius:16px;align-items:stretch}
.vz-m-narrow .vz-rt-x{display:none}
.vz-m-narrow .vz-stage{position:sticky;top:0;z-index:5;height:33vh;height:33dvh;aspect-ratio:auto;border-radius:0;width:100%}
.vz-m-narrow .vz-unpin .vz-stage{position:relative}
.vz-m-narrow .vz-canvas,.vz-m-narrow .vz-still{object-position:50% 72%}
.vz-m-narrow .vz-sum{margin:8px 10px 2px;gap:8px;flex-wrap:nowrap}
.vz-m-narrow .vz-right{padding:10px;gap:16px}
.vz-m-narrow .vz-left>#vz-step2{padding:10px}
.vz-m-narrow #vz-step3,.vz-m-narrow .vz-book{padding:12px}
.vz-m-narrow .vz-panel .vz-group,.vz-m-narrow .vz-panel :is(input,select,button){scroll-margin-top:calc(33vh + 10px);scroll-margin-top:calc(33dvh + 10px)}
.vz-m-narrow #vz-step3,.vz-m-narrow #vz-step4{scroll-margin-top:8px}
.vz-m-narrow .vz-nav{position:fixed;z-index:30;left:8px;right:8px;bottom:calc(6px + env(safe-area-inset-bottom));max-width:720px;margin:0 auto}
@media (min-width:600px){.vz-m-narrow .vz-cats,.vz-m-narrow .vz-floors .vz-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* Truly wide screens: two columns only. Big room on the left, buttons in a row under it */
.vz-m-wide .vz{display:grid;grid-template-columns:minmax(0,58fr) minmax(0,42fr);gap:10px;align-items:start;padding:8px max(8px,env(safe-area-inset-right)) 16px max(8px,env(safe-area-inset-left))}
.vz-m-wide .vz-head{grid-column:2;grid-row:1}
.vz-m-wide .vz-panel,.vz-m-wide .vz-left,.vz-m-wide .vz-end{display:contents}
.vz-m-wide .vz-pin{grid-column:1;grid-row:1/span 6;align-self:start;position:sticky;top:8px;z-index:5;display:flex;flex-direction:column;gap:6px;min-width:0;height:calc(100vh - 16px);height:calc(100dvh - 16px)}
.vz-m-wide .vz-unpin .vz-pin{position:static;height:auto}
.vz-m-wide .vz-stage{position:relative;top:auto;order:1;flex:1 1 0;min-height:0;width:100%;aspect-ratio:auto;border-radius:16px}
.vz-m-wide .vz-nav{order:2;flex:none}
.vz-m-wide .vz-sum{order:3;flex:none;flex-wrap:nowrap;margin:0;background:var(--panel);border-radius:14px;padding:6px 10px;gap:8px}
.vz-m-wide .vz-pinprice{order:4;flex:none;display:grid;grid-template-columns:auto 1fr;gap:0 12px;align-items:center;background:linear-gradient(135deg,#ffe3ee,#ffeeda);border:3px solid #ff4f8b;border-radius:14px;padding:6px 12px}
.vz-pp-k{font-size:17px;font-weight:800;color:#c0105c;text-transform:uppercase;letter-spacing:.04em}
.vz-pp-v{grid-row:1/3;grid-column:2;justify-self:end;font-size:34px;font-weight:800;line-height:1.05;letter-spacing:-.03em;color:#c0105c}
.vz-pp-s{font-size:16px;font-weight:600;line-height:1.2;color:#17100b}
.vz-pp-b{grid-column:1/-1;margin-top:6px}
.vz-m-wide .vz-right,.vz-m-wide .vz-left>#vz-step2,.vz-m-wide #vz-step3,.vz-m-wide .vz-book{grid-column:2;min-width:0;background:var(--panel);border:0;border-radius:16px;padding:10px;margin:0;box-shadow:none;scroll-margin-top:8px}
.vz-m-wide .vz-right{grid-row:2}.vz-m-wide .vz-left>#vz-step2{grid-row:3}.vz-m-wide #vz-step3{grid-row:4}.vz-m-wide .vz-book{grid-row:5}
.vz-m-wide .vz-group,.vz-m-wide .vz-panel :is(input,select,button){scroll-margin-top:8px}
.vz-m-wide .vz-floors .vz-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.vz-m-wide .vz-up-t{flex-wrap:wrap}
/* Short screens (rotated phone): the bar's price replaces the price box */
@media (max-height:620px){
  .vz-m-wide .vz-pinprice,.vz-m-wide .vz-sum-spec,.vz-m-wide .vz-sum-img{display:none}
  .vz-m-wide .vz-sum{padding:2px 10px}
  .vz-m-wide .vz-sum-name{font-size:17px}
  .vz-m-wide .vz-nav{padding:4px;gap:4px;border-radius:18px}
  .vz-m-wide .vz-nav button{min-height:50px;flex-direction:row;flex-wrap:wrap;gap:0 4px;border-radius:14px}
  .vz-m-wide .vz-nav-ic{display:none}
  .vz-m-wide .vz-nav button b,.vz-m-wide .vz-nav button span{flex:0 0 100%;text-align:center}
}

/* Price / size / style chooser: its own bright box with a title, every choice visible */
.vz-tabwrap{margin:0 0 12px;padding:12px;border:3px solid #e0186f;border-radius:20px;background:linear-gradient(135deg,#ffe3ee,#ffeeda);box-shadow:0 6px 18px rgba(224,24,111,.18)}
.vz-tabs-h{margin:0 0 10px;font:800 22px/1.15 Inter,Arial,sans-serif;color:#17100b}
.vz-tabwrap .vz-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;overflow:visible}
.vz-tabwrap .vz-tab{flex:1 1 30%;min-width:0;min-height:68px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:6px 4px;border-radius:16px;background:#fff;color:#17100b;border:2.5px solid var(--softline);box-shadow:0 3px 0 var(--softline);cursor:pointer;font-family:inherit;white-space:nowrap}
.vz-tab b{font-size:19px;font-weight:800;line-height:1.15}
.vz-tabwrap .vz-tab span{font-size:15px;font-weight:700;line-height:1.15;color:#8f0f4d}
.vz-tabwrap .vz-tab:active{transform:translateY(2px);box-shadow:0 1px 0 var(--softline)}
.vz-tabwrap .vz-tab.on{background:var(--wbtn);border-color:#8f0f4d;box-shadow:0 3px 0 #8f0f4d;color:#fff}
.vz-tabwrap .vz-tab.on span{color:#fff}
@media (hover:hover){.vz-tabwrap .vz-tab:hover:not(.on){background:#fff3f8}}

.vz-m .vz-tabwrap .vz-tab{flex-basis:45%;min-height:60px}
@media (min-width:600px){.vz-m-narrow .vz-tabwrap .vz-tab{flex-basis:30%}}
.vz-m-narrow .vz-tabwrap{scroll-margin-top:calc(33vh + 10px);scroll-margin-top:calc(33dvh + 10px)}
.vz-m-wide .vz-tabwrap{scroll-margin-top:8px}
@media (min-width:1280px) and (max-width:1599px){.vz-catc-p{white-space:normal}}

/* Five bottom buttons: Floor, Price, Rooms, Total, Book */
.vz-m .vz-nav{grid-template-columns:repeat(4,minmax(0,1fr)) minmax(0,1.2fr);gap:4px;padding:5px}
.vz-m .vz-nav button{font-size:15px;padding:4px 1px}
.vz-m .vz-nav button span{font-size:15px}
/* See All: flashing so it can't be missed */
.vz-m .vz-seeall{min-height:58px;margin-top:10px;border:3px solid #fff;background:var(--wbtn);color:#fff;font-size:20px;box-shadow:0 0 0 3px #e0186f}
@media (prefers-reduced-motion:no-preference){.vz-m .vz-seeall{animation:vz-flash 1.1s ease-in-out infinite}@keyframes vz-flash{50%{opacity:.55;box-shadow:0 0 0 7px rgba(224,24,111,.35)}}}
.vz-m-narrow .vz-nav{bottom:calc(6px + var(--vfo-privacy-bar-space,0px) + env(safe-area-inset-bottom))}
.vzf-manual{display:none}
.wc-address{position:relative}
.wc-address__list{margin-top:6px;max-height:280px;overflow:auto;border-radius:14px;box-shadow:0 6px 18px rgba(60,25,5,.25)}
.wc-address__status{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

/* On the website: same look as the live pages */
html.vz-live #app{--bg:#e4d6c1;background:var(--bg);min-height:100vh;min-height:100dvh;font:500 19px/1.45 Inter,"Helvetica Neue",Arial,sans-serif}
html.vz-live #app .vz{background:none}
html.vz-live #app .vz-head{display:block;text-align:center;padding-top:14px}
html.vz-live #app h1{background:none;-webkit-text-fill-color:currentColor;color:#16120f;animation:none;font-weight:780;letter-spacing:-.045em}
html.vz-live #app h1 .vz-grad{color:#a9502f;-webkit-text-fill-color:currentColor}
html.vz-live #app .vz-sub{color:#2b1d13;text-align:center}
html.vz-live .vz-past .vz-nav,html.vz-past .vz-m-narrow .vz-nav,html.vz-past.vz-m-narrow .vz-nav{transform:translateY(160%);transition:transform .2s}
/* Phones: the site header scrolls away so the room and bottom bar keep their room */
html.vz-live.vz-m .vfo-site-header{position:absolute}
html.vz-live #app .vz-head>div:not(.vz-upcard){text-align:center;width:100%}
html.vz-live #app .vz-head h1{display:block;width:100%;text-align:center}
html.vz-live #app .vz-upcard{max-width:760px;margin:10px auto 0}

/* Computer with a mouse: same side-by-side layout. The room, price and step buttons stay on screen; every step scrolls beside them, with no box-inside-a-box scrolling. */
html.vz-big .vz{grid-template-columns:minmax(0,56fr) minmax(0,44fr);gap:16px;padding:12px 20px 28px}
html.vz-big .vz-head{grid-column:1/-1;grid-row:1}
html.vz-big .vz-pin{grid-row:2/span 6;top:12px;height:calc(100vh - 24px);height:calc(100dvh - 24px);gap:8px}
html.vz-big .vz-right{grid-row:2}
html.vz-big .vz-left>#vz-step2{grid-row:3}
html.vz-big #vz-step3{grid-row:4}
html.vz-big .vz-book{grid-row:5}
html.vz-big .vz-right,html.vz-big .vz-left>#vz-step2,html.vz-big #vz-step3,html.vz-big .vz-book{padding:16px}
html.vz-big .vz-floors .vz-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
html.vz-big .vz-floors .vz-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
html.vz-big .vz-nav button{font-size:16px;min-height:62px}

/* Computer: everything smaller so more colors fit on one screen */
html.vz-big .vz-cats{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
html.vz-big .vz-catc{padding:4px;border-radius:12px}
html.vz-big .vz-catc .vfo-jc-stage{height:54px;aspect-ratio:auto;border-radius:8px}
html.vz-big .vz-catc-b{padding:3px 3px 1px}
html.vz-big .vz-catc-n{font-size:17px}
html.vz-big .vz-catc-p,html.vz-big .vz-catc.on .vz-catc-b .vz-catc-p{font-size:16px}
html.vz-big .vz-catc-s{font-size:15px;line-height:1.2}
html.vz-big .vz-tabwrap{margin:0 0 10px;padding:8px 10px;border-width:2.5px;border-radius:14px}
html.vz-big .vz-tabs-h{margin:0 0 6px;font-size:18px}
html.vz-big .vz-tabwrap .vz-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
html.vz-big .vz-tabwrap .vz-tab{min-height:48px;padding:3px;border-radius:11px}
html.vz-big .vz-tab b{font-size:17px}
html.vz-big .vz-tabwrap .vz-tab span{font-size:14px}
html.vz-big .vz-pick-p{font-size:22px}
html.vz-big .vz-pick-s,html.vz-big .vz-compare{font-size:16px;font-weight:600}
html.vz-big .vz-floors .vz-grid,html.vz-big .vz-floors .vz-grid-2{grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:8px}
html.vz-big .vz-floors .vz-imgw img{aspect-ratio:5/4;border-radius:8px}
html.vz-big .vz-floors .vz-item{padding:4px 4px 6px;gap:1px;border-radius:11px}
html.vz-big .vz-floors .vz-item .n{font-size:15px;line-height:1.2}
html.vz-big .vz-floors .vz-item .m,html.vz-big .vz-floors .vz-item .m:last-child{font-size:15px;line-height:1.2;white-space:normal}
html.vz-big .vz-floors .vz-sale{font-size:13px}
/* Price button: show where it landed */
.vz-here{animation:vz-here 1s ease-in-out 2}
@keyframes vz-here{50%{box-shadow:0 0 0 7px rgba(224,24,111,.55)}}
@media (prefers-reduced-motion:reduce){.vz-here{animation:none;box-shadow:0 0 0 5px rgba(224,24,111,.55)}}
/* Booked: impossible to miss */
.vzf-yes{display:flex;align-items:flex-start;gap:16px;padding:22px;border-radius:20px;background:var(--wbtn);box-shadow:0 14px 28px -14px rgba(224,24,111,.8)}
.vzf-yes-ic{flex:none;display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:#fff;color:#c0105c;font:900 36px/1 Inter,Arial,sans-serif}
#app .vzf-yes h3{margin:0 0 6px;font-size:clamp(32px,3.4vw,46px);line-height:1.08;font-weight:900;letter-spacing:-.025em;color:#fff;-webkit-text-fill-color:#fff}
#app .vzf-yes p{margin:0;color:#fff;font-size:21px;line-height:1.3;font-weight:800}
#app .vzf-yes p.vzf-hours{margin-top:6px;font-size:17px!important;font-weight:600}
#app .vzf-thanks{padding:16px 18px;border:3px solid #e0186f;border-radius:16px;background:linear-gradient(135deg,#ffe3ee,#ffeeda);color:#c0105c;font-size:24px;font-weight:800!important}
@media (max-width:520px){.vzf-yes{padding:16px;gap:12px}.vzf-yes-ic{width:44px;height:44px;font-size:27px}#app .vzf-yes h3{font-size:30px}#app .vzf-yes p{font-size:19px}}
/* Address box: same size and edge as the other fields */
#app .wc-address__input{display:block;padding:0;border:0;border-radius:0;background:none}
html.vz-big .vz-catc-p,html.vz-big .vz-catc.on .vz-catc-b .vz-catc-p{font-size:15px;white-space:nowrap;letter-spacing:-.01em}

/* Plain facts under the tool, in the page's HTML for search engines and anyone without JavaScript */
.vz-facts{max-width:900px;margin:0 auto;padding:28px 20px 12px;color:#16120f;font:500 18px/1.45 Inter,"Helvetica Neue",Arial,sans-serif}
.vz-facts h2{margin:0 0 8px;font-size:clamp(26px,3vw,34px);line-height:1.15;font-weight:800;letter-spacing:-.02em}
.vz-facts p{margin:0 0 14px}
.vz-facts-t{overflow-x:auto}
.vz-facts table{width:100%;border-collapse:collapse;background:#fff;border-radius:14px;overflow:hidden}
.vz-facts th,.vz-facts td{padding:10px 14px;text-align:left;font-size:17px;line-height:1.3;border-bottom:1px solid #e8dcc9}
.vz-facts thead th{font-weight:800;background:#f3ece0}
.vz-facts tbody th{font-weight:700}
.vz-facts td{font-weight:800;white-space:nowrap;color:#a9502f}
.vz-facts-n{margin:14px 0 0!important;font-size:17px;font-weight:600}
.vz-facts-n a{color:#a9502f;font-weight:800}
@media (max-width:600px){.vz-facts th,.vz-facts td{padding:8px 10px;font-size:16px}.vz-facts td{white-space:normal}}
html.vz-big .vz-cats{grid-template-columns:minmax(0,1.7fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1.15fr)}

/* Audit round: no jump when See All opens the list */
.vz-floors{overflow-anchor:none}
html.vz-live.vz-m-wide body{padding-right:0!important}
/* Big screens: every color shows, no cap; nothing under 16px; room, step bar, then floor and price side by side */
html.vz-big .vz-floors .vz-grid.vz-cap>:nth-child(n+21){display:flex}
html.vz-big .vz-seeall{display:none!important}
html.vz-big .vz-floors .vz-item .n,html.vz-big .vz-floors .vz-item .m,html.vz-big .vz-floors .vz-item .m:last-child{font-size:16px}
html.vz-big .vz-floors .vz-sale{font-size:14px}
html.vz-big .vz-tabwrap .vz-tab span{font-size:16px}
html.vz-big .vz-tabwrap .vz-tab{min-height:54px}
html.vz-big .vz-catc-s{font-size:16px}
html.vz-big .vz-catc-p,html.vz-big .vz-catc.on .vz-catc-b .vz-catc-p{font-size:16px;white-space:normal;letter-spacing:0}
html.vz-big .vz-nav button,html.vz-big .vz-nav button span{font-size:16px}
html.vz-big .vz-pin{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto auto;height:calc(100vh - 24px - var(--vfo-privacy-bar-space,0px));height:calc(100dvh - 24px - var(--vfo-privacy-bar-space,0px))}
html.vz-big .vz-stage{grid-column:1/-1;grid-row:1;height:auto;background-size:cover;background-position:center}
html.vz-big .vz-nav{grid-column:1/-1;grid-row:2}
html.vz-big .vz-sum{grid-column:1;grid-row:3;min-width:0;align-self:stretch}
html.vz-big .vz-pinprice{grid-column:2;grid-row:3;min-width:0;align-self:stretch}
html.vz-big .vz-pp-b{display:none}
html.vz-big .vz-pp-v{grid-row:1/3}
@media (max-height:620px){html.vz-big .vz-sum{grid-column:1/-1}}
html.vz-big.vz-live #app .vz-head{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:12px;padding-top:6px}
html.vz-big.vz-live #app .vz-head>div:not(.vz-upcard){grid-column:2;width:auto}
html.vz-big.vz-live #app .vz-upcard{grid-column:3;justify-self:end;width:auto;max-width:100%;margin:0}
/* The picked color is obvious */
html.vz-big .vz-floors .vz-item{position:relative}
html.vz-big .vz-floors .vz-item.on{border:4px solid #c0105c;padding:2px 2px 4px}
html.vz-big .vz-floors .vz-item.on::after{content:"\2713";position:absolute;top:8px;right:8px;width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:#c0105c;color:#fff;font:900 18px/1 Inter,Arial,sans-serif;box-shadow:0 0 0 2px #fff}
/* The main next step is the bright button; adding a room is the quiet one */
html.vz-big .vz-add{background:#fff!important;color:#17100b!important;border:2.5px solid var(--softline);font-size:17px;min-height:46px}
html.vz-big .vz-next{background:var(--wbtn);color:#fff;border:0;min-height:52px}
html.vz-big #app .vzf-f input,html.vz-big #app .vzf-notes textarea{border:2px solid #cf4d0a}
/* Only the chosen floor type animates */
html.vz-big .vz-catc:not(.on):not(:hover) .vfo-jc-stage *{animation-play-state:paused!important}

/* Big screens: the whole room always shows. The room column is as wide as the screen height allows, the list takes the rest. */
html.vz-big .vz{--vz-chrome:202px;--vz-room:max(36%,min(58%,calc((100dvh - 24px - var(--vfo-privacy-bar-space,0px) - var(--vz-chrome))*1.5)));max-width:1600px;grid-template-columns:minmax(0,var(--vz-room)) minmax(0,1fr)}
html.vz-big .vz-pin{display:flex;flex-direction:column;height:auto;gap:8px}
html.vz-big .vz-stage{flex:none;width:100%;aspect-ratio:3/2;order:1}
html.vz-big .vz-nav{order:2}
html.vz-big .vz-pin{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:auto auto auto auto;align-content:start}
html.vz-big .vz-pinmore{grid-column:1/-1;grid-row:4}
.vz-pinmore{display:none}
@media (min-height:860px){
  html.vz-big .vz{--vz-chrome:292px}
  html.vz-big .vz-pinmore{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6px 12px;align-items:center;padding:10px 12px;border-radius:14px;background:#fff;color:#17100b;font-size:17px;line-height:1.3;font-weight:600}
}
.vz-pm-scope{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.vz-pm-scope button{min-height:46px;padding:2px 6px;border:2.5px solid var(--softline);border-radius:12px;background:#fff;color:#17100b;font:800 16px/1.15 Inter,Arial,sans-serif;cursor:pointer}
.vz-pm-scope button.on{border-color:#8f0f4d;background:var(--wbtn);color:#fff}
.vz-pm-rooms{margin:0;padding:0;list-style:none;font-weight:700}
.vz-pm-note{grid-column:1/-1;margin:0;font-size:16px}
.vz-pm-note a{color:#c0105c;font-weight:800;white-space:nowrap}
/* Floor type cards: the whole animation shows */
html.vz-big .vz-cats{grid-template-columns:repeat(4,minmax(0,1fr));max-width:920px}
html.vz-big .vz-catc .vfo-jc-stage{height:auto;aspect-ratio:16/9}
/* Wide lists use the room: price tabs on one line, more colors across */
html.vz-big .vz-tabwrap .vz-tabs{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
html.vz-big .vz-floors .vz-grid,html.vz-big .vz-floors .vz-grid-2{grid-template-columns:repeat(auto-fill,minmax(122px,1fr))}
html.vz-big .vz-tabwrap .vz-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}

/* Room choices: five across, built like the floor type cards */
html.vz-big .vz-rtypes{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;max-width:1100px}
html.vz-big .vz-rt,html.vz-big .vz-rt:nth-child(n+4){grid-column:auto;padding:4px;border-radius:12px;min-height:0}
html.vz-big .vz-rt-pic{height:auto;aspect-ratio:16/9;border-radius:8px}
html.vz-big .vz-rt-n{padding:3px 3px 1px;font-size:16px;line-height:1.2;white-space:normal}

/* Lines that must be seen: the other rooms heading and the Send details button */
#app .vz-others{width:auto;margin:10px 0 0;padding:10px 16px;border-radius:12px;background:var(--wbtn);background-image:var(--wbtn);-webkit-background-clip:border-box;background-clip:border-box;-webkit-text-fill-color:#fff;color:#fff;font-size:22px;font-weight:800;line-height:1.25}
#app .vzf-send{align-self:stretch;width:100%;min-height:58px;background:var(--wbtn);color:#fff;font-size:21px;box-shadow:0 10px 20px -10px rgba(224,24,111,.8)}
#app .vzf-send:disabled{opacity:.7;cursor:default}

/* Unfolded iPhone Duo / small touch tablets (the site's side-rail screens): the page keeps a column on the right for
   the rail, so the tool's five buttons plus Call move into it, top to bottom, with Book free estimate biggest at the
   bottom. Same query as the site's rail in vfo-maps-chooser.css; the rail is a bit wider here so labels stay readable. */
.vz-nav-call{display:none}
@media (pointer:coarse) and (min-width:600px) and (min-height:340px) and (max-height:900px) and (max-width:1000px),(horizontal-viewport-segments:2){
  html.vz-m{--vfo-rail-w:96px}
  html.vz-live.vz-m.vz-m-wide body{padding-right:var(--vfo-rail-space)!important}
  html.vz-m-wide .vz-pin{z-index:auto}
  html.vz-m .vz .vz-nav,html.vz-m.vz-past .vz .vz-nav{position:fixed;z-index:46;top:var(--vfo-rail-top,72px);bottom:calc(8px + env(safe-area-inset-bottom));left:auto;right:var(--vfo-rail-gap,6px);width:var(--vfo-rail-w);max-width:none;height:fit-content;max-height:calc(100dvh - var(--vfo-rail-top,72px) - 8px);margin:auto 0;transform:none;display:flex;flex-direction:column;gap:4px;padding:5px;border-radius:26px;overflow-y:auto}
  html.vz-m .vz-nav>button,html.vz-m .vz-nav>a{flex:0 0 auto;min-height:62px;padding:4px 2px;border-radius:18px;font-size:15px}
  html.vz-m .vz-nav-ic{display:block;width:24px;height:24px}
  html.vz-m .vz-nav button b,html.vz-m .vz-nav a b{font-size:15px}
  html.vz-m .vz-nav button span,html.vz-m .vz-nav a span{font-size:14px;max-width:100%}
  html.vz-m .vz-nav .vz-nav-call{position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.85);background:linear-gradient(180deg,rgba(255,255,255,.82),rgba(255,255,255,.5));box-shadow:inset 0 1px 1px #fff,inset 0 -3px 6px rgba(150,110,80,.14),0 3px 7px -3px rgba(60,25,5,.45);color:#17100b;font:800 15px/1.15 Inter,Arial,sans-serif;text-decoration:none}
  html.vz-m .vz-nav .vz-nav-call span{color:#c0105c;font-weight:800}
  html.vz-m .vz-nav .vz-nav-book{min-height:96px;font-size:15px}
  html.vz-m .vz-nav .vz-nav-book b{white-space:normal;line-height:1.1}
  html.vz-m .vz-typing .vz-nav{display:none}
}
@media (pointer:coarse) and (min-width:600px) and (max-height:620px) and (max-width:1000px){
  html.vz-m .vz .vz-nav>button,html.vz-m .vz .vz-nav>a{min-height:50px;flex-direction:column;flex-wrap:nowrap}
  html.vz-m .vz-nav-ic{display:none}
  html.vz-m .vz .vz-nav .vz-nav-book{min-height:64px}
}
