/* =====================================================================
   AK Community — Sistema de diseño · PUENTE DE PLUGINS
   Astra, Elementor (kit global #41), WooCommerce (+ Subscriptions),
   formularios, SliceWP y la pantalla de acceso de WordPress.

   Estrategia: el CSS de terceros está en la capa «vendor» (ver
   includes/ak-diseno.php), así que estas reglas ganan sin !important.
   Siempre que el plugin expone variables, se mapean a tokens en vez de
   repetir estilos.
   ===================================================================== */
@layer plugins {

  /* ---------------------------------------------------------------
     1. ASTRA
     --------------------------------------------------------------- */
  /* Paleta global de Astra (Personalizar → Colores globales) → tokens.
     Si alguien usa «color global 1…9» en un bloque, sigue el modo. */
  :root, [data-theme] {
    --ast-global-color-0: var(--primary);
    --ast-global-color-1: var(--primary-hover);
    --ast-global-color-2: var(--text);
    --ast-global-color-3: var(--text-2);
    --ast-global-color-4: var(--bg);
    --ast-global-color-5: var(--surface);
    --ast-global-color-6: var(--accent);
    --ast-global-color-7: var(--border);
    --ast-global-color-8: var(--surface-2);
    --ast-border-color: var(--border);
  }
  body, button, input, select, textarea, .ast-button, .ast-custom-button { font-family: var(--font-text); }
  .entry-title, .page-title { font-family: var(--font-display); color: var(--text); }
  .entry-content, .entry-content p, .ast-single-post .entry-content { color: var(--text-2); }
  .entry-meta, .entry-meta * { color: var(--text-muted); }
  .site-content, #primary, #secondary { background: transparent; }
  .ast-separate-container .ast-article-single,
  .ast-separate-container .ast-article-post,
  .ast-separate-container .comments-area .comments-title,
  .ast-separate-container .comment-respond,
  .ast-separate-container .ast-comment-list li,
  .ast-separate-container .ast-archive-description,
  .ast-separate-container .ast-author-box,
  .ast-plain-container, .ast-page-builder-template,
  .ast-separate-container .comments-area .comment-respond,
  .ast-separate-container .site-main > .ast-row {
    background-color: transparent;
  }
  .ast-separate-container .ast-article-single, .ast-separate-container .ast-article-post {
    background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-md);
  }
  .ast-button, .button, .wp-block-button__link, .ast-custom-button {
    background: var(--primary); color: var(--on-primary); border-color: var(--primary);
    border-radius: var(--radius-pill); font-weight: var(--weight-black);
  }
  .ast-button:hover, .button:hover, .wp-block-button__link:hover { background: var(--primary-hover); color: var(--on-primary); }
  /* Páginas del tema a ancho completo: Astra no debe encajonarlas */
  .ak-plantilla #content > .ast-container,
  .ak-plantilla .site-content > .ast-container { max-width: none; padding: 0; display: block; }
  .ak-plantilla #primary { margin: 0; padding: 0; width: 100%; }
  .ak-diseno .site-content { min-height: 40vh; }
  .ak-diseno.elementor-page:not(.ak-plantilla) #content { padding-top: var(--space-6); }
  /* 404 y búsqueda de Astra */
  .error-404 .page-content, .no-results .page-content { color: var(--text-2); }
  .ast-404-search .search-form, .search-form { display: flex; gap: var(--space-2); }
  .search-form .search-field { flex: 1; min-width: 0; }
  /* Astra mete el campo y el botón-icono dentro del <label> y repite un submit «Buscar»: se deja solo el icono (tiene aria-label) — fase 6 */
  .search-form > label { display: flex; flex: 1; gap: var(--space-2); min-width: 0; margin: 0; }
  .search-form > input[type="submit"].search-submit { display: none; }
  .search-form .ast-search-submit { display: inline-grid; place-items: center; flex: none; width: 46px; padding: 0; }
  .search-form .ast-search-submit i, .search-form .ast-search-submit .ast-icon { display: inline-grid; place-items: center; width: 20px; height: 20px; color: inherit; line-height: 0; font-style: normal; }
  .search-form .ast-search-submit svg { width: 18px; height: 18px; fill: currentColor; color: inherit; }
  .search-form .ast-search-submit svg path { fill: currentColor; }
  /* Tienda online (página Elementor #2910): su contenedor de productos traía fondo oscuro fijo (#161B25CC) — fase 6 */
  .e-con:has(> .e-con-inner > .elementor-widget-woocommerce-products), .e-con:has(> .elementor-widget-woocommerce-products) {
    --background-color: var(--surface-2); background-color: var(--surface-2); border: 1px solid var(--border); border-radius: var(--radius-lg);
  }
  /* Cabecera de las direcciones de Mi cuenta / pedido (Astra: fondo #fbfbfb fijo) — fase 6 */
  .woocommerce .woocommerce-Address-title, .woocommerce .woocommerce-column__title,
  .woocommerce-account .woocommerce-Address-title, .woocommerce-account .woocommerce-column__title {
    background: var(--surface-2); border-color: var(--border); color: var(--text); padding: var(--space-3) var(--space-4); border-radius: var(--radius-sm) var(--radius-sm) 0 0;
  }
  .woocommerce-Address-title h2, .woocommerce-Address-title h3, .woocommerce-column__title { color: var(--text); font-size: var(--step-1); margin: 0; }
  .woocommerce-Address-title .edit { color: var(--link); }
  .search-form .search-submit, .ast-search-submit {
    background: var(--primary); color: var(--on-primary); border: 0; border-radius: var(--radius-pill);
    padding: 0 20px; min-height: 46px; font-weight: var(--weight-black);
  }
  /* Contenido de blog con fondos claros fijos: isla clara también en modo oscuro */
  .ak-isla-clara { padding: var(--space-5); border-radius: var(--radius-md); border: 1px solid var(--border); }
  .ak-seccion-oscura { padding: var(--space-6) var(--space-5); border-radius: var(--radius-lg); }
  /* Botón «volver arriba» de Astra */
  #ast-scroll-top { background: var(--primary); color: var(--on-primary); border-radius: 50%; }
  /* Comentarios */
  .comments-area, .comment-respond { color: var(--text-2); }
  .comment-reply-title, .comments-title { font-family: var(--font-display); color: var(--text); }
  .ast-comment-list .ast-comment-meta, .comment-meta, .comment-meta a { color: var(--text-muted); }
  .comment-content { color: var(--text-2); }
  .form-submit .submit, #submit {
    background: var(--primary); color: var(--on-primary); border: 0; border-radius: var(--radius-pill);
    padding: 12px 24px; font-weight: var(--weight-black);
  }

  /* ---------------------------------------------------------------
     2. ELEMENTOR · kit global #41 → tokens
     Los colores/tipografías globales del kit se resuelven con los
     tokens del modo activo. El kit en BD conserva sus valores (sirven
     de vista previa en el editor), pero en la web mandan estos.
     --------------------------------------------------------------- */
  .elementor-kit-41, [data-theme] {
    --e-global-color-primary: var(--text);
    --e-global-color-secondary: var(--text-2);
    --e-global-color-text: var(--text-2);
    --e-global-color-accent: var(--accent-text);
    --e-global-typography-primary-font-family: "Fraunces";
    --e-global-typography-primary-font-weight: 600;
    --e-global-typography-secondary-font-family: "Nunito Sans";
    --e-global-typography-secondary-font-weight: 700;
    --e-global-typography-text-font-family: "Nunito Sans";
    --e-global-typography-text-font-weight: 400;
    --e-global-typography-accent-font-family: "Nunito Sans";
    --e-global-typography-accent-font-weight: 800;
  }
  .elementor-lightbox { background-color: var(--overlay); --lightbox-ui-color: var(--on-primary); --lightbox-text-color: #fff; }
  /* Títulos de Elementor: el sitio anterior era oscuro y muchos widgets llevan
     color blanco fijo; aquí siguen el modo activo. (Precio: el color por widget
     del editor deja de aplicarse en los títulos.) */
  .elementor-widget-heading .elementor-heading-title { font-family: var(--font-display); color: var(--text); }
  .elementor-widget-text-editor { color: var(--text-2); }
  .elementor-widget-shortcode h2 { font-size: var(--step-2); margin-top: var(--space-6); }

  /* ---------------------------------------------------------------
     3. WOOCOMMERCE (tienda, ficha, carrito, checkout, Mi cuenta)
     Todo en sans; superficies y bordes con tokens.
     --------------------------------------------------------------- */
  .woocommerce, .woocommerce-page { color: var(--text-2); font-family: var(--font-text); }
  .woocommerce h1, .woocommerce h2, .woocommerce-page h1, .woocommerce-page h2 { color: var(--text); }
  .woocommerce h3, .woocommerce-page h3, .woocommerce .product_title { font-family: var(--font-text); color: var(--text); }
  .woocommerce .product_title { font-family: var(--font-display); }
  :where(.woocommerce) a:not(.button):not(.ak-btn) { color: var(--link); }

  /* Botones Woo */
  .woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
  .woocommerce #respond input#submit, .woocommerce-page a.button, .woocommerce-page button.button,
  .woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt,
  .woocommerce .wc-block-components-button, .wc-block-components-button:not(.is-link) {
    background-color: var(--primary); color: var(--on-primary); border: 0;
    border-radius: var(--radius-pill); font-family: var(--font-text); font-weight: var(--weight-black);
    padding: 12px 22px; line-height: 1.2; text-shadow: none; box-shadow: none;
  }
  .woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover,
  .woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover, .wc-block-components-button:not(.is-link):hover {
    background-color: var(--primary-hover); color: var(--on-primary);
  }
  .woocommerce button.button:disabled, .woocommerce button.button:disabled[disabled] { background-color: var(--border); color: var(--text-muted); }
  #place_order { width: 100%; min-height: 54px; font-size: var(--step-0); }

  /* Avisos */
  .woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-notice, .wc-block-components-notice-banner {
    background: var(--surface); color: var(--text); border: 1px solid var(--border);
    border-left: 4px solid var(--info); border-radius: var(--radius-sm); box-shadow: var(--shadow-1);
    padding: var(--space-4) var(--space-5) var(--space-4) 3.2em;
  }
  .woocommerce-message { border-left-color: var(--success); }
  .woocommerce-error { border-left-color: var(--danger); }
  .woocommerce-message::before, .woocommerce-info::before { color: var(--info); top: 1.05em; left: 1.1em; }
  .woocommerce-message::before { color: var(--success); }
  .woocommerce-error::before { color: var(--danger); }
  .woocommerce-message .button, .woocommerce-info .button { float: none; margin-left: var(--space-3); }

  /* Tienda y ficha */
  .woocommerce ul.products li.product, .woocommerce-page ul.products li.product {
    background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-md);
    padding: var(--space-4); box-shadow: var(--shadow-1); text-align: left;
  }
  .woocommerce ul.products li.product .woocommerce-loop-product__title { font-family: var(--font-text); font-size: var(--step-0); color: var(--text); font-weight: var(--weight-black); }
  .woocommerce ul.products li.product img { border-radius: var(--radius-sm); }
  .woocommerce ul.products li.product .price, .woocommerce div.product p.price, .woocommerce div.product span.price {
    color: var(--text); font-family: var(--font-mono); font-weight: 500;
  }
  .woocommerce ul.products li.product .price del, .woocommerce div.product p.price del { color: var(--text-muted); opacity: 1; }
  .woocommerce ul.products li.product .price ins, .woocommerce div.product p.price ins { text-decoration: none; color: var(--text); }
  .woocommerce span.onsale {
    background: var(--accent); color: var(--on-accent); border-radius: var(--radius-pill);
    min-height: 0; min-width: 0; line-height: 1.3; padding: 4px 10px; font-size: var(--step--2); font-weight: var(--weight-black);
  }
  .woocommerce div.product .woocommerce-tabs ul.tabs li { background: var(--surface-2); border-color: var(--border); border-radius: var(--radius-sm) var(--radius-sm) 0 0; }
  .woocommerce div.product .woocommerce-tabs ul.tabs li.active { background: var(--surface); }
  .woocommerce div.product .woocommerce-tabs ul.tabs li a { color: var(--text); }
  .woocommerce div.product .woocommerce-tabs .panel { color: var(--text-2); }
  .woocommerce .quantity .qty { min-height: 46px; }

  /* Tablas (carrito, pedidos, suscripciones) */
  .woocommerce table.shop_table, .woocommerce-page table.shop_table {
    background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-md);
    border-collapse: separate; overflow: hidden; color: var(--text-2);
  }
  .woocommerce table.shop_table th { background: var(--surface-2); color: var(--text); font-weight: var(--weight-black); }
  .woocommerce table.shop_table td, .woocommerce table.shop_table th { border-color: var(--border); }
  .woocommerce .cart-collaterals .cart_totals > h2, .woocommerce-account .woocommerce-column__title,
  .woocommerce-checkout .woocommerce-column__title { background: transparent; color: var(--text); font-family: var(--font-text); font-size: var(--step-1); }
  .woocommerce small, .woocommerce .first-payment-date small, .woocommerce .subscription-details { color: var(--text-muted); }
  .woocommerce-cart .cart-collaterals .cart_totals, .woocommerce .cart-collaterals .cart_totals {
    background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-md); padding: var(--space-5);
  }

  /* Checkout */
  .woocommerce form .form-row label, .woocommerce-page form .form-row label { color: var(--text); font-weight: var(--weight-bold); font-size: var(--step--1); }
  .woocommerce form .form-row .required { color: var(--danger); }
  .woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select,
  .woocommerce-page form .form-row input.input-text, .select2-container .select2-selection--single {
    background-color: var(--surface); color: var(--text); border: 1.5px solid var(--border-strong);
    border-radius: var(--radius-sm); min-height: 46px; padding: 10px 14px;
  }
  .select2-container--default .select2-selection--single .select2-selection__rendered { color: var(--text); line-height: 24px; padding-left: 0; }
  .select2-container--default .select2-selection--single .select2-selection__arrow { height: 44px; }
  .select2-dropdown { background: var(--surface); color: var(--text); border-color: var(--border-strong); }
  .select2-container--default .select2-results__option--highlighted[aria-selected] { background: var(--primary); color: var(--on-primary); }
  .woocommerce-checkout #customer_details, .woocommerce-checkout-review-order,
  .woocommerce form.checkout_coupon, .woocommerce form.login, .woocommerce form.register, .woocommerce form.lost_reset_password {
    background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-md); padding: var(--space-5); color: var(--text-2);
  }
  #order_review_heading, .woocommerce-billing-fields h3, .woocommerce-additional-fields h3 { font-family: var(--font-text); font-size: var(--step-1); color: var(--text); }
  .woocommerce-checkout #payment, .woocommerce-checkout #payment ul.payment_methods {
    background: var(--surface-2); border-radius: var(--radius-md); border-color: var(--border); color: var(--text-2);
  }
  .woocommerce-checkout #payment div.payment_box { background: var(--surface); color: var(--text-2); border-radius: var(--radius-sm); }
  .woocommerce-checkout #payment div.payment_box::before { border-bottom-color: var(--surface); }
  .woocommerce-checkout #payment ul.payment_methods li label { color: var(--text); }
  .woocommerce-privacy-policy-text, .woocommerce-terms-and-conditions-wrapper { color: var(--text-muted); font-size: var(--step--1); }

  /* Mi cuenta: navegación lateral en escritorio, píldoras en móvil */
  .woocommerce-account .woocommerce { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: var(--space-6); align-items: start; }
  .woocommerce-account .woocommerce::before, .woocommerce-account .woocommerce::after { display: none; } /* clearfix de Woo: sobra en la rejilla */
  .woocommerce-account .woocommerce > .woocommerce-notices-wrapper,
  .woocommerce-account:not(.logged-in) .woocommerce > * { grid-column: 1 / -1; }
  .woocommerce-account .woocommerce-MyAccount-navigation,
  .woocommerce-account .woocommerce-MyAccount-content { float: none; width: auto; margin: 0; }
  .woocommerce-MyAccount-navigation ul {
    list-style: none; margin: 0; padding: var(--space-2);
    background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-md); box-shadow: var(--shadow-1);
  }
  .woocommerce-MyAccount-navigation li { margin: 0; border: 0; }
  .woocommerce-MyAccount-navigation li a {
    display: block; padding: 10px 14px; border-radius: var(--radius-sm);
    color: var(--text-2); font-weight: var(--weight-bold); text-decoration: none; background: transparent;
  }
  .woocommerce-MyAccount-navigation li a:hover { background: var(--surface-2); color: var(--text); }
  .woocommerce-MyAccount-navigation li.is-active a { background: var(--info-bg); color: var(--text); box-shadow: inset 3px 0 0 var(--primary); }
  .woocommerce-MyAccount-content {
    background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-md);
    padding: var(--space-6); color: var(--text-2); min-width: 0;
  }
  .woocommerce-MyAccount-content mark { background: var(--accent-soft); color: var(--text); }
  .woocommerce-Addresses .woocommerce-Address, .woocommerce .addresses .address { background: var(--surface-2); border-radius: var(--radius-sm); padding: var(--space-4); }
  .woocommerce-account .woocommerce-form-login, .woocommerce-account .woocommerce-form-register { max-width: 520px; }
  @media (max-width: 860px) {
    .woocommerce-account .woocommerce { grid-template-columns: 1fr; }
    .woocommerce-MyAccount-navigation ul { display: flex; flex-wrap: wrap; gap: 6px; background: transparent; border: 0; box-shadow: none; padding: 0; }
    .woocommerce-MyAccount-navigation li a { border: 1px solid var(--border); border-radius: var(--radius-pill); background: var(--surface); padding: 7px 14px; font-size: var(--step--1); }
    .woocommerce-MyAccount-navigation li.is-active a { box-shadow: none; background: var(--text); color: var(--bg); border-color: var(--text); }
    .woocommerce-MyAccount-content { padding: var(--space-5); }
  }
  /* Tablas responsivas de Woo en móvil */
  @media (max-width: 768px) {
    .woocommerce table.shop_table_responsive tr, .woocommerce-page table.shop_table_responsive tr { border-bottom: 1px solid var(--border); }
    .woocommerce table.shop_table_responsive tr td::before { color: var(--text); }
  }

  /* Bloques de Woo (carrito/checkout en bloques, si se usan) */
  .wc-block-components-text-input input, .wc-block-components-combobox .wc-block-components-combobox-control input {
    background: var(--surface); color: var(--text); border-color: var(--border-strong);
  }
  .wc-block-components-text-input label { color: var(--text-muted); }

  /* ---------------------------------------------------------------
     4. FORMULARIOS (Elementor Forms, login propio, SliceWP, comentarios)
     --------------------------------------------------------------- */
  .elementor-field-group .elementor-field-label { color: var(--text); font-weight: var(--weight-bold); }
  .elementor-form .elementor-button { border-radius: var(--radius-pill); }
  .elementor-message-success { color: var(--success); }
  .elementor-message-danger, .elementor-error .elementor-message { color: var(--danger); }
  #loginform, .login-form, .ak-login-form {
    display: grid; gap: var(--space-4); max-width: 440px;
  }
  #loginform p { margin: 0; display: grid; gap: 6px; }
  #loginform .login-remember label { display: inline-flex; gap: 8px; align-items: center; font-weight: var(--weight-regular); }
  #loginform #wp-submit, .login-submit input[type="submit"] {
    width: 100%; min-height: 50px; background: var(--primary); color: var(--on-primary);
    border: 0; border-radius: var(--radius-pill); font-weight: var(--weight-black);
  }
  .slicewp-form, .slicewp-affiliate-account { color: var(--text-2); }
  .slicewp-field-label label, .slicewp-form label { color: var(--text); }
  .slicewp-button-primary, .slicewp-form input[type="submit"] {
    background: var(--primary); color: var(--on-primary); border: 0; border-radius: var(--radius-pill); font-weight: var(--weight-black);
  }
  .slicewp-card, .slicewp-tabs { background: var(--surface); border-color: var(--border); color: var(--text-2); }

  /* ---------------------------------------------------------------
     5. Pantalla de acceso de WordPress (wp-login.php)
     --------------------------------------------------------------- */
  body.login {
    background-color: var(--bg);
    background-image: radial-gradient(var(--dot) 1px, transparent 1.2px);
    background-size: 22px 22px;
    font-family: var(--font-text); color: var(--text);
  }
  body.login h1 a {
    background-image: url("../img/logo-color.png");
    background-size: contain; background-position: center; width: 220px; height: 40px;
  }
  [data-theme="dark"] body.login h1 a { background-image: url("../img/logo-blanco.png"); }
  body.login form {
    background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-md);
    box-shadow: var(--shadow-2); padding: var(--space-6);
  }
  body.login label { color: var(--text); font-weight: var(--weight-bold); }
  body.login .button-primary {
    background: var(--primary); border-color: var(--primary); color: var(--on-primary);
    border-radius: var(--radius-pill); min-height: 44px; padding: 0 22px; font-weight: var(--weight-black); box-shadow: none; text-shadow: none;
  }
  body.login .button-primary:hover { background: var(--primary-hover); border-color: var(--primary-hover); }
  body.login #nav a, body.login #backtoblog a, body.login .privacy-policy-link { color: var(--link); }
  body.login .message, body.login .notice, body.login #login_error {
    background: var(--surface); color: var(--text); border-left-color: var(--info); box-shadow: var(--shadow-1);
  }
  body.login #login_error { border-left-color: var(--danger); }
  body.login .language-switcher { display: none; }
  body.login input[type="text"], body.login input[type="password"], body.login input[type="email"] { font-size: 16px; }
  body.login .button.wp-hide-pw { color: var(--text-2); }
}

