/**
 * SOLΞ Accessibility Standard — portable CSS
 * Light chrome by default (Hub parity). Page scale via body zoom on classic themes;
 * Divi/Elementor use typography scale only (data-solx-builder) to preserve layout.
 */

@font-face {
  font-family: 'OpenDyslexic';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('./fonts/opendyslexic-latin-400.woff2') format('woff2');
}

@font-face {
  font-family: 'OpenDyslexic';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('./fonts/opendyslexic-latin-700.woff2') format('woff2');
}

:root {
  --solx-a11y-surface: #ffffff;
  --solx-a11y-surface-2: #f1f5f9;
  --solx-a11y-white: #0f172a;
  --solx-a11y-muted: #64748b;
  --solx-a11y-line: rgba(15, 23, 42, 0.14);
  --solx-a11y-amber: #d97706;
  --solx-font-scale: 1;
  --solx-font-family: Figtree, system-ui, sans-serif;
}

/* Hide accessibility FAB while editing in Divi VB / Elementor */
body.et-fb .solx-a11y-mount,
body.et-fb .solx-a11y-root,
body.et-fb .solx-a11y-fab,
body.et_fb .solx-a11y-mount,
html.et-fb-preview .solx-a11y-mount,
body.elementor-editor-active .solx-a11y-mount,
body.elementor-editor-active .solx-a11y-root,
body.elementor-editor-active .solx-a11y-fab,
body.elementor-editor-preview .solx-a11y-mount {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

/* Chrome must stay optically constant when body { zoom } is applied */
.solx-a11y-root,
.solx-a11y-panel {
  font-size: 16px !important;
  line-height: 1.4;
  -webkit-text-size-adjust: 100%;
}

.solx-a11y-root {
  position: fixed;
  /* Margen configurable del botón (evita pisar menús móviles). Var la fija el estado
     del usuario (fabOffset) o el host vía data-offset; por defecto 20px. */
  right: var(--solx-fab-offset, 16px);
  top: 50%;
  transform: translateY(-50%);
  z-index: 99999;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 7.2px;
  font-family: Figtree, system-ui, sans-serif;
  color: var(--solex-white, var(--solx-a11y-white));
}

.solx-a11y-fab {
  width: var(--solx-fab-size, 56px);
  height: var(--solx-fab-size, 56px);
  border-radius: 50%;
  border: 2px solid var(--solx-fab-fg, var(--solex-amber, var(--solx-a11y-amber)));
  background: var(--solx-fab-bg, var(--solex-surface, var(--solx-a11y-surface)));
  color: var(--solx-fab-fg, var(--solex-amber, var(--solx-a11y-amber)));
  font-size: 14px !important;
  font-weight: 700;
  cursor: pointer;
  box-shadow: 0 4px 18px rgba(15, 23, 42, 0.12);
  overflow: hidden;
  line-height: 1;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

.solx-a11y-fab svg {
  width: 1.45em;
  height: 1.45em;
  display: block;
  flex-shrink: 0;
}

.solx-a11y-fab--isa svg,
.solx-a11y-fab--universal svg,
.solx-a11y-fab--highvis svg {
  width: 62%;
  height: 62%;
}

.solx-a11y-fab__label {
  font-size: 13px !important;
  font-weight: 700;
  letter-spacing: .01em;
  white-space: nowrap;
}

.solx-a11y-fab--eaa {
  width: auto;
  height: auto;
  min-height: var(--solx-fab-size, 56px);
  padding: 8px 14px;
  border-radius: 999px;
}

.solx-a11y-fab--tab {
  width: auto;
  height: auto;
  min-height: var(--solx-fab-size, 56px);
  padding: 10px 12px;
  border-radius: 14px 0 0 14px;
}

.solx-a11y-fab--isa,
.solx-a11y-fab--universal,
.solx-a11y-fab--highvis,
.solx-a11y-fab--menu {
  padding: 0;
  overflow: hidden;
  background: #111;
  border: 0;
}

.solx-a11y-fab--custom {
  padding: 10%;
  overflow: hidden;
  border: 2px solid #fff;
  background: var(--solx-fab-bg, #002B5B);
  box-sizing: border-box;
}

.solx-a11y-fab--isa .solx-a11y-fab__img,
.solx-a11y-fab--universal .solx-a11y-fab__img,
.solx-a11y-fab--highvis .solx-a11y-fab__img,
.solx-a11y-fab--menu .solx-a11y-fab__img,
.solx-a11y-fab--custom .solx-a11y-fab__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.solx-a11y-fab--custom .solx-a11y-fab__img {
  object-fit: contain;
}

/* Botón de voz independiente: altavoz + micrófono, con acento propio para
   distinguirlo del menú visual de accesibilidad. */
.solx-a11y-fab--voice {
  background: var(--solx-fab-bg, var(--solex-amber, var(--solx-a11y-amber)));
  color: var(--solx-fab-fg, #ffffff);
  border-color: rgba(0, 0, 0, 0.12);
}

.solx-a11y-fab--voice svg {
  width: 58%;
  height: 58%;
}

/* Variantes del botón de voz (juego propio, paralelo al de accesibilidad). */
.solx-a11y-fab--voice-mic,
.solx-a11y-fab--voice-speak,
.solx-a11y-fab--voice-wave {
  padding: 0;
}

.solx-a11y-fab--voice-pill {
  width: auto;
  height: auto;
  min-height: var(--solx-fab-size, 56px);
  padding: 8px 16px;
  border-radius: 999px;
}
.solx-a11y-fab--voice-pill svg {
  width: 1.35em;
  height: 1.35em;
}

.solx-a11y-fab--voice-custom {
  padding: 10%;
  overflow: hidden;
  border: 2px solid #fff;
  background: var(--solx-fab-bg, var(--solex-amber, var(--solx-a11y-amber)));
  box-sizing: border-box;
}
.solx-a11y-fab--voice-custom .solx-a11y-fab__img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

.solx-a11y-mount[data-position="bottom"] .solx-a11y-root,
.solx-a11y-mount[data-position="bottom-right"] .solx-a11y-root {
  top: auto;
  bottom: calc(var(--solx-fab-offset, 20px) + var(--solx-fab-stack, 0px));
  right: var(--solx-fab-offset, 20px);
  left: auto;
  transform: none;
}

.solx-a11y-mount[data-position="bottom-left"] .solx-a11y-root {
  top: auto;
  bottom: calc(var(--solx-fab-offset, 20px) + var(--solx-fab-stack, 0px));
  left: var(--solx-fab-offset, 20px);
  right: auto;
  transform: none;
}

.solx-a11y-mount[data-position="top"] .solx-a11y-root,
.solx-a11y-mount[data-position="top-right"] .solx-a11y-root {
  top: calc(var(--solx-fab-offset, 20px) + var(--solx-fab-stack, 0px));
  bottom: auto;
  right: var(--solx-fab-offset, 20px);
  left: auto;
  transform: none;
}

.solx-a11y-mount[data-position="top-left"] .solx-a11y-root {
  top: calc(var(--solx-fab-offset, 20px) + var(--solx-fab-stack, 0px));
  bottom: auto;
  left: var(--solx-fab-offset, 20px);
  right: auto;
  transform: none;
}

.solx-a11y-mount[data-position="middle-right"] .solx-a11y-root,
.solx-a11y-mount[data-position="right"] .solx-a11y-root {
  top: 50%;
  bottom: auto;
  right: var(--solx-fab-offset, 16px);
  left: auto;
  transform: translateY(-50%);
}

.solx-a11y-mount[data-position="middle-left"] .solx-a11y-root,
.solx-a11y-mount[data-position="left"] .solx-a11y-root {
  top: 50%;
  bottom: auto;
  left: var(--solx-fab-offset, 16px);
  right: auto;
  transform: translateY(-50%);
  align-items: flex-start;
}

.solx-a11y-mount[data-position="left"] .solx-a11y-fab--tab,
.solx-a11y-mount[data-position="middle-left"] .solx-a11y-fab--tab,
.solx-a11y-mount[data-position="top-left"] .solx-a11y-fab--tab,
.solx-a11y-mount[data-position="bottom-left"] .solx-a11y-fab--tab {
  border-radius: 0 14px 14px 0;
}

.solx-a11y-mount[data-position="left"] .solx-a11y-panel,
.solx-a11y-mount[data-position="middle-left"] .solx-a11y-panel,
.solx-a11y-mount[data-position="top-left"] .solx-a11y-panel,
.solx-a11y-mount[data-position="bottom-left"] .solx-a11y-panel {
  left: 80px;
  right: auto;
}

.solx-a11y-mount[data-position="right"] .solx-a11y-root {
  /* legacy alias handled above with middle-right */
}

.solx-a11y-root--tab {
  right: 0;
}

.solx-a11y-mount[data-position="left"] .solx-a11y-root--tab,
.solx-a11y-mount[data-position="middle-left"] .solx-a11y-root--tab,
.solx-a11y-mount[data-position="top-left"] .solx-a11y-root--tab,
.solx-a11y-mount[data-position="bottom-left"] .solx-a11y-root--tab {
  left: 0;
  right: auto;
}

.solx-a11y-mount[data-position="bottom"] .solx-a11y-panel,
.solx-a11y-mount[data-position="bottom-right"] .solx-a11y-panel,
.solx-a11y-mount[data-position="bottom-left"] .solx-a11y-panel {
  top: auto;
  bottom: 20px;
  transform: none;
}

.solx-a11y-mount[data-position="top"] .solx-a11y-panel,
.solx-a11y-mount[data-position="top-right"] .solx-a11y-panel,
.solx-a11y-mount[data-position="top-left"] .solx-a11y-panel {
  top: 20px;
  bottom: auto;
  transform: none;
}

.solx-a11y-root--eaa .solx-a11y-panel,
.solx-a11y-root--tab .solx-a11y-panel {
  right: 16px;
}

.solx-a11y-mount[data-position="left"] .solx-a11y-root--eaa .solx-a11y-panel,
.solx-a11y-mount[data-position="left"] .solx-a11y-root--tab .solx-a11y-panel,
.solx-a11y-mount[data-position="middle-left"] .solx-a11y-root--eaa .solx-a11y-panel,
.solx-a11y-mount[data-position="middle-left"] .solx-a11y-root--tab .solx-a11y-panel,
.solx-a11y-mount[data-position="top-left"] .solx-a11y-root--eaa .solx-a11y-panel,
.solx-a11y-mount[data-position="top-left"] .solx-a11y-root--tab .solx-a11y-panel,
.solx-a11y-mount[data-position="bottom-left"] .solx-a11y-root--eaa .solx-a11y-panel,
.solx-a11y-mount[data-position="bottom-left"] .solx-a11y-root--tab .solx-a11y-panel {
  left: 16px;
  right: auto;
}

.solx-a11y-fab:focus-visible {
  outline: 3px solid var(--solex-amber, var(--solx-a11y-amber));
  outline-offset: 3px;
}

.solx-a11y-quick {
  /* Fuera del flujo: si la barra rápida participa en el layout del contenedor
     (columna flex centrada), su altura (~254px) desplaza el FAB ~127px por
     debajo del centro real de la ventana. Absoluta → el contenedor mide solo el
     FAB y `top:50% + translateY(-50%)` lo centra. Dispara igual al hover/focus. */
  position: absolute;
  right: 0;
  bottom: calc(100% + 7.2px);
  display: flex;
  flex-direction: column;
  gap: 5.6px;
  opacity: 0;
  pointer-events: none;
  transform: translateX(8px);
  transition: opacity 0.15s ease, transform 0.15s ease;
}

.solx-a11y-quick.is-open,
.solx-a11y-root:not(.is-panel-open):hover .solx-a11y-quick,
.solx-a11y-root:not(.is-panel-open):focus-within .solx-a11y-quick {
  opacity: 1;
  pointer-events: auto;
  transform: none;
}

/* Con el panel abierto la barra rápida se oculta y deja de capturar el ratón,
   para no tapar el menú principal del sitio. */
.solx-a11y-root.is-panel-open .solx-a11y-quick {
  opacity: 0 !important;
  pointer-events: none !important;
  transform: translateX(8px) !important;
}

.solx-a11y-quick__btn {
  min-width: 44px;
  height: 36px;
  border-radius: 10px;
  border: 1px solid var(--solex-line, var(--solx-a11y-line));
  background: var(--solex-surface, var(--solx-a11y-surface));
  color: var(--solex-white, var(--solx-a11y-white));
  font-weight: 700;
  font-size: 13px !important;
  cursor: pointer;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.08);
}

.solx-a11y-quick__btn:focus-visible {
  outline: 3px solid var(--solex-amber, var(--solx-a11y-amber));
  outline-offset: 2px;
}

/* Grupo de voz de la barra rápida (leer / pausa / stop): en fila y alineado.
   Sin esto los tres botones quedaban sueltos y desalineados. */
.solx-a11y-quick__voice {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: center;
  align-items: center;
  gap: 5.6px;
  padding: 4px;
  border: 1px solid var(--solex-line, var(--solx-a11y-line));
  border-radius: 10px;
  background: var(--solex-surface-2, var(--solx-a11y-surface-2));
}

.solx-a11y-quick__voice .solx-a11y-quick__btn {
  width: 36px;
  min-width: 36px;
  height: 36px;
  padding: 0;
  font-size: 15px !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.solx-a11y-quick__voice .solx-a11y-quick__btn.is-active {
  border-color: var(--solex-amber, var(--solx-a11y-amber));
  background: var(--solex-amber, var(--solx-a11y-amber));
  color: #fff;
}

/* Acciones rápidas dentro del panel (A+/A−/tema/contraste/engranaje): visibles
   también en modo anclado footer/menu/inline, donde la barra flotante
   .solx-a11y-quick se oculta por diseño.
   Una sola fila, siempre. Con flex-wrap:wrap el engranaje caía a una segunda
   línea (y el overflow:hidden del contenedor lo ocultaba) en cuanto el panel
   estrechaba por la barra de scroll vertical: clientWidth del panel 318→303px,
   la fila quedaba en 247px y los cinco botones de 44px con gaps de 8px
   necesitaban 252px. Medido en Chromium con el panel real. */
.solx-a11y-inlinequick .solx-a11y-actions {
  display: flex;
  gap: 6px;
  flex-wrap: nowrap;
}

/* El selector lleva el prefijo de la fila para ganar en cascada a
   `.solx-a11y-btn { flex: 0 0 auto }`, declarado más abajo: con `0 1 auto` los
   botones no cedían ancho y la fila desbordaba (y el engranaje se iba). */
.solx-a11y-inlinequick .solx-a11y-btn--quick {
  flex: 1 1 0;
  min-width: 0;
  height: 40px;
  font-size: 16px !important;
  font-weight: 700;
  justify-content: center;
}

/* Rueda dentada «Más opciones»: misma caja que el resto de la fila rápida, pero
   marcada como navegación (borde discontinuo) para que no parezca un ajuste más
   que cambia el aspecto al pulsarlo. En la fila del panel reparte ancho como los
   demás (el `flex: 1 1 0` de arriba ya la cubre). */
.solx-a11y-btn--more,
.solx-a11y-quick__btn--more {
  border-style: dashed;
  opacity: 0.92;
}

.solx-a11y-panel {
  position: fixed;
  right: 80px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 99999;
  width: min(320px, calc(100vw - 100px));
  max-width: calc(100vw - 32px);
  max-height: min(70vh, 520px);
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  background: var(--solex-surface, var(--solx-a11y-surface));
  color: var(--solex-white, var(--solx-a11y-white));
  border: 1px solid var(--solex-line, var(--solx-a11y-line));
  border-radius: 14px;
  padding: 16px;
  box-shadow: 0 12px 40px rgba(15, 23, 42, 0.14);
  box-sizing: border-box;
}

.solx-a11y-panel *,
.solx-a11y-panel *::before,
.solx-a11y-panel *::after {
  box-sizing: border-box;
}

.solx-a11y-panel h2 {
  margin: 0 0 12px;
  font-size: 18px !important;
  color: inherit;
}

/* Cabecera con «X» de cierre. El panel es largo y desplazable (el de voz pasa
   de 900px con «Más opciones» abierto), así que la X va fija arriba con
   position:sticky: si no, al bajar se marcharía con el contenido y volveríamos
   al problema del botón «Cerrar» del pie, que quedaba fuera de vista.
   El panel tiene 16px de padding, de ahí el -16px para que el fondo pegado
   cubra el borde superior al hacer scroll. */
.solx-a11y-panel__head {
  position: sticky;
  top: -16px;
  z-index: 2;
  display: flex;
  align-items: flex-start;
  /* flex-end, no space-between: el panel de voz no tiene título, y con un solo
     hijo space-between lo pegaría a la izquierda. */
  justify-content: flex-end;
  gap: 8px;
  margin: -16px -16px 0;
  padding: 16px 16px 4px;
  background: var(--solex-surface, var(--solx-a11y-surface));
  border-radius: 14px 14px 0 0;
}

.solx-a11y-panel__headtext {
  min-width: 0;
  flex: 1 1 auto;
}

.solx-a11y-panel__head h2 {
  margin: 0 0 4px;
}

.solx-a11y-panel__sub {
  margin: 0 0 12px;
  font-size: 0.8rem;
  color: var(--solex-muted, var(--solx-a11y-muted));
}

.solx-a11y-panel__close {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  margin: -2px -2px 0 0;
  padding: 0;
  border: 1px solid transparent;
  border-radius: 8px;
  background: transparent;
  color: inherit;
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
  opacity: 0.65;
}

.solx-a11y-panel__close:hover {
  opacity: 1;
  border-color: var(--solex-line, var(--solx-a11y-line));
}

.solx-a11y-panel__close:focus-visible {
  outline: 3px solid var(--solex-amber, var(--solx-a11y-amber));
  outline-offset: 2px;
  opacity: 1;
}

.solx-a11y-panel fieldset {
  border: 1px solid var(--solex-line, var(--solx-a11y-line));
  border-radius: 12px;
  margin: 0 0 12px;
  padding: 11.2px;
  background: var(--solex-surface-2, var(--solx-a11y-surface-2));
  min-width: 0;
  display: block;
  float: none;
  width: 100%;
  max-width: 100%;
}

/* Section titles live inside the rounded fieldset (no <legend> — themes push those out) */
.solx-a11y-panel .solx-a11y-section-title {
  display: block !important;
  float: none !important;
  position: static !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  margin: 0 0 8.8px !important;
  padding: 6.4px 10.4px !important;
  border-radius: 8px !important;
  border: 1px solid var(--solex-line, var(--solx-a11y-line)) !important;
  background: var(--solex-surface, var(--solx-a11y-surface)) !important;
  color: var(--solex-white, var(--solx-a11y-white)) !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  line-height: 1.3 !important;
  letter-spacing: 0.01em;
  opacity: 1 !important;
  transform: none !important;
  clip: auto !important;
  clip-path: none !important;
  height: auto !important;
  overflow: visible !important;
}

.solx-a11y-panel label {
  display: flex;
  align-items: center;
  gap: 7.2px;
  font-size: 14px !important;
  margin: 4px 0;
  cursor: pointer;
  color: inherit;
  max-width: 100%;
}

.solx-a11y-panel label small {
  display: block;
  margin-top: 1.6px;
  color: var(--solex-muted, var(--solx-a11y-muted));
  font-size: 11px !important;
  font-weight: 400;
}

.solx-a11y-preset {
  align-items: flex-start !important;
}

.solx-a11y-choice {
  align-items: flex-start !important;
}

.solx-a11y-preset span {
  display: flex;
  flex-direction: column;
  gap: 2.4px;
  min-width: 0;
}

.solx-a11y-preset small {
  color: var(--solex-muted, var(--solx-a11y-muted));
  font-size: 11px !important;
  font-weight: 400;
}

.solx-a11y-advanced {
  margin: 8px 0 12px;
}

.solx-a11y-advanced summary {
  cursor: pointer;
  font-weight: 600;
  margin-bottom: 8px;
  color: inherit;
  font-size: 14px !important;
}

.solx-a11y-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5.6px;
  border: 1px solid var(--solex-line, var(--solx-a11y-line));
  background: var(--solex-surface, var(--solx-a11y-surface));
  color: inherit;
  border-radius: 10px;
  padding: 6.4px 11.2px;
  font-size: 13px !important;
  font-family: inherit;
  cursor: pointer;
  flex: 0 0 auto;
}

.solx-a11y-btn:hover {
  border-color: var(--solex-amber, var(--solx-a11y-amber));
}

.solx-a11y-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  max-width: 100%;
  overflow: hidden;
  position: relative;
}

/* Voz (Web Speech API) */
.solx-a11y-select {
  flex: 1 1 160px;
  min-width: 0;
  padding: 6.4px 8.8px;
  border: 1px solid var(--solx-a11y-line);
  border-radius: 8px;
  background: var(--solx-a11y-surface);
  color: inherit;
  font: inherit;
}
.solx-a11y-range {
  flex: 1 1 120px;
  min-width: 0;
  accent-color: var(--solex-amber, var(--solx-a11y-amber));
}

.solx-a11y-voice-hint {
  margin: 0 0 8px;
  font-size: 11.52px;
  line-height: 1.35;
  color: var(--solex-muted, var(--solx-a11y-muted));
}
.solx-a11y-voice-status {
  margin: 8px 0 0;
  font-size: 11.52px;
  min-height: 1em;
  color: var(--solex-muted, var(--solx-a11y-muted));
}
.solx-a11y-voice-mic { font-weight: 700; }
.solx-a11y-voice-mic.is-listening,
.solx-a11y-qa-mic.is-listening {
  border-color: #dc2626;
  color: #dc2626;
  animation: solx-a11y-pulse 1.1s ease-in-out infinite;
}
@keyframes solx-a11y-pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(220, 38, 38, 0.55); }
  50% { box-shadow: 0 0 0 6px rgba(220, 38, 38, 0); }
}
@media (prefers-reduced-motion: reduce) {
  .solx-a11y-voice-mic.is-listening,
  .solx-a11y-qa-mic.is-listening { animation: none; }
}

