/*
Theme Name: Aquality
Theme URI: https://www.aqualitysoluciones.cl
Author: Smart Sites
Author URI: https://smartsites.cl
Description: Tema de bloques de Aquality Soluciones: la tienda en bloques nativos de WordPress y WooCommerce, sin Elementor. El diseño vive en theme.json y en los patrones; este archivo trae solo lo que ningún bloque expone como control.
Version: 0.4.76
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 8.1
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: aquality
*/

/* ------------------------------------------------------------------ breakpoints
   Elementor servía el sitio con tablet < 1025 y móvil < 768 (Kit: viewport_lg 1025, viewport_md 768).
   Los valores de este archivo son los medidos en Elementor (tools/anatomia.mjs). */

@media (max-width: 1024px) {
  html:root body {
    --wp--style--root--padding-left: 30px;
    --wp--style--root--padding-right: 30px;
    --wp--custom--section-gap: 50px;
  }
}

@media (max-width: 767px) {
  html:root body {
    --wp--style--root--padding-left: 20px;
    --wp--style--root--padding-right: 20px;
    --wp--custom--section-gap: 50px;
  }
}

/* Cabecera, contenido y pie van pegados: el espacio entre bloques de la raíz no aplica entre las partes de la plantilla. */
.wp-site-blocks > * { margin-block-start: 0; }

/* ------------------------------------------------------------------ tipografía ligada al tamaño */

.has-small-font-size { line-height: 1.5; }
.has-micro-font-size { line-height: 1.5; }
.has-lead-font-size { line-height: 1.5; }
.has-heading-font-size,
.has-title-font-size,
.has-display-font-size { line-height: 1; }

/* ------------------------------------------------------------------ iconos: los mismos glifos de Elementor (subconjuntos de Font Awesome 5 y eicons) */

@font-face { font-family: "aq-marcas"; src: url(assets/fonts/iconos-marcas.woff2) format("woff2"); font-display: block; }
@font-face { font-family: "aq-solidos"; src: url(assets/fonts/iconos-solidos.woff2) format("woff2"); font-display: block; }
@font-face { font-family: "aq-regular"; src: url(assets/fonts/iconos-regular.woff2) format("woff2"); font-display: block; }
@font-face { font-family: "aq-elementor"; src: url(assets/fonts/iconos-elementor.woff2) format("woff2"); font-display: block; }
@font-face { font-family: "aq-woocommerce"; src: url(assets/fonts/iconos-woocommerce.woff2) format("woff2"); font-display: block; }

.aq-icono { display: inline-flex; align-items: center; justify-content: center; line-height: 1; text-decoration: none; }
.aq-icono::before { display: inline-block; width: 1.25em; text-align: center; line-height: 1; font-weight: 400; font-style: normal; font-synthesis: none; -webkit-font-smoothing: antialiased; }
.aq-icono--facebook::before { font-family: "aq-marcas"; content: "\f09a"; }
.aq-icono--instagram::before { font-family: "aq-marcas"; content: "\f16d"; }
.aq-icono--sobre::before { font-family: "aq-regular"; content: "\f0e0"; }
.aq-icono--movil::before { font-family: "aq-solidos"; content: "\f3cd"; }
.aq-icono--ingresar::before { font-family: "aq-solidos"; content: "\f2f6"; }
.aq-icono--registrar::before { font-family: "aq-solidos"; content: "\f234"; }
.aq-icono--casa::before { font-family: "aq-solidos"; content: "\f015"; }
.aq-icono--salir::before { font-family: "aq-solidos"; content: "\f2f5"; }
.aq-icono--usuario::before { font-family: "aq-solidos"; content: "\f007"; }
.aq-icono--twitter::before { font-family: "aq-marcas"; content: "\f099"; }
.aq-icono--linkedin::before { font-family: "aq-marcas"; content: "\f08c"; }
.aq-icono--whatsapp::before { font-family: "aq-marcas"; content: "\f232"; }
.aq-icono--correo::before { font-family: "aq-solidos"; content: "\f0e0"; }
.aq-icono--circulo::before { font-family: "aq-solidos"; content: "\f111"; }
.aq-icono--check::before { font-family: "aq-solidos"; content: "\f00c"; }
.aq-icono--telefono::before { font-family: "aq-solidos"; content: "\f879"; }

/* ------------------------------------------------------------------ el menú móvil: botón y panel lateral (Jet Hamburger Panel) */

.aq-menu-movil { display: none; }
.aq-menu-movil .aq-menu-movil__abrir, .aq-menu-movil .aq-menu-movil__abrir:hover { display: flex; justify-content: center; align-items: center; box-sizing: border-box; width: 37.5px; height: 40px; padding: 10px; border: 0; border-radius: 0; background: transparent; box-shadow: 1px 1px 5px 0 rgba(0, 0, 0, .2); color: var(--wp--preset--color--blanco); font-size: 20px; line-height: 20px; cursor: pointer; }
.aq-menu-movil__abrir::before { font-family: "aq-solidos"; content: "\f039"; font-weight: 400; }
.aq-menu-movil__panel { position: fixed; inset: 0; z-index: 100; visibility: hidden; transition: visibility .3s; }
.aq-menu-movil.esta-abierto .aq-menu-movil__panel { visibility: visible; }
.aq-menu-movil__velo { position: absolute; inset: 0; background: rgba(0, 0, 0, .3); opacity: 0; transition: opacity .3s; }
.aq-menu-movil.esta-abierto .aq-menu-movil__velo { opacity: 1; }
.aq-menu-movil__interior { position: absolute; top: 0; right: 0; bottom: 0; width: 90%; max-width: 500px; overflow-y: auto; background: var(--wp--preset--color--marino); box-shadow: 1px 1px 5px 0 rgba(0, 0, 0, .5); transform: translateX(100%); transition: transform .3s; }
.aq-menu-movil.esta-abierto .aq-menu-movil__interior { transform: translateX(0); }
.aq-menu-movil .aq-menu-movil__cerrar, .aq-menu-movil .aq-menu-movil__cerrar:hover { position: absolute; top: 20px; right: 20px; z-index: 1; width: 13.8px; height: 20px; padding: 0; border: 0; background: transparent; color: var(--wp--preset--color--blanco); font-size: 20px; line-height: 20px; cursor: pointer; }
.aq-menu-movil__cerrar::before { font-family: "aq-solidos"; content: "\f00d"; font-weight: 400; }
.aq-menu-movil__contenido { box-sizing: border-box; padding: 60px 50px 60px 50px; }
.aq-menu-movil__rastreo { margin: 0 0 20px; }
.aq-menu-movil__rastreo .wp-block-button { width: 100%; }
.aq-menu-movil__rastreo .wp-block-button__link { display: block; width: 100%; box-sizing: border-box; padding: 12px 24px; border-radius: 3px; background: var(--wp--preset--color--principal); color: var(--wp--preset--color--blanco); font-family: var(--wp--preset--font-family--texto); font-size: 15px; font-weight: 500; line-height: 15px; text-align: center; text-transform: uppercase; }
.aq-menu-movil nav.aq-menu-movil__navegacion { display: block; margin: 0 0 20px; }
.aq-menu-movil .aq-menu-movil__navegacion .wp-block-navigation__container { display: block; padding: 0; }
.aq-menu-movil .aq-menu-movil__navegacion .wp-block-navigation-item { display: flex; flex-wrap: wrap; align-items: center; margin: 0; }
.aq-menu-movil .aq-menu-movil__navegacion .wp-block-navigation__container > li > a { padding: 10px 0; color: var(--wp--preset--color--blanco); font-family: var(--wp--preset--font-family--texto); font-size: 16px; font-weight: 400; line-height: 24px; text-transform: uppercase; }
.aq-menu-movil .aq-menu-movil__navegacion .wp-block-navigation__container > li.current-menu-item > a,
.aq-menu-movil .aq-menu-movil__navegacion .wp-block-navigation__container > li > a:hover { color: var(--wp--preset--color--principal); }
.aq-menu-movil .aq-menu-movil__navegacion .wp-block-navigation__submenu-icon, .aq-menu-movil .aq-menu-movil__navegacion .wp-block-navigation__submenu-icon:hover { display: inline-block; width: auto; height: auto; margin: 0 0 0 10px; padding: 0; border: 0; background: none; color: var(--wp--preset--color--blanco); font-size: 12px; line-height: 12px; cursor: pointer; }
.aq-menu-movil .aq-menu-movil__navegacion .wp-block-navigation__submenu-icon svg { display: none; }
.aq-menu-movil .aq-menu-movil__navegacion .wp-block-navigation__submenu-icon::before { font-family: "aq-solidos"; content: "\f107"; font-weight: 400; }
.aq-menu-movil .aq-menu-movil__navegacion .wp-block-navigation__submenu-container .wp-block-navigation__submenu-icon::before { content: "\f078"; }
/* El submenú desplegado, medido abierto contra el de Jet (8-nov-2026): 20 px de sangría por nivel dentro del ancho de la columna
   (border-box: con width 100% y el relleno se salía 20 px), ítems de 34 px (24 + 10 abajo) y en mayúsculas (Jet las pone en el
   <span> del texto: el enlace dice none). El `.has-child` del medio le gana a la regla de la navegación de WordPress, que dejaba
   0.5em 1em de relleno. */
.aq-menu-movil .aq-menu-movil__navegacion .has-child > .wp-block-navigation__submenu-container { display: none; position: static; visibility: visible; opacity: 1; flex: 0 0 100%; box-sizing: border-box; width: 100%; height: auto; min-width: 0; overflow: visible; padding: 0 0 0 20px; border: 0; background: var(--wp--preset--color--marino); color: var(--wp--preset--color--blanco); }
.aq-menu-movil .aq-menu-movil__navegacion .has-child.esta-desplegado > .wp-block-navigation__submenu-container { display: block; }
.aq-menu-movil .aq-menu-movil__navegacion .has-child .wp-block-navigation__submenu-container > li > a.wp-block-navigation-item__content { padding: 0 0 10px; color: var(--wp--preset--color--blanco); font-family: var(--wp--preset--font-family--texto); font-size: 16px; font-weight: 400; line-height: 24px; text-transform: uppercase; }
.aq-menu-movil .aq-menu-movil__navegacion .has-child .wp-block-navigation__submenu-container > li > a.wp-block-navigation-item__content:hover { color: var(--wp--preset--color--principal); }
/* El ítem desplegado queda en el Principal del Kit, como en Jet (Productos, y Pescados o Mariscos en el tercer nivel). */
.aq-menu-movil .aq-menu-movil__navegacion .has-child.esta-desplegado > a.wp-block-navigation-item__content.wp-block-navigation-item__content { color: var(--wp--preset--color--principal); }
/* «¿Tienes una cuenta?» en su propia línea y debajo «Ingresar o Registrarse», con el ícono a la izquierda de cada palabra y
   alineados con el menú. Alvaro lo pidió en la revisión del 8-nov («se ven feos así»): en Elementor la pregunta quedaba en tres
   líneas y cada ícono encima de su palabra. Las dos secciones se vuelven una sola fila que se parte (display: contents). */