/* ---------------------------------------------------------------
   2b. ELEMENTOR · reglas de elemento del kit (h1, a, button, input…)
   Van en la capa «base» y no en «plugins» a propósito: deben ganar
   al kit (capa «vendor») pero PERDER frente a los componentes del
   tema (.ak-btn, .ak-nav a…). Si estuvieran en «plugins», un simple
   «.elementor-kit-41 a» pisaría el color de todos los botones-enlace.
   --------------------------------------------------------------- */
@layer base {
  .elementor-kit-41 {
    background-color: var(--bg);
    background-image: radial-gradient(var(--dot) 1px, transparent 1.2px); /* sustituye a Union.png */
    background-size: 22px 22px;
    background-attachment: scroll;
    color: var(--text);
    font-family: var(--font-text);
    font-size: var(--step-0);
  }
  .elementor-kit-41 a { font-family: inherit; color: var(--link); }
  .elementor-kit-41 h3, .elementor-kit-41 h4, .elementor-kit-41 h5, .elementor-kit-41 h6 { font-family: var(--font-text); color: var(--text); }
  .elementor-kit-41 label { font-family: var(--font-text); color: var(--text); font-size: var(--step--1); font-weight: var(--weight-bold); }
  .elementor-kit-41 img { border-radius: var(--radius-sm); box-shadow: none; }
  .elementor-kit-41 img:hover { box-shadow: none; }
  .elementor-kit-41 input:not([type="button"]):not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
  .elementor-kit-41 textarea,
  .elementor-kit-41 .elementor-field-textual {
    font-family: var(--font-text); color: var(--text); background-color: var(--surface);
    border-color: var(--border-strong); accent-color: var(--primary);
  }
  .elementor-kit-41 button,
  .elementor-kit-41 input[type="button"],
  .elementor-kit-41 input[type="submit"],
  .elementor-kit-41 .elementor-button {
    background-color: var(--primary); color: var(--on-primary);
    font-family: var(--font-text); font-weight: var(--weight-black);
    text-shadow: none; box-shadow: none; border: 0; border-radius: var(--radius-pill);
  }
  .elementor-kit-41 button:hover, .elementor-kit-41 button:focus,
  .elementor-kit-41 input[type="submit"]:hover, .elementor-kit-41 .elementor-button:hover {
    background-color: var(--primary-hover); color: var(--on-primary); box-shadow: none;
  }
}

