/* ==========================================================================
   Colibrí — estilos principales
   Diseño inspirado en Hummingbird (PrestaShop). Código propio.
   ========================================================================== */

:root {
	--c-primary: #0b69f6;
	--c-primary-hover: #0959d1;
	--c-primary-rgb: 11, 105, 246;
	--c-text: #212529;
	--c-muted: #6c757d;
	--c-border: #dee2e6;
	--c-bg: #ffffff;
	--c-bg-soft: #f8f9fa;
	--c-bg-soft-2: #e9ecef;
	--c-footer-bg: #212529;
	--c-footer-text: #dee2e6;
	--c-topbar-bg: #ffffff;
	--c-topbar-text: #212529;
	--c-surface: #ffffff;
	--c-header-bg: #ffffff;
	--c-header-text: #212529;
	--c-heading: #212529;
	--c-card-bg: #f8f9fa;
	--c-newsletter-bg: #f8f9fa;
	--c-on-primary: #ffffff;
	--img-blend: multiply;
	--c-badge: #0b69f6;
	--c-sale: #ff4657;
	--c-success: #188251;
	--c-warning: #b35c00;

	--font-heading: var(--font);
	--font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--radius: 0.5rem;
	--radius-sm: 0.25rem;
	--radius-pill: 50rem;
	--shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.08);
	--shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
	--transition: 0.2s ease-in-out;
	--container: 1240px;
	--gutter: 1rem;
}

/* ---------- Base ---------- */
*,
*::before,
*::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
	margin: 0;
	font-family: var(--font);
	font-size: 1rem;
	line-height: 1.5;
	color: var(--c-text);
	background: var(--c-bg);
	-webkit-font-smoothing: antialiased;
}

img, svg, video { max-width: 100%; height: auto; vertical-align: middle; }

a { color: var(--c-primary); text-decoration: none; transition: color var(--transition); }
a:hover { color: var(--c-primary-hover); }

h1, h2, h3, h4, h5, h6 { margin: 0 0 0.75rem; font-family: var(--font-heading); font-weight: 600; line-height: 1.25; color: var(--c-heading); }
.site-logo--text, .hero__title, .promo-banner__title, .footer-block__title, .newsletter__title { font-family: var(--font-heading); }
h1 { font-size: 1.75rem; }
h2 { font-size: 1.5rem; }
h3 { font-size: 1.25rem; }
p { margin: 0 0 1rem; }

button, input, select, textarea { font: inherit; color: inherit; }

:focus-visible { outline: 2px solid var(--c-primary); outline-offset: 2px; }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0);
	white-space: nowrap; border: 0;
}
.skip-link:focus {
	clip: auto; width: auto; height: auto;
	z-index: 1000; top: 0.5rem; left: 0.5rem;
	padding: 0.5rem 1rem; background: var(--c-surface); border-radius: var(--radius);
}

.container {
	width: 100%;
	max-width: var(--container);
	margin-inline: auto;
	padding-inline: var(--gutter);
}

/* ---------- Botones ---------- */
.btn,
.button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.375rem;
	padding: 0.5rem 1rem;
	font-size: 0.9375rem;
	font-weight: 500;
	line-height: 1.5;
	border: 1px solid var(--c-primary);
	border-radius: var(--radius);
	background: var(--c-primary);
	color: var(--c-on-primary);
	cursor: pointer;
	text-align: center;
	transition: background var(--transition), border-color var(--transition), color var(--transition), box-shadow var(--transition);
}
.btn:hover,
.button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.wp-block-button__link:hover {
	background: var(--c-primary-hover);
	border-color: var(--c-primary-hover);
	color: var(--c-on-primary);
}

.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce #respond input#submit.alt,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover { background: var(--c-primary); border-color: var(--c-primary); color: var(--c-on-primary); }
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover { background: var(--c-primary-hover); border-color: var(--c-primary-hover); }

.woocommerce button.button:disabled,
.woocommerce button.button.disabled,
.woocommerce button.button.alt.disabled { opacity: 0.55; padding: 0.5rem 1rem; }

.btn--outline,
.btn--outline:visited {
	background: transparent;
	color: var(--c-primary);
	border-color: var(--c-primary);
}
.btn--outline:hover { background: var(--c-primary); color: var(--c-on-primary); }

.btn--block { width: 100%; }

/* ---------- Encabezado ---------- */
.site-header { position: relative; z-index: 50; background: var(--c-header-bg); color: var(--c-header-text); }

.header-top {
	background: var(--c-topbar-bg);
	border-bottom: 1px solid var(--c-border);
	font-size: 0.875rem;
}
.header-top__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	min-height: 2.5rem;
}
.header-top a, .header-top span, .header-top .header-action { color: var(--c-topbar-text); }
.header-top a:hover { color: var(--c-primary); }
.header-top__right { display: flex; align-items: center; gap: 1.25rem; }

.topbar-menu { display: flex; gap: 1.25rem; margin: 0; padding: 0; list-style: none; }

.header-action {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	color: var(--c-header-text);
	white-space: nowrap;
}
.header-cart__count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 1.25rem;
	height: 1.25rem;
	padding: 0 0.3rem;
	font-size: 0.75rem;
	font-weight: 600;
	line-height: 1;
	border-radius: var(--radius-pill);
	background: var(--c-bg-soft-2);
	color: var(--c-text);
}
.header-cart__count:not([data-count="0"]) { background: var(--c-primary); color: var(--c-on-primary); }

