/* ==========================================================================
   SALUDABLES Market · woocommerce.css — compatibilidad con flujos nativos.
   No se sobrescriben carrito/checkout/cuenta: solo se visten con la marca.
   ========================================================================== */

.woocommerce-page main, .woocommerce main { background: transparent; }

/* Botones del plugin con voz de marca. */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit {
	background: var(--saludables-leaf); color: #fff; border-radius: 999px;
	padding: .8rem 1.6rem; font-weight: 700; border: 2px solid var(--saludables-leaf);
}
.woocommerce a.button:hover, .woocommerce button.button:hover,
.woocommerce input.button:hover, .woocommerce #respond input#submit:hover {
	background: var(--saludables-leaf-dark); border-color: var(--saludables-leaf-dark); color: #fff;
}
.woocommerce a.button.alt, .woocommerce button.button.alt {
	background: var(--saludables-deep); border-color: var(--saludables-deep);
}
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover { background: var(--saludables-deep-2); }

/* Precios con la moneda configurada en WooCommerce. */
.woocommerce div.product p.price, .woocommerce div.product span.price,
.woocommerce ul.products li.product .price {
	color: var(--saludables-deep); font-weight: 700;
}
.woocommerce div.product p.price del, .woocommerce ul.products li.product .price del {
	color: var(--saludables-muted); font-weight: 400;
}

/* Imágenes uniformes en listados nativos. */
.woocommerce ul.products li.product a img {
	aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--saludables-r-lg);
}
.woocommerce ul.products li.product {
	background: #fff; border: 1px solid var(--saludables-line);
	border-radius: var(--saludables-r-lg); padding: .8rem; text-align: left;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--saludables-font-display); font-size: 1.02rem; color: var(--saludables-ink);
}

/* Ficha: galería contenida, sin columna gigante ni fragmentos del slider. */
.saludables-single__gallery { overflow: hidden; min-width: 0; }
/* Contenedor del bloque principal: 1160 px, borde tenue, sombra suave. */
.saludables-product-single .container { max-width: 72.5rem; }
.saludables-single__card {
	background: #fff; border: 1px solid var(--saludables-line);
	border-radius: 1.25rem; padding: clamp(1.5rem, 3vw, 2.25rem);
	box-shadow: var(--saludables-shadow-md); min-width: 0; max-width: 100%;
	box-sizing: border-box; overflow-wrap: break-word;
}
/* Dos columnas reales: flex con base 52/48, no bootstrap `row`. */
.saludables-single__grid { display: flex; flex-wrap: wrap; align-items: flex-start; margin: 0; row-gap: clamp(1.75rem, 3vw, 2.5rem); }
.saludables-single__grid > .saludables-single__col-media,
.saludables-single__grid > .saludables-single__col-info { flex: 0 0 100%; max-width: 100%; padding: 0; }
@media (min-width: 992px) {
	.saludables-single__grid { flex-wrap: nowrap; row-gap: 0; column-gap: clamp(2rem, 3.5vw, 3rem); }
	.saludables-single__grid > .saludables-single__col-media { flex: 0 0 52%; max-width: 52%; }
	.saludables-single__grid > .saludables-single__col-info { flex: 0 0 48%; max-width: 48%; }
}
.saludables-single__gallery .woocommerce-product-gallery { max-width: 100%; margin-bottom: 0 !important; min-width: 0; }
.woocommerce div.product div.images { float: none !important; width: 100% !important; max-width: 100%; margin-bottom: 0; min-width: 0; }
.woocommerce div.product div.images .woocommerce-product-gallery__wrapper { width: 100%; max-width: 100%; margin: 0; }
.woocommerce div.product div.images .flex-viewport { border-radius: var(--saludables-r-lg); overflow: hidden !important; max-width: 100%; }
.woocommerce div.product div.images .flex-viewport .slides { width: 100% !important; margin: 0; }
.woocommerce div.product div.images .flex-viewport .slides > li { width: 100% !important; margin: 0 !important; float: none !important; }
.woocommerce div.product div.images img {
	border-radius: var(--saludables-r-lg); aspect-ratio: 4 / 5; object-fit: cover;
	width: 100%; height: auto; max-height: 34rem; display: block; background: var(--saludables-cream);
}
.woocommerce div.product div.images .flex-control-thumbs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .6rem; margin: .7rem 0 0; padding: 0; list-style: none; }
.woocommerce div.product div.images .flex-control-thumbs li { width: 100% !important; float: none !important; margin: 0 !important; min-width: 0; }
.woocommerce div.product div.images .flex-control-thumbs img { aspect-ratio: 1 / 1; object-fit: cover; width: 100%; height: 100%; max-height: none; border-radius: var(--saludables-r-sm); cursor: pointer; border: 2px solid transparent; }
.woocommerce div.product div.images .flex-control-thumbs img.flex-active, .woocommerce div.product div.images .flex-control-thumbs img:hover { border-color: var(--saludables-leaf); }
/* La lupa/zoom nativo queda desactivado: usamos lightbox propio. */
.woocommerce div.product div.images .zoomImg { display: none !important; }
.woocommerce div.product .product_title { font-size: clamp(1.7rem, 3.5vw, 2.4rem); }
.woocommerce div.product form.cart { display: flex; flex-wrap: wrap; gap: .7rem; align-items: center; }
.woocommerce div.product form.variations_form.cart { flex-direction: column; align-items: stretch; }
.woocommerce div.product form.cart .button { border-radius: 999px; }
.woocommerce div.product form.cart div.quantity .qty, .woocommerce .quantity .qty { border-radius: 999px; border: 1px solid var(--saludables-line); padding: .65rem .8rem; max-width: 4.5rem; text-align: center; font-weight: 700; }
/* Ficha 1.13 — variaciones en un solo sistema: grupos apilados.
   Etiqueta arriba, píldoras debajo, “Restablecer” discreto. Sin JS, el
   select nativo sigue visible y estilizado (respaldo). */
