:root {
    --kib-a11y-accent: #168a5b;
    --kib-a11y-panel-bg: #ffffff;
    --kib-a11y-panel-text: #17202a;
    --kib-a11y-border: #d8dee6;
    --kib-a11y-edge: 20px;
    --kib-a11y-link-highlight: #ffeb00;
    --kib-a11y-link-highlight-text: #111111;
}

.kib-a11y-sr-only,
.kib-a11y-live {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.kib-a11y-skip-link {
    position: fixed;
    left: 12px;
    top: 12px;
    z-index: 2147483647;
    padding: 12px 16px;
    border-radius: 6px;
    background: #fff;
    color: #111;
    border: 2px solid #111;
    transform: translateY(-180%);
    transition: transform .15s ease;
}
.kib-a11y-skip-link:focus { transform: translateY(0); }

.kib-a11y-widget,
.kib-a11y-widget * { box-sizing: border-box; }

/* El widget se mantiene visualmente aislado de los filtros aplicados al sitio. */
.kib-a11y-widget {
    font-family: Arial, Helvetica, sans-serif;
    line-height: 1.4;
}

.kib-a11y-launcher {
    z-index: 2147483000;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 58px;
    height: 58px;
    min-width: 58px;
    min-height: 58px;
    padding: 0;
    border: 3px solid #fff;
    border-radius: 50%;
    background: var(--kib-a11y-accent);
    color: #fff;
    cursor: pointer;
    box-shadow: 0 0 0 3px var(--kib-a11y-accent), 0 5px 18px rgba(0,0,0,.28);
    appearance: none;
    -webkit-appearance: none;
}

.kib-a11y-is-floating .kib-a11y-launcher { position: fixed; }
.kib-a11y-not-floating .kib-a11y-launcher { position: absolute; }
.kib-a11y-is-draggable .kib-a11y-launcher { touch-action: none; }

.kib-a11y-launcher-svg {
    width: 48px;
    height: 48px;
    display: block;
    color: #fff;
}

/* Cuatro esquinas configurables. */
.kib-a11y-position-top-left .kib-a11y-launcher { top: var(--kib-a11y-edge); left: var(--kib-a11y-edge); }
.kib-a11y-position-top-right .kib-a11y-launcher { top: var(--kib-a11y-edge); right: var(--kib-a11y-edge); }
.kib-a11y-position-bottom-left .kib-a11y-launcher { bottom: var(--kib-a11y-edge); left: var(--kib-a11y-edge); }
.kib-a11y-position-bottom-right .kib-a11y-launcher { bottom: var(--kib-a11y-edge); right: var(--kib-a11y-edge); }

.kib-a11y-panel {
    z-index: 2147483001;
    width: min(390px, calc(100vw - 24px));
    max-height: min(72vh, 620px);
    overflow: auto;
    padding: 18px;
    border: 1px solid var(--kib-a11y-border);
    border-radius: 14px;
    background: var(--kib-a11y-panel-bg);
    color: var(--kib-a11y-panel-text);
    box-shadow: 0 12px 40px rgba(0,0,0,.25);
    font: 400 16px/1.45 Arial, sans-serif;
}
.kib-a11y-panel[hidden] { display: none !important; }
.kib-a11y-is-floating .kib-a11y-panel { position: fixed; }
.kib-a11y-not-floating .kib-a11y-panel { position: absolute; }


/* Evita solaparse con la barra de administración de WordPress. */
body.admin-bar .kib-a11y-position-top-left .kib-a11y-launcher,
body.admin-bar .kib-a11y-position-top-right .kib-a11y-launcher { top: calc(var(--kib-a11y-edge) + 32px); }
body.admin-bar .kib-a11y-position-top-left .kib-a11y-panel,
body.admin-bar .kib-a11y-position-top-right .kib-a11y-panel { top: 124px; }

/* Panel junto a cada esquina cuando el usuario no lo ha arrastrado. */
.kib-a11y-position-bottom-right .kib-a11y-panel { right: var(--kib-a11y-edge); bottom: 92px; }
.kib-a11y-position-bottom-left .kib-a11y-panel { left: var(--kib-a11y-edge); bottom: 92px; }
.kib-a11y-position-top-right .kib-a11y-panel { right: var(--kib-a11y-edge); top: 92px; }
.kib-a11y-position-top-left .kib-a11y-panel { left: var(--kib-a11y-edge); top: 92px; }

.kib-a11y-has-custom-position .kib-a11y-panel {
    right: auto;
    bottom: auto;
}

.kib-a11y-panel-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 8px;
}
.kib-a11y-panel h2 {
    margin: 0;
    color: inherit;
    font: 700 20px/1.25 Arial, sans-serif;
}
.kib-a11y-close {
    width: 44px;
    min-width: 44px;
    height: 44px;
    padding: 0;
    border: 1px solid var(--kib-a11y-border);
    border-radius: 50%;
    background: #fff;
    color: #111;
    font-size: 28px;
    line-height: 1;
    cursor: pointer;
}
.kib-a11y-intro { margin: 0 0 14px; font-size: 14px; }
.kib-a11y-tools {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
}
.kib-a11y-tool {
    min-height: 78px;
    padding: 10px;
    border: 1px solid var(--kib-a11y-border);
    border-radius: 10px;
    background: #fff;
    color: #17202a;
    text-align: center;
    cursor: pointer;
    font: 600 14px/1.3 Arial, sans-serif;
}
.kib-a11y-tool[aria-pressed="true"],
.kib-a11y-tool[data-level]:not([data-level="0"]) {
    border-color: var(--kib-a11y-accent);
    outline: 2px solid rgba(22,138,91,.28);
    background: #f1faf6;
}
.kib-a11y-tool-icon { display:block; margin-bottom:6px; font-size:23px; }
.kib-a11y-state { display:block; min-height: 14px; margin-top:3px; font-size:11px; font-weight:400; }
.kib-a11y-reset {
    width: 100%;
    min-height: 46px;
    margin-top: 14px;
    border: 2px solid var(--kib-a11y-accent);
    border-radius: 9px;
    background: #fff;
    color: var(--kib-a11y-accent);
    font: 700 14px/1.2 Arial, sans-serif;
    cursor: pointer;
}