.solx-a11y-qa-status {
  margin: 8px 0 0;
  font-size: 14.4px;
  min-height: 1em;
  color: var(--solex-muted, var(--solx-a11y-muted));
}

/* —— Mando tipo cassette (Play / Pause / Stop) ——
   Botones grandes, redondos, alineados en fila, con estado activo/bloqueado.
   Reemplaza los botones sueltos desalineados que se veían antes. */
.solx-a11y-deck {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9.6px;
  margin: 5.6px 0 9.6px;
  padding: 8px;
  border: 1px solid var(--solex-line, var(--solx-a11y-line));
  border-radius: 14px;
  background: var(--solex-surface-2, var(--solx-a11y-surface-2));
}

.solx-a11y-deck__btn {
  width: 54px;
  height: 54px;
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 1px solid var(--solex-line, var(--solx-a11y-line));
  border-radius: 12px;
  background: var(--solex-surface, var(--solx-a11y-surface));
  color: var(--solex-white, var(--solx-a11y-white));
  font-size: 22px !important;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.1);
  transition: transform 0.08s ease, border-color 0.12s ease, background 0.12s ease;
}

.solx-a11y-deck__btn:hover:not(:disabled) {
  border-color: var(--solex-amber, var(--solx-a11y-amber));
}

.solx-a11y-deck__btn:active:not(:disabled) {
  transform: translateY(1px);
}