.woocommerce div.product form.variations_form table.variations { border: 0; margin: 0 0 .9rem; display: block; }
.woocommerce div.product form.variations_form table.variations tbody { display: grid; gap: .9rem; }
.woocommerce div.product form.variations_form table.variations tr { display: grid; gap: .45rem; }
.woocommerce div.product form.variations_form table.variations th,
.woocommerce div.product form.variations_form table.variations td { display: block; border: 0; padding: 0; vertical-align: baseline; min-width: 0; }
.woocommerce div.product form.variations_form table.variations th label { display: block; font-weight: 700; font-size: .92rem; letter-spacing: .02em; color: var(--saludables-deep); margin: 0; overflow-wrap: break-word; }
.woocommerce div.product form.variations_form table.variations td select {
	appearance: none; -webkit-appearance: none; width: 100%; max-width: 100%; cursor: pointer;
	background-color: #fff; border: 2px solid var(--saludables-line); border-radius: var(--saludables-r-md);
	color: var(--saludables-ink); font-weight: 600; font-size: .95rem; padding: .7rem 2.4rem .7rem 1rem;
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235c6f62' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right .85rem center; background-size: 1rem 1rem;
}
.woocommerce div.product form.variations_form table.variations td select:focus { outline: none; border-color: var(--saludables-leaf); box-shadow: 0 0 0 .25rem rgba(39, 133, 87, .15); }
.woocommerce div.product form.variations_form table.variations td select.saludables-var-select--enhanced { display: none; }
/* Etiqueta nativa del atributo (p. ej. `<label for="parfait">PARFAIT</label>`).
 *
 * El selector nativo queda oculto y fuera del árbol de accesibilidad
 * (`aria-hidden`, `tabindex="-1"`) porque las píldoras son el control real, y
 * esas píldoras ya llevan el nombre del atributo en su `aria-label`
 * (`attrLabel()` en main.js lee el `textContent` de esta etiqueta, así que
 * seguir en el DOM no estorba). Mantenerla en pantalla solo duplicaba el
 * nombre: se leía dos veces en pantalla y también dos veces con lector de
 * pantalla.
 *
 * El selector va anclado a `.saludables-single__summary` y no a `div.product`
 * porque `woocommerce/single-product.php` no envuelve la ficha en
 * `div.product`: ahí las reglas de `variations_form` con ese prefijo no
 * aplicaban. */
