/* Valorador Inmobiliario — widget (scoped en #vi-widget / .vi-widget) */
.vi-widget{
	--vi-primary:#191814;
	--vi-primary-d:#000;
	--vi-ink:#1b1a18;
	--vi-muted:#8a8378;
	--vi-line:#e5e0d6;
	--vi-bg:#ffffff;
	--vi-soft:#f6f4ef;
	--vi-ok:#1f7a4d;
	--vi-err:#c0392b;
	--vi-radius:14px;
	max-width:600px;
	margin:0 auto;
	padding:34px 34px 26px;
	background:var(--vi-bg);
	border:1px solid var(--vi-line);
	border-radius:var(--vi-radius);
	box-shadow:0 30px 80px rgba(25,24,20,.10);
	color:var(--vi-ink);
	font-family:'Jost',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
	box-sizing:border-box;
	text-align:left;
}
.vi-widget *{ box-sizing:border-box; }

/* ---------- Progreso ---------- */
.vi-progress{ display:flex; align-items:center; gap:8px; list-style:none; margin:0 0 26px; padding:0; }
.vi-progress__step{ display:flex; align-items:center; gap:9px; flex:1; color:var(--vi-muted); font-size:.74rem; letter-spacing:.06em; text-transform:uppercase; position:relative; }
.vi-progress__step:not(:last-child)::after{ content:""; flex:1; height:1px; background:var(--vi-line); margin-left:4px; }
.vi-progress__dot{ width:26px; height:26px; flex:0 0 26px; border-radius:50%; border:1px solid var(--vi-line); display:grid; place-items:center; font-size:.78rem; background:var(--vi-bg); transition:.3s; }
.vi-progress__step.is-active .vi-progress__dot{ background:var(--vi-primary); border-color:var(--vi-primary); color:#fff; }
.vi-progress__step.is-active{ color:var(--vi-ink); }
.vi-progress__step.is-done .vi-progress__dot{ background:var(--vi-ink); border-color:var(--vi-ink); color:#fff; }
.vi-progress__lbl{ white-space:nowrap; }
@media (max-width:480px){ .vi-progress__lbl{ display:none; } }

/* ---------- Pasos ---------- */
.vi-step{ display:none; }
.vi-step.is-active{ display:block; animation:vi-fade .4s ease; }
@keyframes vi-fade{ from{ opacity:0; transform:translateY(8px); } to{ opacity:1; transform:none; } }

.vi-title{ margin:0 0 6px; font-size:1.5rem; line-height:1.15; font-weight:500; }
.vi-sub{ margin:0 0 20px; color:var(--vi-muted); font-size:.95rem; line-height:1.55; }
.vi-label{ display:block; font-weight:500; font-size:.76rem; letter-spacing:.06em; text-transform:uppercase; color:var(--vi-muted); margin-bottom:8px; }
.vi-label--sp{ margin-top:22px; }
.vi-hint{ margin:8px 0 18px; color:var(--vi-muted); font-size:.8rem; }

/* ---------- Inputs ---------- */
.vi-input{ width:100%; padding:13px 15px; border:1px solid var(--vi-line); border-radius:10px; font-size:1rem; background:var(--vi-bg); color:var(--vi-ink); font-family:inherit; transition:border-color .15s, box-shadow .15s; }
.vi-input:focus{ outline:none; border-color:var(--vi-primary); box-shadow:0 0 0 3px rgba(25,24,20,.08); }
.vi-input--rc{ font-size:1.15rem; letter-spacing:.06em; text-align:center; padding:16px; text-transform:uppercase; }
select.vi-input{ appearance:none; background-image:linear-gradient(45deg,transparent 50%,var(--vi-muted) 50%),linear-gradient(135deg,var(--vi-muted) 50%,transparent 50%); background-position:calc(100% - 20px) 55%,calc(100% - 15px) 55%; background-size:5px 5px,5px 5px; background-repeat:no-repeat; }

.vi-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:16px; }
.vi-field{ min-width:0; }

/* Stepper +/- */
.vi-stepper{ display:flex; align-items:stretch; border:1px solid var(--vi-line); border-radius:10px; overflow:hidden; }
.vi-stepper__btn{ width:46px; flex:0 0 46px; border:0; background:var(--vi-soft); color:var(--vi-ink); font-size:1.2rem; cursor:pointer; transition:background .15s; }
.vi-stepper__btn:hover{ background:var(--vi-line); }
.vi-stepper__val{ flex:1; width:100%; border:0; text-align:center; font-size:1rem; background:var(--vi-bg); color:var(--vi-ink); font-family:inherit; -moz-appearance:textfield; }
.vi-stepper__val::-webkit-outer-spin-button, .vi-stepper__val::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }
.vi-stepper__val:focus{ outline:none; }

