.cookies_aviso,
.cookies_modal {

    box-sizing:                             border-box;
    font-family:                            var( --fuente_secundaria );
    position:                               fixed;
    z-index:                                var( --nivel_emergencia );

}

.cookies_aviso *,
.cookies_modal * {

    box-sizing:                             border-box;

}

.cookies_aviso[hidden],
.cookies_modal[hidden] {

    display:                                none !important;

}

/* =========================================================
   AVISO INFERIOR
========================================================= */
.cookies_aviso {

    bottom:                                 0;
    left:                                   0;
    padding:                                14px;
    right:                                  0;

}

.cookies_aviso_contenido {

    align-items:                            flex-start;
    background:                             var( --color_blanco );
    border:                                 1px solid rgba( 0 , 0 , 0 , .10 );
    border-radius:                          17px;
    box-shadow:                             0 18px 55px rgba( 0 , 0 , 0 , .20 );
    display:                                grid;
    gap:                                    16px;
    grid-template-columns:                  1fr;
    margin:                                 auto;
    max-width:                              1380px;
    padding:                                20px;

}

.cookies_aviso_icono {

    align-items:                            center;
    background:                             color-mix( in srgb , var( --color_principal ) 11% , transparent );
    border-radius:                          13px;
    color:                                  var( --color_principal );
    display:                                flex;
    height:                                 50px;
    justify-content:                        center;
    width:                                  50px;

}

.cookies_aviso_icono i {

    font-size:                              22px;

}

.cookies_aviso_texto {

    min-width:                              0;

}

.cookies_aviso_texto h2 {

    color:                                  var( --color_texto );
    font-family:                            var( --fuente_principal );
    font-size:                              1.08rem;
    line-height:                            1.35;
    margin:                                 0 0 7px;

}

.cookies_aviso_texto p {

    color:                                  var( --color_texto_secundario );
    font-size:                              .86rem;
    line-height:                            1.65;
    margin:                                 0;

}

.cookies_aviso_texto a {

    color:                                  var( --color_principal );
    font-weight:                            var( --peso_seminegrita );
    text-decoration:                        none;

}

.cookies_aviso_texto a:hover {

    color:                                  var( --color_principal_oscuro );
    text-decoration:                        underline;

}

.cookies_aviso_acciones {

    display:                                grid;
    gap:                                    9px;
    grid-template-columns:                  1fr;
    width:                                  100%;

}

/* =========================================================
   BOTONES
========================================================= */
.cookies_boton {

    align-items:                            center;
    border-radius:                          10px;
    cursor:                                 pointer;
    display:                                inline-flex;
    font-family:                            var( --fuente_secundaria );
    font-size:                              .86rem;
    font-weight:                            var( --peso_seminegrita );
    gap:                                    8px;
    justify-content:                        center;
    min-height:                             43px;
    padding:                                10px 15px;
    transition:                             background-color .2s ease,
                                            border-color .2s ease,
                                            color .2s ease,
                                            transform .2s ease;

}

.cookies_boton:hover {

    transform:                              translateY( -1px );

}

.cookies_boton_principal {

    background:                             var( --color_principal );
    border:                                 1px solid var( --color_principal );
    color:                                  var( --color_blanco );

}

.cookies_boton_principal:hover {

    background:                             var( --color_principal_oscuro );
    border-color:                           var( --color_principal_oscuro );

}

.cookies_boton_secundario {

    background:                             var( --color_blanco );
    border:                                 1px solid rgba( 0 , 0 , 0 , .14 );
    color:                                  var( --color_texto );

}

.cookies_boton_secundario:hover {

    border-color:                           var( --color_principal );
    color:                                  var( --color_principal );

}

/* =========================================================
   MODAL
========================================================= */
.cookies_modal {

    inset:                                  0;

}

.cookies_modal_fondo {

    background:                             rgba( 0 , 0 , 0 , .58 );
    inset:                                  0;
    position:                               absolute;

}

.cookies_modal_ventana {

    background:                             var( --color_blanco );
    border-radius:                          18px 18px 0 0;
    bottom:                                 0;
    box-shadow:                             0 20px 70px rgba( 0 , 0 , 0 , .28 );
    left:                                   0;
    max-height:                             92vh;
    overflow-y:                             auto;
    position:                               absolute;
    right:                                  0;
    width:                                  100%;

}

