/* ==========================================================================
   Blanc — hoja de estilos principal
   Las variables --b-* de color, tipografía y estructura las genera el panel
   de opciones (inc/assets.php). Aquí viven los tokens fijos y los componentes.
   ========================================================================== */

/* 1. Tokens ---------------------------------------------------------------- */
:root {
	--ease: cubic-bezier(.25, .8, .25, 1);
	--ease-out: cubic-bezier(.16, 1, .3, 1);
	--ease-drawer: cubic-bezier(.32, .72, 0, 1);

	--gutter: clamp(14px, 1.2vw, var(--b-gutter-max, 16px));
	--space-section: clamp(32px, 3.6vw, var(--b-section, 56px));
	--b-header-h-m: min(var(--b-header-h, 52px), 52px);
	--edge: max(var(--gutter), calc((100% - var(--b-container, 1600px)) / 2));

	--fs-xs: .75rem;
	--fs-sm: .875rem;
	--fs-md: 1rem;
	--fs-lg: clamp(1.0625rem, .95rem + .45vw, 1.25rem);
	--fs-h4: clamp(1.25rem, 1.1rem + .6vw, 1.625rem);
	--fs-h3: calc(clamp(1.375rem, 1.1rem + 1vw, 2rem) * var(--b-h-scale, 1));
	--fs-h2: calc(clamp(1.75rem, 1.2rem + 2.2vw, 3.25rem) * var(--b-h-scale, 1));
	--fs-h1: calc(clamp(2.125rem, 1.3rem + 3vw, 4.5rem) * var(--b-h-scale, 1));
	--fs-display: calc(clamp(2.5rem, 1.2rem + 5vw, 7rem) * var(--b-h-scale, 1));

	--b-field-border: color-mix(in srgb, var(--b-text) 48%, var(--b-bg));
	--b-line-strong: color-mix(in srgb, var(--b-text) 22%, var(--b-bg));
	--b-shadow: 0 1px 1px rgb(0 0 0 / .02), 0 12px 24px -12px rgb(0 0 0 / .08), 0 40px 80px -40px rgb(0 0 0 / .2);
	--b-focus: var(--b-text);

	--z-sticky: 40;
	--z-scrim: 49;
	--z-header: 50;
	--z-float: 60;

	interpolate-size: allow-keywords;
}

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

html {
	font-size: calc(var(--b-fs-base, 16px) / 16px * 100%);
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
	scroll-padding-top: calc(var(--b-header-h) + 16px);
}

body {
	margin: 0;
	background: var(--b-bg);
	color: var(--b-text);
	font-family: var(--b-font-body);
	font-size: var(--fs-md);
	line-height: var(--b-lh, 1.6);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
	overflow-x: clip;
}

img, svg, video, picture { display: block; max-width: 100%; }
img { height: auto; }
svg { flex-shrink: 0; }
button, input, select, textarea { font: inherit; color: inherit; letter-spacing: inherit; }
button { cursor: pointer; }
a { color: inherit; text-underline-offset: .2em; text-decoration-thickness: 1px; }
p { margin: 0 0 1em; }
hr { border: 0; border-top: 1px solid var(--b-line); margin: 2.5rem 0; }
table { border-collapse: collapse; width: 100%; }
address { font-style: normal; }
[hidden] { display: none !important; }
::selection { background: var(--b-text); color: var(--b-bg); }

.b-icon { width: 1.25rem; height: 1.25rem; }

/* 3. Accesibilidad -------------------------------------------------------- */
.screen-reader-text,
.b-hp {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

.b-skip {
	position: fixed;
	top: 12px;
	left: 12px;
	z-index: 1000;
	padding: .9rem 1.4rem;
	border-radius: var(--b-btn-radius, 999px);
	background: var(--b-text);
	color: var(--b-bg);
	font-weight: 500;
	text-decoration: none;
	transform: translateY(-160%);
	transition: transform .3s var(--ease);
}
.b-skip:focus { transform: none; }

:focus { outline: none; }
:focus-visible { outline: var(--b-focus-w, 2px) solid var(--b-focus); outline-offset: 3px; }
main:focus { outline: none; }
.b-top-anchor { position: absolute; top: 0; }

/* 4. Tipografía ------------------------------------------------------------ */
h1, h2, h3, h4, h5, h6 {
	font-family: var(--b-font-heading);
	font-weight: var(--b-h-weight, 500);
	letter-spacing: var(--b-h-tracking, -.035em);
	text-transform: var(--b-h-case, none);
	line-height: 1.08;
	margin: 0 0 .5em;
	text-wrap: balance;
}
h1 { font-size: var(--fs-h1); line-height: .96; }
h2 { font-size: var(--fs-h2); line-height: 1; }
h3 { font-size: var(--fs-h3); }
h4 { font-size: var(--fs-h4); }
h5, h6 { font-size: 1rem; letter-spacing: 0; }

.b-label {
	margin: 0 0 .75rem;
	font-size: .6875rem;
	font-weight: 500;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--b-muted);
}
.b-label a { text-decoration: none; }

.b-meta { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0; font-size: var(--fs-sm); color: var(--b-muted); }

.b-link {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	padding: 0;
	border: 0;
	background: none;
	color: inherit;
	font-size: .8125rem;
	font-weight: 500;
	text-decoration: underline;
	text-underline-offset: .3em;
	cursor: pointer;
	transition: opacity .2s var(--ease);
}
.b-link:hover { opacity: .6; }
.b-link .b-icon { width: 1rem; height: 1rem; transition: transform .35s var(--ease-out); }
.b-link--arrow { font-size: .75rem; letter-spacing: var(--b-nav-tracking); text-transform: var(--b-nav-case); text-decoration: none; }
.b-link--arrow span { text-decoration: underline; text-underline-offset: .35em; }
.b-link--arrow:hover { opacity: 1; }
.b-link--arrow:hover .b-icon { transform: translateX(4px); }
.b-link--icon { text-decoration: none; }
.b-link--icon span { text-decoration: underline; text-underline-offset: .3em; }
.b-link--back { text-decoration: none; }

.b-underline-links main a:not([class]) { text-decoration: underline; }

/* 5. Estructura ------------------------------------------------------------ */
.b-container {
	width: 100%;
	max-width: calc(var(--b-container, 1600px) + var(--gutter) * 2);
	margin-inline: auto;
	padding-inline: var(--gutter);
}
.b-main { display: block; min-height: 50vh; }
.b-section { padding-block: var(--space-section); }
.b-section + .b-section { padding-top: 0; }
.b-usp + .b-section,
.b-hero + .b-section,
.b-section.b-inverse + .b-section,
.b-section + .b-section.b-inverse { padding-top: var(--space-section); }

.b-inverse {
	--b-bg: var(--b-inverse-bg);
	--b-text: var(--b-inverse-text);
	--b-surface: color-mix(in srgb, var(--b-inverse-text) 7%, var(--b-inverse-bg));
	--b-muted: color-mix(in srgb, var(--b-inverse-text) 68%, var(--b-inverse-bg));
	--b-line: color-mix(in srgb, var(--b-inverse-text) 16%, var(--b-inverse-bg));
	--b-line-strong: color-mix(in srgb, var(--b-inverse-text) 30%, var(--b-inverse-bg));
	--b-accent: var(--b-inverse-text);
	--b-accent-text: var(--b-inverse-bg);
	--b-focus: var(--b-inverse-text);
	background: var(--b-bg);
	color: var(--b-text);
}

/* Rejilla de contenido editorial (bloques con alignwide/alignfull). */
.b-content {
	--content: 720px;
	--wide: 1200px;
	display: grid;
	grid-template-columns:
		[full-start] minmax(var(--gutter), 1fr)
		[wide-start] minmax(0, calc((var(--wide) - var(--content)) / 2))
		[content-start] min(var(--content), calc(100% - var(--gutter) * 2))
		[content-end] minmax(0, calc((var(--wide) - var(--content)) / 2))
		[wide-end] minmax(var(--gutter), 1fr) [full-end];
	padding-bottom: var(--space-section);
}
.b-content > * { grid-column: content; }
.b-content > .alignwide { grid-column: wide; }
.b-content > .alignfull { grid-column: full; }
.b-content--wide { --content: min(1280px, var(--b-container)); --wide: min(1280px, var(--b-container)); }

/* 6. Botones --------------------------------------------------------------- */
.b-btn,
.button,
button.button,
a.button,
input.button,
input[type="submit"],
.wp-element-button,
.wp-block-button__link,
#place_order,
.single_add_to_cart_button,
.checkout-button,
.woocommerce-Button,
.b-comments .submit {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .6rem;
	min-height: 52px;
	padding: 0 1.9rem;
	border: 1px solid var(--b-accent);
	border-radius: var(--b-btn-radius, 999px);
	background: var(--b-accent);
	color: var(--b-accent-text);
	font-family: var(--b-font-body);
	font-size: .75rem;
	font-weight: 500;
	line-height: 1;
	letter-spacing: var(--b-btn-tracking, .1em);
	text-transform: var(--b-btn-case, uppercase);
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
	transition: background-color .35s var(--ease), color .35s var(--ease), border-color .35s var(--ease), opacity .25s, transform .25s var(--ease);
}
.b-btn:hover,
.button:hover,
.single_add_to_cart_button:hover,
#place_order:hover,
.checkout-button:hover,
input[type="submit"]:hover {
	background: transparent;
	color: var(--b-accent);
	border-color: var(--b-accent);
}
.b-btn:active, .button:active, .single_add_to_cart_button:active { transform: scale(.98); }
.button:disabled,
.button.disabled,
.single_add_to_cart_button:disabled,
.single_add_to_cart_button.disabled { opacity: .4; cursor: not-allowed; }
.variations_form .single_add_to_cart_button.disabled:not(.wc-variation-is-unavailable) { opacity: 1; cursor: pointer; }
.single_add_to_cart_button.disabled:hover,
.single_add_to_cart_button:disabled:hover { background: var(--b-accent); color: var(--b-accent-text); }