.saludables-single__summary form.variations_form table.variations th.label { display: none; }
/* “Restablecer selección”: botón fantasma, no enlace suelto. */
.woocommerce div.product .reset_variations {
	display: inline-flex; align-items: center; gap: .35rem;
	margin-top: .55rem; padding: .4rem .9rem; min-height: 2.5rem;
	border: 1px dashed var(--saludables-line); border-radius: var(--saludables-r-full);
	background: transparent; color: var(--saludables-muted);
	font-size: .85rem; font-weight: 600; text-decoration: none;
}
.woocommerce div.product a.reset_variations:hover { border-color: var(--saludables-leaf); color: var(--saludables-deep); background: var(--saludables-mint); }
.saludables-var-pills { display: flex; flex-wrap: wrap; gap: .55rem; max-width: 100%; }
.saludables-var-pill {
	display: inline-flex; align-items: center; gap: .45rem;
	min-height: 2.75rem; max-width: 100%; padding: .55rem 1.1rem;
	background: #fff; border: 2px solid var(--saludables-line); border-radius: var(--saludables-r-full);
	color: var(--saludables-ink); font-weight: 600; font-size: .95rem; line-height: 1.25;
	cursor: pointer; overflow-wrap: break-word;
	transition: border-color .18s, background .18s, transform .18s;
}
.saludables-var-pill:hover { border-color: var(--saludables-leaf); background: var(--saludables-mint); transform: translateY(-1px); }
.saludables-var-pill__check {
	display: none; align-items: center; justify-content: center;
	width: 1.25rem; height: 1.25rem; border-radius: 50%; flex-shrink: 0;
	background: var(--saludables-deep); color: #fff; font-size: .75rem; font-weight: 700;
}
.saludables-var-pill.is-selected { border-color: var(--saludables-deep); background: var(--saludables-mint); color: var(--saludables-deep); font-weight: 700; }
.saludables-var-pill.is-selected .saludables-var-pill__check { display: inline-flex; }
.saludables-var-pill.is-disabled { opacity: .45; cursor: not-allowed; text-decoration: line-through; }
.saludables-var-pill.is-disabled:hover { transform: none; background: #fff; border-color: var(--saludables-line); }
.saludables-var-pill:focus-visible { outline: 3px solid rgba(233, 190, 98, .9); outline-offset: 2px; }
/* Etiqueta de la variación. El enlace “Restablecer selección” ya no se imprime
   (ver saludables_variation_reset_link), asi que no hay reset que maquetar. */
.saludables-var-head { display: flex; align-items: center; gap: .75rem; flex-wrap: wrap; }
.saludables-var-head__label { min-width: 0; overflow-wrap: break-word; }
/* Precio de cada opción debajo del selector. Sustituye al rango del resumen,
   que WooCommerce no actualiza (y esta ficha no va en `div.product`). */
.saludables-var-prices {
	list-style: none; margin: .7rem 0 0; padding: 0;
	display: flex; flex-wrap: wrap; gap: .5rem;
}
.saludables-var-prices__item {
	display: inline-flex; align-items: baseline; gap: .4rem;
	padding: .3rem .7rem; border: 1px solid var(--saludables-line);
	border-radius: var(--saludables-r-md); background: #fff;
	font-size: .9rem; color: var(--saludables-muted); margin: 0;
}
.saludables-var-prices__item.is-active {
	border-color: var(--saludables-leaf); background: var(--saludables-mint);
}
.saludables-var-prices__label { font-weight: 600; color: var(--saludables-deep); }
.saludables-var-prices__value { font-weight: 700; color: var(--saludables-deep); }
.saludables-var-prices__value del { font-weight: 400; color: var(--saludables-muted); }
/* Con lista por opcion, WooCommerce repetiria el precio exacto dos veces. */
.saludables-single__summary .woocommerce-variation-price { display: none; }
/* Descripción de la variación (WooCommerce la imprime en `.variation.php`).
 *
 * Si el producto tiene descripción larga propia, esa tarjeta ya se muestra
 * debajo del bloque principal y el texto se repetiría literalmente en la
 * misma pantalla, así que se oculta la de la variación. La marca
 * `saludables-single--has-description` la pone `woocommerce/single-product.php`
 * solo cuando la descripción existe: en un producto sin descripción larga la
 * variante se conserva, porque es el único sitio donde aparece el texto. */
.saludables-single--has-description .woocommerce-variation-description { display: none; }
/* Estado de la variación junto al selector. */
.saludables-var-status { font-size: .92rem; font-weight: 600; color: var(--saludables-deep); background: var(--saludables-mint); border-radius: var(--saludables-r-md); padding: .6rem .9rem; margin: .4rem 0 0; max-width: 100%; overflow-wrap: break-word; }
.saludables-var-status[hidden] { display: none; }
/* Botones: jerarquía y estados reales (aria-disabled, añadiendo, añadido). */
.woocommerce div.product .single_add_to_cart_button.is-gated,
.saludables-single__wa.is-gated { opacity: .65; }
.woocommerce div.product .single_add_to_cart_button.is-gated { cursor: not-allowed; }
.saludables-added-note { font-weight: 700; color: var(--saludables-leaf-dark); background: var(--saludables-mint); border-radius: var(--saludables-r-md); padding: .6rem .9rem; margin: .6rem 0 0; overflow-wrap: break-word; }
@media (max-width: 540px) {
	.saludables-var-pill { flex: 1 1 calc(50% - .55rem); justify-content: center; }
	.saludables-var-status { font-size: .88rem; }
}
@media (prefers-reduced-motion: reduce) {
	.saludables-var-pill, .saludables-var-pill:hover { transform: none; }
}
/* Pestañas como pastillas, no lista sin estilo. */
.woocommerce div.product .woocommerce-tabs { margin-top: 1rem; }
.woocommerce div.product .woocommerce-tabs ul.tabs { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 1rem; padding: 0; list-style: none; border: 0; overflow: visible; }
.woocommerce div.product .woocommerce-tabs ul.tabs::before, .woocommerce div.product .woocommerce-tabs ul.tabs::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { border: 1px solid var(--saludables-line); background: #fff; border-radius: 999px; padding: 0; margin: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { display: block; padding: .6rem 1.2rem; font-weight: 700; color: var(--saludables-deep); text-decoration: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { background: var(--saludables-deep); border-color: var(--saludables-deep); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: #fff; }
.woocommerce div.product .woocommerce-tabs .panel { background: #fff; border: 1px solid var(--saludables-line); border-radius: var(--saludables-r-lg); padding: 1.6rem 1.6rem; box-shadow: var(--saludables-shadow-sm); }
.woocommerce div.product .woocommerce-tabs .panel h2 { font-size: 1.3rem; margin: 0 0 .8rem; color: var(--saludables-deep); display: flex; align-items: center; gap: .5rem; }
.woocommerce div.product .woocommerce-tabs .panel h2::before { content: ""; width: 1.6rem; height: .25rem; border-radius: 999px; background: var(--saludables-honey); }
.woocommerce div.product .woocommerce-tabs .panel > p:first-of-type { font-size: 1.06rem; }
.woocommerce div.product .woocommerce-tabs .panel p { line-height: 1.8; color: var(--saludables-ink); }
.woocommerce div.product .woocommerce-tabs .panel ul, .woocommerce div.product .woocommerce-tabs .panel ol { line-height: 1.8; color: var(--saludables-muted); padding-left: 1.2rem; }
.woocommerce div.product .woocommerce-tabs .panel ul { list-style: none; padding-left: 0; }
.woocommerce div.product .woocommerce-tabs .panel ul li { position: relative; padding-left: 1.6rem; margin-bottom: .4rem; }
.woocommerce div.product .woocommerce-tabs .panel ul li::before { content: "✓"; position: absolute; left: 0; top: .1rem; display: inline-flex; align-items: center; justify-content: center; width: 1.1rem; height: 1.1rem; border-radius: 50%; background: var(--saludables-mint); color: var(--saludables-leaf-dark); font-size: .7rem; font-weight: 700; }
/* Meta de la ficha en pastillas. */
.woocommerce div.product .product_meta a, .woocommerce div.product .product_meta .sku {
	display: inline-block; background: var(--saludables-mint); color: var(--saludables-deep);
	border-radius: 999px; padding: .2rem .8rem; font-weight: 700; text-decoration: none;
}
.woocommerce div.product .product_meta a:hover { background: var(--saludables-deep); color: #fff; }
/* Breadcrumb discreto. */
.saludables-product-single .woocommerce-breadcrumb { display: flex; flex-wrap: wrap; gap: .35rem; align-items: center; }
/* Relacionados con el mismo sistema de tarjetas del catálogo. */
.woocommerce .related.products ul.products, .woocommerce .upsells.products ul.products { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(1rem, 2vw, 1.75rem); }
.woocommerce .related.products ul.products li.product, .woocommerce .upsells.products ul.products li.product { margin: 0; width: 100% !important; float: none !important; min-width: 0; }
@media (max-width: 1024px) { .woocommerce .related.products ul.products, .woocommerce .upsells.products ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 900px) { .woocommerce .related.products ul.products, .woocommerce .upsells.products ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 540px) { .woocommerce .related.products ul.products, .woocommerce .upsells.products ul.products { grid-template-columns: minmax(0, 1fr); } }
/* Tienda con tarjetas del tema: 3 cols escritorio, 2 tablet, 1 móvil. */
.saludables-shop__grid .col { display: flex; min-width: 0; }
.saludables-shop__grid .saludables-product { width: 100%; }
.saludables-shop__grid .saludables-product__media { aspect-ratio: 4 / 3; }
.saludables-shop__grid .saludables-product__media img { width: 100%; height: 100%; object-fit: cover; }

/* Tablas del carrito y avisos con la voz de la marca. */
.woocommerce table.shop_table { background: #fff; border: 1px solid var(--saludables-line); border-radius: var(--saludables-r-md); overflow: hidden; }
.woocommerce-message, .woocommerce-info, .woocommerce-error {
	border: 1px solid var(--saludables-line); border-left: 4px solid var(--saludables-leaf);
	background: #fff; border-radius: var(--saludables-r-md); padding: 1rem 1.2rem;
	display: flex; align-items: center; gap: .7rem; flex-wrap: wrap;
}
.woocommerce-error { border-left-color: var(--saludables-danger); }
.woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before { display: none; }
.woocommerce-message .button, .woocommerce-info .button { order: 2; margin-left: auto; }
/* Disponibilidad y meta de la ficha. */
.woocommerce div.product .stock { font-weight: 700; display: inline-flex; align-items: center; gap: .45rem; }
.woocommerce div.product .stock.in-stock { color: var(--saludables-leaf-dark); }
.woocommerce div.product .stock.in-stock::before { content: ""; width: .55rem; height: .55rem; border-radius: 50%; background: var(--saludables-leaf); }
.woocommerce div.product .stock.out-of-stock { color: var(--saludables-danger); }
.woocommerce div.product .product_meta { display: flex; flex-direction: column; gap: .3rem; margin-top: 1.1rem; padding-top: 1rem; border-top: 1px solid var(--saludables-line); }
.woocommerce div.product .product_meta > span { font-size: .86rem; }
.woocommerce div.product .product_meta a { font-weight: 600; }
.woocommerce div.product .woocommerce-product-rating { display: flex; align-items: center; gap: .5rem; }
.woocommerce .star-rating { color: var(--saludables-honey); }
/* Etiqueta de oferta integrada. */
.woocommerce span.onsale {
	background: var(--saludables-honey); color: var(--saludables-ink);
	font-weight: 700; border-radius: 999px; padding: .35rem .9rem; font-size: .78rem;
	min-height: 0; min-width: 0; line-height: 1.4;
}
/* Paginación en pastillas. */
.woocommerce nav.woocommerce-pagination ul { border: 0; display: flex; gap: .5rem; justify-content: center; flex-wrap: wrap; }
.woocommerce nav.woocommerce-pagination ul li { border: 0; }
.woocommerce nav.woocommerce-pagination ul li a, .woocommerce nav.woocommerce-pagination ul li span {
	display: inline-flex; align-items: center; justify-content: center; min-width: 2.6rem; height: 2.6rem;
	padding: 0 .8rem; border-radius: 999px; border: 1px solid var(--saludables-line); background: #fff; font-weight: 600;
}
.woocommerce nav.woocommerce-pagination ul li span.current { background: var(--saludables-deep); border-color: var(--saludables-deep); color: #fff; }
/* Reseñas legibles. */
.woocommerce #reviews #comments ol.commentlist li { background: #fff; border: 1px solid var(--saludables-line); border-radius: var(--saludables-r-md); padding: 1rem 1.2rem; margin-bottom: 1rem; }
.woocommerce #reviews #comments ol.commentlist li img.avatar { border-radius: 50%; }
.woocommerce #review_form #respond { background: #fff; border: 1px solid var(--saludables-line); border-radius: var(--saludables-r-md); padding: 1.3rem 1.4rem; }
.woocommerce #review_form #respond .comment-form-author input, .woocommerce #review_form #respond .comment-form-email input, .woocommerce #review_form #respond textarea { border: 1px solid var(--saludables-line); border-radius: var(--saludables-r-sm); padding: .7rem .9rem; }
/* Upsells con jerarquía de la casa. */
.woocommerce .upsells.products > h2, .woocommerce .related.products > h2 { font-size: 1.5rem; color: var(--saludables-deep); }

/* Formularios del checkout y la cuenta. */
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea,
.woocommerce form .form-row select {
	border: 1px solid var(--saludables-line); border-radius: var(--saludables-r-sm); padding: .7rem .9rem;
}
.woocommerce form .form-row input.input-text:focus, .woocommerce form .form-row textarea:focus {
	border-color: var(--saludables-leaf); box-shadow: 0 0 0 .25rem rgba(39, 133, 87, .15); outline: none;
}

/* Carrito por bloques: sin flujo de pago, el cierre es por WhatsApp. */
.wp-block-woocommerce-cart .wc-block-cart__submit-container,
.wp-block-woocommerce-cart .wc-block-cart__submit-button,
.wp-block-woocommerce-cart .wc-block-components-shipping-calculator,
.wp-block-woocommerce-cart .wc-block-components-totals-shipping__change-address,
.wp-block-woocommerce-cart a.wc-block-cart__submit-button { display: none !important; }
/* Botón WhatsApp en espera: evita clics con datos desactualizados. */
.saludables-btn.is-loading { pointer-events: none; opacity: .7; }
.saludables-whatsapp-error { color: var(--saludables-danger); font-size: .9rem; font-weight: 600; margin-top: .6rem; }
.saludables-whatsapp-total { font-size: 1.05rem; margin: .8rem 0 .2rem; color: var(--saludables-deep); }
.woocommerce .quantity .qty { max-width: 4.5rem; }
@media (max-width: 575px) {
	.woocommerce table.shop_table_responsive tr td::before { font-weight: 700; }
}

/* Contador y orden propios del tema (ver archive-product.php). */
.saludables-shop__count {
	margin: 0;
	font-size: .9rem;
	color: var(--saludables-muted);
}
.saludables-shop__order { display: flex; align-items: center; gap: .5rem; margin: 0; }
.saludables-shop__order select {
	appearance: none;
	-webkit-appearance: none;
	background-color: #fff;
	border: 1px solid var(--saludables-line);
	border-radius: 999px;
	color: var(--saludables-ink);
	font-size: .88rem;
	font-weight: 500;
	padding: .55rem 2.4rem .55rem 1rem;
	cursor: pointer;
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235c6f62' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right .85rem center;
	background-size: 1rem 1rem;
}
.saludables-shop__order select:hover { border-color: var(--saludables-leaf); }
.saludables-shop__order select:focus {
	outline: none;
	border-color: var(--saludables-leaf);
	box-shadow: 0 0 0 .25rem rgba(39, 133, 87, .15);
}
/* El <p> que WooCommerce crea alrededor del select no debe forzar salto. */
.woocommerce .woocommerce-ordering { display: block; margin: 0; padding: 0; }
.woocommerce .woocommerce-ordering .woocommerce-result-count { display: none; }
.saludables-product__price .woocommerce-Price-amount { font-weight: 700; }

/* Loop nativo (ul.products): 3 cols escritorio, 2 tablet, 1 móvil. */
.woocommerce ul.products { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1rem, 2vw, 1.75rem); margin: 0; padding: 0; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none; }
.woocommerce ul.products li.product { width: 100% !important; margin: 0 !important; float: none !important; min-width: 0; }
@media (max-width: 900px) { .woocommerce ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 540px) { .woocommerce ul.products { grid-template-columns: minmax(0, 1fr); } }

/* Bloques de Woo (Tienda por bloques): tarjetas con la voz de la marca. */
.wp-block-woocommerce-product-template, .wc-block-grid__products {
	display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1rem, 2vw, 1.75rem); margin: 0; padding: 0;
}
.wp-block-woocommerce-product-template li, .wc-block-grid__product { width: auto !important; max-width: none !important; margin: 0 !important; }
.wc-block-product, li.wc-block-product, .wp-block-woocommerce-product-template > li {
	background: #fff; border: 1px solid var(--saludables-line); border-radius: var(--saludables-r-lg);
	padding: .8rem; box-shadow: var(--saludables-shadow-sm);
}
.wc-block-product .wc-block-components-product-image img,
.wp-block-woocommerce-product-template .wp-block-woocommerce-product-image img {
	aspect-ratio: 4 / 3; object-fit: cover; width: 100%; border-radius: var(--saludables-r-md);
}
.wc-block-product .wp-block-woocommerce-product-title, .wc-block-product .wc-block-components-product-title {
	font-family: var(--saludables-font-display); font-size: 1.02rem; font-weight: 700;
}
.wc-block-product .wp-block-woocommerce-product-title a, .wc-block-product .wc-block-components-product-title a { color: var(--saludables-ink); text-decoration: none; }
.wc-block-product .price, .wc-block-product .wc-block-components-product-price { color: var(--saludables-deep); font-weight: 700; }
.wp-block-button.wc-block-components-product-button .wp-block-button__link {
	background: var(--saludables-leaf); border: 2px solid var(--saludables-leaf); color: #fff;
	border-radius: 999px; padding: .7rem 1.4rem; font-weight: 700;
}
.wp-block-button.wc-block-components-product-button .wp-block-button__link:hover { background: var(--saludables-leaf-dark); border-color: var(--saludables-leaf-dark); }
@media (max-width: 900px) { .wp-block-woocommerce-product-template, .wc-block-grid__products { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 540px) { .wp-block-woocommerce-product-template, .wc-block-grid__products { grid-template-columns: minmax(0, 1fr); } }

/* ==========================================================================
   Ficha 11.0.0 — bloque principal, descripción como tarjeta y relacionados.
   Orden, medidas y estados viven aquí; no hay reglas duplicadas en main.css.
   ========================================================================== */
.saludables-single__col-media, .saludables-single__col-info { min-width: 0; max-width: 100%; box-sizing: border-box; }
.saludables-single__summary { min-width: 0; max-width: 100%; box-sizing: border-box; }
.saludables-single__summary .product_title {
	font-size: clamp(1.7rem, 3.4vw, 2.35rem); line-height: 1.12; letter-spacing: -.015em;
	overflow-wrap: break-word; margin: 0 0 .45rem;
}
.saludables-single__summary > .price { font-size: clamp(1.35rem, 2.2vw, 1.7rem); margin: .55rem 0 .8rem; }
.saludables-single__summary .woocommerce-product-details__short-description { font-size: 1rem; line-height: 1.7; color: var(--saludables-muted); margin: 0 0 1.1rem; }
.saludables-single__summary .woocommerce-product-details__short-description p { margin: 0 0 .6rem; }
.saludables-single__summary .woocommerce-product-details__short-description p:last-child { margin-bottom: 0; }
/* Valoraciones de la ficha: discretas y en línea. */
.saludables-single__summary .woocommerce-product-rating { margin: 0 0 .5rem; }
.saludables-single__summary .woocommerce-product-rating .woocommerce-review-link { font-size: .85rem; color: var(--saludables-muted); }

/* Cantidad: control compacto de 44 px con menos, número y más. */
.woocommerce div.product form.cart { display: flex; flex-wrap: wrap; gap: .75rem; align-items: stretch; margin: 1.25rem 0 .6rem; box-sizing: border-box; min-width: 0; max-width: 100%; }
.woocommerce div.product form.cart div.quantity {
	display: inline-flex; align-items: center; gap: .25rem; margin: 0;
	border: 1px solid var(--saludables-line); border-radius: var(--saludables-r-full);
	background: #fff; padding: .2rem; min-height: 3rem;
}
.woocommerce div.product form.cart div.quantity .qty {
	width: 2.75rem; min-height: 2.5rem; padding: 0 .35rem; margin: 0;
	border: 0; border-radius: var(--saludables-r-sm); background: transparent;
	font-weight: 700; text-align: center; color: var(--saludables-ink);
	-moz-appearance: textfield; appearance: textfield;
}
.woocommerce div.product form.cart div.quantity .qty::-webkit-outer-spin-button,
.woocommerce div.product form.cart div.quantity .qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.woocommerce div.product form.cart div.quantity .qty:focus { outline: none; box-shadow: 0 0 0 .2rem rgba(39, 133, 87, .18); }
.saludables-qty__btn {
	display: inline-flex; align-items: center; justify-content: center;
	width: 2.5rem; height: 2.5rem; flex-shrink: 0; padding: 0;
	border: 0; border-radius: 50%; background: var(--saludables-mint);
	color: var(--saludables-deep); font-size: 1.2rem; font-weight: 700; line-height: 1;
	cursor: pointer; transition: background .18s, color .18s;
}
.saludables-qty__btn:hover { background: var(--saludables-deep); color: #fff; }
.saludables-qty__btn:focus-visible { outline: 3px solid rgba(233, 190, 98, .9); outline-offset: 2px; }

/* Franja de confianza: se lee como un bloque, no como una lista de enlaces. */
.saludables-single__trust {
	list-style: none; display: flex; flex-wrap: wrap; gap: .5rem 1.25rem;
	margin: 1rem 0 0; padding: 0; max-width: 100%;
}
.saludables-single__trust li {
	display: inline-flex; align-items: center; gap: .4rem;
	font-size: .85rem; font-weight: 600; color: var(--saludables-muted); min-width: 0;
}
.saludables-single__trust svg { flex-shrink: 0; color: var(--saludables-leaf); }
.saludables-single__trust li > span { overflow-wrap: break-word; }

/* Botones: misma altura (48 px), píldora, carrito sólido y WhatsApp delineado.
 * Base segura: sin % fijos (55%+40%+gap desbordaba la tarjeta en escritorio),
 * con min-width:0 para que el rótulo pueda partirse en vez de salirse. */
.woocommerce div.product form.cart .button.single_add_to_cart_button {
	flex: 1 1 12rem; min-width: 0; max-width: 100%; width: auto; box-sizing: border-box;
	min-height: 3rem; border-radius: var(--saludables-r-full);
	padding: .8rem 1.2rem; font-weight: 700; font-size: 1rem; line-height: 1.2;
	display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
	white-space: normal; text-align: center; overflow-wrap: break-word;
}
.single_add_to_cart_button { background: var(--saludables-deep); border-color: var(--saludables-deep); color: #fff; }
.single_add_to_cart_button:hover { background: var(--saludables-deep-2); border-color: var(--saludables-deep-2); color: #fff; }
.saludables-single__wa {
	flex: 1 1 12rem; min-width: 0; max-width: 100%; width: auto; box-sizing: border-box;
	min-height: 3rem; justify-content: center;
	display: inline-flex; align-items: center; gap: .5rem;
	white-space: normal; text-align: center; overflow-wrap: break-word;
	background: #fff; border-color: var(--saludables-deep); color: var(--saludables-deep);
}
.saludables-single__wa:hover { background: var(--saludables-deep); color: #fff; transform: translateY(-2px); }
@media (min-width: 576px) {
	.woocommerce div.product form.cart .button.single_add_to_cart_button { flex: 1 1 12rem; min-width: 0; }
	.saludables-single__wa { flex: 1 1 12rem; min-width: 0; }
}
/* “Sin categorizar” nunca destacado: si quedó vacío, se oculta. */
.woocommerce div.product .product_meta .posted_in:empty { display: none; }
.woocommerce div.product .product_meta .posted_in a[href*="uncategorized"] { display: none; }

/* Separación horizontal sutil y tarjeta de descripción. */
.saludables-single__divider { height: 1px; border: 0; margin: clamp(2rem, 4vw, 3rem) 0 0; background: var(--saludables-line); }
.saludables-single__section { margin: clamp(1.5rem, 3vw, 2.25rem) 0 0; min-width: 0; }
.saludables-single__section .saludables-eyebrow { margin-bottom: .5rem; }
.saludables-single__panel {
	background: #fff; border: 1px solid var(--saludables-line);
	border-radius: var(--saludables-r-lg); box-shadow: var(--saludables-shadow-sm);
	padding: clamp(1.5rem, 3vw, 2rem); min-width: 0;
}
.saludables-single__panel-title {
	font-size: 1.3rem; font-weight: 700; color: var(--saludables-deep);
	margin: 0 0 .85rem; display: flex; align-items: center; gap: .6rem;
}
.saludables-single__panel-title::before { content: ""; width: 1.6rem; height: .25rem; border-radius: var(--saludables-r-full); background: var(--saludables-honey); flex-shrink: 0; }
.saludables-single__prose { max-width: 68ch; color: var(--saludables-ink); }
.saludables-single__prose p { line-height: 1.8; margin: 0 0 .9rem; }
.saludables-single__prose p:last-child { margin-bottom: 0; }
.saludables-single__prose > :first-child { margin-top: 0; }
.saludables-single__prose ul, .saludables-single__prose ol { margin: 0 0 .9rem; padding-left: 0; list-style: none; line-height: 1.8; }
.saludables-single__prose ul li { position: relative; padding-left: 1.7rem; margin-bottom: .45rem; }
.saludables-single__prose ul li::before {
	content: ""; position: absolute; left: 0; top: .45rem;
	width: .5rem; height: .5rem; border-radius: 50%; background: var(--saludables-leaf);
}
.saludables-single__prose ol { counter-reset: saludables-prose; }
.saludables-single__prose ol li { position: relative; padding-left: 1.9rem; margin-bottom: .45rem; counter-increment: saludables-prose; }
.saludables-single__prose ol li::before {
	content: counter(saludables-prose); position: absolute; left: 0; top: .1rem;
	display: inline-flex; align-items: center; justify-content: center;
	width: 1.35rem; height: 1.35rem; border-radius: 50%;
	background: var(--saludables-mint); color: var(--saludables-deep);
	font-size: .78rem; font-weight: 700;
}
.saludables-single__prose a { color: var(--saludables-leaf-dark); font-weight: 600; }
.saludables-single__prose table { width: 100%; border-collapse: collapse; margin-bottom: .9rem; }
.saludables-single__prose th, .saludables-single__prose td { text-align: left; padding: .6rem .4rem; border-bottom: 1px solid var(--saludables-line); font-size: .95rem; }
.saludables-single__prose th { font-weight: 700; color: var(--saludables-deep); width: 40%; }

/* Pestañas restantes (información adicional, valoraciones) y upsells. */
.saludables-single__extras { min-width: 0; margin-top: clamp(1.5rem, 3vw, 2.25rem); }
.woocommerce div.product .woocommerce-tabs { margin-top: 0; }
.woocommerce div.product .woocommerce-tabs .panel { padding: clamp(1.2rem, 3vw, 2rem); }
.woocommerce div.product .woocommerce-tabs .panel p:last-child { margin-bottom: 0; }
.woocommerce div.product .woocommerce-tabs .panel table.shop_attributes { width: 100%; border-collapse: collapse; }
.woocommerce div.product .woocommerce-tabs .panel table.shop_attributes th,
.woocommerce div.product .woocommerce-tabs .panel table.shop_attributes td { padding: .7rem .4rem; border-bottom: 1px solid var(--saludables-line); font-size: .95rem; text-align: left; }
.woocommerce div.product .woocommerce-tabs .panel table.shop_attributes th { width: 38%; font-weight: 700; color: var(--saludables-deep); }

/* Relacionados: 4/3/2/1 columnas, grupo centrado si son pocos. */
.saludables-single__related { min-width: 0; margin-top: clamp(1.5rem, 3vw, 2.25rem); padding-top: clamp(1.5rem, 3vw, 2.25rem); border-top: 1px solid var(--saludables-line); }
.saludables-single__related .saludables-eyebrow { margin-bottom: .5rem; }
.saludables-single__related .saludables-section__title { margin-bottom: 0; }
.saludables-related__grid {
	display: grid; gap: clamp(1rem, 2vw, 1.5rem); margin-top: clamp(1.5rem, 3vw, 2.25rem);
	grid-template-columns: repeat(4, minmax(0, 1fr)); justify-content: center;
}
/* En el archivo de categoría esta misma clase se imprime sobre una `.row` de
   Bootstrap (`row-cols-1 row-cols-sm-2 row-cols-lg-3`). Bootstrap fija
   `width: 100% / 50% / 33.33%` a cada `.col`, y al repintarla como grid esos
   anchos se pelean con `grid-template-columns`: cada tarjeta mide mas que su
   columna y el grupo se descuadra. Como hijo de grid manda el ancho de la
   pista, asi que se neutraliza el ancho de Bootstrap. */
.saludables-related__grid.row { margin-left: 0; margin-right: 0; }
.saludables-related__grid > * {
	width: auto !important; max-width: none !important;
	flex: none !important; min-width: 0;
}
.saludables-related__grid .saludables-product { width: 100%; height: 100%; }
/* Las tarjetas de la cuadrícula también se estiran a la misma altura. */
.saludables-related__grid > .saludables-product { align-self: stretch; }
/* Con pocas tarjetas el grupo se centra en vez de dejar un vacío a la derecha.
   Solo en escritorio: `:has()` tiene mas especificidad que las media queries de
   abajo, asi que sin este min-width las 17rem fijas ganaban tambien en movil y
   desbordaban la pantalla. */
@media (min-width: 1200px) {
	.saludables-related__grid:has(> :nth-child(2):last-child) { grid-template-columns: repeat(2, minmax(0, 17rem)); }
	.saludables-related__grid:has(> :nth-child(1):last-child) { grid-template-columns: minmax(0, 17rem); }
}
@media (max-width: 1199px) { .saludables-related__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 767px) { .saludables-related__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 419px) {
	.saludables-related__grid { grid-template-columns: minmax(0, 1fr); max-width: 20rem; margin-inline: auto; }
}
/* Tarjetas de relacionados: alto parejo y botón siempre abajo. */
.saludables-related__grid .saludables-product__media { aspect-ratio: 1 / 1; }
.saludables-related__grid .saludables-product__title {
	display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; line-clamp: 3;
	overflow: hidden; min-height: 4.05em;
}
.saludables-related__grid .saludables-product__body { gap: .45rem; }
.saludables-related__grid .saludables-product__foot { margin-top: auto; }
.saludables-related__grid .saludables-product__foot .saludables-btn { flex: 0 0 auto; min-width: 8.5rem; }
@media (max-width: 419px) {
	.saludables-related__grid .saludables-product__foot { flex-direction: column; align-items: stretch; }
	.saludables-related__grid .saludables-product__foot .saludables-btn { width: 100%; min-width: 0; }
}
/* Galería clicable indica lightbox. */
.saludables-single__gallery .woocommerce-product-gallery__image a { cursor: zoom-in; display: block; }
.saludables-single__gallery .flex-control-thumbs img { cursor: pointer; }
/* Toolbar tienda: sin desbordes en móvil. */
.saludables-shop__toolbar { min-width: 0; max-width: 100%; }
.saludables-shop__count { overflow-wrap: break-word; }
@media (max-width: 575px) {
	.woocommerce div.product div.images img { max-height: 380px; }
	.woocommerce div.product div.images .flex-control-thumbs { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (prefers-reduced-motion: reduce) {
	.saludables-shop__grid .saludables-product:hover .saludables-product__media img { transform: none; }
}

/* ==========================================================================
   Carrito 1.10.0 — resumen a la derecha, entrega y sin “envío gratis”.
   ========================================================================== */
.saludables-cart__layout { align-items: start; }
.saludables-cart__products, .saludables-cart__summary { min-width: 0; }
.saludables-cart__summary .saludables-whatsapp-panel { position: sticky; top: 6rem; }
/* Carrito por bloques: productos izquierda + resumen derecha (una sola tarjeta). */
.saludables-cart-blocks { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 24rem); gap: clamp(1.2rem, 3vw, 2.5rem); align-items: start; }
.saludables-cart-blocks > :first-child { min-width: 0; }
.saludables-cart-blocks .saludables-whatsapp-panel { position: sticky; top: 6rem; }
/* Sin envío gratis: este pedido confirma el costo por WhatsApp. */
.saludables-cart-blocks .wc-block-components-totals-shipping,
body.woocommerce-cart .wc-block-components-totals-shipping__change-address,
.saludables-cart__layout .woocommerce-shipping-totals,
.saludables-whatsapp-panel ~ .wc-block-components-totals-shipping { display: none !important; }
/* Resumen: importe, entrega y campos. */
.saludables-whatsapp-panel h2 { margin: 0 0 .4rem; }
.saludables-whatsapp-total { font-size: 1.1rem; margin: .8rem 0 .2rem; color: var(--saludables-deep); overflow-wrap: break-word; }
.saludables-whatsapp-discount { color: var(--saludables-leaf-dark); font-weight: 600; font-size: .92rem; margin: .2rem 0 0; }
.saludables-wa-fieldset { border: 1px solid var(--saludables-line); border-radius: var(--saludables-r-md); padding: .9rem 1rem 1rem; margin: 1rem 0 0; }
.saludables-wa-fieldset legend { font-size: .95rem; padding: 0 .4rem; }
.saludables-wa-radio { display: flex; align-items: center; gap: .6rem; padding: .45rem 0; font-weight: 600; cursor: pointer; min-height: 2.75rem; }
.saludables-wa-radio input { width: 1.25rem; height: 1.25rem; accent-color: var(--saludables-leaf); flex-shrink: 0; }
.saludables-wa-delivery, .saludables-wa-pickup { margin-top: .9rem; }
.saludables-wa-delivery .form-control { border-radius: var(--saludables-r-sm); border-color: var(--saludables-line); min-height: 2.75rem; }
.saludables-wa-delivery .form-control:focus { border-color: var(--saludables-leaf); box-shadow: 0 0 0 .25rem rgba(39, 133, 87, .15); outline: none; }
.saludables-whatsapp-panel [data-saludables-wa-order][aria-disabled="true"] { opacity: .55; }
.saludables-whatsapp-panel [data-saludables-wa-order].is-loading { pointer-events: none; opacity: .7; }
@media (max-width: 991px) {
	.saludables-cart-blocks { grid-template-columns: minmax(0, 1fr); }
	.saludables-cart-blocks .saludables-whatsapp-panel, .saludables-cart__summary .saludables-whatsapp-panel { position: static; }
}

/* ==========================================================================
   Ajustes móviles de tienda (1.16.2)
   Van aquí y no en main.css porque este archivo se encola después: es el que
   gana cuando dos reglas de igual peso se pisan. Solo bajo 767 px.
   ========================================================================== */

/* Catálogo: en móvil queda a una columna, y sin tope la foto se comía media
 * pantalla. Ancho máximo y proporción 3/2 en lugar de 4/3. */
@media (max-width: 767px) {
	.saludables-shop__grid { max-width: 21rem; margin-inline: auto; }
	.saludables-shop__grid .saludables-product__media { aspect-ratio: 3 / 2; }
	.saludables-shop__grid .saludables-product__body { padding: .9rem; gap: .3rem; }
	.saludables-shop__grid .saludables-product__title { font-size: 1rem; line-height: 1.3; }
	.saludables-shop__grid .saludables-product__foot { padding-top: .55rem; gap: .5rem .6rem; }
}

/* Zona de compra: cantidad, añadir al carrito y WhatsApp.
 *
 * Estas reglas están ancladas a `.saludables-single__summary` porque las
 * anteriores usaban `.woocommerce div.product form.cart`, y esta plantilla
 * (`woocommerce/single-product.php`) no envuelve la ficha en `div.product`:
 * se comprobó en el DOM y `document.querySelectorAll('div.product').length`
 * da 0. Ese prefijo nunca casó, así que el formulario se veía sin `display:
 * flex` ni `gap`, y por eso los tres controles quedaban pegados y en la misma
 * línea. Las reglas viejas se dejan intactas por si algún día vuelve el
 * envoltorio de WooCommerce; estas son las que realmente aplican.
 */
.saludables-single__summary form.cart {
	display: flex; flex-wrap: wrap; gap: .75rem;
	align-items: stretch; margin: 1.25rem 0 .6rem;
	box-sizing: border-box; min-width: 0; max-width: 100%;
}
.saludables-single__summary form.cart div.quantity {
	display: inline-flex; align-items: center; gap: .25rem; margin: 0;
	border: 1px solid var(--saludables-line); border-radius: var(--saludables-r-full);
	background: #fff; padding: .2rem; min-height: 3rem;
	box-sizing: border-box; min-width: 0; max-width: 100%;
}
.saludables-single__summary form.cart div.quantity .qty {
	width: 2.75rem; min-height: 2.5rem; padding: 0 .35rem; margin: 0;
	border: 0; border-radius: var(--saludables-r-sm); background: transparent;
	font-weight: 700; text-align: center; color: var(--saludables-ink);
	-moz-appearance: textfield; appearance: textfield;
}
.saludables-single__summary form.cart div.quantity .qty:focus {
	outline: none; box-shadow: 0 0 0 .2rem rgba(39, 133, 87, .18);
}
.saludables-single__summary form.cart .button.single_add_to_cart_button {
	flex: 1 1 12rem; min-width: 0; max-width: 100%; width: auto; box-sizing: border-box;
	min-height: 3rem; border-radius: var(--saludables-r-full);
	padding: .8rem 1.2rem; font-weight: 700; font-size: 1rem; line-height: 1.2;
	display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
	white-space: normal; text-align: center; overflow-wrap: break-word;
}
.saludables-single__summary .saludables-single__wa {
	flex: 1 1 12rem; min-width: 0; max-width: 100%; width: auto; box-sizing: border-box;
	min-height: 3rem; justify-content: center;
	display: inline-flex; align-items: center; gap: .5rem;
	white-space: normal; text-align: center; overflow-wrap: break-word;
}
.saludables-single__summary .saludables-single__wa svg { flex-shrink: 0; }
.saludables-single__summary .saludables-single__wa > span { min-width: 0; overflow-wrap: anywhere; }
/* Productos variables: WooCommerce envuelve cantidad + botones en
 * `.woocommerce-variation-add-to-cart.variations_button` dentro del form
 * (dentro de `.single_variation_wrap`). Sin este flex, el `gap` del form no
 * llega a los botones y quedan pegados borde con borde. */
.saludables-single__summary form.cart .single_variation_wrap { min-width: 0; max-width: 100%; width: 100%; box-sizing: border-box; }
.saludables-single__summary form.cart .woocommerce-variation-add-to-cart,
.saludables-single__summary form.cart .variations_button {
	display: flex; flex-wrap: wrap; gap: .75rem; align-items: stretch;
	box-sizing: border-box; min-width: 0; max-width: 100%;
}
.saludables-single__summary form.cart .woocommerce-variation-add-to-cart div.quantity { margin: 0; }
.saludables-single__summary form.cart .woocommerce-variation-add-to-cart .button.single_add_to_cart_button,
.saludables-single__summary form.cart .woocommerce-variation-add-to-cart .saludables-single__wa { margin: 0; }
@media (min-width: 768px) {
	/* La cantidad ocupa su propia linea. Los dos botones comparten fila
	 * con base flexible (no % fijos): si no caben, el wrap los apila
	 * sin desbordar la tarjeta blanca. */
	.saludables-single__summary form.cart div.quantity { flex: 1 1 100%; max-width: 100%; box-sizing: border-box; justify-content: flex-start; }
	.saludables-single__summary form.cart .button.single_add_to_cart_button { flex: 1 1 12rem; min-width: 0; }
	.saludables-single__summary .saludables-single__wa { flex: 1 1 12rem; min-width: 0; }
}

/* Móvil: hueco de 15 px entre los tres, píldora de cantidad con aire y botones
 * de 3.25 rem para que el dedo no los confunda. Cada uno a una línea. */
@media (max-width: 767px) {
	.saludables-single__summary form.cart,
	.saludables-single__summary form.cart .woocommerce-variation-add-to-cart { gap: 15px; margin: 1.25rem 0 .9rem; }
	.saludables-single__summary form.cart .woocommerce-variation-add-to-cart,
	.saludables-single__summary form.cart .variations_button {
		margin: 0; width: 100%; max-width: 100%;
		flex-direction: column; align-items: stretch; gap: 15px;
	}
	.saludables-single__summary form.cart div.quantity { gap: .45rem; padding: .25rem; }
	.saludables-qty__btn { width: 2.75rem; height: 2.75rem; }
	.saludables-single__summary form.cart div.quantity .qty { min-height: 2.75rem; }
	.saludables-single__summary form.cart .button.single_add_to_cart_button,
	.saludables-single__summary .saludables-single__wa,
	.saludables-single__summary form.cart .woocommerce-variation-add-to-cart .button.single_add_to_cart_button,
	.saludables-single__summary form.cart .woocommerce-variation-add-to-cart .saludables-single__wa,
	.saludables-single__summary form.cart .variations_button .button.single_add_to_cart_button,
	.saludables-single__summary form.cart .variations_button .saludables-single__wa { flex: 1 1 100%; width: 100%; min-width: 0; max-width: 100%; box-sizing: border-box; min-height: 3.25rem; margin: 0; }
	/* Respaldo sin Flexbox gap: margen al botón superior del producto variable,
	 * con especificidad suficiente para ganar a los estilos de WooCommerce. */
	@supports not (gap: 15px) {
		.saludables-single__summary form.cart .button.single_add_to_cart_button { margin-bottom: 15px; }
		.saludables-single__summary form.variations_form.cart .woocommerce-variation-add-to-cart .button.single_add_to_cart_button,
		.saludables-single__summary form.variations_form.cart .variations_button .button.single_add_to_cart_button { margin-bottom: 15px; }
	}
	.saludables-single__trust { justify-content: center; text-align: center; }
	/* Los campos + / − del carrito también se separan. */
	.woocommerce .quantity .qty { min-height: 2.75rem; }
	.woocommerce .quantity .qty + .button,
	.woocommerce .quantity .qty ~ .button { margin-left: .5rem; }
}

/* ==========================================================================
   Agrupados: cada hijo es una tarjeta (nombre, precio y cantidad separados).
   Sustituye a la tabla nativa, que mezclaba contador + nombre + precio en
   una sola línea. El formulario y sus nombres de campo no cambian.
   ========================================================================== */
.saludables-grouped-products { width: 100%; max-width: 100%; margin-top: 1.5rem; box-sizing: border-box; }
.saludables-grouped-products__title { font-size: 1.15rem; font-weight: 700; color: var(--saludables-deep); margin: 0 0 1rem; }
.saludables-grouped-products__list { display: grid; gap: 1rem; min-width: 0; }
.saludables-grouped-product {
	width: 100%; max-width: 100%; padding: 1rem; box-sizing: border-box;
	border: 1px solid var(--saludables-line); border-radius: var(--saludables-r-lg);
	background: #fff; box-shadow: var(--saludables-shadow-sm); min-width: 0;
}
.saludables-grouped-product__content {
	display: grid; grid-template-columns: 96px minmax(0, 1fr) auto;
	align-items: center; gap: 1rem; min-width: 0;
}
.saludables-grouped-product__image { display: block; min-width: 0; }
.saludables-grouped-product__image img { display: block; width: 96px; height: 96px; object-fit: cover; border-radius: var(--saludables-r-md); }
.saludables-grouped-product__info { min-width: 0; }
.saludables-grouped-product__name { margin: 0 0 .35rem; font-size: 1.02rem; font-weight: 700; overflow-wrap: anywhere; }
.saludables-grouped-product__name a { color: var(--saludables-ink); text-decoration: none; }
.saludables-grouped-product__name a:hover { color: var(--saludables-leaf-dark); }
.saludables-grouped-product__price { margin-bottom: .4rem; font-weight: 700; color: var(--saludables-deep); overflow-wrap: break-word; }
.saludables-grouped-product__price .stock { font-size: .85rem; }
.saludables-grouped-product__description { margin: 0; color: var(--saludables-muted); font-size: .9rem; line-height: 1.6; overflow-wrap: break-word; }
.saludables-grouped-product__actions {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end;
	gap: .6rem; min-width: 0; max-width: 100%;
}
.saludables-grouped-product__actions .quantity { display: inline-flex; align-items: center; gap: .25rem; min-width: 0; max-width: 100%; }
.saludables-grouped-product__qty-label { font-size: .85rem; font-weight: 600; color: var(--saludables-muted); }
.saludables-grouped-product__actions .saludables-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: .4rem;
	min-width: 0; max-width: 100%; white-space: normal; text-align: center;
	overflow-wrap: anywhere; box-sizing: border-box;
}
.saludables-grouped-product__actions .saludables-btn svg { flex-shrink: 0; }
@media (max-width: 767px) {
	.saludables-grouped-product__content { grid-template-columns: 72px minmax(0, 1fr); align-items: start; }
	.saludables-grouped-product__image img { width: 72px; height: 72px; }
	.saludables-grouped-product__actions { grid-column: 1 / -1; justify-content: stretch; }
	.saludables-grouped-product__actions > * { flex: 1 1 100%; width: 100%; }
	.saludables-grouped-product__actions .quantity { justify-content: center; }
}
