/* ==========================================================================
   Página «Solicitar cotización» (plugin 1.5.37)
   ========================================================================== */

.bm-quote {
    max-width: 920px;
    margin: 32px auto;
    padding: 30px;
    border: 1px solid var(--bm-line, rgba(16, 27, 27, .14));
    border-radius: var(--bm-radius, 16px);
    background: var(--bm-surface, #fff);
    box-shadow: var(--bm-shadow-soft, 0 2px 8px rgba(8, 11, 16, .05));
    color: var(--bm-ink, #080b10);
    font-family: var(--bm-font-body, inherit);
}

.bm-quote__head { margin-bottom: 18px; }
.bm-quote__eyebrow {
    margin: 0 0 6px;
    font-family: var(--bm-font-mono, monospace);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--bm-muted, #73817a);
}
.bm-quote h2 {
    margin: 0 0 8px;
    font-family: var(--bm-font-head, inherit);
    font-size: clamp(24px, 3.2vw, 32px);
    line-height: 1.15;
    letter-spacing: -.01em;
}
.bm-quote__lead {
    margin: 0;
    max-width: 70ch;
    color: var(--bm-muted, #73817a);
    font-size: 15px;
    line-height: 1.55;
}

/* Contexto de solicitud directa */
.bm-quote__context {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 10px;
    margin: 0 0 22px;
    padding: 12px 14px;
    border: 1px solid rgba(255, 196, 0, .45);
    border-radius: var(--bm-radius-sm, 10px);
    background: rgba(255, 196, 0, .12);
    font-size: 13.5px;
}
.bm-quote__context-label {
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: #6b4a00;
    background: rgba(255, 196, 0, .35);
    border-radius: var(--bm-radius-pill, 999px);
    padding: 3px 8px;
}
.bm-quote__context strong { font-size: 14px; }
.bm-quote__context-cat {
    font-size: 12px;
    color: var(--bm-ink-soft, #1f2a25);
    background: var(--bm-surface, #fff);
    border: 1px solid var(--bm-line, rgba(16, 27, 27, .14));
    border-radius: var(--bm-radius-pill, 999px);
    padding: 3px 9px;
}

/* Formulario */
.bm-quote__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}
.bm-quote__field { display: flex; flex-direction: column; gap: 6px; }
.bm-quote__field--full { grid-column: 1 / -1; }
.bm-quote__field > span {
    font-size: 13px;
    font-weight: 700;
    color: var(--bm-ink, #080b10);
}
.bm-quote__field input,
.bm-quote__field select,
.bm-quote__field textarea {
    box-sizing: border-box;
    width: 100%;
    min-height: 44px;
    padding: 10px 12px;
    border: 1px solid var(--bm-line-strong, rgba(16, 27, 27, .28));
    border-radius: var(--bm-radius-sm, 10px);
    background: var(--bm-surface, #fff);
    color: var(--bm-ink, #080b10);
    font: inherit;
    font-size: 15px;
}
.bm-quote__field textarea { min-height: 120px; resize: vertical; }
.bm-quote__field input:focus,
.bm-quote__field select:focus,
.bm-quote__field textarea:focus {
    outline: none;
    border-color: var(--bm-ink, #080b10);
    box-shadow: 0 0 0 3px rgba(255, 196, 0, .35);
}
.bm-quote__hint { font-size: 12px; color: var(--bm-muted, #73817a); line-height: 1.4; }

/* Selector de proveedores */
.bm-quote__providers {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 8px;
    max-height: 280px;
    overflow: auto;
    padding: 12px;
    border: 1px solid var(--bm-line, rgba(16, 27, 27, .14));
    border-radius: var(--bm-radius-sm, 10px);
    background: var(--bm-bg, #f7f8f5);
}
.bm-quote__provider {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 10px;
    border: 1px solid var(--bm-line, rgba(16, 27, 27, .14));
    border-radius: var(--bm-radius-sm, 10px);
    background: var(--bm-surface, #fff);
    font-size: 13.5px;
    font-weight: 500;
    cursor: pointer;
}
.bm-quote__provider:hover { border-color: var(--bm-line-strong, rgba(16, 27, 27, .28)); }
.bm-quote__provider input {
    width: 16px;
    height: 16px;
    min-height: 0;
    margin: 0;
    accent-color: var(--bm-ink, #080b10);
}
.bm-quote__provider-name { font-weight: 600; line-height: 1.3; }
.bm-quote__provider-badge {
    font-size: 9.5px;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--bm-ok, #0f7a4d);
    background: rgba(15, 122, 77, .10);
    border: 1px solid rgba(15, 122, 77, .25);
    border-radius: 999px;
    padding: 2px 6px;
    white-space: nowrap;
}
.bm-quote__provider-meta { margin-left: auto; font-size: 11.5px; color: var(--bm-muted, #73817a); }
.bm-quote__providers-empty { grid-column: 1 / -1; margin: 0; font-size: 13px; color: var(--bm-muted, #73817a); }


.bm-quote__status { min-height: 1.4em; margin: 14px 0 0; font-size: 14px; }
.bm-quote__status[data-error="true"] { color: var(--bm-danger, #b42318); }
.bm-quote__status[data-success="true"] { color: var(--bm-ok, #0f7a4d); }

.bm-quote__submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin-top: 10px;
    padding: 12px 22px;
    border: 1px solid var(--bm-ink, #080b10);
    border-radius: var(--bm-radius-pill, 999px);
    background: var(--bm-ink, #080b10);
    color: var(--bm-surface, #fff);
    font: inherit;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.bm-quote__submit:hover {
    background: var(--bm-accent, #ffc400);
    border-color: var(--bm-accent, #ffc400);
    color: var(--bm-accent-ink, #080b10);
}
.bm-quote__submit:disabled { opacity: .6; cursor: not-allowed; }

/* Confirmación */
.bm-quote__success {
    padding: 22px;
    border: 1px solid rgba(15, 122, 77, .30);
    border-radius: var(--bm-radius, 16px);
    background: rgba(15, 122, 77, .07);
}
.bm-quote__success-title {
    margin: 0 0 8px;
    font-family: var(--bm-font-head, inherit);
    font-size: 22px;
    font-weight: 700;
    color: var(--bm-ok, #0f7a4d);
}
.bm-quote__success-note { margin: 10px 0 16px; font-size: 14px; color: var(--bm-ink-soft, #1f2a25); }
.bm-quote__success-link {
    display: inline-block;
    padding: 9px 16px;
    border: 1px solid var(--bm-ink, #080b10);
    border-radius: var(--bm-radius-pill, 999px);
    background: var(--bm-surface, #fff);
    color: var(--bm-ink, #080b10);
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
}

/* Invitado: iniciar sesión */
.bm-quote--guest {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(300px, .85fr);
    gap: 30px;
    align-items: start;
}
.bm-quote__guest-intro h2 { margin-top: 0; }
.bm-quote__steps {
    margin: 16px 0 20px;
    padding-left: 20px;
    color: var(--bm-ink-soft, #1f2a25);
    font-size: 14.5px;
    line-height: 1.7;
}
.bm-quote__guest-auth {
    padding: 20px;
    border: 1px solid var(--bm-line, rgba(16, 27, 27, .14));
    border-radius: var(--bm-radius, 16px);
    background: var(--bm-bg, #f7f8f5);
}
.bm-quote__guest-auth h3 { margin: 0 0 12px; font-size: 18px; }
.bm-quote__guest-auth form p { margin: 0 0 10px; }
.bm-quote__guest-auth label {
    display: block;
    margin-bottom: 4px;
    font-size: 13px;
    font-weight: 700;
}
.bm-quote__guest-auth input[type="text"],
.bm-quote__guest-auth input[type="password"],
.bm-quote__guest-auth input[type="email"] {
    box-sizing: border-box;
    width: 100%;
    min-height: 42px;
    padding: 9px 11px;
    border: 1px solid var(--bm-line-strong, rgba(16, 27, 27, .28));
    border-radius: var(--bm-radius-sm, 10px);
    background: var(--bm-surface, #fff);
    font: inherit;
    font-size: 15px;
}
.bm-quote__guest-auth input[type="submit"],
.bm-quote__guest-auth button[type="submit"] {
    width: 100%;
    min-height: 44px;
    margin-top: 4px;
    border: 1px solid var(--bm-ink, #080b10);
    border-radius: var(--bm-radius-pill, 999px);
    background: var(--bm-ink, #080b10);
    color: var(--bm-surface, #fff);
    font: inherit;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
}
.bm-quote__guest-auth input[type="submit"]:hover,
.bm-quote__guest-auth button[type="submit"]:hover {
    background: var(--bm-accent, #ffc400);
    border-color: var(--bm-accent, #ffc400);
    color: var(--bm-accent-ink, #080b10);
}
.bm-quote__register { margin: 14px 0 4px; font-size: 14px; }
.bm-quote__register a { color: var(--bm-ink, #080b10); font-weight: 700; }
.bm-quote__register-note { margin: 0; font-size: 12.5px; color: var(--bm-muted, #73817a); }

@media (max-width: 760px) {
    .bm-quote { padding: 20px; margin: 20px auto; }
    .bm-quote__grid { grid-template-columns: 1fr; }
    .bm-quote--guest { grid-template-columns: 1fr; gap: 20px; }
}
