/* ==========================================================================
   Chocomiel Baby — estilos principales
   Paleta tomada del logo: leche, crema, miel, caramelo, choco, cacao.
   ========================================================================== */

:root {
	--cm-leche: #fdfaf4;
	--cm-crema: #fbe6d6;
	--cm-miel: #f2c8aa;
	--cm-caramelo: #bc845c;
	--cm-choco: #7c4e33;
	--cm-cacao: #4b2e1f;
	--cm-blanco: #ffffff;
	--cm-exito: #4f7a52;
	--cm-error: #a3402b;

	--cm-texto: var(--cm-cacao);
	--cm-texto-suave: #7a5a47;
	--cm-linea: #ecd3c0;

	--cm-display: "Fraunces", "Recoleta", Georgia, serif;
	--cm-body: "Jost", "Futura", system-ui, -apple-system, "Segoe UI", sans-serif;
	--cm-ui: var(--cm-body);

	--cm-ancho: 1240px;
	--cm-gutter: clamp(16px, 4vw, 40px);
	--cm-radio: 14px;
	--cm-radio-lg: 22px;
	--cm-radio-btn: 12px;
	--cm-radio-sm: 10px;
	--cm-sombra: 0 14px 30px -18px rgba(124, 78, 51, 0.45);
	--cm-costura: 2px dashed var(--cm-caramelo);
	--cm-rayas: repeating-linear-gradient(90deg, var(--cm-crema) 0 34px, var(--cm-leche) 34px 68px);
}

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

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

body {
	margin: 0;
	background: var(--cm-leche);
	color: var(--cm-texto);
	font-family: var(--cm-body);
	font-size: 17px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
}

img { max-width: 100%; height: auto; display: block; }
a { color: var(--cm-choco); text-decoration-thickness: 1.5px; text-underline-offset: 3px; }
a:hover { color: var(--cm-caramelo); }

h1, h2, h3, h4 {
	font-family: var(--cm-display);
	color: var(--cm-choco);
	line-height: 1.1;
	margin: 0 0 .5em;
	font-weight: 700;
	letter-spacing: -0.015em;
}
h1 { font-size: clamp(40px, 6.4vw, 76px); }
h2 { font-size: clamp(30px, 4vw, 46px); }
h3 { font-size: clamp(22px, 2.4vw, 28px); }
p { margin: 0 0 1em; }

:focus-visible {
	outline: 3px solid var(--cm-caramelo);
	outline-offset: 3px;
	border-radius: 8px;
}

.screen-reader-text,
.cm-sr {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}
.skip-link:focus {
	clip: auto; width: auto; height: auto;
	top: 10px; left: 10px; z-index: 1000;
	background: var(--cm-choco); color: #fff; padding: 10px 16px; border-radius: var(--cm-radio-btn);
}

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

.cm-svg-defs { position: absolute; width: 0; height: 0; overflow: hidden; }

/* ---------- Botones ---------- */
.cm-btn,
.button,
button.button,
input[type="submit"],
.wp-element-button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5em;
	font-family: var(--cm-ui);
	font-weight: 700;
	font-size: 17px;
	line-height: 1;
	padding: 15px 26px;
	border-radius: var(--cm-radio-btn);
	border: 2px solid var(--cm-choco);
	background: var(--cm-choco);
	color: var(--cm-blanco);
	text-decoration: none;
	cursor: pointer;
	transition: background-color .2s, color .2s, transform .15s;
}
.cm-btn:hover,
.button:hover,
input[type="submit"]:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover {
	background: var(--cm-cacao);
	border-color: var(--cm-cacao);
	color: var(--cm-blanco);
}
.cm-btn:active, .button:active { transform: translateY(1px); }

.cm-btn--claro {
	background: var(--cm-blanco);
	color: var(--cm-choco);
}
.cm-btn--claro:hover { background: var(--cm-crema); color: var(--cm-choco); }

.cm-btn--wa { background: #2f7d4f; border-color: #2f7d4f; }
.cm-btn--wa:hover { background: #24603d; border-color: #24603d; }
.cm-btn svg { width: 20px; height: 20px; flex: none; }

/* ---------- Barra superior ---------- */
.cm-topbar {
	background: var(--cm-choco);
	color: var(--cm-crema);
	font-size: 14px;
	font-weight: 500;
	text-align: center;
	padding: 8px var(--cm-gutter);
}
.cm-topbar a { color: var(--cm-blanco); }

/* ---------- Cabecera ---------- */
.cm-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: rgba(253, 250, 244, .96);
	backdrop-filter: saturate(140%) blur(8px);
	border-bottom: var(--cm-costura);
}
.admin-bar .cm-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .cm-header { top: 0; } }

.cm-header__inner {
	display: flex;
	align-items: center;
	gap: 20px;
	min-height: 92px;
}
.cm-logo { display: block; line-height: 0; flex: none; }
.cm-logo img,
.cm-logo .custom-logo { width: auto; height: 76px; }

.cm-nav { flex: 1; display: flex; justify-content: center; }

/* Buscador visible en escritorio */
.cm-buscar-barra {
	position: relative;
	flex: 0 1 260px;
	display: flex;
	align-items: center;
}
.cm-buscar-barra input[type="search"] {
	padding: 11px 46px 11px 18px;
	border-radius: var(--cm-radio-btn);
	font-size: 15px;
	background: var(--cm-blanco);
}
.cm-buscar-barra button {
	position: absolute;
	right: 4px;
	width: 38px; height: 38px;
	display: grid; place-items: center;
	border: 0;
	border-radius: 50%;
	background: var(--cm-choco);
	color: var(--cm-blanco);
	cursor: pointer;
}
.cm-buscar-barra button:hover { background: var(--cm-cacao); }
.cm-buscar-barra button svg { width: 18px; height: 18px; }

.cm-menu,
.cm-menu .sub-menu { list-style: none; margin: 0; padding: 0; }
.cm-menu { display: flex; gap: 6px; }
.cm-menu > li { position: relative; }
.cm-menu > li > a {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 10px 18px;
	border-radius: var(--cm-radio-btn);
	font-family: var(--cm-ui);
	font-weight: 700;
	font-size: 19px;
	color: var(--cm-choco);
	text-decoration: none;
}
.cm-menu > li.menu-item-has-children > a::after {
	content: "";
	width: 8px; height: 8px;
	border-right: 2.5px solid currentColor;
	border-bottom: 2.5px solid currentColor;
	transform: translateY(-3px) rotate(45deg);
	border-radius: 1px;
}
.cm-menu > li > a:hover,
.cm-menu > li:focus-within > a,
.cm-menu > li.current-menu-item > a,
.cm-menu > li.current-menu-ancestor > a,
.cm-menu > li.current-product_cat-ancestor > a { background: var(--cm-crema); }

/* Panel desplegable (mega menú) */
.cm-menu > li > .sub-menu {
	position: absolute;
	top: calc(100% + 14px);
	left: 0;
	width: min(560px, 90vw);
	transform: translateY(8px);
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 2px 16px;
	padding: 22px;
	background: var(--cm-blanco);
	border-radius: var(--cm-radio-lg);
	box-shadow: var(--cm-sombra), 0 0 0 1px var(--cm-linea);
	opacity: 0;
	visibility: hidden;
	transition: opacity .18s, transform .18s, visibility .18s;
}
.cm-menu > li > .sub-menu::before {
	content: "";
	position: absolute;
	inset: -16px 0 auto;
	height: 16px;
}
.cm-menu > li:hover > .sub-menu,
.cm-menu > li:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: none;
}
.cm-menu .sub-menu a {
	display: block;
	padding: 9px 14px;
	border-radius: var(--cm-radio-sm);
	color: var(--cm-texto);
	font-weight: 600;
	text-decoration: none;
}
.cm-menu .sub-menu a:hover { background: var(--cm-crema); color: var(--cm-choco); }
.cm-menu .sub-menu .cm-menu-todo {
	grid-column: 1 / -1;
	margin-top: 10px;
	padding-top: 12px;
	border-top: var(--cm-costura);
}
.cm-menu .sub-menu .cm-menu-todo a {
	font-family: var(--cm-ui);
	font-weight: 700;
	color: var(--cm-choco);
}

/* Acciones de la cabecera */
.cm-actions { display: flex; align-items: center; gap: 4px; }
.cm-icon-btn {
	position: relative;
	display: inline-grid;
	place-items: center;
	width: 46px; height: 46px;
	border-radius: 50%;
	border: 0;
	background: transparent;
	color: var(--cm-choco);
	cursor: pointer;
	text-decoration: none;
}
.cm-icon-btn:hover { background: var(--cm-crema); color: var(--cm-choco); }
.cm-icon-btn svg { width: 24px; height: 24px; }
.cm-cart-count {
	position: absolute;
	top: 3px; right: 1px;
	min-width: 21px; height: 21px;
	padding: 0 5px;
	display: grid; place-items: center;
	border-radius: var(--cm-radio-btn);
	background: var(--cm-caramelo);
	color: var(--cm-blanco);
	font-size: 12px;
	font-weight: 700;
	line-height: 1;
	border: 2px solid var(--cm-leche);
}
.cm-cart-count:empty,
.cm-cart-count[data-count="0"] { display: none; }

.cm-burger { display: none; }

/* Buscador desplegable */
.cm-search {
	border-top: var(--cm-costura);
	background: var(--cm-leche);
	padding: 18px 0;
}
.cm-search[hidden] { display: none; }
.cm-search form { display: flex; gap: 10px; }
.cm-search input[type="search"] { flex: 1; }

/* ---------- Formularios ---------- */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="search"],
input[type="number"],
input[type="password"],
input[type="url"],
select,
textarea,
.woocommerce form .form-row .input-text,
.woocommerce form .form-row select {
	width: 100%;
	font: inherit;
	font-size: 16px;
	color: var(--cm-texto);
	background: var(--cm-blanco);
	border: 2px solid var(--cm-linea);
	border-radius: var(--cm-radio-btn);
	padding: 13px 16px;
	transition: border-color .15s;
}
input:focus, select:focus, textarea:focus {
	outline: none;
	border-color: var(--cm-caramelo);
	box-shadow: 0 0 0 4px rgba(188, 132, 92, .18);
}
textarea { min-height: 150px; resize: vertical; }
label { font-weight: 600; color: var(--cm-choco); }
select {
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1.5 1.5 7 7l5.5-5.5' fill='none' stroke='%237c4e33' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 16px center;
	padding-right: 44px;
}

