.cotizar-grid {
    display: grid;
    grid-template-columns: 1fr;
    row-gap: 1.5rem;
    column-gap: 1.25rem;
}
@media (min-width: 640px) {
    .cotizar-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        row-gap: 1.75rem;
    }
    .cotizar-full { grid-column: 1 / -1; }
}
.cotizar-input,
.cotizar-select,
.cotizar-textarea {
    width: 100%;
    padding: 0.875rem 1rem;
    border: 1px solid #e5e7eb;
    border-radius: 0.75rem;
    background-color: #ffffff;
    font-size: 1rem;
    color: #111827;
    transition: border-color .15s, box-shadow .15s;
    font-family: inherit;
    line-height: 1.5;
}
.cotizar-input:focus,
.cotizar-select:focus,
.cotizar-textarea:focus {
    outline: none;
    border-color: #0499F2;
    box-shadow: 0 0 0 4px rgba(4,153,242,0.15);
}
.cotizar-label {
    display: block;
    font-weight: 700;
    color: #0f172a;
    margin-bottom: 0.625rem;
    font-size: 0.875rem;
    letter-spacing: 0.01em;
}
.cotizar-field-error {
    display: none;
    color: #dc2626;
    font-size: 0.8125rem;
    margin-top: 0.5rem;
    font-weight: 500;
}
.cotizar-field.has-error .cotizar-input,
.cotizar-field.has-error .cotizar-select {
    border-color: #dc2626;
    box-shadow: 0 0 0 3px rgba(220,38,38,0.12);
}
.cotizar-field.has-error .cotizar-field-error { display: block; }
.cotizar-honeypot { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.cotizar-feedback { display: none; padding: 1rem 1.25rem; border-radius: 0.75rem; font-weight: 600; margin-bottom: 1.5rem; }
.cotizar-feedback.is-success { display: block; background: #ecfdf5; color: #065f46; border: 1px solid #a7f3d0; }
.cotizar-feedback.is-error { display: block; background: #fef2f2; color: #991b1b; border: 1px solid #fecaca; }
.cotizar-submit { margin-top: 2.25rem; }
.cotizar-submit[disabled] { opacity: 0.6; cursor: not-allowed; }
.cotizar-spinner { display: inline-block; width: 1rem; height: 1rem; border: 2px solid #ffffff; border-top-color: transparent; border-radius: 50%; animation: cotizar-spin 0.7s linear infinite; margin-right: 0.5rem; vertical-align: -2px; }
@keyframes cotizar-spin { to { transform: rotate(360deg); } }
