/* Widget flotante de accesibilidad */

.dp-accesibilidad {
    position: fixed;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    z-index: 1100;
    display: flex;
    flex-direction: column;
    gap: 6px;
    font-family: 'PoppinsR', sans-serif;
}

.dp-acc-btn {
    width: 52px;
    height: 52px;
    border: none;
    border-radius: 10px 0 0 10px;
    background: #4268a5;
    color: #fff;
    cursor: pointer;
    box-shadow: -3px 2px 10px rgba(0, 0, 0, 0.2);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
    transition: background 0.2s ease, transform 0.2s ease;
}

.dp-acc-btn:hover,
.dp-acc-btn:focus {
    background: #355589;
    color: #fff;
    outline: 2px solid #f5c518;
    outline-offset: 2px;
}

.dp-acc-btn.active {
    background: #009eb2;
}

.dp-acc-panel {
    position: fixed;
    right: 58px;
    top: 50%;
    transform: translateY(-50%);
    width: 260px;
    max-height: 80vh;
    overflow-y: auto;
    background: #fff;
    border-radius: 10px 0 0 10px;
    box-shadow: -4px 4px 20px rgba(0, 0, 0, 0.18);
    padding: 16px;
    z-index: 1099;
    display: none;
    border: 1px solid #e0e0e0;
}

.dp-acc-panel.open {
    display: block;
    animation: dpAccSlideIn 0.2s ease;
}

@keyframes dpAccSlideIn {
    from {
        opacity: 0;
        transform: translateY(-50%) translateX(12px);
    }
    to {
        opacity: 1;
        transform: translateY(-50%) translateX(0);
    }
}

.dp-acc-panel h4 {
    font-size: 0.95rem;
    color: #4268a5 !important;
    font-family: 'PoppinsB', sans-serif;
    margin: 0 0 12px;
    line-height: 1.3;
    border-bottom: 2px solid #009eb2;
    padding-bottom: 8px;
}