.solx-a11y-deck__btn.is-active {
  border-color: var(--solex-amber, var(--solx-a11y-amber));
  background: var(--solex-amber, var(--solx-a11y-amber));
  color: #fff;
}

.solx-a11y-deck__btn:disabled {
  opacity: 0.42;
  cursor: default;
}

.solx-a11y-deck__btn:focus-visible {
  outline: 3px solid var(--solex-amber, var(--solx-a11y-amber));
  outline-offset: 2px;
}

/* —— “Más opciones”: bloque plegable que agrupa el panel avanzado —— */
.solx-a11y-more {
  margin: 8px 0 12px;
}

.solx-a11y-more > summary {
  cursor: pointer;
  font-weight: 700;
  font-size: 14px !important;
  padding: 8px 10.4px;
  border: 1px solid var(--solex-line, var(--solx-a11y-line));
  border-radius: 10px;
  background: var(--solex-surface-2, var(--solx-a11y-surface-2));
  color: inherit;
  list-style: none;
}

.solx-a11y-more > summary::-webkit-details-marker {
  display: none;
}

.solx-a11y-more > summary::before {
  content: '\25B8';
  display: inline-block;
  margin-right: 6.4px;
  transition: transform 0.15s ease;
}

.solx-a11y-more[open] > summary::before {
  transform: rotate(90deg);
}

