/* Andananda · accesibilidad del contenido nativo de Divi y WooCommerce.
 * Cargar después de style.css. Mantiene las fuentes y los colores de marca.
 * Las comprobaciones de estructura, nombres y teclado pertenecen al HTML/JS;
 * esta hoja no representa una certificación de conformidad.
 */

/* Salto inicial: solo ocupa espacio visible cuando recibe foco de teclado. */
a.anda-skip-link {
  position: fixed;
  inset-block-start: 8px;
  inset-inline-start: 8px;
  z-index: 100000;
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 12px 20px;
  border: 2px solid #ffffff;
  background: #123c37;
  color: #ffffff;
  font-weight: 700;
  text-decoration: underline;
  transform: translateY(calc(-100% - 24px));
}
a.anda-skip-link:focus {
  transform: none;
  outline: 3px solid #123c37;
  outline-offset: 3px;
  box-shadow: 0 0 0 3px #ffffff;
}

/* Escape oculta el desplegable mientras el foco vuelve a su enlace padre. */
#page-container .anda-divi-header__menu nav.et-menu-nav .menu-item-has-children.anda-menu-dismissed > .sub-menu {
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
}

/* Foco visible también en páginas informativas, cabecera del blog y Mi cuenta.
 * Dos colores conservan la señal sobre superficies claras y verde oscuro.
 * No alcanza la barra de administración ni el editor visual de Divi.
 */
body:not(.et-fb) #page-container :is(a[href], button, input:not([type="hidden"]), select, textarea, [tabindex]):focus-visible,
#moove_gdpr_cookie_info_bar :is(a[href], button, input, [tabindex]):focus-visible,
#moove_gdpr_cookie_modal :is(a[href], button, input, [tabindex]):focus-visible {
  outline: 3px solid #123c37;
  outline-offset: 3px;
  box-shadow: 0 0 0 3px #ffffff;
}

/* El input del interruptor es invisible; el foco se dibuja en su control visual. */
#moove_gdpr_cookie_modal .cookie-switch input:focus-visible + .cookie-slider {
  outline: 3px solid #123c37;
  outline-offset: 3px;
  box-shadow: 0 0 0 3px #ffffff;
}

/* Botones reales del panel: de 42 px a 44 px, sin cambiar sus etiquetas. */
#moove_gdpr_cookie_modal button:is(.mgbutton, .moove-gdpr-tab-nav) {
  min-height: 44px;
}

/* El borde de respaldo #b6c3bb sobre blanco daba 1,82:1.
 * En producción los campos tenían 0 px; se restaura una frontera visible.
 * #62716c alcanza 5,12:1 sobre blanco y 4,83:1 sobre crema.
 * Se preservan las señales de validación y los controles desactivados.
 */
#page-container .et_pb_module:is(.anda-divi-checkout__billing, .anda-divi-checkout__shipping, .anda-divi-checkout__additional) .form-row :is(input.input-text:not(:disabled), textarea:not(:disabled), select:not(:disabled):not(.select2-hidden-accessible), .select2-selection--single) {
  border-width: 1px;
  border-style: solid;
}
#page-container .et_pb_module:is(.anda-divi-checkout__billing, .anda-divi-checkout__shipping, .anda-divi-checkout__additional) .form-row:not(.woocommerce-invalid):not(.woocommerce-validated) :is(input.input-text:not(:disabled), textarea:not(:disabled), select:not(:disabled):not(.select2-hidden-accessible), .select2-selection--single) {
  border-color: #62716c;
}
#page-container .et_pb_module:is(.anda-divi-checkout__billing, .anda-divi-checkout__shipping, .anda-divi-checkout__additional) :is(.select2-selection--single, .select2-selection__rendered) {
  color: #123c37;
}

/* Cantidad de la ficha: #999 sobre #eee daba 2,46:1.
 * Mantiene el campo nativo, sus flechas y su fondo claro.
 */
#page-container .et_pb_module:is(.anda-divi-product__buy, .anda-divi-cart__products) input.input-text.qty:not(:disabled) {
  color: #123c37;
}

/* Campos de cantidad y cupón observados en el carrito, sin reemplazar su HTML. */
#page-container .anda-divi-cart__products :is(input.input-text.qty, input#coupon_code):not(:disabled) {
  color: #123c37;
  border-color: #62716c;
}

/* Acción de borrar observada en su celda propia de la tabla WooCommerce. */
#page-container .anda-divi-cart__products td.product-remove {
  min-width: 44px;
}
#page-container .anda-divi-cart__products a.remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  min-width: 44px;
  min-height: 44px;
}

/* Paginación observada: el azul de Divi sobre crema no alcanzaba 4,5:1.
 * Objetivos cómodos de 44 px; la cantidad de páginas permanece en WooCommerce.
 */
#page-container .anda-divi-products a.page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  color: #0a5d58;
}

/* Woo recorta el anillo de foco en cada LI; conserva visible su contorno.
 * La geometría, los bordes y el estado actual siguen perteneciendo al catálogo.
 */
#page-container .anda-divi-products nav.woocommerce-pagination ul li {
  overflow: visible;
}

/* Página actual: conserva su semántica de texto, sin añadirle foco ni acción.
 * Unifica la altura con los enlaces vecinos y mejora el contraste de la cifra.
 */
#page-container .anda-divi-products span.page-numbers.current {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  background-color: #faf8f3;
  color: #123c37;
}

/* Los enlaces dentro del texto se reconocen sin depender solo del color.
 * Las acciones Woo y los botones nativos conservan su presentación.
 */
#page-container .et_pb_text .et_pb_text_inner :is(p, li) a:not(.button):not(.et_pb_button) {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: .2em;
}

/* Nombres largos de producto conservan su texto a 320 px y al ampliar fuente. */
#page-container .anda-divi-product__title :is(h1, .product_title, .et_pb_module_header),
#page-container .anda-divi-products .woocommerce-loop-product__title,
#page-container .anda-divi-product__related .woocommerce-loop-product__title {
  overflow-wrap: anywhere;
}

/* Respeta la preferencia del dispositivo también en el botón del nuevo hero.
 * No altera los spinners esenciales de actualización o pago.
 */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  #page-container .et_pb_module:is(.anda-divi-shop-hero__explore, .anda-divi-blog__featured, .anda-divi-blog__grid) :is(a, .et_pb_post) {
    transition: none;
  }
  #page-container .anda-divi-shop-hero__explore .et_pb_button:hover,
  #page-container .anda-divi-blog__grid .et_pb_post:hover {
    transform: none;
  }
}

/* Windows de alto contraste conserva un indicador gestionado por el sistema. */
@media (forced-colors: active) {
  body:not(.et-fb) #page-container :is(a[href], button, input:not([type="hidden"]), select, textarea, [tabindex]):focus-visible,
  #moove_gdpr_cookie_info_bar :is(a[href], button, input, [tabindex]):focus-visible,
#moove_gdpr_cookie_modal :is(a[href], button, input, [tabindex]):focus-visible {
    outline: 3px solid Highlight;
    box-shadow: none;
  }
  a.anda-skip-link:focus,
  #moove_gdpr_cookie_modal .cookie-switch input:focus-visible + .cookie-slider {
    outline: 3px solid Highlight;
    box-shadow: none;
  }
}
