:root {
    --bqi-azul: #002e52;
    --bqi-azul-claro: #0b527d;
    --bqi-dorado: #e3c177;
    --bqi-fondo: #f5f7fa;
    --bqi-texto: #1f2937;
    --bqi-borde: #d6dce4;
    --bqi-error: #9f2525;
    --bqi-exito: #176b45;
}

.bqi-contenedor,
.bqi-contenedor * {
    box-sizing: border-box;
}

.bqi-contenedor [hidden] {
    display: none !important;
}

.bqi-contenedor {
    max-width: 920px;
    margin: 32px auto;
    color: var(--bqi-texto);
    font-family: inherit;
    background: #fff;
    border: 1px solid var(--bqi-borde);
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 18px 50px rgba(0, 46, 82, .10);
}

.bqi-encabezado {
    padding: 38px clamp(22px, 5vw, 56px);
    color: #fff;
    background: linear-gradient(135deg, var(--bqi-azul), var(--bqi-azul-claro));
    border-bottom: 5px solid var(--bqi-dorado);
}

.bqi-distintivo {
    display: inline-block;
    margin-bottom: 12px;
    padding: 5px 12px;
    color: var(--bqi-azul);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
    background: var(--bqi-dorado);
    border-radius: 999px;
}

.bqi-encabezado h2 {
    margin: 0;
    color: #fff;
    font-size: clamp(16.8px, 2.56vw, 25.6px);
    line-height: 1.15;
    white-space: nowrap;
}

.bqi-introduccion,
.bqi-formulario,
.bqi-mensaje {
    margin-right: clamp(20px, 5vw, 54px);
    margin-left: clamp(20px, 5vw, 54px);
}

.bqi-introduccion {
    margin-top: 30px;
    padding: 18px 20px;
    background: var(--bqi-fondo);
    border-left: 4px solid var(--bqi-dorado);
    border-radius: 8px;
}

.bqi-contenedor .bqi-introduccion p {
    margin: 0 0 7px;
    font-size: 82.8% !important;
    line-height: 1.6;
    text-align: justify;
    text-justify: inter-word;
    hyphens: auto;
}

.bqi-contenedor .bqi-introduccion p:last-child {
    margin-bottom: 0;
}

.bqi-nota,
.bqi-ayuda,
.bqi-seguridad,
.bqi-campo small {
    color: #596579;
    font-size: 13px;
}

.bqi-mensaje {
    margin-top: 28px;
    padding: 18px 20px;
    border-radius: 9px;
}

.bqi-mensaje p {
    margin: 6px 0 0;
}

.bqi-exito {
    color: #0f5132;
    background: #eaf7ef;
    border: 1px solid #a9dcc0;
}

.bqi-error {
    color: #842029;
    background: #fff0f0;
    border: 1px solid #e6b7b7;
}

.bqi-folio {
    display: inline-block;
    padding: 3px 8px;
    font-weight: 800;
    letter-spacing: .03em;
    background: #fff;
    border-radius: 5px;
}

.bqi-formulario {
    margin-top: 28px;
    margin-bottom: 42px;
}

.bqi-formulario fieldset {
    min-width: 0;
    margin: 0 0 28px;
    padding: 24px;
    background: #fff;
    border: 1px solid var(--bqi-borde);
    border-radius: 12px;
}

.bqi-formulario legend {
    padding: 0 8px;
    color: var(--bqi-azul);
    font-size: 19px;
    font-weight: 800;
}

.bqi-opciones {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.bqi-opcion {
    position: relative;
    cursor: pointer;
}

.bqi-opcion input {
    position: absolute;
    opacity: 0;
}

.bqi-opcion span {
    display: block;
    padding: 12px 10px;
    text-align: center;
    font-weight: 700;
    letter-spacing: .03em;
    text-transform: uppercase;
    background: var(--bqi-fondo);
    border: 2px solid transparent;
    border-radius: 8px;
    transition: .18s ease;
}

.bqi-opcion input:checked + span {
    color: var(--bqi-azul);
    background: #fffaf0;
    border-color: var(--bqi-dorado);
}

.bqi-opcion input:focus-visible + span {
    outline: 3px solid rgba(0, 46, 82, .25);
    outline-offset: 2px;
}

.bqi-anonimo,
.bqi-consentimiento label {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-weight: 700;
}

.bqi-anonimo input,
.bqi-consentimiento input {
    width: 18px;
    height: 18px;
    margin-top: 3px;
    accent-color: var(--bqi-azul);
}

.bqi-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
}

.bqi-span-2 {
    grid-column: 1 / -1;
}

.bqi-panel-tipo {
    margin-bottom: 28px;
}

.bqi-panel-tipo > fieldset {
    margin-bottom: 0;
}

.bqi-panel-encabezado {
    margin-bottom: 16px;
    padding: 18px 22px;
    color: #fff;
    background: var(--bqi-azul);
    border-left: 5px solid var(--bqi-dorado);
    border-radius: 10px;
}