.aq-menu-movil .aq-acceso--panel { flex-wrap: wrap; justify-content: flex-start; align-items: center; row-gap: 8px; padding: 30px 0 0; }
.aq-menu-movil .aq-acceso--panel .aq-acceso__seccion { display: contents; }
.aq-menu-movil .aq-acceso--panel .aq-acceso__seccion:first-child > .aq-acceso__prefijo { flex: 0 0 100%; white-space: normal; }
.aq-menu-movil .aq-acceso--panel .aq-acceso__seccion + .aq-acceso__seccion > .aq-acceso__prefijo { margin: 0 12px; }
.aq-menu-movil .aq-acceso--panel .aq-acceso__enlace { display: inline-flex; align-items: center; gap: 8px; margin: 0; font-size: 16px; line-height: 24px; }
.aq-menu-movil .aq-acceso--panel .aq-acceso__enlace .aq-icono { margin: 0; font-size: 16px; }
@media (max-width: 1024px) {
  .aq-menu-movil { display: block; flex: 0 0 33.33%; box-sizing: border-box; padding: 10px; }
}
@media (max-width: 767px) {
  .aq-menu-movil { flex-basis: 20%; }
}

/* ------------------------------------------------------------------ botón como texto (barra superior, datos del pie) */

.wp-block-button.is-style-texto .wp-block-button__link {
  background: transparent; padding: 0; border: 0; color: inherit; text-transform: inherit; font-weight: inherit;
  min-height: 0; line-height: 1.5;
}
.wp-block-button.is-style-texto .wp-block-button__link:hover { color: var(--wp--preset--color--principal); background: transparent; }

/* ------------------------------------------------------------------ cabecera */

.cabecera .wp-block-site-logo a,
.cabecera .wp-block-site-logo img { display: block; }

/* El botón del carro, sin fondo: el celeste venía de los botones globales del Kit de Elementor que copia carro.css
   (`.aq-carro .elementor-button`), y Alvaro pidió quitarlo (9-nov-2026). Sobre la cabecera azul queda el carrito blanco. */
.aq-carro .elementor-menu-cart__toggle .elementor-button,
.aq-carro .elementor-menu-cart__toggle .elementor-button:hover,
.aq-carro .elementor-menu-cart__toggle .elementor-button:focus { background-color: transparent; }

