*{box-sizing:border-box}
:root{--primary:#000000;--bg:#f1f2f3;--paper:#fff;--ink:#050505;--muted:#111;--line:#c7cbd0;--line-dark:#7d858b;--accent:#d9141c;--accent2:#ad0f15;--black:#050505;--wine:#7b1e2b;--success:#2f765d;--danger:#b42318}
html,body{margin:0;min-height:100%;font-family:var(--app-font,Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif);background:var(--bg);color:var(--ink);font-size:16px}
button,input,select,textarea{font:inherit;color:#050505}.app-shell{min-height:100vh;display:flex;flex-direction:column}
.company-bar{background:var(--primary);color:#fff;border-bottom:4px solid var(--accent)}
.company-inner{width:min(1000px,calc(100% - 28px));margin:auto;min-height:66px;display:flex;align-items:center;gap:12px}
.company-logo{width:44px;height:44px;object-fit:contain;border-radius:7px;background:#000}.company-copy strong,.company-copy span{display:block}.company-copy strong{font-size:1.08rem;color:#fff}.company-copy span{font-size:.9rem;color:#eee;margin-top:2px}
.company-mini{margin-left:auto;font-size:.86rem;color:#fff;border:1.5px solid #ffffff55;border-radius:999px;padding:7px 11px}
.main-wrap{width:min(1080px,calc(100% - 28px));margin:0 auto;flex:1;display:flex;align-items:center;justify-content:center;padding:34px 0 42px}
.content-zone{width:100%;display:flex;flex-direction:column;align-items:center}
.progress-row{width:min(900px,100%);margin:0 auto 16px;display:grid;grid-template-columns:145px 1fr;align-items:center;gap:18px;font-size:.91rem;color:#050505}.progress-labels{display:flex;justify-content:space-between}.progress-rail{height:6px;background:#d8d8d8;border-radius:999px;overflow:hidden}.progress-rail span{display:block;height:100%;background:var(--accent)}
.question-card{position:relative;width:min(900px,100%);margin:14px auto;background:#fff;border:2.4px solid #aeb3b7;border-top:5px solid var(--accent);border-radius:17px;box-shadow:0 14px 38px #00000012;padding:30px 122px 30px 34px;min-height:315px}
.assistant-side{position:absolute;right:24px;top:28px;width:82px;text-align:center}.assistant-side img,.assistant-fallback{width:78px;height:78px;border-radius:50%;object-fit:cover;border:3px solid #fff;box-shadow:0 0 0 3px var(--wine),0 7px 18px #0002;background:#eee}.assistant-fallback{display:none;place-items:center;background:var(--wine);color:#fff;font-weight:900;font-size:1.8rem}.assistant-side small{display:block;color:#050505;font-weight:850;font-size:.82rem;margin-top:7px}
.question-area{text-align:center;margin-bottom:30px}.question-area h1{font-size:clamp(1.35rem,2.35vw,1.95rem);line-height:1.12;margin:0;color:var(--wine);font-weight:850}.question-area p{margin:22px auto 0;color:#050505;font-size:1.08rem;line-height:1.62;max-width:700px}
.form-area{max-width:730px;margin:0 auto;width:100%}body.step-1 .form-area{max-width:500px}body.step-3 .form-area,body.step-5 .form-area{max-width:750px}body.step-4 .form-area,body.step-6 .form-area,body.step-9 .form-area{max-width:720px}body.step-7 .form-area,body.step-11 .form-area{max-width:520px}body.step-9 .form-area{max-width:640px}
body.step-9 .main-wrap{align-items:flex-start;padding-top:28px}body.step-9 .question-card{width:min(960px,100%);padding-right:118px}body.step-9 .progress-row{width:min(960px,100%)}body.step-9 .form-area{max-width:900px}
.field{display:flex;flex-direction:column;gap:8px}.field label{font-size:.9rem;color:#050505;font-weight:850;text-transform:uppercase}.input,.select,.textarea{width:100%;border:2.4px solid var(--line-dark);border-radius:10px;background:#fff;padding:11px 12px;outline:none;color:#050505;font-size:1.06rem}.input:focus,.select:focus,.textarea:focus{border-color:var(--wine);box-shadow:0 0 0 3px #7b1e2b18}.textarea{min-height:106px}
.address-grid{display:grid;grid-template-columns:210px minmax(300px,1fr);gap:17px;align-items:end}.address-small-grid{display:grid;grid-template-columns:170px 145px 195px;gap:15px;margin:15px auto 0;align-items:end}.address-small-grid .field{justify-content:end}
.location-link{margin:17px auto 0;max-width:650px;background:#f7f7f7;border:2.4px solid #c4c4c4;border-left:5px solid var(--accent);border-radius:10px;padding:13px 15px}.location-link .helper{font-size:.92rem;color:#050505;margin:5px 0 10px;line-height:1.5}
.choice-grid{display:grid;grid-template-columns:repeat(2,minmax(285px,345px));gap:25px;justify-content:center}.choice{border:2.4px solid #969da2;border-radius:12px;padding:14px 15px;cursor:pointer;background:#fff;display:flex;gap:10px;align-items:flex-start}.choice.selected{border-color:var(--accent);background:#fff6f6}.choice input{accent-color:var(--accent)}.choice-title{font-weight:850;font-size:1.05rem}.choice small{display:block;color:#050505;font-size:.92rem;line-height:1.45;margin-top:5px}.parking-choice{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center}.uphill{display:flex;gap:6px;align-items:center;font-weight:800;font-size:.96rem}
.btn{border:0;border-radius:9px;padding:11px 16px;cursor:pointer;font-weight:850;font-size:.98rem;display:inline-flex;align-items:center;justify-content:center;gap:7px}.btn-primary{background:var(--accent);color:#fff;min-width:150px}.btn-ghost{background:#e5e7e8;color:#050505}.btn-accent{background:#111;color:#fff}.nav-row{display:flex;justify-content:center;gap:20px;margin-top:28px;padding-top:18px;border-top:2px solid #dedede}.hidden{display:none!important}
.note{background:#f6f6f6;border:2px solid #d0d0d0;border-left:5px solid var(--accent);border-radius:9px;padding:11px 13px;color:#050505;font-size:.96rem;line-height:1.48;margin:13px auto;max-width:640px}.error{color:var(--danger);font-size:.95rem;margin-top:10px;text-align:center;font-weight:700}
.inventory-hint{font-size:.93rem;color:#050505;margin:0 0 13px;text-align:center}.inventory-category{border:2.4px solid #92999e;border-radius:11px;margin-bottom:13px;overflow:hidden;background:#fff}.inventory-category h3{margin:0}.inventory-toggle{width:100%;border:0;background:#e6e7e9;color:#050505;border-left:6px solid var(--accent);padding:11px 14px;font-size:1rem;font-weight:850;text-align:left;cursor:pointer;display:flex;justify-content:space-between;align-items:center}.inventory-body{display:none}.inventory-category.open .inventory-body{display:block}.inventory-category.open .chev{transform:rotate(180deg)}.inventory-row{display:grid;grid-template-columns:minmax(180px,1fr) 78px minmax(260px,310px);gap:11px;align-items:center;padding:9px 12px;border-top:1.5px solid #bfc4c7;font-size:.94rem}.inventory-item-name{font-weight:780}.qty{max-width:74px;padding:8px;text-align:center}.heavy{display:flex;align-items:center;justify-content:flex-end;gap:10px;font-size:.88rem;text-align:right}.heavy-question{font-weight:760}.heavy-check{display:flex;align-items:center;gap:5px;font-weight:900}.heavy input{width:19px;height:19px;accent-color:var(--accent)}
.success{text-align:center}.success-icon{width:54px;height:54px;border-radius:13px;background:#111;color:#fff;border-bottom:5px solid var(--accent);display:grid;place-items:center;font-size:25px;margin:0 auto 15px}.success h2{font-size:1.65rem;color:var(--wine)}.success p{font-size:1.02rem;color:#050505}.site-footer{background:var(--primary);color:#fff;border-top:3px solid #d9141c;text-align:center;font-size:.82rem;padding:13px}
@media(max-width:800px){html,body{font-size:15px}.main-wrap{width:min(100% - 14px,1080px);padding:20px 0 26px;align-items:flex-start}.question-card{padding:105px 16px 22px}.assistant-side{top:18px;right:50%;transform:translateX(50%);width:74px}.assistant-side img,.assistant-fallback{width:68px;height:68px}.assistant-side small{display:none}.progress-row{grid-template-columns:1fr;gap:6px}.address-grid,.address-small-grid,.choice-grid{grid-template-columns:1fr}.inventory-row{grid-template-columns:minmax(110px,1fr) 62px minmax(150px,1.2fr);padding:8px}.company-mini{display:none}}
.final-wa-btn{margin-top:16px;max-width:520px;text-align:center;line-height:1.35}

.final-wa-text{margin:18px 0 9px!important;font-weight:800;color:#050505}
.final-wa-button{background:#25D366;color:#fff!important;border:0;gap:9px;min-width:190px}
.final-wa-button:hover{background:#1ebe5d}
.final-wa-button svg{width:22px;height:22px;flex:0 0 22px}

.address-small-grid.no-cp{grid-template-columns:minmax(160px,190px) minmax(210px,260px);justify-content:center}
.contact-fields{display:grid;grid-template-columns:1fr;gap:16px;max-width:500px;margin:0 auto}
@media(max-width:720px){.address-small-grid.no-cp{grid-template-columns:1fr}}

.maintenance-shell{min-height:100vh;display:flex;flex-direction:column;background:var(--bg,#f1f2f3)}
.maintenance-main{flex:1;display:grid;place-items:center;padding:36px 18px}
.maintenance-card{width:min(620px,100%);background:#fff;border:2.5px solid #aeb3b7;border-top:6px solid var(--accent,#d9141c);border-radius:18px;padding:42px 28px;text-align:center;box-shadow:0 18px 48px #00000016}
.maintenance-logo{display:block;width:min(190px,48vw);height:120px;object-fit:contain;margin:0 auto 22px}
.maintenance-kicker{font-size:.95rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em;color:#050505;margin-bottom:8px}
.maintenance-card h1{margin:0;color:#050505;font-size:clamp(1.65rem,4vw,2.35rem);line-height:1.18}
.maintenance-card p{margin:18px 0 0;color:#111;font-size:1.05rem}

/* v22: nivel 1 nombre, nivel 2 WhatsApp */
body.step-1 .form-area,body.step-2 .form-area{max-width:500px}
body.step-3 .form-area,body.step-11 .form-area{max-width:520px}
body.step-4 .form-area,body.step-6 .form-area{max-width:750px}
body.step-5 .form-area,body.step-7 .form-area,body.step-8 .form-area{max-width:720px}
body.step-9 .form-area{max-width:640px}
body.step-10 .main-wrap{align-items:flex-start;padding-top:28px}
body.step-10 .question-card{width:min(960px,100%);padding-right:118px}
body.step-10 .progress-row{width:min(960px,100%)}
body.step-10 .form-area{max-width:900px}

.question-card{contain:layout paint style}

/* v30 · campos dinámicos */
.dynamic-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:18px;row-gap:20px;align-items:start}
.dynamic-field{grid-column:1/-1;margin:0!important;padding-bottom:3px}
.dynamic-field>label{display:block;margin-bottom:9px;font-size:1.04rem;font-weight:800;line-height:1.35;text-transform:none!important}
.dynamic-field .input,.dynamic-field .select,.dynamic-field .textarea{margin-top:0}
.dynamic-field.field-number{grid-column:auto}.dynamic-field.field-number .compact-number{max-width:210px}
.dynamic-field.field-phone .compact-phone{max-width:360px}
.dynamic-select{border-left:5px solid var(--accent)!important;background:#fbfbfb;padding-right:38px!important}
.choice-buttons{display:flex!important;flex-wrap:wrap;gap:10px!important}.choice-button{display:inline-flex!important;width:auto!important;min-width:130px;align-items:center;justify-content:center;padding:0!important;border:0!important;background:transparent!important}.choice-button input{position:absolute;opacity:0;pointer-events:none}.choice-button span{display:block;width:100%;padding:12px 18px;border:2px solid #b9bec3;border-radius:10px;background:#fff;font-weight:800;text-align:center;transition:.16s}.choice-button:hover span{border-color:#6e767d}.choice-button.selected span,.choice-button:has(input:checked) span{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,#fff);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 18%,transparent)}
.choice-check{padding:12px 14px!important;gap:9px!important}.choice-check input{width:18px;height:18px;flex:0 0 auto}
.dynamic-success .final-message-preview{white-space:pre-wrap;overflow-wrap:anywhere;text-align:left;font-family:var(--app-font,Arial,sans-serif);font-size:1rem;line-height:1.55;border:2px solid #d4d7da;border-radius:12px;padding:14px;background:#fff;margin:14px 0}
@media(max-width:620px){.dynamic-fields{grid-template-columns:1fr}.dynamic-field.field-number{grid-column:auto}.dynamic-field.field-phone .compact-phone,.dynamic-field.field-number .compact-number{max-width:100%}.choice-button{width:100%!important}}

/* v31 · tipografía moderna y consistente en todos los controles */
input,textarea,select,button{font-family:inherit!important}

/* v33 · disponibilidad de stock */
.choice-unavailable{opacity:.52;cursor:not-allowed!important;filter:grayscale(.18)}
.choice-unavailable input{pointer-events:none}
.stock-note{display:block;margin-top:7px;font-size:.86rem;color:#5e6469;font-weight:750}
.stock-empty{color:#b4232c!important;font-weight:900!important}
