/* ==========================================================================
   MÓDULO DE ACCESIBILIDAD (A11Y) - REPOSITORIO CIENTÍFICO DE CAMBIO CLIMÁTICO
   UI Kit v3.0.1 - Gobierno de Chile (Clean CSS - Zero !important)
   ========================================================================== */

/* --- ESCALADO TIPOGRÁFICO ACCESIBLE (WCAG 2.1 - 1.4.4) --- */
html[data-font-scale="small"] {
    font-size: 14px;
}

html[data-font-scale="normal"] {
    font-size: 16px;
}

html[data-font-scale="large"] {
    font-size: 19px;
}

html[data-font-scale="xlarge"] {
    font-size: 22px;
}

/* --- BARRA DE ACCESIBILIDAD GUBERNAMENTAL --- */
/* --- BARRA DE ACCESIBILIDAD GUBERNAMENTAL (GOB.CL UI KIT) --- */
.accessibility-bar {
    background-color: var(--gob-header, #001141);
    color: #FFFFFF;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
    padding: 10px 24px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-family: var(--font-body, 'Roboto', sans-serif);
    font-size: 0.85rem;
    z-index: 1000;
    position: relative;
}

.accessibility-bar-title {
    font-weight: 700;
    color: var(--gob-light, #F4F6F8);
    display: flex;
    align-items: center;
    gap: 10px;
}

.gob-emblem {
    width: 18px;
    height: 13px;
    border-radius: 2px;
    overflow: hidden;
    flex-shrink: 0;
    display: inline-block;
    vertical-align: middle;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
}

.accessibility-tools {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}

.accessibility-tool-group {
    display: flex;
    align-items: center;
    gap: 6px;
}

.accessibility-label {
    font-weight: 500;
    color: #CBD5E1;
    margin-right: 4px;
    font-size: 0.82rem;
}

/* Botones de la Barra de Accesibilidad (Look & Feel Institucional Header Contraste) */
.accessibility-btn {
    background-color: rgba(255, 255, 255, 0.1);
    color: #FFFFFF;
    border: 1px solid rgba(255, 255, 255, 0.25);
    border-radius: var(--gob-btn-radius, 4px);
    padding: 6px 12px;
    min-height: 34px;
    font-family: var(--font-body, 'Roboto', sans-serif);
    font-size: 0.82rem;
    font-weight: 500;
    cursor: pointer;
    transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    position: relative;
    user-select: none;
    box-sizing: border-box;
}

/* Área táctil mínima accesible de 44px para dispositivos táctiles */
.accessibility-btn::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    min-width: 44px;
    min-height: 44px;
    width: 100%;
    height: 100%;
    pointer-events: auto;
}

.accessibility-btn:hover {
    background-color: var(--gob-btn-blue-primary, #0F69C4);
    border-color: var(--gob-btn-blue-primary, #0F69C4);
    color: #FFFFFF;
}

.accessibility-btn:active {
    background-color: var(--gob-btn-blue-hover, #003B8D);
    border-color: var(--gob-btn-blue-hover, #003B8D);
}

.accessibility-btn:focus-visible {
    outline: 3px solid var(--gob-btn-focus-ring, #FFBE5C) !important;
    outline-offset: 2px !important;
    box-shadow: 0 0 0 1px #001141 !important;
    z-index: 5;
}

.accessibility-btn.active {
    background-color: var(--gob-btn-blue-primary, #0F69C4);
    color: #FFFFFF;
    border-color: #FFFFFF;
    font-weight: 700;
}

.accessibility-btn.playing {
    background-color: var(--gob-red, #FF4731);
    color: #FFFFFF;
    border-color: #FFFFFF;
    font-weight: 700;
}

/* --- BOTONERA DE ESCALA TIPOGRÁFICA AGRUPADA (A-, A, A+, A++) --- */
.font-scale-btn {
    min-width: 32px;
    padding: 6px 8px;
    font-weight: 600;
}

/* --- SELECTOR DE IDIOMA I18N (GOB.CL ACCESSIBLE TOGGLE) --- */
.lang-switcher-group {
    display: inline-flex;
    align-items: center;
    background: rgba(0, 0, 0, 0.35);
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: var(--gob-btn-radius, 4px);
    padding: 2px;
    gap: 2px;
}

.lang-btn {
    background: transparent;
    color: #CBD5E1;
    border: none;
    border-radius: 3px;
    padding: 4px 10px;
    min-height: 28px;
    font-size: 0.78rem;
    font-weight: 600;
    font-family: var(--font-body, 'Roboto', sans-serif);
    cursor: pointer;
    transition: background-color 0.15s ease, color 0.15s ease;
    text-transform: uppercase;
    position: relative;
}

.lang-btn::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    min-width: 44px;
    min-height: 44px;
    width: 100%;
    height: 100%;
    pointer-events: auto;
}

.lang-btn:hover {
    color: #FFFFFF;
    background: rgba(255, 255, 255, 0.15);
}

.lang-btn:focus-visible {
    outline: 2px solid var(--gob-btn-focus-ring, #FFBE5C) !important;
    outline-offset: 1px !important;
}

.lang-btn.active {
    background-color: var(--gob-btn-blue-primary, #0F69C4);
    color: #FFFFFF;
    font-weight: 700;
}

.lang-icon {
    margin-right: 4px;
    opacity: 0.85;
}

/* Enlaces de salto accesible (Skip Links) */
.skip-link {
    position: absolute;
    top: -100px;
    left: 10px;
    background: var(--gob-red);
    color: #001141;
    padding: 12px 20px;
    font-weight: 700;
    z-index: 10000;
    border-radius: 0 0 8px 8px;
    text-decoration: none;
    transition: top 0.2s ease;
}

.skip-link:focus {
    top: 0;
    outline: 4px solid #001141;
}

/* --- MODO DE ALTO CONTRASTE (WCAG AAA - 7:1 CONTRAST RATIO) --- */
html[data-theme="high-contrast"] {
    background-color: #000000;
    color: #FFFFFF;
}

html[data-theme="high-contrast"] body,
html[data-theme="high-contrast"] main,
html[data-theme="high-contrast"] header,
html[data-theme="high-contrast"] footer,
html[data-theme="high-contrast"] section,
html[data-theme="high-contrast"] article,
html[data-theme="high-contrast"] div,
html[data-theme="high-contrast"] nav {
    background-color: #000000;
    color: #FFFFFF;
}

html[data-theme="high-contrast"] h1,
html[data-theme="high-contrast"] h2,
html[data-theme="high-contrast"] h3,
html[data-theme="high-contrast"] h4,
html[data-theme="high-contrast"] h5,
html[data-theme="high-contrast"] h6,
html[data-theme="high-contrast"] strong,
html[data-theme="high-contrast"] b {
    color: #FFFF00;
}

html[data-theme="high-contrast"] p,
html[data-theme="high-contrast"] span,
html[data-theme="high-contrast"] li,
html[data-theme="high-contrast"] td,
html[data-theme="high-contrast"] th,
html[data-theme="high-contrast"] label,
html[data-theme="high-contrast"] small {
    color: #FFFFFF;
}

html[data-theme="high-contrast"] a {
    color: #FFFF00;
    text-decoration: underline;
}

html[data-theme="high-contrast"] a:hover,
html[data-theme="high-contrast"] a:focus-visible {
    color: #00FFFF;
    background-color: #000000;
}

html[data-theme="high-contrast"] button,
html[data-theme="high-contrast"] .btn,
html[data-theme="high-contrast"] .accessibility-btn,
html[data-theme="high-contrast"] .btn-search {
    background-color: #000000;
    background: #000000;
    color: #FFFF00;
    border: 2px solid #FFFF00;
}

html[data-theme="high-contrast"] button:hover,
html[data-theme="high-contrast"] .btn:hover,
html[data-theme="high-contrast"] .accessibility-btn:hover,
html[data-theme="high-contrast"] .btn-search:hover {
    background-color: #FFFF00;
    background: #FFFF00;
    color: #000000;
}

html[data-theme="high-contrast"] input,
html[data-theme="high-contrast"] select,
html[data-theme="high-contrast"] textarea,
html[data-theme="high-contrast"] .search-input {
    background-color: #000000;
    background: #000000;
    color: #FFFFFF;
    border: 2px solid #FFFFFF;
}

html[data-theme="high-contrast"] input:focus,
html[data-theme="high-contrast"] select:focus,
html[data-theme="high-contrast"] textarea:focus,
html[data-theme="high-contrast"] .search-input:focus {
    border-color: #FFFF00;
    outline: 3px solid #FFFF00;
}

/* Tarjetas y Contenedores en Alto Contraste */
html[data-theme="high-contrast"] .result-card,
html[data-theme="high-contrast"] .stat-card,
html[data-theme="high-contrast"] .about-card,
html[data-theme="high-contrast"] .faq-item,
html[data-theme="high-contrast"] .search-box,
html[data-theme="high-contrast"] .detail-container,
html[data-theme="high-contrast"] .accessibility-bar {
    background-color: #000000;
    background: #000000;
    border: 2px solid #FFFFFF;
    box-shadow: none;
}

/* Acordeón FAQ en Alto Contraste */
html[data-theme="high-contrast"] .faq-question {
    background-color: #000000;
    background: #000000;
    color: #FFFF00;
    border-bottom: 1px solid #FFFFFF;
}

html[data-theme="high-contrast"] .faq-question:hover,
html[data-theme="high-contrast"] .faq-question:focus-visible {
    background-color: #FFFF00;
    background: #FFFF00;
    color: #000000;
}

html[data-theme="high-contrast"] .faq-question:hover span,
html[data-theme="high-contrast"] .faq-question:focus-visible span,
html[data-theme="high-contrast"] .faq-question:hover .faq-icon,
html[data-theme="high-contrast"] .faq-question:focus-visible .faq-icon {
    color: #000000;
}

html[data-theme="high-contrast"] .faq-answer {
    background-color: #000000;
    color: #FFFFFF;
}

/* Badges y Pastillas en Alto Contraste */
html[data-theme="high-contrast"] .badge-chile-author,
html[data-theme="high-contrast"] .badge-chile-data,
html[data-theme="high-contrast"] .badge-pub-type,
html[data-theme="high-contrast"] .btn-listen-article,
html[data-theme="high-contrast"] span[style*="background"],
html[data-theme="high-contrast"] div[style*="background"] {
    background-color: #000000;
    background: #000000;
    color: #FFFF00;
    border: 1px solid #FFFF00;
}

html[data-theme="high-contrast"] .btn-listen-article:hover {
    background-color: #FFFF00;
    background: #FFFF00;
    color: #000000;
}

html[data-theme="high-contrast"] .result-title-link {
    color: #FFFF00;
    text-decoration: underline;
    font-weight: 700;
}

html[data-theme="high-contrast"] .result-title-link:hover {
    color: #00FFFF;
}

/* RAG IA EN ALTO CONTRASTE */
html[data-theme="high-contrast"] .rag-card,
html[data-theme="high-contrast"] #hero-rag-container {
    background-color: #000000;
    background: #000000;
    border: 2px solid #FFFF00;
    box-shadow: none;
}

html[data-theme="high-contrast"] .rag-badge {
    background-color: #000000;
    background: #000000;
    color: #FFFF00;
    border: 1px solid #FFFF00;
}

html[data-theme="high-contrast"] .rag-query-title,
html[data-theme="high-contrast"] .rag-sources-summary {
    color: #FFFF00;
    font-weight: 700;
}

html[data-theme="high-contrast"] .btn-rag-listen {
    background-color: #000000;
    background: #000000;
    color: #FFFF00;
    border: 2px solid #FFFF00;
}

html[data-theme="high-contrast"] .btn-rag-listen:hover {
    background-color: #FFFF00;
    background: #FFFF00;
    color: #000000;
}

html[data-theme="high-contrast"] .btn-rag-close {
    color: #FFFF00;
}

html[data-theme="high-contrast"] .btn-rag-close:hover {
    color: #00FFFF;
}

html[data-theme="high-contrast"] .rag-loading-text,
html[data-theme="high-contrast"] #rag-loading {
    color: #FFFF00;
}

html[data-theme="high-contrast"] .rag-answer-body,
html[data-theme="high-contrast"] .rag-answer-body *,
html[data-theme="high-contrast"] #rag-answer,
html[data-theme="high-contrast"] #rag-answer *,
html[data-theme="high-contrast"] #rag-sources,
html[data-theme="high-contrast"] #rag-sources *,
html[data-theme="high-contrast"] .rag-doc-authors,
html[data-theme="high-contrast"] .rag-doc-score,
html[data-theme="high-contrast"] .rag-sources-details p,
html[data-theme="high-contrast"] .rag-sources-details span,
html[data-theme="high-contrast"] .rag-sources-details small,
html[data-theme="high-contrast"] .rag-sources-details em {
    color: #FFFFFF;
}

html[data-theme="high-contrast"] .rag-answer-body h1,
html[data-theme="high-contrast"] .rag-answer-body h2,
html[data-theme="high-contrast"] .rag-answer-body h3,
html[data-theme="high-contrast"] .rag-answer-body h4,
html[data-theme="high-contrast"] .rag-answer-body h5,
html[data-theme="high-contrast"] .rag-answer-body h6,
html[data-theme="high-contrast"] .rag-answer-body strong,
html[data-theme="high-contrast"] .rag-answer-body b,
html[data-theme="high-contrast"] #rag-answer h1,
html[data-theme="high-contrast"] #rag-answer h2,
html[data-theme="high-contrast"] #rag-answer h3,
html[data-theme="high-contrast"] #rag-answer h4,
html[data-theme="high-contrast"] #rag-answer h5,
html[data-theme="high-contrast"] #rag-answer h6,
html[data-theme="high-contrast"] #rag-answer strong,
html[data-theme="high-contrast"] #rag-answer b,
html[data-theme="high-contrast"] .rag-doc-title,
html[data-theme="high-contrast"] #rag-sources strong {
    color: #FFFF00;
    font-weight: 700;
}

html[data-theme="high-contrast"] .rag-answer-body a,
html[data-theme="high-contrast"] #rag-answer a,
html[data-theme="high-contrast"] #rag-sources a {
    color: #00FFFF;
    text-decoration: underline;
}

html[data-theme="high-contrast"] .rag-doc-item {
    border-left: 3px solid #FFFF00;
}

html[data-theme="high-contrast"] *:focus-visible {
    outline: 4px solid #FFBE5C;
    outline-offset: 3px;
}

/* ==========================================================================
   SISTEMA DE TOOLTIPS ACCESIBLES (UI KIT GOB.CL - PURE CSS WCAG 2.1 AAA)
   Uso: data-tooltip="Texto explicativo" [data-tooltip-pos="top|bottom|left|right"]
   ========================================================================== */

[data-tooltip] {
    position: relative;
    cursor: help;
}

/* Evitar cursor help en botones o enlaces interactivos */
button[data-tooltip],
a[data-tooltip],
input[data-tooltip] {
    cursor: pointer;
}

[data-tooltip]::before,
[data-tooltip]::after {
    position: absolute;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1), transform 0.2s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 10000;
}

/* Burbuja del tooltip */
[data-tooltip]::after {
    content: attr(data-tooltip);
    background-color: var(--gob-navy-dark, #001141);
    color: #FFFFFF;
    font-family: var(--font-body, 'Roboto', sans-serif);
    font-size: 0.78rem;
    font-weight: 500;
    line-height: 1.4;
    padding: 6px 12px;
    border-radius: 6px;
    border: 1px solid var(--gob-blue-base, #0F69C4);
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.35);
    white-space: normal;
    width: max-content;
    max-width: 250px;
    text-align: center;
    text-shadow: none;
    letter-spacing: 0;
    text-transform: none;
}

/* Flecha del tooltip */
[data-tooltip]::before {
    content: '';
    border: 5px solid transparent;
}

/* Posición por defecto: TOP (Arriba) */
[data-tooltip]:not([data-tooltip-pos])::after,
[data-tooltip][data-tooltip-pos="top"]::after {
    bottom: 100%;
    left: 50%;
    transform: translate(-50%, -6px);
    margin-bottom: 6px;
}

[data-tooltip]:not([data-tooltip-pos])::before,
[data-tooltip][data-tooltip-pos="top"]::before {
    bottom: 100%;
    left: 50%;
    transform: translateX(-50%);
    border-top-color: var(--gob-blue-base, #0F69C4);
    margin-bottom: -4px;
}

/* Posición: BOTTOM (Abajo) */
[data-tooltip][data-tooltip-pos="bottom"]::after {
    top: 100%;
    left: 50%;
    transform: translate(-50%, 6px);
    margin-top: 6px;
}

[data-tooltip][data-tooltip-pos="bottom"]::before {
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    border-bottom-color: var(--gob-blue-base, #0F69C4);
    margin-top: -4px;
}

/* Posición: LEFT (Izquierda) */
[data-tooltip][data-tooltip-pos="left"]::after {
    right: 100%;
    top: 50%;
    transform: translate(-6px, -50%);
    margin-right: 6px;
}

[data-tooltip][data-tooltip-pos="left"]::before {
    right: 100%;
    top: 50%;
    transform: translateY(-50%);
    border-left-color: var(--gob-blue-base, #0F69C4);
    margin-right: -4px;
}

/* Posición: RIGHT (Derecha) */
[data-tooltip][data-tooltip-pos="right"]::after {
    left: 100%;
    top: 50%;
    transform: translate(6px, -50%);
    margin-left: 6px;
}

[data-tooltip][data-tooltip-pos="right"]::before {
    left: 100%;
    top: 50%;
    transform: translateY(-50%);
    border-right-color: var(--gob-blue-base, #0F69C4);
    margin-left: -4px;
}

/* Activación por Hover y por Foco Accesible (Teclado) */
[data-tooltip]:hover::before,
[data-tooltip]:hover::after,
[data-tooltip]:focus-visible::before,
[data-tooltip]:focus-visible::after {
    opacity: 1;
    visibility: visible;
}

[data-tooltip]:not([data-tooltip-pos]):hover::after,
[data-tooltip][data-tooltip-pos="top"]:hover::after,
[data-tooltip]:not([data-tooltip-pos]):focus-visible::after,
[data-tooltip][data-tooltip-pos="top"]:focus-visible::after {
    transform: translate(-50%, 0);
}

[data-tooltip][data-tooltip-pos="bottom"]:hover::after,
[data-tooltip][data-tooltip-pos="bottom"]:focus-visible::after {
    transform: translate(-50%, 0);
}

[data-tooltip][data-tooltip-pos="left"]:hover::after,
[data-tooltip][data-tooltip-pos="left"]:focus-visible::after {
    transform: translate(0, -50%);
}

[data-tooltip][data-tooltip-pos="right"]:hover::after,
[data-tooltip][data-tooltip-pos="right"]:focus-visible::after {
    transform: translate(0, -50%);
}

/* Soporte para Modo Alto Contraste */
html[data-theme="high-contrast"] [data-tooltip]::after {
    background-color: #000000;
    color: #FFFF00;
    border: 2px solid #FFFF00;
    box-shadow: none;
}

html[data-theme="high-contrast"] [data-tooltip]:not([data-tooltip-pos])::before,
html[data-theme="high-contrast"] [data-tooltip][data-tooltip-pos="top"]::before {
    border-top-color: #FFFF00;
}

html[data-theme="high-contrast"] [data-tooltip][data-tooltip-pos="bottom"]::before {
    border-bottom-color: #FFFF00;
}

/* ==========================================================================
   SISTEMA DE BOTONES OFICIAL GOBIERNO DE CHILE (UI KIT V3.0 - WCAG 2.5.8 AAA)
   Área clickeable mínima de 44px x 44px (AAA) | Enfoque accesible #FFBE5C
   ========================================================================== */

:root {
    --gob-btn-blue-primary: #0F69C4;
    --gob-btn-blue-hover: #003B8D;
    --gob-btn-blue-active: #002459;
    --gob-btn-focus-ring: #FFBE5C;
    --gob-btn-disabled-bg: #E2E8F0;
    --gob-btn-disabled-text: #94A3B8;
    --gob-btn-disabled-border: #CBD5E1;
    --gob-btn-radius: 4px;
}

/* Base de Botón */
.gob-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    font-family: var(--font-body, 'Roboto', sans-serif);
    font-weight: 500;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
    border-radius: var(--gob-btn-radius);
    cursor: pointer;
    box-sizing: border-box;
    transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
    user-select: none;
    white-space: nowrap;
    position: relative;
}

/* Tamaños (Garantía de área táctil WCAG AAA) */
.gob-btn,
.gob-btn--md {
    min-height: 44px;
    padding: 10px 20px;
    font-size: 0.95rem;
}

.gob-btn--sm {
    min-height: 36px;
    padding: 6px 14px;
    font-size: 0.85rem;
}

/* Para botones pequeños, garantizar área táctil mínima de 44px vía pseudo-elemento invisible */
.gob-btn--sm::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    min-width: 44px;
    min-height: 44px;
    width: 100%;
    height: 100%;
    pointer-events: auto;
}

.gob-btn--lg {
    min-height: 52px;
    padding: 14px 28px;
    font-size: 1.05rem;
    font-weight: 600;
}

/* Enfoque Accesible Oficial (Teclado / Foco Visible) */
.gob-btn:focus-visible {
    outline: 3px solid var(--gob-btn-focus-ring) !important;
    outline-offset: 2px !important;
    box-shadow: 0 0 0 1px #001141 !important;
    z-index: 5;
}

/* --- VARIANTE 1: BOTÓN PRIMARIO --- */
.gob-btn--primary {
    background-color: var(--gob-btn-blue-primary);
    color: #FFFFFF !important;
    border: 1.5px solid var(--gob-btn-blue-primary);
}

.gob-btn--primary:hover {
    background-color: var(--gob-btn-blue-hover);
    border-color: var(--gob-btn-blue-hover);
    color: #FFFFFF !important;
}

.gob-btn--primary:active {
    background-color: var(--gob-btn-blue-active);
    border-color: var(--gob-btn-blue-active);
    color: #FFFFFF !important;
}

/* --- VARIANTE 2: BOTÓN SECUNDARIO --- */
.gob-btn--secondary {
    background-color: #FFFFFF;
    color: var(--gob-btn-blue-primary) !important;
    border: 1.5px solid var(--gob-btn-blue-primary);
}

.gob-btn--secondary:hover {
    background-color: #EBF3FC;
    border-color: var(--gob-btn-blue-hover);
    color: var(--gob-btn-blue-hover) !important;
}

.gob-btn--secondary:active {
    background-color: var(--gob-btn-blue-active);
    border-color: var(--gob-btn-blue-active);
    color: #FFFFFF !important;
}

/* --- VARIANTE 3: BOTÓN TERCIARIO --- */
.gob-btn--tertiary {
    background-color: transparent;
    color: var(--gob-btn-blue-primary) !important;
    border: 1.5px solid transparent;
    padding-left: 10px;
    padding-right: 10px;
}

.gob-btn--tertiary:hover {
    background-color: #F0F6FF;
    color: var(--gob-btn-blue-hover) !important;
    text-decoration: underline;
}

.gob-btn--tertiary:active {
    background-color: #E2E8F0;
    color: var(--gob-btn-blue-active) !important;
}

/* --- VARIANTE 4: BOTONES DE SOLO ÍCONO --- */
.gob-btn--icon {
    min-width: 44px;
    min-height: 44px;
    width: 44px;
    height: 44px;
    padding: 0;
    border-radius: 50%;
    background-color: var(--gob-btn-blue-primary);
    color: #FFFFFF !important;
    border: 1.5px solid var(--gob-btn-blue-primary);
}

.gob-btn--icon:hover {
    background-color: var(--gob-btn-blue-hover);
    border-color: var(--gob-btn-blue-hover);
}

.gob-btn--icon:active {
    background-color: var(--gob-btn-blue-active);
    border-color: var(--gob-btn-blue-active);
}

.gob-btn--icon-secondary {
    min-width: 44px;
    min-height: 44px;
    width: 44px;
    height: 44px;
    padding: 0;
    border-radius: var(--gob-btn-radius);
    background-color: #FFFFFF;
    color: var(--gob-btn-blue-primary) !important;
    border: 1.5px solid var(--gob-btn-blue-primary);
}

.gob-btn--icon-secondary:hover {
    background-color: #EBF3FC;
    border-color: var(--gob-btn-blue-hover);
    color: var(--gob-btn-blue-hover) !important;
}

/* --- ESTADO DISABLED GENERAL --- */
.gob-btn:disabled,
.gob-btn.disabled,
.gob-btn[aria-disabled="true"] {
    background-color: var(--gob-btn-disabled-bg) !important;
    color: var(--gob-btn-disabled-text) !important;
    border-color: var(--gob-btn-disabled-border) !important;
    cursor: not-allowed !important;
    box-shadow: none !important;
    transform: none !important;
    pointer-events: none;
}

/* --- ENLACES ESTÁNDAR GOB.CL --- */
.gob-link {
    color: var(--gob-btn-blue-primary);
    text-decoration: underline;
    font-family: var(--font-body, 'Roboto', sans-serif);
    font-weight: 500;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: color 0.15s ease;
}

.gob-link:hover {
    color: var(--gob-btn-blue-hover);
    text-decoration: underline;
}

.gob-link:focus-visible {
    outline: 3px solid var(--gob-btn-focus-ring) !important;
    outline-offset: 2px !important;
    border-radius: 2px;
}

.gob-link--sm {
    font-size: 0.875rem;
}

.gob-link--lg {
    font-size: 1.125rem;
    font-weight: 600;
}

/* --- SOPORTE ALTO CONTRASTE (WCAG AAA) --- */
html[data-theme="high-contrast"] .gob-btn--primary,
html[data-theme="high-contrast"] .gob-btn--secondary,
html[data-theme="high-contrast"] .gob-btn--icon,
html[data-theme="high-contrast"] .gob-btn--icon-secondary {
    background-color: #000000 !important;
    color: #FFFF00 !important;
    border: 2px solid #FFFF00 !important;
}

html[data-theme="high-contrast"] .gob-btn--primary:hover,
html[data-theme="high-contrast"] .gob-btn--secondary:hover,
html[data-theme="high-contrast"] .gob-btn--icon:hover,
html[data-theme="high-contrast"] .gob-btn--icon-secondary:hover {
    background-color: #FFFF00 !important;
    color: #000000 !important;
}

html[data-theme="high-contrast"] .gob-btn--tertiary {
    color: #FFFF00 !important;
}

html[data-theme="high-contrast"] .gob-btn--tertiary:hover {
    background-color: #000000 !important;
    color: #00FFFF !important;
}

html[data-theme="high-contrast"] .gob-btn:focus-visible,
html[data-theme="high-contrast"] .gob-link:focus-visible {
    outline: 4px solid #FFBE5C !important;
    outline-offset: 3px !important;
}

html[data-theme="high-contrast"] .gob-link {
    color: #FFFF00 !important;
}

html[data-theme="high-contrast"] .gob-link:hover {
    color: #00FFFF !important;
}

/* --- BANNER INSTITUCIONAL DE MARCHA BLANCA --- */
html.hide-marcha-blanca #marcha-blanca-banner {
    display: none !important;
}

.marcha-blanca-banner {
    background-color: #EBF3FC !important;
    border-bottom: 1px solid #BFDBFE !important;
    color: #0F172A !important;
    font-family: var(--font-body, 'Roboto', sans-serif);
    position: relative;
    z-index: 90;
    width: 100%;
    transition: opacity 0.25s ease, max-height 0.25s ease;
}

.marcha-blanca-container {
    max-width: 1280px;
    margin: 0 auto;
    padding: 9px 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    box-sizing: border-box;
}

.marcha-blanca-content {
    display: flex;
    align-items: center;
    gap: 12px;
    flex: 1;
}

.marcha-blanca-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background-color: #0F69C4 !important;
    color: #FFFFFF !important;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    padding: 3px 10px;
    border-radius: 4px;
    white-space: nowrap;
    flex-shrink: 0;
    line-height: 1.4;
}

.marcha-blanca-text {
    margin: 0 !important;
    font-size: 0.88rem !important;
    line-height: 1.45 !important;
    color: #1E293B !important;
}

.marcha-blanca-text strong {
    font-weight: 700 !important;
    color: #00135A !important;
}

.marcha-blanca-close {
    background: transparent !important;
    border: none !important;
    color: #475569 !important;
    font-size: 1.25rem !important;
    line-height: 1 !important;
    width: 30px !important;
    height: 30px !important;
    border-radius: 4px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    flex-shrink: 0 !important;
    transition: background-color 0.15s ease, color 0.15s ease !important;
    padding: 0 !important;
}

.marcha-blanca-close:hover {
    background-color: rgba(15, 105, 196, 0.12) !important;
    color: #00135A !important;
}

.marcha-blanca-close:focus-visible {
    outline: 2px solid #0F69C4 !important;
    outline-offset: 1px;
}

/* Modo Alto Contraste */
[data-theme="high-contrast"] .marcha-blanca-banner {
    background-color: #000000 !important;
    border-bottom: 2px solid #FFBE5C !important;
    color: #FFFFFF !important;
}

[data-theme="high-contrast"] .marcha-blanca-badge {
    background-color: #FFBE5C !important;
    color: #000000 !important;
    border: 1px solid #FFBE5C !important;
}

[data-theme="high-contrast"] .marcha-blanca-text,
[data-theme="high-contrast"] .marcha-blanca-text strong {
    color: #FFFFFF !important;
}

[data-theme="high-contrast"] .marcha-blanca-close {
    color: #FFBE5C !important;
}

[data-theme="high-contrast"] .marcha-blanca-close:hover {
    background-color: #FFBE5C !important;
    color: #000000 !important;
}

@media (max-width: 768px) {
    .marcha-blanca-container {
        padding: 8px 16px;
        align-items: flex-start;
    }

    .marcha-blanca-content {
        flex-direction: column;
        align-items: flex-start;
        gap: 4px;
    }

    .marcha-blanca-text {
        font-size: 0.82rem !important;
    }
}