/* ---------- Ventana de oso (forma del logo) ---------- */
.cm-oso {
	position: relative;
	display: block;
	aspect-ratio: 1 / 1;
}
.cm-oso__foto {
	position: absolute;
	inset: 0;
	clip-path: url(#cm-oso-clip);
	background: var(--cm-crema);
}
.cm-oso__foto img {
	width: 100%; height: 100%;
	object-fit: cover;
	object-position: 50% 0%;
}
.cm-oso__costura {
	position: absolute;
	inset: -14px;
	width: calc(100% + 28px);
	height: calc(100% + 28px);
	overflow: visible;
	pointer-events: none;
}
.cm-oso__costura path {
	fill: none;
	stroke: var(--cm-caramelo);
	stroke-width: 3;
	stroke-dasharray: 9 7;
	stroke-linecap: round;
	vector-effect: non-scaling-stroke;
}

/* ---------- Portada: hero (ver bloque «Hero editorial» al final) ---------- */

/* ---------- Secciones ---------- */
.cm-seccion { padding: clamp(56px, 8vw, 104px) 0; }
.cm-seccion--crema { background: var(--cm-crema); }
.cm-seccion--promesas { padding-top: 0; }
.cm-seccion__cabeza {
	display: flex;
	flex-wrap: wrap;
	align-items: end;
	justify-content: space-between;
	gap: 16px 32px;
	margin-bottom: clamp(28px, 4vw, 44px);
}
.cm-seccion__cabeza h2 { margin: 0; }
.cm-seccion__cabeza p { margin: 8px 0 0; color: var(--cm-texto-suave); max-width: 36rem; }
.cm-enlace {
	font-family: var(--cm-ui);
	font-weight: 700;
	font-size: 18px;
	color: var(--cm-choco);
	text-decoration: underline;
	text-decoration-style: dashed;
	text-decoration-color: var(--cm-caramelo);
	text-underline-offset: 6px;
}

/* ---------- Colecciones (pestañas niña / niño) ---------- */
.cm-tabs {
	display: inline-flex;
	padding: 6px;
	border-radius: var(--cm-radio-btn);
	background: var(--cm-blanco);
	border: var(--cm-costura);
}
.cm-tabs button {
	font-family: var(--cm-ui);
	font-weight: 700;
	font-size: 18px;
	border: 0;
	border-radius: var(--cm-radio-btn);
	padding: 10px 26px;
	background: transparent;
	color: var(--cm-choco);
	cursor: pointer;
	transition: background-color .2s, color .2s;
}
.cm-tabs button[aria-selected="true"] { background: var(--cm-choco); color: var(--cm-blanco); }

.cm-colecciones {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: clamp(18px, 2.6vw, 34px) clamp(14px, 2vw, 26px);
}
.cm-colecciones[hidden] { display: none !important; }
.cm-coleccion a {
	display: grid;
	justify-items: center;
	gap: 12px;
	text-align: center;
	text-decoration: none;
	color: var(--cm-choco);
}
.cm-coleccion__img {
	width: 100%;
	aspect-ratio: 1;
	border-radius: 50%;
	overflow: hidden;
	background: var(--cm-rayas);
	border: 6px solid var(--cm-blanco);
	box-shadow: 0 0 0 2px var(--cm-miel);
	transition: box-shadow .2s;
}
.cm-coleccion__img img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 15%; }
.cm-coleccion__img--vacio { display: grid; place-items: center; color: var(--cm-caramelo); }
.cm-coleccion__img--vacio svg { width: 42%; }
.cm-coleccion a:hover .cm-coleccion__img { box-shadow: 0 0 0 2px var(--cm-miel), 0 0 0 6px var(--cm-caramelo); }
.cm-coleccion__nombre {
	font-family: var(--cm-display);
	font-weight: 700;
	font-size: clamp(17px, 1.6vw, 21px);
	line-height: 1.15;
}
.cm-coleccion__cuenta { display: block; font-family: var(--cm-body); font-size: 14px; font-weight: 500; color: var(--cm-texto-suave); margin-top: 2px; }

/* ---------- Tarjetas de producto (marcado WooCommerce) ---------- */
.woocommerce ul.products,
.cm-productos ul.products,
ul.products {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(28px, 3vw, 40px) clamp(14px, 2vw, 26px);
}
ul.products::before, ul.products::after { display: none !important; }
.woocommerce ul.products li.product,
ul.products li.product {
	position: relative;
	width: auto !important;
	margin: 0 !important;
	float: none !important;
	padding: 0;
	display: flex;
	flex-direction: column;
	text-align: left;
}
ul.products li.product a.woocommerce-loop-product__link {
	display: flex;
	flex-direction: column;
	text-decoration: none;
	color: inherit;
	flex: 1;
}
ul.products li.product img {
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	object-position: 50% 20%;
	border-radius: var(--cm-radio-lg) var(--cm-radio-lg) var(--cm-radio) var(--cm-radio);
	background: var(--cm-crema);
	margin: 0 0 14px !important;
	transition: transform .35s cubic-bezier(.2, .8, .2, 1);
}
ul.products li.product a:hover img { transform: translateY(-4px); }
ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--cm-body);
	font-size: 17px !important;
	font-weight: 600;
	line-height: 1.35;
	color: var(--cm-texto);
	margin: 0 0 4px;
	padding: 0 !important;
}
ul.products li.product .price,
.woocommerce div.product p.price,
.woocommerce div.product span.price,
.cm-precio {
	display: block;
	font-family: var(--cm-display);
	font-weight: 700;
	font-size: 20px !important;
	color: var(--cm-choco) !important;
	margin-bottom: 14px;
}
.price del { opacity: .55; font-size: .8em; margin-right: 6px; font-weight: 600; }
.price ins { text-decoration: none; }
ul.products li.product .button {
	align-self: flex-start;
	margin-top: auto;
	background: transparent;
	color: var(--cm-choco);
	font-size: 15px;
	padding: 11px 20px;
}
ul.products li.product .button:hover { background: var(--cm-choco); color: var(--cm-blanco); }
ul.products li.product .button.loading { opacity: .6; }
ul.products li.product .added_to_cart {
	display: inline-block;
	margin-top: 8px;
	font-weight: 600;
	font-size: 14px;
}
.woocommerce span.onsale,
span.onsale {
	position: absolute;
	top: 14px; left: 14px; right: auto;
	z-index: 2;
	min-height: 0; min-width: 0;
	margin: 0;
	padding: 7px 14px;
	border-radius: var(--cm-radio-btn);
	background: var(--cm-blanco);
	color: var(--cm-choco);
	font-family: var(--cm-ui);
	font-weight: 700;
	font-size: 14px;
	line-height: 1;
	border: var(--cm-costura);
}

/* ---------- Banda "Prematuro" ---------- */
.cm-banda {
	display: grid;
	grid-template-columns: 1fr 1fr;
	align-items: center;
	gap: clamp(28px, 5vw, 72px);
	background: var(--cm-choco);
	color: var(--cm-crema);
	border-radius: 28px;
	padding: clamp(28px, 4vw, 56px);
	position: relative;
}
.cm-banda::before {
	content: "";
	position: absolute;
	inset: 12px;
	border: 2px dashed rgba(242, 200, 170, .55);
	border-radius: 20px;
	pointer-events: none;
}
.cm-banda h2 { color: var(--cm-blanco); }
.cm-banda p { color: var(--cm-crema); font-size: 18px; max-width: 30rem; }
.cm-banda .cm-btn { background: var(--cm-miel); border-color: var(--cm-miel); color: var(--cm-cacao); }
.cm-banda .cm-btn:hover { background: var(--cm-blanco); border-color: var(--cm-blanco); }
.cm-banda__fotos { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; position: relative; }
.cm-banda__fotos img {
	width: 100%;
	aspect-ratio: 3 / 4;
	object-fit: cover;
	object-position: 50% 15%;
	border-radius: var(--cm-radio-lg);
}
.cm-banda__fotos img:last-child { margin-top: 48px; }

/* ---------- Promesas ---------- */
.cm-promesas {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 32px;
}
.cm-promesa { display: grid; grid-template-columns: 64px 1fr; gap: 18px; align-items: start; }
.cm-promesa__icono {
	width: 64px; height: 64px;
	display: grid; place-items: center;
	border-radius: 50%;
	background: var(--cm-blanco);
	border: var(--cm-costura);
	color: var(--cm-choco);
}
.cm-promesa__icono svg { width: 30px; height: 30px; }
.cm-promesa h3 { font-size: 21px; margin: 4px 0 4px; }
.cm-promesa p { margin: 0; color: var(--cm-texto-suave); font-size: 16px; }

/* ---------- Encabezado de página / categoría ---------- */
.cm-pagina-cabeza {
	background: var(--cm-rayas);
	padding: clamp(36px, 5vw, 64px) 0 clamp(30px, 4vw, 48px);
	border-bottom: var(--cm-costura);
}
.cm-pagina-cabeza h1 { margin-bottom: 8px; text-shadow: 3px 3px 0 var(--cm-miel); }
.cm-pagina-cabeza p,
.cm-pagina-cabeza .term-description { color: var(--cm-texto-suave); max-width: 40rem; margin: 0; }
.woocommerce .woocommerce-breadcrumb,
.cm-migas {
	font-size: 14px;
	color: var(--cm-texto-suave);
	margin: 0 0 14px;
}
.woocommerce .woocommerce-breadcrumb a,
.cm-migas a { color: var(--cm-choco); font-weight: 600; text-decoration: none; }

.cm-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	list-style: none;
	margin: 26px 0 0;
	padding: 0;
}
.cm-chips a {
	display: inline-block;
	padding: 9px 18px;
	border-radius: var(--cm-radio-btn);
	background: var(--cm-blanco);
	border: 2px solid var(--cm-linea);
	color: var(--cm-choco);
	font-weight: 600;
	font-size: 15px;
	text-decoration: none;
	transition: border-color .15s, background-color .15s;
}
.cm-chips a:hover { border-color: var(--cm-caramelo); }
.cm-chips a[aria-current="page"] { background: var(--cm-choco); border-color: var(--cm-choco); color: var(--cm-blanco); }

.cm-contenido { padding: clamp(36px, 5vw, 64px) 0 clamp(64px, 8vw, 104px); }

/* Barra de orden y resultados */
.woocommerce .woocommerce-result-count,
.cm-resultados { margin: 0 0 28px; color: var(--cm-texto-suave); font-size: 15px; float: none; }
.woocommerce .woocommerce-ordering { margin: 0 0 28px; float: none; }
.cm-tienda-barra {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
}
.cm-tienda-barra select { width: auto; min-width: 230px; padding-block: 10px; }

/* Paginación */
.woocommerce nav.woocommerce-pagination ul,
.cm-paginacion ul { border: 0; display: flex; justify-content: center; gap: 8px; margin-top: 48px; }
.woocommerce nav.woocommerce-pagination ul li { border: 0; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	width: 44px; height: 44px;
	display: grid; place-items: center;
	border-radius: 50%;
	font-weight: 700;
	color: var(--cm-choco);
	background: var(--cm-blanco);
	border: 2px solid var(--cm-linea);
}
.woocommerce nav.woocommerce-pagination ul li span.current { background: var(--cm-choco); color: var(--cm-blanco); border-color: var(--cm-choco); }