.header-bottom { border-bottom: 1px solid var(--c-border); }
.header-bottom__row {
	display: flex;
	align-items: center;
	gap: 1.5rem;
	min-height: 4.25rem;
}

.site-title { margin: 0; font-size: 1rem; line-height: 1; }
.site-logo, .custom-logo-link { display: inline-flex; align-items: center; }
.custom-logo { max-height: 3rem; width: auto; }
.site-logo--text { gap: 0.3em; font-size: 1.375rem; font-weight: 700; letter-spacing: -0.02em; }
.site-logo__a { color: var(--c-primary); }
.site-logo__b { color: var(--c-header-text); font-weight: 600; }

.main-nav { flex: 1 1 auto; }
.main-nav .menu { display: flex; align-items: center; gap: 0.25rem; margin: 0; padding: 0; list-style: none; }
.main-nav .menu > li { position: relative; }
.main-nav .menu > li > a {
	display: flex;
	align-items: center;
	gap: 0.25rem;
	padding: 1.375rem 0.75rem;
	font-size: 0.9375rem;
	font-weight: 500;
	color: var(--c-header-text);
}
.main-nav .menu > li > a:hover,
.main-nav .menu > .current-menu-item > a,
.main-nav .menu > .current-menu-ancestor > a { color: var(--c-primary); }

.main-nav .menu-item-has-children > a::after {
	content: "";
	width: 0.45rem; height: 0.45rem;
	margin-left: 0.15rem;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	transform: translateY(-2px) rotate(45deg);
}
.main-nav .sub-menu {
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 14rem;
	margin: 0;
	padding: 0.5rem 0;
	list-style: none;
	background: var(--c-surface);
	border: 1px solid var(--c-border);
	border-radius: var(--radius);
	box-shadow: var(--shadow);
	opacity: 0;
	visibility: hidden;
	transform: translateY(6px);
	transition: opacity var(--transition), transform var(--transition), visibility var(--transition);
}
.main-nav li:hover > .sub-menu,
.main-nav li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.main-nav .sub-menu a { display: block; padding: 0.4rem 1rem; color: var(--c-text); font-size: 0.9375rem; }
.main-nav .sub-menu a:hover { background: var(--c-bg-soft); color: var(--c-primary); }
.main-nav .sub-menu .sub-menu { top: -0.5rem; left: 100%; }

.header-bottom__search { flex: 0 1 18rem; margin-left: auto; }

.search-box { position: relative; display: flex; align-items: center; width: 100%; }
.search-box__icon { position: absolute; left: 0.75rem; display: flex; color: var(--c-muted); pointer-events: none; }
.search-box .search-box__input {
	width: 100%;
	height: 2.5rem;
	padding: 0.375rem 0.75rem 0.375rem 2.375rem;
	font-size: 0.9375rem;
	background: var(--c-surface);
	border: 1px solid var(--c-border);
	border-radius: var(--radius);
	transition: border-color var(--transition), box-shadow var(--transition);
	-webkit-appearance: none;
	appearance: none;
}
.search-box .search-box__input:focus { outline: none; border-color: rgba(var(--c-primary-rgb), 0.5); box-shadow: 0 0 0 0.25rem rgba(var(--c-primary-rgb), 0.15); }

.header-toggle,
.header-bottom__mobile-actions { display: none; }
.header-toggle {
	color: var(--c-header-text);
	align-items: center;
	justify-content: center;
	width: 2.5rem; height: 2.5rem;
	margin-left: -0.5rem;
	background: none; border: 0; border-radius: var(--radius);
	cursor: pointer;
}

/* ---------- Panel lateral (móvil) ---------- */
.offcanvas { position: fixed; inset: 0; z-index: 200; visibility: hidden; }
.offcanvas.is-open { visibility: visible; }
.offcanvas__backdrop { position: absolute; inset: 0; background: rgba(0, 0, 0, 0.5); opacity: 0; transition: opacity var(--transition); }
.offcanvas.is-open .offcanvas__backdrop { opacity: 1; }
.offcanvas__panel {
	position: absolute;
	top: 0; bottom: 0; left: 0;
	display: flex;
	flex-direction: column;
	width: min(22rem, 88vw);
	background: var(--c-surface);
	transform: translateX(-100%);
	transition: transform 0.3s ease;
}
.offcanvas.is-open .offcanvas__panel { transform: none; }
.offcanvas__head { display: flex; align-items: center; justify-content: space-between; padding: 1rem; border-bottom: 1px solid var(--c-border); }
.offcanvas__title { font-weight: 600; font-size: 1.125rem; }
.offcanvas__close { display: flex; color: var(--c-text); background: none; border: 0; padding: 0.25rem; cursor: pointer; }
.offcanvas__body { flex: 1; overflow-y: auto; padding: 1rem; }

.mobile-nav { margin-top: 1rem; }
.mobile-nav .menu, .mobile-nav .sub-menu { margin: 0; padding: 0; list-style: none; }
.mobile-nav .sub-menu { padding-left: 1rem; }
.mobile-nav a { display: block; padding: 0.625rem 0; color: var(--c-text); font-weight: 500; border-bottom: 1px solid var(--c-bg-soft-2); }
.mobile-nav .sub-menu a { font-weight: 400; }

body.has-offcanvas { overflow: hidden; }