.solx-a11y-advanced__head {
  font-weight: 700;
  font-size: 13px !important;
  margin: 8px 0;
  color: inherit;
}

/* Buscar en la web por voz (botón de voz independiente) */
.solx-a11y-search {
  border-top: 1px solid var(--solx-a11y-line);
  margin-top: 12px;
  padding-top: 12px;
}

.solx-a11y-search-row {
  display: flex;
  align-items: center;
  gap: 6.4px;
}

.solx-a11y-search-input {
  flex: 1 1 auto;
  min-width: 0;
  padding: 8px 9.6px;
  border: 1px solid var(--solx-a11y-line);
  border-radius: 8px;
  background: var(--solx-a11y-surface);
  color: inherit;
  font: inherit;
}

.solx-a11y-search-input:focus-visible,
.solx-a11y-search-go:focus-visible,
.solx-a11y-search-mic:focus-visible {
  outline: 3px solid var(--solex-amber, var(--solx-a11y-amber));
  outline-offset: 2px;
}

.solx-a11y-search-mic {
  flex: 0 0 auto;
  min-width: 44px;
}

.solx-a11y-search-go {
  flex: 0 0 auto;
}

/* —— Tonos sutiles de sección (equidad visual del panel) ——
   Azul = Escuchar 🎧 (lectura en voz alta) · Verde = Hablar 🗣️ (dictar búsqueda).
   Sólo un filete y un lavado de color: nada que compita con el contenido ni que
   rompa el alto contraste (que neutraliza el acento más abajo). */