/* ---------- Producto individual ---------- */
.woocommerce div.product,
.cm-producto {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
	gap: clamp(28px, 5vw, 72px);
	align-items: start;
}
.woocommerce div.product div.images,
.woocommerce div.product div.summary { width: 100% !important; float: none !important; margin: 0 !important; }
.woocommerce div.product .woocommerce-tabs,
.woocommerce div.product .related,
.woocommerce div.product .upsells { grid-column: 1 / -1; }
.woocommerce div.product div.images img,
.cm-galeria__principal img {
	border-radius: var(--cm-radio-lg);
	background: var(--cm-crema);
}
.woocommerce div.product div.images .flex-control-thumbs,
.cm-galeria__miniaturas {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 12px;
	margin-top: 12px !important;
	padding: 0;
	list-style: none;
}
.woocommerce div.product div.images .flex-control-thumbs li { width: auto !important; float: none !important; }
.woocommerce div.product div.images .flex-control-thumbs li img,
.cm-galeria__miniaturas img {
	border-radius: var(--cm-radio-btn);
	aspect-ratio: 1;
	object-fit: cover;
	object-position: 50% 20%;
	opacity: .65;
	cursor: pointer;
}
.woocommerce div.product div.images .flex-control-thumbs li img.flex-active,
.cm-galeria__miniaturas img.is-activa { opacity: 1; outline: 3px solid var(--cm-caramelo); outline-offset: 2px; }
.woocommerce div.product .product_title { font-size: clamp(32px, 4vw, 48px); margin-bottom: 10px; }
.woocommerce div.product p.price { font-size: 28px !important; margin: 0 0 18px; }
.woocommerce div.product .woocommerce-product-details__short-description { color: var(--cm-texto-suave); }
.woocommerce div.product form.cart { display: flex; flex-wrap: wrap; gap: 12px; margin: 24px 0; }
.woocommerce div.product form.cart.variations_form { display: block; }
.woocommerce div.product form.cart .variations { margin-bottom: 18px; border: 0; }
.woocommerce div.product form.cart .variations th,
.woocommerce div.product form.cart .variations td { display: block; padding: 0 0 8px; text-align: left; }
.woocommerce div.product form.cart .woocommerce-variation-add-to-cart { display: flex; gap: 12px; flex-wrap: wrap; }
.woocommerce .quantity .qty,
.cm-cantidad input { width: 88px; text-align: center; border-radius: var(--cm-radio-btn); }
.woocommerce div.product form.cart .button,
.woocommerce div.product form.cart .single_add_to_car_button { flex: 1; min-width: 220px; }
.woocommerce div.product .product_meta { font-size: 14px; color: var(--cm-texto-suave); border-top: var(--cm-costura); padding-top: 16px; }
.woocommerce div.product .product_meta a { font-weight: 600; }

/* Tallas (radio visual del preview y plugins de swatches) */
.cm-tallas { display: flex; flex-wrap: wrap; gap: 10px; border: 0; padding: 0; margin: 0 0 22px; }
.cm-tallas legend { font-weight: 600; color: var(--cm-choco); margin-bottom: 10px; }
.cm-tallas label { cursor: pointer; }
.cm-tallas input { position: absolute; opacity: 0; }
.cm-tallas span {
	display: inline-grid;
	place-items: center;
	min-width: 64px;
	padding: 10px 14px;
	border-radius: var(--cm-radio-btn);
	border: 2px solid var(--cm-linea);
	background: var(--cm-blanco);
	color: var(--cm-texto);
	font-weight: 600;
	font-size: 15px;
}
.cm-tallas input:checked + span { background: var(--cm-choco); border-color: var(--cm-choco); color: var(--cm-blanco); }
.cm-tallas input:focus-visible + span { outline: 3px solid var(--cm-caramelo); outline-offset: 2px; }