.dp-acc-panel-actions {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.dp-acc-action {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 10px 12px;
    border: 1px solid #dde3ea;
    border-radius: 6px;
    background: #f8f9fb;
    color: #333;
    font-size: 0.85rem;
    font-family: 'PoppinsR', sans-serif;
    cursor: pointer;
    text-align: left;
    transition: background 0.15s ease, border-color 0.15s ease;
}

.dp-acc-action:hover,
.dp-acc-action:focus {
    background: #eef3f9;
    border-color: #4268a5;
    outline: none;
}

.dp-acc-action.active {
    background: #4268a5;
    color: #fff;
    border-color: #4268a5;
}

.dp-acc-action i {
    width: 18px;
    text-align: center;
    color: #4268a5;
    flex-shrink: 0;
}

.dp-acc-action.active i {
    color: #fff;
}

.dp-acc-close {
    position: absolute;
    top: 8px;
    right: 10px;
    background: none;
    border: none;
    color: #888;
    font-size: 1.1rem;
    cursor: pointer;
    padding: 4px;
    line-height: 1;
}

.dp-acc-close:hover,
.dp-acc-close:focus {
    color: #4268a5;
    outline: none;
}

/* Escalado de texto en html para afectar toda la página (rem, em y herencia) */

html.acc-texto-1 { font-size: 106%; }
html.acc-texto-2 { font-size: 112%; }
html.acc-texto-3 { font-size: 118%; }

/* Modos de accesibilidad visual en body */

.navbar-logo-contraste {
    display: none;
}

body.acc-alto-contraste {
    background: #000 !important;
    color: #fff !important;
}

body.acc-alto-contraste .navbar-logo-default {
    display: none;
}

body.acc-alto-contraste .navbar-logo-contraste {
    display: inline-block;
}

body.acc-alto-contraste .navbar-toggler-icon {
    filter: invert(1);
}

body.acc-alto-contraste .custom-container,
body.acc-alto-contraste main {
    background: #000 !important;
}

body.acc-alto-contraste .dp-hero-section,
body.acc-alto-contraste .dp-bottom-section {
    background: #111 !important;
    color: #fff !important;
}

body.acc-alto-contraste .dp-hero-title,
body.acc-alto-contraste .dp-bottom-content,
body.acc-alto-contraste .dp-bottom-content h3,
body.acc-alto-contraste .dp-bottom-content p,
body.acc-alto-contraste .dp-check-text {
    color: #fff !important;
}

body.acc-alto-contraste .dp-info-card.blue {
    background: #1a1a1a !important;
    border: 2px solid #fff;
}

/* Secciones 2 y 3: Responsable del tratamiento / Aviso de privacidad */
body.acc-alto-contraste .dp-seccion2-card {
    background: #111 !important;
    border: 2px solid #fff;
}

body.acc-alto-contraste .dp-seccion2-title,
body.acc-alto-contraste .dp-seccion2-inst,
body.acc-alto-contraste .dp-seccion2-text,
body.acc-alto-contraste .dp-seccion2-col-right p,
body.acc-alto-contraste .dp-seccion2-contacto {
    color: #fff !important;
}

body.acc-alto-contraste .dp-seccion2-email {
    color: #fff !important;
}

body.acc-alto-contraste .dp-seccion2-email:hover {
    color: #fff !important;
    text-decoration: underline;
}

body.acc-alto-contraste .dp-seccion2-separator {
    background: #fff;
}

body.acc-alto-contraste .dp-seccion2-footer,
body.acc-alto-contraste .dp-seccion2-footer--primary {
    background: #000 !important;
    border-top: 2px solid #fff;
}

body.acc-alto-contraste .dp-seccion2-footer-text,
body.acc-alto-contraste .dp-seccion2-footer--primary .dp-seccion2-footer-text {
    color: #fff !important;
}

body.acc-alto-contraste .dp-seccion2-download {
    background: #000 !important;
    color: #fff !important;
    border: 2px solid #fff;
    box-shadow: none;
}

body.acc-alto-contraste .dp-seccion2-download:hover {
    background: #222 !important;
    color: #fff !important;
}

/* Sección 4: Categorías de datos */
body.acc-alto-contraste .dp-seccion4-card {
    border: 2px solid #fff;
}

body.acc-alto-contraste .dp-seccion4-header {
    background: #000 !important;
    border-bottom: 2px solid #fff;
}

body.acc-alto-contraste .dp-seccion4-header:hover,
body.acc-alto-contraste .dp-seccion4-header:focus {
    background: #222 !important;
}

body.acc-alto-contraste .dp-seccion4-header-text,
body.acc-alto-contraste .dp-seccion4-chevron {
    color: #fff !important;
}

body.acc-alto-contraste .dp-seccion4-body {
    background: #111 !important;
}

body.acc-alto-contraste .dp-seccion4-item,
body.acc-alto-contraste .dp-seccion4-toggle {
    color: #fff !important;
}

body.acc-alto-contraste .dp-seccion4-toggle {
    border-bottom-color: #fff;
}

body.acc-alto-contraste .dp-seccion4-toggle .dp-seccion4-chevron {
    color: #fff !important;
}

body.acc-alto-contraste .dp-seccion4-item--separator {
    border-top-color: #fff;
}

body.acc-alto-contraste .dp-seccion5-list > li,
body.acc-alto-contraste .dp-seccion5-intro,
body.acc-alto-contraste .dp-seccion5-sublist > li {
    color: #fff !important;
}

body.acc-alto-contraste .dp-seccion5-intro {
    border-bottom-color: #fff;
}

body.acc-alto-contraste .dp-seccion6-card {
    background: #111 !important;
    border: 2px solid #fff;
}

body.acc-alto-contraste .dp-seccion6-title,
body.acc-alto-contraste .dp-seccion6-text {
    color: #fff !important;
}

body.acc-alto-contraste .dp-seccion6-separator {
    background: #fff;
}

body.acc-alto-contraste .dp-seccion6-icon-wrap {
    background: #000 !important;
    border: 2px solid #fff;
}

body.acc-alto-contraste .dp-hero-bg,
body.acc-alto-contraste .dp-seccion7-bg {
    background: #1a1a1a !important;
    border: 2px solid #fff;
}

body.acc-alto-contraste .dp-seccion7-circle-main {
    background: #111 !important;
    border: 2px solid #fff;
}

/* Sección 7: Ejercicio de Derechos */
body.acc-alto-contraste .dp-seccion7 {
    background: #111 !important;
}

body.acc-alto-contraste .dp-seccion7-top {
    background: transparent !important;
}

body.acc-alto-contraste .dp-seccion7-title,
body.acc-alto-contraste .dp-seccion7-text {
    color: #fff !important;
}

body.acc-alto-contraste .dp-seccion7-link {
    color: #fff !important;
}

body.acc-alto-contraste .dp-seccion7-footer {
    background: #000 !important;
    border: 2px solid #fff;
}

body.acc-alto-contraste .dp-back-top {
    background: #000 !important;
    color: #fff !important;
    border: 2px solid #fff;
    box-shadow: none;
}

body.acc-alto-contraste .dp-back-top:hover,
body.acc-alto-contraste .dp-back-top:focus {
    background: #fff !important;
    color: #000 !important;
}

body.acc-alto-contraste .custom-navbar {
    background: #000 !important;
    border-bottom-color: #fff !important;
}

body.acc-alto-contraste .navbar-nav .nav-link {
    color: #fff !important;
}

body.acc-alto-contraste .dp-acc-panel {
    background: #000;
    border-color: #fff;
    color: #fff;
}

body.acc-alto-contraste .dp-acc-panel h4 {
    color: #fff !important;
    border-bottom-color: #fff;
}

body.acc-alto-contraste .dp-acc-action {
    background: #222;
    color: #fff;
    border-color: #fff;
}

body.acc-alto-contraste .dp-acc-action i {
    color: #fff;
}

body.acc-alto-contraste .dp-acc-action:hover,
body.acc-alto-contraste .dp-acc-action:focus {
    background: #333;
    border-color: #fff;
    color: #fff;
}

body.acc-alto-contraste .dp-acc-action:hover i,
body.acc-alto-contraste .dp-acc-action:focus i {
    color: #fff;
}

body.acc-alto-contraste .dp-acc-action.active {
    background: #fff;
    color: #000;
    border-color: #fff;
}

body.acc-alto-contraste .dp-acc-action.active i {
    color: #000;
}

body.acc-alto-contraste .dp-acc-close {
    color: #fff;
}

body.acc-alto-contraste .dp-acc-close:hover,
body.acc-alto-contraste .dp-acc-close:focus {
    color: #fff;
}

body.acc-enlaces-subrayados a {
    text-decoration: underline !important;
    text-underline-offset: 3px;
}

@media (max-width: 768px) {
    .dp-accesibilidad {
        top: auto;
        bottom: 140px;
        transform: none;
    }

    .dp-acc-panel {
        top: auto;
        bottom: 140px;
        transform: none;
        right: 0;
        width: 100%;
        max-width: 280px;
        border-radius: 10px 0 0 0;
        max-height: 50vh;
    }

    .dp-acc-panel.open {
        animation: dpAccSlideUp 0.2s ease;
    }

    @keyframes dpAccSlideUp {
        from {
            opacity: 0;
            transform: translateY(12px);
        }
        to {
            opacity: 1;
            transform: translateY(0);
        }
    }

    .dp-acc-btn {
        width: 46px;
        height: 46px;
        font-size: 1.1rem;
    }
}