/* ---------- Portada: slider ---------- */
.hero { position: relative; overflow: hidden; background: var(--c-bg-soft-2); }
.hero__track { position: relative; }
.hero__slide { position: relative; display: none; }
.hero__slide.is-active { display: block; animation: colibri-fade 0.6s ease; }
@keyframes colibri-fade { from { opacity: 0.35; } to { opacity: 1; } }
.hero__img { display: block; width: 100%; height: clamp(15rem, 38vw, 34rem); object-fit: cover; }
.hero__caption {
	position: absolute;
	left: 50%;
	bottom: 2.5rem;
	transform: translateX(-50%);
	width: min(40rem, calc(100% - 2rem));
	padding: 1.25rem 1.5rem;
	text-align: center;
	color: #fff;
	background: rgba(33, 37, 41, 0.6);
	border-radius: var(--radius);
	backdrop-filter: blur(2px);
}
.hero__title { margin: 0 0 0.25rem; font-size: clamp(1.25rem, 2.5vw, 1.75rem); color: #fff; text-transform: uppercase; letter-spacing: 0.04em; }
.hero__subtitle { margin: 0 0 0.5rem; font-weight: 600; text-transform: uppercase; font-size: 0.875rem; letter-spacing: 0.06em; }
.hero__text { margin: 0; font-size: 0.875rem; opacity: 0.9; }
.hero__text:empty { display: none; }
.hero__cta { margin-top: 1rem; }
.hero__link { position: absolute; inset: 0; z-index: 1; }

.hero__slide--placeholder { min-height: clamp(15rem, 38vw, 30rem); }
.hero__placeholder-art {
	position: absolute; inset: 0;
	background:
		linear-gradient(115deg, rgba(var(--c-primary-rgb), 0.85) 0 42%, transparent 42%),
		repeating-linear-gradient(0deg, rgba(255, 255, 255, 0.65) 0 2px, transparent 2px 46px),
		repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.65) 0 2px, transparent 2px 46px),
		linear-gradient(180deg, #dfe6ec, #c9d4dd);
}
.hero__slide--placeholder .hero__caption { z-index: 2; }