.bqi-panel-encabezado h3 {
    margin: 0 0 4px;
    color: #fff;
    font-size: 24px;
}

.bqi-panel-encabezado p {
    margin: 0;
    color: rgba(255, 255, 255, .9);
    font-size: 80%;
    font-style: italic;
    line-height: 1.45;
}

.bqi-formulario fieldset.bqi-grupo-interno {
    margin: 0;
    padding: 16px;
    background: var(--bqi-fondo);
    border-radius: 8px;
}

.bqi-formulario fieldset.bqi-grupo-interno legend {
    font-size: 15px;
}

.bqi-checkboxes,
.bqi-radios-linea {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 20px;
}

.bqi-checkboxes label,
.bqi-radios-linea label {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin: 0;
    font-weight: 600;
}

.bqi-checkboxes input,
.bqi-radios-linea input {
    width: 18px;
    height: 18px;
    margin: 0;
    accent-color: var(--bqi-azul);
}

.bqi-beneficiario-otro {
    margin-top: 14px;
}

.bqi-contacto {
    margin-top: 18px;
}

.bqi-campo-amplio {
    margin-top: 20px;
}

.bqi-campo label {
    display: block;
    margin-bottom: 7px;
    color: #26364a;
    font-weight: 700;
}

.bqi-campo input,
.bqi-campo select,
.bqi-campo textarea {
    display: block;
    width: 100%;
    max-width: none;
    min-height: 46px;
    margin: 0;
    padding: 10px 12px;
    color: var(--bqi-texto);
    font: inherit;
    line-height: 1.4;
    background: #fff;
    border: 1px solid #aeb8c5;
    border-radius: 7px;
    box-shadow: none;
}

.bqi-campo input[type="file"] {
    min-height: 0;
    padding: 8px;
    background: var(--bqi-fondo);
}

.bqi-campo textarea {
    min-height: 110px;
    resize: vertical;
}

.bqi-campo input:focus,
.bqi-campo select:focus,
.bqi-campo textarea:focus {
    outline: 3px solid rgba(0, 46, 82, .16);
    border-color: var(--bqi-azul-claro);
}

.bqi-contacto.bqi-desactivado {
    opacity: .48;
}

.bqi-consentimiento {
    margin: 0 0 22px;
    padding: 18px;
    background: #fffaf0;
    border: 1px solid #ead6a4;
    border-radius: 9px;
}

.bqi-aviso-enlace,
.bqi-consentimiento .bqi-aviso-enlace {
    color: #002e52 !important;
    font-weight: 700;
    text-decoration: underline;
    text-decoration-thickness: 1.5px;
    text-underline-offset: 2px;
}

.bqi-aviso-enlace:hover,
.bqi-aviso-enlace:focus-visible {
    color: #0b527d !important;
    text-decoration-thickness: 2px;
}

.bqi-aviso-enlace:focus-visible {
    outline: 3px solid rgba(0, 46, 82, .2);
    outline-offset: 3px;
    border-radius: 3px;
}

.bqi-aviso-icono {
    display: inline-block;
    margin-right: 4px;
    font-size: .9em;
    line-height: 1;
}

.bqi-captcha {
    max-width: 430px;
    margin-bottom: 22px;
    padding: 18px;
    background: var(--bqi-fondo);
    border: 1px solid var(--bqi-borde);
    border-radius: 9px;
}

.bqi-acciones {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.bqi-boton {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 12px 28px;
    color: #fff;
    font: inherit;
    font-weight: 800;
    background: var(--bqi-azul);
    border: 0;
    border-radius: 8px;
    cursor: pointer;
    transition: .18s ease;
}

.bqi-boton:hover,
.bqi-boton:focus-visible {
    color: var(--bqi-azul);
    background: var(--bqi-dorado);
}

.bqi-boton-secundario {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 12px 22px;
    color: var(--bqi-azul);
    font: inherit;
    font-weight: 800;
    background: #fff;
    border: 2px solid var(--bqi-azul);
    border-radius: 8px;
    cursor: pointer;
}

.bqi-boton-secundario:hover,
.bqi-boton-secundario:focus-visible {
    background: var(--bqi-fondo);
    outline: 3px solid rgba(0, 46, 82, .15);
    outline-offset: 2px;
}

.bqi-boton:focus-visible {
    outline: 3px solid rgba(0, 46, 82, .25);
    outline-offset: 2px;
}

.bqi-seguridad {
    margin: 12px 0 0;
}

.bqi-trampa {
    position: absolute !important;
    left: -10000px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
}

@media (max-width: 760px) {
    .bqi-opciones,
    .bqi-grid {
        grid-template-columns: 1fr;
    }

    .bqi-formulario fieldset {
        padding: 18px;
    }

    .bqi-encabezado h2 {
        white-space: normal;
    }

    .bqi-checkboxes,
    .bqi-radios-linea {
        flex-direction: column;
        gap: 10px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .bqi-opcion span,
    .bqi-boton,
    .bqi-boton-secundario {
        transition: none;
    }
}