.b-btn--outline { background: transparent; color: var(--b-text); border-color: var(--b-text); }
.b-btn--outline:hover { background: var(--b-text); color: var(--b-bg); border-color: var(--b-text); }
.b-btn--light { background: #fff; color: #0a0a0a; border-color: #fff; }
.b-btn--light:hover { background: transparent; color: #fff; border-color: #fff; }
.b-inverse .b-btn--light:hover { color: var(--b-text); border-color: var(--b-text); }
.b-btn--outline-light { background: transparent; color: #fff; border-color: rgb(255 255 255 / .6); }
.b-btn--outline-light:hover { background: #fff; color: #0a0a0a; border-color: #fff; }
.b-btn--block { width: 100%; }
.b-btn--sm { min-height: 38px; padding: 0 1.1rem; font-size: .6875rem; }

.b-btn.is-loading,
.button.loading,
.single_add_to_cart_button.loading { pointer-events: none; color: transparent !important; }
.b-btn.is-loading::after,
.button.loading::after,
.single_add_to_cart_button.loading::after {
	content: "";
	position: absolute;
	inset: 0;
	margin: auto;
	width: 16px;
	height: 16px;
	border: 1.5px solid var(--b-accent-text);
	border-right-color: transparent;
	border-radius: 50%;
	animation: b-spin .7s linear infinite;
}
.b-btn--outline.is-loading::after { border-color: var(--b-text); border-right-color: transparent; }

.b-iconbtn {
	display: inline-grid;
	place-items: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 1px solid transparent;
	border-radius: 999px;
	background: transparent;
	color: inherit;
	transition: background-color .2s var(--ease), border-color .2s, color .2s, opacity .2s;
}
.b-iconbtn:hover { background: color-mix(in srgb, currentColor 8%, transparent); }
.b-iconbtn:disabled { opacity: .3; cursor: default; }
.b-close .b-icon { transition: transform .3s var(--ease); }
.b-close:hover .b-icon { transform: rotate(90deg); }

.b-chip {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	min-height: 40px;
	padding: 0 1.05rem;
	border: 1px solid var(--b-line-strong);
	border-radius: 999px;
	font-size: .8125rem;
	text-decoration: none;
	white-space: nowrap;
	transition: background-color .2s, color .2s, border-color .2s;
}
.b-chip:hover { border-color: var(--b-text); }
.b-chip[aria-current] { background: var(--b-text); color: var(--b-bg); border-color: var(--b-text); }
.b-chip__count { font-size: .6875rem; opacity: .6; }

.b-count {
	display: inline-grid;
	place-items: center;
	min-width: 1.15rem;
	height: 1.15rem;
	padding: 0 .3rem;
	border-radius: 999px;
	background: var(--b-text);
	color: var(--b-bg);
	font-size: .625rem;
	font-weight: 600;
	letter-spacing: 0;
	line-height: 1;
}
.b-count.is-bump { animation: b-bump .5s var(--ease-out); }

/* 7. Formularios ------------------------------------------------------------ */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="date"],
textarea,
select,
.b-input,
.select2-container .select2-selection--single {
	width: 100%;
	min-height: 52px;
	padding: .8rem 1rem;
	border: 1px solid var(--b-field-border);
	border-radius: var(--b-radius, 4px);
	background: var(--b-bg);
	color: var(--b-text);
	font-size: 1rem;
	line-height: 1.3;
	transition: border-color .2s;
	-webkit-appearance: none;
	appearance: none;
}
textarea { min-height: 140px; resize: vertical; }
input:hover, textarea:hover, select:hover { border-color: var(--b-text); }
input:focus-visible, textarea:focus-visible, select:focus-visible {
	border-color: var(--b-text);
	outline: var(--b-focus-w, 2px) solid var(--b-focus);
	outline-offset: 1px;
}
select {
	padding-right: 2.75rem;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='%23777' stroke-width='1.5' stroke-linecap='round'%3E%3Cpath d='m7 10 5 5 5-5'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right .75rem center;
	background-size: 1.1rem;
	cursor: pointer;
}
input[type="checkbox"], input[type="radio"] { accent-color: var(--b-accent); width: 1.1rem; height: 1.1rem; }
label { font-size: var(--fs-sm); }
::placeholder { color: var(--b-muted); opacity: 1; }
input[type="number"] { -moz-appearance: textfield; }
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }

.b-check { position: relative; display: inline-flex; align-items: flex-start; gap: .65rem; font-size: .8125rem; line-height: 1.45; color: var(--b-muted); cursor: pointer; }
.b-check input { position: absolute; opacity: 0; width: 20px; height: 20px; margin: 0; cursor: pointer; }
.b-check__box { display: grid; place-items: center; flex: 0 0 20px; width: 20px; height: 20px; border: 1px solid var(--b-field-border); border-radius: 4px; transition: background-color .15s, border-color .15s; }
.b-check__box .b-icon { width: 14px; height: 14px; opacity: 0; }
.b-check input:checked + .b-check__box { background: var(--b-text); border-color: var(--b-text); color: var(--b-bg); }
.b-check input:checked + .b-check__box .b-icon { opacity: 1; }
.b-check input:focus-visible + .b-check__box { outline: var(--b-focus-w) solid var(--b-focus); outline-offset: 2px; }
.b-check a { color: var(--b-text); }

.b-searchform { position: relative; display: flex; max-width: 560px; }
.b-searchform .b-input { padding-right: 3.5rem; border-radius: var(--b-btn-radius, 999px); }
.b-searchform .b-iconbtn { position: absolute; right: 4px; top: 50%; transform: translateY(-50%); }

.b-form { display: grid; gap: 1rem; }
.b-field { display: grid; gap: .4rem; margin: 0; }
.b-field label { font-size: .8125rem; font-weight: 500; }
.b-field .required { color: var(--b-error); }
.b-form__row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; }
.b-form__note { margin: 0; font-size: .8125rem; color: var(--b-muted); }
.b-form__errors { padding: .85rem 1rem; border-left: 2px solid var(--b-error); border-radius: var(--b-radius); background: color-mix(in srgb, var(--b-error) 7%, var(--b-bg)); color: var(--b-error); font-size: .875rem; }
.b-form__errors ul { margin: 0; padding-left: 1rem; }
.b-form .woocommerce-privacy-policy-text { font-size: .75rem; color: var(--b-muted); }
.b-form .woocommerce-privacy-policy-text p { margin: 0; }

/* 8. Barra de anuncios --------------------------------------------------------- */
.b-announce { position: relative; z-index: calc(var(--z-header) + 1); font-size: .6875rem; font-weight: 500; letter-spacing: .05em; }
.b-announce--dark { --ab: var(--b-inverse-bg); background: var(--b-inverse-bg); color: var(--b-inverse-text); --b-focus: var(--b-inverse-text); }
.b-announce--light { --ab: var(--b-bg); background: var(--b-bg); color: var(--b-text); border-bottom: 1px solid var(--b-line); }
.b-announce__inner { display: grid; place-items: center; min-height: 34px; padding-inline: 48px; }
.b-announce__track { display: grid; place-items: center; overflow: hidden; }
.b-announce__viewport { display: flex; align-items: center; min-height: 34px; overflow: hidden; }
.b-announce__run { display: flex; width: max-content; }
.b-announce.is-running .b-announce__run { animation: b-marquee var(--dur, 40s) linear infinite; }
.b-announce--marquee:hover .b-announce__run,
.b-announce.is-paused .b-announce__run { animation-play-state: paused; }
.b-announce__group { display: flex; flex-shrink: 0; }
.b-announce__msg { position: relative; padding-inline: 2.5rem; white-space: nowrap; }
.b-announce__msg::after { content: ""; position: absolute; top: 50%; right: -2px; width: 3px; height: 3px; border-radius: 50%; background: currentColor; opacity: .45; transform: translateY(-50%); }
.b-announce__msg a { text-decoration: underline; text-underline-offset: .25em; }
@keyframes b-marquee { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) {
	.b-announce.is-running .b-announce__run { animation: none; }
}
.b-announce__item {
	grid-area: 1 / 1;
	margin: 0;
	text-align: center;
	opacity: 0;
	visibility: hidden;
	transform: translateY(6px);
	transition: opacity .5s var(--ease), transform .5s var(--ease), visibility 0s linear .5s;
}
.b-announce__item.is-active { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.b-announce__item a { text-decoration: underline; text-underline-offset: .25em; }
.b-announce__controls { position: absolute; top: 0; right: 0; bottom: 0; display: flex; align-items: center; padding: 0 max(4px, calc(var(--gutter) - 12px)) 0 28px; background: linear-gradient(to right, transparent, var(--ab, transparent) 24px); }
.b-announce__btn { display: grid; place-items: center; width: 34px; height: 34px; padding: 0; border: 0; background: none; color: inherit; opacity: .7; }
.b-announce__btn:hover { opacity: 1; }
.b-announce__btn .b-icon { width: .95rem; height: .95rem; }
[data-announce-toggle] .b-icon--play,
[data-announce-toggle][aria-pressed="true"] .b-icon--pause,
[data-hero-toggle] .b-icon--play,
[data-hero-toggle][aria-pressed="true"] .b-icon--pause { display: none; }
[data-announce-toggle][aria-pressed="true"] .b-icon--play,
[data-hero-toggle][aria-pressed="true"] .b-icon--play { display: block; }

/* 9. Cabecera ------------------------------------------------------------------ */
.b-header {
	--b-nav-h: 38px;
	--b-hh: var(--b-header-h);
	position: relative;
	z-index: var(--z-header);
	background: var(--b-bg);
	color: var(--b-text);
	transition: transform .45s var(--ease-out), background-color .3s var(--ease), color .3s var(--ease), box-shadow .3s var(--ease);
}
.b-header--stacked { --b-hh: calc(var(--b-header-h) + var(--b-nav-h)); }
.b-header.has-border { box-shadow: inset 0 -1px 0 var(--b-line); }
.b-header.is-sticky { position: sticky; top: var(--wp-admin--admin-bar--height, 0px); }
@media (max-width: 600px) { .admin-bar .b-header.is-sticky { top: 0; } }
.b-header.is-hidden { transform: translateY(-100%); }

/* Transparente sobre el hero de la portada. */
.b-header.is-transparent { margin-bottom: calc(-1 * var(--b-hh)); }
.b-header.is-transparent:not(.is-scrolled):not(.is-mega-open) {
	--b-text: #fff;
	--b-focus: #fff;
	--b-line: rgb(255 255 255 / .2);
	background: transparent;
	color: #fff;
	box-shadow: none;
}
.b-header.is-transparent.on-light:not(.is-scrolled):not(.is-mega-open) { --b-text: #0a0a0a; --b-focus: #0a0a0a; --b-line: rgb(0 0 0 / .1); color: #0a0a0a; }

.b-header__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
	grid-template-areas: "nav brand actions";
	align-items: center;
	column-gap: clamp(1rem, 2vw, 2rem);
	min-height: var(--b-header-h);
}
.b-header__start { grid-area: start; display: none; align-items: center; gap: .15rem; margin-left: -10px; }
.b-dnav { grid-area: nav; min-width: 0; align-self: stretch; display: flex; }
.b-brand { grid-area: brand; justify-self: center; margin: 0; }
.b-actions { grid-area: actions; justify-self: end; }

.b-header--classic .b-header__inner { grid-template-columns: auto minmax(0, 1fr) auto; grid-template-areas: "brand nav actions"; }
.b-header--classic .b-brand { justify-self: start; }
.b-header--classic .b-dnav { justify-content: center; }

/* Logo centrado + fila de categorías (pensada para muchas categorías). */
.b-header--stacked .b-header__inner { grid-template-areas: "start brand actions"; }
.b-header--stacked .b-header__start { display: flex; }
.b-header--stacked .b-burger,
.b-header--stacked .b-action--msearch { display: none; }
.b-header--stacked .b-dnav {
	display: grid;
	grid-template-columns: 28px minmax(0, 1fr) 28px;
	align-items: stretch;
	height: var(--b-nav-h);
	max-width: calc(var(--b-container, 1600px) + var(--gutter) * 2);
	margin-inline: auto;
	padding-inline: max(0px, calc(var(--gutter) - 28px));
}
.b-dnav__scroller { display: flex; min-width: 0; overflow-x: auto; overflow-y: hidden; scrollbar-width: none; overscroll-behavior-x: contain; scroll-behavior: smooth; }
.b-dnav__scroller::-webkit-scrollbar { display: none; }
.b-dnav.can-prev .b-dnav__scroller { -webkit-mask-image: linear-gradient(to right, transparent, #000 56px); mask-image: linear-gradient(to right, transparent, #000 56px); }
.b-dnav.can-next .b-dnav__scroller { -webkit-mask-image: linear-gradient(to left, transparent, #000 56px); mask-image: linear-gradient(to left, transparent, #000 56px); }
.b-dnav.can-prev.can-next .b-dnav__scroller { -webkit-mask-image: linear-gradient(to right, transparent, #000 56px, #000 calc(100% - 56px), transparent); mask-image: linear-gradient(to right, transparent, #000 56px, #000 calc(100% - 56px), transparent); }
.b-dnav__arrow { display: grid; place-items: center; padding: 0; border: 0; background: none; color: inherit; visibility: hidden; opacity: .6; transition: opacity .2s; }
.b-dnav__arrow:hover { opacity: 1; }
.b-dnav__arrow .b-icon { width: .95rem; height: .95rem; }
.b-dnav.can-prev .b-dnav__arrow--prev,
.b-dnav.can-next .b-dnav__arrow--next { visibility: visible; }
.b-header--stacked .b-dnav__list { width: max-content; margin-inline: auto; padding-inline: .5rem; gap: clamp(1.4rem, 2.4vw, 2.6rem); }
.b-header--stacked .b-dnav__list > li > a { font-size: .6875rem; letter-spacing: .14em; }
.b-header--stacked .b-subtoggle { width: 16px; margin-left: .15rem; }
.b-header--stacked .b-subtoggle .b-icon { width: .7rem; height: .7rem; }

/* Modo compacto: móvil, tablet o escritorio cuando el menú no cabe. */
.b-header.is-condensed .b-header__inner {
	grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
	grid-template-areas: "start brand actions";
	grid-template-rows: auto;
}
.b-header.is-condensed .b-header__start { display: flex; }
.b-header.is-condensed .b-dnav,
.b-header.is-condensed .b-actions__search { display: none; }
.b-header.is-condensed .b-brand { justify-self: center; }

@media (max-width: 1023px) {
	.b-header { --b-nav-h: 40px; --b-hh: var(--b-header-h-m); }
	.b-header--stacked { --b-hh: calc(var(--b-header-h-m) + var(--b-nav-h)); }
	.b-header__inner,
	.b-header--classic .b-header__inner,
	.b-header--stacked .b-header__inner {
		grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
		grid-template-areas: "start brand actions";
		grid-template-rows: auto;
		min-height: var(--b-header-h-m);
		column-gap: .5rem;
	}
	.b-header__start { display: flex; }
	.b-header:not(.b-header--stacked) .b-dnav, .b-actions__search, .b-header .b-searchbtn--start { display: none; }
	.b-header--stacked .b-burger,
	.b-header--stacked .b-action--msearch { display: inline-grid; }
	.b-header--classic .b-brand { justify-self: center; }
	/* En móvil la fila de categorías es una tira desplazable de enlaces. */
	.b-header--stacked .b-dnav { grid-template-columns: minmax(0, 1fr); padding-inline: 0; }
	.b-header--stacked .b-dnav__arrow, .b-header--stacked .b-subtoggle, .b-header--stacked .b-dnav .sub-menu, .b-header--stacked .b-mega__aside { display: none; }
	.b-header--stacked .b-dnav__list { margin-inline: 0; padding-inline: var(--gutter); gap: 1.4rem; }
	.b-header--checkout .b-link--back span, .b-secure span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
}

.b-header--checkout .b-header__inner { grid-template-areas: "back brand secure"; }
.b-header--checkout .b-link--back { grid-area: back; justify-self: start; }
.b-secure { grid-area: secure; justify-self: end; display: inline-flex; gap: .5rem; align-items: center; margin: 0; font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; }
.b-secure .b-icon { width: 1rem; height: 1rem; }

/* Logotipo. */
.b-logo { display: inline-flex; align-items: center; text-decoration: none; color: inherit; }
.b-logo__img { width: var(--b-logo-w); height: auto; max-height: calc(var(--b-header-h) - 20px); object-fit: contain; }
.b-logo__img--light { display: none; }
.b-logo__text {
	font-family: var(--b-font-logo, var(--b-font-heading));
	font-size: clamp(1.125rem, .95rem + .55vw, 1.4375rem);
	font-weight: 500;
	letter-spacing: .3em;
	line-height: 1;
	text-transform: uppercase;
	margin-right: -.3em;
	white-space: nowrap;
}
@media (max-width: 1023px) { .b-logo__img { width: var(--b-logo-w-m); max-height: calc(var(--b-header-h-m) - 16px); } .b-logo__text { letter-spacing: .22em; margin-right: -.22em; } }
.b-header.is-transparent:not(.is-scrolled):not(.is-mega-open) .b-logo:has(.b-logo__img--light) .b-logo__img--dark,
.b-inverse .b-logo:has(.b-logo__img--light) .b-logo__img--dark { display: none; }
.b-header.is-transparent:not(.is-scrolled):not(.is-mega-open) .b-logo__img--light,
.b-inverse .b-logo__img--light { display: block; }
.b-header.is-transparent:not(.is-scrolled):not(.is-mega-open):not(.on-light) .b-logo__img--dark:only-child,
.b-inverse .b-logo__img--dark:only-child { filter: invert(1) brightness(1.6); }

/* Botón de menú: dos líneas que forman una X. */
.b-burger__lines { position: relative; width: 22px; height: 9px; }
.b-burger__lines span { position: absolute; left: 0; width: 100%; height: 1.25px; background: currentColor; transition: transform .4s var(--ease-out), top .4s var(--ease-out); }
.b-burger__lines span:first-child { top: 0; }
.b-burger__lines span:last-child { top: calc(100% - 1.25px); }
.b-burger[aria-expanded="true"] .b-burger__lines span:first-child { top: 50%; transform: rotate(45deg); }
.b-burger[aria-expanded="true"] .b-burger__lines span:last-child { top: 50%; transform: rotate(-45deg); }

/* Acciones. */
.b-actions { display: flex; align-items: center; gap: 0; margin: 0 -10px 0 0; padding: 0; list-style: none; }
.b-action {
	position: relative;
	display: inline-grid;
	place-items: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: none;
	color: inherit;
	text-decoration: none;
	transition: opacity .2s var(--ease);
}
.b-action:hover { opacity: .6; }
.b-action .b-icon { width: 1.25rem; height: 1.25rem; }
.b-action .b-count { position: absolute; top: 5px; right: 3px; min-width: 1rem; height: 1rem; font-size: .5625rem; }
.b-action .b-count[data-count="0"], .b-action .b-count[hidden] { display: none; }
.b-header.is-transparent:not(.is-scrolled):not(.is-mega-open) .b-count { background: #fff; color: #0a0a0a; }
.b-header.is-transparent.on-light:not(.is-scrolled):not(.is-mega-open) .b-count { background: #0a0a0a; color: #fff; }

/* Buscador de la cabecera: campo con línea inferior o solo icono. */
.b-searchbtn {
	display: inline-flex;
	align-items: center;
	gap: .65rem;
	height: 44px;
	margin-right: .75rem;
	padding: 0 .25rem;
	border: 0;
	background: none;
	color: inherit;
	font-size: .8125rem;
	transition: opacity .2s var(--ease), border-color .2s var(--ease);
}
.b-searchbtn .b-icon { width: 1.05rem; height: 1.05rem; }
.b-searchbtn--field { min-width: clamp(170px, 14vw, 240px); height: 36px; border-bottom: 1px solid color-mix(in srgb, currentColor 30%, transparent); }
.b-searchbtn--field:hover { border-color: currentColor; }
.b-searchbtn__label { opacity: .75; }
.b-searchbtn--start { margin: 0 0 0 10px; }
.b-searchbtn--icon { width: 44px; margin-right: 0; padding: 0; justify-content: center; }
.b-searchbtn--icon:hover { opacity: .6; }
.b-searchbtn--icon .b-icon { width: 1.25rem; height: 1.25rem; }
.b-searchbtn--icon .b-searchbtn__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@media (max-width: 599px) { .b-actions__wishlist { display: none; } }
@media (max-width: 379px) { .b-actions__account { display: none; } }

/* 10. Navegación de escritorio ------------------------------------------------ */
.b-menu { margin: 0; padding: 0; list-style: none; }
.b-dnav__list { display: flex; align-items: stretch; flex-wrap: nowrap; gap: clamp(1rem, 1.9vw, 2.25rem); }
.b-dnav__list > li { display: flex; align-items: center; }
.b-dnav__list > li > a {
	display: inline-flex;
	align-items: center;
	align-self: stretch;
	font-size: .75rem;
	font-weight: 500;
	letter-spacing: var(--b-nav-tracking);
	text-transform: var(--b-nav-case);
	text-decoration: none;
	white-space: nowrap;
}
.b-menu__label {
	padding-block: 3px;
	background-image: linear-gradient(currentColor, currentColor);
	background-size: 0 1px;
	background-position: 100% 100%;
	background-repeat: no-repeat;
	transition: background-size .4s var(--ease-out);
}
.b-dnav a:hover .b-menu__label,
.b-dnav a[aria-current] .b-menu__label,
.b-dnav .current-menu-ancestor > a .b-menu__label,
.b-dnav__list > li.is-open > a .b-menu__label { background-size: 100% 1px; background-position: 0 100%; }

.b-subtoggle { display: inline-grid; place-items: center; width: 22px; height: 44px; margin-left: .1rem; padding: 0; border: 0; background: none; color: inherit; }
.b-subtoggle .b-icon { width: .85rem; height: .85rem; transition: transform .3s var(--ease); }
.b-subtoggle[aria-expanded="true"] .b-icon { transform: rotate(180deg); }

/* Desplegable simple. */
.b-dnav__list > li { position: relative; }
.b-dnav .sub-menu {
	position: absolute;
	top: 100%;
	left: -1.25rem;
	z-index: 2;
	min-width: 230px;
	margin: 0;
	padding: .9rem 1.25rem;
	list-style: none;
	background: var(--b-bg);
	color: var(--b-text);
	border: 1px solid var(--b-line);
	border-radius: var(--b-radius);
	box-shadow: var(--b-shadow);
	opacity: 0;
	visibility: hidden;
	transform: translateY(6px);
	transition: opacity .25s var(--ease), transform .3s var(--ease), visibility 0s linear .3s;
}
.b-dnav .sub-menu a { display: block; padding: .4rem 0; font-size: .875rem; text-decoration: none; }
.b-dnav .sub-menu a:hover .b-menu__label { background-size: 100% 1px; background-position: 0 100%; }
.b-dnav__list > li.is-open > .sub-menu,
html:not(.js) .b-dnav__list > li:hover > .sub-menu { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.b-dnav .sub-menu .sub-menu { position: static; min-width: 0; padding: .25rem 0 0; border: 0; box-shadow: none; opacity: 1; visibility: inherit; transform: none; background: none; }

/* Panel ancho con imágenes (siempre en la cabecera con fila de categorías). */
.b-header.has-mega .b-dnav__list > li { position: static; }
.b-header.has-mega .b-dnav__list > li > .sub-menu {
	left: 0;
	right: 0;
	display: grid;
	grid-auto-flow: column;
	grid-template-rows: repeat(7, min-content);
	grid-auto-columns: minmax(160px, 220px);
	align-content: start;
	column-gap: clamp(2rem, 4vw, 4rem);
	padding: 2.25rem var(--edge) 2.75rem;
	border: 0;
	border-top: 1px solid var(--b-line);
	border-radius: 0;
	box-shadow: 0 24px 32px -30px rgb(0 0 0 / .2);
	transform: translateY(-4px);
}
.b-header.has-mega .b-dnav__list > li > .sub-menu > li > a { padding: .35rem 0; font-size: .875rem; }
.b-header.has-mega .b-dnav__list > li:has(.sub-menu .sub-menu) > .sub-menu { grid-auto-flow: row; grid-template-rows: none; grid-template-columns: repeat(4, minmax(0, 220px)); row-gap: 1.75rem; }
.b-header.has-mega .b-dnav__list > li:has(.sub-menu .sub-menu) > .sub-menu > li > a { margin-bottom: .25rem; font-size: .6875rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.b-mega__aside {
	position: absolute;
	top: calc(100% + 2.25rem);
	right: var(--edge);
	z-index: 3;
	display: flex;
	gap: 2px;
	opacity: 0;
	visibility: hidden;
	transition: opacity .3s var(--ease), visibility 0s linear .3s;
}
.b-dnav__list > li.is-open > .b-mega__aside { opacity: 1; visibility: visible; transition-delay: .05s; }
.b-mega__tile { display: grid; gap: .6rem; width: clamp(160px, 13vw, 220px); color: var(--b-text); font-size: .6875rem; font-weight: 500; letter-spacing: .12em; text-decoration: none; text-transform: uppercase; }
.b-mega__tile img { width: 100%; aspect-ratio: 2 / 3; object-fit: cover; background: var(--b-surface); border-radius: var(--b-radius-media); }
.b-header.has-mega .b-dnav__list > li:has(> .b-mega__aside) > .sub-menu { min-height: calc(clamp(160px, 13vw, 220px) * 1.5 + 6rem); padding-right: calc(var(--edge) + 2 * clamp(160px, 13vw, 220px) + 4rem); }
@media (max-width: 1199px) {
	.b-mega__aside { display: none; }
	.b-header.has-mega .b-dnav__list > li:has(> .b-mega__aside) > .sub-menu { min-height: 0; padding-right: var(--edge); }
}

.b-scrim {
	position: fixed;
	inset: 0;
	z-index: var(--z-scrim);
	background: rgb(10 10 10 / .18);
	opacity: 0;
	visibility: hidden;
	transition: opacity .3s var(--ease), visibility 0s linear .3s;
}
body.b-mega-open .b-scrim { opacity: 1; visibility: visible; transition-delay: 0s; }

/* 11. Diálogos -------------------------------------------------------------- */
.b-dialog {
	position: fixed;
	inset: 0;
	width: 100%;
	max-width: none;
	height: 100%;
	max-height: none;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--b-text);
	overflow: hidden;
}
.b-dialog::backdrop { background: rgb(10 10 10 / 0); transition: background-color .4s var(--ease); }
.b-dialog.is-open::backdrop { background: rgb(10 10 10 / .42); }
html.b-locked { overflow: hidden; padding-right: var(--sbw, 0px); }

/* Panel lateral. */
.b-drawer__panel {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	display: flex;
	flex-direction: column;
	width: min(480px, 100%);
	background: var(--b-bg);
	transform: translateX(100%);
	transition: transform .6s var(--ease-drawer);
	box-shadow: var(--b-shadow);
}
.b-drawer--left .b-drawer__panel { right: auto; left: 0; transform: translateX(-100%); }
.b-dialog.is-open .b-drawer__panel { transform: none; }
.b-drawer__head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 68px; padding: 0 .75rem 0 1.5rem; border-bottom: 1px solid var(--b-line); }
.b-drawer__title { display: flex; align-items: center; gap: .6rem; margin: 0; font-size: 1.25rem; letter-spacing: var(--b-h-tracking); }
.b-drawer__title .b-count { font-family: var(--b-font-body); }
.b-drawer__body { flex: 1; overflow-y: auto; padding: .5rem 1.5rem 2rem; overscroll-behavior: contain; }
.b-drawer__foot { padding: 1rem 1.5rem 1.5rem; border-top: 1px solid var(--b-line); }

/* Modal centrado. */
.b-modal__panel {
	position: absolute;
	left: 50%;
	top: 50%;
	width: min(1080px, calc(100vw - var(--gutter) * 2));
	max-height: min(780px, calc(100dvh - 40px));
	overflow: auto;
	background: var(--b-bg);
	border-radius: calc(var(--b-radius) * 2);
	box-shadow: var(--b-shadow);
	opacity: 0;
	transform: translate(-50%, -47%);
	transition: opacity .3s var(--ease), transform .5s var(--ease-out);
	overscroll-behavior: contain;
}
.b-dialog.is-open .b-modal__panel { opacity: 1; transform: translate(-50%, -50%); }
.b-modal__close { position: absolute; top: .6rem; right: .6rem; z-index: 3; background: var(--b-bg); }
@media (max-width: 767px) {
	.b-modal__panel {
		left: 0;
		right: 0;
		top: auto;
		bottom: 0;
		width: 100%;
		max-height: 92dvh;
		border-radius: 16px 16px 0 0;
		transform: translateY(100%);
		opacity: 1;
		transition: transform .55s var(--ease-drawer);
	}
	.b-dialog.is-open .b-modal__panel { transform: none; }
}

/* Menú lateral: pantalla completa en móvil, estilo marca (Nude / Zara). */
.b-menudlg__panel {
	position: absolute;
	top: 0;
	left: 0;
	bottom: 0;
	display: flex;
	flex-direction: column;
	width: min(480px, 100%);
	background: var(--b-bg);
	transform: translateX(-100%);
	transition: transform .6s var(--ease-drawer);
}
.b-dialog.is-open .b-menudlg__panel { transform: none; }
.b-menudlg__top {
	display: grid;
	grid-template-columns: 48px 1fr 48px;
	align-items: center;
	min-height: var(--b-header-h-m);
	padding: 0 calc(var(--gutter) - 12px);
	border-bottom: 1px solid var(--b-line);
}
.b-menudlg__top .b-logo { justify-self: center; }
.b-menudlg__cart { position: relative; justify-self: end; }
.b-menudlg__cart .b-count { position: absolute; top: 5px; right: 3px; min-width: 1rem; height: 1rem; font-size: .5625rem; }
.b-menudlg__cart .b-count[data-count="0"] { display: none; }

/* Buscador: línea con lupa (abre el buscador completo). */
.b-menudlg__search {
	display: flex;
	align-items: center;
	gap: .6rem;
	width: 100%;
	min-height: 48px;
	padding: 0 var(--gutter);
	border: 0;
	border-bottom: 1px solid var(--b-line);
	background: none;
	color: var(--b-muted);
	font: inherit;
	font-size: .8125rem;
	text-align: left;
	cursor: text;
}
.b-menudlg__search .b-icon { width: 1rem; height: 1rem; color: var(--b-text); }

/* Escenario con paneles apilados (nivel principal + subniveles). */
.b-menudlg__stage { position: relative; flex: 1; min-height: 0; overflow: hidden; }
.b-mpanel {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	overflow-y: auto;
	overscroll-behavior: contain;
	background: var(--b-bg);
	transition: transform .5s var(--ease-drawer), opacity .35s var(--ease);
}
.b-menudlg__body { padding: 1.25rem var(--gutter) 0; }
.b-mpanel.is-behind { transform: translateX(-22%); opacity: 0; }
.b-msub { padding: 0 var(--gutter) 2rem; transform: translateX(100%); }
.b-msub.is-in { transform: none; }

/* Nivel principal: categorías en grande. */
.b-mnav__list { margin: 0; padding: 0; list-style: none; }
.b-mnav .menu-item { display: flex; flex-wrap: wrap; align-items: center; }
.b-mnav__list > li > a {
	flex: 1;
	display: block;
	padding: .2rem 0;
	font-family: var(--b-font-body);
	font-size: clamp(2rem, 9.4vw, 2.5rem);
	font-weight: 500;
	letter-spacing: -.055em;
	line-height: 1.02;
	text-decoration: none;
	color: var(--b-text);
	transition: opacity .25s var(--ease);
}
.b-mnav__list:has(> li > a:hover) > li > a:not(:hover) { opacity: .35; }
.b-mnav__list > li.is-new > a .b-menu__label::after {
	content: "Nuevo";
	display: inline-block;
	margin-left: .35rem;
	font-size: .625rem;
	font-weight: 500;
	letter-spacing: 0;
	vertical-align: top;
	transform: translateY(.35em);
}
.b-mnav .b-subtoggle { display: grid; place-items: center; width: 44px; height: 44px; margin-right: -12px; color: var(--b-text); }
.b-mnav .b-subtoggle .b-icon { width: 1.125rem; height: 1.125rem; stroke-width: 1.25; transition: transform .3s var(--ease); }
.b-mnav .menu-item-has-children > a:hover ~ .b-subtoggle .b-icon,
.b-mnav .b-subtoggle:hover .b-icon { transform: translateX(3px); }
.b-mnav .sub-menu { display: none; }
.b-mnav .b-menu__label { background: none; }
.b-dialog.is-open .b-mnav__list > li { animation: b-rise .5s var(--ease-out) both; animation-delay: calc(.12s + var(--i, 0) * .04s); }

/* Subnivel: volver, título y lista mediana. */
.b-msub__head { position: sticky; top: 0; z-index: 1; display: flex; align-items: center; min-height: 52px; margin: 0 calc(var(--gutter) * -1); padding: 0 var(--gutter); background: var(--b-bg); }
.b-msub__back { display: inline-flex; align-items: center; gap: .5rem; margin-left: -.25rem; padding: .5rem .25rem; border: 0; background: none; color: var(--b-muted); font: inherit; font-size: .8125rem; cursor: pointer; transition: color .2s var(--ease); }
.b-msub__back:hover { color: var(--b-text); }
.b-msub__back .b-icon { width: 1rem; height: 1rem; transition: transform .3s var(--ease); }
.b-msub__back:hover .b-icon { transform: translateX(-3px); }
.b-msub__title { margin: .25rem 0 1.25rem; font-size: clamp(2rem, 9.4vw, 2.5rem); font-weight: 500; letter-spacing: -.055em; line-height: 1.02; }
.b-msub .b-mnav__list > li > a { padding: .45rem 0; font-size: 1.0625rem; letter-spacing: -.02em; line-height: 1.25; }
.b-msub .b-mnav__list > li { border-bottom: 1px solid var(--b-line); }
.b-msub .b-msub__all > a { text-decoration: underline; text-underline-offset: .25em; text-decoration-thickness: 1px; }
.b-msub.is-in .b-mnav__list > li { animation: b-rise .45s var(--ease-out) both; animation-delay: calc(.08s + var(--i, 0) * .03s); }

/* Destacados con foto. */
.b-menudlg__cats { margin-top: 2.25rem; }
.b-menudlg__kicker { margin: 0 0 .75rem; font-size: .6875rem; color: var(--b-muted); }
.b-menudlg__cats ul { display: flex; gap: .375rem; margin: 0 calc(var(--gutter) * -1); padding: 0 var(--gutter); overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: var(--gutter); scrollbar-width: none; list-style: none; }
.b-menudlg__cats ul::-webkit-scrollbar { display: none; }
.b-menudlg__cats li { flex: 0 0 38%; max-width: 170px; scroll-snap-align: start; }
.b-menudlg__cats a { display: grid; gap: .45rem; text-decoration: none; }
.b-menudlg__catimg { display: block; aspect-ratio: 3 / 4; overflow: hidden; background: var(--b-surface); }
.b-menudlg__catimg img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease-out); }
.b-menudlg__cats a:hover img { transform: scale(1.04); }
.b-menudlg__catname { font-size: .75rem; letter-spacing: -.01em; }

/* Pie: enlaces secundarios con flecha, nota y redes. */
.b-menudlg__meta { margin-top: auto; padding: 2.5rem 0 calc(1.25rem + env(safe-area-inset-bottom)); }
.b-menudlg__links { display: grid; margin: 0; padding: 0; list-style: none; }
.b-menudlg__links a { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 40px; text-decoration: none; font-size: .9375rem; letter-spacing: -.02em; }
.b-menudlg__links small { margin-left: .35rem; font-size: .75rem; color: var(--b-muted); }
.b-menudlg__links .b-icon { width: 1rem; height: 1rem; stroke-width: 1.25; transition: transform .3s var(--ease); }
.b-menudlg__links a:hover .b-icon { transform: translateX(3px); }
.b-menudlg__foot { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--b-line); }
.b-menudlg__note { margin: 0; font-size: .75rem; color: var(--b-muted); }
.b-menudlg__social { margin-right: -10px; }
.b-menudlg .b-menudlg__social a { width: 36px; height: 36px; border: 0; }

@media (prefers-reduced-motion: reduce) {
	.b-mpanel, .b-mpanel.is-behind { transition: none; }
	.b-mpanel.is-behind { transform: none; }
}

/* Buscador. */
.b-searchdlg__panel {
	position: absolute;
	inset: 0 0 auto 0;
	max-height: 100dvh;
	overflow-y: auto;
	background: var(--b-bg);
	padding-bottom: clamp(2rem, 4vw, 3.5rem);
	transform: translateY(-100%);
	transition: transform .55s var(--ease-drawer);
	overscroll-behavior: contain;
}
.b-dialog.is-open .b-searchdlg__panel { transform: none; }
.b-searchdlg__head { display: flex; align-items: center; justify-content: space-between; min-height: var(--b-header-h); }
.b-searchdlg__title { margin: 0; font-family: var(--b-font-body); font-size: .6875rem; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: var(--b-muted); }
.b-searchdlg__head .b-close { margin-right: -10px; }
.b-searchdlg__form { position: relative; display: flex; align-items: center; gap: clamp(.75rem, 1.5vw, 1.25rem); border-bottom: 1px solid var(--b-text); }
.b-searchdlg__icon { width: clamp(1.25rem, 1.8vw, 1.6rem); height: auto; color: var(--b-muted); }
.b-searchdlg__input.b-searchdlg__input {
	flex: 1;
	min-width: 0;
	min-height: 0;
	padding: .6rem 0 .9rem;
	border: 0;
	border-radius: 0;
	background: none;
	font-family: var(--b-font-heading);
	font-size: clamp(1.75rem, 1rem + 2.6vw, 3.25rem);
	font-weight: 400;
	letter-spacing: var(--b-h-tracking, -.02em);
	outline: none;
}
.b-searchdlg__input::placeholder { color: color-mix(in srgb, var(--b-text) 32%, var(--b-bg)); opacity: 1; }
.b-searchdlg__input::-webkit-search-cancel-button { display: none; }
.b-searchdlg__form:focus-within { box-shadow: 0 1px 0 var(--b-text); }
.b-searchdlg__clear { min-height: 44px; padding: 0 .25rem; border: 0; background: none; color: var(--b-muted); font-size: .6875rem; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; }
.b-searchdlg__clear:hover { color: var(--b-text); }
.b-searchdlg__submit { display: grid; place-items: center; width: 48px; height: 48px; padding: 0; border: 0; border-radius: var(--b-btn-radius, 999px); background: var(--b-text); color: var(--b-bg); transition: opacity .2s; }
.b-searchdlg__submit:hover { opacity: .8; }
.b-searchdlg__submit .b-icon { width: 1.1rem; height: 1.1rem; }
.b-searchdlg__status { margin: .9rem 0 0; font-size: .8125rem; color: var(--b-muted); min-height: 1.2em; }
.b-searchdlg__body { display: grid; grid-template-columns: minmax(180px, 1fr) minmax(0, 3.4fr); gap: 2rem clamp(2rem, 5vw, 5rem); margin-top: 1.25rem; }
.b-searchdlg__body.has-no-aside,
.b-searchdlg__body.is-searching { grid-template-columns: minmax(0, 1fr); }
.b-searchdlg__group + .b-searchdlg__group { margin-top: 2.25rem; }
.b-searchdlg__terms, .b-searchdlg__cats { display: grid; margin: 0; padding: 0; list-style: none; }
.b-searchdlg__terms a { display: inline-flex; align-items: center; gap: .7rem; min-height: 38px; font-size: .9375rem; text-decoration: none; }
.b-searchdlg__terms .b-icon { width: .9rem; height: .9rem; color: var(--b-muted); }
.b-searchdlg__cats a { display: inline-block; padding: .4rem 0; font-size: .9375rem; text-decoration: none; }
.b-searchdlg__terms a:hover span, .b-searchdlg__cats a:hover { text-decoration: underline; text-underline-offset: .3em; }
.b-searchdlg__results { display: grid; gap: 2.5rem; }
.b-searchdlg__results:empty { display: none; }
.b-searchdlg__reco + .b-searchdlg__results:not(:empty) { margin-top: 2.5rem; }
.b-sr { display: grid; gap: 2.5rem; }
.b-sr__head { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin-bottom: .25rem; }
.b-sr__head .b-label { margin-bottom: .75rem; }
.b-sr__products { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.5rem 2px; margin: 0; padding: 0; list-style: none; }
.b-searchdlg__results .b-sr__products { grid-template-columns: repeat(auto-fill, minmax(min(170px, 45%), 1fr)); }
.b-sr__products a { display: grid; gap: .3rem; text-decoration: none; }
.b-sr__img { display: block; margin-bottom: .4rem; aspect-ratio: var(--b-ratio); overflow: hidden; background: var(--b-surface); border-radius: var(--b-radius-media); }
.b-sr__img img { width: 100%; height: 100%; object-fit: cover; transition: opacity .3s var(--ease); }
.b-sr__products a:hover img { opacity: .85; }
.b-sr__title { font-size: .8125rem; line-height: 1.35; }
.b-sr__products .price { font-size: .8125rem; color: var(--b-muted); }
.b-sr__cats { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0; padding: 0; list-style: none; }
.b-sr mark { background: none; color: inherit; text-decoration: underline; text-underline-offset: .2em; }
@media (max-width: 899px) {
	.b-searchdlg__body { grid-template-columns: minmax(0, 1fr); }
	.b-searchdlg__terms, .b-searchdlg__cats { display: flex; flex-wrap: wrap; gap: 0 1.25rem; }
	.b-searchdlg__group + .b-searchdlg__group { margin-top: 1.25rem; }
	.b-sr__products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Visor de imágenes. */
.b-lightbox { --b-bg: #0a0a0a; --b-text: #fff; --b-focus: #fff; background: #0a0a0a; color: #fff; opacity: 0; transition: opacity .3s var(--ease); }
.b-lightbox.is-open { opacity: 1; }
.b-lightbox::backdrop { background: #0a0a0a; }
.b-lightbox__track { display: flex; height: 100%; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; outline: none; }
.b-lightbox__track::-webkit-scrollbar { display: none; }
.b-lightbox__item { flex: 0 0 100%; height: 100%; display: grid; place-items: center; scroll-snap-align: center; overflow: hidden; padding: 60px 0; }
.b-lightbox__item img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; cursor: zoom-in; transition: transform .4s var(--ease); }
.b-lightbox__item.is-zoomed img { transform: scale(2); cursor: zoom-out; }
.b-lightbox__btn { position: absolute; top: 50%; transform: translateY(-50%); background: rgb(255 255 255 / .1); color: #fff; }
.b-lightbox__btn--prev { left: 16px; }
.b-lightbox__btn--next { right: 16px; }
.b-lightbox__close { position: absolute; top: 12px; right: 12px; color: #fff; }
.b-lightbox__counter { position: absolute; top: 22px; left: 24px; margin: 0; font-size: .75rem; letter-spacing: .1em; }

/* Acceso y registro. */
.b-login__panel { width: min(460px, calc(100vw - var(--gutter) * 2)); padding: 2.75rem 2rem 2rem; }
.b-login__title { margin: 0 0 1.5rem; font-size: var(--fs-h3); text-align: center; }
.b-tabs { position: relative; display: grid; grid-template-columns: 1fr 1fr; margin-bottom: 1.75rem; border-bottom: 1px solid var(--b-line); }
.b-tabs__tab { min-height: 48px; padding: 0; border: 0; background: none; color: var(--b-muted); font-size: .75rem; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; transition: color .2s; }
.b-tabs__tab[aria-selected="true"] { color: var(--b-text); }
.b-tabs__ink { position: absolute; left: 0; bottom: -1px; width: 50%; height: 2px; background: var(--b-text); transition: transform .35s var(--ease-out); }
.b-tabs:has(#b-tab-register[aria-selected="true"]) .b-tabs__ink { transform: translateX(100%); }
.b-login__pane { animation: b-fade .35s var(--ease); }
@media (max-width: 767px) { .b-login__panel { width: 100%; padding: 2.5rem var(--gutter) 2rem; } }

/* Popup. */
.b-popup__panel { display: grid; width: min(560px, calc(100vw - var(--gutter) * 2)); }
.b-popup__panel.has-image { grid-template-columns: minmax(0, .85fr) minmax(0, 1fr); width: min(900px, calc(100vw - var(--gutter) * 2)); }
.b-popup__media { margin: 0; background: var(--b-surface); }
.b-popup__media img { width: 100%; height: 100%; object-fit: cover; }
.b-popup__body { padding: 2.75rem 2rem 2rem; text-align: center; }
.b-popup__title { margin: 0 0 .75rem; font-size: var(--fs-h3); }
.b-popup__text { margin: 0 auto 1.5rem; max-width: 40ch; font-size: .9375rem; color: var(--b-muted); }
.b-popup__code { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1.5rem; padding: .9rem 1rem; border: 1px dashed var(--b-field-border); border-radius: var(--b-radius); text-align: left; }
.b-popup__codelabel { display: block; font-size: .75rem; color: var(--b-muted); }
.b-popup__code strong { font-size: 1.125rem; font-weight: 500; letter-spacing: .12em; }
.b-popup__products { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; margin: 0 0 1.75rem; padding: 0; list-style: none; text-align: left; }
.b-popup__panel.has-image .b-popup__products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.b-popup__products a { display: grid; gap: .4rem; text-decoration: none; }
.b-popup__img { display: block; aspect-ratio: var(--b-ratio); overflow: hidden; background: var(--b-surface); border-radius: var(--b-radius-media); }
.b-popup__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.b-popup__products a:hover img { transform: scale(var(--b-zoom, 1.04)); }
.b-popup__name { font-size: .8125rem; font-weight: 500; line-height: 1.3; }
.b-popup__products .price { font-size: .75rem; }
.b-popup__form { margin-bottom: 1.25rem; text-align: left; }
.b-popup__actions { display: grid; justify-items: center; gap: .9rem; }
.b-popup__dismiss { font-size: .75rem; color: var(--b-muted); }
@media (max-width: 767px) {
	.b-popup__panel, .b-popup__panel.has-image { grid-template-columns: 1fr; width: 100%; }
	.b-popup__media { display: none; }
	.b-popup__body { padding: 2.5rem var(--gutter) 1.75rem; }
	.b-popup__products, .b-popup__panel.has-image .b-popup__products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* 12. Hero ------------------------------------------------------------------- */
.b-hero {
	--h: calc(100svh - var(--b-announce-h, 0px));
	position: relative;
	height: var(--h);
	min-height: 560px;
	overflow: hidden;
	background: var(--b-surface);
}
.b-hero--h-large { --h: 86svh; }
.b-hero--h-medium { --h: 70svh; }
.b-hero__slides { position: relative; height: 100%; }
.b-hero__slide {
	position: absolute;
	inset: 0;
	display: flex;
	opacity: 0;
	visibility: hidden;
	transition: opacity 1s var(--ease), visibility 0s linear 1s;
}
.b-hero__slide.is-active { z-index: 1; opacity: 1; visibility: visible; transition-delay: 0s; }
.b-hero__media { position: absolute; inset: 0; overflow: hidden; }
.b-hero__media picture, .b-hero__img { width: 100%; height: 100%; object-fit: cover; }
.b-hero__slide.is-active .b-hero__img { animation: b-settle 2.4s var(--ease-out) both; }
.b-hero__slide.has-no-media .b-hero__media { background: #1a1a1a; }
.b-hero__slide--light .b-hero__media::after {
	content: "";
	position: absolute;
	inset: 0;
	background:
		linear-gradient(to bottom, rgb(0 0 0 / calc(var(--b-hero-overlay, .2) * .5 + .12)) 0%, transparent 22%),
		linear-gradient(to top, rgb(0 0 0 / calc(var(--b-hero-overlay, .2) + .3)) 0%, rgb(0 0 0 / calc(var(--b-hero-overlay, .2) * .6)) 40%, transparent 70%);
}
.b-hero__content {
	position: relative;
	z-index: 1;
	display: grid;
	justify-items: start;
	align-content: end;
	align-self: flex-end;
	gap: .85rem;
	width: 100%;
	padding-top: calc(var(--b-header-h) + 4rem);
	padding-bottom: clamp(2.75rem, 5vw, 4rem);
}
.b-hero__slide--light .b-hero__content { color: #fff; --b-focus: #fff; }
.b-hero__slide--dark .b-hero__content { color: #0a0a0a; --b-focus: #0a0a0a; }
.b-hero__kicker { margin: 0; font-size: .6875rem; font-weight: 500; letter-spacing: .16em; text-transform: uppercase; }
.b-hero__title { max-width: 14ch; margin: 0; font-size: calc(clamp(2.75rem, 1.3rem + 5.2vw, 7rem) * var(--b-h-scale, 1)); line-height: .92; }
.b-hero__text { max-width: 42ch; margin: 0; font-size: .9375rem; line-height: 1.5; opacity: .92; }
.b-hero__actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .6rem; }
.b-hero__slide--center .b-hero__content,
.b-hero__slide--bottom .b-hero__content { justify-items: center; text-align: center; }
.b-hero__slide--center .b-hero__content { align-self: center; padding-bottom: 2rem; }
.b-hero__slide--center .b-hero__actions,
.b-hero__slide--bottom .b-hero__actions { justify-content: center; }
.b-hero__slide.is-active .b-hero__content > * { animation: b-rise .9s var(--ease-out) both; }
.b-hero__slide.is-active .b-hero__content > :nth-child(2) { animation-delay: .06s; }
.b-hero__slide.is-active .b-hero__content > :nth-child(3) { animation-delay: .12s; }
.b-hero__slide.is-active .b-hero__content > :nth-child(4) { animation-delay: .18s; }
.b-hero__controls {
	position: absolute;
	left: 0;
	right: 0;
	bottom: clamp(2.75rem, 5vw, 4rem);
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 1.5rem;
	pointer-events: none;
}
.b-hero__controls > * { pointer-events: auto; }
.b-hero[data-tone="light"] .b-hero__controls { color: #fff; --b-focus: #fff; }
.b-hero[data-tone="dark"] .b-hero__controls { color: #0a0a0a; --b-focus: #0a0a0a; }
.b-hero__dots { display: flex; gap: 1rem; }
.b-hero__dot { position: relative; min-width: 36px; height: 44px; padding: 0; border: 0; background: none; color: inherit; font-size: .6875rem; font-weight: 500; letter-spacing: .1em; font-variant-numeric: tabular-nums; opacity: .55; transition: opacity .3s; }
.b-hero__dot::after { content: ""; position: absolute; left: 0; right: 0; bottom: 10px; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: left; transition: transform .6s var(--ease-out); }
.b-hero__dot:hover { opacity: .85; }
.b-hero__dot[aria-current="true"] { opacity: 1; }
.b-hero__dot[aria-current="true"]::after { transform: scaleX(1); }
.b-hero__arrows { display: flex; gap: .25rem; }
.b-hero__arrows .b-iconbtn .b-icon { width: 1.05rem; height: 1.05rem; }
@media (max-width: 767px) {
	.b-hero__content { padding-bottom: 5rem; }
	.b-hero__controls { bottom: 1rem; justify-content: space-between; }
	.b-hero__arrows [data-hero-prev], .b-hero__arrows [data-hero-next] { display: none; }
}

/* 13. Cabeceras de sección ------------------------------------------------------ */
.b-shead { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .5rem 2rem; margin-bottom: clamp(.875rem, 1.4vw, 1.25rem); }
.b-shead__title { max-width: 24ch; margin: 0; font-size: calc(clamp(1.375rem, 1rem + 1.1vw, 2.125rem) * var(--b-h-scale, 1)); line-height: 1.05; }
.b-shead__aside { display: flex; align-items: center; gap: 1.5rem; }
.b-shead .b-link--arrow { font-size: .6875rem; }
.b-slider__nav { display: flex; gap: .4rem; }
.b-slider__btn { border-color: var(--b-line-strong); }
.b-slider__btn:hover:not(:disabled) { background: var(--b-text); color: var(--b-bg); border-color: var(--b-text); }
.b-slider__btn .b-icon { width: 1.1rem; height: 1.1rem; }
[data-slider].is-static .b-slider__nav { display: none; }
.b-admin-hint { padding: 1rem 1.25rem; border: 1px dashed var(--b-line-strong); border-radius: var(--b-radius); font-size: .875rem; color: var(--b-muted); }

/* 14. Bloques de imagen a sangre ------------------------------------------------- */
/* Tiras de imágenes (categorías y dúo): pegadas entre sí, nombre subrayado abajo a la izquierda. */
.b-tile { position: relative; display: block; height: 100%; overflow: hidden; background: var(--b-surface); color: #fff; text-decoration: none; isolation: isolate; }
.b-tile__media { position: absolute; inset: 0; display: block; }
.b-tile__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.4s var(--ease-out), opacity .4s var(--ease); }
.b-tile::after { content: ""; position: absolute; inset: 0; z-index: 0; background: linear-gradient(to top, rgb(0 0 0 / .32) 0%, transparent 38%); pointer-events: none; }
.b-tile__label {
	position: absolute;
	left: var(--gutter);
	bottom: clamp(.9rem, 1.6vw, 1.4rem);
	z-index: 1;
	display: inline-flex;
	align-items: baseline;
	gap: .4rem;
	font-size: .75rem;
	font-weight: 600;
	letter-spacing: .02em;
	text-transform: uppercase;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: .3em;
}
.b-tile__count { font-weight: 400; opacity: .85; text-decoration: none; }
.b-tile:hover .b-tile__media img, .b-tile:focus-visible .b-tile__media img { transform: scale(var(--b-zoom, 1.04)); }
.b-tile:focus-visible { outline-offset: -4px; }
.b-tile.has-no-media { color: var(--b-text); }
.b-tile.has-no-media::after { display: none; }

.b-catstrip { display: grid; grid-template-columns: repeat(var(--c, 4), minmax(0, 1fr)); gap: 2px; margin: 0; padding: 0; list-style: none; }
.b-catstrip > li { aspect-ratio: var(--r, 2 / 3); }
.b-catstrip--row { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: calc((100% - 3 * 2px) / 4); overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain; }
.b-catstrip--row::-webkit-scrollbar { display: none; }
.b-catstrip--row > li { scroll-snap-align: start; }
.b-cats.has-head { padding-top: var(--space-section); }
@media (max-width: 1023px) { .b-catstrip:not(.b-catstrip--row) { grid-template-columns: repeat(min(var(--c, 4), 3), minmax(0, 1fr)); } }
@media (max-width: 767px) {
	.b-catstrip, .b-catstrip:not(.b-catstrip--row) { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 46%; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
	.b-catstrip::-webkit-scrollbar { display: none; }
	.b-catstrip > li { aspect-ratio: var(--r, 2 / 3); scroll-snap-align: start; }
}

.b-duo__list { display: grid; grid-template-columns: 1fr 1fr; gap: 2px; margin: 0; padding: 0; list-style: none; }
.b-duo__list > li { aspect-ratio: var(--r, 2 / 3); }
@media (max-width: 767px) { .b-duo__list { grid-template-columns: 1fr; } }

/* Banner a sangre: antetítulo, titular apretado y botones en píldora. */
.b-banner { position: relative; display: flex; min-height: min(100svh, 56vw); overflow: hidden; background: #1a1a1a; isolation: isolate; }
@media (min-width: 768px) { .b-banner[style*="--r"] { min-height: 0; aspect-ratio: var(--r); } }
@media (max-width: 767px) { .b-banner { min-height: 125vw; } }
/* "Nuestra historia": banner más contenido que el resto. */
@media (min-width: 768px) { .b-banner.b-editorial { aspect-ratio: auto; min-height: 0; height: clamp(380px, 36vw, 540px); } }
@media (max-width: 767px) { .b-banner.b-editorial { min-height: 100vw; } }
.b-banner__media { position: absolute; inset: 0; }
.b-banner__media img { width: 100%; height: 100%; object-fit: cover; }
.b-banner--light .b-banner__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgb(0 0 0 / calc(var(--b-hero-overlay, .2) + .3)) 0%, rgb(0 0 0 / calc(var(--b-hero-overlay, .2) * .5)) 45%, transparent 75%); }
.b-banner__content { position: relative; z-index: 1; display: grid; justify-items: start; align-content: end; gap: .8rem; width: 100%; padding-block: clamp(5rem, 10vw, 8rem) clamp(2.5rem, 4vw, 3.5rem); }
.b-banner--light .b-banner__content { color: #fff; --b-focus: #fff; }
.b-banner--dark { background: var(--b-surface); }
.b-banner--dark .b-banner__content { color: #0a0a0a; --b-focus: #0a0a0a; }
.b-banner__kicker { margin: 0; font-size: .6875rem; font-weight: 500; letter-spacing: .16em; text-transform: uppercase; }
.b-banner__title { max-width: 16ch; margin: 0; font-size: calc(clamp(2.25rem, 1.2rem + 3.8vw, 5.5rem) * var(--b-h-scale, 1)); line-height: .94; }
.b-banner__text { max-width: 46ch; margin: 0; font-size: .9375rem; line-height: 1.5; opacity: .92; }
.b-banner__meta { margin: 0; font-size: .8125rem; line-height: 1.6; opacity: .85; }
.b-banner__actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .5rem; }
.b-banner--center .b-banner__content { justify-items: center; align-content: center; text-align: center; }
.b-banner--center .b-banner__actions { justify-content: center; }
.b-banner--center.b-banner--light .b-banner__media::after { background: rgb(0 0 0 / calc(var(--b-hero-overlay, .2) + .18)); }

/* Bloques a sangre seguidos: separados por una línea blanca de 2px. */
:is(.b-hero, .b-banner, .b-cats:not(.has-head), .b-duo) + :is(.b-banner, .b-cats:not(.has-head), .b-duo) { margin-top: 2px; }

/* Texto de marca centrado (Basyco). */
.b-section.b-manifesto { padding-block: clamp(48px, 6vw, 96px); }
.b-manifesto + .b-section { padding-top: 0; }
.b-manifesto__inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 3fr); align-items: start; gap: 1rem clamp(2rem, 4vw, 4rem); }
.b-manifesto__kicker { margin: .6rem 0 0; font-size: .6875rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; }
.b-manifesto__text { max-width: 26ch; margin: 0; font-size: calc(clamp(2rem, 1.1rem + 3vw, 4.25rem) * var(--b-h-scale, 1)); line-height: .98; text-wrap: balance; }
.b-manifesto__actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: clamp(1.5rem, 2.5vw, 2.25rem); }
@media (max-width: 767px) { .b-manifesto__inner { grid-template-columns: minmax(0, 1fr); } .b-manifesto__kicker { margin-top: 0; } }

/* 15. Rejilla y tarjeta de producto ------------------------------------------------ */
ul.products {
	display: grid;
	grid-template-columns: repeat(var(--b-cols-m, 2), minmax(0, 1fr));
	gap: var(--b-grid-y, 2rem) var(--b-grid-x, 2px);
	margin: 0;
	padding: 0;
	list-style: none;
}
@media (min-width: 768px) and (max-width: 1199px) {
	ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	ul.products.columns-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1200px) { ul.products { grid-template-columns: repeat(var(--b-cols, 4), minmax(0, 1fr)); } }
ul.products::before, ul.products::after { display: none; }
ul.products li.product { position: relative; min-width: 0; margin: 0; padding: 0; list-style: none; }

.b-card { position: relative; display: flex; flex-direction: column; gap: .7rem; height: 100%; }
.b-card__media { position: relative; z-index: 2; aspect-ratio: var(--b-ratio, 2 / 3); overflow: hidden; background: var(--b-surface); border-radius: var(--b-radius-media); }
.b-card__imglink { position: absolute; inset: 0; display: block; }
.b-card__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: opacity .5s var(--ease); }
.b-card__img--hover { opacity: 0; }
.b-card.has-hover-image:hover .b-card__img--hover { opacity: 1; }

.b-badges { position: absolute; top: .6rem; left: .6rem; z-index: 2; display: flex; flex-direction: column; align-items: flex-start; gap: .3rem; pointer-events: none; }
.b-badge { display: inline-block; padding: .5em .75em; border-radius: 999px; background: color-mix(in srgb, var(--b-bg) 92%, transparent); color: var(--b-text); font-size: .625rem; font-weight: 500; letter-spacing: .04em; line-height: 1; }
.b-badge--sale { background: var(--b-sale); color: var(--b-sale-text); }
.b-badge--soldout { color: var(--b-muted); }

.b-wish { position: absolute; top: .2rem; right: .2rem; z-index: 2; display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%; background: transparent; color: var(--b-text); transition: opacity .2s; }
.b-wish:hover { opacity: .6; }
.b-wish .b-icon { width: 1.1rem; height: 1.1rem; transition: fill .15s; }
.b-wish[aria-pressed="true"] .b-icon { fill: currentColor; }
.b-wish.is-pop .b-icon { animation: b-bump .45s var(--ease-out); }

/* Acciones sobre la imagen: tallas, añadir o vista rápida. */
.b-card__actions {
	position: absolute;
	left: .5rem;
	right: .5rem;
	bottom: .5rem;
	z-index: 2;
	display: flex;
	gap: .375rem;
	opacity: 0;
	transform: translateY(8px);
	transition: opacity .3s var(--ease), transform .4s var(--ease-out);
}
.b-card:hover .b-card__actions, .b-card:focus-within .b-card__actions { opacity: 1; transform: none; }
.b-card .b-card__btn, .b-card .b-card__icon {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	min-height: 44px;
	padding: 0 1rem;
	border: 0;
	border-radius: var(--b-radius);
	background: color-mix(in srgb, var(--b-bg) 94%, transparent);
	color: var(--b-text);
	font-size: .6875rem;
	font-weight: 500;
	letter-spacing: .1em;
	text-transform: uppercase;
	text-decoration: none;
	white-space: nowrap;
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
	transition: background-color .2s, color .2s;
}
.b-card .b-card__btn { flex: 1; min-height: 44px; padding: 0 1rem; border: 0; }
.b-card .b-card__icon { flex: 0 0 44px; padding: 0; }
.b-card__btn .b-icon, .b-card__icon .b-icon { width: 1rem; height: 1rem; }
.b-card .b-card__btn:hover, .b-card .b-card__icon:hover { background: var(--b-text); color: var(--b-bg); border-color: var(--b-text); }
.b-card__btn.loading { color: transparent; pointer-events: none; }
.b-card__btn.loading::after { content: ""; position: absolute; width: 14px; height: 14px; border: 1.5px solid var(--b-text); border-right-color: transparent; border-radius: 50%; animation: b-spin .7s linear infinite; }
.b-card .added_to_cart { display: none; }

.b-card__sizes {
	flex: 1;
	display: flex;
	align-items: center;
	gap: .5rem;
	min-height: 44px;
	padding: .2rem .25rem .2rem .9rem;
	border-radius: var(--b-radius);
	background: color-mix(in srgb, var(--b-bg) 94%, transparent);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
}
.b-card__sizes-label { margin-right: auto; font-size: .625rem; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; color: var(--b-muted); }
.b-card__sizes ul { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 0; margin: 0; padding: 0; list-style: none; }
.b-card__size { position: relative; min-width: 36px; height: 36px; padding: 0 .45rem; border: 0; border-radius: var(--b-radius); background: none; color: var(--b-text); font-size: .75rem; font-weight: 500; transition: background-color .2s, color .2s; }
.b-card__size:hover:not(:disabled) { background: var(--b-text); color: var(--b-bg); }
.b-card__size:disabled { color: var(--b-muted); text-decoration: line-through; opacity: .55; cursor: not-allowed; }
.b-card__size.is-loading { color: transparent; pointer-events: none; }
.b-card__size.is-loading::after { content: ""; position: absolute; inset: 0; margin: auto; width: 12px; height: 12px; border: 1.5px solid var(--b-text); border-right-color: transparent; border-radius: 50%; animation: b-spin .7s linear infinite; }
.b-card__size.is-added { background: var(--b-text); color: var(--b-bg); }
.b-card .b-card__btn--touch { display: none; }

@media (hover: none) {
	.b-card__actions { left: auto; opacity: 1; transform: none; }
	.b-card__sizes { display: none; }
	.b-card .b-card__btn--touch { display: inline-flex; }
	.b-card .b-card__btn, .b-card .b-card__icon { width: 40px; min-height: 40px; padding: 0; flex: 0 0 40px; border-radius: 50%; }
	.b-card__btn-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
}

.b-card__body { display: grid; gap: .2rem; padding-inline: var(--b-card-pad, 0px); }
.b-card.is-centered .b-card__body { justify-items: center; text-align: center; }
.b-card__cat { margin: 0; font-size: .625rem; letter-spacing: .12em; text-transform: uppercase; color: var(--b-muted); }
.b-card__title { margin: 0; font-family: var(--b-font-body); font-size: .8125rem; font-weight: 400; letter-spacing: 0; line-height: 1.35; text-transform: none; }
.b-card__title a { text-decoration: none; }
.b-card__title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.b-card__title a:focus-visible { outline: none; }
.b-card__title a:focus-visible::after { outline: var(--b-focus-w) solid var(--b-focus); outline-offset: 2px; }
.b-card .price { font-size: .8125rem; }

.price { display: inline-flex; flex-wrap: wrap; align-items: baseline; gap: .1rem .6rem; margin: 0; font-size: .875rem; font-variant-numeric: tabular-nums; color: var(--b-text); }
.price del { color: var(--b-muted); text-decoration-thickness: 1px; font-size: .92em; }
.price ins { text-decoration: none; font-weight: 600; }

/* Carruseles. */
.b-products--slider ul.products,
.b-rail ul.products {
	--n: 4;
	display: grid;
	grid-auto-flow: column;
	grid-template-columns: none;
	grid-auto-columns: calc((100% - (var(--n) - 1) * var(--b-grid-x, 2px)) / var(--n));
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	overscroll-behavior-x: contain;
}
.b-products--slider ul.products::-webkit-scrollbar, .b-rail ul.products::-webkit-scrollbar { display: none; }
.b-products--slider ul.products > li, .b-rail ul.products > li { scroll-snap-align: start; }
ul.products.is-dragging { scroll-snap-type: none; cursor: grabbing; }
ul.products.is-dragging a { pointer-events: none; }
@media (min-width: 1600px) { .b-products--slider ul.products { --n: 5.5; } }
@media (min-width: 1200px) and (max-width: 1599px) { .b-products--slider ul.products { --n: 4.5; } }
@media (max-width: 1199px) { .b-products--slider ul.products, .b-rail ul.products { --n: 3.3; } }
@media (max-width: 767px) { .b-products--slider ul.products, .b-rail ul.products { --n: 2.2; } }
.b-products__body { position: relative; }
.b-section.b-products { padding-bottom: clamp(14px, 1.6vw, 24px); }
.b-products--grid .b-products__body { padding-inline: 0; }
.b-products__body .b-slider__nav { position: absolute; top: 0; left: 0; right: 0; height: 0; pointer-events: none; }
.b-products__body .b-slider__btn {
	position: absolute;
	top: calc((100vw / var(--n, 4)) * 1.5 / 2 - 20px);
	width: 40px;
	height: 40px;
	border: 0;
	background: var(--b-bg);
	color: var(--b-text);
	box-shadow: 0 6px 18px -8px rgb(0 0 0 / .25);
	pointer-events: auto;
	opacity: 0;
	transition: opacity .25s var(--ease), background-color .2s, color .2s;
}
.b-products__body [data-slider-prev] { left: var(--gutter); }
.b-products__body [data-slider-next] { right: var(--gutter); }
.b-products:hover .b-slider__btn:not(:disabled), .b-products__body .b-slider__btn:focus-visible { opacity: 1; }
.b-products__body .b-slider__btn:disabled { visibility: hidden; }
@media (hover: none) { .b-products__body .b-slider__nav { display: none; } }

/* 16. Bloques de portada ------------------------------------------------------------ */
.b-usp { border-block: 1px solid var(--b-line); }
.b-usp__list { display: grid; grid-template-columns: repeat(var(--n, 4), minmax(0, 1fr)); margin: 0; padding: 0; list-style: none; }
.b-usp__item { display: flex; align-items: flex-start; gap: 1rem; padding: clamp(1.75rem, 3.5vw, 2.75rem) clamp(1rem, 2vw, 2rem); }
.b-usp__item + .b-usp__item { border-left: 1px solid var(--b-line); }
.b-usp__item:first-child { padding-left: 0; }
.b-usp__icon { width: 1.6rem; height: 1.6rem; margin-top: .1rem; }
.b-usp__title { margin: 0 0 .25rem; font-family: var(--b-font-body); font-size: .9375rem; font-weight: 600; letter-spacing: -.005em; text-transform: none; }
.b-usp__text { margin: 0; font-size: .875rem; line-height: 1.5; color: var(--b-muted); }
@media (max-width: 1023px) {
	.b-usp__list { grid-template-columns: 1fr 1fr; }
	.b-usp__item { padding-left: 0; }
	.b-usp__item + .b-usp__item { border-left: 0; }
	.b-usp__item:nth-child(n+3) { border-top: 1px solid var(--b-line); }
}
@media (max-width: 559px) { .b-usp__list { grid-template-columns: 1fr; } .b-usp__item + .b-usp__item { border-top: 1px solid var(--b-line); } }

.b-section.b-newsletter { padding-block: clamp(44px, 5vw, 80px); border-top: 1px solid var(--b-line); }
.b-newsletter + .b-footer { border-top: 0; }
.b-newsletter__inner { display: grid; justify-items: center; max-width: 820px; text-align: center; }
.b-newsletter__title { max-width: 16ch; margin: 0 0 1rem; font-size: calc(clamp(2rem, 1.2rem + 2.6vw, 3.75rem) * var(--b-h-scale, 1)); line-height: .98; }
.b-newsletter__text { max-width: 44ch; margin: 0 0 1.75rem; font-size: .9375rem; line-height: 1.6; color: var(--b-muted); }
.b-newsletter__form { width: min(520px, 100%); }
.b-nlform--home .b-nlform__row { padding: 0; border: 0; border-bottom: 1px solid var(--b-text); border-radius: 0; background: none; }
.b-nlform--home .b-nlform__row:focus-within { outline-offset: 4px; }
.b-nlform--home .b-nlform__input.b-nlform__input { min-height: 48px; padding: 0; font-size: .9375rem; }
.b-nlform--home .b-nlform__submit { min-height: 48px; padding: 0 0 0 1rem; border-radius: 0; background: none; color: var(--b-text); font-size: .6875rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
.b-nlform--home .b-nlform__submit:hover { opacity: .6; }
.b-nlform--home .b-nlform__consent { justify-content: center; font-size: .75rem; color: var(--b-muted); }

.b-nlform { display: grid; gap: .9rem; text-align: left; }
.b-nlform__row { display: flex; gap: .5rem; padding: .375rem; border: 1px solid var(--b-field-border); border-radius: var(--b-btn-radius, 999px); background: var(--b-bg); transition: border-color .2s; }
.b-nlform__row:focus-within { border-color: var(--b-text); outline: var(--b-focus-w) solid var(--b-focus); outline-offset: 2px; }
.b-nlform__input.b-nlform__input { flex: 1; min-height: 46px; padding: 0 1rem; border: 0; background: none; outline: none; }
.b-nlform__submit { padding: 0 1.4rem; border: 0; border-radius: var(--b-btn-radius, 999px); background: var(--b-accent); color: var(--b-accent-text); font-size: .75rem; font-weight: 500; letter-spacing: var(--b-btn-tracking); text-transform: var(--b-btn-case); transition: opacity .2s; }
.b-nlform__submit:hover { opacity: .85; }
.b-nlform__status { margin: 0; font-size: .8125rem; min-height: 1.2em; }
.b-nlform__status.is-ok { color: var(--b-success); }
.b-nlform__status.is-error { color: var(--b-error); }
.b-inverse .b-nlform__status.is-ok, .b-inverse .b-nlform__status.is-error { color: var(--b-text); }
@media (max-width: 479px) {
	.b-nlform__row { flex-direction: column; border-radius: calc(var(--b-radius) * 3 + 8px); }
	.b-nlform__submit { min-height: 46px; border-radius: calc(var(--b-radius) * 2 + 4px); }
}
.b-homecontent { padding-block: var(--space-section); }

/* 17. Catálogo ---------------------------------------------------------------------- */
/* Migas: mayúsculas pequeñas, la página actual en negro. */
.woocommerce-breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: .1rem .4rem; margin: 0 0 .9rem; font-size: .75rem; line-height: 1.4; letter-spacing: -.005em; color: var(--b-muted); }
.woocommerce-breadcrumb a { text-decoration: none; background-image: linear-gradient(currentColor, currentColor); background-size: 0 1px; background-position: 0 100%; background-repeat: no-repeat; transition: color .2s, background-size .3s var(--ease-out); }
.woocommerce-breadcrumb a:hover { color: var(--b-text); background-size: 100% 1px; }
.b-crumb:last-child { color: var(--b-text); font-weight: 500; }
.b-crumb-sep { opacity: .5; }

/* Cabecera compacta: título con recuento y navegación numerada de categorías. */
.b-shophead { padding-block: clamp(1.5rem, 3vw, 2.5rem) 0; }
.b-shophead__row { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1rem 3rem; }
.b-shophead__title { margin: 0; font-size: calc(clamp(2.25rem, 1.4rem + 3vw, 4.5rem) * var(--b-h-scale, 1)); line-height: .92; }
.b-shophead__title em { font-style: normal; }
.b-shophead__count { display: inline-block; margin-left: .15em; font-size: .26em; font-weight: 500; letter-spacing: 0; vertical-align: top; transform: translateY(.2em); }
.b-shophead__desc { max-width: 42ch; margin: 0; font-size: .8125rem; line-height: 1.6; color: var(--b-muted); }
.b-shophead__desc p:last-child { margin: 0; }
/* Subcategorías como enlaces de texto; la activa en negro con un punto. */
.b-subnav { min-width: 0; margin-inline: calc(var(--gutter) * -1); padding-inline: var(--gutter); overflow-x: auto; scrollbar-width: none; }
.b-subnav::-webkit-scrollbar { display: none; }
.b-subnav ul { display: flex; gap: 1.25rem; width: max-content; margin: 0; padding: 0; list-style: none; }
.b-subnav a { position: relative; display: inline-flex; align-items: center; min-height: 44px; font-size: .875rem; letter-spacing: -.01em; text-decoration: none; color: var(--b-muted); transition: color .2s; }
.b-subnav a:hover { color: var(--b-text); }
.b-subnav a[aria-current] { color: var(--b-text); font-weight: 500; }
.b-subnav a[aria-current]::after { content: ""; position: absolute; top: 12px; right: -6px; width: 4px; height: 4px; border-radius: 50%; background: currentColor; }

/* Barra de herramientas fina. */
.b-toolbar { display: flex; align-items: center; justify-content: space-between; gap: .25rem 1.5rem; margin: .5rem 0 clamp(.75rem, 1.4vw, 1.25rem); }
.b-toolbar__start { min-width: 0; flex: 1 1 auto; }
.b-toolbar__start, .b-toolbar__end { display: flex; align-items: center; gap: 1.25rem; }
.b-toolbar__end { flex: 0 0 auto; }
.b-toolbar__filter .b-count { min-width: 1.05rem; height: 1.05rem; }
.woocommerce-result-count { margin: 0; font-size: .6875rem; letter-spacing: .08em; text-transform: uppercase; color: var(--b-muted); }
.woocommerce-ordering { margin: 0; }
.woocommerce-ordering select { min-height: 44px; width: auto; padding: 0 1.5rem 0 0; border: 0; background-color: transparent; background-position: right 0 center; font-size: .875rem; letter-spacing: -.01em; }
.woocommerce-ordering select:hover { opacity: .6; }
.b-gridswitch { display: flex; gap: 0; }
.b-gridswitch button { display: grid; place-items: center; width: 36px; height: 44px; padding: 0; border: 0; background: none; color: var(--b-muted); transition: color .2s; }
.b-gridswitch button:hover, .b-gridswitch button[aria-pressed="true"] { color: var(--b-text); }
.b-gridswitch .b-icon { width: 1rem; height: 1rem; }
@media (max-width: 1199px) { .b-gridswitch { display: none; } }
@media (max-width: 599px) { .woocommerce-result-count { display: none; } }
@media (max-width: 767px) {
	.b-toolbar { flex-direction: column; align-items: stretch; gap: 0; }
	.b-toolbar__end { justify-content: space-between; border-top: 1px solid var(--b-line); }
}

/* Rejilla de borde a borde, como en la portada. */
.b-shop__layout:not(.has-sidebar) ul.products { margin-inline: calc(var(--gutter) * -1); }
.b-toolbar + .b-shop__layout { margin-top: 0; }

/* Barra lateral fija: categorías + filtros (abierta por defecto en escritorio). */
.b-shop__layout.has-sidebar {
	display: grid;
	grid-template-columns: 248px minmax(0, 1fr);
	column-gap: clamp(1.5rem, 3vw, 3rem);
	transition: grid-template-columns .55s var(--ease), column-gap .55s var(--ease);
}
.b-shop__layout.has-sidebar.is-collapsed { grid-template-columns: 0 minmax(0, 1fr); column-gap: 0; }
.b-shop__sidebar {
	position: sticky;
	top: calc(var(--b-sticky-top, var(--b-header-h)) + 1rem);
	align-self: start;
	min-width: 0;
	max-height: calc(100vh - var(--b-sticky-top, var(--b-header-h)) - 2rem);
	overflow: hidden auto;
	overscroll-behavior: contain;
	scrollbar-width: thin;
	scrollbar-color: var(--b-line) transparent;
	transition: opacity .35s var(--ease), visibility .35s;
}
.b-shop__sidebar-inner { width: 248px; padding: 0 .75rem 1.5rem 0; }
.is-collapsed .b-shop__sidebar { opacity: 0; visibility: hidden; }
.b-toolbar__toggle, .b-toolbar__filter { display: inline-flex; align-items: center; gap: .45rem; min-height: 44px; padding: 0; border: 0; background: none; color: var(--b-text); font-size: .875rem; letter-spacing: -.01em; white-space: nowrap; cursor: pointer; }
.b-toolbar__toggle:hover, .b-toolbar__filter:hover { opacity: .6; }
.b-toolbar__toggle .b-icon, .b-toolbar__filter .b-icon { width: 1rem; height: 1rem; }
.b-toolbar__toggle .b-count { min-width: 1.05rem; height: 1.05rem; }
.b-toolbar__toggle + .b-toolbar__subnav { display: none; }
.b-toolbar__filter.is-mobile-only { display: none; }
@media (max-width: 1023px) {
	.b-shop__layout.has-sidebar { grid-template-columns: 1fr; }
	.b-shop__sidebar, .b-toolbar__toggle { display: none; }
	.b-toolbar__filter.is-mobile-only { display: inline-flex; }
	.b-toolbar__toggle + .b-toolbar__subnav { display: block; min-width: 0; }
}
.b-shop { padding-bottom: var(--space-section); }

/* Secciones plegables (mismo lenguaje que los acordeones de la ficha). */
.b-facet { border-top: 1px solid var(--b-line); }
.b-facet:first-child, .b-facet-active + .b-facet { border-top: 0; }
.b-facet__head { display: flex; align-items: center; gap: .5rem; min-height: 48px; list-style: none; cursor: pointer; user-select: none; }
.b-facet__head::-webkit-details-marker { display: none; }
.b-facet__title { font-size: .8125rem; font-weight: 500; letter-spacing: -.01em; }
.b-facet__meta { display: inline-grid; place-items: center; min-width: 1.05rem; height: 1.05rem; padding: 0 .25rem; border-radius: 999px; background: var(--b-text); color: var(--b-bg); font-size: .625rem; font-weight: 600; }
.b-facet__icon { position: relative; width: 10px; height: 10px; margin-left: auto; }
.b-facet__icon::before, .b-facet__icon::after { content: ""; position: absolute; top: 50%; left: 0; width: 100%; height: 1px; background: currentColor; transition: transform .3s var(--ease); }
.b-facet__icon::after { transform: rotate(90deg); }
.b-facet[open] .b-facet__icon::after { transform: rotate(0deg); }
.b-facet__body { padding: 0 0 1.25rem; }
.b-facet__body ul { margin: 0; padding: 0; list-style: none; }
.b-facet[open] .b-facet__body { animation: b-facet-in .35s var(--ease) both; }
@keyframes b-facet-in { from { opacity: 0; transform: translateY(-4px); } }

/* Categorías: lista de marca con la actual marcada por una línea. */
.b-catnav { display: grid; gap: .1rem; }
.b-catnav a { position: relative; display: flex; align-items: baseline; gap: .3rem; min-height: 32px; padding: .2rem 0; color: var(--b-muted); text-decoration: none; transition: color .2s, padding-left .35s var(--ease); }
.b-catnav a:hover { color: var(--b-text); }
.b-catnav a[aria-current] { padding-left: 1.1rem; color: var(--b-text); }
.b-catnav a[aria-current]::before { content: ""; position: absolute; left: 0; top: calc(.2rem + .62em); width: .7rem; height: 1px; background: currentColor; }
.b-catnav__all { font-size: .875rem; }
.b-catnav__list--0 > li > a { font-size: 1.0625rem; letter-spacing: -.025em; line-height: 1.25; }
.b-catnav__list--0 > li.is-branch > a { color: var(--b-text); }
.b-catnav__list--1, .b-catnav__list--2 { margin: .1rem 0 .4rem; padding-left: .85rem !important; border-left: 1px solid var(--b-line); }
.b-catnav__list--1 a, .b-catnav__list--2 a { min-height: 28px; font-size: .875rem; }
.b-catnav__count { font-size: .625rem; font-variant-numeric: tabular-nums; color: var(--b-muted); transform: translateY(-.45em); }

/* Talla: casillas cuadradas. */
.b-facet--size ul { display: flex; flex-wrap: wrap; gap: .3rem; }
.b-facet--size li { margin: 0; }
.b-facet--size li a { display: grid; place-items: center; min-width: 44px; height: 40px; padding: 0 .6rem; border: 1px solid var(--b-line); font-size: .8125rem; text-decoration: none; transition: border-color .2s, background-color .2s, color .2s; }
.b-facet--size li a:hover { border-color: var(--b-text); }
.b-facet--size .chosen a { border-color: var(--b-text); background: var(--b-text); color: var(--b-bg); }
.b-facet--size .count { display: none; }

/* Color y otros atributos: filas con muestra y recuento. */
.b-facet--color ul, .b-facet--attr ul { display: grid; gap: .05rem; }
.b-facet--color li, .b-facet--attr li { display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
.b-facet--color li a, .b-facet--attr li a { display: inline-flex; align-items: center; gap: .6rem; min-height: 34px; font-size: .875rem; color: var(--b-muted); text-decoration: none; transition: color .2s; }
.b-facet--color li a:hover, .b-facet--attr li a:hover, .b-facet--color .chosen a, .b-facet--attr .chosen a { color: var(--b-text); }
.b-facet--attr .chosen a { font-weight: 500; }
.b-facet__dot { flex: 0 0 14px; width: 14px; height: 14px; border-radius: 50%; background: var(--dot); box-shadow: inset 0 0 0 1px rgb(0 0 0 / .14); transition: box-shadow .2s; }
.b-facet--color .chosen .b-facet__dot { box-shadow: inset 0 0 0 1px rgb(0 0 0 / .14), 0 0 0 2px var(--b-bg), 0 0 0 3px var(--b-text); }
.b-facet--color .count, .b-facet--attr .count { font-size: .6875rem; color: var(--b-muted); font-variant-numeric: tabular-nums; }

/* Precio */
.b-facet--price form { margin: 0; }
.price_slider_wrapper { padding-top: .25rem; }
.ui-slider { position: relative; height: 1px; margin: .9rem 7px 1.4rem; background: var(--b-line-strong, #cfcfcf); }
.ui-slider-range { position: absolute; top: 0; height: 100%; background: var(--b-text); }
.ui-slider-handle { position: absolute; top: 50%; z-index: 2; width: 14px; height: 14px; margin-left: -7px; border: 0; border-radius: 50%; background: var(--b-text); transform: translateY(-50%); cursor: grab; touch-action: none; transition: transform .2s; }
.ui-slider-handle:hover, .ui-slider-handle:focus-visible { transform: translateY(-50%) scale(1.2); }
.price_slider_amount { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem; font-size: .8125rem; }
.price_slider_amount .price_label { order: -1; color: var(--b-muted); font-variant-numeric: tabular-nums; }
.b-facet--price .price_slider_amount .button { min-height: 0; padding: .3rem 0; border: 0; border-radius: 0; background: none; color: var(--b-text); font-size: .8125rem; font-weight: 500; letter-spacing: 0; text-transform: none; text-decoration: underline; text-underline-offset: .25em; }
.b-facet--price .price_slider_amount .button:hover { background: none; color: var(--b-text); opacity: .6; }
.price_slider_amount input { display: none; }
.price_slider_amount .clear { display: none; }

/* Filtros activos como fichas */
.b-facet-active { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem; padding: 0 0 1rem; margin-bottom: .25rem; border-bottom: 1px solid var(--b-line); }
.b-facet-active ul { display: contents; margin: 0; padding: 0; list-style: none; }
.b-facet-active li a { display: inline-flex; align-items: center; gap: .4rem; min-height: 30px; padding: 0 .6rem; background: var(--b-surface); font-size: .75rem; color: var(--b-text); text-decoration: none; transition: background-color .2s; }
.b-facet-active li a::after { content: "×"; font-size: .9rem; line-height: 1; color: var(--b-muted); }
.b-facet-active li a:hover { background: var(--b-line); }
.b-facet-active__clear { margin-left: .25rem; font-size: .75rem; color: var(--b-muted); text-underline-offset: .2em; }
.b-facet-active__clear:hover { color: var(--b-text); }

/* En el panel de móvil, mismo contenido con algo más de aire. */
.b-filters .b-facet__head { min-height: 52px; }
.b-filters .b-shop__sidebar-inner { width: auto; }

/* Área de widgets propia (si la usuaria añade widgets). */
.b-widget { padding-block: 1.25rem; border-bottom: 1px solid var(--b-line); }
.b-widget:first-child { padding-top: .5rem; }
.b-widget__title { margin: 0 0 .9rem; font-family: var(--b-font-body); font-size: .8125rem; font-weight: 500; }
.b-widget ul { display: grid; gap: .1rem; margin: 0; padding: 0; list-style: none; }
.b-widget li { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem; font-size: .875rem; }
.b-widget li a { display: inline-flex; align-items: center; min-height: 34px; text-decoration: none; }
.b-widget .count { font-size: .6875rem; color: var(--b-muted); }

.woocommerce-pagination, .b-pagination { margin-top: clamp(2.5rem, 5vw, 4rem); }
.woocommerce-pagination ul.page-numbers, .b-pagination .nav-links { display: flex; flex-wrap: wrap; justify-content: center; gap: .35rem; margin: 0; padding: 0; list-style: none; border: 0; }
.page-numbers { display: inline-grid; place-items: center; min-width: 44px; height: 44px; padding: 0 .75rem; border-radius: 999px; font-size: .875rem; text-decoration: none; transition: background-color .2s, color .2s; }
a.page-numbers:hover { background: var(--b-surface); }
.page-numbers.current { background: var(--b-text); color: var(--b-bg); }
.page-numbers .b-icon { width: 1.05rem; height: 1.05rem; }
.js .b-has-loadmore .woocommerce-pagination { display: none; }

.b-loadmore { display: grid; justify-items: center; gap: 1rem; margin-top: clamp(3rem, 6vw, 5rem); }
.b-loadmore__count { margin: 0; font-size: .8125rem; color: var(--b-muted); }
.b-loadmore__bar { width: 200px; height: 2px; overflow: hidden; background: var(--b-line); }
.b-loadmore__bar span { display: block; height: 100%; background: var(--b-text); transform-origin: left; transform: scaleX(var(--p, 0)); transition: transform .6s var(--ease); }
.no-js .b-loadmore { display: none; }

/* 18. Ficha de producto ---------------------------------------------------------- */
/*
 * Al estilo Nude Project: columna lateral (migas + miniaturas) · fotos en
 * columna · panel de compra centrado y fijo. --b-sticky-top lo calcula el JS
 * con la altura real de la cabecera fija (y la barra de administración).
 */
.b-single { padding-bottom: var(--space-section); }
.b-single div.product { display: grid; grid-template-columns: minmax(0, 1fr); }
.b-single div.product > * { grid-column: 1 / -1; min-width: 0; }
@media (min-width: 1024px) {
	.b-single div.product { grid-template-columns: minmax(0, 57fr) minmax(0, 43fr); }
	.b-single div.product > .images { grid-column: 1; grid-row: 1; }
	.b-single div.product > .summary { grid-column: 2; grid-row: 1; }
	.has-sticky-summary div.product > .summary { position: sticky; top: var(--b-sticky-top, 0px); align-self: start; }
}

/* Galería. */
.b-gallery { position: relative; min-width: 0; }
.b-gallery__viewport { position: relative; }
.b-gallery__track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain; }
.b-gallery__track::-webkit-scrollbar { display: none; }
.b-gallery__item { position: relative; flex: 0 0 100%; margin: 0; aspect-ratio: var(--b-ratio, 2 / 3); overflow: hidden; background: var(--b-surface); scroll-snap-align: start; }
.b-gallery__item a { display: block; height: 100%; cursor: zoom-in; }
.b-gallery__item img { width: 100%; height: 100%; object-fit: cover; }
.b-gallery__counter { position: absolute; left: 50%; bottom: .9rem; margin: 0; padding: .3rem .65rem; border-radius: 999px; background: color-mix(in srgb, var(--b-bg) 92%, transparent); font-size: .6875rem; font-variant-numeric: tabular-nums; transform: translateX(-50%); }
.b-gallery__thumbs { display: none; }
.b-gallery__aside .woocommerce-breadcrumb { margin: 0; font-size: .6875rem; letter-spacing: -.01em; }
.b-gallery__aside .b-crumb, .b-gallery__aside .woocommerce-breadcrumb a { color: var(--b-text); }
.b-gallery__aside .b-crumb:last-child { font-weight: 400; }
@media (max-width: 1023px) {
	.b-gallery__aside { padding: .7rem var(--gutter); }
}
@media (min-width: 1024px) {
	/* Columna con miniaturas laterales (por defecto). */
	.b-gallery--rail { display: grid; grid-template-columns: 24% minmax(0, 1fr); align-items: start; }
	.b-gallery--rail .b-gallery__aside { position: sticky; top: var(--b-sticky-top, 0px); display: flex; flex-direction: column; justify-content: space-between; height: calc(100vh - var(--b-sticky-top, 0px)); padding: .8rem 1rem calc(2rem + var(--b-announce-h, 0px)) var(--gutter); }
	.b-gallery--rail .b-gallery__track { display: block; overflow: visible; scroll-snap-type: none; }
	.b-gallery--rail .b-gallery__counter { display: none; }
	.b-gallery--rail .b-gallery__thumbs { position: relative; display: grid; gap: 6px; width: 30px; margin-left: auto; margin-right: 12px; }
	.b-gallery--rail .b-gallery__thumbs::after { content: ""; position: absolute; top: 0; bottom: 0; right: -12px; width: 1px; background: var(--b-line); }
	.b-gallery--rail .b-gallery__thumb { position: relative; padding: 0; border: 0; background: var(--b-surface); opacity: .5; transition: opacity .2s; }
	.b-gallery--rail .b-gallery__thumb img { display: block; width: 100%; aspect-ratio: 2 / 3; object-fit: cover; }
	.b-gallery--rail .b-gallery__thumb::after { content: ""; position: absolute; z-index: 1; top: 0; bottom: 0; right: -12px; width: 1px; background: var(--b-text); opacity: 0; transition: opacity .2s; }
	.b-gallery--rail .b-gallery__thumb:hover { opacity: .8; }
	.b-gallery--rail .b-gallery__thumb[aria-current="true"] { opacity: 1; }
	.b-gallery--rail .b-gallery__thumb[aria-current="true"]::after { opacity: 1; }

	/* Otras disposiciones del panel. */
	.b-gallery--grid .b-gallery__track, .b-gallery--stacked .b-gallery__track { display: grid; grid-template-columns: 1fr 1fr; gap: 2px; overflow: visible; scroll-snap-type: none; }
	.b-gallery--stacked .b-gallery__track { grid-template-columns: 1fr; }
	.b-gallery--grid[data-count="1"] .b-gallery__track { grid-template-columns: minmax(0, 1fr); }
	.b-gallery--grid .b-gallery__counter, .b-gallery--stacked .b-gallery__counter { display: none; }
	.b-gallery--thumbs { display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 2px; align-items: start; }
	.b-gallery--thumbs .b-gallery__viewport { grid-column: 2; }
	.b-gallery--thumbs .b-gallery__thumbs { grid-column: 1; grid-row: 1; display: grid; gap: 2px; position: sticky; top: var(--b-sticky-top, 0px); }
	.b-gallery--thumbs .b-gallery__thumb { padding: 0; border: 0; background: var(--b-surface); opacity: .5; }
	.b-gallery--thumbs .b-gallery__thumb img { aspect-ratio: 2 / 3; object-fit: cover; }
	.b-gallery--thumbs .b-gallery__thumb[aria-current="true"] { opacity: 1; }
}

/* Panel de compra. */
.b-single div.product > .summary { padding: 1.25rem var(--gutter) 2.5rem; }
@media (min-width: 1024px) {
	.b-single div.product > .summary { display: flex; flex-direction: column; justify-content: center; min-height: calc(100vh - var(--b-sticky-top, 0px)); padding: 2.5rem clamp(2rem, 5.5vw, 5.5rem); }
	.b-single div.product > .summary > * { width: 100%; max-width: 450px; margin-inline: auto; }
	.b-single div.product > .summary > .woocommerce-breadcrumb { margin-bottom: 1.5rem; }
}
.summary .b-badges { position: static; display: flex; flex-direction: row; gap: .75rem; margin-bottom: .3rem; pointer-events: auto; }
.summary .b-badge { padding: 0; border-radius: 0; background: none; color: var(--b-text); font-size: .6875rem; font-weight: 400; letter-spacing: -.01em; text-transform: none; }
.summary .b-badge--sale { background: none; color: var(--b-text); font-weight: 500; }
.b-summary__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.summary .product_title { margin: 0; font-size: calc(clamp(1.375rem, 1.15rem + .55vw, 1.75rem) * var(--b-h-scale, 1)); font-weight: 500; letter-spacing: -.04em; line-height: 1.1; text-transform: none; }
.b-summary__head .b-wish { position: static; flex: 0 0 auto; width: 44px; height: 44px; margin: -.6rem -.75rem 0 0; }
.b-summary__head .b-wish .b-icon { width: 1.15rem; height: 1.15rem; }
.summary > .price, .b-qv .price { display: flex; margin: .2rem 0 0; font-size: .9375rem; }
.summary .price ins { font-weight: 500; }
.summary .woocommerce-product-rating { display: flex; align-items: center; gap: .75rem; margin: .5rem 0 0; font-size: .75rem; }
.summary .woocommerce-review-link { color: var(--b-muted); }
.b-summary__tools { display: flex; margin: 1.75rem 0 .25rem; }
.b-summary__tools .b-link { gap: 0; font-size: .75rem; letter-spacing: -.01em; }
.b-summary__tools .b-icon { display: none; }
.summary > .price + form.cart { margin-top: 1.75rem; }

/* Opciones: colores en círculos con su nombre; tallas como texto. */
table.variations, table.variations tbody, table.variations tr, table.variations th, table.variations td { display: block; }
table.variations { margin: 0 0 1rem; }
table.variations tr { margin-bottom: .6rem; }
table.variations th.label { padding: 0 0 .5rem; text-align: left; }
table.variations th.label label { font-size: .75rem; font-weight: 400; letter-spacing: -.01em; color: var(--b-muted); }
.b-attr-value { margin-left: .3rem; color: var(--b-text); }
.b-single table.variations tr:not(:has(.b-swatches--color)) th.label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
table.variations td.value { padding: 0; }
table.variations select { max-width: 320px; }
.reset_variations { display: inline-block; margin-top: .25rem; font-size: .75rem; color: var(--b-muted); }
.b-has-swatches > select { position: absolute !important; width: 1px !important; height: 1px !important; opacity: 0; pointer-events: none; }
.b-swatches { display: flex; flex-wrap: wrap; gap: 0 1.1rem; margin: 0 0 0 -.65rem; padding: 0; border: 0; }
.b-swatch { position: relative; }
.b-swatch input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.b-swatch > span { display: flex; align-items: center; justify-content: center; gap: .5rem; min-width: 44px; min-height: 44px; padding: 0 .65rem; font-size: .9375rem; text-decoration-thickness: 1px; text-underline-offset: .45em; transition: color .15s; }
.b-swatch:hover > span { text-decoration: underline; text-decoration-color: var(--b-line-strong); }
.b-swatch input:checked + span { text-decoration: underline; text-decoration-color: currentColor; }
.b-swatch input:focus-visible + span { outline: var(--b-focus-w) solid var(--b-focus); outline-offset: -3px; }
.b-swatch input:disabled { cursor: not-allowed; }
.b-swatch input:disabled + span { color: var(--b-muted); text-decoration: line-through; opacity: .55; }
.b-swatches--color { gap: .55rem; margin-left: 0; }
.b-swatches--color .b-swatch > span { min-width: 0; min-height: 0; padding: 0; text-decoration: none !important; }
.b-swatches--color .b-swatch > span:has(.b-swatch__dot) .b-swatch__text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.b-swatches--color .b-swatch > span:not(:has(.b-swatch__dot)) { min-height: 34px; padding: 0 .8rem; border: 1px solid var(--b-line); }
.b-swatches--color .b-swatch input:checked + span:not(:has(.b-swatch__dot)) { border-color: var(--b-text); }
.b-swatch__dot { width: 22px; height: 22px; border-radius: 50%; background: var(--dot); box-shadow: inset 0 0 0 1px rgb(0 0 0 / .15); outline: 1px solid transparent; outline-offset: 3px; transition: outline-color .15s; }
.b-swatch:hover .b-swatch__dot { outline-color: var(--b-line-strong); }
.b-swatch input:checked + span .b-swatch__dot { outline-color: var(--b-text); }
.single_variation_wrap .woocommerce-variation { margin-bottom: .5rem; }
.woocommerce-variation-price .price { font-size: .9375rem; }
.woocommerce-variation-availability p { margin: .25rem 0 0; font-size: .75rem; }
.b-pick-msg { width: 100%; margin: 0 0 .5rem; font-size: .75rem; color: var(--b-error); }
tr.is-required th.label { position: static !important; width: auto !important; height: auto !important; clip-path: none !important; }
tr.is-required th.label label { color: var(--b-error); }
tr.is-required .b-swatch > span { color: var(--b-error); }
tr.is-required .b-swatches { animation: b-nudge .4s var(--ease); }
@keyframes b-nudge { 25% { transform: translateX(-4px); } 75% { transform: translateX(4px); } }
@media (prefers-reduced-motion: reduce) { tr.is-required .b-swatches { animation: none; } }

/* Compra: cantidad en bloque gris + botón negro con icono de bolsa. */
form.cart { display: flex; flex-wrap: wrap; gap: .375rem; margin: 0 0 1rem; }
form.cart.variations_form { display: block; }
.woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; gap: .375rem; }
form.cart .single_add_to_cart_button { flex: 1 1 100%; min-height: 52px; }

:is(.b-single, .b-qv) form.cart .quantity { flex: 0 0 auto; height: 52px; border: 0; border-radius: 0; background: var(--b-surface); transition: box-shadow .2s var(--ease); }
:is(.b-single, .b-qv) form.cart .quantity:focus-within { box-shadow: inset 0 0 0 1px var(--b-text); }
:is(.b-single, .b-qv) form.cart .quantity .qty { width: 1.75rem; font-size: .875rem; font-weight: 500; -moz-appearance: textfield; }
:is(.b-single, .b-qv) form.cart .quantity .qty:focus-visible { outline: 0; }
:is(.b-single, .b-qv) form.cart .quantity .qty::-webkit-outer-spin-button,
:is(.b-single, .b-qv) form.cart .quantity .qty::-webkit-inner-spin-button { margin: 0; -webkit-appearance: none; }
:is(.b-single, .b-qv) form.cart .b-qty__btn { width: 40px; border-radius: 0; color: var(--b-muted); transition: color .2s var(--ease); }
:is(.b-single, .b-qv) form.cart .b-qty__btn:hover:not(:disabled) { background: none; color: var(--b-text); }
:is(.b-single, .b-qv) form.cart .b-qty__btn:active .b-icon { transform: scale(.8); }
:is(.b-single, .b-qv) form.cart .b-qty__btn .b-icon { width: .875rem; height: .875rem; stroke-width: 1.5; transition: transform .15s var(--ease); }
:is(.b-single, .b-qv) form.cart .quantity + .single_add_to_cart_button { flex: 1 1 0; min-width: 0; }

:is(.b-single, .b-qv) form.cart .single_add_to_cart_button,
.b-stickyatc .b-btn {
	--b-bag: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.4' stroke-linejoin='round'%3E%3Cpath d='M5 8h14l-1 12.5H6L5 8Z'/%3E%3Cpath d='M9 10V6.5a3 3 0 0 1 6 0V10'/%3E%3C/svg%3E");
	justify-content: space-between;
	gap: 1rem;
	padding: 0 1.125rem 0 1.25rem;
	border: 0;
	border-radius: 0;
	background: var(--b-accent);
	color: var(--b-accent-text);
	font-size: .875rem;
	font-weight: 500;
	letter-spacing: -.01em;
	text-transform: none;
	overflow: hidden;
	isolation: isolate;
}
/* Icono de bolsa a la derecha (a la izquierda queda el texto). */
:is(.b-single, .b-qv) form.cart .single_add_to_cart_button::before,
.b-stickyatc .b-btn::before {
	content: "";
	order: 2;
	flex: 0 0 auto;
	width: 1.125rem;
	height: 1.125rem;
	background: currentColor;
	-webkit-mask: var(--b-bag) center / contain no-repeat;
	mask: var(--b-bag) center / contain no-repeat;
	transition: transform .35s var(--ease);
}
/* Hover: barrido gris oscuro desde la izquierda y la bolsa se mueve un poco. */
:is(.b-single, .b-qv) form.cart .single_add_to_cart_button:hover,
.b-stickyatc .b-btn:hover { background: var(--b-accent); color: var(--b-accent-text); box-shadow: inset 0 0 0 0 transparent; }
@media (hover: hover) {
	:is(.b-single, .b-qv) form.cart .single_add_to_cart_button,
	.b-stickyatc .b-btn { background-image: linear-gradient(rgb(255 255 255 / .12), rgb(255 255 255 / .12)); background-size: 0 100%; background-repeat: no-repeat; transition: background-size .45s var(--ease), opacity .25s, transform .25s var(--ease); }
	:is(.b-single, .b-qv) form.cart .single_add_to_cart_button:hover:not(.disabled, :disabled),
	.b-stickyatc .b-btn:hover { background-size: 100% 100%; }
	:is(.b-single, .b-qv) form.cart .single_add_to_cart_button:hover:not(.disabled, :disabled)::before,
	.b-stickyatc .b-btn:hover::before { transform: translateY(-2px) rotate(-6deg); }
}
:is(.b-single, .b-qv) form.cart .single_add_to_cart_button:active,
.b-stickyatc .b-btn:active { transform: scale(.99); }
:is(.b-single, .b-qv) form.cart .single_add_to_cart_button.loading::before { opacity: 0; }
/* Añadido: la bolsa pasa a check un momento. */
:is(.b-single, .b-qv) form.cart .single_add_to_cart_button.is-added,
.b-stickyatc .b-btn.is-added { --b-bag: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E"); }
@media (prefers-reduced-motion: reduce) {
	:is(.b-single, .b-qv) form.cart .single_add_to_cart_button::before, .b-stickyatc .b-btn::before { transition: none; transform: none !important; }
}
form.cart .stock, .summary .stock { width: 100%; margin: 0 0 .6rem; font-size: .75rem; }
.stock.in-stock { color: var(--b-success); }
.stock.out-of-stock { color: var(--b-error); }

.quantity { display: inline-flex; align-items: center; height: 50px; border: 1px solid var(--b-field-border); border-radius: var(--b-btn-radius); }
.quantity .qty { width: 3rem; min-height: 0; height: 100%; padding: 0; border: 0; background: none; text-align: center; font-variant-numeric: tabular-nums; }
.quantity .qty:focus-visible { outline-offset: -4px; }
.b-qty__btn { display: grid; place-items: center; width: 44px; height: 100%; padding: 0; border: 0; border-radius: inherit; background: none; color: inherit; transition: background-color .15s; }
.b-qty__btn:hover:not(:disabled) { background: var(--b-surface); }
.b-qty__btn:disabled { opacity: .3; cursor: default; }
.b-qty__btn .b-icon { width: 1rem; height: 1rem; }
.quantity:has(input[type="hidden"]) { display: none; }

/* Ventajas en cajitas grises. */
.b-trust { display: flex; flex-wrap: wrap; gap: .35rem; margin: 0 0 2rem; padding: 0; list-style: none; }
.b-trust li { display: inline-flex; align-items: center; padding: .45rem .7rem; border-radius: 2px; background: var(--b-surface); font-size: .6875rem; letter-spacing: -.01em; color: var(--b-text); }
.b-trust .b-icon { display: none; }
.product_meta { display: grid; gap: .15rem; margin: 1rem 0 0; font-size: .75rem; color: var(--b-muted); }
.product_meta a { color: var(--b-text); }

/* Información: filas de texto con un + a la derecha, sin líneas. */
.b-accordions { border: 0; }
.b-acc { border: 0; }
.b-acc::details-content { block-size: 0; overflow: hidden; transition: block-size .45s var(--ease-out), content-visibility .45s allow-discrete; }
.b-acc[open]::details-content { block-size: auto; }
.b-acc__head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 40px; font-size: .9375rem; letter-spacing: -.02em; list-style: none; cursor: pointer; }
.b-acc__head::-webkit-details-marker { display: none; }
.b-acc__head:hover { opacity: .6; }
.b-acc__icon { position: relative; width: 11px; height: 11px; }
.b-acc__icon::before, .b-acc__icon::after { content: ""; position: absolute; top: 50%; left: 0; width: 100%; height: 1px; background: currentColor; transition: transform .3s var(--ease); }
.b-acc__icon::after { transform: rotate(90deg); }
.b-acc[open] .b-acc__icon::after { transform: rotate(0); }
.b-acc__body { padding: .25rem 0 1.25rem; font-size: .8125rem; line-height: 1.6; color: var(--b-muted); }
.b-acc__body > *:last-child { margin-bottom: 0; }
.b-acc__body ul { padding-left: 1rem; }
.b-acc__lead { color: var(--b-text); }
.b-acc__body th, .b-acc__body td { padding: .45rem 0; border-bottom: 1px solid var(--b-line); text-align: left; vertical-align: top; font-size: .8125rem; }
.b-acc__body th { width: 40%; color: var(--b-text); font-weight: 500; }

.woocommerce-tabs.wc-tabs-wrapper { margin-top: 3rem; }
.woocommerce-tabs ul.tabs { display: flex; flex-wrap: wrap; gap: 2rem; margin: 0 0 2rem; padding: 0; list-style: none; border-bottom: 1px solid var(--b-line); }
.woocommerce-tabs ul.tabs li a { display: block; padding: 1rem 0; font-size: .9375rem; text-decoration: none; color: var(--b-muted); }
.woocommerce-tabs ul.tabs li.active a { color: var(--b-text); box-shadow: inset 0 -1px 0 var(--b-text); }
.woocommerce-Tabs-panel { max-width: 760px; }

/* Carruseles bajo la ficha: título pequeño con pestañas, como Nude. */
.b-single .b-rail { position: relative; z-index: 3; padding-top: clamp(2.5rem, 5vw, 4rem); padding-bottom: 0; background: var(--b-bg); }
.b-single .b-rail .b-shead { margin-bottom: .9rem; padding-inline: var(--gutter); }
.b-single .b-rail .b-shead__title { font-size: calc(clamp(1.25rem, 1.05rem + .5vw, 1.625rem) * var(--b-h-scale, 1)); letter-spacing: -.04em; }
.b-railtabs { display: flex; flex-wrap: wrap; align-items: baseline; gap: .25rem 1.25rem; }
.b-railtabs__tab { padding: 0; border: 0; background: none; color: var(--b-muted); font-family: var(--b-font-heading); font-size: calc(clamp(1.25rem, 1.05rem + .5vw, 1.625rem) * var(--b-h-scale, 1)); font-weight: var(--b-h-weight, 500); letter-spacing: -.04em; line-height: 1.2; transition: color .2s; }
.b-railtabs__tab:hover, .b-railtabs__tab[aria-selected="true"] { color: var(--b-text); }
.b-railtabs__tab[aria-selected="true"]::after { content: "•"; margin-left: .1em; font-size: .5em; vertical-align: super; }
[data-recent-panel][aria-busy="true"] { min-height: 300px; }

.star-rating { position: relative; display: inline-block; width: 5.4em; height: 1.1em; overflow: hidden; font-size: .8125rem; line-height: 1.1; letter-spacing: .12em; }
.star-rating::before { content: "★★★★★"; position: absolute; inset: 0; color: var(--b-line-strong); }
.star-rating span { position: absolute; inset: 0 auto 0 0; overflow: hidden; padding-top: 1.5em; }
.star-rating span::before { content: "★★★★★"; position: absolute; top: 0; left: 0; color: var(--b-text); }
p.stars { margin: .5rem 0 1rem; }
p.stars span { display: inline-flex; gap: .25rem; }
p.stars a { position: relative; display: inline-block; width: 1.75rem; height: 1.75rem; overflow: hidden; text-indent: -999em; }
p.stars a::before { content: "☆"; position: absolute; inset: 0; display: grid; place-items: center; text-indent: 0; font-size: 1.4rem; }
p.stars:hover a::before, p.stars.selected a.active::before, p.stars.selected a:not(.active)::before { content: "★"; }
p.stars:hover a:hover ~ a::before, p.stars.selected a.active ~ a::before { content: "☆"; }
.woocommerce-Reviews-title { font-size: 1.25rem; letter-spacing: var(--b-h-tracking); }
.commentlist { margin: 0 0 2rem; padding: 0; list-style: none; }
.commentlist li { padding: 1.25rem 0; border-bottom: 1px solid var(--b-line); }
.commentlist .comment_container { display: grid; grid-template-columns: 44px 1fr; gap: 1rem; }
.commentlist img.avatar { border-radius: 50%; }
.commentlist .meta { font-size: .8125rem; }
#review_form .comment-reply-title { display: block; margin: 1rem 0; font-size: 1.125rem; font-weight: 500; }
.comment-form p { margin: 0 0 1rem; }
.comment-form label { display: block; margin-bottom: .4rem; font-weight: 500; }
.comment-form-cookies-consent { display: flex; gap: .6rem; align-items: flex-start; }
.comment-form-cookies-consent label { font-weight: 400; color: var(--b-muted); }

.b-stickyatc {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: var(--z-float);
	padding-block: .75rem calc(.75rem + env(safe-area-inset-bottom));
	background: color-mix(in srgb, var(--b-bg) 94%, transparent);
	-webkit-backdrop-filter: blur(16px);
	backdrop-filter: blur(16px);
	box-shadow: 0 -1px 0 var(--b-line);
	transform: translateY(110%);
	transition: transform .5s var(--ease-drawer);
}
.b-stickyatc.is-visible { transform: none; }
.b-stickyatc__inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.b-stickyatc__product { display: flex; align-items: center; gap: .9rem; min-width: 0; }
.b-stickyatc__product img { width: 44px; height: 56px; object-fit: cover; border-radius: calc(var(--b-radius-media) / 2); }
.b-stickyatc__name { margin: 0; font-size: .875rem; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.b-stickyatc__price { margin: 0; font-size: .8125rem; }
.b-stickyatc .b-btn { min-height: 48px; min-width: 15rem; }
@media (max-width: 599px) {
	.b-stickyatc__product img, .b-stickyatc__name { display: none; }
	.b-stickyatc .b-btn { flex: 1; }
}

.b-sizeguide table { width: 100%; font-size: .875rem; font-variant-numeric: tabular-nums; }
.b-sizeguide th, .b-sizeguide td { padding: .75rem .5rem; border-bottom: 1px solid var(--b-line); text-align: left; }
.b-sizeguide thead th { font-size: .6875rem; letter-spacing: .12em; text-transform: uppercase; color: var(--b-muted); }
.b-sizeguide p { font-size: .875rem; color: var(--b-muted); margin-top: 1.25rem; }
.b-rail { padding-bottom: 0; }


/* 19. Bolsa lateral -------------------------------------------------------------- */
.b-cartdrawer { display: flex; flex-direction: column; flex: 1; min-height: 0; }
.b-cartdrawer__scroll { flex: 1; overflow-y: auto; padding: 0 1.5rem 1.5rem; overscroll-behavior: contain; }
.b-cartdrawer__empty { display: grid; justify-items: center; align-content: center; gap: .5rem; flex: 1; padding: 2rem 1.5rem; text-align: center; }
.b-cartdrawer__empty p:not(.b-h3) { max-width: 30ch; color: var(--b-muted); margin-bottom: 1.5rem; }
.b-cartdrawer__empty .b-h3 { margin: 0; font-family: var(--b-font-heading); font-size: 1.5rem; font-weight: var(--b-h-weight); letter-spacing: var(--b-h-tracking, -.02em); }
.b-cartdrawer__emptyicon { display: grid; place-items: center; width: 72px; height: 72px; margin-bottom: 1rem; border: 1px solid var(--b-line-strong); border-radius: 50%; }
.b-cartdrawer__emptyicon .b-icon { width: 1.75rem; height: 1.75rem; }

.b-freeship { margin: 1.25rem 0 .25rem; padding: 1rem 1.1rem; border-radius: var(--b-radius); background: var(--b-surface); font-size: .8125rem; }
.b-freeship p { display: flex; align-items: center; gap: .5rem; margin: 0 0 .75rem; }
.b-freeship .b-icon { width: 1rem; height: 1rem; }
.b-freeship__bar { height: 3px; overflow: hidden; border-radius: 3px; background: var(--b-line-strong); }
.b-freeship__bar span { display: block; height: 100%; background: var(--b-text); transform-origin: left; transform: scaleX(var(--p, 0)); transition: transform 1s var(--ease-out) .25s; }
.b-dialog:not(.is-open) .b-freeship__bar span { transform: scaleX(0); transition: none; }

.b-cartdrawer__items { margin: 0; padding: 0; list-style: none; }
.b-citem { display: grid; grid-template-columns: 88px minmax(0, 1fr); gap: 1.1rem; padding-block: 1.25rem; border-bottom: 1px solid var(--b-line); transition: opacity .3s var(--ease), transform .3s var(--ease); }
.b-dialog.is-open .b-citem { animation: b-item-in .5s var(--ease-out) both; animation-delay: calc(.12s + var(--i, 0) * .06s); }
.b-citem.is-new { animation: b-item-in .5s var(--ease-out) both, b-highlight 1.6s var(--ease) .3s; }
.b-citem.is-removing { opacity: 0; transform: translateX(24px); }
.b-citem__img { aspect-ratio: 3 / 4; overflow: hidden; border-radius: calc(var(--b-radius-media) / 2); background: var(--b-surface); }
.b-citem__img img { width: 100%; height: 100%; object-fit: cover; }
.b-citem__info { display: flex; flex-direction: column; min-width: 0; }
.b-citem__name { margin: 0 0 .25rem; font-size: .9375rem; font-weight: 500; line-height: 1.3; }
.b-citem__name a { text-decoration: none; }
.b-citem__meta dl { display: flex; flex-wrap: wrap; gap: 0 .35rem; margin: 0; font-size: .8125rem; color: var(--b-muted); }
.b-citem__meta dt { font-weight: 400; }
.b-citem__meta dd { margin: 0 .5rem 0 0; }
.b-citem__meta dd p { margin: 0; }
.b-citem__row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: auto; padding-top: .75rem; }
.b-citem__price { font-size: .9375rem; font-weight: 500; font-variant-numeric: tabular-nums; }
.b-citem__remove { align-self: flex-start; margin-top: .6rem; font-size: .75rem; font-weight: 400; color: var(--b-muted); }
.b-qty--sm { display: inline-flex; align-items: center; height: 38px; border: 1px solid var(--b-field-border); border-radius: 999px; }
.b-qty--sm .b-qty__btn { width: 36px; }
.b-qty__value { min-width: 1.75rem; text-align: center; font-size: .875rem; font-variant-numeric: tabular-nums; }

.b-xsell { margin-top: 1.75rem; }
.b-xsell ul { display: grid; gap: .75rem; margin: 0; padding: 0; list-style: none; }
.b-xsell__item { display: grid; grid-template-columns: 56px 1fr auto; align-items: center; gap: .9rem; padding: .5rem; border: 1px solid var(--b-line); border-radius: var(--b-radius); }
.b-xsell__img img { width: 56px; height: 70px; object-fit: cover; border-radius: calc(var(--b-radius-media) / 2); }
.b-xsell__name { display: block; font-size: .8125rem; font-weight: 500; text-decoration: none; }
.b-xsell .price { font-size: .75rem; }
.b-xsell__add { width: 40px; height: 40px; border-color: var(--b-line-strong); }
.b-xsell__add:hover { background: var(--b-text); color: var(--b-bg); }
.b-xsell .added_to_cart { display: none; }

.b-cartdrawer__foot { padding: 1.25rem 1.5rem calc(1.5rem + env(safe-area-inset-bottom)); border-top: 1px solid var(--b-line); background: var(--b-bg); }
.b-dialog.is-open .b-cartdrawer__foot { animation: b-rise .5s var(--ease-out) .2s both; }
.b-cartdrawer__total { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: .35rem; font-size: 1.0625rem; font-weight: 500; }
.b-cartdrawer__note { margin: 0 0 1.25rem; font-size: .75rem; color: var(--b-muted); }
.b-cartdrawer__actions { display: grid; justify-items: center; gap: .9rem; }
.b-cartdrawer__view { font-size: .75rem; letter-spacing: var(--b-nav-tracking); text-transform: var(--b-nav-case); }

/* 20. Vista rápida ------------------------------------------------------------------ */
.b-quickview__content:empty { min-height: 60vh; }
.b-quickview__content:empty::after { content: ""; position: absolute; inset: 0; margin: auto; width: 26px; height: 26px; border: 1.5px solid var(--b-text); border-right-color: transparent; border-radius: 50%; animation: b-spin .7s linear infinite; }
.b-qv { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.b-qv__media { position: relative; background: var(--b-surface); }
.b-qv__track { height: 100%; gap: 0; }
.b-qv__track .b-gallery__item { border-radius: 0; aspect-ratio: auto; min-height: 100%; }
.b-qv__summary { display: flex; flex-direction: column; padding: clamp(2rem, 4vw, 3.5rem); }
.b-qv__title { margin: 0 0 .75rem; font-size: clamp(1.75rem, 1.2rem + 1.4vw, 2.5rem); }
.b-qv__excerpt { margin-bottom: 1.5rem; font-size: .9375rem; color: var(--b-muted); }
.b-qv__more { align-self: flex-start; margin-top: auto; }
.b-qv form.cart { margin-bottom: 2rem; }
@media (max-width: 767px) {
	.b-qv { grid-template-columns: 1fr; }
	.b-qv__media, .b-qv__track .b-gallery__item { aspect-ratio: 4 / 3.6; }
	.b-qv__summary { padding: 1.5rem var(--gutter) 2rem; }
}

/* 21. Avisos, carrito, checkout y cuenta ------------------------------------------ */
.woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-noreviews,
.wc-block-components-notice-banner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .75rem 1.5rem;
	margin: 0 0 1.5rem;
	padding: 1rem 1.25rem;
	border: 1px solid var(--b-line);
	border-left: 3px solid var(--b-text);
	border-radius: var(--b-radius);
	background: var(--b-surface);
	font-size: .9375rem;
	list-style: none;
}
.woocommerce-error, .wc-block-components-notice-banner.is-error { border-left-color: var(--b-error); }
.woocommerce-message, .wc-block-components-notice-banner.is-success { border-left-color: var(--b-success); }
.woocommerce-error li { width: 100%; }
.woocommerce-message .button, .woocommerce-info .button { order: 2; margin-left: auto; min-height: 40px; padding: 0 1.1rem; }
.wc-block-components-notice-banner > svg { display: none; }
.b-inline-error { margin: .5rem 0 0; width: 100%; font-size: .8125rem; color: var(--b-error); }

.shop_table { width: 100%; margin-bottom: 2rem; font-size: .9375rem; }
.shop_table th, .shop_table td { padding: 1rem .5rem; border-bottom: 1px solid var(--b-line); text-align: left; vertical-align: middle; }
.shop_table thead th { font-size: .6875rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--b-muted); }
.shop_table img { width: 72px; border-radius: calc(var(--b-radius-media) / 2); }
.shop_table .product-remove a { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; text-decoration: none; font-size: 1.25rem; }
.shop_table .product-remove a:hover { background: var(--b-surface); }
.shop_table .actions { text-align: right; }
.shop_table .coupon { display: inline-flex; gap: .5rem; float: left; }
.shop_table .coupon input { width: 200px; min-height: 48px; }
.cart-collaterals { display: grid; justify-content: end; }
.cart_totals { width: min(460px, 100%); }
.cart_totals h2 { font-size: var(--fs-h4); }
.wc-proceed-to-checkout .button { width: 100%; }
@media (max-width: 767px) {
	.shop_table_responsive thead { display: none; }
	.shop_table_responsive tr { display: block; padding: 1rem 0; border-bottom: 1px solid var(--b-line); }
	.shop_table_responsive td { display: flex; justify-content: space-between; gap: 1rem; padding: .4rem 0; border: 0; text-align: right; }
	.shop_table_responsive td::before { content: attr(data-title); font-weight: 500; text-align: left; }
	.shop_table_responsive td.product-thumbnail::before, .shop_table_responsive td.actions::before, .shop_table_responsive td.product-remove::before { display: none; }
}

.woocommerce form .form-row { display: grid; gap: .4rem; margin: 0 0 1.1rem; }
.woocommerce form .form-row label { font-weight: 500; }
.woocommerce form .form-row .required { color: var(--b-error); text-decoration: none; }
.woocommerce form .form-row.woocommerce-invalid input { border-color: var(--b-error); }
.woocommerce .col2-set { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(1.5rem, 4vw, 4rem); }
@media (max-width: 767px) { .woocommerce .col2-set { grid-template-columns: 1fr; } }
.woocommerce-form-login, .woocommerce-form-register, .woocommerce-ResetPassword { padding: clamp(1.5rem, 3vw, 2.5rem); border: 1px solid var(--b-line); border-radius: calc(var(--b-radius) * 3); }
.woocommerce-form-login__rememberme { display: inline-flex; gap: .5rem; align-items: center; margin-right: 1rem; }
.lost_password a { font-size: .875rem; color: var(--b-muted); }

.woocommerce-account .entry-content > .woocommerce { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: clamp(2rem, 5vw, 5rem); align-items: start; }
.woocommerce-account .entry-content > .woocommerce > .woocommerce-notices-wrapper { grid-column: 1 / -1; }
.woocommerce-MyAccount-navigation ul { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--b-line); }
.woocommerce-MyAccount-navigation a { display: flex; align-items: center; min-height: 52px; border-bottom: 1px solid var(--b-line); font-size: .9375rem; text-decoration: none; color: var(--b-muted); transition: color .2s; }
.woocommerce-MyAccount-navigation a:hover { color: var(--b-text); }
.woocommerce-MyAccount-navigation .is-active a { color: var(--b-text); font-weight: 600; }
@media (max-width: 899px) {
	.woocommerce-account .entry-content > .woocommerce { grid-template-columns: 1fr; }
	.woocommerce-MyAccount-navigation ul { display: flex; overflow-x: auto; gap: 1.5rem; border: 0; border-bottom: 1px solid var(--b-line); }
	.woocommerce-MyAccount-navigation a { border: 0; white-space: nowrap; }
}
.woocommerce-Addresses .woocommerce-Address { padding: 1.5rem; border: 1px solid var(--b-line); border-radius: var(--b-radius); }

#customer_details h3, #order_review_heading { font-size: var(--fs-h4); margin-top: 1rem; }
#payment { padding: 1.5rem; border-radius: calc(var(--b-radius) * 2); background: var(--b-surface); }
#payment ul.payment_methods { margin: 0 0 1.5rem; padding: 0; list-style: none; }
#payment ul.payment_methods li { padding: .75rem 0; border-bottom: 1px solid var(--b-line); }
#payment .payment_box { margin-top: .75rem; padding: 1rem; border-radius: var(--b-radius); background: var(--b-bg); font-size: .875rem; }
#place_order { width: 100%; min-height: 56px; }

.wc-block-cart, .wc-block-checkout, .wp-block-woocommerce-cart, .wp-block-woocommerce-checkout { font-family: var(--b-font-body); }
.wc-block-components-button:not(.is-link),
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button {
	min-height: 56px !important;
	border-radius: var(--b-btn-radius) !important;
	background: var(--b-accent) !important;
	color: var(--b-accent-text) !important;
	font-size: .8125rem !important;
	font-weight: 500 !important;
	letter-spacing: var(--b-btn-tracking) !important;
	text-transform: var(--b-btn-case) !important;
}
.wc-block-components-button:not(.is-link):hover { opacity: .88; }
.wc-block-components-text-input input,
.wc-block-components-combobox .wc-block-components-combobox-control input,
.wc-blocks-components-select .wc-blocks-components-select__select,
.wc-block-components-textarea { border-radius: var(--b-radius) !important; }
.wc-block-components-title.wc-block-components-title, .wc-block-cart__totals-title { font-family: var(--b-font-heading); letter-spacing: var(--b-h-tracking, -.02em); text-transform: none; }
.wc-block-components-product-name { font-weight: 500; text-decoration: none; }
.b-checkout-focus .b-pagehead { display: none; }
.b-checkout-focus .b-main { padding-top: clamp(1.5rem, 4vw, 3rem); }

/* 22. Páginas, blog y contenido ---------------------------------------------------- */
.b-pagehead { padding-block: clamp(3rem, 9vw, 8rem) clamp(2rem, 4vw, 3.5rem); }
.b-pagehead__title { max-width: 18ch; margin: 0; font-size: var(--fs-h1); }
.b-pagehead__desc { max-width: 60ch; margin-top: 1.5rem; font-size: var(--fs-lg); color: var(--b-muted); }
.b-pagehead--compact { padding-block: clamp(2rem, 5vw, 4rem) clamp(1.5rem, 3vw, 2.5rem); }
.b-pagehead--compact .b-pagehead__title { font-size: var(--fs-h2); }
.b-page__cover { margin-bottom: clamp(2.5rem, 5vw, 4.5rem); }
.b-page__cover img { width: 100%; aspect-ratio: 21 / 9; object-fit: cover; border-radius: var(--b-radius-media); }

.entry-content { font-size: var(--fs-lg); line-height: 1.7; }
.entry-content > * { margin-block: 0 1.25em; }
.entry-content > h2, .entry-content > h3, .entry-content > h4 { margin-top: 1.75em; }
.entry-content h2 { font-size: var(--fs-h3); }
.entry-content h3 { font-size: var(--fs-h4); }
.entry-content a:not([class]) { text-decoration: underline; }
.entry-content ul, .entry-content ol { padding-left: 1.25em; }
.entry-content li { margin-bottom: .4em; }
.entry-content blockquote, .wp-block-quote { margin-block: 2em; padding: 0 0 0 1.5em; border-left: 1px solid var(--b-text); font-family: var(--b-font-heading); font-size: calc(var(--fs-h3) * .85); letter-spacing: var(--b-h-tracking, -.02em); line-height: 1.25; }
.entry-content blockquote cite { display: block; margin-top: 1rem; font-family: var(--b-font-body); font-size: .8125rem; letter-spacing: 0; color: var(--b-muted); }
.entry-content figure { margin-inline: 0; }
.entry-content img { border-radius: var(--b-radius-media); }
.entry-content figcaption, .wp-element-caption { margin-top: .75rem; font-size: .8125rem; color: var(--b-muted); }
.entry-content th, .entry-content td { padding: .75rem; border-bottom: 1px solid var(--b-line); text-align: left; }
.entry-content code { padding: .15em .35em; border-radius: 4px; background: var(--b-surface); font-size: .875em; }
.entry-content .has-large-font-size { font-size: var(--fs-h4); line-height: 1.35; letter-spacing: -.015em; }
.b-content--wide.entry-content { font-size: 1rem; line-height: 1.6; }
.b-content--wide.entry-content > * { margin-bottom: 0; }

.b-archive { padding-bottom: var(--space-section); }
.b-archive__search { margin-bottom: 3rem; }
.b-posts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(2.5rem, 5vw, 4.5rem) clamp(1rem, 2.5vw, 2.5rem); }
.b-posts--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 1023px) { .b-posts { grid-template-columns: 1fr 1fr; } }
@media (max-width: 599px) { .b-posts, .b-posts--2 { grid-template-columns: 1fr; } }
.b-postcard { display: grid; gap: 1.25rem; align-content: start; }
.b-postcard__media { display: block; aspect-ratio: 4 / 5; overflow: hidden; background: var(--b-surface); border-radius: var(--b-radius-media); }
.b-postcard__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease-out); }
.b-postcard:hover .b-postcard__media img { transform: scale(var(--b-zoom, 1.04)); }
.b-postcard__body .b-label { margin-bottom: .5rem; }
.b-postcard__title { margin: 0 0 .6rem; font-size: clamp(1.25rem, 1rem + .8vw, 1.75rem); letter-spacing: var(--b-h-tracking); line-height: 1.12; }
.b-postcard__title a { text-decoration: none; }
.b-postcard:hover .b-postcard__title a { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .2em; }
.b-postcard__excerpt { margin: 0 0 .75rem; font-size: .9375rem; color: var(--b-muted); }

.b-article__head { display: grid; justify-items: center; padding-block: clamp(3rem, 8vw, 7rem) clamp(2rem, 4vw, 3.5rem); text-align: center; }
.b-article__title { max-width: 20ch; margin: 0 0 1.5rem; font-size: var(--fs-h1); }
.b-article__cover { margin-bottom: clamp(2.5rem, 5vw, 4.5rem); }
.b-article__cover > div { overflow: hidden; border-radius: var(--b-radius-media); }
.b-article__cover img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.b-article__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.5rem; padding-bottom: 3rem; }
.b-article__foot > * { grid-column: content; }
.b-tags { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0; padding: 0; list-style: none; }
.b-tags a { display: inline-flex; min-height: 36px; align-items: center; padding: 0 .9rem; border: 1px solid var(--b-line-strong); border-radius: 999px; font-size: .8125rem; text-decoration: none; }
.b-share { display: flex; align-items: center; gap: 1rem; }
.b-share__label { font-size: .6875rem; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: var(--b-muted); }
.b-share ul { display: flex; gap: .25rem; margin: 0; padding: 0; list-style: none; }
.b-share a, .b-share button { display: grid; place-items: center; width: 40px; height: 40px; padding: 0; border: 1px solid var(--b-line); border-radius: 50%; background: none; transition: background-color .2s, color .2s; }
.b-share a:hover, .b-share button:hover { background: var(--b-text); color: var(--b-bg); }
.b-share .b-icon { width: 1.05rem; height: 1.05rem; }
.b-postnav { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; padding-block: 2rem var(--space-section); border-top: 1px solid var(--b-line); }
.b-postnav__link { display: grid; gap: .25rem; padding: 1.5rem 0; text-decoration: none; }
.b-postnav__link--next { grid-column: 2; text-align: right; }
.b-postnav__title { font-family: var(--b-font-heading); font-size: var(--fs-h4); letter-spacing: var(--b-h-tracking, -.02em); line-height: 1.15; }
.b-postnav__link:hover .b-postnav__title { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .2em; }

.b-comments { padding-bottom: var(--space-section); }
.b-comments__list { margin: 0 0 3rem; padding: 0; list-style: none; }
.b-comments__list .comment-body { padding: 1.5rem 0; border-bottom: 1px solid var(--b-line); }
.b-comments__list .children { list-style: none; padding-left: 2rem; }
.b-comments__list .comment-meta { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; font-size: .8125rem; color: var(--b-muted); }
.b-comments__list .avatar { border-radius: 50%; }

.b-empty { display: grid; justify-items: center; gap: .75rem; max-width: 560px; margin: 0 auto; padding-block: clamp(3rem, 8vw, 6rem); text-align: center; }
.b-empty p { color: var(--b-muted); }
.b-empty .b-h3 { margin: 0; font-family: var(--b-font-heading); font-size: 1.75rem; font-weight: var(--b-h-weight); letter-spacing: var(--b-h-tracking, -.02em); }
.b-empty__icon { display: grid; place-items: center; width: 72px; height: 72px; margin-bottom: .5rem; border: 1px solid var(--b-line-strong); border-radius: 50%; }
.b-empty__icon .b-icon { width: 1.6rem; height: 1.6rem; }
.b-empty .b-searchform { width: 100%; margin-bottom: 1rem; }

.b-404__inner { display: grid; justify-items: center; padding-block: clamp(3rem, 8vw, 6rem); text-align: center; }
.b-404__code { margin: 0 0 1rem; font-family: var(--b-font-heading); font-size: clamp(7rem, 26vw, 20rem); font-weight: var(--b-h-weight, 500); line-height: .8; letter-spacing: var(--b-h-tracking, -.02em); }
.b-404__title { margin: 0 0 1rem; font-size: var(--fs-h2); }
.b-404__text { max-width: 44ch; color: var(--b-muted); }
.b-404__search { width: min(480px, 100%); margin: 1rem 0 2rem; }
.b-404__search .b-searchform { max-width: none; }
.b-404__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: .75rem; }

/* Favoritos. */
.b-wlhead { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1.25rem 2rem; padding-block: clamp(2rem, 5vw, 4rem) clamp(1.25rem, 2.4vw, 2rem); }
.b-wlhead__kicker { margin: 0 0 .9rem; font-size: .6875rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; }
.b-wlhead__title { margin: 0; font-size: calc(clamp(3rem, 1.5rem + 6vw, 8rem) * var(--b-h-scale, 1)); line-height: .86; }
.b-wlhead__count { display: inline-block; margin-left: .14em; font-size: .24em; font-weight: 500; letter-spacing: 0; vertical-align: top; transform: translateY(.35em); }
.b-wlhead__count::before { content: "("; }
.b-wlhead__count::after { content: ")"; }
.b-wlhead__aside { display: grid; justify-items: end; gap: .6rem; text-align: right; }
.b-wlhead__note { max-width: 34ch; margin: 0; font-size: .8125rem; color: var(--b-muted); }
.b-wlhead__clear { padding: 0; border: 0; background: none; color: var(--b-text); font-size: .6875rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; text-decoration: underline; text-underline-offset: .4em; }
.b-wlhead__clear:hover { opacity: .6; }
@media (max-width: 767px) { .b-wlhead__aside { justify-items: start; text-align: left; } }
.b-wishlist__skeleton .b-skel { display: block; background: var(--b-surface); animation: b-pulse 1.4s ease-in-out infinite; }
.b-wishlist__skeleton .b-skel--img { aspect-ratio: var(--b-ratio, 2 / 3); }
.b-wishlist__skeleton .b-skel--line { width: 55%; height: .7rem; margin: .85rem var(--b-card-pad, 0) 0; }
.b-wishlist__skeleton .b-skel--line.is-short { width: 25%; margin-top: .5rem; }
@keyframes b-pulse { 50% { opacity: .5; } }
@media (prefers-reduced-motion: reduce) { .b-wishlist__skeleton .b-skel { animation: none; } }
.b-wishlist__empty { display: grid; justify-items: start; gap: .9rem; padding-block: clamp(2.5rem, 6vw, 5rem); border-top: 1px solid var(--b-line); }
.b-wishlist__emptytitle { max-width: 18ch; margin: 0; font-family: var(--b-font-heading); font-size: calc(clamp(2rem, 1.2rem + 2.6vw, 3.75rem) * var(--b-h-scale, 1)); font-weight: var(--b-h-weight, 500); letter-spacing: var(--b-h-tracking); line-height: .98; }
.b-wishlist__emptytext { max-width: 46ch; margin: 0; font-size: .9375rem; line-height: 1.55; color: var(--b-muted); }
.b-wishlist__actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .75rem; }
.b-section.b-wishlist__reco { padding-top: var(--space-section); border-top: 1px solid var(--b-line); margin-top: var(--space-section); }

/* 22b. Páginas legales: lectura cómoda con navegación e índice -------------------- */
.b-legal { padding-bottom: var(--space-section); }
.b-legal__head { padding-top: clamp(2.5rem, 6vw, 5rem); padding-bottom: clamp(2rem, 4vw, 3.5rem); border-bottom: 1px solid var(--b-line); }
.b-legal__kicker { margin: 0 0 1rem; font-size: .75rem; color: var(--b-muted); }
.b-legal__title { max-width: 16ch; margin: 0 0 1.25rem; font-family: var(--b-font-body); font-size: clamp(2.5rem, 6.5vw, 5.5rem); font-weight: 500; letter-spacing: -.055em; line-height: .95; }
.b-legal__meta { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0; font-size: .8125rem; color: var(--b-muted); }

.b-legal__grid {
	display: grid;
	grid-template-columns: minmax(170px, 220px) minmax(0, 680px) minmax(170px, 220px);
	justify-content: space-between;
	gap: clamp(2rem, 5vw, 5rem);
	padding-top: clamp(2rem, 4vw, 3.5rem);
}
.b-legal__nav, .b-legal__toc { position: sticky; top: calc(var(--b-sticky-top, 0px) + 2rem); align-self: start; }
.b-legal__nav ul, .b-legal__toc ol { display: grid; gap: .15rem; margin: 0; padding: 0; list-style: none; }
.b-legal__nav a { position: relative; display: block; padding: .35rem 0; font-size: .9375rem; letter-spacing: -.015em; color: var(--b-muted); text-decoration: none; transition: color .2s, padding-left .35s var(--ease); }
.b-legal__nav a:hover { color: var(--b-text); }
.b-legal__nav a[aria-current] { padding-left: 1.1rem; color: var(--b-text); }
.b-legal__nav a[aria-current]::before { content: ""; position: absolute; left: 0; top: 50%; width: .7rem; height: 1px; background: currentColor; }
.b-legal__toc { grid-column: 3; }
.b-legal__toc-title { margin: 0 0 .75rem; font-size: .75rem; color: var(--b-muted); }
.b-legal__toc ol { gap: 0; border-left: 1px solid var(--b-line); }
.b-legal__toc a { display: block; margin-left: -1px; padding: .4rem 0 .4rem .9rem; border-left: 1px solid transparent; font-size: .8125rem; line-height: 1.35; color: var(--b-muted); text-decoration: none; transition: color .2s, border-color .2s; }
.b-legal__toc a:hover { color: var(--b-text); }
.b-legal__toc a.is-active { border-left-color: var(--b-text); color: var(--b-text); }
.b-legal__body { grid-column: 2; min-width: 0; }
.b-legal__toc-m { display: none; }

/* Tipografía de lectura */
.b-legal__content { counter-reset: b-sec; font-size: 1rem; line-height: 1.75; color: var(--b-text); }
.b-legal__content > * { max-width: 68ch; }
.b-legal__content > :first-child { margin-top: 0; }
.b-legal__content > p:first-child { font-size: 1.1875rem; line-height: 1.6; letter-spacing: -.015em; }
.b-legal__content p { margin: 0 0 1.15em; }
.b-legal__content h2 { position: relative; margin: 3.25rem 0 1rem; padding-top: 1.75rem; border-top: 1px solid var(--b-line); font-family: var(--b-font-body); font-size: clamp(1.25rem, 1.1rem + .5vw, 1.5rem); font-weight: 500; letter-spacing: -.03em; line-height: 1.2; scroll-margin-top: calc(var(--b-sticky-top, 0px) + 1.5rem); }
.b-legal__content h2::before { counter-increment: b-sec; content: counter(b-sec, decimal-leading-zero); display: block; margin-bottom: .6rem; font-size: .75rem; font-weight: 400; letter-spacing: 0; color: var(--b-muted); font-variant-numeric: tabular-nums; }
.b-legal__content h3 { margin: 2rem 0 .75rem; font-family: var(--b-font-body); font-size: 1.0625rem; font-weight: 500; letter-spacing: -.02em; }
.b-legal__content ul, .b-legal__content ol { margin: 0 0 1.25em; padding: 0; list-style: none; }
.b-legal__content li { position: relative; margin: 0 0 .5em; padding-left: 1.4rem; }
.b-legal__content ul > li::before { content: ""; position: absolute; left: 0; top: .85em; width: .6rem; height: 1px; background: var(--b-text); }
.b-legal__content ol { counter-reset: b-li; }
.b-legal__content ol > li::before { counter-increment: b-li; content: counter(b-li) "."; position: absolute; left: 0; font-size: .875em; color: var(--b-muted); }
.b-legal__content strong { font-weight: 600; }
.b-legal__content a { color: var(--b-text); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .2em; }
.b-legal__content a:hover { text-decoration-color: transparent; }
.b-legal__content .wp-block-table { max-width: none; margin: 1.5rem 0 2rem; overflow-x: auto; }
.b-legal__content table { width: 100%; border-collapse: collapse; font-size: .875rem; line-height: 1.5; }
.b-legal__content th { padding: .75rem 1rem .75rem 0; border-bottom: 1px solid var(--b-text); font-weight: 500; text-align: left; white-space: nowrap; }
.b-legal__content td { padding: .9rem 1rem .9rem 0; border-bottom: 1px solid var(--b-line); vertical-align: top; color: var(--b-muted); }
.b-legal__content td:first-child { color: var(--b-text); }
.b-legal-missing { padding: 0 .25em; background: color-mix(in srgb, #f5c400 30%, transparent); color: inherit; font-size: .9em; }

.b-legal__help { display: grid; gap: .35rem; max-width: 68ch; margin-top: 4rem; padding: 1.75rem; background: var(--b-surface); }
.b-legal__help p { margin: 0; font-size: .9375rem; color: var(--b-muted); }
.b-legal__help .b-legal__help-title { font-size: 1.25rem; font-weight: 500; letter-spacing: -.03em; color: var(--b-text); }
.b-legal__help-link { display: inline-flex; align-items: center; gap: .5rem; justify-self: start; margin-top: .75rem; font-size: .9375rem; font-weight: 500; color: var(--b-text); text-decoration: none; }
.b-legal__help-link .b-icon { width: 1rem; height: 1rem; transition: transform .35s var(--ease); }
.b-legal__help-link:hover .b-icon { transform: translateX(4px); }

@media (max-width: 1199px) {
	.b-legal__grid { grid-template-columns: minmax(160px, 200px) minmax(0, 1fr); }
	.b-legal__toc { display: none; }
	.b-legal__toc-m { display: block; margin: 0 0 2rem; border-block: 1px solid var(--b-line); }
	.b-legal__toc-m summary { display: flex; align-items: center; justify-content: space-between; min-height: 48px; font-size: .875rem; font-weight: 500; cursor: pointer; list-style: none; }
	.b-legal__toc-m summary::-webkit-details-marker { display: none; }
	.b-legal__toc-m summary::after { content: "+"; font-weight: 300; font-size: 1.25rem; }
	.b-legal__toc-m[open] summary::after { content: "−"; }
	.b-legal__toc-m ol { margin: 0 0 1rem; padding: 0; list-style: none; }
	.b-legal__toc-m a { display: block; padding: .35rem 0; font-size: .875rem; color: var(--b-muted); text-decoration: none; }
}
@media (max-width: 767px) {
	.b-legal__grid { display: block; padding-top: 0; }
	/* Navegación entre páginas legales como fila desplazable. */
	.b-legal__nav { position: static; margin: 0 calc(var(--gutter) * -1) 1.75rem; padding: 0 var(--gutter); border-bottom: 1px solid var(--b-line); overflow-x: auto; scrollbar-width: none; }
	.b-legal__nav::-webkit-scrollbar { display: none; }
	.b-legal__nav ul { display: flex; gap: 1.25rem; width: max-content; }
	.b-legal__nav a { padding: .9rem 0; font-size: .875rem; white-space: nowrap; }
	.b-legal__nav a[aria-current] { padding-left: 0; box-shadow: inset 0 -1px 0 currentColor; }
	.b-legal__nav a[aria-current]::before { display: none; }
	.b-legal__content > p:first-child { font-size: 1.0625rem; }
	.b-legal__help { margin-top: 3rem; padding: 1.5rem; }
}

/* 23. Pie de página ------------------------------------------------------------------ */
.b-footer { position: relative; padding-top: clamp(2.5rem, 4.5vw, 3.75rem); overflow: hidden; }
.b-footer:not(.b-inverse) { border-top: 1px solid var(--b-line); }
.b-footer__grid { display: grid; grid-template-columns: minmax(0, 1.6fr) repeat(auto-fit, minmax(150px, 1fr)); gap: 2.5rem clamp(1.5rem, 4vw, 4rem); padding-bottom: clamp(2.5rem, 5vw, 4rem); }
.b-footer__brand { max-width: 440px; }
.b-footer__brand .b-logo__text { font-size: 1.25rem; }
.b-footer__title { margin: 0 0 1.1rem; font-family: var(--b-font-body); font-size: .6875rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--b-text); }
.b-footer__lead { max-width: 42ch; margin: 0 0 1.25rem; font-size: .8125rem; line-height: 1.5; color: var(--b-muted); }
.b-footer__tagline { max-width: 22ch; margin: 0; font-family: var(--b-font-heading); font-size: calc(clamp(1.375rem, 1.1rem + .9vw, 2rem) * var(--b-h-scale, 1)); font-weight: var(--b-h-weight, 500); letter-spacing: var(--b-h-tracking); line-height: 1.1; color: var(--b-text); }
.b-footer__brand .b-logo + .b-footer__tagline { margin-top: 1.25rem; }
.b-footer__links { display: grid; gap: .55rem; margin: 0; padding: 0; list-style: none; }
.b-footer__links a, .b-footer__contact a { font-size: .8125rem; text-decoration: none; background-image: linear-gradient(currentColor, currentColor); background-size: 0 1px; background-position: 100% 100%; background-repeat: no-repeat; transition: background-size .4s var(--ease-out); }
.b-footer__links a:hover, .b-footer__contact a:hover { background-size: 100% 1px; background-position: 0 100%; }
.b-footer__contact p { margin: 0 0 .75rem; font-size: .8125rem; }
.b-footer__hours { color: var(--b-muted); }

/* Newsletter del pie: campo con línea inferior y botón de texto. */
.b-nlform--footer .b-nlform__row { padding: 0; border: 0; border-bottom: 1px solid var(--b-text); border-radius: 0; background: none; }
.b-nlform--footer .b-nlform__row:focus-within { outline-offset: 4px; }
.b-nlform--footer .b-nlform__input.b-nlform__input { min-height: 44px; padding: 0; font-size: .875rem; }
.b-nlform--footer .b-nlform__submit { min-height: 44px; padding: 0 0 0 1rem; border-radius: 0; background: none; color: var(--b-text); font-size: .6875rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
.b-nlform--footer .b-nlform__submit:hover { opacity: .6; }
.b-nlform--footer .b-nlform__consent { font-size: .75rem; color: var(--b-muted); }
@media (max-width: 479px) { .b-nlform--footer .b-nlform__row, .b-nlform--home .b-nlform__row { flex-direction: row; border-radius: 0; } .b-nlform--home .b-nlform__submit { min-height: 48px; } }

.b-social { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0; padding: 0; list-style: none; }
.b-social a { display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid var(--b-line); border-radius: 50%; transition: background-color .2s, color .2s, border-color .2s; }
.b-social a:hover { background: var(--b-text); color: var(--b-bg); border-color: var(--b-text); }
.b-social .b-icon { width: 1.1rem; height: 1.1rem; }
.b-footer__social a { width: 36px; height: 36px; border: 0; background: var(--b-text); color: var(--b-bg); }
.b-footer__social a:hover { opacity: .75; background: var(--b-text); color: var(--b-bg); }
.b-footer__social .b-icon { width: .95rem; height: .95rem; }

.b-footer__bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem 2rem; padding-block: 1.25rem; border-top: 1px solid var(--b-line); font-size: .75rem; color: var(--b-muted); }
.b-footer__legal { margin-right: auto; }
.b-footer__legal p { margin: 0; }
.b-footer__registry { margin-top: .25rem !important; opacity: .85; }
.b-footer__inline { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; margin: 0; padding: 0; list-style: none; }
.b-footer__inline a { text-decoration: none; }
.b-footer__inline a:hover { color: var(--b-text); text-decoration: underline; }
/* Métodos de pago: tarjetas SVG a color o monocromas. */
.b-payments { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem; margin: 0; padding: 0; list-style: none; }
.b-payments li { display: flex; line-height: 0; }
.b-pay { display: block; width: 38px; height: 24px; border-radius: 4px; overflow: hidden; }
.b-payments--color .b-pay { box-shadow: 0 0 0 1px rgb(0 0 0 / .08); }
.b-payments li.is-text { align-items: center; height: 24px; padding: 0 .5rem; border: 1px solid var(--b-line); border-radius: 4px; font-size: .625rem; font-weight: 500; line-height: 1; letter-spacing: .04em; }
/* Monocromo: los logos toman el color del texto sobre una tarjeta con borde fino. */
.b-payments--mono .b-pay { box-shadow: inset 0 0 0 1px var(--b-line); color: var(--b-text); }
.b-payments--mono .b-pay .pc-bg { fill: transparent; }
.b-payments--mono .b-pay :is(text, tspan, circle, path, g):not(.pc-knock) { fill: currentColor; }
.b-payments--mono .b-pay g[stroke] { fill: none; stroke: currentColor; }
.b-payments--mono .b-pay g[stroke] path { fill: none; }
.b-payments--mono .b-pay .pc-2 { opacity: .55; }
.b-payments--mono .b-pay .pc-3 { opacity: 0; }
.b-payments--mono .b-pay .pc-fill { fill: currentColor; }
.b-payments--mono .b-pay .pc-knock { fill: var(--b-bg); }

/* Nombre de marca a todo el ancho (el JS ajusta el tamaño exacto). */
.b-footer__mark { padding: clamp(1rem, 3vw, 2.5rem) var(--gutter) 0; color: var(--b-text); line-height: 1; user-select: none; }
.b-footer__mark span {
	display: block;
	font-family: var(--b-font-logo, var(--b-font-heading));
	font-size: calc((100vw - var(--gutter) * 2) / 5.4);
	font-weight: 500;
	letter-spacing: -.05em;
	line-height: .76;
	text-align: center;
	white-space: nowrap;
	padding-top: .06em;
	transform: translateY(.04em);
}
.b-footer--checkout { padding-top: 0; }
@media (max-width: 899px) {
	.b-footer__grid { grid-template-columns: 1fr 1fr; }
	.b-footer__brand { grid-column: 1 / -1; }
}
@media (max-width: 479px) { .b-footer__grid { grid-template-columns: 1fr; } }

/* 24. Flotantes ---------------------------------------------------------------------- */
.b-totop {
	position: fixed;
	right: clamp(12px, 2vw, 24px);
	bottom: clamp(12px, 2vw, 24px);
	z-index: var(--z-float);
	display: grid;
	place-items: center;
	width: 48px;
	height: 48px;
	border: 1px solid var(--b-line-strong);
	border-radius: 50%;
	background: var(--b-bg);
	color: var(--b-text);
	text-decoration: none;
	opacity: 0;
	visibility: hidden;
	transform: translateY(10px);
	transition: opacity .3s, visibility 0s linear .3s, transform .4s var(--ease-out), border-color .2s;
}
.b-totop.is-visible { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.b-totop:hover { border-color: var(--b-text); }
body.b-has-stickyatc .b-totop.is-visible { transform: translateY(-72px); }
.b-totop .b-icon { width: 1.05rem; height: 1.05rem; }
.b-whatsapp {
	position: fixed;
	right: clamp(12px, 2vw, 24px);
	bottom: calc(clamp(12px, 2vw, 24px) + 60px);
	z-index: var(--z-float);
	display: grid;
	place-items: center;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	background: var(--b-inverse-bg);
	color: var(--b-inverse-text);
	box-shadow: 0 10px 30px -12px rgb(0 0 0 / .4);
}
.b-whatsapp .b-icon { width: 1.4rem; height: 1.4rem; }

/* 25. Aparición suave ------------------------------------------------------------------ */
.b-motion [data-reveal] { opacity: 0; transform: translate3d(0, 24px, 0); transition: opacity .9s var(--ease), transform 1s var(--ease-out); transition-delay: var(--d, 0s); }
.b-motion [data-reveal].is-in { opacity: 1; transform: none; }

@keyframes b-spin { to { transform: rotate(360deg); } }
@keyframes b-fade { from { opacity: 0; } }
@keyframes b-rise { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
@keyframes b-item-in { from { opacity: 0; transform: translateX(20px); } to { opacity: 1; transform: none; } }
@keyframes b-highlight { 0%, 100% { background: transparent; } 20% { background: var(--b-surface); } }
@keyframes b-bump { 0% { transform: scale(1); } 40% { transform: scale(1.3); } 100% { transform: scale(1); } }
@keyframes b-settle { from { transform: scale(1.06); } to { transform: scale(1); } }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
		transition-delay: 0s !important;
		scroll-behavior: auto !important;
	}
}

/* 26. Impresión --------------------------------------------------------------------- */
@media print {
	.b-announce, .b-header, .b-scrim, .b-footer, .b-totop, .b-whatsapp, .b-stickyatc, dialog { display: none !important; }
	body { color: #000; background: #fff; }
	[data-reveal] { opacity: 1 !important; transform: none !important; }
}
.b-legal__content .wp-block-table table, .b-legal__content .wp-block-table th, .b-legal__content .wp-block-table td { border-width: 0 0 1px; border-style: solid; }
.b-legal__content .wp-block-table thead { border-bottom: 0; }
.b-legal__content .wp-block-table th { border-color: var(--b-text); }
.b-legal__content .wp-block-table td { border-color: var(--b-line); }
.b-legal__content .wp-block-table table { border-bottom: 0; }
.b-footer__hours .b-hours { display: block; margin-bottom: .45rem; }
.b-footer__hours .b-hours:last-child { margin-bottom: 0; }
.b-footer__hours .b-hours__day { display: block; color: var(--b-text); }
.b-footer__hours .b-hours__time { display: block; white-space: nowrap; }