.cookies_modal_encabezado {

    align-items:                            flex-start;
    border-bottom:                          1px solid rgba( 0 , 0 , 0 , .08 );
    display:                                flex;
    gap:                                    20px;
    justify-content:                        space-between;
    padding:                                21px;

}

.cookies_modal_encabezado span {

    color:                                  var( --color_principal );
    display:                                block;
    font-size:                              .75rem;
    font-weight:                            var( --peso_negrita );
    letter-spacing:                         .07em;
    margin-bottom:                          5px;
    text-transform:                         uppercase;

}

.cookies_modal_encabezado h2 {

    color:                                  var( --color_texto );
    font-family:                            var( --fuente_principal );
    font-size:                              1.35rem;
    line-height:                            1.3;
    margin:                                 0;

}

.cookies_modal_cerrar {

    align-items:                            center;
    background:                             var( --color_fondo_suave );
    border:                                 0;
    border-radius:                          50%;
    color:                                  var( --color_texto );
    cursor:                                 pointer;
    display:                                flex;
    flex:                                   0 0 40px;
    height:                                 40px;
    justify-content:                        center;
    width:                                  40px;

}

.cookies_modal_cerrar:hover {

    background:                             color-mix( in srgb , var( --color_principal ) 11% , transparent );
    color:                                  var( --color_principal );

}

.cookies_modal_cuerpo {

    padding:                                21px;

}

.cookies_modal_descripcion {

    color:                                  var( --color_texto_secundario );
    font-size:                              .89rem;
    line-height:                            1.7;
    margin:                                 0 0 20px;

}

/* =========================================================
   OPCIONES
========================================================= */
.cookies_opciones {

    display:                                flex;
    flex-direction:                         column;
    gap:                                    12px;

}

.cookies_opcion {

    background:                             var( --color_blanco );
    border:                                 1px solid rgba( 0 , 0 , 0 , .09 );
    border-radius:                          14px;
    padding:                                17px;

}

.cookies_opcion_encabezado {

    align-items:                            flex-start;
    display:                                flex;
    gap:                                    13px;

}

.cookies_opcion_icono {

    align-items:                            center;
    background:                             color-mix( in srgb , var( --color_principal ) 10% , transparent );
    border-radius:                          11px;
    color:                                  var( --color_principal );
    display:                                flex;
    flex:                                   0 0 43px;
    height:                                 43px;
    justify-content:                        center;
    width:                                  43px;

}

.cookies_opcion_icono i {

    font-size:                              18px;

}

.cookies_opcion_texto {

    min-width:                              0;

}

.cookies_opcion_titulo {

    align-items:                            flex-start;
    display:                                flex;
    flex-direction:                         column;
    gap:                                    6px;
    margin-bottom:                          6px;

}

.cookies_opcion_titulo h3 {

    color:                                  var( --color_texto );
    font-family:                            var( --fuente_principal );
    font-size:                              .98rem;
    line-height:                            1.4;
    margin:                                 0;

}

.cookies_opcion_texto p {

    color:                                  var( --color_texto_secundario );
    font-size:                              .82rem;
    line-height:                            1.6;
    margin:                                 0;

}

.cookies_siempre_activas {

    background:                             color-mix( in srgb , var( --color_principal ) 10% , transparent );
    border-radius:                          999px;
    color:                                  var( --color_principal );
    font-size:                              .68rem;
    font-weight:                            var( --peso_negrita );
    padding:                                5px 8px;
    white-space:                            nowrap;

}

/* =========================================================
   INTERRUPTORES
========================================================= */
.cookies_interruptor {

    align-items:                            center;
    cursor:                                 pointer;
    display:                                inline-flex;
    gap:                                    10px;
    margin-top:                             15px;
    position:                               relative;

}

.cookies_interruptor input {

    height:                                 1px;
    opacity:                                0;
    position:                               absolute;
    width:                                  1px;

}

.cookies_interruptor > span:nth-of-type( 1 ) {

    background:                             #b9b9b9;
    border-radius:                          999px;
    display:                                block;
    height:                                 26px;
    position:                               relative;
    transition:                             background-color .2s ease;
    width:                                  46px;

}

