/* ==========================================================================
   SALUDABLES Market — Recién Hecho · main.css
   Identidad propia sobre Bootstrap 5.3: verde profundo + hoja + crema.
   Bootstrap carga ANTES; este archivo gana la cascada.
   ========================================================================== */

:root {
	--saludables-deep: #075e3d;
	--saludables-deep-2: #05452d;
	--saludables-leaf: #278557;
	--saludables-leaf-dark: #1e6a45;
	--saludables-cream: #faf7ef;
	--saludables-mint: #e5f2e8;
	--saludables-ink: #24352b;
	--saludables-muted: #5c6f62;
	--saludables-line: #dfe8dd;
	--saludables-honey: #e9be62;
	--saludables-white: #fff;
	--saludables-danger: #b3261e;

	--saludables-font-display: "Fraunces", Georgia, "Times New Roman", serif;
	--saludables-font-body: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
	--saludables-logo-h: 3.25rem;

	--saludables-r-sm: .6rem;
	--saludables-r-md: 1rem;
	--saludables-r-lg: 1.4rem;
	--saludables-r-xl: 2rem;
	--saludables-r-full: 999px;

	--saludables-shadow-sm: 0 2px 10px -2px rgba(36, 53, 43, .12);
	--saludables-shadow-md: 0 10px 28px -8px rgba(36, 53, 43, .18);
	--saludables-shadow-lg: 0 22px 48px -12px rgba(7, 94, 61, .28);

	--saludables-section: clamp(2.5rem, 6vw, 4.5rem);

	--bs-primary: var(--saludables-leaf);
	--bs-primary-rgb: 39, 133, 87;
	--bs-success: var(--saludables-leaf);
	--bs-link-color: var(--saludables-leaf-dark);
	--bs-link-hover-color: var(--saludables-deep);
	--bs-body-bg: var(--saludables-cream);
	--bs-body-color: var(--saludables-ink);
	--bs-border-color: var(--saludables-line);
	--bs-font-sans-serif: var(--saludables-font-body);
}

/* Base. */
@media (prefers-reduced-motion: no-preference) {
	html { scroll-behavior: smooth; }
}
html, body { overflow-x: clip; }
body {
	margin: 0;
	background: var(--saludables-cream);
	color: var(--saludables-ink);
	font-family: var(--saludables-font-body);
	font-size: 1rem;
	line-height: 1.6;
}
img, svg, video, iframe { max-width: 100%; }
h1, h2, h3, h4 { font-family: var(--saludables-font-display); line-height: 1.15; letter-spacing: -.01em; color: var(--saludables-ink); text-wrap: balance; }
a { color: var(--saludables-leaf-dark); }
a:hover { color: var(--saludables-deep); }