/* Los botones sin aspecto de botón: el estilo global de botones de theme.json los pintaría de celeste y de verde al pasar el cursor. */
.carrusel__envoltorio .carrusel__flecha, .carrusel__envoltorio .carrusel__flecha:hover { background: transparent; color: rgba(238, 238, 238, .9); }
.carrusel__envoltorio .carrusel__punto, .carrusel__envoltorio .carrusel__punto:hover { background: #000; }
.cabecera .menu-principal--escritorio .wp-block-navigation__submenu-icon:hover { background: none; }
.cabecera .aq-buscador .aq-buscador__flecha, .cabecera .aq-buscador .aq-buscador__flecha:hover { background: var(--wp--preset--color--blanco); color: #203D5A; }
.cabecera .aq-buscador .aq-buscador__todos, .cabecera .aq-buscador .aq-buscador__todos:hover { background: transparent; }

/* Barra superior: 44 de alto, a todo el ancho, una lista con iconos celestes y línea entre ítems, y el acceso centrado en su columna. */
.barra-superior__lista { flex: 0 0 58.49%; box-sizing: border-box; padding: 10px; }
.barra-superior__item { position: relative; min-height: 21px; }
.barra-superior__item .aq-icono { color: var(--wp--preset--color--principal); padding-right: 5px; }
.barra-superior__item:nth-child(n+3) .aq-icono { padding-right: 0; }
.barra-superior__item:not(:last-child)::after { content: ""; position: relative; left: 16px; align-self: center; height: 8.4px; border-left: 1px solid var(--wp--preset--color--principal); }
.barra-superior__item .wp-block-button.is-style-texto .wp-block-button__link { padding-left: 5px; font-size: 14px; line-height: 21px; white-space: nowrap; }
.barra-superior__item .wp-block-button__link::before { content: ""; position: absolute; inset: 0; }
.barra-superior__item .wp-block-buttons { gap: 0; }

.aq-acceso { flex: 1 1 auto; box-sizing: border-box; padding: 10px; display: flex; justify-content: center; align-items: center; font-size: 16px; line-height: 24px; }
.aq-acceso__seccion { display: flex; align-items: center; }
.aq-acceso__prefijo { color: var(--wp--preset--color--principal); white-space: nowrap; }
.aq-acceso__enlace { margin: 0 5px; font-size: 14px; line-height: 21px; color: var(--wp--preset--color--blanco); text-decoration: none; white-space: nowrap; }
.aq-acceso__enlace:hover { color: var(--wp--preset--color--principal); }
.aq-acceso__enlace .aq-icono { font-size: 14px; margin-right: 5px; }
.aq-acceso__enlace .aq-icono::before { width: auto; }

/* Barra de navegación: logo 8,9 %, menú 70,18 %, buscador 16,9 % y carrito 4 %, las columnas de Elementor. */
.barra-nav__fila > .logo { flex: 0 0 8.9%; width: 8.9%; margin: 0; }
.barra-nav__fila > .logo img { width: 100%; height: auto; }
/* La clase del bloque Navegación también queda en su lista: el ancho y el relleno van solo al <nav>. */
.cabecera nav.menu-principal--escritorio { flex: 0 0 70.18%; box-sizing: border-box; padding: 10px; }
.cabecera .menu-principal--escritorio .wp-block-navigation__container { flex: 1 1 100%; width: 100%; padding: 0; flex-wrap: nowrap; gap: 0; justify-content: flex-start; }
.cabecera .menu-principal--escritorio .wp-block-navigation__container > li { flex: 1 1 auto; justify-content: center; align-items: center; position: relative; min-height: 46px; box-sizing: border-box; padding-right: 2px; margin: 0; }
.cabecera .menu-principal--escritorio .wp-block-navigation__container > li:last-child { padding-right: 0; }
.cabecera .menu-principal--escritorio .wp-block-navigation__container > li:not(:last-child)::after { content: ""; position: absolute; right: 0; top: 50%; height: 35%; transform: translateY(-50%); border-left: 2px solid var(--wp--preset--color--blanco); }
.cabecera .menu-principal--escritorio .wp-block-navigation__container > li > a { flex: 0 0 auto; padding: 13px 0; font-size: 14px; font-weight: 700; line-height: 20px; text-transform: uppercase; white-space: nowrap; color: var(--wp--preset--color--blanco); transition: color .4s; }
.cabecera .menu-principal--escritorio .wp-block-navigation__container > li:hover > a,
.cabecera .menu-principal--escritorio .wp-block-navigation__container > li > a:hover { color: var(--wp--preset--color--principal); }
/* El ítem actual: lo marca aquality-core con current-menu-item (enlaces a secciones). */
.cabecera .wp-block-navigation .current-menu-item > .wp-block-navigation-item__content.wp-block-navigation-item__content { color: var(--wp--preset--color--principal); }
/* El triángulo de Productos y el de los subniveles: el glifo de Font Awesome que usaba Elementor. */
.cabecera .menu-principal--escritorio .wp-block-navigation__submenu-icon { width: auto; height: auto; margin: 0 0 0 10px; padding: 0; border: 0; background: none; color: inherit; font-size: 14px; line-height: 14px; display: inline-block; flex: 0 0 auto; cursor: pointer; transition: color .4s; }
.cabecera .menu-principal--escritorio .wp-block-navigation__submenu-icon svg { display: none; }
.cabecera .menu-principal--escritorio .wp-block-navigation__submenu-icon::before { font-family: "aq-solidos"; content: "\f0d7"; font-weight: 400; }
.cabecera .menu-principal--escritorio .wp-block-navigation__container > li:hover > .wp-block-navigation__submenu-icon { color: var(--wp--preset--color--principal); }
.cabecera .menu-principal--escritorio .wp-block-navigation__submenu-container .wp-block-navigation__submenu-icon::before { content: "\f0da"; }
/* El desplegable: blanco, a 15 px del menú, líneas grises entre ítems y celeste al pasar el cursor. */
.cabecera .menu-principal--escritorio .has-child > .wp-block-navigation__submenu-container { top: calc(100% + 15px); left: 0; padding: 0; border: 0; min-width: 0; background: var(--wp--preset--color--blanco); color: #33373D; transition: opacity .25s; z-index: 30; }
.cabecera .menu-principal--escritorio .has-child > .wp-block-navigation__submenu-container::before { content: ""; position: absolute; left: 0; right: 0; top: -15px; height: 15px; }
.cabecera .menu-principal--escritorio .wp-block-navigation__submenu-container .has-child > .wp-block-navigation__submenu-container { top: 0; left: 100%; }
.cabecera .menu-principal--escritorio .wp-block-navigation__submenu-container .has-child > .wp-block-navigation__submenu-container::before { display: none; }
.cabecera .menu-principal--escritorio .wp-block-navigation__submenu-container > li { display: flex; align-items: center; margin: 0; border-bottom: 1px solid var(--wp--preset--color--gris-texto); }
.cabecera .menu-principal--escritorio .wp-block-navigation__submenu-container > li:last-child { border-bottom: 0; }
.cabecera nav.menu-principal--escritorio .has-child .wp-block-navigation__submenu-container > li > a.wp-block-navigation-item__content { flex: 0 0 auto; padding: 13px 20px; border-left: 8px solid transparent; font-size: 14px; font-weight: 400; line-height: 20px; text-transform: uppercase; white-space: nowrap; color: #33373D; background: transparent; }
.cabecera nav.menu-principal--escritorio .has-child .wp-block-navigation__submenu-container > li.has-child > a.wp-block-navigation-item__content { padding-right: 0; }
.cabecera .menu-principal--escritorio .wp-block-navigation__submenu-container > li.has-child { padding-right: 20px; }
.cabecera .menu-principal--escritorio .wp-block-navigation__submenu-container > li:hover { background: var(--wp--preset--color--principal); }
.cabecera nav.menu-principal--escritorio .has-child .wp-block-navigation__submenu-container > li:hover > a.wp-block-navigation-item__content,
.cabecera nav.menu-principal--escritorio .has-child .wp-block-navigation__submenu-container > li:hover > .wp-block-navigation__submenu-icon { color: var(--wp--preset--color--blanco); }

/* Buscador: 213 × 38, blanco, radio 5, con los resultados en un panel debajo. */
.aq-buscador { flex: 0 0 16.9%; box-sizing: border-box; padding: 10px; position: relative; }
.aq-buscador__formulario { position: relative; display: flex; }
.aq-buscador__campo { width: 100%; box-sizing: border-box; height: 38.2px; margin: 0; padding: 9px 15px; border: 1px solid #E1E5EB; border-radius: 5px; background: var(--wp--preset--color--blanco); color: #000; font-family: var(--wp--preset--font-family--texto); font-size: 14px; line-height: 18.2px; }
.aq-buscador__campo::placeholder { color: #000; opacity: 1; }
.aq-buscador__campo:focus-visible { outline: auto; outline-offset: 0; }
.aq-buscador__resultados { position: absolute; left: 10px; right: 10px; top: calc(100% - 10px); margin-top: 10px; z-index: 9999; background: var(--wp--preset--color--blanco); border-radius: 3px; box-shadow: 0 0 10px 0 rgba(0, 0, 0, .5); color: var(--wp--preset--color--gris-texto); font-size: 16px; line-height: 24px; }
.aq-buscador__resultados[hidden] { display: none; }
.aq-buscador__cabeza { display: flex; justify-content: space-between; align-items: center; padding: 10px; }
.aq-buscador__cuenta { font-size: 14px; line-height: 21px; }
.aq-buscador__nav { display: flex; gap: 5px; }
.aq-buscador__flecha { width: 26px; height: 26px; padding: 0; border: 1px solid #E1E5EB; border-radius: 3px; background: var(--wp--preset--color--blanco); color: #203D5A; font-size: 14px; line-height: 24px; cursor: pointer; }
.aq-buscador__flecha::before { font-family: "aq-elementor"; content: "\e87d"; }
.aq-buscador__flecha--anterior::before { content: "\e87e"; }
.aq-buscador__flecha:disabled { opacity: .5; cursor: default; }
.aq-buscador a.aq-buscador__item { display: flex; align-items: flex-start; padding: 10px; color: var(--wp--preset--color--gris-texto); text-decoration: none; }
.aq-buscador a.aq-buscador__item:hover { background: rgba(0, 0, 0, .03); color: var(--wp--preset--color--gris-texto); }
.aq-buscador__foto { flex: 0 0 29px; width: 29px; height: 29px; margin-right: 10px; object-fit: cover; }
.aq-buscador__texto { flex: 1 1 auto; min-width: 0; }
.aq-buscador__nombre { display: block; font-weight: 700; }
.aq-buscador__precio { display: block; margin-top: 5px; }
.aq-buscador__precio del { opacity: .7; }
.aq-buscador__precio ins { text-decoration: none; }
.aq-buscador__pie { display: flex; justify-content: space-between; padding: 10px; }
.aq-buscador__todos { display: block; margin: 0; padding: 0; border: 0; border-radius: 3px; background: transparent; color: #4268C1; font-family: var(--wp--preset--font-family--texto); font-size: 16px; font-weight: 700; line-height: 24px; text-align: center; cursor: pointer; }
/* Sin resultados: el párrafo de Jet, 16/24 y a la izquierda, dentro de 10 px (medido el 8-nov en las imágenes de funciones). */
.aq-buscador__vacio { margin: 0; padding: 10px; font-size: 16px; line-height: 24px; text-align: start; }

/* Carrito: el mini-carrito de Woo con el icono de Elementor, fondo celeste y burbuja roja, también con 0. */
.barra-nav__fila > .carrito { flex: 0 0 4%; box-sizing: border-box; padding: 10px; display: flex; justify-content: flex-end; }

/* Por ancho: bajo 1025, sin barra superior ni buscador; tres columnas (menú, logo y carrito) en una barra que queda fija. */
@media (max-width: 1024px) {
  header.wp-block-template-part { position: sticky; top: 0; z-index: 90; }
  .cabecera .barra-superior { display: none; }
  .cabecera nav.menu-principal--escritorio { display: none; }
  .cabecera .buscador { display: none; }
  .barra-nav__fila > .logo { flex: 0 0 33.33%; width: 33.33%; box-sizing: border-box; padding: 10px; text-align: center; }
  .barra-nav__fila > .logo a { display: inline-block; }
  .barra-nav__fila > .logo img { width: 300px; max-width: 100%; }
  .barra-nav__fila > .carrito { flex: 0 0 33.33%; }
}
@media (max-width: 767px) {
  .barra-nav { padding-left: 20px !important; padding-right: 20px !important; }
  .barra-nav__fila > .logo { flex-basis: 60%; width: 60%; }
  .barra-nav__fila > .carrito { flex-basis: 20%; }
}

/* ------------------------------------------------------------------ portada: títulos de sección */

.titulo-seccion { font-size: 32px; font-weight: 600; line-height: 32px; color: var(--wp--preset--color--secundario); }
.wp-block-separator.titulo-seccion__linea { margin-top: 15px; margin-bottom: 15px; }
.confian .titulo-seccion, .seccion-instagram .titulo-seccion { padding-inline: 20px; }
@media (max-width: 767px) {
  .titulo-seccion { font-size: 30px; line-height: 30px; }
  .destacados .titulo-seccion { font-size: 24px; line-height: 24px; }
}
@media (max-width: 1024px) {
  .banners { display: none; }
  .destacados { margin-top: 50px !important; padding-top: 10px !important; padding-bottom: 30px !important; }
}
@media (max-width: 767px) {
  .destacados { padding-bottom: 15px !important; }
}

/* ------------------------------------------------------------------ portada: slider */

.carrusel { display: flex !important; flex-wrap: nowrap !important; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; gap: 0 !important; position: relative; }
.carrusel::-webkit-scrollbar { display: none; }
.carrusel > * { flex: 0 0 100% !important; max-width: 100% !important; width: 100%; scroll-snap-align: start; margin: 0 !important; }
.carrusel .wp-block-image { margin: 0; }
.carrusel .wp-block-image img, .carrusel figure { display: block; width: 100%; height: auto; }
.carrusel--armado { display: block !important; overflow: hidden; touch-action: pan-y; }
.carrusel--armado > .carrusel__pista { display: flex; gap: var(--carrusel-gap, 10px); width: 100%; transition: transform .5s ease; will-change: transform; }
.carrusel__pista > * { flex: 0 0 100%; min-width: 0; margin: 0 !important; }
.carrusel__envoltorio { position: relative; }
.carrusel__controles { display: flex; justify-content: center; align-items: flex-end; gap: 12px; height: 16px; margin: 0; }
.carrusel__punto { width: 6px; height: 6px; padding: 0; border: 0; border-radius: 50%; background: #000; opacity: .2; cursor: pointer; }
.carrusel__punto[aria-current="true"] { opacity: 1; }
.carrusel__flecha { position: absolute; top: calc(50% - 15px); transform: translateY(-50%); z-index: 2; width: 25px; height: 25px; padding: 0; border: 0; background: transparent; color: rgba(238, 238, 238, .9); font-size: 25px; line-height: 25px; cursor: pointer; }
.carrusel__flecha::before { font-family: "aq-elementor"; content: "\e87d"; }
.carrusel__flecha--anterior { left: 0; }
.carrusel__flecha--anterior::before { content: "\e87e"; }
.carrusel__flecha--siguiente { right: 0; }

/* ------------------------------------------------------------------ portada: banners (tres de 406,7 cuadrados, botón sobre la foto y velo negro al 40 % al pasar el cursor) */

.banners__fila { width: 1280px; max-width: 100%; margin-inline: auto; }
.banner { flex: 1 1 0; min-width: 0; position: relative; }
.banner__imagen { margin: 0; position: relative; overflow: hidden; }
.banner__imagen a { display: block; position: relative; }
.banner__imagen a::after { content: ""; position: absolute; inset: 0; background: #000; opacity: 0; transition: opacity .4s; pointer-events: none; }
.banner__imagen:hover a::after { opacity: .4; }
.banner__imagen img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; }
.banner__boton { position: absolute; z-index: 10; left: 0; right: 0; bottom: 41px; margin: 0; pointer-events: none; }
.banner__boton .wp-block-button__link { pointer-events: auto; padding: 12px 24px; border-radius: 3px; background: var(--wp--preset--color--principal); color: var(--wp--preset--color--blanco); font-family: var(--wp--preset--font-family--texto); font-size: 15px; font-weight: 500; line-height: 15px; text-transform: uppercase; }

/* ------------------------------------------------------------------ catálogo (grilla de 4 · 2 · 2, como el widget de Jet) */

/* La colección escribe su propia grilla: el breakpoint tiene que pisar la propiedad real. */
/* Catálogo en tablet y celular: los valores de la sección de Elementor (50 + 10 de relleno y 40 entre tarjetas; 10 y 10). */
.catalogo .wc-block-product-template {
  display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)) !important; gap: 40px !important;
  margin: 0; padding: 0; list-style: none;
}
.catalogo .wc-block-product-template > li { margin: 0; padding: 0; width: auto; max-width: none; }
@media (max-width: 1024px) {
  .catalogo .wc-block-product-template { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 30px !important; }
}
@media (max-width: 767px) {
  .catalogo .wc-block-product-template { gap: 15px !important; }
}
.catalogo__orden { margin-bottom: 40px; padding-right: 5.4px; min-height: 23px; }
.catalogo__orden > p { margin-right: 20px; }
.catalogo__orden .woocommerce-ordering { margin: 0; }
/* El aviso de la categoría sin productos, pegado al orden, como el de Jet (`.jet-woo-products__not-found`, sin márgenes). */
.wp-block-woocommerce-product-collection-no-results > p { margin: 0; }
/* Sin productos, Jet no pinta la grilla, que es la que deja 20 px más arriba y abajo: el aviso va a 20 px del orden (19 en el
   celular) y la sección termina 110 px bajo el aviso (medido el 8-nov en 1440, 1024 y 375). */
.catalogo:has(.wp-block-woocommerce-product-collection-no-results) .catalogo__orden.catalogo__orden { margin-bottom: 20px; }
.catalogo.catalogo:not(.catalogo--portada):has(.wp-block-woocommerce-product-collection-no-results) { padding-bottom: 110px !important; }
@media (max-width: 767px) {
  .catalogo:has(.wp-block-woocommerce-product-collection-no-results) .catalogo__orden.catalogo__orden { margin-bottom: 19px; }
}
.catalogo__orden .woocommerce.wc-block-catalog-sorting select.orderby { display: block; box-sizing: border-box; width: 286.6px; max-width: 100%; height: 23px; margin: 0; padding: 0; border: 1px solid var(--wp--preset--color--gris-texto); border-radius: 3px; background-color: var(--wp--preset--color--blanco); color: #000; font-family: var(--wp--preset--font-family--texto); font-size: 16px; line-height: 1; }
/* El catálogo va a todo el ancho con el relleno de la raíz, y en móvil con 10 px por lado (así servía Jet: tarjetas de 170 a 375). */
.catalogo { padding-left: var(--wp--style--root--padding-left); padding-right: var(--wp--style--root--padding-right); }
@media (max-width: 767px) {
  .catalogo { padding-left: 10px; padding-right: 10px; }
}
.catalogo.catalogo--portada { width: 1280px; max-width: 100%; margin: 35px auto 0; padding: 0; }
@media (max-width: 1024px) {
  .catalogo.catalogo--portada { width: calc(100% - 120px); }
  .catalogo--portada .wc-block-product-template { gap: 40px !important; }
}
@media (max-width: 767px) {
  .catalogo.catalogo--portada { width: calc(100% - 20px); margin-top: 20px; }
  .catalogo--portada .wc-block-product-template { gap: 10px !important; }
}
@media (max-width: 767px) {
  .tarjeta-producto .tarjeta-producto__nombre { font-size: 16px !important; line-height: 16px !important; }
  .tarjeta-producto .wc-block-components-product-price { font-size: 16px !important; line-height: 24px !important; }
}

/* ------------------------------------------------------------------ tarjeta de producto: la preset-3 de Jet */

.tarjeta-producto { position: relative; height: 100%; box-sizing: border-box; }
.tarjeta-producto .wc-block-components-product-image { margin: 0; }
.tarjeta-producto .wc-block-components-product-image img { display: block; width: 100%; height: auto; }
.tarjeta-producto__contenido { position: relative; overflow: hidden; }
/* La etiqueta de disponibilidad: una franja a todo el ancho, de un color por estado (el bloque no modela estados). */
.tarjeta-producto .wc-block-components-product-stock-indicator { display: block; text-align: center; }
.tarjeta-producto .wc-block-components-product-stock-indicator--in-stock { background: var(--wp--preset--color--principal); }
.tarjeta-producto .wc-block-components-product-stock-indicator--out-of-stock { background: var(--wp--preset--color--rojo); }
.tarjeta-producto .wc-block-components-product-stock-indicator--on-backorder { background: var(--wp--preset--color--amarillo); }
.tarjeta-producto .wc-block-components-product-price { display: block; color: var(--wp--preset--color--secundario); }
.catalogo--portada .tarjeta-producto .wc-block-components-product-price { color: #958E09; }
.tarjeta-producto .wc-block-components-product-price del,
.tarjeta-producto .wc-block-components-product-price ins { font-weight: 400; }
.tarjeta-producto .wc-block-components-product-price ins { text-decoration: none; }
/* Al pasar el cursor, disponibilidad, nombre y precio suben y se apagan, y el botón verde aparece en el centro de esa zona. */
.tarjeta-producto .wc-block-components-product-stock-indicator { transition: all .2s ease .06s; }
.tarjeta-producto .tarjeta-producto__nombre { transition: all .2s ease .08s; }
.tarjeta-producto .wc-block-components-product-price { transition: all .2s ease .1s; }
.tarjeta-producto .wp-block-woocommerce-product-button {
  position: absolute; left: 0; top: 50%; width: 100%; margin: 0; padding: 0; text-align: center;
  transform: translateY(0); visibility: hidden; opacity: 0; transition: all .3s ease;
}
.tarjeta-producto .wp-block-woocommerce-product-button .wp-block-button__link,
.tarjeta-producto .wp-block-woocommerce-product-button .wc-block-components-product-button__button {
  display: inline-block; width: auto; min-height: 0; margin: 0; padding: 6px; border: 1px solid var(--wp--preset--color--enfasis); border-radius: 4px;
  background: var(--wp--preset--color--enfasis); color: var(--wp--preset--color--blanco);
  font-family: var(--wp--preset--font-family--texto); font-size: 14px; font-weight: 500; line-height: 14px; text-transform: uppercase; text-decoration: none;
}
.tarjeta-producto.mobile-hover .wc-block-components-product-stock-indicator,
.tarjeta-producto.mobile-hover .tarjeta-producto__nombre,
.tarjeta-producto.mobile-hover .wc-block-components-product-price,
.tarjeta-producto:hover .wc-block-components-product-stock-indicator,
.tarjeta-producto:hover .tarjeta-producto__nombre,
.tarjeta-producto:hover .wc-block-components-product-price,
/* Con el teclado también (:focus-visible), pero no después de un clic: con :focus-within, el botón agregado seguía a la vista
   bajo el carro lateral, y en Elementor la tarjeta vuelve a mostrar nombre, precio y existencias (8-nov, tools/funciones.mjs). */
.tarjeta-producto:has(:focus-visible) .wc-block-components-product-stock-indicator,
.tarjeta-producto:has(:focus-visible) .tarjeta-producto__nombre,
.tarjeta-producto:has(:focus-visible) .wc-block-components-product-price { opacity: 0; transform: translateY(-20px); }
.tarjeta-producto.mobile-hover .wp-block-woocommerce-product-button,
.tarjeta-producto:hover .wp-block-woocommerce-product-button,
.tarjeta-producto:has(:focus-visible) .wp-block-woocommerce-product-button { visibility: visible; opacity: 1; transform: translateY(-50%); transition-delay: .3s; }
.tarjeta-producto:has(a:focus-visible) {
  outline: 2px solid var(--wp--preset--color--principal); outline-offset: 2px;
}

/* ------------------------------------------------------------------ portada: logos */

.wp-block-gallery.logos { display: grid !important; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 80px !important; width: 1096px; max-width: 100%; margin: 69px auto 12px; padding: 0; }
.wp-block-gallery.logos > figure.wp-block-image { width: auto !important; margin: 0 !important; flex: none; aspect-ratio: 1; }
.wp-block-gallery.logos > figure.wp-block-image img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 1024px) {
  .wp-block-gallery.logos { width: calc(100% - 64px); }
}
@media (max-width: 767px) {
  .wp-block-gallery.logos { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px !important; }
}

/* ------------------------------------------------------------------ portada: Instagram (cinco columnas, velo celeste y leyenda al pasar el cursor) */

.aq-instagram { display: grid; grid-template-columns: repeat(var(--aq-instagram-columnas, 5), minmax(0, 1fr)); width: calc(100% - 20px); margin: -10px auto 0; }
@media (max-width: 1024px) {
  .aq-instagram { --aq-instagram-columnas: 2 !important; --aq-instagram-alto: 350px !important; }
}
@media (max-width: 767px) {
  .aq-instagram { --aq-instagram-alto: 150px !important; }
}
.aq-instagram__item { display: block; position: relative; margin: 10px; height: var(--aq-instagram-alto, 280px); overflow: hidden; text-decoration: none; }
.aq-instagram__foto { display: block; width: 100%; height: 100%; object-fit: cover; }
.aq-instagram__velo { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; box-sizing: border-box; padding: 20px; background: rgba(109, 188, 209, .8); opacity: 0; transition: opacity .3s; }
.aq-instagram__item:hover .aq-instagram__velo { opacity: 1; }
.aq-instagram__leyenda { width: 95%; color: var(--wp--preset--color--blanco); font-size: 14px; line-height: 20px; text-align: center; overflow: hidden; }

/* ------------------------------------------------------------------ boletín */

.boletin { position: relative; display: flex; flex-direction: column; justify-content: center; }
.boletin::before { content: ""; position: absolute; inset: 0; background: #228BA7; opacity: .84; }
.boletin__contenido { position: relative; width: 500px; max-width: 100%; box-sizing: border-box; margin-inline: auto; padding: 10px; }
.boletin__contenido h2 { font-size: 40px; line-height: 40px; }
.boletin__contenido p { font-size: 18px; line-height: 27px; }
.boletin .boletin__formulario { --scrm-row-gap: 11px; --scrm-col-gap: 0px; margin: 0; }
.boletin .boletin__formulario .scrm-fields-grid { display: block; }
.boletin .boletin__formulario .scrm-field-group { display: block; margin: 0; padding: 0; }
.boletin .boletin__formulario .scrm-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.boletin .boletin__formulario .scrm-input { display: block; box-sizing: border-box; width: 316.7px; max-width: 100%; height: 40px; padding: 8px 16px; border: 1px solid var(--wp--preset--color--gris); border-radius: 3px; background: var(--wp--preset--color--blanco); color: var(--wp--preset--color--negro); font-size: 15px; line-height: 21px; }
.boletin .boletin__formulario .scrm-submit-btn { display: block; box-sizing: border-box; width: 153.3px; max-width: 100%; height: 40px; min-height: 0; margin-top: 11px; padding: 0 24px; border: 0; border-radius: 3px; background: var(--wp--preset--color--naranja); color: var(--wp--preset--color--secundario); font-family: var(--wp--preset--font-family--texto); font-size: 15px; font-weight: 700; line-height: 15px; text-transform: none; cursor: pointer; }
@media (max-width: 767px) {
  .boletin { box-sizing: border-box; min-height: 540px !important; padding: 20px !important; }
  .boletin__contenido { width: 100%; }
  .boletin__contenido h2 { font-size: 30px; line-height: 30px; }
  .boletin .boletin__formulario .scrm-input, .boletin .boletin__formulario .scrm-submit-btn { width: 100%; }
}

/* ------------------------------------------------------------------ pie */

.pie__grilla { width: 1300px; max-width: 100%; margin-inline: auto; gap: 0 !important; }
.pie__grilla > .wp-block-column { box-sizing: border-box; }
.pie__logo { margin: 0; }
.pie__logo a { display: block; }
.pie__logo img { display: block; width: 150px; height: auto; }
.pie__texto { font-size: 14px; line-height: 21px; color: var(--wp--preset--color--gris-texto); }
.pie__redes .aq-icono { color: var(--wp--preset--color--secundario); }
.pie__redes .aq-icono::before { width: 1em; }
.pie__titulo { font-size: 18px; line-height: 18px; font-family: var(--wp--preset--font-family--texto); }
.pie .pie__menu .wp-block-navigation-item__content { padding: 0; font-size: 16px; font-weight: 400; line-height: 24px; text-transform: none; color: var(--wp--preset--color--secundario); }
.pie .pie__menu .wp-block-navigation-item__content:hover { color: var(--wp--preset--color--principal); }
.pie .pie__dato { min-height: 24px; }
.pie .pie__dato .aq-icono { flex: 0 0 27.5px; color: var(--wp--preset--color--principal); justify-content: flex-start; }
.pie .pie__dato > p, .pie .pie__dato .wp-block-button.is-style-texto .wp-block-button__link { padding-left: 5px; font-size: 16px; line-height: 24px; color: var(--wp--preset--color--secundario); }
.pie .pie__dato .wp-block-button__link:hover { color: var(--wp--preset--color--principal); }
.pie__pagos { margin: 0; }
.pie__pagos img { display: block; width: 100%; height: auto; }
.pie__derechos-fila { width: 1300px; max-width: 100%; min-height: 60px; box-sizing: border-box; margin-inline: auto; padding: 0 10px; }
.pie__derechos-fila p { font-size: 14px; line-height: 14px; }
@media (max-width: 1024px) {
  .pie .pie__columnas { padding: 30px !important; }
  .pie .pie__grilla { width: 100%; flex-wrap: wrap !important; }
  .pie .pie__grilla > .wp-block-column { flex-basis: 50% !important; max-width: 50%; }
  .pie .pie__grilla > .pie__sitio, .pie .pie__grilla > .pie__contacto { padding-top: 30px !important; }
  .pie .pie__derechos { padding-inline: 30px !important; }
  .pie .pie__derechos-fila { width: 100%; }
}
@media (max-width: 767px) {
  .pie .pie__columnas { padding: 50px 20px !important; }
  .pie .pie__grilla > .wp-block-column { flex-basis: 100% !important; max-width: 100%; }
  .pie .pie__derechos { padding-inline: 0 !important; }
  .pie .pie__derechos-fila { display: block; min-height: 0; padding: 0; }
  .pie .pie__derechos-fila p { margin: 0; padding: 10px; text-align: center; }
}

/* ------------------------------------------------------------------ ficha de producto */

/* La galería clásica de Woo trae float y 48 % para temas clásicos, y su script le fija el ancho de la imagen única (512):
   en la columna de la ficha ocupa el ancho completo (565 a 1440), como la servía el widget de Elementor. */
.ficha .woocommerce-product-gallery { float: none !important; width: 100% !important; max-width: 100% !important; }
.ficha .wp-block-woocommerce-product-image-gallery { max-width: none; }
/* «¡Oferta!» donde lo pone Elementor: el -0.5em y sin el relleno de woocommerce.css (el bloque de la galería lo corre a -1rem). */
.woocommerce .ficha .wp-block-woocommerce-product-image-gallery span.onsale { left: -.5em; padding: 0; }

/* ------------------------------------------------------------------ recetas */

.recetas .recetas__lista { list-style: none; padding: 0; margin: 0; }
.recetas .recetas__lista li { margin: 0; }
.recetas .recetas__lista a { font: inherit; }
@media (max-width: 1024px) {
  /* Las categorías arriba (30 %) y las tarjetas abajo; la sección con relleno en %, como en Elementor. */
  div.wp-block-group.recetas { padding-inline: 6%; padding-bottom: 14% !important; }
  .recetas > .recetas__columnas { flex-wrap: wrap !important; max-width: none; gap: 0; }
  .recetas .recetas__categorias { flex: 0 0 30% !important; width: 30% !important; max-width: 30%; }
  .recetas .recetas__tarjetas { flex: 0 0 100% !important; width: 100% !important; max-width: 100%; }
}
@media (max-width: 767px) {
  div.wp-block-group.recetas { padding-bottom: 60px !important; }
  .recetas .recetas__categorias { flex: 0 0 100% !important; width: 100% !important; max-width: 100%; }
}
@media (max-width: 767px) {
  .recetas .recetas__grilla { grid-template-columns: 1fr !important; }
}

/* ------------------------------------------------------------------ mapa de Google (bloque propio) */

.aquality-mapa iframe { display: block; width: 100%; }

/* ------------------------------------------------------------------ carrito, checkout y cuenta (formularios clásicos de Woo) */

/* Los h2 de acceso y registro de Mi cuenta: Julius chico en mayúsculas, como los servía JetWooBuilder. */

/* ------------------------------------------------------------------ texto solo para lectores de pantalla (el core no lo trae en temas de bloques) */

.screen-reader-text {
  border: 0; clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute !important; width: 1px; word-wrap: normal !important;
}
.screen-reader-text:focus {
  clip-path: none; height: auto; width: auto; left: 5px; top: 5px; z-index: 100000; background: var(--wp--preset--color--blanco); padding: 15px 23px 14px; text-decoration: none;
}

/* ------------------------------------------------------------------ estados que el editor no modela */

a:focus-visible,
button:focus-visible,
input:focus-visible { outline: 2px solid var(--wp--preset--color--principal); outline-offset: 2px; }

/* Una sección sin contenido no deja hueco. */
.seccion-recetas:not(:has(.wp-block-post-template)) { display: none; }

/* ------------------------------------------------------------------ hero (foto con velo, parallax y franja de la miga) */

.hero .wp-block-cover__image-background { height: 200%; bottom: auto; transition: transform 1s cubic-bezier(0, .33, .07, 1.03); will-change: transform; }
.hero--fijo .wp-block-cover__image-background { height: 100%; transition: none; }
.hero.hero--corto { margin-top: -260px !important; }
.hero--receta .hero__miga .woocommerce-breadcrumb a { color: var(--wp--preset--color--blanco); }
.hero .wp-block-cover__inner-container { width: 100%; }
.hero__miga { box-sizing: border-box; width: 100%; }
.hero__miga .wc-block-breadcrumbs, .hero__miga .woocommerce-breadcrumb { margin: 0; padding: 0; color: var(--wp--preset--color--blanco); font-size: 14.72px; line-height: 22.08px; text-align: center; }
.hero .hero__miga nav.woocommerce-breadcrumb.woocommerce-breadcrumb { margin: 0 0 14.72px; }
.hero__miga .woocommerce-breadcrumb a { color: #767676; }
.hero--producto .hero__miga .woocommerce-breadcrumb a, .pagina-contacto .hero__miga .woocommerce-breadcrumb a { color: var(--wp--preset--color--principal); }

/* ------------------------------------------------------------------ títulos de página y de catálogo */

.titulo-pagina h1 { font-size: 40px; line-height: 40px; }
/* En el celular el título tiene los 10 px por lado de la columna de Elementor: uno largo («Cojinova Austral») pasa a dos líneas. */
@media (max-width: 767px) {
  .titulo-pagina > h1 { padding-inline: 10px; }
}
.titulo-pagina .bajada { font-size: 16px; line-height: 16px; }

/* ------------------------------------------------------------------ ficha de producto */

.ficha__columnas { gap: 0; }
.ficha__columnas > .wp-block-column { box-sizing: border-box; }
.ficha .ficha__resumen > h1 { font-size: 36px; line-height: 36px; }
.ficha .wp-block-separator.ficha__linea { width: 50px; height: 3px; margin: 15px 0; }
/* Interlineado sin unidad, como el de Elementor (1.5 heredado): con 24px fijos, los tramos de la descripción escritos con otra
   letra (12 o 14 px) no achican su línea y la ficha crece (barrido del 2-nov-2026: línea Tasty, de 63 a 82 px de más). */
.ficha .ficha__descripcion { color: var(--wp--preset--color--gris-texto); font-size: 16px; line-height: 1.5; }
.ficha .ficha__descripcion > *, .ficha .ficha__descripcion p { margin-block: 0; }
.ficha .ficha__descripcion h3 { margin: 8px 0 16px; color: var(--wp--preset--color--secundario); font-family: var(--wp--preset--font-family--titulos); font-size: 28px; font-weight: 600; line-height: 33.6px; }
.ficha .ficha__descripcion ul { padding-left: 40px; }
/* Un video con ancho escrito (`width: 500px`) no pasa de la columna, como en Elementor (max-width 100 %): en el celular quedaba
   cortado (chorito entero y ostiones, 8-nov-2026). */
.ficha .ficha__descripcion :is(iframe, video, embed) { max-width: 100%; }
.ficha__compra { box-sizing: border-box; width: 60.97%; margin-top: 30px; padding: 10px; }
.woocommerce div.product .ficha__compra form.cart { margin: 0; padding-inline: 0; }
.ficha__compra .stock { margin: 0; font-size: 14.72px; line-height: 22.08px; color: #008080; }
/* El precio de la variación elegida, como lo pinta woocommerce.css en Elementor (1.25em y su ocre, que aquí no alcanza porque la
   ficha no queda dentro de `.woocommerce`); el número, en el Secundario del Kit. */
.ficha__compra .woocommerce-variation-price .price { font-size: 20px; line-height: 30px; color: #958e09; }
.ficha__compra .woocommerce-variation-price .price bdi { color: var(--wp--preset--color--secundario); }
/* El precio del resumen en oferta, como el de WooCommerce clásico que pinta Elementor: el anterior a 0,7 y el de oferta subrayado,
   los dos en línea de bloque. La hoja de los bloques de WooCommerce los deja en línea, a 1 y sin subrayado (revisión, 8-nov-2026). */
.ficha__resumen > .wp-block-woocommerce-product-price :is(del, ins) { display: inline-block; }
.ficha__resumen > .wp-block-woocommerce-product-price del { opacity: .7; }
.ficha__resumen > .wp-block-woocommerce-product-price ins { text-decoration: underline; }
/* El botón de los avisos de WooCommerce («Ver carrito» al agregar desde la ficha) sin mayúsculas, como en Elementor: las ponía el
   estilo global de los botones del tema (revisión de funciones, 8-nov-2026). */
:is(.woocommerce-message, .woocommerce-info, .woocommerce-error) .wp-element-button { text-transform: none; }
.ficha__compra .stock.out-of-stock { color: var(--wc-red, #a00); } /* el rojo de WooCommerce, como en Elementor (no es del Kit) */
.ficha__compra .quantity input.qty { box-sizing: border-box; width: 50.8px; height: 35.8px; padding: 0; border: 1px solid var(--wp--preset--color--gris-texto); border-radius: 3px; background: var(--wp--preset--color--blanco); color: var(--wp--preset--color--secundario); font-size: 14px; line-height: 21px; text-align: center; }
.ficha__compra form.cart:not(.variations_form), .ficha__compra .woocommerce-variation-add-to-cart { display: flex; }
.ficha__compra .single_add_to_cart_button { flex: 1 1 auto; box-sizing: border-box; min-height: 0; height: 35.8px; margin-left: 10px; padding: 9.888px 16px; border: 0; border-radius: 3px; background: var(--wp--preset--color--enfasis); color: var(--wp--preset--color--blanco); font-family: var(--wp--preset--font-family--texto); font-size: 16px; font-weight: 700; line-height: 16px; text-align: center; text-transform: none; cursor: pointer; }
.ficha__seguir { margin-top: 20px; }
.ficha__seguir .wp-block-button { width: 100%; }
.ficha__seguir .wp-block-button__link { display: block; box-sizing: border-box; width: 100%; padding: 12px 24px; border-radius: 3px; background: var(--wp--preset--color--principal); color: var(--wp--preset--color--blanco); font-family: var(--wp--preset--font-family--texto); font-size: 12px; font-weight: 700; letter-spacing: 1.5px; line-height: 12px; text-align: center; text-transform: uppercase; }
.ficha .wp-block-separator.is-style-wide { width: 100%; height: 1px; background: #000; color: #000; }
.ficha .ficha__comparte { font-size: 28px; line-height: 28px; }

.aq-compartir { display: flex; flex-wrap: wrap; gap: 10px; }
.aq-compartir__red { display: flex; align-items: center; justify-content: center; width: 45px; height: 45px; border-radius: 999px; color: var(--wp--preset--color--blanco); text-decoration: none; font-size: 17px; transition: filter .3s; }
.aq-compartir__red:hover { color: var(--wp--preset--color--blanco); filter: saturate(1.5) brightness(1.2); }
.aq-compartir__red .aq-icono::before { width: auto; }
.aq-compartir__red--facebook { background: #3B5998; }
.aq-compartir__red--twitter { background: #1DA1F2; }
.aq-compartir__red--linkedin { background: #0077B5; }
.aq-compartir__red--whatsapp { background: #25D366; }
.aq-compartir__red--correo { background: #EA4335; }

/* ------------------------------------------------------------------ recetas: el listado */

.recetas .recetas__categorias h2 { font-size: 32px; line-height: 32px; }
.recetas .recetas__lista > li { margin-block: 0 !important; }
.recetas .recetas__lista .wp-block-term-name { margin: 0; }
.recetas .recetas__lista a { display: block; padding: 13px 0; font-size: 16px; line-height: 20px; }
.recetas .recetas__paginas { margin-top: 40px; font-family: var(--wp--preset--font-family--texto); }
.recetas .recetas__paginas .page-numbers { margin: 0 5px; color: #CC3366; }
.recetas .recetas__paginas .page-numbers.current { color: var(--wp--preset--color--principal); font-family: var(--wp--preset--font-family--titulos); }
.recetas .recetas__grilla > li { display: flex; }
.recetas .recetas__grilla > li > .tarjeta-receta { box-sizing: border-box; width: 100%; }
.tarjeta-receta { box-shadow: 0 0 10px 0 rgba(0, 0, 0, .15); transition: box-shadow .25s; }
.tarjeta-receta:hover { box-shadow: 0 0 30px 0 rgba(0, 0, 0, .15); }
.tarjeta-receta h3 { font-size: 21px; line-height: 25.2px; }
.tarjeta-receta .tarjeta-receta__resumen { font-size: 14px; line-height: 21px; }
.tarjeta-receta .tarjeta-receta__resumen p { margin: 0; }
.tarjeta-receta .wp-block-read-more { display: block; width: fit-content; margin-top: 30px; font-size: 12px; line-height: 18px; color: var(--wp--preset--color--principal); }

/* ------------------------------------------------------------------ páginas: el modelo de Elementor (sección, fila, columna, interior, widgets).
   Lo exacto de cada elemento está en assets/paginas/<slug>.css. */

body { overflow-x: clip; }
main.contenido.has-global-padding { padding-inline: 0; }
main.contenido > .alignfull { margin-inline: 0; width: 100%; max-width: none; }
main.contenido > .wp-block-post-content { margin-block-start: 0; padding-inline: 0; }
main.contenido > .wp-block-post-content > .alignfull { margin-inline: 0; width: 100%; }
.wp-block-post-content figure.wp-block-image img.lazyloading { min-width: 0; }
.el-seccion { position: relative; box-sizing: border-box; margin-block: 0; }
.el-fila.el-fila { position: relative; display: flex; flex-wrap: nowrap; align-items: stretch; gap: 0; width: 100%; max-width: 1140px; margin: 0 auto; }
.el-col { display: flex; box-sizing: border-box; margin: 0; padding: 0; }
.el-interior { --el-margen-abajo: 0px; position: relative; display: flex; flex-wrap: wrap; align-content: flex-start; box-sizing: border-box; width: 100%; margin: 0; }
.el-interior > * { position: relative; box-sizing: border-box; width: 100%; max-width: 100%; margin-block: 0; }
.el-interior > :not(.el-seccion):not(:last-child) { margin-bottom: calc(var(--el-espacio, 20px) + var(--el-margen-abajo, 0px)); }
.el-interior > :not(.el-seccion):last-child { margin-bottom: var(--el-margen-abajo, 0px); }
@media (max-width: 1024px) {
  .el-fila.el-fila { flex-wrap: wrap !important; }
}
@media (max-width: 767px) {
  .el-fila > .el-col { flex: 0 0 100% !important; width: 100% !important; }
}
@media (min-width: 768px) and (max-width: 781px) {
  .el-fila > .el-col { flex-basis: auto !important; }
}
.el-texto > * { margin-block: 0; overflow-wrap: normal; word-break: normal; }
.el-interior .el-texto > :is(h1, h2, h3, h4, h5, h6) { margin-block: .5rem 1rem; font-weight: 500; }
.el-texto ul, .el-texto ol { padding-left: 40px; }
.el-seccion a:where(:not(.wp-element-button):not(.aq-icono)) { color: #CC3366; }
.el-seccion a:where(:not(.wp-element-button):not(.aq-icono)):hover { color: #333366; }
.el-seccion .el-li__texto a, .el-seccion .el-li__texto a:hover { color: inherit; }
.el-animar--espera { visibility: hidden; }
.el-animar--activa { animation: el-entrada 1.25s both; }
@keyframes el-entrada { from { opacity: 0; } to { opacity: 1; } }
.el-imagen { margin: 0; text-align: center; }
.el-imagen a { display: inline-block; }
.el-imagen img { display: inline-block; max-width: 100%; height: auto; vertical-align: middle; }
.el-lista > .el-li { align-items: center; gap: 0; margin: 0; }
.el-li__texto { margin: 0; }
.el-caja > * { margin-block: 0; }
.el-redes .aq-icono { display: inline-flex; align-items: center; justify-content: center; margin: 0; }
.wp-block-gallery.el-galeria { display: grid !important; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 80px !important; margin: 0; padding: 0; }
.wp-block-gallery.el-galeria > figure.wp-block-image { width: auto !important; margin: 0 !important; flex: none; aspect-ratio: 1; }
.wp-block-gallery.el-galeria > figure.wp-block-image img { width: 100%; height: 100%; object-fit: cover; }

/* Tabla (JetElements): los anchos de columna salen del contenido, como en una tabla automática. */
.wp-block-table.el-tabla { margin: 0; }
.el-tabla table { width: 100%; margin: 0; table-layout: auto; border: 0; border-collapse: collapse; font-size: 14.4px; line-height: 21.6px; }
.el-tabla thead, .el-tabla tfoot { border: 0; }
.el-tabla th, .el-tabla td { padding: 10px 20px; border: 0; text-align: left; vertical-align: top; }
.el-tabla th { background: var(--wp--preset--color--principal); border-top: 1px solid rgba(128, 128, 128, .5); color: #fff; font-weight: 700; }
.el-tabla td { font-size: 16px; line-height: 24px; }
.el-tabla tbody tr:nth-child(odd) td { background: rgba(128, 128, 128, .07); }

/* Formulario de contacto: los valores del formulario de Elementor sobre los bloques de smartsites-crm. */
.el-formulario { box-sizing: border-box; margin: 0; }
.el-formulario .scrm-fields-grid { gap: 10px 0; }
.el-formulario .scrm-field-group { display: block; margin: 0; padding: 0; }
.el-formulario .scrm-label { display: block; margin: 0; color: var(--wp--preset--color--gris-texto); font-family: var(--wp--preset--font-family--texto); font-size: 16px; font-weight: 400; line-height: 16px; letter-spacing: 0; text-transform: none; }
.el-formulario .scrm-required-mark { display: none; }
.el-formulario .scrm-input, .el-formulario .scrm-textarea { display: block; box-sizing: border-box; width: 100%; height: 40px; min-height: 0; margin: 0; padding: 8px 16px; background: #fff; border: 1px solid #69727D; border-radius: 3px; box-shadow: none; color: var(--wp--preset--color--gris-texto); font-family: var(--wp--preset--font-family--texto); font-size: 15px; line-height: 21px; }
.el-formulario .scrm-textarea { height: 96px; padding: 5px 14px; }
.el-formulario .scrm-input:hover, .el-formulario .scrm-textarea:hover { border-color: #69727D; }
.el-formulario .scrm-input:focus, .el-formulario .scrm-textarea:focus { border-color: #69727D; box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .1); outline: 0; }
.el-formulario .scrm-submit-btn, .el-formulario .scrm-submit-btn:hover { display: block; box-sizing: border-box; width: 100%; height: 40px; min-height: 0; margin: 0; padding: 12px 24px; background: var(--wp--preset--color--principal); border: 0; border-radius: 3px; box-shadow: none; color: #fff; font-family: var(--wp--preset--font-family--texto); font-size: 15px; font-weight: 500; line-height: 15px; letter-spacing: 0; text-align: center; text-transform: none; }

/* Reseñas: tres tarjetas a la vista, con las flechas en los 20 px que deja el carrusel a cada lado. */
.resenas .carrusel { --por-vista: 3; --carrusel-gap: 10px; margin-inline: auto; }
.carrusel--varios.carrusel > * { flex: 0 0 calc((100% - (var(--por-vista) - 1) * var(--carrusel-gap)) / var(--por-vista)) !important; max-width: none !important; width: auto; }
.carrusel--varios .carrusel__pista > * { flex: 0 0 calc((100% - (var(--por-vista) - 1) * var(--carrusel-gap)) / var(--por-vista)); }
.carrusel--varios.carrusel--armado { display: block !important; }
.carrusel--sin-puntos ~ .carrusel__controles { display: none; }
.resenas .carrusel__envoltorio .carrusel__flecha, .resenas .carrusel__envoltorio .carrusel__flecha:hover { top: 50%; width: 20px; height: 20px; color: rgba(237, 237, 237, .9); font-size: 20px; line-height: 20px; transform: translateY(-50%); }
.resenas .carrusel__envoltorio .carrusel__flecha--anterior { left: 10px; }
.resenas .carrusel__envoltorio .carrusel__flecha--siguiente { right: 10px; }
.resena { box-sizing: border-box; overflow: hidden; background: #fff; border: 1px solid #E1E8ED; border-radius: 5px; }
.resena > * { margin-block: 0; }
.resena__cabeza { align-items: flex-start; gap: 0; padding: 15px 15px 7px; background: rgba(2, 1, 1, .07); border-bottom: 1px solid #E1E8ED; font-family: var(--wp--preset--font-family--titulos); font-weight: 600; }
.resena__cabeza > .resena__foto { flex: 0 0 36px; width: 36px; min-width: 0; margin: 0; }
.resena__foto img.lazyload, .resena__foto img.lazyloading { --smush-placeholder-width: 36px !important; width: 36px !important; min-width: 0 !important; }
.resena__foto img { display: block; width: 36px; height: 36px; border-radius: 999px; object-fit: cover; }
.resena__cabeza > .resena__datos { display: flex; flex-direction: column; margin-left: 9px; font-size: 14px; line-height: 21px; }
.resena__datos > * { margin-block: 0; }
.resena__nombre { color: #1C2022; }
.resena__cargo { color: #697882; font-size: 12.5px; font-weight: 400; line-height: 18.75px; }
.resena__texto { padding: 7px 15px 15px; color: var(--wp--preset--color--gris-texto); font-size: 14px; line-height: 20px; }
.aq-estrellas { display: block; height: 21px; line-height: 21px; }
.aq-estrellas__una { display: inline-block; width: 14px; height: 21px; vertical-align: top; }
.aq-estrellas__una::before { display: block; color: #F0AD4E; font-family: "aq-elementor"; font-size: 14px; font-weight: 600; line-height: 21px; content: "\e934"; }

/* Video de fondo (bloque aquality/video-fondo): cubre la sección sin deformarse. */
.aq-video-fondo.aq-video-fondo { position: absolute; inset: 0; overflow: hidden; margin: 0; max-width: none; container-type: size; pointer-events: none; }
.aq-video-fondo iframe { position: absolute; top: 50%; left: 50%; width: max(100cqw, calc(100cqh * 16 / 9)); height: max(100cqh, calc(100cqw * 9 / 16)); max-width: none; border: 0; transform: translate(-50%, -50%); }

/* Carrusel de la portada de Food Service (Jet Slider). */
.jet-carrusel .carrusel__controles, .jet-carrusel .carrusel__flecha { display: none; }
.jet-carrusel .carrusel__pista > .wp-block-image, .jet-carrusel .carrusel > .wp-block-image { position: relative; overflow: hidden; margin: 0; background: #333; }
.jet-carrusel .carrusel__pista > .wp-block-image::after, .jet-carrusel .carrusel > .wp-block-image::after { content: ""; position: absolute; inset: 0; background: #333; opacity: .2; pointer-events: none; }
.jet-carrusel .wp-block-image img { display: block; width: 100%; object-fit: cover; }
@media (min-width: 481px) and (max-width: 766px) {
  .wp-block-gallery.el-galeria--justificada { grid-template-columns: repeat(8, minmax(0, 1fr)) !important; }
}

/* ------------------------------------------------------------------ cabecera sobre el hero corto */
header.wp-block-template-part { position: relative; z-index: 90; }
@media (max-width: 1024px) {
  header.wp-block-template-part { position: sticky; top: 0; }
}

/* ------------------------------------------------------------------ títulos de la tienda y de la receta */
.titulo-tienda { box-sizing: border-box; margin-block: 50px; padding: 10px; }
.titulo-tienda > h1, .titulo-tienda > h2 { margin: 0; color: var(--wp--preset--color--secundario); font-family: var(--wp--preset--font-family--titulos); font-weight: 600; text-align: center; }
.titulo-tienda > h2 { font-size: 32px; line-height: 32px; }
.titulo-tienda > h1 { font-size: 40px; line-height: 40px; }
.titulo-tienda > .wp-block-separator { width: 60px; height: 2px; margin: 15px auto; background: var(--wp--preset--color--principal); border: 0; color: var(--wp--preset--color--principal); }
.titulo-tienda--cuenta > .wp-block-separator { margin-block: 5px; }
.titulo-tienda--receta { margin-block: 0; padding: 60px 10px; background: var(--wp--preset--color--gris); }
@media (max-width: 1024px) {
  .titulo-tienda { padding-inline: 60px; }
}
@media (max-width: 767px) {
  .titulo-tienda { padding-inline: 30px; }
}
/* El título de la receta conserva los 10 px por lado de Elementor en tableta y celular: con 60 y 30, los títulos largos pasaban a
   otra línea a 375 (barrido del 8-nov: cuatro recetas, 39 px). */
@media (max-width: 1024px) {
  .titulo-tienda.titulo-tienda--receta { padding-inline: 10px; }
}

/* ------------------------------------------------------------------ carrito, checkout y Mi cuenta: la caja; lo de adentro está en tienda-clasica.css */
.tienda-seccion { margin-block: 0; }
.tienda-seccion > .tienda-clasica { box-sizing: border-box; max-width: 1140px; margin: 0 auto 100px; padding: 10px; }
.tienda-seccion > .tienda-clasica.aq-checkout { margin-bottom: 50px; }
.tienda-seccion > .tienda-clasica.aq-cuenta { margin-bottom: 80px; }

/* ------------------------------------------------------------------ receta */
.receta-seccion { margin-block: 0; }
.receta-seccion > .receta { box-sizing: border-box; max-width: 700px; margin: 0 auto 100px; padding: 10px; color: var(--wp--preset--color--gris-texto); }
.receta > * { margin-block: 0; }
.receta__contenido { display: flow-root; font-size: 16px; line-height: 24px; }
.receta .receta__contenido > * { margin-block: 0; }
/* Una cita («Nota: …») guarda el margen de 1em del navegador, como en Elementor (guiso de choritos: 24 px). */
.receta .receta__contenido > blockquote, .ficha .ficha__descripcion > blockquote { margin-block: 16px; }
.receta .receta__contenido > h3 { margin: 8px 0 16px; color: var(--wp--preset--color--secundario); font-family: var(--wp--preset--font-family--titulos); font-size: 28px; font-weight: 600; line-height: 33.6px; }
.receta__contenido ul, .receta__contenido ol { padding-left: 40px; }
.receta .receta__navegacion { position: relative; display: flex; justify-content: space-between; min-height: 36px; margin-top: 20px; }
.receta__navegacion::before { content: ""; position: absolute; top: 0; bottom: 0; left: 50%; width: 1px; background: #D5D8DC; }
.receta .receta__navegacion > .wp-block-post-navigation-link { display: flex; flex: 0 0 calc(50% - .5px); align-items: center; gap: 15px; min-width: 0; margin: 0; }
.receta .receta__navegacion > .post-navigation-link-next { justify-content: flex-end; margin-left: auto; text-align: end; }
.receta__navegacion a { display: flex; flex-direction: column; min-width: 0; text-decoration: none; }
.receta__navegacion [class*="__arrow-"] { display: flex; flex: 0 0 15px; width: 15px; margin: 0; color: #D5D8DC; font-size: 0; line-height: 0; }
.receta__navegacion [class*="__arrow-"]::before { font-family: "aq-solidos"; font-size: 30px; font-weight: 400; line-height: 30px; content: "\f104"; transform: translateY(-1.5px); }
.receta__navegacion [class*="__arrow-next"]::before { content: "\f105"; }
.receta__navegacion .post-navigation-link__label { color: var(--wp--preset--color--gris-texto); font-family: var(--wp--preset--font-family--titulos); font-size: 12.8px; line-height: 19.2px; text-transform: uppercase; }
.receta__navegacion .post-navigation-link__title { color: var(--wp--preset--color--secundario); font-family: var(--wp--preset--font-family--titulos); font-size: 11.2px; line-height: 16.8px; }

/* ------------------------------------------------------------------ ficha: variaciones y botón, sobre las reglas de WooCommerce */
.ficha__compra .ficha__compra-variaciones { display: contents; }
.woocommerce div.product .ficha__compra form.cart .variations { display: table; width: 100%; margin: 0; border: 0; border-collapse: collapse; font-size: 14.4px; line-height: 21.6px; }
/* Sin el gris de Hello Elementor (una fila sí y otra no de cada tabla, rgba(128,128,128,.07)): Alvaro lo pidió transparente en
   la revisión del 8-nov, «para que no se vea ese gris». Es lo único de la fila que se aparta de Elementor. */
.woocommerce div.product .ficha__compra form.cart .variations th.label { box-sizing: border-box; width: 24.65%; white-space: nowrap; padding: 0 15px; background: transparent; font-size: 14.4px; font-weight: 700; line-height: 28.8px; text-align: center; vertical-align: top; }
.woocommerce div.product .ficha__compra form.cart .variations label { display: inline-block; color: #222; font-size: 16px; font-weight: 700; line-height: 16px; vertical-align: middle; }
.woocommerce div.product .ficha__compra form.cart .variations td.value { padding: 0 15px 0 0; background: transparent; font-size: 14.4px; line-height: 28.8px; vertical-align: top; }
.woocommerce div.product .ficha__compra form.cart .variations select { box-sizing: border-box; width: 100%; height: 42px; margin-right: 16px; padding: 8px 48px 8px 16px; background-color: #fff; border: 1px solid var(--wp--preset--color--gris-texto); border-radius: 3px; color: #000; font-family: var(--wp--preset--font-family--texto); font-size: 16px; line-height: 24px; }
.woocommerce div.product .ficha__compra form.cart .reset_variations { color: #008080; font-size: 11.952px; line-height: 28.8px; }
.woocommerce div.product .ficha__compra form.cart .quantity { margin: 0; }
.woocommerce div.product .ficha__compra form.cart .quantity input.qty { display: inline-block; margin: 0; padding: 0; font-family: var(--wp--preset--font-family--texto); vertical-align: top; }
.woocommerce div.product .ficha__compra form.cart .single_add_to_cart_button.button.alt { margin-left: 10px; background-color: var(--wp--preset--color--enfasis); }
.woocommerce div.product .ficha__compra form.cart .single_add_to_cart_button.button.alt:hover { background-color: var(--wp--preset--color--principal); }
/* La letra y el peso del texto, como el Kit de Elementor (`.elementor-kit-12 a`): un enlace dentro de una negrita o de un span con
   otra letra no los hereda. El barrido del 8-nov lo marcó en tres fichas (Gyosas, la del «aquí» y la del «link» en Arial). */
.ficha .ficha__descripcion a { color: #CC3366; font-family: var(--wp--preset--font-family--texto); font-weight: 400; }
.ficha .ficha__descripcion a:hover { color: #333366; }

/* ------------------------------------------------------------------ 404: el aviso de la página que no existe */
/* Elementor no tenía aviso (la línea sola, sin título ni texto); Alvaro pidió crearlo en la revisión del 8-nov. El título va como
   los de las páginas (Contáctanos), el texto como las descripciones y los botones como «Seguir comprando». Los textos salen de
   «Datos del sitio» (sitio_404_*). */
.error-404 { margin-block: 0; padding: 60px 10px 100px; text-align: center; }
.error-404 > * { margin-inline: auto; }
.error-404 .error-404__titulo { margin-block: 0; color: var(--wp--preset--color--secundario); font-family: var(--wp--preset--font-family--titulos); font-size: 40px; font-weight: 600; line-height: 1; }
.error-404 .wp-block-separator.error-404__linea { width: 60px; height: 2px; margin-block: 15px 0; border: 0; background: var(--wp--preset--color--principal); color: var(--wp--preset--color--principal); opacity: 1; }
.error-404 .error-404__texto { max-width: 560px; margin-block: 30px 0; color: var(--wp--preset--color--gris-texto); font-family: var(--wp--preset--font-family--texto); font-size: 18px; line-height: 1.5; }
.error-404 .aq-buscador.error-404__buscador { flex: none; width: 100%; max-width: 420px; margin-block: 25px 0; padding: 0; }
.error-404 .aq-buscador.error-404__buscador .aq-buscador__resultados { left: 0; right: 0; text-align: start; }
.error-404 .error-404__botones { margin-block: 25px 0; gap: 12px; }
.error-404 .error-404__botones .wp-block-button__link { padding: 12px 24px; border: 1px solid var(--wp--preset--color--principal); border-radius: 3px; background: var(--wp--preset--color--principal); color: var(--wp--preset--color--blanco); font-family: var(--wp--preset--font-family--texto); font-size: 12px; font-weight: 700; letter-spacing: 1.5px; line-height: 12px; text-transform: uppercase; transition: all .3s; }
.error-404 .error-404__botones .error-404__boton-borde .wp-block-button__link { background: transparent; color: var(--wp--preset--color--principal); }
.error-404 .error-404__botones .wp-block-button__link:hover, .error-404 .error-404__botones .wp-block-button__link:focus { border-color: var(--wp--preset--color--enfasis); background: var(--wp--preset--color--enfasis); color: var(--wp--preset--color--blanco); }
@media (max-width: 767px) {
  .error-404 { padding: 40px 20px 80px; }
  .error-404 .error-404__titulo { font-size: 30px; }
  .error-404 .error-404__texto { font-size: 16px; }
}

/* ------------------------------------------------------------------ catálogo y ficha en tablet y celular, medidos en Elementor */
@media (max-width: 1024px) {
  .catalogo:not(.catalogo--portada) { padding-inline: 60px; }
  .catalogo:not(.catalogo--portada) .wc-block-product-template { gap: 40px !important; }
  .ficha.ficha { padding-inline: 50px; }
  .ficha__columnas.ficha__columnas { flex-wrap: wrap !important; }
  .ficha__columnas > .wp-block-column { flex: 0 0 100% !important; width: 100% !important; }
  .ficha__columnas > .ficha__resumen { margin-top: 50px; padding: 10px !important; }
  .catalogo__orden.catalogo__orden { padding-right: .4%; }
  .catalogo__orden .woocommerce.wc-block-catalog-sorting select.orderby { width: calc((100vw - 120px) * .2239); }
}
@media (max-width: 767px) {
  .catalogo:not(.catalogo--portada) { padding-inline: 10px; }
  .catalogo:not(.catalogo--portada) .wc-block-product-template { gap: 10px !important; }
  .catalogo:not(.catalogo--portada).catalogo { padding-bottom: 115px !important; }
  .ficha.ficha { padding-inline: 20px; }
  .ficha__compra { width: 100%; }
}
.receta__navegacion .post-navigation-link__title { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media (max-width: 767px) {
  .catalogo__orden.catalogo__orden { display: block; margin-bottom: 25px; padding-top: 1px; padding-right: 0; }
  .catalogo__orden.catalogo__orden > p { margin: 5px 20px 0 0; text-align: right; }
  .catalogo__orden .woocommerce.wc-block-catalog-sorting select.orderby { width: 100%; max-width: none; }
  .boletin { --wp--preset--font-size--display: 30px; }
  .boletin .boletin__contenido h2 { font-size: 30px; line-height: 30px; }
}
.woocommerce div.product .ficha__compra .woocommerce-variation-add-to-cart { width: 100%; margin: 0; padding: 0; }
.tarjeta-producto .wc-block-components-product-image .wc-block-components-product-sale-badge { top: 10px; right: 10px; display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box; padding: 10px; background: var(--wp--preset--color--rojo); border: 0; border-radius: 100px; color: var(--wp--preset--color--blanco); font-size: 18px; line-height: normal; text-transform: none; }
.woocommerce div.product .ficha__compra form.variations_form { display: block; }

/* ------------------------------------------------------------------ 404 y búsqueda: como los deja Elementor con Hello */
.receta-seccion--vacia { height: 40px; margin-bottom: 100px; }
main.contenido > .receta-seccion--vacia { margin-bottom: 100px; }
.recetas .recetas__lista .es-actual a { color: var(--wp--preset--color--principal); }
main.contenido > .busqueda { box-sizing: border-box; width: 100%; max-width: none; margin-inline: auto; padding-inline: 10px; }
@media (min-width: 576px) { main.contenido > .busqueda { max-width: 500px; padding-inline: 0; } }
@media (min-width: 768px) { main.contenido > .busqueda { max-width: 600px; } }
@media (min-width: 992px) { main.contenido > .busqueda { max-width: 800px; } }
@media (min-width: 1200px) { main.contenido > .busqueda { max-width: 1140px; } }
.busqueda > *, .busqueda .wp-block-query > * { margin-block: 0; }
.busqueda h1.wp-block-query-title { margin: 8px 0 16px; color: var(--wp--preset--color--secundario); font-family: var(--wp--preset--font-family--titulos); font-size: 40px; font-weight: 600; line-height: 48px; }
@media (max-width: 575px) { .busqueda h1.wp-block-query-title { padding-inline: 10px; } }
.busqueda .busqueda__lista { margin: 0; padding: 0; list-style: none; }
.busqueda .busqueda__lista > li { margin: 0; }
.busqueda .busqueda__lista > li > * { margin-block: 0; }
.busqueda h2.wp-block-post-title { margin: 8px 0 16px; color: var(--wp--preset--color--secundario); font-family: var(--wp--preset--font-family--titulos); font-size: 32px; font-weight: 600; line-height: 38.4px; }
.busqueda h2.wp-block-post-title a { display: inline; color: #CC3366; font-family: var(--wp--preset--font-family--texto); font-weight: 400; text-decoration: none; }
.busqueda h2.wp-block-post-title a:hover { color: #333366; }
.busqueda .wp-block-post-featured-image { margin: 0; }
.busqueda .wp-block-post-featured-image a { display: inline; }
.busqueda .wp-block-post-featured-image img { display: inline; width: 100%; max-height: 500px; object-fit: cover; vertical-align: baseline; }
.busqueda .wp-block-post-excerpt { margin: 0; }
.busqueda .wp-block-post-excerpt__excerpt { margin: 0; color: var(--wp--preset--color--gris-texto); font-size: 16px; line-height: 24px; }
.busqueda .busqueda__paginas { display: flex; justify-content: space-between; margin-block: 20px; }
.busqueda .busqueda__paginas a { color: #CC3366; text-decoration: none; }
.busqueda .busqueda__paginas a:hover { color: #333366; }
.busqueda .wp-block-query-no-results p { margin: 0; color: var(--wp--preset--color--gris-texto); }
.busqueda .busqueda__paginas [class*="-arrow"] { margin-inline: .25em 0; }
.busqueda .busqueda__paginas .wp-block-query-pagination-previous-arrow { margin-inline: 0 .25em; }

/* ------------------------------------------------------------------ Estados con el cursor, medidos en Elementor (2-nov) */
/* Botón de los banners: verde, como el botón de Elementor (transición de .3 s). */
.banner__boton .wp-block-button__link { transition: all .3s; }
.banner__boton .wp-block-button__link:hover, .banner__boton .wp-block-button__link:focus { background: var(--wp--preset--color--enfasis); color: var(--wp--preset--color--blanco); }
/* Galerías: el velo por defecto de la galería de Elementor Pro. */
.wp-block-gallery.logos > figure.wp-block-image, .wp-block-gallery.el-galeria > figure.wp-block-image { position: relative; }
.wp-block-gallery.logos > figure.wp-block-image::after, .wp-block-gallery.el-galeria > figure.wp-block-image::after { content: ""; position: absolute; inset: 0; background-color: transparent; transition: background-color .8s; pointer-events: none; }
.wp-block-gallery.logos > figure.wp-block-image:hover::after, .wp-block-gallery.el-galeria > figure.wp-block-image:hover::after { background-color: rgba(0, 0, 0, .5); }
/* Boletín: el texto del botón se pone blanco. */
.boletin .boletin__formulario .scrm-submit-btn { transition: all .3s; }
.boletin .boletin__formulario .scrm-submit-btn:hover, .boletin .boletin__formulario .scrm-submit-btn:focus { color: var(--wp--preset--color--blanco); }
/* Redes del pie: el ícono no cambia de color; el enlace baja a .9 de opacidad. */
.pie__redes .aq-icono { transition: opacity .3s; }
.pie__redes .aq-icono:hover { color: var(--wp--preset--color--secundario); opacity: .9; }
/* Categorías de recetas: celeste al pasar el cursor. */
.recetas__lista .wp-block-term-name a { transition: color .4s; }
.recetas__lista .wp-block-term-name a:hover { color: var(--wp--preset--color--principal); }

/* Botón de compra de la tarjeta: los estados del botón clásico de WooCommerce que mostraba la tarjeta de Jet (cargando, y un
   check cuando ya se agregó) y sin el enlace «Ver carrito», que la tarjeta de Jet no mostraba. */
.tarjeta-producto .wp-block-woocommerce-product-button .wc-block-components-product-button__button { position: relative; }
.tarjeta-producto .wp-block-woocommerce-product-button .wc-block-components-product-button__button.loading { opacity: .25; padding-right: 2.618em; }
.tarjeta-producto .wp-block-woocommerce-product-button .wc-block-components-product-button__button.loading::after { position: absolute; top: .618em; right: 1em; font-family: "aq-woocommerce"; font-weight: 400; vertical-align: top; content: "\e01c"; animation: aq-girar 2s linear infinite; }
.tarjeta-producto .wp-block-woocommerce-product-button .wc-block-components-product-button__button.added::after { margin-left: .53em; font-family: "aq-woocommerce"; vertical-align: bottom; content: "\e017"; }
.tarjeta-producto .wp-block-woocommerce-product-button .added_to_cart { display: none !important; }
@keyframes aq-girar { 100% { transform: rotate(360deg); } }

/* Barra superior: el ícono se pone blanco al pasar el cursor por su ítem, como la lista de iconos de Elementor (.3 s). */
.barra-superior__item .aq-icono { transition: color .3s; }
.barra-superior__item a.aq-icono:hover, .barra-superior__item:has(a:hover) > .aq-icono { color: var(--wp--preset--color--blanco); }
/* Ficha: el botón de compra cambia de color en .2 s, como el de Elementor. */
.woocommerce div.product .ficha__compra .single_add_to_cart_button { transition: all .2s; }

/* ------------------------------------------------------------------ volver arriba */

/* El botón fijo abajo a la derecha (bloque aquality/arriba, en el pie): aparece al bajar más de una pantalla. Va debajo de la
   cabecera (90), del menú del celular (100) y del carro lateral (9998), para no taparlos. Pedido por Alvaro el 9-nov-2026. */
.aq-arriba {
	position: fixed; right: 24px; bottom: 24px; z-index: 80;
	display: flex; align-items: center; justify-content: center;
	width: 46px; height: 46px; margin: 0; padding: 0;
	border: 0; border-radius: 999px;
	background: var(--wp--preset--color--marino); color: var(--wp--preset--color--blanco);
	box-shadow: 0 4px 14px rgba(2, 41, 76, .3);
	cursor: pointer;
	opacity: 0; visibility: hidden; transform: translateY(12px);
	transition: opacity .3s, visibility .3s, transform .3s, background-color .3s;
}
.aq-arriba.esta-visible { opacity: 1; visibility: visible; transform: none; }
.aq-arriba:hover,
.aq-arriba:focus-visible { background: var(--wp--preset--color--principal); color: var(--wp--preset--color--blanco); }
.aq-arriba:focus-visible { outline: 2px solid var(--wp--preset--color--marino); outline-offset: 3px; }
.aq-arriba__flecha { display: block; }
.aq-arriba--editor { position: static; margin: 16px auto; opacity: 1; visibility: visible; transform: none; }
@media (max-width: 767px) { .aq-arriba { right: 16px; bottom: 16px; width: 44px; height: 44px; } }
@media (prefers-reduced-motion: reduce) { .aq-arriba { transition: none; } }
@media print { .aq-arriba { display: none; } }