.woocommerce div.product .woocommerce-tabs ul.tabs {
	padding: 0;
	margin: 0 0 24px;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li {
	border: 2px solid var(--cm-linea) !important;
	border-radius: var(--cm-radio-btn) !important;
	background: var(--cm-blanco) !important;
	margin: 0 !important;
	padding: 0 !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a { padding: 10px 20px !important; color: var(--cm-choco) !important; font-weight: 600; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { background: var(--cm-choco) !important; border-color: var(--cm-choco) !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--cm-blanco) !important; }
.woocommerce div.product .related > h2,
.woocommerce div.product .upsells > h2 { margin-top: 40px; }

.cm-ventajas {
	list-style: none;
	padding: 18px 20px;
	margin: 24px 0 0;
	display: grid;
	gap: 10px;
	background: var(--cm-crema);
	border-radius: var(--cm-radio);
	font-size: 15px;
}
.cm-ventajas li { display: flex; gap: 10px; align-items: center; }
.cm-ventajas svg { width: 22px; height: 22px; color: var(--cm-choco); flex: none; }

/* ---------- Avisos WooCommerce ---------- */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.cm-aviso {
	list-style: none;
	border: 0 !important;
	border-left: 0;
	border-radius: var(--cm-radio);
	background: var(--cm-crema) !important;
	color: var(--cm-cacao) !important;
	padding: 16px 22px 16px 56px !important;
	margin: 0 0 24px !important;
	position: relative;
}
.woocommerce-message::before,
.woocommerce-info::before { color: var(--cm-choco) !important; top: 16px !important; left: 22px !important; }
.woocommerce-error { background: #f8dcd4 !important; }
.woocommerce-error::before { color: var(--cm-error) !important; }
.woocommerce-message .button,
.woocommerce-info .button { float: right; padding: 9px 18px; font-size: 15px; }
.cm-aviso--exito { background: #e3efdf !important; padding-left: 22px !important; }
.cm-aviso--error { background: #f8dcd4 !important; padding-left: 22px !important; }

/* Carrito, pago, cuenta */
.woocommerce table.shop_table {
	border: 2px solid var(--cm-linea);
	border-radius: var(--cm-radio);
	border-collapse: separate;
	overflow: hidden;
	background: var(--cm-blanco);
}
.woocommerce table.shop_table th { font-family: var(--cm-display); color: var(--cm-choco); font-size: 17px; }
.woocommerce table.shop_table td,
.woocommerce table.shop_table th { border-color: var(--cm-linea) !important; padding: 14px 16px; }
.woocommerce table.shop_table img { width: 72px; border-radius: var(--cm-radio-sm); }
.woocommerce a.remove { color: var(--cm-error) !important; }
.woocommerce a.remove:hover { background: var(--cm-error); color: #fff !important; }
.woocommerce .cart-collaterals .cart_totals,
.woocommerce-checkout #order_review,
.woocommerce-account .woocommerce-MyAccount-navigation {
	background: var(--cm-crema);
	border-radius: var(--cm-radio-lg);
	padding: 26px;
}
.woocommerce-checkout #payment { background: var(--cm-blanco) !important; border-radius: var(--cm-radio) !important; }
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; margin: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation a { display: block; padding: 10px 14px; border-radius: var(--cm-radio-sm); text-decoration: none; font-weight: 600; }
.woocommerce-account .woocommerce-MyAccount-navigation .is-active a { background: var(--cm-blanco); }
.woocommerce .checkout-button,
.woocommerce #place_order { width: 100%; font-size: 19px !important; padding: 18px !important; }

/* Bloques del carrito/checkout (Gutenberg) */
.wc-block-components-button:not(.is-link) {
	border-radius: var(--cm-radio-btn) !important;
	background: var(--cm-choco) !important;
	color: #fff !important;
	font-family: var(--cm-ui);
	font-weight: 700;
}
.wc-block-components-product-name { color: var(--cm-choco); font-weight: 600; }

/* ---------- Contacto ---------- */
.cm-contacto {
	display: grid;
	grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
	gap: clamp(28px, 5vw, 72px);
	align-items: start;
}
.cm-contacto__info h2 { font-size: clamp(26px, 3vw, 34px); }
.cm-contacto__lista { list-style: none; margin: 28px 0; padding: 0; display: grid; gap: 20px; }
.cm-contacto__lista li { display: grid; grid-template-columns: 52px 1fr; gap: 14px; align-items: center; }
.cm-contacto__lista .cm-promesa__icono { width: 52px; height: 52px; }
.cm-contacto__lista .cm-promesa__icono svg { width: 24px; height: 24px; }
.cm-contacto__lista strong { display: block; font-family: var(--cm-display); color: var(--cm-choco); font-size: 18px; }
.cm-contacto__lista span, .cm-contacto__lista a { color: var(--cm-texto-suave); }
.cm-mapa {
	background: var(--cm-blanco);
	border-radius: 26px;
	padding: 14px;
	position: relative;
	box-shadow: var(--cm-sombra);
	border: var(--cm-costura);
}
.cm-mapa__marco {
	aspect-ratio: 4 / 3;
	border-radius: var(--cm-radio-btn);
	overflow: hidden;
	background: var(--cm-crema);
}
.cm-mapa__marco iframe { width: 100%; height: 100%; border: 0; display: block; }
.cm-mapa__pie {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 16px 10px 6px;
	font-weight: 600;
	color: var(--cm-choco);
}

/* ---------- Contenido genérico / Elementor ---------- */
.cm-entrada { max-width: 760px; margin-inline: auto; }
.cm-entrada > * + * { margin-top: 1.1em; }
.cm-entrada img { border-radius: var(--cm-radio); }
.cm-ancho-completo { width: 100%; }
.elementor-page .cm-contenido--elementor { padding: 0; }
.elementor-section.elementor-section-boxed > .elementor-container { max-width: var(--cm-ancho); }

.cm-tarjetas-blog { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }
.cm-tarjeta-blog img { border-radius: var(--cm-radio-lg); aspect-ratio: 4/3; object-fit: cover; margin-bottom: 14px; }
.cm-tarjeta-blog h2 { font-size: 24px; }
.cm-tarjeta-blog a { text-decoration: none; }

.cm-404 { text-align: center; padding: clamp(64px, 10vw, 140px) 0; }
.cm-404__oso { width: min(280px, 70vw); margin: 0 auto 36px; }

/* ---------- Pie de página ---------- */
.cm-footer {
	background: var(--cm-crema);
	color: var(--cm-texto);
	position: relative;
	margin-top: 0;
}
.cm-footer::before {
	content: "";
	position: absolute;
	left: 0; right: 0; top: -25px;
	height: 26px;
	background: radial-gradient(circle at 20px 32px, var(--cm-crema) 21px, transparent 22px) 0 0 / 40px 26px repeat-x;
}
.cm-footer__grid {
	display: grid;
	grid-template-columns: 1fr 1.2fr 1.2fr 1.35fr;
	gap: 32px;
	padding: 40px 0 28px;
}
.cm-footer__marca img { width: 96px; margin-bottom: 10px; }
.cm-footer__marca p { color: var(--cm-texto-suave); font-size: 15px; line-height: 1.5; max-width: 22rem; margin-bottom: 0; }
.cm-footer__datos { font-size: 15px; line-height: 1.55; color: var(--cm-texto); margin: 0 0 10px; }
.cm-footer .cm-footer__dos-col { grid-template-columns: 1fr 1fr; column-gap: 20px; }
.cm-footer .cm-footer__ayuda { grid-auto-flow: column; justify-content: start; column-gap: 22px; }
.cm-footer h3 { font-size: 19px; margin-bottom: 10px; }
.cm-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; font-size: 15px; }
.cm-footer a { color: var(--cm-texto); text-decoration: none; }
.cm-footer a:hover { color: var(--cm-choco); text-decoration: underline; }
.cm-redes { display: flex; gap: 8px; margin-top: 14px; }
.cm-redes a {
	width: 44px; height: 44px;
	display: grid; place-items: center;
	border-radius: 50%;
	background: var(--cm-blanco);
	color: var(--cm-choco);
	border: var(--cm-costura);
}
.cm-redes a:hover { background: var(--cm-choco); color: var(--cm-blanco); text-decoration: none; }
.cm-redes svg { width: 20px; height: 20px; }
.cm-footer__base {
	border-top: var(--cm-costura);
	padding: 16px 0 20px;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 8px;
	font-size: 14px;
	color: var(--cm-texto-suave);
}
.cm-footer__legales { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 20px; }
.cm-footer__copy { font-size: 13px; opacity: .85; }
.cm-footer__legales a { color: var(--cm-texto-suave); }

/* Botón flotante WhatsApp */
.cm-wa-flotante {
	position: fixed;
	right: 20px; bottom: 20px;
	z-index: 60;
	width: 60px; height: 60px;
	display: grid; place-items: center;
	border-radius: 50%;
	background: #2f7d4f;
	color: #fff;
	box-shadow: 0 10px 24px -8px rgba(0, 0, 0, .4);
}
.cm-wa-flotante:hover { background: #24603d; color: #fff; }
.cm-wa-flotante svg { width: 30px; height: 30px; }

/* ---------- Menú móvil ---------- */
.cm-drawer {
	position: fixed;
	inset: 0;
	z-index: 100;
	visibility: hidden;
}
.cm-drawer.is-open { visibility: visible; }
.cm-drawer__fondo {
	position: absolute; inset: 0;
	background: rgba(75, 46, 31, .45);
	opacity: 0;
	transition: opacity .25s;
}
.cm-drawer.is-open .cm-drawer__fondo { opacity: 1; }
.cm-drawer__panel {
	position: absolute;
	top: 0; bottom: 0; left: 0;
	width: min(380px, 88vw);
	background: var(--cm-leche);
	padding: 20px;
	overflow-y: auto;
	transform: translateX(-100%);
	transition: transform .3s cubic-bezier(.2, .8, .2, 1);
	border-right: var(--cm-costura);
}
.cm-drawer--derecha .cm-drawer__panel { left: auto; right: 0; transform: translateX(100%); border-right: 0; border-left: var(--cm-costura); display: flex; flex-direction: column; }
.cm-drawer.is-open .cm-drawer__panel { transform: none; }
.cm-drawer__cabeza { display: flex; justify-content: space-between; align-items: center; margin-bottom: 18px; }
.cm-drawer__cabeza img { height: 56px; width: auto; }
.cm-drawer__cabeza h2 { font-size: 26px; margin: 0; }
.cm-drawer .cm-menu { flex-direction: column; gap: 0; }
.cm-drawer .cm-menu > li { border-bottom: var(--cm-costura); }
.cm-drawer .cm-menu > li > a { padding: 16px 4px; font-size: 22px; border-radius: 0; background: none; width: 100%; justify-content: space-between; }
.cm-drawer .cm-menu > li > .sub-menu {
	position: static;
	transform: none;
	width: auto;
	box-shadow: none;
	opacity: 1;
	visibility: visible;
	padding: 0 0 14px;
	background: none;
	display: none;
	grid-template-columns: 1fr;
}
.cm-drawer .cm-menu > li.is-abierto > .sub-menu { display: grid; }
.cm-drawer .cm-menu > li.is-abierto > a::after { transform: translateY(2px) rotate(-135deg); }
.cm-drawer .cm-menu .sub-menu .cm-menu-todo { border-top: 0; margin-top: 0; padding-top: 0; }

/* Mini carrito */
.cm-minicart { flex: 1; overflow-y: auto; }
.cm-minicart .woocommerce-mini-cart,
.cm-minicart ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 16px; }
.cm-minicart .woocommerce-mini-cart-item,
.cm-minicart__item { position: relative; display: grid; grid-template-columns: 72px 1fr; gap: 14px; align-items: center; padding-right: 28px; }
.cm-minicart .woocommerce-mini-cart-item a:not(.remove) { display: contents; font-weight: 600; text-decoration: none; color: var(--cm-texto); }
.cm-minicart img { width: 72px !important; height: 88px; object-fit: cover; object-position: 50% 20%; border-radius: var(--cm-radio-sm); grid-row: span 2; }
.cm-minicart .remove { position: absolute; right: 0; top: 0; text-decoration: none; font-size: 22px; color: var(--cm-texto-suave); }
.cm-minicart .quantity { color: var(--cm-texto-suave); font-size: 15px; }
.cm-minicart .woocommerce-mini-cart__total,
.cm-minicart__total { display: flex; justify-content: space-between; border-top: var(--cm-costura); padding-top: 16px; margin-top: 18px; font-family: var(--cm-display); font-size: 20px; color: var(--cm-choco); }
.cm-minicart .woocommerce-mini-cart__buttons { display: grid; gap: 10px; margin-top: 16px; }
.cm-minicart .woocommerce-mini-cart__buttons .button:not(.checkout) { background: transparent; color: var(--cm-choco); }
.cm-minicart .woocommerce-mini-cart__empty-message,
.cm-minicart__vacio { text-align: center; color: var(--cm-texto-suave); padding: 40px 0; }

/* ---------- Responsive ---------- */
@media (max-width: 1080px) {
	ul.products,
	.woocommerce ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.cm-footer__grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 900px) {
	.cm-nav { display: none; }
	.cm-burger { display: inline-grid; }
	.cm-buscar-barra { display: none; }
	.cm-header__inner { min-height: 70px; gap: 8px; justify-content: space-between; }
	.cm-burger { order: 0; }
	.cm-logo { order: 1; margin-right: auto; }
	.cm-actions { order: 2; }
	.cm-logo img, .cm-logo .custom-logo { height: 56px; }
	.cm-actions .cm-icon-btn--cuenta { display: none; }
	.cm-banda { grid-template-columns: 1fr; }
	.cm-promesas { grid-template-columns: 1fr; gap: 24px; }
	.woocommerce div.product,
	.cm-producto,
	.cm-contacto { grid-template-columns: 1fr; }
	.cm-colecciones { grid-template-columns: repeat(4, 1fr); }
	.cm-tarjetas-blog { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 640px) {
	body { font-size: 16px; }
	ul.products,
	.woocommerce ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 14px; }
	ul.products li.product .woocommerce-loop-product__title { font-size: 15px !important; }
	ul.products li.product .price { font-size: 18px !important; }
	ul.products li.product .button { font-size: 13px; padding: 10px 8px; width: 100%; white-space: nowrap; }
	.cm-colecciones { grid-template-columns: repeat(2, 1fr); }
	.cm-coleccion__img { border-width: 4px; }
	.cm-banda { border-radius: 22px; }
	.cm-banda::before { border-radius: var(--cm-radio-sm); }
	.cm-banda__fotos img:last-child { margin-top: 28px; }
	.cm-mapa__marco { aspect-ratio: 1 / 1; }
	.cm-footer__grid { grid-template-columns: 1fr 1fr; gap: 24px 16px; padding-top: 32px; }
	.cm-footer__marca, .cm-footer__grid > div:last-child { grid-column: 1 / -1; }
	.cm-footer .cm-footer__dos-col { grid-template-columns: 1fr; }
	.cm-tarjetas-blog { grid-template-columns: 1fr; }
	.cm-tabs button { padding: 10px 20px; }
	.cm-seccion__cabeza { align-items: start; }
	.cm-wa-flotante { width: 54px; height: 54px; right: 14px; bottom: 14px; }
}

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

/* ---------- Miniatura con segunda foto al pasar el cursor ---------- */
ul.products li.product .cm-thumb {
	position: relative;
	aspect-ratio: 4 / 5;
	overflow: hidden;
	border-radius: var(--cm-radio-lg) var(--cm-radio-lg) var(--cm-radio) var(--cm-radio);
	background: var(--cm-crema);
	margin-bottom: 14px;
	transition: transform .35s cubic-bezier(.2, .8, .2, 1);
}
ul.products li.product .cm-thumb img {
	height: 100%;
	aspect-ratio: auto;
	margin: 0 !important;
	border-radius: 0;
	transition: opacity .35s;
}
ul.products li.product a:hover .cm-thumb { transform: translateY(-4px); }
ul.products li.product a:hover .cm-thumb img { transform: none; }
ul.products li.product .cm-thumb .cm-img-alt { position: absolute; inset: 0; opacity: 0; }
ul.products li.product a:hover .cm-thumb .cm-img-alt { opacity: 1; }

/* Buscar en móvil */
.cm-actions .cm-icon-btn--buscar-movil { display: none; }
@media (max-width: 900px) {
	.cm-actions .cm-icon-btn--buscar-movil { display: inline-grid; }
}

/* Ajustes sobre el CSS propio de WooCommerce (más específico) */
.woocommerce ul.products li.product .cm-thumb img,
.woocommerce-page ul.products li.product .cm-thumb img,
ul.products li.product .cm-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 50% 20%;
	margin: 0 !important;
}
.woocommerce ul.products li.product .onsale,
.woocommerce-page ul.products li.product .onsale {
	top: 14px;
	left: 14px;
	right: auto;
	margin: 0;
}
.woocommerce div.product > span.onsale { top: 18px; left: 18px; }

/* Botones .alt de WooCommerce (vienen en morado por defecto) */
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce #respond input#submit.alt,
.woocommerce button.button.alt.disabled,
.woocommerce button.button.alt:disabled,
.woocommerce button.button.alt:disabled[disabled] {
	background: var(--cm-choco);
	border-color: var(--cm-choco);
	color: var(--cm-blanco);
}
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover { background: var(--cm-cacao); border-color: var(--cm-cacao); color: var(--cm-blanco); }
.woocommerce button.button.alt.disabled,
.woocommerce button.button.alt:disabled { opacity: .45; cursor: not-allowed; }
.woocommerce div.product .woocommerce-tabs .panel > h2:first-child { font-size: 26px; }
.woocommerce div.product form.cart .reset_variations { display: inline-block; margin-top: 8px; font-size: 14px; }
.woocommerce div.product .woocommerce-variation-price .price { margin-bottom: 8px; }

/* Textos largos (políticas, entradas): subtítulos más contenidos */
.cm-entrada h2 { font-size: clamp(24px, 2.6vw, 30px); margin-top: 1.6em; }
.cm-entrada h3 { font-size: 22px; }
.cm-entrada ul, .cm-entrada ol { padding-left: 1.3em; }
.cm-entrada li + li { margin-top: .35em; }

/* Elementos que sí deben ser círculos */
.cm-cart-count { border-radius: 999px; }

/* ---------- Preguntas frecuentes ---------- */
.cm-faq__grid {
	display: grid;
	grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
	gap: clamp(28px, 5vw, 72px);
	align-items: start;
}
.cm-faq__intro { position: sticky; top: 120px; }
.cm-faq__intro p { color: var(--cm-texto-suave); max-width: 26rem; margin-bottom: 24px; }
.cm-faq__lista { border-top: var(--cm-costura); }
.cm-faq__item { border-bottom: var(--cm-costura); }
.cm-faq__item summary {
	list-style: none;
	cursor: pointer;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	padding: 20px 4px;
	font-family: var(--cm-display);
	font-weight: 700;
	font-size: clamp(18px, 1.7vw, 21px);
	color: var(--cm-choco);
}
.cm-faq__item summary::-webkit-details-marker { display: none; }
.cm-faq__item summary::after {
	content: "+";
	flex: none;
	width: 34px; height: 34px;
	display: grid; place-items: center;
	border-radius: var(--cm-radio-sm);
	background: var(--cm-blanco);
	font-size: 22px;
	line-height: 1;
	transition: transform .25s, background-color .2s;
}
.cm-faq__item[open] summary::after { content: "−"; background: var(--cm-choco); color: var(--cm-blanco); }
.cm-faq__item summary:hover::after { background: var(--cm-miel); }
.cm-faq__item[open] summary:hover::after { background: var(--cm-cacao); }
.cm-faq__respuesta { padding: 0 52px 22px 4px; color: var(--cm-texto); }
.cm-faq__respuesta p { margin: 0; }
@media (prefers-reduced-motion: no-preference) {
	.cm-faq__item[open] .cm-faq__respuesta { animation: cm-abre .25s ease-out; }
}
@keyframes cm-abre { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }

/* ---------- Instagram ---------- */
.cm-instagram .cm-btn svg { width: 20px; height: 20px; }
.cm-instagram__grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: 12px;
}
.cm-instagram__grid a { display: block; position: relative; border-radius: var(--cm-radio); overflow: hidden; }
.cm-instagram__grid img { width: 100%; aspect-ratio: 1; object-fit: cover; object-position: 50% 20%; transition: transform .35s; }
.cm-instagram__grid a::after {
	content: "";
	position: absolute; inset: 0;
	background: rgba(124, 78, 51, .35) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M12 7.3a4.7 4.7 0 1 0 0 9.4 4.7 4.7 0 0 0 0-9.4Zm0 7.7a3 3 0 1 1 0-6 3 3 0 0 1 0 6Zm6-7.9a1.1 1.1 0 1 1-2.2 0 1.1 1.1 0 0 1 2.2 0ZM21 8.2c0-1.5-.4-2.8-1.4-3.8S17.3 3 15.8 3c-1.6-.1-6.1-.1-7.6 0C6.7 3 5.4 3.4 4.4 4.4S3 6.7 3 8.2c-.1 1.6-.1 6.1 0 7.6 0 1.5.4 2.8 1.4 3.8s2.3 1.4 3.8 1.4c1.6.1 6.1.1 7.6 0 1.5 0 2.8-.4 3.8-1.4s1.4-2.3 1.4-3.8c.1-1.6.1-6 0-7.6Z'/%3E%3C/svg%3E") center / 34px no-repeat;
	opacity: 0;
	transition: opacity .25s;
}
.cm-instagram__grid a:hover::after,
.cm-instagram__grid a:focus-visible::after { opacity: 1; }
.cm-instagram__grid a:hover img { transform: scale(1.04); }

/* Ajustes al feed de Smash Balloon para que use el estilo de la tienda */
.cm-instagram__feed #sb_instagram { padding: 0 !important; }
.cm-instagram__feed #sb_instagram .sbi_photo { border-radius: var(--cm-radio); overflow: hidden; }
.cm-instagram__feed #sb_instagram .sbi_follow_btn a,
.cm-instagram__feed #sb_instagram #sbi_load .sbi_load_btn {
	background: var(--cm-choco) !important;
	border-radius: var(--cm-radio-btn) !important;
	font-family: var(--cm-ui);
	font-weight: 700;
}

@media (max-width: 900px) {
	.cm-faq__grid { grid-template-columns: 1fr; }
	.cm-faq__intro { position: static; }
	.cm-instagram__grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 640px) {
	.cm-faq__respuesta { padding-right: 4px; }
	.cm-instagram__grid { gap: 8px; }
}

/* ==========================================================================
   Íconos del menú
   ========================================================================== */
.cm-mi { display: inline-grid; place-items: center; flex: none; line-height: 0; }
.cm-mi svg { width: 22px; height: 22px; stroke-width: 1.8; }
.cm-menu > li > a { gap: 8px; }
.cm-menu > li > a .cm-mi { color: var(--cm-caramelo); transition: color .2s; }
.cm-menu > li > a:hover .cm-mi,
.cm-menu > li:focus-within > a .cm-mi { color: var(--cm-choco); }

/* Ítems del desplegable con ícono en un cuadrito */
.cm-menu .sub-menu a {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 8px 12px 8px 8px;
	transition: background-color .2s, color .2s, transform .2s;
}
.cm-menu .sub-menu .cm-mi {
	width: 38px; height: 38px;
	border-radius: var(--cm-radio-sm);
	background: var(--cm-crema);
	color: var(--cm-choco);
	transition: background-color .2s, color .2s, transform .3s cubic-bezier(.3, 1.6, .5, 1);
}
.cm-menu .sub-menu .cm-mi svg { width: 21px; height: 21px; }
.cm-menu .sub-menu a:hover { background: var(--cm-leche); transform: translateX(4px); }
.cm-menu .sub-menu a:hover .cm-mi { background: var(--cm-choco); color: var(--cm-blanco); transform: rotate(-8deg) scale(1.08); }
.cm-menu .sub-menu .cm-menu-todo .cm-mi { background: var(--cm-miel); }

/* En el menú móvil */
.cm-drawer .cm-menu > li > a { justify-content: flex-start; }
.cm-drawer .cm-menu > li.menu-item-has-children > a::after { margin-left: auto; }
.cm-drawer .cm-menu > li > a .cm-mi svg { width: 26px; height: 26px; }

/* ==========================================================================
   Movimiento (solo si la persona no pidió reducirlo)
   ========================================================================== */
@media (prefers-reduced-motion: no-preference) {

	/* --- Menú --- */
	.cm-menu > li > a:hover .cm-mi,
	.cm-menu > li:focus-within > a .cm-mi { animation: cm-menea .6s ease-in-out; }
	.cm-menu > li > a { transition: background-color .2s, transform .2s; }
	.cm-menu > li > a:hover { transform: translateY(-2px); }

	/* El desplegable cae y sus ítems entran en cascada */
	.cm-nav .cm-menu > li > .sub-menu > li {
		opacity: 0;
		transform: translateY(8px);
		transition: opacity .25s, transform .3s cubic-bezier(.2, .8, .2, 1);
	}
	.cm-nav .cm-menu > li:hover > .sub-menu > li,
	.cm-nav .cm-menu > li:focus-within > .sub-menu > li { opacity: 1; transform: none; }
	.cm-nav .cm-menu > li > .sub-menu > li:nth-child(1) { transition-delay: .02s; }
	.cm-nav .cm-menu > li > .sub-menu > li:nth-child(2) { transition-delay: .05s; }
	.cm-nav .cm-menu > li > .sub-menu > li:nth-child(3) { transition-delay: .08s; }
	.cm-nav .cm-menu > li > .sub-menu > li:nth-child(4) { transition-delay: .11s; }
	.cm-nav .cm-menu > li > .sub-menu > li:nth-child(5) { transition-delay: .14s; }
	.cm-nav .cm-menu > li > .sub-menu > li:nth-child(6) { transition-delay: .17s; }
	.cm-nav .cm-menu > li > .sub-menu > li:nth-child(7) { transition-delay: .2s; }
	.cm-nav .cm-menu > li > .sub-menu > li:nth-child(8) { transition-delay: .23s; }
	.cm-nav .cm-menu > li > .sub-menu > li:nth-child(9) { transition-delay: .26s; }

	/* --- Botones --- */
	.cm-btn, .button, .woocommerce a.button, .woocommerce button.button {
		transition: background-color .2s, color .2s, border-color .2s, transform .2s, box-shadow .2s;
	}
	.cm-btn:hover, .button:hover, .woocommerce a.button:hover, .woocommerce button.button:hover {
		transform: translateY(-2px);
		box-shadow: 0 10px 18px -10px rgba(124, 78, 51, .6);
	}
	.cm-btn:hover svg { animation: cm-menea .6s ease-in-out; }

	/* --- Íconos de cabecera --- */
	.cm-icon-btn { transition: background-color .2s, transform .2s; }
	.cm-icon-btn:hover { transform: translateY(-2px); }
	.cm-icon-btn:hover svg { animation: cm-menea .6s ease-in-out; }
	.cm-cart-count.is-salta { animation: cm-salta .5s cubic-bezier(.3, 1.8, .5, 1); }

	/* --- Colecciones --- */
	.cm-coleccion__img { transition: box-shadow .2s, transform .35s cubic-bezier(.3, 1.5, .5, 1); }
	.cm-coleccion__img img { transition: transform .5s cubic-bezier(.2, .8, .2, 1); }
	.cm-coleccion a:hover .cm-coleccion__img { transform: translateY(-6px) rotate(-3deg); }
	.cm-coleccion a:hover .cm-coleccion__img img { transform: scale(1.08); }
	.cm-coleccion a:hover .cm-coleccion__nombre { color: var(--cm-caramelo); }
	.cm-coleccion__nombre { transition: color .2s; }

	/* --- Tarjetas de producto --- */
	ul.products li.product .cm-thumb { transition: transform .35s cubic-bezier(.2, .8, .2, 1), box-shadow .35s; }
	ul.products li.product .cm-thumb img { transition: opacity .35s, transform .6s cubic-bezier(.2, .8, .2, 1); }
	ul.products li.product a:hover .cm-thumb { transform: translateY(-6px); box-shadow: 0 18px 30px -18px rgba(124, 78, 51, .55); }
	ul.products li.product a:hover .cm-thumb img:not(.cm-img-alt) { transform: scale(1.06); }
	ul.products li.product .woocommerce-loop-product__title { transition: color .2s; }
	ul.products li.product a:hover .woocommerce-loop-product__title { color: var(--cm-caramelo); }
	ul.products li.product .onsale { animation: cm-vaiven 3s ease-in-out infinite; }

	/* --- Banda Prematuro --- */
	.cm-banda__fotos img { transition: transform .45s cubic-bezier(.3, 1.4, .5, 1); }
	.cm-banda__fotos img:first-child:hover { transform: rotate(-3deg) scale(1.03); }
	.cm-banda__fotos img:last-child:hover { transform: rotate(3deg) scale(1.03); }

	/* --- Promesas y redes --- */
	.cm-promesa__icono { transition: transform .4s cubic-bezier(.3, 1.6, .5, 1), background-color .2s; }
	.cm-promesa:hover .cm-promesa__icono { transform: rotate(-12deg) scale(1.08); background: var(--cm-miel); }
	.cm-redes a { transition: background-color .2s, color .2s, transform .3s cubic-bezier(.3, 1.6, .5, 1); }
	.cm-redes a:hover { transform: translateY(-3px) rotate(-8deg); }

	/* --- Preguntas frecuentes --- */
	.cm-faq__item summary { transition: color .2s, padding-left .25s; }
	.cm-faq__item summary:hover { padding-left: 10px; color: var(--cm-caramelo); }
	.cm-faq__item summary::after { transition: transform .3s cubic-bezier(.3, 1.6, .5, 1), background-color .2s; }
	.cm-faq__item[open] summary::after { transform: rotate(180deg); }

	/* --- Instagram --- */
	.cm-instagram__grid a { transition: transform .35s cubic-bezier(.3, 1.4, .5, 1); }
	.cm-instagram__grid li:nth-child(odd) a:hover { transform: translateY(-6px) rotate(-2deg); }
	.cm-instagram__grid li:nth-child(even) a:hover { transform: translateY(-6px) rotate(2deg); }

	/* --- WhatsApp flotante: latido suave --- */
	.cm-wa-flotante::before {
		content: "";
		position: absolute;
		inset: 0;
		border-radius: 50%;
		border: 2px solid #2f7d4f;
		animation: cm-onda 2.8s ease-out infinite;
	}
	.cm-wa-flotante { transition: transform .25s cubic-bezier(.3, 1.6, .5, 1); }
	.cm-wa-flotante:hover { transform: scale(1.1) rotate(-6deg); }

	/* --- Aparición al hacer scroll --- */
	.cm-js .cm-revelar {
		opacity: 0;
		transform: translateY(28px);
		transition: opacity .7s cubic-bezier(.2, .8, .2, 1), transform .7s cubic-bezier(.2, .8, .2, 1);
		transition-delay: var(--cm-retraso, 0s);
	}
	.cm-js .cm-revelar.is-visible { opacity: 1; transform: none; }
	/* Al terminar de aparecer, las tarjetas recuperan sus propias transiciones de hover */
	.cm-js .cm-revelar.is-listo { transition-delay: 0s; }
}

@keyframes cm-menea {
	0%, 100% { transform: rotate(0); }
	20% { transform: rotate(-14deg); }
	40% { transform: rotate(10deg); }
	60% { transform: rotate(-6deg); }
	80% { transform: rotate(3deg); }
}
@keyframes cm-flota {
	0%, 100% { transform: translateY(0) rotate(0); }
	50% { transform: translateY(-12px) rotate(-1.5deg); }
}
@keyframes cm-balanceo {
	0%, 100% { transform: rotate(-18deg); }
	50% { transform: rotate(-8deg); }
}
ul.products li.product .onsale { transform-origin: 50% 0; }
@keyframes cm-vaiven {
	0%, 100% { transform: rotate(-4deg); }
	50% { transform: rotate(4deg); }
}
@keyframes cm-salta {
	0% { transform: scale(1); }
	40% { transform: scale(1.5); }
	100% { transform: scale(1); }
}
@keyframes cm-sube {
	from { opacity: 0; transform: translateY(24px); }
	to { opacity: 1; transform: none; }
}
@keyframes cm-onda {
	0% { transform: scale(1); opacity: .7; }
	70%, 100% { transform: scale(1.6); opacity: 0; }
}

/* ==========================================================================
   Encabezados de página y categoría centrados
   ========================================================================== */
.cm-pagina-cabeza { text-align: center; }
.cm-pagina-cabeza p,
.cm-pagina-cabeza .term-description { margin-inline: auto; }
.cm-pagina-cabeza .term-description p { margin-inline: auto; }
.cm-pagina-cabeza .cm-chips { justify-content: center; }
.cm-pagina-cabeza .woocommerce-breadcrumb,
.cm-pagina-cabeza .cm-migas { text-align: center; }

/* ==========================================================================
   Tienda con panel de filtros
   ========================================================================== */
.cm-tienda {
	display: grid;
	grid-template-columns: 260px minmax(0, 1fr);
	gap: clamp(28px, 3.5vw, 48px);
	align-items: start;
}
.cm-tienda ul.products,
.woocommerce .cm-tienda ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cm-pagina-cabeza .cm-chips { display: none; }

.cm-filtros {
	position: sticky;
	top: 112px;
	max-height: calc(100vh - 130px);
	overflow-y: auto;
	padding-right: 6px;
	scrollbar-width: thin;
}
.admin-bar .cm-filtros { top: 144px; }
.cm-filtros__cabeza { display: flex; justify-content: space-between; align-items: center; margin-bottom: 6px; }
.cm-filtros__cabeza h2 { font-size: 26px; margin: 0; }
.cm-filtros__cerrar { display: none; }
.cm-filtro { border: 0; margin: 0; padding: 18px 0; border-bottom: var(--cm-costura); min-width: 0; }
.cm-filtro__titulo { font-family: var(--cm-display); font-weight: 700; font-size: 18px; color: var(--cm-choco); margin: 0 0 12px; padding: 0; }

.cm-filtro__cats { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.cm-filtro__cats a {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 6px 8px 6px 6px;
	border-radius: var(--cm-radio-sm);
	color: var(--cm-texto);
	text-decoration: none;
	font-weight: 500;
	font-size: 15px;
	transition: background-color .2s, transform .2s;
}
.cm-filtro__cats .cm-mi { width: 30px; height: 30px; border-radius: 8px; background: var(--cm-crema); color: var(--cm-choco); }
.cm-filtro__cats .cm-mi svg { width: 18px; height: 18px; }
.cm-filtro__cats a:hover { background: var(--cm-crema); transform: translateX(3px); }
.cm-filtro__cats a[aria-current="page"] { background: var(--cm-choco); color: var(--cm-blanco); font-weight: 600; }
.cm-filtro__cats a[aria-current="page"] .cm-mi { background: rgba(255, 255, 255, .18); color: var(--cm-blanco); }
.cm-filtro__n { margin-left: auto; font-size: 13px; opacity: .7; }

/* Tallas como chips */
.cm-filtro__tallas { display: flex; flex-wrap: wrap; gap: 8px; }
.cm-chip-check { position: relative; cursor: pointer; }
.cm-chip-check input,
.cm-color-check input,
.cm-radio input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.cm-chip-check span {
	display: inline-block;
	padding: 7px 12px;
	border-radius: var(--cm-radio-sm);
	border: 2px solid var(--cm-linea);
	background: var(--cm-blanco);
	font-size: 14px;
	font-weight: 600;
	color: var(--cm-texto);
	transition: border-color .15s, background-color .15s, color .15s, transform .15s;
}
.cm-chip-check:hover span { border-color: var(--cm-caramelo); transform: translateY(-1px); }
.cm-chip-check input:checked + span { background: var(--cm-choco); border-color: var(--cm-choco); color: var(--cm-blanco); }
.cm-chip-check input:focus-visible + span,
.cm-color-check input:focus-visible + .cm-color-check__punto,
.cm-radio input:focus-visible + span { outline: 3px solid var(--cm-caramelo); outline-offset: 2px; }

/* Colores */
.cm-filtro__colores { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 10px; }
.cm-color-check { position: relative; display: flex; align-items: center; gap: 8px; cursor: pointer; font-size: 14px; font-weight: 500; color: var(--cm-texto); }
.cm-color-check__punto {
	width: 26px; height: 26px; flex: none;
	border-radius: 50%;
	background: var(--cm-c);
	box-shadow: inset 0 0 0 1px rgba(75, 46, 31, .18);
	position: relative;
	transition: transform .2s cubic-bezier(.3, 1.6, .5, 1), box-shadow .2s;
}
.cm-color-check:hover .cm-color-check__punto { transform: scale(1.12); }
.cm-color-check input:checked + .cm-color-check__punto { box-shadow: 0 0 0 2px var(--cm-leche), 0 0 0 4px var(--cm-choco); }
.cm-color-check input:checked + .cm-color-check__punto::after {
	content: "";
	position: absolute;
	left: 50%; top: 45%;
	width: 6px; height: 11px;
	border: solid #fff;
	border-width: 0 2.5px 2.5px 0;
	transform: translate(-50%, -50%) rotate(45deg);
	filter: drop-shadow(0 0 1px rgba(0, 0, 0, .6));
}
.cm-color-check input:checked ~ .cm-color-check__nombre { font-weight: 700; color: var(--cm-choco); }

/* Precio */
.cm-filtro__precios { display: grid; gap: 6px; }
.cm-radio { position: relative; cursor: pointer; }
.cm-radio span { display: flex; align-items: center; gap: 10px; font-size: 15px; color: var(--cm-texto); }
.cm-radio span::before {
	content: "";
	width: 18px; height: 18px; flex: none;
	border-radius: 50%;
	border: 2px solid var(--cm-linea);
	background: var(--cm-blanco);
	transition: border-color .15s, box-shadow .15s;
}
.cm-radio:hover span::before { border-color: var(--cm-caramelo); }
.cm-radio input:checked + span { font-weight: 700; color: var(--cm-choco); }
.cm-radio input:checked + span::before { border-color: var(--cm-choco); box-shadow: inset 0 0 0 4px var(--cm-blanco); background: var(--cm-choco); }

.cm-filtros__acciones { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; padding-top: 18px; }
.cm-js .cm-filtros__acciones .cm-btn { display: none; }

/* Barra superior de resultados */
.cm-tienda__productos .cm-tienda-barra { margin-bottom: 8px; }
.cm-tienda__productos .woocommerce-result-count,
.cm-tienda__productos .woocommerce-ordering { margin-bottom: 16px !important; }
.cm-btn-filtros { display: none; padding: 10px 16px; font-size: 15px; }
.cm-btn-filtros svg { width: 18px; height: 18px; }
.cm-btn-filtros__n {
	display: inline-grid; place-items: center;
	min-width: 22px; height: 22px; padding: 0 6px;
	border-radius: 999px;
	background: var(--cm-choco); color: var(--cm-blanco);
	font-size: 12px;
}

/* Filtros activos */
.cm-activos { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 26px; }
.cm-activos__titulo { font-size: 14px; color: var(--cm-texto-suave); margin-right: 2px; }
.cm-activo {
	display: inline-flex; align-items: center; gap: 6px;
	padding: 6px 12px;
	border-radius: var(--cm-radio-sm);
	background: var(--cm-crema);
	color: var(--cm-choco);
	font-size: 14px; font-weight: 600;
	text-decoration: none;
	transition: background-color .2s, transform .2s;
}
.cm-activo:hover { background: var(--cm-miel); color: var(--cm-cacao); transform: translateY(-1px); }
.cm-activos__punto { width: 14px; height: 14px; border-radius: 50%; box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .15); }
.cm-activos__limpiar { font-size: 14px; font-weight: 600; margin-left: 4px; }

/* Sin resultados */
.cm-sin-resultados {
	display: grid;
	justify-items: center;
	text-align: center;
	gap: 14px;
	padding: 56px 20px;
	background: var(--cm-crema);
	border-radius: var(--cm-radio-lg);
}
.cm-sin-resultados p { margin: 0; color: var(--cm-texto-suave); }
.cm-sin-resultados strong { color: var(--cm-choco); font-family: var(--cm-display); font-size: 20px; }

/* Puntitos de color en tarjetas */
.cm-puntos { display: flex; align-items: center; gap: 5px; margin: 2px 0 6px; }
.cm-puntos__punto { width: 14px; height: 14px; border-radius: 50%; background: var(--cm-c); box-shadow: inset 0 0 0 1px rgba(75, 46, 31, .2); }
.cm-puntos__mas { font-size: 12px; font-weight: 600; color: var(--cm-texto-suave); }

/* ==========================================================================
   Variaciones en la página de producto: color y talla
   ========================================================================== */
.woocommerce div.product form.cart .variations select[data-cm-swatch] {
	position: absolute !important;
	width: 1px !important; height: 1px !important;
	opacity: 0; pointer-events: none;
}
.woocommerce div.product form.cart .variations td.value { position: relative; }
.woocommerce div.product form.cart .variations th label { font-family: var(--cm-display); font-size: 18px; }
.woocommerce div.product form.cart .variations tr { display: block; margin-bottom: 14px; }
.cm-swatches { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 4px; }
.cm-swatch {
	font: inherit;
	cursor: pointer;
	transition: transform .2s cubic-bezier(.3, 1.6, .5, 1), border-color .15s, background-color .15s, color .15s, box-shadow .2s, opacity .2s;
}
.cm-swatch--texto {
	min-width: 64px;
	padding: 10px 14px;
	border-radius: var(--cm-radio-btn);
	border: 2px solid var(--cm-linea);
	background: var(--cm-blanco);
	color: var(--cm-texto);
	font-weight: 600;
	font-size: 15px;
}
.cm-swatch--texto:hover { border-color: var(--cm-caramelo); transform: translateY(-2px); }
.cm-swatch--texto[aria-pressed="true"] { background: var(--cm-choco); border-color: var(--cm-choco); color: var(--cm-blanco); }
.cm-swatch--color {
	width: 42px; height: 42px;
	padding: 4px;
	border-radius: 50%;
	border: 2px solid transparent;
	background: transparent;
}
.cm-swatch__punto {
	display: block;
	width: 100%; height: 100%;
	border-radius: 50%;
	background: var(--cm-c);
	box-shadow: inset 0 0 0 1px rgba(75, 46, 31, .2);
}
.cm-swatch--color:hover { transform: scale(1.1); }
.cm-swatch--color[aria-pressed="true"] { border-color: var(--cm-choco); }
.cm-swatch.is-agotado { opacity: .35; position: relative; }
.cm-swatch--texto.is-agotado { text-decoration: line-through; }
.cm-swatch--color.is-agotado::after {
	content: "";
	position: absolute;
	left: 50%; top: 6px; bottom: 6px;
	width: 2px;
	background: var(--cm-cacao);
	transform: rotate(45deg);
}
.cm-swatches__elegido { margin: 8px 0 0; font-size: 14px; color: var(--cm-texto-suave); min-height: 1.4em; }
.woocommerce div.product form.cart .reset_variations { font-weight: 600; }

/* ---------- Responsive de la tienda ---------- */
@media (max-width: 1080px) {
	.cm-tienda ul.products,
	.woocommerce .cm-tienda ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
	.cm-tienda { grid-template-columns: 1fr; }
	.cm-pagina-cabeza .cm-chips {
		display: flex;
		flex-wrap: nowrap;
		justify-content: flex-start;
		overflow-x: auto;
		margin-inline: calc(var(--cm-gutter) * -1);
		padding: 2px var(--cm-gutter) 6px;
		scrollbar-width: none;
		-webkit-overflow-scrolling: touch;
	}
	.cm-pagina-cabeza .cm-chips::-webkit-scrollbar { display: none; }
	.cm-pagina-cabeza .cm-chips li { flex: none; }
	.cm-btn-filtros { display: inline-flex; }
	.cm-filtros {
		position: fixed;
		top: 0; bottom: 0; left: 0;
		z-index: 110;
		width: min(360px, 88vw);
		max-height: none;
		padding: 20px;
		background: var(--cm-leche);
		border-right: var(--cm-costura);
		transform: translateX(-105%);
		transition: transform .3s cubic-bezier(.2, .8, .2, 1);
	}
	.cm-filtros.is-open { transform: none; }
	.cm-filtros__cerrar { display: inline-grid; }
	.cm-filtros-fondo { position: fixed; inset: 0; z-index: 105; background: rgba(75, 46, 31, .45); }
	.cm-filtros-fondo[hidden] { display: none; }
	.cm-js .cm-filtros__acciones .cm-btn { display: inline-flex; flex: 1; }
	.cm-filtros__acciones { position: sticky; bottom: -20px; background: var(--cm-leche); padding-bottom: 20px; }
}
.cm-filtros__form.is-cargando { opacity: .6; pointer-events: none; transition: opacity .2s; }

/* ==========================================================================
   Tipografía: Jost (menú, botones y texto); títulos en Fraunces (ver más abajo)
   ========================================================================== */
body { font-size: 17px; letter-spacing: .005em; }
.cm-btn, .button, button.button, input[type="submit"], .wp-element-button,
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button {
	font-weight: 600;
	letter-spacing: .02em;
}
.cm-menu > li > a { font-weight: 600; font-size: 17px; letter-spacing: .02em; }
.cm-menu .sub-menu a { font-weight: 500; }
.cm-menu .sub-menu .cm-menu-todo a { font-weight: 600; }
.cm-tabs button { font-weight: 600; font-size: 16px; letter-spacing: .02em; }
.cm-enlace { font-weight: 600; font-size: 16px; letter-spacing: .02em; }
span.onsale, .woocommerce span.onsale { font-weight: 600; letter-spacing: .03em; }
ul.products li.product .woocommerce-loop-product__title { font-weight: 500; letter-spacing: .01em; }
.cm-filtro__titulo, .cm-faq__item summary { font-weight: 400; }
.cm-faq__item summary { font-size: clamp(18px, 1.6vw, 20px); }
.cm-coleccion__nombre { font-weight: 700; }
.cm-footer h3 { font-weight: 700; }
h1, h2 { line-height: 1.14; }

/* ==========================================================================
   Hero editorial: titular grande + mosaico de fotos + sello + cinta
   ========================================================================== */
.cm-hero {
	position: relative;
	padding: clamp(36px, 5vw, 64px) 0 0;
	background:
		radial-gradient(1200px 520px at 85% -10%, var(--cm-crema) 0, transparent 60%),
		var(--cm-leche);
	overflow: hidden;
}
.cm-hero__cabeza {
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(0, .65fr);
	gap: clamp(20px, 4vw, 64px);
	align-items: end;
	margin-bottom: clamp(28px, 3.5vw, 48px);
}
.cm-hero__titulo {
	font-size: clamp(44px, 7.2vw, 104px);
	line-height: 1.02;
	letter-spacing: -0.03em;
	margin: 0;
	color: var(--cm-choco);
	text-wrap: balance;
}
.cm-hero__lado { padding-bottom: 10px; }
.cm-hero__bajada {
	font-size: clamp(17px, 1.4vw, 19px);
	line-height: 1.6;
	color: var(--cm-texto-suave);
	margin: 0 0 22px;
	max-width: 30rem;
}
.cm-hero__acciones { display: flex; flex-wrap: wrap; gap: 10px; }

/* Mosaico */
.cm-hero__mosaico {
	position: relative;
	display: grid;
	grid-template-columns: 1.3fr 1fr 1fr;
	gap: clamp(12px, 1.6vw, 20px);
	height: clamp(420px, 44vw, 600px);
}
.cm-hero__card {
	position: relative;
	display: block;
	overflow: hidden;
	border-radius: var(--cm-radio-lg);
	background: var(--cm-crema);
	text-decoration: none;
	isolation: isolate;
}
.cm-hero__card--b { align-self: end; height: 86%; }
.cm-hero__card--c { align-self: start; height: 90%; }
.cm-hero__card img {
	width: 100%; height: 100%;
	object-fit: cover;
	object-position: 50% 18%;
	transition: transform .9s cubic-bezier(.2, .8, .2, 1);
}
.cm-hero__card::after {
	content: "";
	position: absolute;
	inset: 55% 0 0;
	background: linear-gradient(to top, rgba(75, 46, 31, .38), transparent);
	pointer-events: none;
}
.cm-hero__chip {
	position: absolute;
	left: 14px; bottom: 14px;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 8px 16px 8px 8px;
	border-radius: var(--cm-radio-btn);
	background: rgba(253, 250, 244, .92);
	backdrop-filter: blur(6px);
	color: var(--cm-choco);
	box-shadow: 0 10px 24px -14px rgba(75, 46, 31, .6);
	transition: background-color .25s, color .25s, transform .25s;
}
.cm-hero__chip .cm-mi {
	width: 36px; height: 36px;
	border-radius: var(--cm-radio-sm);
	background: var(--cm-crema);
	color: var(--cm-choco);
	transition: background-color .25s, color .25s;
}
.cm-hero__chip .cm-mi svg { width: 20px; height: 20px; }
.cm-hero__chip strong { display: block; font-family: var(--cm-display); font-size: 20px; line-height: 1.1; }
.cm-hero__chip small { display: block; font-size: 13px; font-weight: 500; color: var(--cm-texto-suave); transition: color .25s; }
.cm-hero__card:hover img { transform: scale(1.06); }
.cm-hero__card:hover .cm-hero__chip { background: var(--cm-choco); color: var(--cm-blanco); transform: translateY(-3px); }
.cm-hero__card:hover .cm-hero__chip small { color: var(--cm-miel); }
.cm-hero__card:hover .cm-hero__chip .cm-mi { background: rgba(255, 255, 255, .15); color: var(--cm-blanco); }
.cm-hero__card:focus-visible { outline-offset: 4px; }

/* Sello giratorio entre las fotos */
.cm-hero__sello {
	position: absolute;
	z-index: 3;
	width: clamp(104px, 10vw, 140px);
	aspect-ratio: 1;
	left: calc(1.3 / 3.3 * 100% - clamp(52px, 5vw, 70px));
	top: clamp(-20px, -1vw, -10px);
	display: grid;
	place-items: center;
	border-radius: 50%;
	background: var(--cm-miel);
	color: var(--cm-cacao);
	box-shadow: 0 0 0 6px var(--cm-leche);
	pointer-events: none;
}
.cm-hero__sello svg.cm-hero__sello-texto { position: absolute; inset: 0; width: 100%; height: 100%; }
.cm-hero__sello text { font-family: var(--cm-ui); font-size: 10.4px; font-weight: 600; letter-spacing: .14em; fill: currentColor; text-transform: uppercase; }
.cm-hero__sello .cm-hero__sello-oso { width: 38%; height: 38%; color: var(--cm-choco); }

/* Cinta con mensajes */
.cm-cinta {
	margin-top: clamp(28px, 4vw, 48px);
	background: var(--cm-choco);
	color: var(--cm-crema);
	overflow: hidden;
	white-space: nowrap;
	user-select: none;
}
.cm-cinta__pista { display: inline-flex; padding: 14px 0; }
.cm-cinta__item {
	display: inline-flex;
	align-items: center;
	gap: 18px;
	padding-right: 18px;
	font-family: var(--cm-display);
	font-size: clamp(17px, 1.6vw, 21px);
}
.cm-cinta__item svg { width: 18px; height: 18px; color: var(--cm-miel); }

/* Movimiento del hero */
@media (prefers-reduced-motion: no-preference) {
	.cm-hero__titulo { animation: cm-sube .9s .05s cubic-bezier(.2, .8, .2, 1) both; }
	.cm-hero__lado { animation: cm-sube .9s .2s cubic-bezier(.2, .8, .2, 1) both; }
	.cm-hero__card { animation: cm-revela 1.1s cubic-bezier(.7, 0, .2, 1) both; }
	.cm-hero__card--a { animation-delay: .25s; }
	.cm-hero__card--b { animation-delay: .4s; }
	.cm-hero__card--c { animation-delay: .55s; }
	.cm-hero__card img { animation: cm-acerca 1.6s .25s cubic-bezier(.2, .8, .2, 1) both; }
	.cm-hero__chip { animation: cm-sube .7s 1s cubic-bezier(.2, .8, .2, 1) both; }
	.cm-hero__card:hover .cm-hero__chip .cm-mi { animation: cm-menea .6s ease-in-out; }
	.cm-hero__sello { animation: cm-aparece .8s .9s cubic-bezier(.3, 1.6, .5, 1) both; }
	.cm-hero__sello svg.cm-hero__sello-texto { animation: cm-gira 18s linear infinite; }
	.cm-cinta__pista { animation: cm-desliza 32s linear infinite; }
	.cm-cinta:hover .cm-cinta__pista { animation-play-state: paused; }
}
@keyframes cm-revela {
	from { clip-path: inset(100% 0 0 0 round var(--cm-radio-lg)); }
	to { clip-path: inset(0 0 0 0 round var(--cm-radio-lg)); }
}
@keyframes cm-acerca { from { transform: scale(1.18); } to { transform: scale(1); } }
@keyframes cm-aparece { from { opacity: 0; transform: scale(.4) rotate(-90deg); } to { opacity: 1; transform: none; } }
@keyframes cm-gira { to { transform: rotate(360deg); } }
@keyframes cm-desliza { to { transform: translateX(-50%); } }

@media (max-width: 900px) {
	.cm-hero__cabeza { grid-template-columns: 1fr; align-items: start; }
	.cm-hero__lado { padding-bottom: 0; }
	.cm-hero__mosaico {
		grid-template-columns: 1fr 1fr;
		grid-template-rows: 340px 230px;
		height: auto;
	}
	.cm-hero__card--a { grid-column: 1 / -1; }
	.cm-hero__card--b, .cm-hero__card--c { height: 100%; align-self: stretch; }
	.cm-hero__sello { left: auto; right: 14px; top: 14px; width: 96px; }
}
@media (max-width: 640px) {
	.cm-hero__titulo { font-size: clamp(40px, 12vw, 56px); }
	.cm-hero__acciones .cm-btn { flex: 1 1 auto; white-space: nowrap; padding-inline: 16px; font-size: 15px; }
	.cm-hero__mosaico { grid-template-rows: 300px 200px; }
	.cm-hero__chip { left: 10px; bottom: 10px; padding: 6px 12px 6px 6px; gap: 8px; }
	.cm-hero__chip .cm-mi { width: 30px; height: 30px; }
	.cm-hero__chip strong { font-size: 17px; }
	.cm-hero__chip small { display: none; }
}
.cm-hero__cabeza { grid-template-columns: minmax(0, 1.75fr) minmax(0, .8fr); }
.cm-hero__titulo { font-size: clamp(44px, 6.2vw, 92px); line-height: 1.07; }
.cm-hero__mosaico { height: clamp(400px, 38vw, 540px); }
@media (max-width: 900px) {
	.cm-hero__cabeza { grid-template-columns: 1fr; }
	.cm-hero__mosaico { height: auto; }
}
.cm-hero__titulo { line-height: 1.1; }

/* ==========================================================================
   Títulos en Fraunces (versión suave): peso medio, curvas redondeadas
   ========================================================================== */
h1, h2, h3, h4,
.cm-hero__titulo, .cm-hero__chip strong, .cm-coleccion__nombre, .cm-precio,
ul.products li.product .price, .woocommerce div.product p.price, .woocommerce div.product span.price,
.cm-faq__item summary, .cm-filtro__titulo, .cm-footer h3, .cm-cinta__item,
.cm-contacto__lista strong, .cm-minicart__total, .cm-sin-resultados strong,
.woocommerce div.product form.cart .variations th label, .woocommerce table.shop_table th {
	font-variation-settings: "SOFT" 100, "WONK" 0;
}
h1, h2, h3, h4 { font-weight: 600; letter-spacing: -0.02em; }
.cm-hero__titulo { font-weight: 560; letter-spacing: -0.035em; line-height: 1.04; font-size: clamp(46px, 6.6vw, 98px); }
.cm-pagina-cabeza h1 { font-weight: 600; text-shadow: none; }
.cm-coleccion__nombre, .cm-footer h3, .cm-hero__chip strong { font-weight: 600; }
ul.products li.product .price, .woocommerce div.product p.price { font-weight: 600 !important; }
.cm-faq__item summary, .cm-filtro__titulo { font-weight: 500; }
.cm-cinta__item { font-weight: 500; font-style: normal; }
.cm-banda h2 { font-weight: 600; }
.cm-hero__titulo { letter-spacing: -0.022em; }

/* ==========================================================================
   Correcciones de la revisión (accesibilidad, contraste y casos límite)
   ========================================================================== */
html { scroll-padding-top: 120px; }

/* Contraste: foco, contador, precios tachados, bordes de campos, textos pequeños */
:focus-visible { outline-color: var(--cm-choco); }
.cm-cart-count { background: var(--cm-cacao); }
.price del { opacity: 1; color: var(--cm-texto-suave); }
.cm-footer__copy { opacity: 1; }
input[type="text"], input[type="email"], input[type="tel"], input[type="search"],
input[type="number"], input[type="password"], input[type="url"], select, textarea,
.woocommerce form .form-row .input-text, .woocommerce form .form-row select { border-color: #b88f73; }
.cm-chip-check span, .cm-swatch--texto, .cm-radio span::before { border-color: #c9a287; }

/* Select de variaciones oculto de verdad (WooCommerce le da min-width: 75%) */
.woocommerce div.product form.cart .variations select[data-cm-swatch] { min-width: 0 !important; max-width: 1px !important; padding: 0 !important; border: 0 !important; }

/* Cajones: animación también al cerrar */
.cm-drawer { transition: visibility 0s .3s; }
.cm-drawer.is-open { transition: visibility 0s; }

/* Fondo de filtros: solo existe en celular */
.cm-filtros-fondo { display: none; }

/* Filtros en escritorio: si se usan con teclado, mostrar "Ver resultados" */
.cm-js .cm-filtros__form:has(:focus-visible) .cm-filtros__acciones .cm-btn { display: inline-flex; }

@media (max-width: 900px) {
	.cm-filtros-fondo { display: block; }
	.cm-filtros-fondo[hidden] { display: none; }
	/* Cerrado: fuera del orden de tabulación */
	.cm-filtros { visibility: hidden; transition: transform .3s cubic-bezier(.2, .8, .2, 1), visibility 0s .3s; }
	.cm-filtros.is-open { visibility: visible; transition: transform .3s cubic-bezier(.2, .8, .2, 1), visibility 0s; }
}

/* ==========================================================================
   Carrito, pago y Mi cuenta clásicos (shortcodes, editables con Elementor)
   ========================================================================== */
.cm-contenido--elementor-tienda .elementor-section.elementor-section-boxed > .elementor-container { max-width: var(--cm-ancho); padding-inline: calc(var(--cm-gutter) - 10px); }

/* Avisos: sin el anillo de foco que WooCommerce les pone al aparecer */
.woocommerce-message:focus, .woocommerce-info:focus, .woocommerce-error:focus,
.woocommerce-notices-wrapper:focus, .woocommerce-NoticeGroup:focus { outline: none; }

/* Carrito */
.woocommerce-cart table.cart td.actions .coupon { display: flex; flex-wrap: wrap; gap: 8px; }
.woocommerce-cart table.cart td.actions .coupon .input-text { width: 220px !important; padding: 11px 14px !important; border-radius: var(--cm-radio-btn) !important; }
.woocommerce-cart table.cart td.actions .button { padding: 12px 20px; font-size: 15px; }
.woocommerce table.shop_table td.product-name a { font-weight: 600; text-decoration: none; }
.woocommerce .cart-collaterals .cart_totals h2 { font-size: clamp(24px, 2.4vw, 30px); }
.woocommerce .cart-collaterals .cart_totals table { background: var(--cm-blanco); }
.woocommerce-cart .wc-proceed-to-checkout { padding-bottom: 0; }
.woocommerce-shipping-calculator .shipping-calculator-button { font-weight: 600; }

/* Pago */
.woocommerce-checkout h3 { font-size: clamp(22px, 2.2vw, 26px); }
.woocommerce form .form-row label { font-weight: 600; color: var(--cm-choco); }
.woocommerce form .form-row .required { color: var(--cm-error); text-decoration: none; }
.woocommerce-checkout #payment ul.payment_methods { border-bottom-color: var(--cm-linea); }
.woocommerce-checkout #payment div.payment_box { background: var(--cm-crema); color: var(--cm-texto); border-radius: var(--cm-radio-sm); }
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: var(--cm-crema); }
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper { font-size: 14px; }

/* Listas de país y departamento (selectWoo) */
.select2-container--default .select2-selection--single {
	height: auto;
	min-height: 50px;
	border: 2px solid #b88f73;
	border-radius: var(--cm-radio-btn);
	background: var(--cm-blanco);
	display: flex;
	align-items: center;
}
.select2-container--default .select2-selection--single .select2-selection__rendered { padding: 10px 40px 10px 16px; line-height: 1.4; color: var(--cm-texto); }
.select2-container--default .select2-selection--single .select2-selection__arrow { height: 100%; right: 10px; }
.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--default.select2-container--open .select2-selection--single { border-color: var(--cm-caramelo); box-shadow: 0 0 0 4px rgba(188, 132, 92, .18); }
.select2-dropdown { border: 2px solid var(--cm-caramelo); border-radius: var(--cm-radio-sm); overflow: hidden; }
.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted[data-selected] { background: var(--cm-choco); }
.select2-search--dropdown .select2-search__field { border-radius: 8px; }

/* Mi cuenta */
.woocommerce-account .woocommerce form.login,
.woocommerce-account .woocommerce form.register {
	border: 0;
	border-radius: var(--cm-radio-lg);
	background: var(--cm-blanco);
	box-shadow: var(--cm-sombra);
	padding: clamp(20px, 3vw, 32px);
}
.woocommerce-account .woocommerce-MyAccount-content { min-width: 0; }
.woocommerce form .show-password-input { top: 50%; transform: translateY(-50%); }

/* ==========================================================================
   Pantallas grandes (monitores 2K, 4K y 5K) y celulares pequeños
   ========================================================================== */
@media (min-width: 1800px) {
	:root { --cm-ancho: 1520px; }
	body { font-size: 18px; }
	.cm-menu > li > a { font-size: 18px; }
	.cm-logo img, .cm-logo .custom-logo { height: 84px; }
	.cm-buscar-barra { flex-basis: 300px; }
	.cm-hero__titulo { font-size: clamp(92px, 5.4vw, 128px); }
	.cm-hero__bajada { font-size: 20px; max-width: 34rem; }
	.cm-hero__mosaico { height: clamp(560px, 32vw, 760px); }
	.cm-hero__sello { width: 156px; }
	.cm-cinta__item { font-size: 23px; }
	h2 { font-size: clamp(46px, 2.6vw, 58px); }
	.cm-tienda { grid-template-columns: 290px minmax(0, 1fr); }
	.cm-tienda ul.products,
	.woocommerce .cm-tienda ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.cm-entrada { max-width: 840px; }
}
@media (min-width: 2400px) {
	:root { --cm-ancho: 1800px; }
	body { font-size: 20px; }
	.cm-menu > li > a { font-size: 20px; }
	.cm-btn, .button, .woocommerce a.button, .woocommerce button.button { font-size: 19px; padding: 17px 30px; }
	.cm-hero__mosaico { height: clamp(700px, 30vw, 900px); }
	.cm-hero__sello { width: 180px; }
	.cm-pagina-cabeza h1 { font-size: 92px; }
	ul.products li.product .woocommerce-loop-product__title { font-size: 19px !important; }
	ul.products li.product .price { font-size: 23px !important; }
	.cm-coleccion__nombre { font-size: 25px; }
	.cm-entrada { max-width: 920px; }
}

/* Celulares pequeños (320–400 px) */
@media (max-width: 400px) {
	ul.products li.product .button {
		white-space: normal;
		line-height: 1.2;
		font-size: 12.5px;
		text-align: center;
		padding: 9px 6px;
	}
	.cm-hero__chip strong { font-size: 15px; }
	.cm-hero__chip .cm-mi { width: 26px; height: 26px; }
	.cm-hero__chip .cm-mi svg { width: 16px; height: 16px; }
	.cm-hero__sello { width: 84px; }
	.cm-tabs button { padding: 9px 16px; font-size: 15px; }
}