.hero__nav {
	position: absolute;
	top: 50%;
	z-index: 3;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2.5rem; height: 2.5rem;
	margin-top: -1.25rem;
	color: var(--c-text);
	background: rgba(255, 255, 255, 0.8);
	border: 0;
	border-radius: var(--radius);
	cursor: pointer;
	transition: background var(--transition);
}
.hero__nav:hover { background: #fff; }
.hero__nav--prev { left: 1rem; }
.hero__nav--next { right: 1rem; }
.hero__dots { position: absolute; bottom: 0.75rem; left: 0; right: 0; z-index: 3; display: flex; justify-content: center; gap: 0.5rem; }
.hero__dot { width: 0.625rem; height: 0.625rem; padding: 0; border: 0; border-radius: 50%; background: rgba(255, 255, 255, 0.55); cursor: pointer; }
.hero__dot.is-active { background: #fff; }

/* ---------- Portada: secciones ---------- */
.home-sections { padding-block: 2rem 1rem; }
.home-sections > * + * { margin-top: 3rem; }
.section-title { font-size: 1.5rem; font-weight: 600; margin-bottom: 1rem; }
.home-text__lead { font-weight: 700; margin-bottom: 0.5rem; }
.home-text__body { color: var(--c-text); margin: 0; }
.section-more { display: flex; justify-content: center; margin-top: 1.5rem; }
.section-more .btn { padding: 0.25rem 0.875rem; font-size: 0.875rem; }

.promo-banner {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.25rem;
	min-height: 9rem;
	padding: 2rem 1rem;
	text-align: center;
	color: var(--c-primary);
	border-radius: var(--radius);
	background:
		radial-gradient(circle at 50% 0, transparent 9px, rgba(var(--c-primary-rgb), 0.9) 10px 12px, transparent 13px) 0 0 / 28px 16px,
		var(--c-bg);
	position: relative;
}
.promo-banner::before {
	content: "";
	position: absolute;
	inset: 1.25rem 2rem;
	background: var(--c-surface);
	border-radius: var(--radius-sm);
}
.promo-banner > * { position: relative; }
.promo-banner__title { font-size: clamp(1.5rem, 4vw, 2.75rem); font-weight: 700; font-style: italic; text-transform: uppercase; letter-spacing: 0.02em; }
.promo-banner__sub { font-size: 0.875rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.15em; }
.promo-banner--image { padding: 0; background: none; min-height: 0; overflow: hidden; }
.promo-banner--image::before { display: none; }
.promo-banner--image img { display: block; width: 100%; border-radius: var(--radius); }
a.promo-banner { text-decoration: none; }
a.promo-banner:hover .promo-banner__sub { text-decoration: underline; }

/* ---------- Rejilla de productos ---------- */
.woocommerce ul.products,
.woocommerce-page ul.products,
ul.products {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1.5rem 1.25rem;
	margin: 0 0 1.5rem;
	padding: 0;
	list-style: none;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after { display: none; }
.woocommerce ul.products.columns-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.woocommerce ul.products.columns-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.woocommerce ul.products.columns-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.woocommerce ul.products.columns-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.woocommerce ul.products.columns-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product,
.woocommerce ul.products[class*="columns-"] li.product,
.woocommerce-page ul.products[class*="columns-"] li.product,
.woocommerce ul.products[class*="columns-"] li.product:nth-child(2n),
.woocommerce-page ul.products[class*="columns-"] li.product:nth-child(2n) {
	float: none;
	width: auto;
	margin: 0;
	padding: 0;
	clear: none;
}

.product-card__inner { display: flex; flex-direction: column; height: 100%; }
.product-card__top {
	position: relative;
	overflow: hidden;
	background: var(--c-card-bg);
	border-radius: var(--radius);
	transition: box-shadow var(--transition);
}
.product-card:hover .product-card__top { box-shadow: var(--shadow); }
.product-card__image { display: block; aspect-ratio: 1 / 1; }
.product-card__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.4s ease;
	mix-blend-mode: var(--img-blend);
}
.product-card:hover .product-card__image img { transform: scale(1.04); }

.product-card__badges { position: absolute; top: 0.5rem; left: 0.5rem; display: flex; flex-wrap: wrap; gap: 0.25rem; z-index: 2; }
.badge {
	display: inline-block;
	padding: 0.125rem 0.375rem;
	font-size: 0.6875rem;
	font-weight: 600;
	line-height: 1.4;
	color: #fff;
	border-radius: var(--radius-sm);
	background: var(--c-badge);
}
.badge--sale { background: var(--c-surface); color: var(--c-sale); border: 1px solid var(--c-sale); }
.badge--new { background: var(--c-badge); }
.badge--out { background: var(--c-muted); }

.product-card__body { display: flex; flex: 1; flex-direction: column; padding-top: 0.75rem; }
.product-card__title { margin: 0 0 0.25rem; font-size: 0.9375rem; font-weight: 500; line-height: 1.35; }
.product-card__title a { color: var(--c-primary); }
.product-card__title a:hover { text-decoration: underline; }
.product-card .star-rating { margin: 0 0 0.25rem; font-size: 0.75rem; }
.product-card__price { margin-bottom: 0.5rem; font-weight: 600; font-size: 0.9375rem; color: var(--c-text); }
.product-card__price del { color: var(--c-muted); font-weight: 400; font-size: 0.8125rem; margin-left: 0.25rem; }
.product-card__price ins { text-decoration: none; }
.product-card__price .woocommerce-Price-amount { color: var(--c-text); }
.product-card__stock { margin: 0 0 0.5rem; font-size: 0.8125rem; font-weight: 600; color: var(--c-warning); }

.product-card__actions { display: flex; align-items: center; gap: 0.5rem; margin-top: auto; }
.product-card__actions .added_to_cart { display: none; }

.qty-stepper {
	display: inline-flex;
	align-items: stretch;
	height: 2.25rem;
	border: 1px solid var(--c-border);
	border-radius: var(--radius);
	overflow: hidden;
	background: var(--c-surface);
}
.qty-stepper__btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2rem;
	padding: 0;
	background: none;
	border: 0;
	cursor: pointer;
	color: var(--c-text);
}
.qty-stepper__btn:hover { background: var(--c-bg-soft); }
.qty-stepper__input,
.qty-stepper input.qty {
	width: 2.5rem;
	padding: 0;
	text-align: center;
	border: 0;
	border-inline: 1px solid var(--c-border);
	-moz-appearance: textfield;
	appearance: textfield;
	background: transparent;
}
.qty-stepper__input::-webkit-outer-spin-button,
.qty-stepper__input::-webkit-inner-spin-button,
.qty-stepper input.qty::-webkit-outer-spin-button,
.qty-stepper input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

.woocommerce ul.products li.product .button.product-card__cart,
.product-card__cart {
	width: 2.25rem;
	height: 2.25rem;
	margin: 0;
	padding: 0;
	flex: 0 0 auto;
}
.product-card__cart.loading { opacity: 0.6; }
.product-card__cart.loading::after { display: none; }
.product-card__cart.added { background: var(--c-success); border-color: var(--c-success); }

/* ---------- Boletín ---------- */
.newsletter { margin-top: 3rem; padding-block: 2rem; background: var(--c-newsletter-bg); }
.newsletter__row { display: grid; grid-template-columns: 1fr 1.4fr; gap: 1.5rem; align-items: start; }
.newsletter__title { margin: 0.375rem 0 0; font-size: 1.125rem; text-align: right; }
.newsletter__simple { display: flex; gap: 0.5rem; max-width: 34rem; }
.newsletter__input {
	flex: 1;
	min-width: 0;
	height: 2.5rem;
	padding: 0.375rem 0.75rem;
	border: 1px solid var(--c-border);
	border-radius: var(--radius);
	background: var(--c-surface);
}
.newsletter__note { margin: 0.5rem 0 0; font-size: 0.8125rem; color: var(--c-muted); }

/* ---------- Pie de página ---------- */
.site-footer { padding-block: 2.5rem 1.25rem; background: var(--c-footer-bg); color: var(--c-footer-text); font-size: 0.9375rem; }
.site-footer__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.5rem; }
.footer-block__title { margin-bottom: 0.75rem; font-size: 1rem; font-weight: 600; color: #fff; }
.footer-block__list { margin: 0; padding: 0; list-style: none; }
.footer-block__list li { margin-bottom: 0.375rem; }
.footer-block__list a { color: var(--c-footer-text); }
.footer-block__list a:hover { color: #fff; text-decoration: underline; }
.footer-info { display: flex; align-items: flex-start; gap: 0.5rem; }
.footer-info .icon { flex: 0 0 auto; margin-top: 0.2rem; opacity: 0.8; }
.site-footer__copy { margin-top: 2rem; padding-top: 1.25rem; border-top: 1px solid rgba(255, 255, 255, 0.12); font-size: 0.8125rem; color: rgba(255, 255, 255, 0.6); text-align: center; }

/* ---------- Páginas interiores ---------- */
.page-wrap { padding-block: 1rem 2rem; }
.page-wrap--narrow { max-width: 860px; }
.page-header { margin-bottom: 1.5rem; }
.page-title { margin: 0; font-size: 1.75rem; }

.woocommerce .woocommerce-breadcrumb,
.woocommerce-breadcrumb {
	margin: 0 0 1.25rem;
	padding: 0;
	font-size: 0.875rem;
	color: var(--c-muted);
}
.woocommerce .woocommerce-breadcrumb a { color: var(--c-muted); }
.woocommerce .woocommerce-breadcrumb a:hover { color: var(--c-primary); }
.breadcrumb__sep { margin-inline: 0.5rem; opacity: 0.6; }

.layout--sidebar { display: grid; grid-template-columns: minmax(0, 1fr) 17rem; gap: 2rem; align-items: start; }
.layout--sidebar-left { grid-template-columns: 16rem minmax(0, 1fr); }
.layout__main { min-width: 0; }

.widget { margin-bottom: 1.75rem; }
.widget__title { margin-bottom: 0.75rem; font-size: 1rem; font-weight: 600; }
.widget ul { margin: 0; padding: 0; list-style: none; }
.widget li { padding: 0.25rem 0; }
.widget a { color: var(--c-text); }
.widget a:hover { color: var(--c-primary); }

.entry-content > * { max-width: 100%; }
.entry-content img { border-radius: var(--radius); }
.entry-meta { font-size: 0.875rem; color: var(--c-muted); margin-bottom: 0.5rem; }

.post-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; }
.post-card { display: flex; flex-direction: column; border: 1px solid var(--c-border); border-radius: var(--radius); overflow: hidden; }
.post-card__thumb img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.post-card__body { padding: 1rem; }
.post-card__title { font-size: 1.125rem; }
.post-card__title a { color: var(--c-text); }
.post-card__title a:hover { color: var(--c-primary); }
.post-card__excerpt { font-size: 0.9375rem; color: var(--c-muted); }
.single-article__thumb { margin: 0 0 1.5rem; }
.single-article__thumb img { width: 100%; border-radius: var(--radius); }

.nav-links { display: flex; justify-content: center; gap: 0.25rem; margin-top: 2rem; }
.page-numbers,
.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.25rem;
	height: 2.25rem;
	padding: 0 0.5rem;
	color: var(--c-primary);
	border: 1px solid var(--c-border);
	border-radius: var(--radius);
	background: var(--c-surface);
}
.page-numbers.current,
.woocommerce nav.woocommerce-pagination ul li span.current { background: var(--c-primary); border-color: var(--c-primary); color: var(--c-on-primary); }
.woocommerce nav.woocommerce-pagination ul { display: flex; justify-content: center; gap: 0.25rem; border: 0; }
.woocommerce nav.woocommerce-pagination ul li { border: 0; }

