/* Formulario de cotización */
.quote-form { position:relative; align-content:start; padding:30px; border:1px solid color-mix(in srgb,var(--line) 88%,var(--red)); border-radius:20px; background:linear-gradient(145deg,color-mix(in srgb,var(--card) 97%,#fff),var(--card)); box-shadow:0 18px 36px rgba(16,18,22,.08); }
.quote-status { display:none; position:absolute; right:0; bottom:calc(100% + 10px); left:0; z-index:2; margin:0; padding:10px 14px; border:1px solid transparent; border-radius:10px; background:var(--card); font:13px/1.35 'DM Sans',sans-serif; box-shadow:0 8px 18px rgba(16,18,22,.1); }
.quote-status strong,.quote-status span { display:block; }
.quote-status strong { font:700 14px 'Space Grotesk',sans-serif; }
.quote-status span { margin-top:1px; }
.quote-status.is-pending,.quote-status.is-success,.quote-status.is-error { display:block; }
.quote-status.is-pending { border-color:color-mix(in srgb,var(--line) 82%,var(--red)); color:var(--ink); }
.quote-status.is-success { border-color:#9bd9b3; background:#effaf3; color:#135c31; }
.quote-status.is-error { border-color:#f2a7ad; background:#fff1f2; color:#9d1825; }
.dark .quote-status.is-success { background:#143b25; border-color:#3b8b58; color:#dbf8e6; }
.dark .quote-status.is-error { background:#491c22; border-color:#a8444d; color:#ffe1e4; }
.quote-form .quote-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px; }
.quote-form label { display:grid; gap:8px; color:var(--muted); font:700 11px/1 'Space Grotesk',sans-serif; letter-spacing:.07em; text-transform:uppercase; }
.quote-form input,.quote-form textarea { width:100%; min-width:0; margin:0; padding:13px 14px; border:1px solid var(--line); border-radius:10px; background:color-mix(in srgb,var(--bg) 38%,var(--card)); color:var(--ink); font:15px 'DM Sans',sans-serif; outline:0; transition:border-color .2s ease,box-shadow .2s ease,background .2s ease; }
.quote-form input::placeholder,.quote-form textarea::placeholder { color:color-mix(in srgb,var(--muted) 72%,transparent); }
.quote-form textarea { min-height:118px; resize:vertical; line-height:1.5; }
.quote-form input:hover,.quote-form textarea:hover { border-color:color-mix(in srgb,var(--red) 45%,var(--line)); }
.quote-form input:focus,.quote-form textarea:focus { border-color:var(--red); background:var(--card); box-shadow:0 0 0 3px color-mix(in srgb,var(--red) 13%,transparent); }
.quote-form input:invalid:not(:placeholder-shown),.quote-form textarea:invalid:not(:placeholder-shown) { border-color:#d1323d; }
.quote-form .button { width:100%; min-height:52px; margin-top:5px; border-radius:11px; box-shadow:0 10px 20px rgba(225,29,46,.2); }
.quote-form .button:disabled { cursor:wait; opacity:.7; }
.quote-form .quote-feedback { min-height:18px; margin:0; color:var(--muted); font-size:12px; line-height:1.4; }
.quote-form .hp-field { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
@media (max-width:520px) { .quote-form { padding:21px; border-radius:15px; } .quote-status { bottom:calc(100% + 8px); padding:9px 12px; font-size:12px; } .quote-status strong { font-size:13px; } .quote-form .quote-row { grid-template-columns:1fr; gap:17px; } }