.solx-a11y-tone {
  --solx-tone: var(--solx-a11y-line);
  --solx-tone-wash: transparent;
  border-color: var(--solx-tone) !important;
}

.solx-a11y-tone--listen {
  --solx-tone: #3b82f6;
  --solx-tone-wash: rgba(59, 130, 246, 0.08);
}

.solx-a11y-tone--speak {
  --solx-tone: #16a34a;
  --solx-tone-wash: rgba(22, 163, 74, 0.08);
}

.solx-a11y-tone > .solx-a11y-section-title {
  border-left: 3px solid var(--solx-tone) !important;
  background: var(--solx-tone-wash) !important;
}

/* El bloque de búsqueda, cuando vive dentro de su propia tarjeta, ya no lleva
   el filete superior: el borde lo pone la tarjeta (evita la doble línea). */
.solx-a11y-search--plain {
  border-top: none;
  margin-top: 0;
  padding-top: 0;
}

.solx-a11y-qa-results {
  margin: 6.4px 0 0;
  padding-left: 17.6px;
  font-size: 16px;
  line-height: 1.55;
}

.solx-a11y-qa-results li + li {
  margin-top: 5.6px;
}

.solx-a11y-qa-results a {
  color: inherit;
  text-decoration: underline;
  font-size: 16px;
}

/* Never paint native file-picker chrome / “No file selected” */
.solx-a11y-file,
input.solx-a11y-file[type='file'] {
  display: none !important;
  position: absolute !important;
  width: 0 !important;
  height: 0 !important;
  opacity: 0 !important;
  pointer-events: none !important;
  visibility: hidden !important;
}

/* —— Page font force (themes / Elementor / Doctor often use !important) —— */
html[data-solx-font] body,
html[data-solx-font] body p,
html[data-solx-font] body li,
html[data-solx-font] body h1,
html[data-solx-font] body h2,
html[data-solx-font] body h3,
html[data-solx-font] body h4,
html[data-solx-font] body h5,
html[data-solx-font] body h6,
html[data-solx-font] body a,
html[data-solx-font] body button,
html[data-solx-font] body input,
html[data-solx-font] body textarea,
html[data-solx-font] body select,
html[data-solx-font] .entry-content,
html[data-solx-font] .entry-content p,
html[data-solx-font] .wp-block-post-content,
html[data-solx-font] .site-main,
html[data-solx-font] .site-content,
html[data-solx-font] main,
html[data-solx-font] article,
html[data-solx-font] .elementor-widget-text-editor,
html[data-solx-font] .elementor-text-editor,
html[data-solx-font] .elementor-widget-container,
html[data-solx-font] .elementor-heading-title,
html[data-solx-font] .wpb_text_column,
html[data-solx-font] .wpb_wrapper {
  font-family: var(--solx-font-family) !important;
}

html[data-solx-font='opendyslexic'] body,
html[data-solx-font='opendyslexic'] body p,
html[data-solx-font='opendyslexic'] body li,
html[data-solx-font='opendyslexic'] body h1,
html[data-solx-font='opendyslexic'] body h2,
html[data-solx-font='opendyslexic'] body h3,
html[data-solx-font='opendyslexic'] .elementor-heading-title,
html[data-solx-font='opendyslexic'] .elementor-widget-text-editor {
  font-family: OpenDyslexic, 'Comic Sans MS', sans-serif !important;
  letter-spacing: 0.03em;
  word-spacing: 0.08em;
}

/* Page builders: undo global font force only when an A11y font preset is active */
html[data-solx-builder-safe='true'][data-solx-font] body,
html[data-solx-builder-safe='true'][data-solx-font] body p,
html[data-solx-builder-safe='true'][data-solx-font] body li,
html[data-solx-builder-safe='true'][data-solx-font] body h1,
html[data-solx-builder-safe='true'][data-solx-font] body h2,
html[data-solx-builder-safe='true'][data-solx-font] body h3,
html[data-solx-builder-safe='true'][data-solx-font] body h4,
html[data-solx-builder-safe='true'][data-solx-font] body h5,
html[data-solx-builder-safe='true'][data-solx-font] body h6,
html[data-solx-builder-safe='true'][data-solx-font] body a,
html[data-solx-builder-safe='true'][data-solx-font] body button,
html[data-solx-builder-safe='true'][data-solx-font] body input,
html[data-solx-builder-safe='true'][data-solx-font] body .et_pb_module,
html[data-solx-builder-safe='true'][data-solx-font] body .elementor-widget-wrap {
  font-family: inherit !important;
  letter-spacing: inherit !important;
  word-spacing: inherit !important;
  line-height: inherit !important;
}