.error-404 { text-align: center; padding-block: 4rem; }
.error-404__code { font-size: 5rem; font-weight: 700; line-height: 1; color: var(--c-primary); margin-bottom: 0.5rem; }
.error-404 .search-box { max-width: 26rem; margin: 0 auto 1.5rem; }

/* Formularios generales */
input[type="text"], input[type="email"], input[type="tel"], input[type="password"], input[type="number"], input[type="search"], input[type="url"], select, textarea,
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select {
	padding: 0.5rem 0.75rem;
	line-height: 1.5;
	border: 1px solid var(--c-border);
	border-radius: var(--radius);
	background: var(--c-surface);
}
input:focus, select:focus, textarea:focus { outline: none; border-color: rgba(var(--c-primary-rgb), 0.5); box-shadow: 0 0 0 0.25rem rgba(var(--c-primary-rgb), 0.15); }

/* ---------- Tienda ---------- */
.shop-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.shop-filters-toggle { display: none; }
.woocommerce .term-description, .woocommerce .page-description { margin-bottom: 1.25rem; color: var(--c-muted); }

.subcategories { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 1.5rem; }
.subcategories__item {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.375rem 0.875rem;
	font-size: 0.875rem;
	font-weight: 500;
	color: var(--c-text);
	border: 1px solid var(--c-border);
	border-radius: var(--radius-pill);
	background: var(--c-surface);
}
.subcategories__item:hover { border-color: var(--c-primary); color: var(--c-primary); }
.subcategories__img { width: 1.5rem; height: 1.5rem; border-radius: 50%; object-fit: cover; }

.woocommerce .woocommerce-result-count { margin: 0 0 1rem; font-size: 0.875rem; color: var(--c-muted); line-height: 2.5rem; }
.woocommerce .woocommerce-ordering { margin: 0 0 1rem; }
.woocommerce .woocommerce-ordering select { height: 2.5rem; padding-block: 0.25rem; }

/* Barra lateral de la tienda en escritorio: visible sin panel */
@media (min-width: 992px) {
	.offcanvas--static { position: static; visibility: visible; inset: auto; z-index: auto; }
	.offcanvas--static .offcanvas__backdrop,
	.offcanvas--static .offcanvas__head { display: none; }
	.offcanvas--static .offcanvas__panel { position: static; width: auto; transform: none; background: none; }
	.offcanvas--static .offcanvas__body { padding: 0; overflow: visible; }
}