.saludables-skip {
	position: absolute; left: 1rem; top: -4rem; z-index: 2000;
	background: var(--saludables-deep); color: #fff; padding: .6rem 1rem; border-radius: var(--saludables-r-md);
	transition: top .2s;
}
.saludables-skip:focus { top: 1rem; color: #fff; }

a:focus-visible, button:focus-visible, input:focus-visible,
select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible {
	outline: 3px solid rgba(233, 190, 98, .9);
	outline-offset: 2px;
	border-radius: .4rem;
}

/* Botones. */
.saludables-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
	border-radius: var(--saludables-r-full); border: 2px solid transparent;
	padding: .8rem 1.6rem; font-weight: 700; font-size: 1rem; line-height: 1.2;
	text-decoration: none; cursor: pointer;
	transition: transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease;
}
.saludables-btn:hover { transform: translateY(-2px); }
.saludables-btn--primary { background: var(--saludables-leaf); border-color: var(--saludables-leaf); color: #fff; box-shadow: var(--saludables-shadow-sm); }
.saludables-btn--primary:hover { background: var(--saludables-leaf-dark); border-color: var(--saludables-leaf-dark); color: #fff; box-shadow: var(--saludables-shadow-md); }
.saludables-btn--light { background: #fff; border-color: #fff; color: var(--saludables-deep); }
.saludables-btn--light:hover { background: var(--saludables-mint); border-color: #fff; color: var(--saludables-deep); }
.saludables-btn--outline { background: transparent; border-color: var(--saludables-leaf); color: var(--saludables-leaf-dark); }
.saludables-btn--outline:hover { background: var(--saludables-mint); color: var(--saludables-deep); }
.saludables-btn--deep { background: var(--saludables-deep); border-color: var(--saludables-deep); color: #fff; }
.saludables-btn--deep:hover { background: var(--saludables-deep-2); color: #fff; }
.saludables-btn svg { flex-shrink: 0; }
/* Iconos SVG en línea: nunca se encogen dentro de un flex ni se descuelgan
 * de la línea de texto. Sin esto, en móvil/tablet el pin se comprimía o
 * quedaba arriba/abajo del texto. */
.saludables-icon { display: inline-block; flex-shrink: 0; vertical-align: middle; }
.saludables-eyebrow .saludables-icon,
.saludables-visit h3 .saludables-icon { flex-shrink: 0; align-self: center; }

.saludables-iconbtn {
	position: relative; display: inline-flex; align-items: center; justify-content: center;
	width: 2.6rem; height: 2.6rem; border-radius: 50%;
	border: 1px solid var(--saludables-line); background: #fff; color: var(--saludables-deep);
	transition: background .18s, transform .18s;
}
.saludables-iconbtn:hover { background: var(--saludables-mint); transform: translateY(-1px); color: var(--saludables-deep); }
.saludables-cart__count {
	position: absolute; top: -.3rem; right: -.3rem;
	min-width: 1.25rem; height: 1.25rem; padding: 0 .3rem;
	background: var(--saludables-honey); color: var(--saludables-ink);
	font-size: .72rem; font-weight: 700; line-height: 1.25rem; text-align: center;
	border-radius: var(--saludables-r-full);
}

/* Barra superior. */
.saludables-topbar { background: var(--saludables-deep); color: #fff; text-align: center; padding: .45rem 1rem; }
.saludables-topbar__text { margin: 0; font-size: .85rem; font-weight: 500; letter-spacing: .02em; }

/* Offset de la admin bar en una sola variable. En <=600px la admin bar es
   position:absolute (se va al hacer scroll), asi que no debe dejar hueco. */
:root { --smk-header-h: 4.5rem; --smk-admin-offset: 0px; }
body.admin-bar { --smk-admin-offset: 32px; }
@media (max-width: 782px) { body.admin-bar { --smk-admin-offset: 46px; } }
@media (max-width: 600px) { body.admin-bar { --smk-admin-offset: 0px; } }

/* Encabezado sticky (respeta la admin bar, sin repintados por frame). */
.saludables-header {
	position: sticky;
	top: var(--smk-admin-offset);
	z-index: 1020;
	background: #fff;
	border-bottom: 1px solid var(--saludables-line);
}
/* Sin backdrop-filter/filter/transform: evitan el parpadeo al scrollear.
   NO anadir will-change: transform aqui, rompe sticky. */
html { scroll-padding-top: calc(var(--smk-header-h) + 1rem); }
#contenido, .saludables-section[id] { scroll-margin-top: calc(var(--smk-header-h) + 1rem); }
@media (min-width: 992px) { html { scrollbar-gutter: stable; } }
.saludables-header__inner { display: flex; align-items: center; justify-content: flex-start; gap: 1rem; padding-top: .7rem; padding-bottom: .7rem; max-width: 1320px; margin-left: auto; margin-right: auto; }
.saludables-brand { display: inline-flex; align-items: center; justify-content: flex-start; text-align: left; gap: .65rem; text-decoration: none; margin-right: auto; margin-left: 0; min-width: 0; flex-shrink: 1; }
.saludables-brand__mark {
	display: inline-flex; align-items: center; justify-content: center;
	width: var(--saludables-logo-h); height: var(--saludables-logo-h); border-radius: 50%;
	background: var(--saludables-deep); color: var(--saludables-honey); flex-shrink: 0;
}
.saludables-brand__mark--light { background: rgba(255, 255, 255, .12); }
.saludables-brand__text { display: flex; flex-direction: column; align-items: flex-start; text-align: left; line-height: 1.05; min-width: 0; max-width: 100%; }
.saludables-brand__name { font-family: var(--saludables-font-display); font-weight: 700; font-size: 1.3rem; letter-spacing: .06em; color: var(--saludables-deep); white-space: nowrap; text-align: left; }
.saludables-brand__tag { font-size: .8rem; font-weight: 500; color: var(--saludables-muted); letter-spacing: .04em; white-space: nowrap; text-align: left; }
.saludables-brand, .saludables-footer__logo .saludables-footer__brand { justify-content: flex-start; text-align: left; }
.saludables-page__head { max-width: 44rem; margin-bottom: 2rem; text-align: left; }
/* El logotipo ocupa la misma caja que la marca provisional: no descuadra al subirlo. Unifica Tienda/productos. */
.custom-logo, .saludables-brand .custom-logo-link img, .saludables-footer__brand .custom-logo-link img {
	display: block; height: var(--saludables-logo-h) !important; width: auto !important;
	max-width: 13rem !important; max-height: var(--saludables-logo-h) !important;
	object-fit: contain; flex-shrink: 0;
}
.custom-logo-link { display: inline-flex; align-items: center; flex-shrink: 0; max-width: 100%; }
.saludables-brand .custom-logo, .saludables-footer__brand .custom-logo { max-width: 13rem; }
/* WooCommerce y tienda nunca agrandan la cabecera: misma caja compacta. */
.woocommerce-page .saludables-header .custom-logo, .single-product .saludables-header .custom-logo,
.post-type-archive-product .saludables-header .custom-logo { height: var(--saludables-logo-h) !important; width: auto !important; }
.woocommerce-page .saludables-footer__brand .custom-logo, .single-product .saludables-footer__brand .custom-logo { height: 2.9rem !important; width: auto !important; max-width: 11rem !important; }
@media (max-width: 575.98px) { .custom-logo { max-width: 9rem !important; } }

.saludables-nav__list, .saludables-nav__list ul { list-style: none; margin: 0; padding: 0; }
.saludables-nav__list { display: flex; gap: .25rem; }
.saludables-nav__list a {
	display: block; padding: .55rem .95rem; border-radius: var(--saludables-r-full);
	color: var(--saludables-ink); font-weight: 600; font-size: .95rem; text-decoration: none;
}
.saludables-nav__list a:hover { background: var(--saludables-mint); color: var(--saludables-deep); }
.saludables-nav__list .current-menu-item > a, .saludables-nav__list [aria-current="page"] { background: var(--saludables-deep); color: #fff; }
.saludables-nav__list li { position: relative; }
.saludables-nav__list ul {
	display: none; position: absolute; top: 100%; left: 0; min-width: 12rem;
	background: #fff; border: 1px solid var(--saludables-line); border-radius: var(--saludables-r-md);
	box-shadow: var(--saludables-shadow-md); padding: .4rem;
}
.saludables-nav__list li:hover > ul, .saludables-nav__list li:focus-within > ul { display: block; }

.saludables-header__actions { display: flex; align-items: center; gap: .5rem; }
.saludables-search { border-top: 1px solid var(--saludables-line); background: #fff; padding: 1rem 0; }
.saludables-searchform { display: flex; gap: .6rem; }
.saludables-searchform__input { border-radius: var(--saludables-r-full) !important; border-color: var(--saludables-line) !important; padding: .7rem 1.2rem !important; }
.saludables-searchform__input:focus { border-color: var(--saludables-leaf) !important; box-shadow: 0 0 0 .25rem rgba(39, 133, 87, .15) !important; }

.saludables-offcanvas { background: var(--saludables-cream); max-width: min(22rem, 90vw); }
.saludables-offcanvas__title { font-family: var(--saludables-font-display); font-weight: 700; color: var(--saludables-deep); }
.saludables-mnav__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .25rem; }
.saludables-mnav__list a { display: flex; align-items: center; gap: .6rem; padding: .7rem .9rem; border-radius: var(--saludables-r-md); color: var(--saludables-ink); font-weight: 600; text-decoration: none; }
.saludables-mnav__list a:hover { background: var(--saludables-mint); }
.saludables-mnav__list--tools { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--saludables-line); }
.saludables-mnav__list--tools .saludables-cart__count { position: static; margin-left: auto; }

/* Hero. */
.saludables-hero { position: relative; overflow: hidden; padding: var(--saludables-section) 0; }
.saludables-hero__bg { position: absolute; inset: 0; pointer-events: none; }
.saludables-hero__blob {
	position: absolute; border-radius: 50%; filter: blur(70px); opacity: .5;
}
.saludables-hero__blob--a { width: 26rem; height: 26rem; background: var(--saludables-mint); top: -8rem; right: -6rem; }
.saludables-hero__blob--b { width: 18rem; height: 18rem; background: #f6e7c6; bottom: -9rem; left: -6rem; }
.saludables-hero__badge {
	display: inline-flex; align-items: center; gap: .45rem;
	background: var(--saludables-mint); color: var(--saludables-deep);
	border-radius: var(--saludables-r-full); padding: .4rem 1rem;
	font-size: .82rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase;
}
.saludables-hero__title { font-size: clamp(2.2rem, 5.2vw, 3.6rem); font-weight: 700; margin: 1rem 0; }
.saludables-hero__title span { display: block; }
.saludables-hero__title .saludables-accent { color: var(--saludables-leaf); font-style: italic; }
.saludables-hero__text { font-size: 1.1rem; color: var(--saludables-muted); max-width: 32rem; }
.saludables-hero__cta { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 1.5rem; }
.saludables-hero__media { position: relative; }
.saludables-hero__frame {
	border-radius: var(--saludables-r-xl); overflow: hidden; box-shadow: var(--saludables-shadow-lg);
	border: 6px solid #fff; aspect-ratio: 4 / 3.4; background: var(--saludables-mint);
}
.saludables-hero__frame img { width: 100%; height: 100%; object-fit: cover; object-position: center center; display: block; }
.saludables-hero__chip {
	position: absolute; display: inline-flex; align-items: center; gap: .5rem;
	background: rgba(255, 255, 255, .95); border-radius: var(--saludables-r-full);
	padding: .55rem 1rem; font-size: .85rem; font-weight: 700; color: var(--saludables-deep);
	box-shadow: var(--saludables-shadow-md);
}
.saludables-hero__chip--a { top: 1rem; right: 1rem; }
.saludables-hero__chip--b { bottom: 1rem; left: 1rem; }
.saludables-hero__dot { width: .6rem; height: .6rem; border-radius: 50%; background: var(--saludables-leaf); flex-shrink: 0; }
.saludables-hero__leaf { position: absolute; color: var(--saludables-leaf); opacity: .25; }
.saludables-hero__leaf--a { top: -1rem; left: 8%; }
.saludables-hero__leaf--b { bottom: 0; right: 4%; transform: rotate(35deg); }

/* Secciones. */
.saludables-section { padding: var(--saludables-section) 0; }
.saludables-section--mint { background: var(--saludables-mint); }
.saludables-section--deep { background: var(--saludables-deep); color: #fff; }
.saludables-section--deep h2, .saludables-section--deep h3 { color: #fff; }
.saludables-eyebrow {
	display: inline-flex; align-items: center; gap: .4rem;
	color: var(--saludables-leaf-dark); font-weight: 700; font-size: .82rem;
	letter-spacing: .08em; text-transform: uppercase; margin: 0 0 .5rem;
}
.saludables-section--deep .saludables-eyebrow { color: var(--saludables-honey); }
.saludables-section__title { font-size: clamp(1.7rem, 3.4vw, 2.4rem); font-weight: 700; margin: 0 0 .5rem; }
.saludables-section__lead { color: var(--saludables-muted); max-width: 40rem; margin: 0 0 1.8rem; }
.saludables-section--deep .saludables-section__lead { color: rgba(255, 255, 255, .85); }
.saludables-section__head--split { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }

/* Tarjetas de categoría: proporción uniforme, sin deformar. */
.saludables-cat { position: relative; display: block; border-radius: var(--saludables-r-lg); overflow: hidden; text-decoration: none; box-shadow: var(--saludables-shadow-sm); transition: transform .2s, box-shadow .2s; background: var(--saludables-mint); }
.saludables-cat:hover { transform: translateY(-4px); box-shadow: var(--saludables-shadow-md); }
.saludables-cat__media { aspect-ratio: 4 / 3; overflow: hidden; }
.saludables-cat__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s ease; }
.saludables-cat:hover .saludables-cat__media img { transform: scale(1.05); }
.saludables-cat__body {
	position: absolute; inset: auto 0 0 0; display: flex; align-items: center; justify-content: space-between; gap: .5rem;
	padding: .8rem 1rem; background: linear-gradient(transparent, rgba(7, 69, 45, .85));
	color: #fff;
}
.saludables-cat__name { font-family: var(--saludables-font-display); font-weight: 700; font-size: 1.05rem; }
.saludables-cat__go { display: inline-flex; align-items: center; justify-content: center; width: 2rem; height: 2rem; border-radius: 50%; background: var(--saludables-honey); color: var(--saludables-ink); flex-shrink: 0; }
.saludables-cat--soon { cursor: default; }
.saludables-cat__soon {
	position: absolute; top: .8rem; left: .8rem; background: rgba(255, 255, 255, .92);
	color: var(--saludables-deep); font-size: .75rem; font-weight: 700; border-radius: var(--saludables-r-full); padding: .3rem .8rem;
}

/* Tarjetas de producto: altura equilibrada, imagen uniforme. */
.saludables-product { display: flex; flex-direction: column; height: 100%; min-width: 0; background: #fff; border: 1px solid var(--saludables-line); border-radius: var(--saludables-r-lg); overflow: hidden; overflow-wrap: break-word; box-shadow: var(--saludables-shadow-sm); transition: transform .2s, box-shadow .2s; }
.saludables-product:hover { transform: translateY(-4px); box-shadow: var(--saludables-shadow-md); }
.saludables-product:focus-within { box-shadow: var(--saludables-shadow-md); }
.saludables-product__media { position: relative; aspect-ratio: 4 / 3; background: var(--saludables-mint); overflow: hidden; }
.saludables-product__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.saludables-product__badge { position: absolute; top: .7rem; left: .7rem; background: var(--saludables-deep); color: #fff; font-size: .72rem; font-weight: 700; border-radius: var(--saludables-r-full); padding: .28rem .75rem; }
.saludables-product__badge--sale { background: var(--saludables-honey); color: var(--saludables-ink); }
.saludables-product__body { display: flex; flex-direction: column; gap: .35rem; padding: clamp(.875rem, 1.5vw, 1.25rem); flex: 1; min-width: 0; }
.saludables-product__cat { font-size: .75rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--saludables-leaf); overflow-wrap: break-word; }
.saludables-product__title { font-size: 1.05rem; font-weight: 700; line-height: 1.35; margin: 0; overflow-wrap: break-word; }
.saludables-product__title a { color: var(--saludables-ink); text-decoration: none; }
.saludables-product__title a:hover { color: var(--saludables-leaf-dark); }
.saludables-product__foot { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .6rem .75rem; margin-top: auto; padding-top: .7rem; border-top: 1px solid var(--saludables-line); }
.saludables-product__foot .saludables-btn { min-height: 2.75rem; }
.saludables-price { font-weight: 700; color: var(--saludables-deep); font-size: 1.05rem; }
.saludables-price del { color: var(--saludables-muted); font-weight: 400; font-size: .85rem; margin-right: .35rem; }
.saludables-price ins { text-decoration: none; }

.saludables-empty { background: #fff; border: 1px dashed var(--saludables-line); border-radius: var(--saludables-r-lg); padding: 2.2rem 1.5rem; text-align: center; color: var(--saludables-muted); }
.saludables-empty__icon { display: inline-flex; align-items: center; justify-content: center; width: 3.2rem; height: 3.2rem; border-radius: 50%; background: var(--saludables-mint); color: var(--saludables-deep); margin-bottom: .8rem; }

/* Sección cafetería (editorial verde). */
.saludables-cafe__frame { border-radius: var(--saludables-r-xl); overflow: hidden; aspect-ratio: 4 / 3.2; box-shadow: var(--saludables-shadow-lg); border: 6px solid rgba(255, 255, 255, .15); }
.saludables-cafe__frame img { width: 100%; height: 100%; object-fit: cover; display: block; }
.saludables-cafe__points { list-style: none; margin: 1.2rem 0 1.6rem; padding: 0; display: flex; flex-direction: column; gap: .7rem; }
.saludables-cafe__points li { display: flex; gap: .6rem; align-items: flex-start; color: rgba(255, 255, 255, .9); }
.saludables-cafe__points svg { color: var(--saludables-honey); flex-shrink: 0; margin-top: .2rem; }

/* Market. */
.saludables-market__frame { border-radius: var(--saludables-r-xl); overflow: hidden; aspect-ratio: 4 / 3.2; box-shadow: var(--saludables-shadow-md); border: 6px solid #fff; }
.saludables-market__frame img { width: 100%; height: 100%; object-fit: cover; display: block; }
.saludables-chips { display: flex; flex-wrap: wrap; gap: .6rem; margin: 1.2rem 0 1.6rem; padding: 0; list-style: none; }
.saludables-chips a, .saludables-chips span { display: inline-flex; align-items: center; gap: .4rem; background: #fff; border: 1px solid var(--saludables-line); color: var(--saludables-deep); border-radius: var(--saludables-r-full); padding: .5rem 1rem; font-weight: 600; font-size: .9rem; text-decoration: none; }
.saludables-chips a:hover { background: var(--saludables-deep); color: #fff; border-color: var(--saludables-deep); }
.saludables-chips a:hover .saludables-chips__count { background: rgba(255,255,255,.22); color: #fff; }
.saludables-chips a[aria-current="page"] { background: var(--saludables-deep); border-color: var(--saludables-deep); color: #fff; box-shadow: var(--saludables-shadow-sm); }
.saludables-chips a[aria-current="page"] .saludables-chips__count { background: var(--saludables-honey); color: var(--saludables-ink); }
.saludables-chips__count {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 1.5rem; height: 1.5rem; padding: 0 .35rem; border-radius: var(--saludables-r-full);
	background: var(--saludables-mint); color: var(--saludables-deep); font-size: .75rem; font-weight: 700;
}
/* Recomendados de la tienda. */
.saludables-recommended { margin: 0 0 2.5rem; padding: 1.8rem; background: #fff; border: 1px solid var(--saludables-line); border-radius: var(--saludables-r-xl); box-shadow: var(--saludables-shadow-sm); }
@media (max-width: 575px) { .saludables-recommended { padding: 1.2rem; } }

/* Esencia. */
.saludables-essence { background: #fff; border: 1px solid var(--saludables-line); border-radius: var(--saludables-r-lg); padding: 1.6rem 1.4rem; height: 100%; box-shadow: var(--saludables-shadow-sm); }
.saludables-essence__icon { display: inline-flex; align-items: center; justify-content: center; width: 3rem; height: 3rem; border-radius: 1rem; background: var(--saludables-mint); color: var(--saludables-deep); margin-bottom: .9rem; }
.saludables-essence h3 { font-size: 1.2rem; margin: 0 0 .4rem; }
.saludables-essence p { margin: 0; color: var(--saludables-muted); font-size: .95rem; }

/* Visítanos. */
.saludables-visit { background: #fff; border: 1px solid var(--saludables-line); border-radius: var(--saludables-r-lg); padding: 1.4rem; height: 100%; }
.saludables-visit h3 { font-size: 1.1rem; display: flex; align-items: center; gap: .5rem; margin: 0 0 .5rem; color: var(--saludables-deep); }
.saludables-visit p, .saludables-visit li { color: var(--saludables-muted); font-size: .95rem; }
.saludables-visit ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .3rem; }
.saludables-visit a { font-weight: 600; }

/* CTA final. */
.saludables-cta { background: linear-gradient(135deg, var(--saludables-deep), var(--saludables-leaf-dark)); border-radius: var(--saludables-r-xl); color: #fff; padding: clamp(1.8rem, 4vw, 3rem); box-shadow: var(--saludables-shadow-lg); overflow: hidden; position: relative; }
.saludables-cta h2 { color: #fff; margin: 0 0 .5rem; }
.saludables-cta p { color: rgba(255, 255, 255, .85); margin: 0; }
.saludables-cta__leaf { position: absolute; right: -2rem; bottom: -2rem; width: 12rem; height: 12rem; color: rgba(255, 255, 255, .12); transform: rotate(20deg); }
/* Botón secundario sobre verde: borde y texto blancos con contraste. */
.saludables-cta .saludables-btn--outline, .saludables-section--deep .saludables-btn--outline { border-color: #fff; color: #fff; background: transparent; }
.saludables-cta .saludables-btn--outline:hover, .saludables-section--deep .saludables-btn--outline:hover { background: #fff; border-color: #fff; color: var(--saludables-deep); }
.saludables-cta .saludables-btn--outline:focus-visible { outline-color: var(--saludables-honey); }
/* WhatsApp siempre visible: estados normal, hover y foco. */
.saludables-btn--primary:focus-visible { outline: 3px solid rgba(233,190,98,.9); outline-offset: 2px; }

/* Páginas internas. */
.saludables-page { padding: var(--saludables-section) 0; }
.saludables-page__title { font-size: clamp(2rem, 4.5vw, 3rem); margin: .6rem 0; }
.saludables-content { max-width: 44rem; }
.saludables-content img { border-radius: var(--saludables-r-md); }

/* Formularios. */
.saludables-field { margin-bottom: 1rem; }
.saludables-field__label { display: block; font-weight: 700; margin-bottom: .35rem; }
.saludables-field__error { display: block; color: var(--saludables-danger); font-size: .85rem; margin-top: .3rem; }
.saludables-notice { display: flex; gap: .7rem; align-items: flex-start; border-radius: var(--saludables-r-md); padding: 1rem 1.2rem; margin-bottom: 1.2rem; }
.saludables-notice--ok { background: var(--saludables-mint); color: var(--saludables-deep); }
.saludables-notice--error { background: #fdecea; color: var(--saludables-danger); }

/* Acordeón (contacto/nosotros). */
.saludables-accordion { --bs-accordion-bg: #fff; --bs-accordion-border-color: var(--saludables-line); --bs-accordion-btn-focus-box-shadow: 0 0 0 .25rem rgba(39, 133, 87, .15); --bs-accordion-active-bg: var(--saludables-mint); --bs-accordion-active-color: var(--saludables-deep); border-radius: var(--saludables-r-lg); overflow: hidden; }

/* Paginación, widgets, blog. */
.saludables-pagination { margin-top: 2rem; }
.saludables-pagination__list { display: flex; gap: .5rem; flex-wrap: wrap; justify-content: center; }
.saludables-pagination a, .saludables-pagination .current { display: inline-flex; align-items: center; justify-content: center; min-width: 2.6rem; height: 2.6rem; padding: 0 .8rem; border-radius: var(--saludables-r-full); border: 1px solid var(--saludables-line); background: #fff; text-decoration: none; font-weight: 600; }
.saludables-pagination .current { background: var(--saludables-deep); border-color: var(--saludables-deep); color: #fff; }
.saludables-widget { background: #fff; border: 1px solid var(--saludables-line); border-radius: var(--saludables-r-md); padding: 1.2rem; margin-bottom: 1.2rem; }
.saludables-widget__title { font-size: 1.1rem; margin: 0 0 .7rem; }
.saludables-postcard { background: #fff; border: 1px solid var(--saludables-line); border-radius: var(--saludables-r-lg); overflow: hidden; height: 100%; }
.saludables-postcard__media { aspect-ratio: 16 / 9; overflow: hidden; background: var(--saludables-mint); }
.saludables-postcard__media img { width: 100%; height: 100%; object-fit: cover; }
.saludables-postcard__body { padding: 1.1rem 1.2rem 1.3rem; }

/* Footer. */
.saludables-footer { background: var(--saludables-deep); color: rgba(255, 255, 255, .92); padding: 2.5rem 0 0; margin-top: var(--saludables-section); }
.saludables-footer__brand { display: inline-flex; align-items: center; gap: .6rem; text-decoration: none; max-width: 100%; }
/* Pastilla clara garantizada: el logo verde nunca queda sobre verde. */
.saludables-footer__logo {
	display: inline-flex; max-width: 100%;
	background: #fff !important; border-radius: 1rem;
	padding: .55rem .9rem; margin-bottom: .9rem;
	box-shadow: 0 2px 10px -2px rgba(0, 0, 0, .25);
}
.saludables-footer__logo .saludables-footer__brand { margin-bottom: 0; min-width: 0; max-width: 100%; }
.saludables-footer__logo .saludables-brand__text { min-width: 0; max-width: 100%; }
.saludables-footer__logo .saludables-brand__name { color: var(--saludables-deep) !important; white-space: normal; line-height: 1.15; }
.saludables-footer__logo .saludables-brand__tag { color: var(--saludables-muted) !important; }
.saludables-footer__logo .custom-logo, .saludables-footer__logo .custom-logo-link img {
	background: transparent !important; padding: 0 !important;
	height: 2.9rem !important; width: auto !important; max-width: 11rem !important;
}
.saludables-footer__about { font-size: .95rem; max-width: 22rem; color: rgba(255, 255, 255, .88); }
.saludables-footer__title { color: #fff; font-size: 1.05rem; margin: 0 0 .9rem; }
.saludables-footer__contact a { color: #fff; text-decoration: none; font-weight: 500; }
.saludables-footer__contact a:hover { color: var(--saludables-honey); }
.saludables-footer__contact { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .6rem; font-size: .95rem; color: rgba(255,255,255,.92); }
.saludables-footer__contact li { display: flex; gap: .6rem; align-items: flex-start; }
.saludables-footer__contact svg { color: var(--saludables-honey); flex-shrink: 0; align-self: flex-start; margin-top: .15em; }
/* Dirección: fila con icono a la izquierda y texto a la derecha; la segunda
 * línea cae bajo el texto, no bajo el icono. Solo este bloque lleva estas
 * reglas: teléfono, correo, WhatsApp y horarios no se tocan. */
.saludables-footer__contact-item--address { width: 100%; min-width: 0; }
.saludables-footer__contact-item--address > span { flex: 1 1 auto; min-width: 0; text-align: left; }
.saludables-footer__contact-item--address a { overflow-wrap: anywhere; text-align: left; }
/* Escritorio: marca, contacto y horarios en tres columnas de ancho parejo.
 * Antes contacto iba en una retícula de dos columnas iguales dentro de un
 * `col-lg-7`, con items de longitudes muy distintas (una dirección de tres
 * líneas frente a un WhatsApp de dos palabras). Eso dejaba filas rasas y un
 * hueco vacío visible, y el bloque de horarios —un solo texto con “·”— hacía
 * una fila tan alta que vaciaba la de al lado. Ahora cada bloque es una
 * columna propia y el reparto es parejo. */
.saludables-footer__grid { row-gap: 1.5rem; }
.saludables-footer__grid > div { margin-bottom: 0; }
/* Horarios: etiqueta a la izquierda, tramo a la derecha, uno por fila. */
.saludables-footer__hours { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; font-size: .95rem; color: rgba(255,255,255,.92); }
.saludables-footer__hours li {
	display: flex; gap: 1rem; align-items: baseline; justify-content: space-between;
	padding-bottom: .6rem; margin-bottom: .6rem; border-bottom: 1px solid rgba(255, 255, 255, .14);
}
.saludables-footer__hours li:last-child { padding-bottom: 0; margin-bottom: 0; border-bottom: 0; }
.saludables-footer__hours-label { color: rgba(255, 255, 255, .72); min-width: 0; overflow-wrap: break-word; }
.saludables-footer__hours-value { color: #fff; font-weight: 600; text-align: right; min-width: 0; overflow-wrap: break-word; }
.saludables-social { list-style: none; margin: 1rem 0 0; padding: 0; display: flex; gap: .6rem; }
.saludables-social a { display: inline-flex; align-items: center; justify-content: center; width: 2.5rem; height: 2.5rem; border-radius: 50%; background: rgba(255, 255, 255, .12); color: #fff; transition: background .18s, transform .18s; }
.saludables-social a:hover { background: var(--saludables-honey); color: var(--saludables-ink); transform: translateY(-2px); }
.saludables-footer__bar { border-top: 1px solid rgba(255, 255, 255, .2); margin-top: 1.8rem; padding: 1rem 0; display: flex; flex-wrap: wrap; gap: .6rem 1.5rem; align-items: center; justify-content: space-between; font-size: .9rem; color: #fff; }
.saludables-footer__copy { margin: 0; color: #fff; font-weight: 600; }
.saludables-footer__legal { list-style: none; margin: 0; padding: 0; display: flex; gap: 1rem; }
.saludables-footer__legal a { color: #fff; }
.saludables-credit { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; opacity: .9; text-decoration: none; color: rgba(255, 255, 255, .92); }
.saludables-credit:hover { opacity: 1; color: #fff; }
.saludables-credit__brand { background: linear-gradient(135deg, #7cc7ff, #e9be62); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; font-weight: 700; }
.saludables-credit__mark { color: #e9be62; flex-shrink: 0; display: block; }

/* Contenido de páginas y bloques. */
.saludables-content > * { max-width: 100%; }
.saludables-content > p, .saludables-content > ul, .saludables-content > ol, .saludables-content > h2, .saludables-content > h3 { max-width: 44rem; }
.saludables-content h2 { font-size: 1.5rem; margin-top: 2rem; }
.saludables-content h3 { font-size: 1.2rem; margin-top: 1.5rem; }
.saludables-content a { font-weight: 600; }
.saludables-content ul, .saludables-content ol { color: var(--saludables-muted); }
.saludables-content blockquote { border-left: 4px solid var(--saludables-honey); padding: .4rem 0 .4rem 1.2rem; color: var(--saludables-muted); font-style: italic; }
.saludables-content table { width: 100%; border-collapse: collapse; }
.saludables-content th, .saludables-content td { border: 1px solid var(--saludables-line); padding: .6rem .8rem; text-align: left; }

/* Tarjetas auxiliares: carrito, checkout, cuenta. */
.saludables-aside-card { background: #fff; border: 1px solid var(--saludables-line); border-radius: var(--saludables-r-lg); padding: 1.5rem; box-shadow: var(--saludables-shadow-sm); height: 100%; }
.saludables-aside-card h2, .saludables-aside-card h3 { margin-top: 0; }
.saludables-list-check { list-style: none; margin: 0 0 1.2rem; padding: 0; display: flex; flex-direction: column; gap: .6rem; }
.saludables-list-check li { display: flex; gap: .55rem; align-items: flex-start; color: var(--saludables-muted); font-size: .95rem; }
.saludables-list-check svg { color: var(--saludables-leaf); flex-shrink: 0; margin-top: .2rem; }

/* Carrito. */
.saludables-table { margin-bottom: 1rem; --bs-table-bg: transparent; }
.saludables-table thead th { font-size: .8rem; text-transform: uppercase; letter-spacing: .06em; color: var(--saludables-muted); border-bottom: 1px solid var(--saludables-line); white-space: nowrap; }
.saludables-cart__product img { width: 4.5rem; height: auto; border-radius: var(--saludables-r-sm); object-fit: cover; flex-shrink: 0; }
.saludables-cart__product a { font-weight: 600; text-decoration: none; }
.saludables-cart__remove { display: inline-flex; align-items: center; justify-content: center; width: 2.2rem; height: 2.2rem; border-radius: 50%; background: var(--saludables-mint); color: var(--saludables-deep); }
.saludables-cart__remove:hover { background: var(--saludables-danger); color: #fff; }
.saludables-coupon { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.saludables-coupon .form-control { max-width: 14rem; border-radius: var(--saludables-r-full); border-color: var(--saludables-line); }

/* Tienda elegante. */
.saludables-shop__hero {
	position: relative; overflow: hidden;
	background: linear-gradient(135deg, #fff 0%, var(--saludables-mint) 60%, #f6e7c6 130%);
	border: 1px solid var(--saludables-line); border-radius: var(--saludables-r-xl);
	padding: clamp(1.8rem, 4vw, 3rem); margin-bottom: 1rem;
	box-shadow: var(--saludables-shadow-sm);
}
.saludables-shop__hero::after {
	content: ""; position: absolute; width: 18rem; height: 18rem; border-radius: 50%;
	background: radial-gradient(circle, rgba(39,133,87,.14), transparent 70%);
	top: -7rem; right: -5rem; pointer-events: none;
}
.saludables-shop__hero .saludables-page__head { margin-bottom: 1.2rem; position: relative; z-index: 1; }
.saludables-shop__hero .saludables-section__lead { margin-bottom: 0; }
.saludables-shop__hero .saludables-chips { margin: 1.2rem 0 0; position: relative; z-index: 1; }
.saludables-shop__head { max-width: 46rem; }
.saludables-shop__head .saludables-page__title { letter-spacing: -.015em; }
.saludables-shop__toolbar {
	background: #fff; border: 1px solid var(--saludables-line); border-radius: var(--saludables-r-full);
	padding: .6rem .6rem .6rem 1.3rem; margin: 1.2rem 0 1.8rem; box-shadow: var(--saludables-shadow-sm);
}
.saludables-shop__grid .col { display: flex; }
.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; display: block; transition: transform .45s ease; }
.saludables-shop__grid .saludables-product:hover .saludables-product__media img { transform: scale(1.06); }
@media (max-width: 575px) { .saludables-shop__toolbar { border-radius: var(--saludables-r-lg); } }

/* Cuenta y comentarios. */
.saludables-comments { border-top: 1px solid var(--saludables-line); padding-top: 1.5rem; }
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .3rem; }
.woocommerce-MyAccount-navigation a { display: block; padding: .6rem .8rem; border-radius: var(--saludables-r-sm); text-decoration: none; color: var(--saludables-ink); font-weight: 600; }
.woocommerce-MyAccount-navigation a:hover, .woocommerce-MyAccount-navigation .is-active a { background: var(--saludables-mint); color: var(--saludables-deep); }

/* Breadcrumbs Woo. */
.woocommerce-breadcrumb { font-size: .85rem; color: var(--saludables-muted); margin-bottom: 1rem; }
.woocommerce-breadcrumb a { color: var(--saludables-leaf-dark); }

/* Utilidades de medida (sustituyen a estilos inline). */
.saludables-measure--32 { max-width: 32rem; }
.saludables-measure--36 { max-width: 36rem; }
.saludables-measure--50 { max-width: 50rem; }
.saludables-title--sm { font-size: 1.5rem; }
.saludables-logo--mini { max-width: 220px; height: auto; border-radius: 12px; }
.saludables-cafe__frame--mint { border-color: var( --saludables-mint ); }

/* Galería del local (cafetería). */
.saludables-subtitle {
	display: flex; align-items: center; gap: .5rem;
	font-family: var(--saludables-font-display);
	font-weight: 700;
	font-size: 1.05rem;
	margin: 1.5rem 0 .75rem;
	color: var(--saludables-deep);
}
.saludables-gallery {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: .9rem;
}
.saludables-gallery__item {
	margin: 0;
	overflow: hidden;
	border-radius: var(--saludables-r-md);
	background: var(--saludables-cream);
	aspect-ratio: 4 / 3;
}
.saludables-gallery__img,
.saludables-gallery__item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform .35s ease;
}
.saludables-gallery__item:hover img { transform: scale(1.04); }
.saludables-cafe__hero { width: 100%; border-radius: inherit; }

/* Responsive: 360 / 390 / 768 / 1024 / 1440. */
@media (max-width: 767px) { .saludables-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 575px) {
	.saludables-hero__cta .saludables-btn { flex: 1 1 100%; }
	.saludables-header__inner { gap: .5rem; padding-inline: .75rem; }
	.saludables-header__actions { gap: .4rem; flex-shrink: 0; }
	.saludables-iconbtn { width: 2.5rem; height: 2.5rem; min-width: 2.5rem; min-height: 2.5rem; }
	.saludables-iconbtn--account { display: none !important; }
	.saludables-brand__text { min-width: 0; }
	.saludables-brand__name { font-size: .95rem; white-space: normal; line-height: 1.08; }
	.saludables-brand__tag { display: none; }
	/* El logo y la marca provisional bajan juntos. */
	:root { --saludables-logo-h: 2.6rem; }
	.custom-logo, .saludables-brand .custom-logo-link img { max-width: min(7rem, 36vw) !important; }
	.saludables-hero__frame { aspect-ratio: 4 / 3; min-height: 0; max-height: 340px; }
	.saludables-searchform { flex-direction: column; }
	.saludables-cat__name { font-size: .95rem; }
	.saludables-cat__go { width: 1.7rem; height: 1.7rem; }
	.saludables-aside-card { padding: 1.2rem; }
	.saludables-coupon .form-control { max-width: 100%; }
}
@media (min-width: 768px) {
	.saludables-hero { padding: 4rem 0; }
}
@media (min-width: 1024px) {
	.saludables-header__inner { gap: 1.5rem; }
}
@media (min-width: 1440px) {
	.container { max-width: 1280px; }
}

/* ==========================================================================
   Tienda y responsive (360–1440).
   Contenedor fluido, títulos fluidos, sin alturas rígidas ni overflow.
   La ficha de producto se veste en woocommerce.css (sin duplicar reglas).
   ========================================================================== */
.saludables-page__title, .page-title { font-size: clamp(1.8rem, 3.5vw, 3rem); line-height: 1.12; overflow-wrap: break-word; }
.saludables-shop__hero { padding: clamp(1.2rem, 3vw, 2rem); }
.saludables-shop__hero .saludables-page__title { font-size: clamp(1.6rem, 3vw, 2.4rem); }
.saludables-shop__grid .col { min-width: 0; }
.saludables-btn, .woocommerce a.button, .woocommerce button.button { min-height: 2.75rem; }
.saludables-chips { max-width: 100%; }
.saludables-footer__grid > div { min-width: 0; }
.saludables-hero__media, .saludables-cafe__frame, .saludables-market__frame { min-width: 0; max-width: 100%; }

/* Lightbox propio: fondo oscuro, imagen contenida, X visible. */
.saludables-lightbox { position: fixed; inset: 0; z-index: 3000; display: flex; align-items: center; justify-content: center; padding: 1rem; background: rgba(18, 28, 22, .82); opacity: 0; visibility: hidden; transition: opacity .2s ease, visibility .2s; }
.saludables-lightbox.is-open { opacity: 1; visibility: visible; }
.saludables-lightbox__figure { margin: 0; max-width: min(92vw, 1100px); max-height: 88vh; display: flex; flex-direction: column; gap: .6rem; align-items: center; }
.saludables-lightbox__img { display: block; max-width: min(92vw, 1100px); max-height: 78vh; width: auto; height: auto; object-fit: contain; border-radius: var(--saludables-r-md); background: #fff; box-shadow: var(--saludables-shadow-lg); }
.saludables-lightbox__cap { color: #fff; font-size: .9rem; text-align: center; max-width: 60ch; }
.saludables-lightbox__close { position: absolute; top: .9rem; right: .9rem; display: inline-flex; align-items: center; justify-content: center; width: 2.75rem; height: 2.75rem; border-radius: 50%; border: 0; background: #fff; color: var(--saludables-deep); font-size: 1.4rem; font-weight: 700; cursor: pointer; box-shadow: var(--saludables-shadow-md); }
.saludables-lightbox__close:hover { background: var(--saludables-honey); color: var(--saludables-ink); }

/* Responsive fino por anchos reales. */
@media (max-width: 1024px) {
	.saludables-shop__hero::after { width: 12rem; height: 12rem; }
}
@media (max-width: 768px) {
	.saludables-page { padding: clamp(1.5rem, 4vw, 2.5rem) 0; }
	.saludables-shop__toolbar { flex-direction: column; align-items: stretch; gap: .7rem; }
	.saludables-shop__order { width: 100%; }
	.saludables-shop__order select { width: 100%; }
	.saludables-hero__chip--a { top: .6rem; right: .6rem; }
	.saludables-hero__chip--b { bottom: .6rem; left: .6rem; }
	.saludables-footer__about { max-width: 100%; }
	.saludables-footer__bar { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 540px) {
	.saludables-shop__hero { border-radius: var(--saludables-r-lg); }
	.saludables-chips a, .saludables-chips span { font-size: .85rem; padding: .45rem .85rem; }
	.saludables-product__foot { flex-direction: column; align-items: stretch; }
	.saludables-product__foot .saludables-btn { width: 100%; }
	.saludables-hero__title { overflow-wrap: break-word; }
}
@media (max-width: 390px) {
	.saludables-header__inner { padding-left: .75rem; padding-right: .75rem; }
	.saludables-shop__hero { padding: 1rem; }
}
@media (max-width: 360px) {
	.saludables-btn { padding: .75rem 1.1rem; font-size: .95rem; }
	.saludables-cat__body { padding: .6rem .8rem; }
}

/* Formulario de contacto: estados y validación. */
.saludables-contact-status { margin-bottom: 1rem; }
.saludables-contact-status[hidden] { display: none; }
#saludables-contact-form .is-invalid { border-color: var(--saludables-danger); }
#saludables-contact-form .is-invalid:focus { border-color: var(--saludables-danger); box-shadow: 0 0 0 .25rem rgba(179, 38, 30, .12); }
#saludables-contact-form [type="submit"][disabled] { opacity: .7; cursor: wait; }

/* ==========================================================================
   Inicio móvil 1.14.0 — jerarquía y causas reales (390 px y cía).
   Sin break-all, sin fijos, sin tapar con overflow.
   ========================================================================== */
.saludables-main .row > * { min-width: 0; }
h1, h2, h3, .saludables-hero__title, .saludables-section__title,
.saludables-page__title, .saludables-product__title, .saludables-cat__name { overflow-wrap: break-word; }
.saludables-visit a, .saludables-footer__contact a { overflow-wrap: anywhere; }

/* Cabecera estable. */
.saludables-topbar__text { line-height: 1.5; }
.saludables-header__inner { min-width: 0; }
.saludables-brand__name { overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
@media (max-width: 575px) {
	.saludables-topbar { padding: .5rem .75rem; }
	.saludables-topbar__text { font-size: .8rem; }
	.saludables-header__inner { padding-top: .55rem; padding-bottom: .55rem; }
	.saludables-iconbtn { width: 2.5rem; height: 2.5rem; }
	/* El nombre se ve entero en el móvil: antes `overflow: hidden` lo cortaba
	 * con puntos suspensivos cuando el logo y los tres botones se comían el
	 * ancho. Se deja partir en dos líneas, sin recortarse ni […] . */
	.saludables-brand__name {
		font-size: .9rem;
		letter-spacing: .04em;
		white-space: normal;
		line-height: 1.15;
		overflow: visible;
		text-overflow: clip;
		max-width: 7.5rem;
		word-break: normal;
		overflow-wrap: break-word;
	}
	.saludables-brand { align-items: center; }
	.saludables-brand__text { align-items: flex-start; }
}
/* Muy estrecho: el nombre se reduce, no se oculta.
 *
 * Aquí estaba `display: none` sobre `.saludables-brand__text`, y eso quitaba
 * también el título de la casa del árbol de accesibilidad: en cualquier
 * teléfono de 419 px o menos (360, 375, 390…) el logo quedaba reducido a la
 * hoja sin decir nada, y el `aria-label` del enlace era lo único que quedaba.
 * Hay sitio de sobra: los tres botones ocupan 2.5rem cada uno y el nombre a
 * .82rem mide unos 5rem. */
@media (max-width: 419px) {
	.saludables-header__inner { gap: .4rem; }
	.saludables-brand { gap: .45rem; }
	.saludables-brand__name { font-size: .82rem; letter-spacing: .02em; white-space: normal; max-width: 6.5rem; }
}
/* Muy justo (iPhone SE y similares en vertical): un punto menos de cuerpo. */
@media (max-width: 340px) {
	:root { --saludables-logo-h: 2.35rem; }
	.saludables-brand__name { font-size: .74rem; max-width: 5.5rem; }
	.saludables-iconbtn { width: 2.35rem; height: 2.35rem; min-width: 2.35rem; min-height: 2.35rem; }
}

/* Hero compacto y fluido. */
@media (max-width: 767px) {
	:root { --saludables-section: 2rem; }
	.saludables-hero { padding: 1.75rem 0 2rem; }
	.saludables-hero__title { font-size: clamp(1.9rem, 8vw, 2.6rem); }
	.saludables-hero__text { font-size: 1rem; max-width: 100%; }
	.saludables-hero__frame { aspect-ratio: 4 / 3; max-height: 320px; border-width: 4px; }
	.saludables-hero__chip { font-size: .78rem; padding: .45rem .8rem; max-width: calc(100% - 1.2rem); }
	.saludables-hero__blob--a { width: 16rem; height: 16rem; }
	.saludables-hero__blob--b { width: 12rem; height: 12rem; }
	.saludables-cafe__frame, .saludables-market__frame { aspect-ratio: 4 / 3; max-height: 300px; border-width: 4px; }
	.saludables-section--deep { padding: 2rem 0; }
	/* Destacados: 1 columna si 2 quedan estrechas (<420 px). */
	.saludables-feat-grid.row-cols-2 > .col { flex: 0 0 100%; max-width: 100%; }
	.saludables-essence { padding: 1.2rem 1.1rem; }
	.saludables-visit { padding: 1.1rem; }
	.saludables-cta { padding: 1.6rem 1.25rem; }
	.saludables-cta .saludables-btn { width: 100%; }
}
@media (min-width: 420px) and (max-width: 767px) {
	.saludables-feat-grid.row-cols-2 > .col { flex: 0 0 50%; max-width: 50%; }
}
/* Categorías: texto siempre legible sobre la foto. */
.saludables-cat__body { text-shadow: 0 1px 6px rgba(0, 0, 0, .45); }
@media (max-width: 359px) {
	.saludables-cat__name { font-size: .85rem; }
	.saludables-cat__body { padding: .55rem .7rem; }
	.row.g-3 { --bs-gutter-x: .75rem; }
}

/* Footer móvil compacto y en orden. */
@media (max-width: 767px) {
	.saludables-footer { padding: 1.75rem 0 0; }
	.saludables-footer__about { max-width: 100%; font-size: .92rem; }
	.saludables-footer__title { font-size: 1rem; margin-bottom: .6rem; }
	.saludables-footer__bar { font-size: .85rem; }
}
/* En una sola columna no hay ancho para poner el tramo a la derecha: el
 * `space-between` dejaba la hora pegada al borde y con rótulos largos
 * (“Domingos y festivos”) la fila se partía de forma irregular. */
@media (max-width: 575px) {
	.saludables-footer__hours li { flex-direction: column; align-items: flex-start; gap: .1rem; }
	.saludables-footer__hours-value { text-align: left; }
}

/* ==========================================================================
   Ajustes móviles pedidos (1.16.2)
   Solo bajo 767 px: el escritorio se queda como estaba.
   ========================================================================== */

/* 1. Footer centrado. En escritorio sigue a la izquierda. */
@media (max-width: 767px) {
	.saludables-footer { text-align: center; }
	.saludables-footer__grid { justify-content: center; }
	.saludables-footer__grid > div { display: flex; flex-direction: column; align-items: center; }
	.saludables-footer__logo .saludables-footer__brand { justify-content: center; text-align: center; }
	.saludables-footer__logo .saludables-brand__text { align-items: center; text-align: center; }
	.saludables-footer__logo .saludables-brand__name,
	.saludables-footer__logo .saludables-brand__tag { text-align: center; }
	.saludables-footer__about { margin-inline: auto; }
	.saludables-footer__contact { align-items: center; }
	.saludables-footer__contact li { justify-content: center; align-items: center; text-align: center; }
	.saludables-footer__contact svg { margin-top: 0; align-self: center; }
	/* La dirección no se centra en móvil: mantiene fila icono + texto con el
	 * icono arriba junto a la primera línea. Más específico que la regla
	 * general, así que gana sin `!important`. */
	.saludables-footer__contact li.saludables-footer__contact-item--address { justify-content: flex-start; align-items: flex-start; text-align: left; }
	.saludables-footer__contact-item--address > svg { margin-top: .2rem; align-self: flex-start; }
	.saludables-footer__contact-item--address > span { text-align: left; }
	/* Revierte el `flex-start` de ≤575 px para que el horario quede centrado. */
	.saludables-footer__hours { align-items: center; }
	.saludables-footer__hours li { flex-direction: column; align-items: center; text-align: center; }
	.saludables-footer__hours-label, .saludables-footer__hours-value { text-align: center; }
	.saludables-footer__bar { align-items: center; justify-content: center; text-align: center; }
	.saludables-footer__legal { justify-content: center; }
	.saludables-footer__credit { text-align: center; }
}

/* 2. Tarjetas de producto algo más pequeñas. El catálogo cae a una sola
 *    columna en móvil, así que sin tope la foto ocupaba media pantalla.
 *    Lo de WooCommerce vive en woocommerce.css: ese archivo se encola
 *    después y pisaba estas mismas reglas. */
@media (max-width: 767px) {
	.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; }
}

/* 3. Fotos del catálogo: se ven y se amplían, pero no se descargan.
 *    El bloqueo real va en main.js (arrastrar y menú contextual); esto cubre
 *    la selección y la llamada del menú de iOS.
 *    Sin `div.product` en el selector: esta plantilla no lo genera. */
.saludables-product__media,
.saludables-product__media img,
.woocommerce div.images,
.woocommerce div.images img,
.saludables-single__gallery img {
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
	-webkit-touch-callout: none;
	-webkit-user-drag: none;
}

/* Movimiento reducido. */
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
	.saludables-cat:hover .saludables-cat__media img { transform: none; }
	.saludables-lightbox { transition: none; }
}