.kib-a11y-launcher:focus-visible,
.kib-a11y-panel button:focus-visible,
.kib-a11y-skip-link:focus-visible,
body.kib-a11y-enabled a:focus-visible,
body.kib-a11y-enabled input:focus-visible,
body.kib-a11y-enabled select:focus-visible,
body.kib-a11y-enabled textarea:focus-visible {
    outline: 3px solid #ffbf47 !important;
    outline-offset: 3px !important;
}

/* Texto: se aplica al contenido evitando escalar el propio widget. */
html.kib-a11y-text-1 body :where(p,li,dt,dd,blockquote,label,input,select,textarea,button):not(.kib-a11y-widget *) { font-size: 1.08em !important; }
html.kib-a11y-text-2 body :where(p,li,dt,dd,blockquote,label,input,select,textarea,button):not(.kib-a11y-widget *) { font-size: 1.16em !important; }
html.kib-a11y-text-3 body :where(p,li,dt,dd,blockquote,label,input,select,textarea,button):not(.kib-a11y-widget *) { font-size: 1.25em !important; }
html.kib-a11y-line-1 body :not(.kib-a11y-widget *) { line-height: 1.65 !important; }
html.kib-a11y-line-2 body :not(.kib-a11y-widget *) { line-height: 1.85 !important; }
html.kib-a11y-line-3 body :not(.kib-a11y-widget *) { line-height: 2 !important; }
html.kib-a11y-spacing-1 body :not(.kib-a11y-widget *) { letter-spacing: .04em !important; word-spacing: .08em !important; }
html.kib-a11y-spacing-2 body :not(.kib-a11y-widget *) { letter-spacing: .08em !important; word-spacing: .14em !important; }
html.kib-a11y-spacing-3 body :not(.kib-a11y-widget *) { letter-spacing: .12em !important; word-spacing: .2em !important; }
html.kib-a11y-readable-font body :not(.kib-a11y-widget *) { font-family: Arial, Helvetica, sans-serif !important; }