/* ---------- Ficha de producto ---------- */
.woocommerce div.product { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 2.5rem; align-items: start; }
.woocommerce div.product div.images,
.woocommerce div.product div.summary { float: none; width: auto; margin: 0; }
.woocommerce div.product .woocommerce-tabs,
.woocommerce div.product .related,
.woocommerce div.product .upsells { grid-column: 1 / -1; }
.woocommerce div.product div.images .woocommerce-product-gallery__wrapper { border-radius: var(--radius); overflow: hidden; background: var(--c-bg-soft); }
.woocommerce div.product div.images img { border-radius: var(--radius); }
.woocommerce div.product div.images .flex-control-thumbs { display: flex; gap: 0.5rem; margin-top: 0.75rem; }
.woocommerce div.product div.images .flex-control-thumbs li { width: 4.5rem; float: none; }
.woocommerce div.product div.images .flex-control-thumbs li img { border: 1px solid var(--c-border); border-radius: var(--radius-sm); opacity: 0.7; }
.woocommerce div.product div.images .flex-control-thumbs li img.flex-active,
.woocommerce div.product div.images .flex-control-thumbs li img:hover { opacity: 1; border-color: var(--c-primary); }
.woocommerce span.onsale {
	top: 0.75rem;
	left: 0.75rem;
	right: auto;
	min-width: 0;
	min-height: 0;
	margin: 0;
	padding: 0.125rem 0.5rem;
	font-size: 0.75rem;
	line-height: 1.5;
	border-radius: var(--radius-sm);
}
.woocommerce span.onsale.badge--sale { background: var(--c-surface); color: var(--c-sale); border: 1px solid var(--c-sale); }

.woocommerce div.product .product_title { font-size: 1.75rem; margin-bottom: 0.5rem; }
.woocommerce div.product p.price,
.woocommerce div.product span.price { font-size: 1.5rem; font-weight: 600; color: var(--c-text); margin-bottom: 1rem; }
.woocommerce div.product p.price del { font-size: 1.0625rem; color: var(--c-muted); font-weight: 400; opacity: 1; }
.woocommerce div.product p.price ins { text-decoration: none; }
.woocommerce-product-details__short-description { color: var(--c-text); margin-bottom: 1rem; }

.woocommerce div.product p.stock { display: inline-flex; align-items: center; gap: 0.375rem; font-size: 0.9375rem; font-weight: 600; }
.woocommerce div.product .stock.in-stock { color: var(--c-success); }
.woocommerce div.product .stock.in-stock::before { content: ""; width: 0.5rem; height: 0.5rem; border-radius: 50%; background: currentColor; }
.woocommerce div.product .stock.low-stock { color: var(--c-warning); }
.woocommerce div.product .stock.out-of-stock { color: var(--c-sale); }

.woocommerce div.product form.cart { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem; margin-bottom: 1rem; }
.woocommerce div.product form.cart::before, .woocommerce div.product form.cart::after { display: none; }
.woocommerce div.product form.cart div.quantity { float: none; margin: 0; }
.woocommerce div.product form.cart .button { float: none; height: 2.75rem; padding-inline: 1.5rem; }
.woocommerce div.product form.cart .qty-stepper { height: 2.75rem; }
.woocommerce .quantity .qty { width: 3.5rem; height: 2.75rem; text-align: center; border: 1px solid var(--c-border); border-radius: var(--radius); }
.woocommerce .qty-stepper input.qty { width: 3rem; height: 100%; border: 0; border-inline: 1px solid var(--c-border); border-radius: 0; }

.woocommerce div.product form.cart.variations_form { display: block; }
.woocommerce div.product form.cart .variations { margin-bottom: 1rem; border: 0; }
.woocommerce div.product form.cart .variations th,
.woocommerce div.product form.cart .variations td { display: block; padding: 0 0 0.375rem; text-align: left; line-height: 1.5; }
.woocommerce div.product form.cart .variations select { min-width: 14rem; height: 2.5rem; }
.woocommerce div.product form.cart .woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem; }

.product_meta { padding-top: 1rem; margin-top: 1rem; border-top: 1px solid var(--c-border); font-size: 0.875rem; color: var(--c-muted); }
.product_meta > span { display: block; margin-bottom: 0.25rem; }

.delivery-estimate {
	display: flex;
	align-items: center;
	gap: 0.625rem;
	margin: 0 0 1rem;
	padding: 0.75rem 1rem;
	font-size: 0.9375rem;
	background: rgba(var(--c-primary-rgb), 0.07);
	border: 1px solid rgba(var(--c-primary-rgb), 0.2);
	border-radius: var(--radius);
}
.delivery-estimate .icon { flex: 0 0 auto; color: var(--c-primary); }
.delivery-estimate strong { text-transform: lowercase; }
.delivery-estimate strong::first-letter { text-transform: none; }

.reassurance { display: grid; gap: 0.5rem; margin: 1rem 0 0; padding: 1rem; list-style: none; background: var(--c-bg-soft); border-radius: var(--radius); }
.reassurance__item { display: flex; align-items: center; gap: 0.75rem; font-size: 0.875rem; }
.reassurance__item .icon { color: var(--c-primary); flex: 0 0 auto; }

.woocommerce div.product .woocommerce-tabs { margin-top: 1rem; }
.woocommerce div.product .woocommerce-tabs ul.tabs { display: flex; flex-wrap: wrap; gap: 0.25rem; margin: 0 0 1.25rem; padding: 0; border-bottom: 1px solid var(--c-border); }
.woocommerce div.product .woocommerce-tabs ul.tabs::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { margin: 0; padding: 0; background: none; border: 0; border-radius: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { display: block; padding: 0.625rem 1rem; font-weight: 500; color: var(--c-muted); border-bottom: 2px solid transparent; margin-bottom: -1px; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--c-primary); border-bottom-color: var(--c-primary); }
.woocommerce div.product .woocommerce-tabs .panel h2:first-child { font-size: 1.25rem; }
.woocommerce div.product .related > h2,
.woocommerce div.product .upsells > h2,
.cross-sells > h2 { font-size: 1.5rem; margin: 1.5rem 0 1rem; }