.cookies_interruptor > span:nth-of-type( 1 )::after {

    background:                             var( --color_blanco );
    border-radius:                          50%;
    box-shadow:                             0 2px 7px rgba( 0 , 0 , 0 , .22 );
    content:                                "";
    height:                                 20px;
    left:                                   3px;
    position:                               absolute;
    top:                                    3px;
    transition:                             transform .2s ease;
    width:                                  20px;

}

.cookies_interruptor input:checked + span {

    background:                             var( --color_principal );

}

.cookies_interruptor input:checked + span::after {

    transform:                              translateX( 20px );

}

.cookies_interruptor input:focus-visible + span {

    box-shadow:                             0 0 0 3px color-mix( in srgb , var( --color_principal ) 22% , transparent );

}

.cookies_interruptor_texto {

    color:                                  var( --color_texto );
    font-size:                              .8rem;
    font-weight:                            var( --peso_seminegrita );

}

.cookies_interruptor_bloqueado {

    cursor:                                 default;
    opacity:                                .78;

}

/* =========================================================
   INFORMACIÓN
========================================================= */
.cookies_modal_informacion {

    align-items:                            flex-start;
    background:                             var( --color_fondo_suave );
    border-radius:                          12px;
    display:                                flex;
    gap:                                    11px;
    margin-top:                             18px;
    padding:                                15px;

}

.cookies_modal_informacion i {

    color:                                  var( --color_principal );
    flex:                                   0 0 auto;
    font-size:                              18px;
    margin-top:                             2px;

}

.cookies_modal_informacion p {

    color:                                  var( --color_texto_secundario );
    font-size:                              .8rem;
    line-height:                            1.6;
    margin:                                 0;

}

.cookies_modal_acciones {

    border-top:                             1px solid rgba( 0 , 0 , 0 , .08 );
    display:                                grid;
    gap:                                    9px;
    grid-template-columns:                  1fr;
    padding:                                18px 21px;

}

.cookies_modal_enlaces {

    align-items:                            center;
    display:                                flex;
    flex-wrap:                              wrap;
    gap:                                    14px;
    justify-content:                        center;
    padding:                                0 21px 21px;

}

.cookies_modal_enlaces a {

    color:                                  var( --color_texto_secundario );
    font-size:                              .75rem;
    text-decoration:                        none;

}

.cookies_modal_enlaces a:hover {

    color:                                  var( --color_principal );
    text-decoration:                        underline;

}

body.cookies_modal_abierto {

    overflow:                               hidden;

}

/* =========================================================
   RESPONSIVE
========================================================= */
@media ( min-width: 600px ){

    .cookies_aviso_acciones {

        grid-template-columns:              repeat( 3 , auto );
        justify-content:                    flex-end;

    }

    .cookies_modal_acciones {

        grid-template-columns:              repeat( 2 , auto );
        justify-content:                    flex-end;

    }

    .cookies_opcion_titulo {

        align-items:                        center;
        flex-direction:                     row;

    }

}

@media ( min-width: 768px ){

    .cookies_aviso {

        padding:                            18px;

    }

    .cookies_aviso_contenido {

        align-items:                        center;
        grid-template-columns:              auto minmax( 0 , 1fr );
        padding:                            20px 22px;

    }

    .cookies_aviso_acciones {

        grid-column:                        1 / -1;

    }

    .cookies_modal_ventana {

        border-radius:                      18px;
        bottom:                             auto;
        left:                               50%;
        max-width:                          720px;
        right:                              auto;
        top:                                50%;
        transform:                          translate( -50% , -50% );
        width:                              calc( 100% - 36px );

    }

    .cookies_modal_encabezado,
    .cookies_modal_cuerpo {

        padding:                            25px;

    }

    .cookies_modal_acciones {

        padding:                            19px 25px;

    }

    .cookies_modal_enlaces {

        padding:                            0 25px 25px;

    }

}

@media ( min-width: 1100px ){

    .cookies_aviso_contenido {

        grid-template-columns:              auto minmax( 0 , 1fr ) auto;

    }

    .cookies_aviso_acciones {

        grid-column:                        auto;

    }

}