html[data-solx-builder='divi'][data-solx-font] .et_pb_text_inner,
html[data-solx-builder='divi'][data-solx-font] .et_pb_blurb_description,
html[data-solx-builder='divi'][data-solx-font] .et_pb_toggle_content,
html[data-solx-builder='divi'][data-solx-font] .et_pb_slide_content,
html[data-solx-builder='divi'][data-solx-font] .et_pb_testimonial_description,
html[data-solx-builder='divi'][data-solx-font] .et_pb_post_content,
html[data-solx-builder='divi'][data-solx-font] .et_pb_tab_content,
html[data-solx-builder='elementor'][data-solx-font] .elementor-widget-text-editor,
html[data-solx-builder='elementor'][data-solx-font] .elementor-widget-container p {
  font-family: var(--solx-font-family) !important;
}

html[data-solx-builder='divi'][data-solx-font='opendyslexic'] .et_pb_text_inner,
html[data-solx-builder='divi'][data-solx-font='opendyslexic'] .et_pb_blurb_description,
html[data-solx-builder='elementor'][data-solx-font='opendyslexic'] .elementor-widget-text-editor {
  font-family: OpenDyslexic, 'Comic Sans MS', sans-serif !important;
  letter-spacing: 0.03em;
  word-spacing: 0.08em;
  line-height: 1.65 !important;
}

/* Firefox rem fallback when zoom unsupported */
html[data-solx-font-scaled='true'] .entry-content,
html[data-solx-font-scaled='true'] .entry-content p,
html[data-solx-font-scaled='true'] .entry-content li,
html[data-solx-font-scaled='true'] .wp-block-post-content,
html[data-solx-font-scaled='true'] .wp-block-post-content p,
html[data-solx-font-scaled='true'] .wp-block-post-content li,
html[data-solx-font-scaled='true'] .site-main,
html[data-solx-font-scaled='true'] .site-main p,
html[data-solx-font-scaled='true'] .site-content,
html[data-solx-font-scaled='true'] .site-content p,
html[data-solx-font-scaled='true'] main p,
html[data-solx-font-scaled='true'] article p,
html[data-solx-font-scaled='true'] .elementor-widget-text-editor,
html[data-solx-font-scaled='true'] .elementor-text-editor,
html[data-solx-font-scaled='true'] .elementor-widget-container p,
html[data-solx-font-scaled='true'] .elementor-heading-title {
  font-size: 16px !important;
}

html[data-solx-theme='dark'] {
  --solx-a11y-surface: #0f172a;
  --solx-a11y-surface-2: #1e293b;
  --solx-a11y-white: #f8fafc;
  --solx-a11y-muted: #94a3b8;
  --solx-a11y-line: rgba(148, 163, 184, 0.35);
  --solx-a11y-amber: #fbbf24;
  color-scheme: dark;
}

/*
 * Site-wide Dark: invert body only (NOT html).
 * Filter on <html> breaks position:fixed for the A11y FAB (jumps to page bottom).
 * A11y mount lives under <html> as sibling of <body>, so it stays viewport-fixed.
 */
html[data-solx-theme='dark']:not([data-solx-contrast='true']) body {
  filter: invert(1) hue-rotate(180deg);
  background: #0b1220 !important;
}

html[data-solx-theme='dark']:not([data-solx-contrast='true']) body img,
html[data-solx-theme='dark']:not([data-solx-contrast='true']) body video,
html[data-solx-theme='dark']:not([data-solx-contrast='true']) body picture,
html[data-solx-theme='dark']:not([data-solx-contrast='true']) body iframe,
html[data-solx-theme='dark']:not([data-solx-contrast='true']) body svg image {
  filter: invert(1) hue-rotate(180deg);
}

html[data-solx-contrast='true'] {
  --solex-surface: #000;
  --solex-surface-2: #111;
  --solex-white: #fff;
  --solex-muted: #ddd;
  --solex-line: #fff;
  --solex-amber: #ffe066;
  --solx-a11y-surface: #000;
  --solx-a11y-surface-2: #111;
  --solx-a11y-white: #fff;
  --solx-a11y-muted: #ddd;
  --solx-a11y-line: #fff;
  --solx-a11y-amber: #ffe066;
  background: #000 !important;
  color: #fff !important;
  color-scheme: dark;
  filter: none !important;
}

html[data-solx-contrast='true'] body {
  background: #000 !important;
  color: #fff !important;
  filter: none !important;
}

/* High Contrast: force readable black/white on common WP/builder surfaces */
html[data-solx-contrast='true'] body,
html[data-solx-contrast='true'] body .site,
html[data-solx-contrast='true'] body .site-content,
html[data-solx-contrast='true'] body .site-main,
html[data-solx-contrast='true'] body main,
html[data-solx-contrast='true'] body article,
html[data-solx-contrast='true'] body .entry-content,
html[data-solx-contrast='true'] body .wp-site-blocks,
html[data-solx-contrast='true'] body .elementor,
html[data-solx-contrast='true'] body .elementor-section,
html[data-solx-contrast='true'] body .elementor-container,
html[data-solx-contrast='true'] body .elementor-column,
html[data-solx-contrast='true'] body .elementor-widget-wrap,
html[data-solx-contrast='true'] body .elementor-element,
html[data-solx-contrast='true'] body .wpb_row,
html[data-solx-contrast='true'] body .wpb_column,
html[data-solx-contrast='true'] body .vc_row,
html[data-solx-contrast='true'] body .vc_column_container {
  background-color: #000 !important;
  background-image: none !important;
  color: #fff !important;
  border-color: #fff !important;
  box-shadow: none !important;
  text-shadow: none !important;
}