/* Segmented (estado) */
.vi-seg{ display:grid; grid-template-columns:repeat(4,1fr); gap:8px; }
.vi-seg__opt input{ position:absolute; opacity:0; pointer-events:none; }
.vi-seg__opt span{ display:block; text-align:center; padding:11px 6px; border:1px solid var(--vi-line); border-radius:10px; font-size:.82rem; cursor:pointer; transition:.18s; color:var(--vi-ink); }
.vi-seg__opt input:checked + span{ background:var(--vi-primary); border-color:var(--vi-primary); color:#fff; }
.vi-seg__opt input:focus-visible + span{ box-shadow:0 0 0 3px rgba(25,24,20,.12); }

/* Chips (extras) */
.vi-chips{ display:flex; flex-wrap:wrap; gap:10px; }
.vi-chip input{ position:absolute; opacity:0; pointer-events:none; }
.vi-chip span{ display:inline-flex; align-items:center; gap:7px; padding:10px 16px; border:1px solid var(--vi-line); border-radius:999px; font-size:.86rem; cursor:pointer; transition:.18s; }
.vi-chip span::before{ content:""; width:7px; height:7px; border-radius:50%; background:var(--vi-line); transition:.18s; }
.vi-chip input:checked + span{ border-color:var(--vi-primary); background:var(--vi-soft); }
.vi-chip input:checked + span::before{ background:var(--vi-primary); transform:scale(1.25); }
.vi-chip input:focus-visible + span{ box-shadow:0 0 0 3px rgba(25,24,20,.1); }

/* Botones */
.vi-btn{ display:inline-flex; align-items:center; justify-content:center; gap:8px; width:100%; margin-top:22px; padding:15px 20px; border:0; border-radius:10px; background:var(--vi-primary); color:#fff; font-size:.92rem; font-weight:500; letter-spacing:.04em; cursor:pointer; font-family:inherit; transition:transform .15s, opacity .15s, background .15s; }
.vi-btn:hover{ background:var(--vi-primary-d); transform:translateY(-1px); }
.vi-btn:disabled, .vi-btn.is-busy{ opacity:.55; cursor:progress; transform:none; }
.vi-btn.is-busy span{ opacity:.6; }
.vi-btn--ghost{ background:transparent; color:var(--vi-ink); border:1px solid var(--vi-line); }
.vi-btn--ghost:hover{ background:var(--vi-soft); color:var(--vi-ink); }
.vi-actions{ display:flex; gap:12px; }
.vi-actions .vi-btn--ghost{ flex:0 0 38%; }

/* Resumen catastro */
.vi-kv{ list-style:none; margin:0 0 22px; padding:16px 18px; background:var(--vi-soft); border-radius:12px; }
.vi-kv li{ display:flex; justify-content:space-between; gap:12px; padding:5px 0; font-size:.9rem; }
.vi-kv li span{ color:var(--vi-muted); }
.vi-kv li strong{ text-align:right; font-weight:500; }

/* Resultado */
.vi-resultado{ text-align:center; padding:12px 0 8px; }
.vi-res-label{ font-size:.74rem; letter-spacing:.16em; text-transform:uppercase; color:var(--vi-muted); }
.vi-precio{ font-family:'Cormorant Garamond',Georgia,serif; font-size:clamp(3rem,10vw,4.4rem); font-weight:600; line-height:1; margin:8px 0 6px; letter-spacing:-.01em; }
.vi-horquilla{ color:var(--vi-muted); font-size:1rem; }
.vi-m2{ display:inline-block; margin-top:16px; padding:6px 16px; background:var(--vi-soft); border:1px solid var(--vi-line); border-radius:999px; font-size:.82rem; }
.vi-res-sum{ display:flex; flex-wrap:wrap; justify-content:center; gap:10px 18px; margin:20px 0 4px; color:var(--vi-muted); font-size:.84rem; }
.vi-res-sum b{ color:var(--vi-ink); font-weight:500; }
.vi-nota{ margin:16px auto 0; max-width:440px; font-size:.78rem; color:var(--vi-muted); line-height:1.5; }

/* Listado de inmuebles (edificio) */
.vi-lista{ display:flex; flex-direction:column; gap:10px; max-height:380px; overflow-y:auto; margin-bottom:6px; padding-right:2px; }
.vi-lista__item{ display:grid; grid-template-columns:1fr auto; align-items:center; gap:4px 14px; width:100%; text-align:left; padding:14px 16px; border:1px solid var(--vi-line); border-radius:12px; background:var(--vi-bg); cursor:pointer; transition:border-color .18s, background .18s; font-family:inherit; }
.vi-lista__item:hover{ border-color:var(--vi-primary); background:var(--vi-soft); }
.vi-lista__item.is-busy{ opacity:.55; cursor:progress; }
.vi-lista__label{ font-size:1rem; font-weight:500; color:var(--vi-ink); }
.vi-lista__meta{ grid-column:1; font-size:.82rem; color:var(--vi-muted); }
.vi-lista__rc{ grid-column:2; grid-row:1 / span 2; align-self:center; font-size:.7rem; letter-spacing:.03em; color:var(--vi-muted); font-variant-numeric:tabular-nums; white-space:nowrap; }
.vi-lista__item.is-viv .vi-lista__label::after{ content:"Vivienda"; margin-left:8px; font-size:.62rem; letter-spacing:.08em; text-transform:uppercase; color:#fff; background:var(--vi-primary); padding:2px 8px; border-radius:999px; vertical-align:middle; }

/* Lead */
.vi-lead{ margin-top:26px; padding-top:24px; border-top:1px solid var(--vi-line); }
.vi-lead__title{ margin:0 0 4px; font-size:1.15rem; font-weight:500; }
.vi-lead .vi-grid{ grid-template-columns:1fr; gap:12px; }
.vi-consent{ display:flex; align-items:flex-start; gap:9px; margin:14px 0 2px; font-size:.82rem; color:var(--vi-muted); line-height:1.5; }
.vi-consent a{ color:var(--vi-primary); text-decoration:underline; }

.vi-error{ margin-top:14px; color:var(--vi-err); font-size:.88rem; min-height:1em; }
.vi-ok{ margin-top:14px; color:var(--vi-ok); font-size:.95rem; font-weight:500; }
.vi-legal{ margin:20px 0 0; font-size:.72rem; color:var(--vi-muted); text-align:center; line-height:1.5; }

/* Responsive */
@media (max-width:520px){
	.vi-widget{ padding:24px 20px 20px; }
	.vi-grid{ grid-template-columns:1fr; }
	.vi-seg{ grid-template-columns:repeat(2,1fr); }
	.vi-precio{ font-size:3rem; }
	.vi-actions{ flex-direction:column-reverse; }
	.vi-actions .vi-btn--ghost{ flex:1; }
}
