/* Visualize Your Renovation - wizard styles.
   Reuses the site's existing design tokens (see :root in the compiled
   bundle stylesheet) rather than introducing a new visual system:
   --primary:#253d36 --accent:#dafe70 --foreground:#202a2a
   --muted:#f3f5f0 --muted-foreground:#616c65 --border:#d9dfd8
   --input:#c8d1c6 --destructive:#b42318 --radius:.35rem
*/

.vz-hero{padding-bottom:20px;text-align:center}
.vz-hero .eyebrow{justify-content:center;display:flex}
.vz-h1{letter-spacing:-.04em;font-size:clamp(2.4rem,5vw,3.6rem);line-height:1.02;margin:0 0 18px}
.vz-lede{max-width:640px;margin:0 auto;color:var(--muted-foreground,#616c65);font-size:1.05rem;line-height:1.6}

.vz-wizard-section{padding-top:0}
.vz-wizard{max-width:760px;margin:0 auto;background:#fff;border:1px solid var(--border,#d9dfd8);border-radius:calc(var(--radius,.35rem) * 3);padding:36px 5%}

@media(max-width:600px){
  .vz-wizard{padding:24px 5%;border-radius:calc(var(--radius,.35rem) * 2)}
}

/* progress */
.vz-progress{display:flex;list-style:none;margin:0 0 32px;padding:0;gap:4px}
.vz-progress li{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;position:relative;font-size:.7rem;color:var(--muted-foreground,#616c65)}
.vz-progress li:not(:last-child):after{content:"";position:absolute;top:14px;left:calc(50% + 20px);right:calc(-50% + 20px);height:2px;background:var(--border,#d9dfd8)}
.vz-progress li.vz-done:not(:last-child):after{background:var(--primary,#253d36)}
.vz-dot{width:28px;height:28px;border-radius:50%;background:var(--muted,#f3f5f0);border:2px solid var(--border,#d9dfd8);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.8rem;color:var(--muted-foreground,#616c65);z-index:1}
.vz-progress li.vz-active .vz-dot{background:var(--primary,#253d36);border-color:var(--primary,#253d36);color:#fff}
.vz-progress li.vz-done .vz-dot{background:var(--primary,#253d36);border-color:var(--primary,#253d36);color:#fff}
.vz-plabel{display:none}
@media(min-width:560px){.vz-plabel{display:block}}

/* banner */
.vz-banner{border-radius:var(--radius,.35rem);padding:14px 16px;margin-bottom:24px;font-size:.9rem;background:#fdecea;color:var(--destructive,#b42318);border:1px solid #f3c8c3}
.vz-banner.vz-banner--info{background:var(--muted,#f3f5f0);color:var(--foreground,#202a2a);border-color:var(--border,#d9dfd8)}

.vz-steptitle{font-size:clamp(1.4rem,3vw,1.9rem);letter-spacing:-.02em;margin:0 0 8px}
.vz-stepsub{color:var(--muted-foreground,#616c65);margin:0 0 24px;line-height:1.55}

.vz-field{margin-bottom:24px}
.vz-label{display:block;font-weight:600;font-size:.85rem;margin-bottom:10px;color:var(--foreground,#202a2a)}
.vz-optional{font-weight:400;color:var(--muted-foreground,#616c65)}

/* upload */
.af-dropzone{display:block}
.vz-thumbs{display:flex;flex-wrap:wrap;gap:12px;margin-top:16px}
.vz-thumb{position:relative;width:104px;height:104px;border-radius:var(--radius,.35rem);overflow:hidden;border:1px solid var(--border,#d9dfd8)}
.vz-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.vz-thumb button{position:absolute;top:4px;right:4px;width:22px;height:22px;border-radius:50%;border:0;background:#20222080;color:#fff;font-size:14px;line-height:1;cursor:pointer}
.vz-thumb-add{width:104px;height:104px;border:2px dashed var(--border,#d9dfd8);border-radius:var(--radius,.35rem);display:flex;align-items:center;justify-content:center;font-size:28px;color:var(--muted-foreground,#616c65);cursor:pointer;background:var(--muted,#f3f5f0)}

/* chips (room type / changes / colors) */
.vz-chip-group{display:flex;flex-wrap:wrap;gap:10px}
.vz-chip{border:1px solid var(--input,#c8d1c6);background:#fff;color:var(--foreground,#202a2a);padding:10px 16px;border-radius:999px;font-size:.88rem;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s}
.vz-chip:hover{background:var(--muted,#f3f5f0)}
.vz-chip.vz-selected{background:var(--primary,#253d36);border-color:var(--primary,#253d36);color:#fff}
.vz-other-row{margin-top:12px}

/* style cards */
.vz-style-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:14px}
.vz-style-card{border:1px solid var(--input,#c8d1c6);border-radius:var(--radius,.35rem);padding:0;cursor:pointer;background:#fff;overflow:hidden;text-align:left;transition:border-color .15s,transform .15s}
.vz-style-card:hover{transform:translateY(-2px)}
.vz-style-swatch{height:64px;width:100%}
.vz-style-name{display:block;padding:10px 12px;font-weight:600;font-size:.9rem}
.vz-style-card.vz-selected{border-color:var(--primary,#253d36);box-shadow:0 0 0 2px var(--primary,#253d36) inset}

/* materials */
.vz-material-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin-bottom:28px}
.vz-material-grid select{width:100%}

/* products */
.vz-product-row{border:1px solid var(--border,#d9dfd8);border-radius:var(--radius,.35rem);padding:16px;margin-bottom:14px;display:grid;gap:12px}
.vz-product-row .vz-product-top{display:grid;grid-template-columns:2fr 1fr;gap:12px}
.vz-product-row .vz-product-mid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.vz-product-remove{justify-self:end;background:none;border:0;color:var(--destructive,#b42318);font-size:.85rem;cursor:pointer;padding:0}
.vz-product-preview{display:flex;gap:10px;align-items:center;font-size:.8rem;color:var(--muted-foreground,#616c65)}
.vz-product-preview img{width:40px;height:40px;object-fit:cover;border-radius:4px;border:1px solid var(--border,#d9dfd8)}

/* generic form controls inside the wizard (overrides the bundle's oversized global input rule) */
.vz-wizard input[type=text],
.vz-wizard input[type=email],
.vz-wizard input[type=tel],
.vz-wizard input[type=url],
.vz-wizard select,
.vz-wizard textarea{
  width:100%;box-sizing:border-box;font-size:.95rem;font-family:inherit;
  border:1px solid var(--input,#c8d1c6);border-radius:var(--radius,.35rem);
  padding:12px 14px;color:var(--foreground,#202a2a);background:#fff;
}
.vz-wizard textarea{resize:vertical}
.vz-wizard input:focus,.vz-wizard select:focus,.vz-wizard textarea:focus{outline:2px solid var(--ring,#536c49);outline-offset:1px}
.vz-wizard .vz-field-error{color:var(--destructive,#b42318);font-size:.8rem;margin-top:6px}
.vz-wizard input.vz-invalid{border-color:var(--destructive,#b42318)}

/* form grid (step 7) */
.vz-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px 24px}
@media(max-width:600px){.vz-form-grid{grid-template-columns:1fr}}
.vz-checkbox-row label{display:flex;align-items:flex-start;gap:10px;font-size:.9rem;color:var(--foreground,#202a2a)}
.vz-checkbox-row input{width:auto;margin-top:3px}

/* step actions */
.vz-step-actions{display:flex;justify-content:space-between;align-items:center;margin-top:32px;gap:12px}
.vz-step-actions--triple{flex-wrap:wrap}
.btn--ghost{background:#fff;border:1px solid var(--input,#c8d1c6);color:var(--foreground,#202a2a)}
.btn--ghost:hover{background:var(--muted,#f3f5f0)}
.btn--small{padding:9px 14px;font-size:.82rem}
.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}

/* loading state */
.vz-loading{text-align:center;padding:60px 0}
.vz-spinner{width:48px;height:48px;border-radius:50%;border:4px solid var(--border,#d9dfd8);border-top-color:var(--primary,#253d36);margin:0 auto 24px;animation:vz-spin 1s linear infinite}
@keyframes vz-spin{to{transform:rotate(360deg)}}

/* compare / choose */
.vz-compare{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:16px}
.vz-compare-card{border:1px solid var(--border,#d9dfd8);border-radius:var(--radius,.35rem);overflow:hidden;background:#fff}
.vz-compare-card img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;background:var(--muted,#f3f5f0)}
.vz-compare-card .vz-compare-label{padding:10px 12px;font-weight:600;font-size:.85rem;display:flex;justify-content:space-between;align-items:center}
.vz-compare-card.vz-chosen{box-shadow:0 0 0 3px var(--primary,#253d36) inset}
.vz-compare-card .vz-choose-btn{width:calc(100% - 24px);margin:0 12px 12px}
.vz-chosen-badge{background:var(--primary,#253d36);color:#fff;font-size:.7rem;padding:3px 8px;border-radius:999px}
.vz-compare-error{padding:20px;text-align:center;color:var(--muted-foreground,#616c65);font-size:.9rem}
.vz-disclaimer{font-size:.78rem;color:var(--muted-foreground,#616c65);line-height:1.5;border-top:1px solid var(--border,#d9dfd8);padding-top:14px;margin-top:4px}

.vz-done{text-align:center;padding:40px 0}

.vz-pdf-cta{margin-top:16px}
.vz-pdf-cta .btn{display:inline-block}