/* ---------------------------------------------------------------
   2c. Contrapeso a !important escritos en el CSS personalizado de
   páginas Elementor (post-<id>.css, capa «elementor»).
   Con capas, un !important de una capa ANTERIOR gana al de una capa
   posterior; por eso estos !important van en «vendor» (la primera).
   Es el único sitio del tema con !important, y solo porque Elementor
   los impone en origen:
     - lección #234: «strong, b { color:#1e88e5 !important }» (3,4:1 en claro)
     - finalizar compra #683: caja de pago con fondos oscuros fijos
   --------------------------------------------------------------- */
@layer vendor {
  .ak-diseno .ak-prose strong, .ak-diseno .ak-prose b,
  .ak-diseno .ak-soft strong, .ak-diseno .ak-footer strong { color: var(--text) !important; }
  /* «Volver arriba» de Astra: su JS pone display en línea; en móvil tapa opciones del examen */
  @media (max-width: 600px) { .ak-diseno #ast-scroll-top { display: none !important; } }
  .ak-diseno #payment .payment_methods li.wc_payment_method .payment_box {
    background: var(--surface) !important; color: var(--text-2) !important;
    border: 1px solid var(--border) !important;
  }
  .ak-diseno #payment .payment_methods li.wc_payment_method .payment_box .form-row label,
  .ak-diseno #payment .payment_methods li.wc_payment_method .payment_box p { color: var(--text-2) !important; }
  .ak-diseno #payment .payment_methods li.wc_payment_method .payment_box input,
  .ak-diseno #payment .payment_methods li.wc_payment_method .payment_box textarea,
  .ak-diseno #payment .payment_methods li.wc_payment_method .payment_box select {
    background: var(--surface) !important; color: var(--text) !important; border-color: var(--border-strong) !important;
  }
}