.woocommerce .star-rating span::before,
.woocommerce p.stars a { color: #ffb400; }

/* ---------- Avisos ---------- */
.woocommerce-message, .woocommerce-info, .woocommerce-error,
.woocommerce-notices-wrapper .wc-block-components-notice-banner {
	border-radius: var(--radius);
	border-top-width: 0;
	border-left: 4px solid var(--c-primary);
	background: var(--c-bg-soft);
	padding: 1rem 1rem 1rem 3rem;
}
.woocommerce-message::before, .woocommerce-info::before { color: var(--c-primary); top: 1rem; left: 1rem; }
.woocommerce-error { border-left-color: var(--c-sale); }
.woocommerce-error::before { color: var(--c-sale); top: 1rem; left: 1rem; }
.woocommerce-message .button { float: right; padding: 0.25rem 0.75rem; font-size: 0.875rem; }

/* ---------- Carrito y pago (plantillas clásicas) ---------- */
.woocommerce table.shop_table { border: 1px solid var(--c-border); border-radius: var(--radius); border-collapse: separate; overflow: hidden; }
.woocommerce table.shop_table th { font-weight: 600; background: var(--c-bg-soft); }
.woocommerce table.shop_table td, .woocommerce table.shop_table th { padding: 0.875rem 1rem; border-top-color: var(--c-border); }
.woocommerce table.cart img { width: 4.5rem; border-radius: var(--radius-sm); background: var(--c-bg-soft); }
.woocommerce a.remove { color: var(--c-sale) !important; }
.woocommerce a.remove:hover { background: var(--c-sale); color: #fff !important; }
.woocommerce .cart-collaterals .cart_totals, .woocommerce-page .cart-collaterals .cart_totals { padding: 1.25rem; background: var(--c-bg-soft); border-radius: var(--radius); }
.woocommerce .cart-collaterals .cart_totals table { background: var(--c-surface); }
.woocommerce-checkout #payment { background: var(--c-bg-soft); border-radius: var(--radius); }
.woocommerce-checkout #payment div.payment_box { background: var(--c-surface); border-radius: var(--radius-sm); }
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: var(--c-surface); }
#add_payment_method #payment ul.payment_methods, .woocommerce-checkout #payment ul.payment_methods { border-bottom-color: var(--c-border); }
.woocommerce-checkout h3 { font-size: 1.25rem; }

/* Bloques de carrito y pago (WooCommerce Blocks) */
.wc-block-components-button:not(.is-link),
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button {
	background: var(--c-primary) !important;
	color: var(--c-on-primary) !important;
	border-radius: var(--radius) !important;
}
.wc-block-components-button:not(.is-link):hover { background: var(--c-primary-hover) !important; }
.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout { font-family: var(--font); }
.wc-block-components-product-name { color: var(--c-primary) !important; }

/* Mi cuenta */
.woocommerce-account .woocommerce-MyAccount-navigation ul { margin: 0; padding: 0; list-style: none; border: 1px solid var(--c-border); border-radius: var(--radius); overflow: hidden; }
.woocommerce-account .woocommerce-MyAccount-navigation li a { display: block; padding: 0.625rem 1rem; color: var(--c-text); border-bottom: 1px solid var(--c-border); }
.woocommerce-account .woocommerce-MyAccount-navigation li:last-child a { border-bottom: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a { background: var(--c-primary); color: var(--c-on-primary); }

/* ---------- Responsive ---------- */
@media (max-width: 1199.98px) {
	.header-bottom__row { gap: 1rem; }
	.main-nav .menu > li > a { padding-inline: 0.5rem; }
	.header-bottom__search { flex-basis: 14rem; }
}

@media (max-width: 991.98px) {
	.main-nav,
	.header-bottom__search { display: none; }
	.header-toggle { display: inline-flex; }
	.header-bottom__row { min-height: 3.75rem; gap: 0.5rem; }
	.header-bottom__logo { margin-right: auto; }

	.woocommerce ul.products.columns-4,
	.woocommerce ul.products.columns-5,
	.woocommerce ul.products.columns-6,
	ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }

	.layout--sidebar,
	.layout--sidebar-left { grid-template-columns: minmax(0, 1fr); }
	.shop-filters-toggle { display: inline-flex; }

	.woocommerce div.product { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
	.post-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.site-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.newsletter__row { grid-template-columns: minmax(0, 1fr); }
	.newsletter__title { text-align: left; }
}

@media (max-width: 767.98px) {
	.header-top { display: none; }
	.header-bottom__mobile-actions { display: flex; align-items: center; gap: 0.75rem; }
	.header-bottom__mobile-actions .header-action__label { display: none; }
	.header-bottom__mobile-actions .header-cart__count { position: absolute; top: -0.4rem; right: -0.6rem; min-width: 1rem; height: 1rem; font-size: 0.625rem; }

	.woocommerce ul.products.columns-3,
	.woocommerce ul.products.columns-4,
	.woocommerce ul.products.columns-5,
	.woocommerce ul.products.columns-6,
	ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem 0.75rem; }

	.hero__caption { bottom: 1.75rem; padding: 0.875rem 1rem; }
	.hero__text { display: none; }
	.hero__nav { display: none; }

	.product-card__actions { flex-wrap: wrap; }
	.product-card .qty-stepper { flex: 1; }
	.product-card .qty-stepper__input { flex: 1; width: auto; min-width: 2rem; }

	.page-title, .woocommerce div.product .product_title { font-size: 1.5rem; }
	.post-grid { grid-template-columns: minmax(0, 1fr); }

	.woocommerce table.shop_table_responsive tr td::before { font-weight: 600; }
	.woocommerce .woocommerce-ordering, .woocommerce .woocommerce-result-count { float: none; }
}

@media (max-width: 479.98px) {
	.site-footer__grid { grid-template-columns: minmax(0, 1fr); }
	.newsletter__simple { flex-direction: column; }
	.promo-banner::before { inset: 1rem; }
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* ---------- Estilos oscuros y compatibilidad ---------- */
::placeholder { color: var(--c-muted); opacity: 1; }
select, input, textarea { color: var(--c-text); }
.select2-container--default .select2-selection--single { height: auto; padding: 0.375rem 0.25rem; background: var(--c-surface); border-color: var(--c-border); border-radius: var(--radius); }
.select2-container--default .select2-selection--single .select2-selection__rendered { color: var(--c-text); }
.select2-dropdown { background: var(--c-surface); color: var(--c-text); border-color: var(--c-border); }
.woocommerce form .form-row label, .woocommerce table.shop_table, .woocommerce-checkout-review-order-table { color: var(--c-text); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { background: transparent; }
.woocommerce .woocommerce-ordering select, .woocommerce .quantity .qty { background: var(--c-surface); color: var(--c-text); }
.header-top { color: var(--c-topbar-text); }
.style-empyreum_noche .hero__caption { background: rgba(10, 6, 18, 0.7); border: 1px solid rgba(201, 162, 39, 0.35); }
.style-empyreum_noche .product-card:hover .product-card__top { box-shadow: 0 0 0 1px rgba(var(--c-primary-rgb), 0.5), 0 0.75rem 1.5rem rgba(0, 0, 0, 0.45); }
.style-empyreum_noche .promo-banner { color: var(--c-primary); }
.style-empyreum_noche .badge--new { color: #fff; }
.style-empyreum_noche .woocommerce-message, .style-empyreum_noche .woocommerce-info { color: var(--c-text); }
.style-empyreum_noche .woocommerce div.product .stock.in-stock { color: #4cc38a; }
.style-empyreum_noche .product-card__stock, .style-empyreum_noche .woocommerce div.product .stock.low-stock { color: #ffb347; }
.header-top .header-cart__count { color: var(--c-text); }
.header-top .header-cart__count:not([data-count="0"]) { color: var(--c-on-primary); }
.product-card__title { font-family: var(--font); }

/* ---------- Guías de categoría, descripciones y páginas ---------- */
.woocommerce .term-description {
	margin-bottom: 1.75rem;
	padding: 1.25rem 1.5rem;
	color: var(--c-text);
	background: var(--c-bg-soft);
	border: 1px solid var(--c-border);
	border-radius: var(--radius);
}
.term-description p:last-child { margin-bottom: 0; }
.guide-list, .term-description ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.375rem 2rem; margin: 0 0 1rem; padding: 0; list-style: none; }
.guide-list li, .term-description li { position: relative; padding-left: 1.1rem; font-size: 0.9375rem; }
.guide-list li::before, .term-description li::before { content: ""; position: absolute; left: 0; top: 0.6em; width: 0.45rem; height: 0.45rem; border-radius: 50%; background: var(--c-primary); }
.term-description small, .entry-content small, .woocommerce-Tabs-panel small { color: var(--c-muted); }

.woocommerce-product-details__short-description ul { margin: 0.5rem 0 0; padding-left: 1.1rem; }
.woocommerce-product-details__short-description li { margin-bottom: 0.25rem; }
.woocommerce-Tabs-panel h3 { font-size: 1.0625rem; margin: 1.25rem 0 0.5rem; }
.woocommerce-Tabs-panel h3:first-of-type { margin-top: 0; }
.woocommerce-Tabs-panel ul { padding-left: 1.1rem; }

.entry-content { max-width: 52rem; }
.entry-content h2 { font-size: 1.25rem; margin-top: 2rem; }
.entry-content h3 { font-size: 1.0625rem; margin-top: 1.5rem; }
.entry-content ul, .entry-content ol { padding-left: 1.25rem; }
.entry-content li { margin-bottom: 0.375rem; }
.entry-content table { width: 100%; margin: 1rem 0 1.5rem; border-collapse: separate; border-spacing: 0; border: 1px solid var(--c-border); border-radius: var(--radius); overflow: hidden; font-size: 0.9375rem; }
.entry-content th, .entry-content td { padding: 0.625rem 0.75rem; text-align: left; vertical-align: top; border-bottom: 1px solid var(--c-border); }
.entry-content thead th { background: var(--c-bg-soft); font-weight: 600; }
.entry-content tbody tr:last-child td { border-bottom: 0; }
.policy-note { margin-top: 2rem; color: var(--c-muted); font-size: 0.875rem; }
@media (max-width: 767.98px) {
	.guide-list, .term-description ul { grid-template-columns: minmax(0, 1fr); }
	.entry-content table { display: block; overflow-x: auto; }
}

/* --- Empyreum: emblema del logo --- */
.site-logo--text{display:inline-flex;align-items:center;gap:.5rem}
.site-logo__mark{flex:0 0 auto;display:block}
.site-logo--text .site-logo__a{letter-spacing:.02em}
