/* ZINFEXX · accesibilidad compartida (la usan todas las páginas; la portada tiene además sus propias reglas). */

/* ---------- Tamaño de letra (la portada usa su propia variable --fs) ---------- */
html[data-fs="lg"]:not([data-zx-home]){font-size:114%}
html[data-fs="xl"]:not([data-zx-home]){font-size:128%}

/* ---------- Menos movimiento ---------- */
html[data-motion="reduce"]{scroll-behavior:auto!important}
html[data-motion="reduce"] *,html[data-motion="reduce"] *::before,html[data-motion="reduce"] *::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}

/* ---------- Más contraste y enlaces subrayados ---------- */
html[data-contrast="more"]:not([data-zx-home]) body{--muted:currentColor}
html[data-contrast="more"]:not([data-zx-home]) *{text-shadow:none!important}
html[data-links="underline"] a:not(.btn):not(.brand){text-decoration:underline!important;text-underline-offset:2px}

/* ---------- Letra más legible ---------- */
html[data-font="readable"]:not([data-zx-home]) body,html[data-font="readable"]:not([data-zx-home]) body *:not(svg):not(svg *){font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Noto Sans",Arial,sans-serif!important;letter-spacing:.02em}

/* ---------- Texto para dislexia: letra sencilla, más espacio entre letras, palabras y líneas, sin cursivas ni justificado ---------- */
html[data-dys] body,html[data-dys] body *:not(svg):not(svg *):not(.em){font-family:Verdana,"Segoe UI",Tahoma,"Noto Sans",Arial,sans-serif!important;font-style:normal!important;letter-spacing:.045em!important;word-spacing:.16em!important}
html[data-dys] body :is(p,li,dd,dt,td,th,label,small,.hint,.lead,blockquote,figcaption,textarea,input){line-height:1.75!important;text-align:start!important}
html[data-dys] body :is(h1,h2,h3,h4){line-height:1.25!important;letter-spacing:.02em!important}
html[data-dys] body :is(p,li,dd){max-width:72ch}

/* ---------- Colores para daltonismo (paleta Okabe-Ito: azul = bien, naranja = cuidado) ---------- */
html[data-cvd]{--ok:#0072B2;--ok-text:#005A8E;--on-ok:#fff;--danger-text:#B34700;--warn:#D55E00;--err:#D55E00;--bad:#D55E00}
html[data-cvd] .cbtn.g{background:#0072B2!important}
html[data-cvd] .cbtn.r{background:#D55E00!important}
html[data-cvd] .btn.ok{background:#0072B2!important;border-color:#0072B2!important;color:#fff!important}
html[data-cvd] .btn.danger{color:#B34700!important;border-color:#D55E00!important}

/* ---------- Menos color (escala de grises) ---------- */
html[data-gray]{filter:grayscale(1)}

/* ---------- Cursor grande ---------- */
html[data-cursor="big"],html[data-cursor="big"] *{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='44' height='44' viewBox='0 0 44 44'%3E%3Cpath d='M6 4l28 16-12 3-6 12z' fill='%23000' stroke='%23fff' stroke-width='2.5' stroke-linejoin='round'/%3E%3C/svg%3E") 6 4,auto!important}
html[data-cursor="big"] :is(a,button,[role="button"],[role="switch"],label,summary,select,.gl-term),html[data-cursor="big"] :is(a,button,[role="button"],label,summary) *{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='44' height='44' viewBox='0 0 44 44'%3E%3Cpath d='M16 4a3 3 0 0 1 3 3v12l2-1a3 3 0 0 1 4 1l1 1a3 3 0 0 1 4 1 3 3 0 0 1 4 2v8c0 5-4 9-9 9h-4c-3 0-5-1-7-4l-6-9a3 3 0 0 1 4-4l2 2V7a3 3 0 0 1 3-3z' fill='%23000' stroke='%23fff' stroke-width='2.5' stroke-linejoin='round'/%3E%3C/svg%3E") 16 4,pointer!important}

/* ---------- Guía de lectura ---------- */
.zx-ruler{position:fixed;inset:0;z-index:2147483000;pointer-events:none;--ry:50vh;--rh:64px}
.zx-ruler i{position:absolute;left:0;right:0;display:block}
.zx-ruler .zx-r-top{top:0;height:max(0px,calc(var(--ry) - var(--rh)/2));background:rgba(10,8,20,.55)}
.zx-ruler .zx-r-band{top:calc(var(--ry) - var(--rh)/2);height:var(--rh);box-shadow:inset 0 2px 0 #FFB020,inset 0 -2px 0 #FFB020}
.zx-ruler .zx-r-bot{top:calc(var(--ry) + var(--rh)/2);bottom:0;background:rgba(10,8,20,.55)}

/* ---------- Leer en voz alta ---------- */
html[data-tts] body :is(p,li,h1,h2,h3,h4,dd,dt,td,.lead,.hint){cursor:pointer}
.zx-reading{outline:3px solid #FFB020!important;outline-offset:3px;border-radius:6px;background:rgba(255,176,32,.12)!important}
.zx-talk{position:fixed;left:50%;bottom:calc(18px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:2147483004;border:0;border-radius:999px;padding:12px 20px;font:700 15px/1.2 system-ui,sans-serif;color:#fff;background:#1A1030;box-shadow:0 12px 30px -8px rgba(0,0,0,.45);cursor:pointer}
.zx-talk[hidden]{display:none}

/* ---------- Botón y panel flotantes (páginas sin panel propio) ---------- */
html.zx-has-fab body{padding-bottom:calc(84px + env(safe-area-inset-bottom))!important}
.zx-fab{position:fixed;left:16px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:2147483002;width:50px;height:50px;border-radius:50%;border:0;display:flex;align-items:center;justify-content:center;color:#fff;background:linear-gradient(135deg,#D6246E,#8E24E6 55%,#3F4BE8);box-shadow:0 12px 28px -8px rgba(80,30,160,.6);cursor:pointer}
.zx-fab svg{width:26px;height:26px}
.zx-fab:focus-visible{outline:3px solid #FFB020;outline-offset:3px}
[dir="rtl"] .zx-fab{left:auto;right:16px}
.zx-panel{position:fixed;left:16px;bottom:calc(76px + env(safe-area-inset-bottom));z-index:2147483003;width:min(340px,calc(100vw - 32px));max-height:calc(100vh - 110px);overflow:auto;padding:16px 16px 12px;border-radius:18px;background:#fff;color:#1A1030;border:1px solid #E5E0F0;box-shadow:0 24px 60px -18px rgba(40,20,90,.5);font:15px/1.4 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
[dir="rtl"] .zx-panel{left:auto;right:16px}
.zx-panel[hidden]{display:none}
.zx-panel h3{margin:0 36px 8px 0;font-size:1.1rem}
.zx-panel .zx-x{position:absolute;top:10px;right:10px;width:32px;height:32px;border-radius:50%;border:1px solid #E5E0F0;background:transparent;color:inherit;cursor:pointer}
.zx-panel .zx-g{margin:12px 0 2px;font-size:.75rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:#6B6382}
.zx-panel .zx-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px solid #F0ECF8}
.zx-panel .zx-sw{flex:none;width:46px;height:26px;border-radius:99px;border:0;background:#CFC8E0;position:relative;cursor:pointer;transition:background .15s}
.zx-panel .zx-sw::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.3);transition:transform .15s}
.zx-panel .zx-sw[aria-checked="true"]{background:#7B2FD9}
.zx-panel .zx-sw[aria-checked="true"]::after{transform:translateX(20px)}
html[data-cvd] .zx-panel .zx-sw[aria-checked="true"]{background:#0072B2}
.zx-panel .zx-seg{display:inline-flex;border:1px solid #E5E0F0;border-radius:10px;overflow:hidden}
.zx-panel .zx-seg button{border:0;background:transparent;color:inherit;padding:6px 10px;font-weight:700;cursor:pointer}
.zx-panel .zx-seg button[aria-pressed="true"]{background:#7B2FD9;color:#fff}
.zx-panel .zx-note{margin:10px 0 6px;font-size:.82rem;color:#6B6382}
.zx-panel .zx-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.zx-panel .zx-reset{border:1px solid #E5E0F0;background:transparent;color:inherit;border-radius:10px;padding:7px 12px;font-weight:700;cursor:pointer}
.zx-panel a{color:#5B21B6;font-weight:700;font-size:.9rem}
.zx-panel button:focus-visible,.zx-panel a:focus-visible{outline:3px solid #FFB020;outline-offset:2px}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .zx-panel{background:#161226;color:#F4F1FF;border-color:#2E2846}:root:not([data-theme="light"]) .zx-panel .zx-row{border-color:#2A2440}:root:not([data-theme="light"]) .zx-panel a{color:#C9A8FF}}
[data-theme="dark"] .zx-panel{background:#161226;color:#F4F1FF;border-color:#2E2846}
[data-theme="dark"] .zx-panel .zx-row{border-color:#2A2440}
[data-theme="dark"] .zx-panel a{color:#C9A8FF}
@media print{.zx-fab,.zx-panel,.zx-ruler,.zx-talk{display:none!important}}