html[data-solx-contrast='true'] body p,
html[data-solx-contrast='true'] body li,
html[data-solx-contrast='true'] body h1,
html[data-solx-contrast='true'] body h2,
html[data-solx-contrast='true'] body h3,
html[data-solx-contrast='true'] body h4,
html[data-solx-contrast='true'] body h5,
html[data-solx-contrast='true'] body h6,
html[data-solx-contrast='true'] body span,
html[data-solx-contrast='true'] body .elementor-heading-title,
html[data-solx-contrast='true'] body .elementor-widget-text-editor {
  color: #fff !important;
  background-color: transparent !important;
}

html[data-solx-contrast='true'] body a {
  color: #ffe066 !important;
  text-decoration: underline !important;
}

html[data-solx-contrast='true'] body button,
html[data-solx-contrast='true'] body .button,
html[data-solx-contrast='true'] body input,
html[data-solx-contrast='true'] body select,
html[data-solx-contrast='true'] body textarea {
  background: #000 !important;
  color: #fff !important;
  border: 2px solid #fff !important;
}

/* Keep A11y chrome readable under contrast without inheriting page noise */
html[data-solx-contrast='true'] #solx-accessibility-root,
html[data-solx-contrast='true'] [data-solx-a11y-root],
html[data-solx-contrast='true'] .solx-a11y-panel,
html[data-solx-contrast='true'] .solx-a11y-root {
  filter: none !important;
  color: #fff !important;
}

/* Alto contraste: el acento azul/verde es decorativo. Con negro/blanco puro no
   aporta y puede bajar el contraste del borde, así que se neutraliza. */
html[data-solx-contrast='true'] .solx-a11y-tone {
  --solx-tone: #fff;
  --solx-tone-wash: transparent;
}
html[data-solx-contrast='true'] .solx-a11y-tone > .solx-a11y-section-title {
  border-left-color: #fff !important;
}

html[data-solx-motion='reduce'] *,
html[data-solx-motion='reduce'] *::before,
html[data-solx-motion='reduce'] *::after {
  animation: none !important;
  transition: none !important;
  animation-duration: 0.01ms !important;
  animation-iteration-count: 1 !important;
  transition-duration: 0.01ms !important;
  scroll-behavior: auto !important;
}

/* Builder themes: never layout-zoom body (breaks full-width sections) */
html[data-solx-builder='divi'] body,
html[data-solx-builder='elementor'] body {
  zoom: 1 !important;
}

/* Divi: scale text modules only (Firefox / no-zoom fallback — skip when page-container zoom is active) */
html[data-solx-builder='divi'][data-solx-font-scaled='true']:not([data-solx-builder-zoom='true']) .et_pb_text_inner,
html[data-solx-builder='divi'][data-solx-font-scaled='true']:not([data-solx-builder-zoom='true']) .et_pb_text_inner p,
html[data-solx-builder='divi'][data-solx-font-scaled='true']:not([data-solx-builder-zoom='true']) .et_pb_text_inner li,
html[data-solx-builder='divi'][data-solx-font-scaled='true']:not([data-solx-builder-zoom='true']) .et_pb_text_inner a,
html[data-solx-builder='divi'][data-solx-font-scaled='true']:not([data-solx-builder-zoom='true']) .et_pb_module_header,
html[data-solx-builder='divi'][data-solx-font-scaled='true']:not([data-solx-builder-zoom='true']) .et_pb_blurb_description,
html[data-solx-builder='divi'][data-solx-font-scaled='true']:not([data-solx-builder-zoom='true']) .et_pb_toggle_content,
html[data-solx-builder='divi'][data-solx-font-scaled='true']:not([data-solx-builder-zoom='true']) .et_pb_toggle_content p,
html[data-solx-builder='divi'][data-solx-font-scaled='true']:not([data-solx-builder-zoom='true']) .et_pb_slide_content,
html[data-solx-builder='divi'][data-solx-font-scaled='true']:not([data-solx-builder-zoom='true']) .et_pb_testimonial_description,
html[data-solx-builder='divi'][data-solx-font-scaled='true']:not([data-solx-builder-zoom='true']) .et_pb_post_content,
html[data-solx-builder='divi'][data-solx-font-scaled='true']:not([data-solx-builder-zoom='true']) .et_pb_tab_content,
html[data-solx-builder='divi'][data-solx-font-scaled='true']:not([data-solx-builder-zoom='true']) .et_pb_blurb_description p {
  font-size: calc(1em * var(--solx-font-scale)) !important;
}

/* Elementor: scale text widgets only (no-zoom fallback) */
html[data-solx-builder='elementor'][data-solx-font-scaled='true']:not([data-solx-builder-zoom='true']) .elementor-widget-text-editor,
html[data-solx-builder='elementor'][data-solx-font-scaled='true']:not([data-solx-builder-zoom='true']) .elementor-heading-title,
html[data-solx-builder='elementor'][data-solx-font-scaled='true']:not([data-solx-builder-zoom='true']) .elementor-widget-container p {
  font-size: calc(1em * var(--solx-font-scale)) !important;
}

/* Reading Mode layout (articles only — disabled on builder pages via data-solx-reading-layout) */
html[data-solx-reading-layout='true'] body {
  letter-spacing: 0.03em;
  word-spacing: 0.06em;
  line-height: 1.75 !important;
}

html[data-solx-reading-layout='true'] .entry-content,
html[data-solx-reading-layout='true'] .wp-block-post-content,
html[data-solx-reading-layout='true'] article:not(.et_pb_post) p,
html[data-solx-reading-layout='true'] article:not(.et_pb_post) li {
  max-width: 672px;
  line-height: 1.75 !important;
}

html[data-solx-reading-layout='true'] .sx-main__context {
  display: none;
}

/* Focus Mode: stronger keyboard focus (independent of Reading) */
html[data-solx-focus='strong'] :focus,
html[data-solx-focus='strong'] :focus-visible {
  outline: 3px solid var(--solex-amber, var(--solx-a11y-amber)) !important;
  outline-offset: 3px !important;
}

html[data-solx-focus='strong'] a:focus,
html[data-solx-focus='strong'] button:focus,
html[data-solx-focus='strong'] input:focus,
html[data-solx-focus='strong'] select:focus,
html[data-solx-focus='strong'] textarea:focus,
html[data-solx-focus='strong'] summary:focus {
  box-shadow: 0 0 0 3px rgba(217, 119, 6, 0.35) !important;
}