html.kib-a11y-high-contrast { filter: none !important; background:#000 !important; }
html.kib-a11y-high-contrast body,
html.kib-a11y-high-contrast body :not(.kib-a11y-widget *):not(img):not(svg):not(video):not(canvas) {
    background-color: #000 !important;
    color: #fff !important;
    border-color: #fff !important;
    text-shadow: none !important;
    box-shadow: none !important;
}
html.kib-a11y-high-contrast body a:not(.kib-a11y-widget *) { color:#ffff00 !important; text-decoration:underline !important; }

html.kib-a11y-light-contrast body,
html.kib-a11y-light-contrast body :not(.kib-a11y-widget *):not(img):not(svg):not(video):not(canvas) {
    background-color: #fff !important;
    color: #111 !important;
    border-color: #222 !important;
    text-shadow: none !important;
}
html.kib-a11y-light-contrast body a:not(.kib-a11y-widget *) { color:#003399 !important; text-decoration:underline !important; }

html.kib-a11y-grayscale body > *:not(.kib-a11y-widget) { filter: grayscale(1) !important; }
html.kib-a11y-invert body > *:not(.kib-a11y-widget) { filter: invert(1) hue-rotate(180deg) !important; }
html.kib-a11y-invert body img,
html.kib-a11y-invert body video { filter: invert(1) hue-rotate(180deg) !important; }
html.kib-a11y-hide-images body img:not(.kib-a11y-widget img),
html.kib-a11y-hide-images body picture:not(.kib-a11y-widget picture),
html.kib-a11y-hide-images body svg:not(.kib-a11y-widget svg) { visibility:hidden !important; }
/* Resaltado de enlaces: muy visible en contenido, menos invasivo en navegación y botones. */
html.kib-a11y-highlight-links body a:not(.kib-a11y-widget *):not(.button):not([role="button"]):not(.wp-block-button__link):not(.wp-element-button):not(.elementor-button):not(.gb-button):not(.kb-button) {
    background: var(--kib-a11y-link-highlight) !important;
    color: var(--kib-a11y-link-highlight-text) !important;
    text-decoration: underline !important;
    text-decoration-thickness: 3px !important;
    text-decoration-color: currentColor !important;
    text-underline-offset: 3px !important;
    box-decoration-break: clone;
    -webkit-box-decoration-break: clone;
    border-radius: 3px;
    padding: 1px 3px;
}

/* Cabeceras, menús, pies y enlaces con apariencia de botón se marcan sin rellenarlos. */
html.kib-a11y-highlight-links body :where(header, nav, footer) a:not(.kib-a11y-widget *),
html.kib-a11y-highlight-links body a:is(.button, [role="button"], .wp-block-button__link, .wp-element-button, .elementor-button, .gb-button, .kb-button):not(.kib-a11y-widget *) {
    background: transparent !important;
    color: inherit !important;
    outline: 3px solid var(--kib-a11y-link-highlight) !important;
    outline-offset: 2px !important;
    text-decoration: underline !important;
    text-decoration-thickness: 3px !important;
    text-decoration-color: var(--kib-a11y-link-highlight) !important;
    text-underline-offset: 3px !important;
}
html.kib-a11y-stop-motion *,
html.kib-a11y-stop-motion *::before,
html.kib-a11y-stop-motion *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
    scroll-behavior: auto !important;
}

.kib-a11y-reading-guide,
.kib-a11y-mask { display:none; pointer-events:none; position:fixed; left:0; right:0; z-index:2147482500; }
html.kib-a11y-reading-guide-on .kib-a11y-reading-guide {
    display:block;
    height:4px;
    background:#ffbf47;
    box-shadow:0 0 0 2px #111;
    top:50%;
}
html.kib-a11y-reading-mask-on .kib-a11y-mask { display:block; background:rgba(0,0,0,.72); }
html.kib-a11y-reading-mask-on .kib-a11y-mask-top { top:0; height:calc(50% - 45px); }
html.kib-a11y-reading-mask-on .kib-a11y-mask-bottom { bottom:0; height:calc(50% - 45px); }

@media (max-width: 782px) {
    body.admin-bar .kib-a11y-position-top-left .kib-a11y-launcher,
    body.admin-bar .kib-a11y-position-top-right .kib-a11y-launcher { top: calc(var(--kib-a11y-edge) + 46px); }
    body.admin-bar .kib-a11y-position-top-left .kib-a11y-panel,
    body.admin-bar .kib-a11y-position-top-right .kib-a11y-panel { top: 138px; }
}

@media (max-width: 520px) {
    :root { --kib-a11y-edge: 12px; }
    .kib-a11y-launcher {
        width: 54px;
        height: 54px;
        min-width: 54px;
        min-height: 54px;
    }
    .kib-a11y-launcher-svg { width: 44px; height: 44px; }
    .kib-a11y-panel {
        width: calc(100vw - 20px);
        max-height: 72vh;
        padding: 14px;
    }
    .kib-a11y-position-bottom-right .kib-a11y-panel,
    .kib-a11y-position-bottom-left .kib-a11y-panel { bottom: 78px; }
    .kib-a11y-position-top-right .kib-a11y-panel,
    .kib-a11y-position-top-left .kib-a11y-panel { top: 78px; }
}

@media (prefers-reduced-motion: reduce) {
    .kib-a11y-widget *, .kib-a11y-skip-link { transition:none !important; animation:none !important; }
}