.solx-a11y-skip,
.swnv-skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 100000;
  padding: 12px 16px;
  background: #000;
  color: #fff;
}

.solx-a11y-skip:focus,
.swnv-skip-link:focus {
  left: 16px;
  top: 16px;
}

/* ---------------------------------------------------------------------------
   Modo anclado (shortcodes [swnv_accessibility] / [swnv_accessibility_voice] con
   anchor="menu|footer|inline"): el botón vive en el flujo del layout en lugar de
   flotar, ideal para menús del tema, pies o contenido. El botón sigue siendo
   redondo pero compacto; el panel se abre en posición absoluta junto a él.
   Lo envolvente es `.solx-a11y-root` (la raíz del widget oculto queda display:contents).
   --------------------------------------------------------------------------- */
.solx-a11y-mount[data-solx-a11y-anchor="menu"],
.solx-a11y-mount[data-solx-a11y-anchor="footer"],
.solx-a11y-mount[data-solx-a11y-anchor="inline"] {
  display: contents;
}

.solx-a11y-mount[data-solx-a11y-anchor="menu"] + *,
.solx-a11y-mount[data-solx-a11y-anchor="footer"] + * {
  vertical-align: middle;
}

/* La raíz anclada debe ganar a las reglas de posición flotante
   (.solx-a11y-mount[data-position=…] .solx-a11y-root), de ahí la especificidad. */
.solx-a11y-mount[data-solx-a11y-anchor="menu"] .solx-a11y-root.solx-a11y-root--anchored,
.solx-a11y-mount[data-solx-a11y-anchor="footer"] .solx-a11y-root.solx-a11y-root--anchored,
.solx-a11y-mount[data-solx-a11y-anchor="inline"] .solx-a11y-root.solx-a11y-root--anchored {
  position: relative;
  top: auto;
  right: auto;
  bottom: auto;
  left: auto;
  transform: none;
  z-index: 1000;
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  gap: 6.4px;
}

.solx-a11y-mount[data-solx-a11y-anchor="menu"] .solx-a11y-root.solx-a11y-root--anchored .solx-a11y-fab,
.solx-a11y-mount[data-solx-a11y-anchor="footer"] .solx-a11y-root.solx-a11y-root--anchored .solx-a11y-fab,
.solx-a11y-mount[data-solx-a11y-anchor="inline"] .solx-a11y-root.solx-a11y-root--anchored .solx-a11y-fab {
  box-shadow: none;
}

/* Popover de acciones rápidas en modo anclado (shortcode footer/menu/inline):
   se despliega al pasar el cursor o enfocar el botón. Posición absoluta para no
   alterar el flujo del tema; el layout se ancla en .solx-a11y-root (relative). */
.solx-a11y-mount[data-solx-a11y-anchor="menu"] .solx-a11y-root.solx-a11y-root--anchored .solx-a11y-quick,
.solx-a11y-mount[data-solx-a11y-anchor="footer"] .solx-a11y-root.solx-a11y-root--anchored .solx-a11y-quick,
.solx-a11y-mount[data-solx-a11y-anchor="inline"] .solx-a11y-root.solx-a11y-root--anchored .solx-a11y-quick {
  position: absolute;
  right: 0;
  left: auto;
  bottom: calc(100% + 8px);
  top: auto;
  z-index: 100000;
  flex-direction: column;
  gap: 5.6px;
  padding: 5.6px;
  border-radius: 12px;
  background: var(--solex-surface, var(--solx-a11y-surface));
  border: 1px solid var(--solex-line, var(--solx-a11y-line));
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.22);
  opacity: 0;
  pointer-events: none;
  transform: translateY(6px);
  transition: opacity 0.15s ease, transform 0.15s ease;
}

.solx-a11y-mount[data-solx-a11y-anchor="menu"] .solx-a11y-root.solx-a11y-root--anchored .solx-a11y-quick.is-open,
.solx-a11y-mount[data-solx-a11y-anchor="footer"] .solx-a11y-root.solx-a11y-root--anchored .solx-a11y-quick.is-open,
.solx-a11y-mount[data-solx-a11y-anchor="inline"] .solx-a11y-root.solx-a11y-root--anchored .solx-a11y-quick.is-open {
  opacity: 1;
  pointer-events: auto;
  transform: none;
}

.solx-a11y-mount[data-solx-a11y-anchor="menu"] .solx-a11y-root.solx-a11y-root--anchored .solx-a11y-panel,
.solx-a11y-mount[data-solx-a11y-anchor="footer"] .solx-a11y-root.solx-a11y-root--anchored .solx-a11y-panel,
.solx-a11y-mount[data-solx-a11y-anchor="inline"] .solx-a11y-root.solx-a11y-root--anchored .solx-a11y-panel {
  /* Fijo y siempre visible: un menú o pie suele tener overflow:hidden y no
     queremos que recorte el panel ni que se salga de la pantalla al anclar a la
     derecha. Se centra abajo, por encima del borde inferior. */
  position: fixed;
  left: 50%;
  right: auto;
  top: auto;
  bottom: 16px;
  transform: translateX(-50%);
  width: min(360px, calc(100vw - 32px));
  max-height: min(72vh, 560px);
  z-index: 100000;
}

@media (max-width: 720px) {
  /* Especificidad: las reglas por posición (`.solx-a11y-mount[data-position=…]
     .solx-a11y-root`, 0,3,0) ganan a un `.solx-a11y-root` pelado (0,1,0), así que
     en móvil el FAB no se anclaba abajo. Igualamos con `[data-position]`. */
  .solx-a11y-mount[data-position] .solx-a11y-root {
    top: auto;
    bottom: 20px;
    transform: none;
  }
  /* Barra rápida a fila: al ser absoluta, se sitúa encima del FAB (no debajo). */
  .solx-a11y-mount[data-position] .solx-a11y-quick {
    right: 0;
    bottom: calc(100% + 7.2px);
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: flex-end;
    max-width: 200px;
  }
  .solx-a11y-panel {
    right: 16px;
    bottom: 88px;
    top: auto;
    transform: none;
    width: calc(100vw - 32px);
  }
}
