/* =========================================================================
   CV – Tienda Café Velier · velier-design.md v1.0
   Tokens, utilidades y estilos de las piezas nativas de WooCommerce.
   Los layouts de las plantillas viven en Elementor (variables y clases globales cv-*).
   ========================================================================= */

/* Fuentes de la marca, servidas desde el plugin (variables, subconjunto latino, SIL OFL 1.1). */
@font-face {
	font-family: "Cormorant Garamond";
	font-style: normal;
	font-weight: 500 600;
	font-display: swap;
	src: url("fonts/cormorant-garamond-latin.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: "Inter";
	font-style: normal;
	font-weight: 400 600;
	font-display: swap;
	src: url("fonts/inter-latin.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
	/* Base (extraídos del empaque) */
	--cv-black: #121212;
	--cv-charcoal: #1E1E1E;
	--cv-line: #2C2C2C;
	--cv-gold: #C9962F;
	--cv-gold-300: #E3C27A;
	--cv-copper: #B4541F;
	--cv-copper-700: #8F3F14;
	--cv-amber-900: #5A2410;
	--cv-cream: #F3EAD9;
	/* Fondo claro de página: blanco a pedido del cliente (antes #FAF6EE). Debe coincidir con la variable
	   global de Elementor del mismo nombre, que comparte la propiedad --cv-cream-50. */
	--cv-cream-50: #FFFFFF;
	--cv-text: #1A1A1A;

	/* Neutros de interfaz */
	--cv-stone-600: #5E574E;
	--cv-stone-300: #CFC6B6;
	--cv-white: #FFFFFF;

	/* Estados */
	--cv-success: #2E7D4F;
	--cv-error: #B3261E;

	/* Acentos por categoría. TODO: confirmar con los colores reales de cada empaque. */
	--cv-tier-clasico: var(--cv-gold);
	--cv-tier-sublime: var(--cv-copper);
	--cv-tier-maestria: var(--cv-gold-300);

	--cv-font-heading: "Cormorant Garamond", "Playfair Display", Georgia, serif;
	--cv-font-body: "Inter", "DM Sans", system-ui, -apple-system, "Segoe UI", sans-serif;

	--cv-radius: 4px;
	--cv-radius-btn: 3px;
	--cv-ease: cubic-bezier(.2, .7, .2, 1);
	--cv-dur: 300ms;
	--cv-gutter: 20px;
	--cv-max: 1240px;

	/* Patrón topográfico (curvas de nivel), color crema; la opacidad la da la capa .cv-topo::before */
	--cv-topo: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='640' height='640' viewBox='0 0 640 640' fill='none' stroke='%23F3EAD9' stroke-width='1.2'%3E%3Cpath d='M320 92c86 4 168 48 190 128 23 82-30 150-92 196-66 49-160 70-232 26-70-43-96-128-70-206 24-74 112-148 204-144Z'/%3E%3Cpath d='M318 132c68 3 132 40 148 102 17 64-24 116-72 152-52 38-124 54-180 20-54-34-74-100-54-160 19-58 86-117 158-114Z'/%3E%3Cpath d='M316 174c50 2 96 30 108 74 12 46-18 84-52 110-38 28-90 39-130 14-39-24-53-72-39-115 14-42 62-85 113-83Z'/%3E%3Cpath d='M314 214c32 1 60 19 68 47 8 29-11 53-33 70-24 17-57 25-82 9-25-15-34-46-25-73 9-27 40-54 72-53Z'/%3E%3Cpath d='M312 250c16 0 30 9 34 23 4 15-6 27-17 35-12 9-28 12-41 4-12-7-17-23-12-36 4-14 20-27 36-26Z'/%3E%3Cpath d='M-20 520c90-40 170-20 250 10s170 50 260 10 140-60 180-40'/%3E%3Cpath d='M-20 560c90-36 170-18 250 12s170 46 260 8 140-54 180-34'/%3E%3Cpath d='M-20 600c90-32 170-16 250 14s170 42 260 6 140-48 180-28'/%3E%3Cpath d='M-20 40c80 30 150 26 220-6s150-44 230-10 150 40 230 10'/%3E%3Cpath d='M-20 4c80 28 150 22 220-10s150-40 230-6 150 36 230 6'/%3E%3C/svg%3E");
}

@media (min-width: 768px) { :root { --cv-gutter: 32px; } }
@media (min-width: 1025px) { :root { --cv-gutter: 48px; } }

/* ---------- Utilidades ---------- */

/* Pendientes visibles solo en el editor de Elementor */
.cv-todo { display: none !important; }
.elementor-editor-active .cv-todo,
.elementor-editor-preview .cv-todo {
	display: block !important;
	outline: 2px dashed var(--cv-copper);
	outline-offset: 2px;
}

/* Secciones ocultas hasta tener contenido (Regala café, Cómo prepararlo, Reseñas, Instagram) */
.cv-oculto { display: none !important; }
.elementor-editor-active .cv-oculto {
	display: block !important;
	opacity: .55;
	outline: 2px dashed var(--cv-stone-600);
}

.cv-topo { position: relative; isolation: isolate; }
.cv-topo::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background-image: var(--cv-topo);
	background-size: 640px 640px;
	opacity: .08;
	pointer-events: none;
}

.cv-label {
	font-family: var(--cv-font-body);
	font-weight: 600;
	font-size: 12px;
	line-height: 1.2;
	letter-spacing: .28em;
	text-transform: uppercase;
	margin: 0 0 12px;
}

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.cv-icono { display: block; flex: none; }

.cv-slot { width: 100%; }
.cv-slot--anuncio,
.cv-slot--minicarrito,
.cv-slot--instagram,
.cv-slot--insignia { width: auto; }

/* Foco visible (claro: negro · oscuro: dorado) */
.cv-slot a:focus-visible,
.cv-slot button:focus-visible,
.cv-slot select:focus-visible,
.cv-slot input:focus-visible,
.cv-sticky button:focus-visible,
.woocommerce a.button:focus-visible,
.woocommerce button.button:focus-visible {
	outline: 2px solid var(--cv-black);
	outline-offset: 3px;
}
.cv-oscuro a:focus-visible,
.cv-oscuro button:focus-visible,
.cv-sticky button:focus-visible { outline-color: var(--cv-gold); }

/* Etiquetas sobre fondo oscuro: dorado (7:1). Las clases globales de Elementor van en un archivo por
   documento y su orden entre archivos no es fiable, así que el color se fija por contexto. */
.cv-oscuro .cv-label,
.cv-charcoal .cv-label,
.cv-label.cv-label-oro { color: var(--cv-gold); }

/* Acento de la categoría actual (archivo y ficha) */
body { --cv-acento: var(--cv-gold); }
body.cv-tier-clasico { --cv-acento: var(--cv-tier-clasico); }
body.cv-tier-sublime { --cv-acento: var(--cv-tier-sublime); }
body.cv-tier-maestria { --cv-acento: var(--cv-tier-maestria); }
.cv-acento { display: block; width: 56px; height: 2px; background: var(--cv-acento); }
.cv-slot--acento { width: auto; }
.cv-slot--ancla { height: 0; width: 0; }
.cv-ancla { display: block; scroll-margin-top: 160px; }
html { scroll-behavior: smooth; }
.cv-chip-nav.cv-tier-clasico[aria-current="page"],
.cv-chip-nav.cv-tier-sublime[aria-current="page"],
.cv-chip-nav.cv-tier-maestria[aria-current="page"] { box-shadow: inset 0 -3px 0 var(--cv-acento); }

/* ---------- Header CV (sticky y menú) ---------- */

[data-elementor-type="header"]:has(.cv-anuncio) {
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 900;
}
[data-elementor-type="header"]:has(.cv-anuncio) .elementor-nav-menu--main .elementor-item {
	color: var(--cv-cream);
	font: 600 13px/1 var(--cv-font-body);
	letter-spacing: .14em;
	text-transform: uppercase;
	padding: 14px 12px;
}
[data-elementor-type="header"]:has(.cv-anuncio) .elementor-nav-menu--main .elementor-item:hover,
[data-elementor-type="header"]:has(.cv-anuncio) .elementor-nav-menu--main .elementor-item.elementor-item-active { color: var(--cv-gold-300); }
[data-elementor-type="header"]:has(.cv-anuncio) .elementor-nav-menu--main .elementor-item::after { background-color: var(--cv-gold); height: 1px; }
[data-elementor-type="header"]:has(.cv-anuncio) .elementor-nav-menu--main .sub-menu,
[data-elementor-type="header"]:has(.cv-anuncio) .elementor-nav-menu--dropdown {
	background: var(--cv-charcoal);
	border: 1px solid var(--cv-line);
}
[data-elementor-type="header"]:has(.cv-anuncio) .elementor-nav-menu--dropdown a,
[data-elementor-type="header"]:has(.cv-anuncio) .elementor-nav-menu--main .sub-menu a {
	color: var(--cv-cream);
	font: 400 15px/1.4 var(--cv-font-body);
	min-height: 44px;
	padding: 12px 20px;
	border: 0;
}
[data-elementor-type="header"]:has(.cv-anuncio) .elementor-nav-menu--dropdown a:hover,
[data-elementor-type="header"]:has(.cv-anuncio) .elementor-nav-menu--dropdown a.elementor-item-active,
[data-elementor-type="header"]:has(.cv-anuncio) .elementor-nav-menu--main .sub-menu a:hover {
	background: var(--cv-black);
	color: var(--cv-gold-300);
}
[data-elementor-type="header"]:has(.cv-anuncio) .elementor-menu-toggle {
	color: var(--cv-cream);
	background: transparent;
	width: 44px;
	height: 44px;
	font-size: 22px;
}
[data-elementor-type="header"]:has(.cv-anuncio) .elementor-menu-toggle:focus-visible { outline: 2px solid var(--cv-gold); outline-offset: 2px; }
[data-elementor-type="header"]:has(.cv-anuncio) .elementor-nav-menu a:focus-visible { outline: 2px solid var(--cv-gold); outline-offset: -2px; }

/* ---------- Acordeones V4 (details/summary): ícono +/− en cobre ---------- */

summary.cv-acc-header { list-style: none; }
summary.cv-acc-header::-webkit-details-marker { display: none; }
summary.cv-acc-header::after {
	content: "";
	flex: none;
	width: 14px;
	height: 14px;
	background:
		linear-gradient(var(--cv-copper), var(--cv-copper)) center / 14px 1.5px no-repeat,
		linear-gradient(var(--cv-copper), var(--cv-copper)) center / 1.5px 14px no-repeat;
	transition: background-size 200ms var(--cv-ease);
}
details[open] > summary.cv-acc-header::after {
	background:
		linear-gradient(var(--cv-copper), var(--cv-copper)) center / 14px 1.5px no-repeat,
		linear-gradient(var(--cv-copper), var(--cv-copper)) center / 1.5px 0 no-repeat;
}
summary.cv-acc-header:focus-visible { outline: 2px solid var(--cv-black); outline-offset: 3px; }
.cv-oscuro summary.cv-acc-header:focus-visible { outline-color: var(--cv-gold); }
/* ---------- Barra de anuncio ---------- */

.cv-anuncio {
	margin: 0;
	font-family: var(--cv-font-body);
	font-size: 12px;
	line-height: 1.3;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--cv-cream);
	text-align: center;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
@media (min-width: 768px) { .cv-anuncio { font-size: 13px; } }
.cv-slot--anuncio { width: 100%; min-width: 0; max-width: 100%; }
@media (max-width: 599px) {
	.cv-anuncio { letter-spacing: .08em; }
	.cv-anuncio--doble .cv-anuncio__sep,
	.cv-anuncio--doble .cv-anuncio__pago { display: none; }
}

/* ---------- Íconos del header y minicarrito ---------- */

.cv-icono-enlace,
.cv-minicart__boton {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	min-width: 44px;
	min-height: 44px;
	padding: 0 6px;
	color: var(--cv-cream);
	background: none;
	border: 0;
	cursor: pointer;
	text-decoration: none;
	font: 600 13px/1 var(--cv-font-body);
	transition: color var(--cv-dur) var(--cv-ease);
}
.cv-icono-enlace:hover,
.cv-minicart__boton:hover { color: var(--cv-gold-300); }
.cv-icono-enlace:focus-visible,
.cv-minicart__boton:focus-visible { outline: 2px solid var(--cv-gold); outline-offset: 2px; }

.cv-minicart { position: relative; }
.cv-minicart__contador {
	min-width: 20px;
	height: 20px;
	padding: 0 5px;
	border-radius: 2px;
	background: var(--cv-gold);
	color: var(--cv-black);
	font-size: 11px;
	line-height: 20px;
	text-align: center;
}
.cv-minicart__contador[data-cv-contador="0"] { background: transparent; color: var(--cv-cream); border: 1px solid var(--cv-line); line-height: 18px; }

/* ---------- Modal del carrito (<dialog>) ----------
   Hello Elementor pinta los botones con borde y fondo rosa en :hover/:focus («[type=button]:hover»);
   por eso cada botón del modal fija fondo, borde y color con especificidad mayor. */

html.cv-carrito-abierto { overflow: hidden; }

dialog.cv-carrito {
	width: min(760px, calc(100vw - 32px));
	max-width: none;
	max-height: min(90vh, 900px);
	margin: auto;
	padding: 0;
	border: 1px solid var(--cv-stone-300);
	border-radius: var(--cv-radius);
	background: var(--cv-cream-50);
	color: var(--cv-text);
	font: 400 15px/1.5 var(--cv-font-body);
	box-shadow: 0 24px 48px rgba(18, 18, 18, .16);
	overflow: hidden;
}
dialog.cv-carrito *,
dialog.cv-carrito *::before,
dialog.cv-carrito *::after { box-sizing: border-box; }
dialog.cv-carrito[open] { display: flex; flex-direction: column; animation: cv-carrito-entrar var(--cv-dur) var(--cv-ease); }
dialog.cv-carrito::backdrop { background: rgba(18, 18, 18, .6); }
@keyframes cv-carrito-entrar {
	from { opacity: 0; transform: translateY(16px); }
	to { opacity: 1; transform: none; }
}
.cv-carrito__caja { min-height: 0; overflow: auto; overscroll-behavior: contain; padding: 0 32px 32px; }

.cv-carrito__cabecera {
	position: sticky;
	top: 0;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 20px 0 12px;
	background: var(--cv-cream-50);
}
.cv-carrito__titulo { margin: 0; font: 600 30px/1.1 var(--cv-font-heading); color: var(--cv-text); }
dialog.cv-carrito button.cv-carrito__cerrar {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	margin-right: -10px;
	padding: 0;
	border: 0;
	border-radius: var(--cv-radius-btn);
	background: transparent;
	color: var(--cv-text);
	cursor: pointer;
}
dialog.cv-carrito button.cv-carrito__cerrar:hover { background: var(--cv-cream); color: var(--cv-copper); }

.cv-carrito__aviso {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 16px;
	padding: 14px 16px;
	border-left: 3px solid var(--cv-gold);
	border-radius: var(--cv-radius);
	background: var(--cv-cream);
	font: 600 20px/1.3 var(--cv-font-heading);
}
.cv-carrito__aviso[hidden] { display: none; }
.cv-carrito__aviso .cv-icono { color: var(--cv-gold); stroke-width: 2.25; }

/* Artículos */
.cv-carrito__lista { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--cv-stone-300); }
.cv-carrito__item {
	display: grid;
	grid-template-columns: 72px 1fr auto;
	gap: 4px 16px;
	align-items: start;
	padding: 16px 0;
	border-bottom: 1px solid var(--cv-stone-300);
	transition: opacity var(--cv-dur) var(--cv-ease), background-color var(--cv-dur) var(--cv-ease);
}
.cv-carrito__item--nuevo { margin: 0 -12px; padding-left: 12px; padding-right: 12px; background: var(--cv-cream); box-shadow: inset 3px 0 0 var(--cv-gold); }
.cv-carrito__item[aria-busy="true"] { opacity: .55; }
.cv-carrito__img { grid-row: span 2; width: 72px; height: 90px; object-fit: cover; border-radius: var(--cv-radius); background: var(--cv-cream); }
.cv-carrito__info { min-width: 0; }
.cv-carrito__nombre { margin: 0; font: 600 20px/1.2 var(--cv-font-heading); }
.cv-carrito__nombre a { color: var(--cv-text); text-decoration: none; }
.cv-carrito__nombre a:hover { color: var(--cv-copper); }
.cv-carrito__info dl.variation { display: flex; flex-wrap: wrap; gap: 0 6px; margin: 4px 0 0; font-size: 13px; color: var(--cv-stone-600); }
.cv-carrito__info dl.variation dt,
.cv-carrito__info dl.variation dd,
.cv-carrito__info dl.variation p { margin: 0; font-weight: 400; }
.cv-carrito__unitario { margin: 4px 0 0; font-size: 13px; color: var(--cv-stone-600); }
.cv-carrito__linea { margin: 0; font: 600 16px/1.3 var(--cv-font-body); white-space: nowrap; }
.cv-carrito__controles { grid-column: 2 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; margin-top: 8px; }
.cv-carrito__unidad { margin: 0; font-size: 14px; color: var(--cv-stone-600); }

/* Selector de cantidad − n + */
.cv-cantidad {
	display: inline-flex;
	align-items: stretch;
	border: 1px solid var(--cv-stone-300);
	border-radius: var(--cv-radius);
	background: var(--cv-white);
}
dialog.cv-carrito button.cv-cantidad__boton {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: var(--cv-text);
	cursor: pointer;
}
dialog.cv-carrito button.cv-cantidad__boton .cv-icono { width: 18px; height: 18px; }
dialog.cv-carrito button.cv-cantidad__boton:hover { background: var(--cv-cream); color: var(--cv-copper); }
dialog.cv-carrito button.cv-cantidad__boton:disabled { background: transparent; color: var(--cv-stone-300); cursor: not-allowed; }
dialog.cv-carrito input.cv-cantidad__input {
	width: 52px;
	height: 44px;
	margin: 0;
	padding: 0;
	border: 0;
	border-left: 1px solid var(--cv-stone-300);
	border-right: 1px solid var(--cv-stone-300);
	border-radius: 0;
	background: transparent;
	color: var(--cv-text);
	font: 600 16px/1 var(--cv-font-body);
	text-align: center;
	-moz-appearance: textfield;
	appearance: textfield;
}
dialog.cv-carrito input.cv-cantidad__input::-webkit-outer-spin-button,
dialog.cv-carrito input.cv-cantidad__input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
dialog.cv-carrito button.cv-carrito__quitar {
	min-height: 44px;
	padding: 0 4px;
	border: 0;
	background: transparent;
	color: var(--cv-stone-600);
	font: 400 14px/1 var(--cv-font-body);
	text-decoration: underline;
	text-underline-offset: 4px;
	cursor: pointer;
}
dialog.cv-carrito button.cv-carrito__quitar:hover { background: transparent; color: var(--cv-copper); }

.cv-carrito__error { margin: 12px 0 0; color: var(--cv-error); font-size: 14px; }
.cv-carrito__error[hidden] { display: none; }
.cv-carrito .cv-envio { margin-top: 20px; }

.cv-carrito__subtotal { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin: 20px 0 2px; font-weight: 600; }
.cv-carrito__subtotal strong { font: 600 28px/1.1 var(--cv-font-heading); }
.cv-carrito__nota { margin: 0 0 20px; font-size: 13px; color: var(--cv-stone-600); }
.cv-carrito--cargando .cv-carrito__subtotal,
.cv-carrito--cargando .cv-envio { opacity: .55; }

/* Acciones */
.cv-carrito__acciones { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
dialog.cv-carrito a.cv-carrito__boton {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 0 24px;
	border: 1px solid var(--cv-black);
	border-radius: var(--cv-radius-btn);
	background: transparent;
	color: var(--cv-text);
	font: 600 14px/1 var(--cv-font-body);
	letter-spacing: .08em;
	text-transform: uppercase;
	text-align: center;
	text-decoration: none;
	transition: background-color var(--cv-dur) var(--cv-ease), border-color var(--cv-dur) var(--cv-ease), color var(--cv-dur) var(--cv-ease);
}
dialog.cv-carrito a.cv-carrito__boton:hover { background: var(--cv-black); color: var(--cv-cream); }
dialog.cv-carrito a.cv-carrito__boton--primario { background: var(--cv-black); color: var(--cv-cream); }
dialog.cv-carrito a.cv-carrito__boton--primario:hover { background: var(--cv-copper-700); border-color: var(--cv-copper-700); color: var(--cv-cream); }
dialog.cv-carrito button.cv-carrito__seguir {
	grid-column: 1 / -1;
	justify-self: center;
	min-height: 44px;
	padding: 0 12px;
	border: 0;
	background: transparent;
	color: var(--cv-copper);
	font: 600 14px/1 var(--cv-font-body);
	letter-spacing: .08em;
	text-transform: uppercase;
	cursor: pointer;
}
dialog.cv-carrito button.cv-carrito__seguir:hover { background: transparent; color: var(--cv-copper-700); text-decoration: underline; text-underline-offset: 4px; }

/* Carrito vacío */
.cv-carrito__vacio { padding: 24px 0 8px; text-align: center; border-top: 1px solid var(--cv-stone-300); }
.cv-carrito__vacio-titulo { margin: 0 0 8px; font: 500 28px/1.2 var(--cv-font-heading); }
.cv-carrito__vacio-texto { margin: 0 0 20px; color: var(--cv-stone-600); }

/* También te puede gustar */
.cv-carrito__recomendados { margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--cv-stone-300); }
.cv-carrito__reco-titulo { margin: 0 0 20px; font: 500 28px/1.2 var(--cv-font-heading); text-align: center; color: var(--cv-text); }
.cv-carrito__reco-lista { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; list-style: none; margin: 0; padding: 0; }
.cv-reco { display: flex; flex-direction: column; gap: 6px; }
.cv-reco__enlace { display: flex; flex-direction: column; gap: 8px; color: var(--cv-text); text-decoration: none; }
.cv-reco__img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--cv-radius); background: var(--cv-cream); }
.cv-reco__nombre { font: 600 18px/1.2 var(--cv-font-heading); }
.cv-reco__enlace:hover .cv-reco__nombre { color: var(--cv-copper); }
.cv-reco__precio { margin: 0; font-weight: 600; font-size: 15px; }
dialog.cv-carrito .cv-reco a.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 44px;
	margin-top: auto;
	padding: 0 8px;
	border: 1px solid var(--cv-black);
	border-radius: var(--cv-radius-btn);
	background: var(--cv-black);
	color: var(--cv-cream);
	font: 600 12px/1.2 var(--cv-font-body);
	letter-spacing: .06em;
	text-transform: uppercase;
	text-align: center;
	text-decoration: none;
}
dialog.cv-carrito .cv-reco a.button:hover { background: var(--cv-copper-700); border-color: var(--cv-copper-700); color: var(--cv-cream); }
dialog.cv-carrito .cv-reco a.button.loading { opacity: .6; }
dialog.cv-carrito .cv-reco a.added_to_cart { display: none; }

dialog.cv-carrito a:focus-visible,
dialog.cv-carrito button:focus-visible,
dialog.cv-carrito input:focus-visible { outline: 2px solid var(--cv-black); outline-offset: 2px; }

@media (max-width: 767px) {
	/* Hoja inferior a todo el ancho */
	dialog.cv-carrito {
		width: 100%;
		max-height: 92vh;
		margin: auto 0 0;
		border-width: 1px 0 0;
		border-radius: var(--cv-radius) var(--cv-radius) 0 0;
	}
	.cv-carrito__caja { padding: 0 16px calc(24px + env(safe-area-inset-bottom)); }
	.cv-carrito__titulo { font-size: 26px; }
	.cv-carrito__item { grid-template-columns: 64px 1fr; }
	.cv-carrito__img { width: 64px; height: 80px; grid-row: span 3; }
	.cv-carrito__linea { grid-column: 2; }
	.cv-carrito__controles { grid-column: 2; }
	.cv-carrito__item--nuevo { margin: 0 -16px; padding-left: 16px; padding-right: 16px; }
	.cv-carrito__acciones { grid-template-columns: 1fr; }
	.cv-carrito__reco-lista { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.cv-reco:nth-child(n+3) { display: none; }
}

/* ---------- Botones nativos de WooCommerce ---------- */

/* Especificidad alta a propósito: woocommerce.css usa «.woocommerce button.button.alt» (acento morado). */
body .woocommerce a.button,
body .woocommerce a.button.alt,
body .woocommerce button.button,
body .woocommerce button.button.alt,
body .woocommerce button.single_add_to_cart_button.button.alt,
body .cv-no-disponible.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 16px 32px;
	border: 1px solid var(--cv-black);
	border-radius: var(--cv-radius-btn);
	background: var(--cv-black);
	color: var(--cv-cream);
	font: 600 15px/1 var(--cv-font-body);
	letter-spacing: .08em;
	text-transform: uppercase;
	text-decoration: none;
	cursor: pointer;
	transition: background-color var(--cv-dur) var(--cv-ease), border-color var(--cv-dur) var(--cv-ease), color var(--cv-dur) var(--cv-ease);
}
body .woocommerce a.button:hover,
body .woocommerce a.button.alt:hover,
body .woocommerce button.button:hover,
body .woocommerce button.button.alt:hover,
body .woocommerce button.single_add_to_cart_button.button.alt:hover {
	background: var(--cv-copper-700);
	border-color: var(--cv-copper-700);
	color: var(--cv-cream);
}
.woocommerce a.button.loading { opacity: .7; }
.woocommerce a.added_to_cart { display: inline-block; margin-top: 8px; color: var(--cv-copper); text-underline-offset: 4px; font-size: 14px; }

.cv-no-disponible,
.cv-no-disponible.button {
	background: transparent !important;
	color: var(--cv-stone-600) !important;
	border: 1px solid var(--cv-stone-300) !important;
	cursor: not-allowed;
	pointer-events: none;
}

/* ---------- Insignia de categoría y chips ---------- */

.cv-insignia {
	--cv-acento: var(--cv-copper);
	display: inline-block;
	padding: 5px 8px;
	border: 1px solid var(--cv-acento);
	border-radius: 2px;
	color: var(--cv-text);
	font: 600 11px/1 var(--cv-font-body);
	letter-spacing: .18em;
	text-transform: uppercase;
	text-decoration: none;
	background: transparent;
}
.cv-insignia.cv-tier-clasico { --cv-acento: var(--cv-tier-clasico); }
.cv-insignia.cv-tier-sublime { --cv-acento: var(--cv-tier-sublime); }
.cv-insignia.cv-tier-maestria { --cv-acento: var(--cv-tier-maestria); }
a.cv-insignia { min-height: 24px; }
.cv-oscuro .cv-insignia { color: var(--cv-cream); }

.cv-chips { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; margin: 0; padding: 0; }
.cv-chip {
	padding: 6px 10px;
	border: 1px solid var(--cv-stone-300);
	border-radius: 2px;
	color: var(--cv-copper);
	font: 400 13px/1.2 var(--cv-font-body);
}
.cv-oscuro .cv-chip { border-color: var(--cv-line); color: var(--cv-gold-300); }

/* Chips de navegación de la tienda */
.cv-chips-nav ul { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0; padding: 0; }
.cv-chip-nav {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 0 18px;
	border: 1px solid var(--cv-stone-300);
	border-radius: 2px;
	color: var(--cv-text);
	font: 600 13px/1 var(--cv-font-body);
	letter-spacing: .12em;
	text-transform: uppercase;
	text-decoration: none;
	transition: background-color var(--cv-dur) var(--cv-ease), color var(--cv-dur) var(--cv-ease);
}
.cv-chip-nav:hover { border-color: var(--cv-black); }
.cv-chip-nav[aria-current="page"] { background: var(--cv-black); border-color: var(--cv-black); color: var(--cv-cream); }

/* ---------- Grilla y tarjeta de producto ---------- */

.cv-grilla ul.products,
.cv-catalogo ul.products {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
	list-style: none;
	margin: 0;
	padding: 0;
}
.cv-grilla ul.products::before,
.cv-grilla ul.products::after,
.cv-catalogo ul.products::before,
.cv-catalogo ul.products::after { display: none; }
@media (min-width: 768px) {
	.cv-grilla ul.products,
	.cv-catalogo ul.products { gap: 24px; }
}
@media (min-width: 1025px) {
	.cv-grilla ul.products,
	.cv-catalogo ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
}

.cv-grilla ul.products li.product,
.cv-catalogo ul.products li.product {
	--cv-acento: var(--cv-copper);
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 10px;
	width: auto !important;
	margin: 0 !important;
	padding: 0 0 16px;
	float: none !important;
	background: transparent;
	text-align: left;
}
li.product.cv-tier-clasico { --cv-acento: var(--cv-tier-clasico); }
li.product.cv-tier-sublime { --cv-acento: var(--cv-tier-sublime); }
li.product.cv-tier-maestria { --cv-acento: var(--cv-tier-maestria); }

li.product .woocommerce-LoopProduct-link {
	display: flex;
	flex-direction: column;
	gap: 10px;
	color: inherit;
	text-decoration: none;
}
li.product .woocommerce-LoopProduct-link .cv-insignia { align-self: flex-start; }
li.product .woocommerce-LoopProduct-link img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	margin: 0 !important;
	border-radius: var(--cv-radius);
	background: var(--cv-cream);
	transition: transform 400ms var(--cv-ease);
}
li.product .woocommerce-LoopProduct-link { overflow: hidden; }
li.product::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 2px;
	background: var(--cv-gold);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform var(--cv-dur) var(--cv-ease);
}
@media (hover: hover) {
	li.product:hover .woocommerce-LoopProduct-link img { transform: scale(1.03); }
	li.product:hover::after { transform: scaleX(1); }
}

li.product .woocommerce-loop-product__title {
	margin: 4px 0 0;
	padding: 0 !important;
	font: 600 22px/1.2 var(--cv-font-heading) !important;
	color: inherit;
}
@media (min-width: 1025px) { li.product .woocommerce-loop-product__title { font-size: 26px !important; } }
li.product .cv-chips { gap: 4px; }
li.product .cv-chip { padding: 4px 8px; font-size: 12px; }
li.product .price {
	display: block;
	margin: 0 !important;
	font: 600 20px/1.2 var(--cv-font-heading) !important;
	color: inherit !important;
}
@media (min-width: 1025px) { li.product .price { font-size: 24px !important; } }
li.product .onsale { display: none; }
body li.product .button,
body li.product .cv-no-disponible { width: 100%; margin-top: auto !important; padding-left: 12px; padding-right: 12px; font-size: 13px; }
@media (min-width: 768px) { body li.product .button, body li.product .cv-no-disponible { font-size: 14px; } }
@media (max-width: 767px) {
	body li.product .button,
	body li.product .cv-no-disponible { padding: 12px 8px; font-size: 12px; letter-spacing: .04em; white-space: nowrap; }
}

/* Sobre secciones oscuras: tarjeta charcoal y botón dorado */
.cv-oscuro li.product { color: var(--cv-cream); }
.cv-oscuro li.product .woocommerce-LoopProduct-link img { background: var(--cv-charcoal); }
body .cv-oscuro li.product .button { background: var(--cv-gold); border-color: var(--cv-gold); color: var(--cv-black); }
body .cv-oscuro li.product .button:hover { background: var(--cv-gold-300); border-color: var(--cv-gold-300); color: var(--cv-black); }
.cv-oscuro li.product .cv-no-disponible { color: var(--cv-stone-300) !important; border-color: var(--cv-line) !important; }
.cv-oscuro li.product a.added_to_cart { color: var(--cv-gold-300); }

/* Barra de orden del catálogo */
.cv-catalogo__barra {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 24px;
	font: 400 14px/1.5 var(--cv-font-body);
	color: var(--cv-stone-600);
}
.cv-catalogo__barra .woocommerce-result-count,
.cv-catalogo__barra .woocommerce-ordering { float: none; margin: 0; }
.cv-catalogo__barra select.orderby {
	min-height: 44px;
	padding: 0 36px 0 12px;
	border: 1px solid var(--cv-stone-300);
	border-radius: var(--cv-radius);
	background-color: var(--cv-white);
	color: var(--cv-text);
	font: 400 14px/1 var(--cv-font-body);
}
.cv-catalogo .woocommerce-pagination { margin-top: 32px; }
.cv-vacio { font-family: var(--cv-font-body); color: var(--cv-stone-600); }

/* ---------- Ficha de producto ---------- */

body .woocommerce-breadcrumb.cv-miga {
	margin: 0;
	font: 400 13px/1.5 var(--cv-font-body);
	color: var(--cv-stone-600);
}
body .woocommerce-breadcrumb.cv-miga a { color: var(--cv-stone-600); text-decoration: none; }
body .woocommerce-breadcrumb.cv-miga a:hover { color: var(--cv-copper); text-decoration: underline; text-underline-offset: 4px; }
.cv-miga__sep { margin: 0 8px; }

/* Galería nativa (zoom, lightbox y slider de Woo) */
.cv-galeria .woocommerce-product-gallery {
	position: relative;
	width: 100% !important;
	float: none !important;
	margin: 0 !important;
	opacity: 1 !important;
}
.cv-galeria .woocommerce-product-gallery__image img,
.cv-galeria .woocommerce-product-gallery__image--placeholder img {
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	border-radius: var(--cv-radius);
	background: var(--cv-cream);
}
body .cv-galeria .woocommerce-product-gallery__trigger {
	position: absolute;
	top: 12px;
	right: 12px;
	z-index: 2;
	width: 44px !important;
	height: 44px !important;
	border-radius: 2px;
	background: rgba(18, 18, 18, .72);
	text-indent: -9999px;
	overflow: hidden;
}
.cv-galeria .woocommerce-product-gallery__trigger::before {
	content: "";
	position: absolute;
	inset: 12px;
	border: 1.5px solid var(--cv-cream);
	border-radius: 50%;
	width: 14px;
	height: 14px;
}
.cv-galeria .flex-control-thumbs {
	display: flex;
	justify-content: center;
	gap: 10px;
	list-style: none;
	margin: 12px 0 0;
	padding: 0;
}
/* Móvil: miniaturas como puntos */
.cv-galeria .flex-control-thumbs li {
	width: 10px !important;
	height: 10px;
	padding: 17px;
	margin: -17px;
	float: none !important;
	box-sizing: content-box;
	cursor: pointer;
}
.cv-galeria .flex-control-thumbs li img {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	font-size: 0;
	color: transparent;
	background: var(--cv-stone-300);
	object-position: -999px -999px;
	opacity: 1 !important;
}
.cv-galeria .flex-control-thumbs li img.flex-active { background: var(--cv-copper); }
@media (min-width: 1025px) {
	.cv-galeria .woocommerce-product-gallery { display: grid; grid-template-columns: 88px 1fr; gap: 16px; }
	.cv-galeria .flex-viewport,
	.cv-galeria .woocommerce-product-gallery__wrapper { grid-column: 2; grid-row: 1; }
	.cv-galeria .woocommerce-product-gallery__trigger { right: 12px; }
	.cv-galeria .flex-control-thumbs { grid-column: 1; grid-row: 1; flex-direction: column; justify-content: flex-start; margin: 0; }
	.cv-galeria .flex-control-thumbs li { width: 88px !important; height: auto; padding: 0; margin: 0; }
	.cv-galeria .flex-control-thumbs li img {
		width: 88px;
		height: auto;
		aspect-ratio: 4 / 5;
		object-fit: cover;
		object-position: center;
		border-radius: var(--cv-radius);
		background: var(--cv-cream);
		opacity: .55 !important;
		border: 1px solid transparent;
	}
	.cv-galeria .flex-control-thumbs li img.flex-active,
	.cv-galeria .flex-control-thumbs li img:hover { opacity: 1 !important; border-color: var(--cv-copper); background: var(--cv-cream); }
}

.cv-presentacion { margin: 0; font: 400 15px/1.5 var(--cv-font-body); color: var(--cv-stone-600); }
.cv-presentacion strong { color: var(--cv-text); font-weight: 600; }

/* Formulario de compra */
.cv-agregar form.cart {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin: 0 !important;
}
.cv-agregar form.cart .quantity { float: none !important; margin: 0 !important; }
.cv-agregar form.cart .quantity .qty {
	width: 84px;
	min-height: 52px;
	padding: 0 8px;
	border: 1px solid var(--cv-stone-300);
	border-radius: var(--cv-radius);
	background: var(--cv-white);
	font: 600 16px/1 var(--cv-font-body);
	text-align: center;
}
.cv-agregar form.cart .single_add_to_cart_button { flex: 1 1 220px; float: none !important; margin: 0 !important; }
.cv-agregar .variations { width: 100%; margin-bottom: 8px; border: 0; }
.cv-agregar .variations th,
.cv-agregar .variations td { display: block; padding: 0 0 8px; text-align: left; border: 0; background: none; }
.cv-agregar .variations label { font: 600 13px/1.2 var(--cv-font-body); letter-spacing: .12em; text-transform: uppercase; }
.cv-agregar .variations select {
	width: 100%;
	min-height: 52px;
	padding: 0 12px;
	border: 1px solid var(--cv-stone-300);
	border-radius: var(--cv-radius);
	background-color: var(--cv-white);
	font: 400 16px/1 var(--cv-font-body);
}
.cv-agregar .reset_variations { display: inline-block; margin-top: 8px; color: var(--cv-copper); font-size: 14px; }
.cv-agregar .single_variation_wrap { width: 100%; }
.cv-agregar .woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; gap: 12px; }
.cv-agregar .stock { margin: 0 0 8px; font: 400 14px/1.5 var(--cv-font-body); }
.cv-agregar > .cv-no-disponible { width: 100%; }
@media (max-width: 767px) {
	.cv-agregar form.cart { flex-wrap: nowrap; }
	.cv-agregar form.cart .quantity { flex: 0 0 auto; }
	.cv-agregar form.cart .quantity .qty { width: 72px; }
	body .woocommerce .cv-agregar form.cart .single_add_to_cart_button { flex: 1 1 auto; min-width: 0; padding-left: 16px; padding-right: 16px; }
	.cv-agregar form.cart.variations_form { flex-wrap: wrap; }
}

/* Microconfianza */
.cv-confianza { display: grid; gap: 10px; list-style: none; margin: 0; padding: 0; font: 400 14px/1.5 var(--cv-font-body); color: var(--cv-stone-600); }
.cv-confianza li { display: flex; align-items: center; gap: 10px; }
.cv-confianza .cv-icono { color: var(--cv-copper); }

/* Perfil de taza */
.cv-perfil { font-family: var(--cv-font-body); }
.cv-perfil__datos { margin: 0; }
.cv-perfil__fila {
	display: grid;
	grid-template-columns: minmax(96px, 38%) 1fr;
	gap: 12px;
	padding: 12px 0;
	border-bottom: 1px solid var(--cv-stone-300);
	font-size: 15px;
	line-height: 1.5;
}
.cv-perfil__fila:first-child { padding-top: 0; }
.cv-perfil__fila dt { margin: 0; color: var(--cv-stone-600); font-weight: 400; }
.cv-perfil__fila dd { margin: 0; color: var(--cv-text); font-weight: 600; }
.cv-perfil__notas { margin-top: 16px; }
.cv-perfil__subtitulo { margin: 0 0 10px; font: 600 12px/1.2 var(--cv-font-body); letter-spacing: .28em; text-transform: uppercase; color: var(--cv-stone-600); }

/* Barra de envío gratis */
.cv-envio { font-family: var(--cv-font-body); }
.cv-envio__texto { margin: 0 0 8px; font-size: 14px; line-height: 1.5; color: var(--cv-text); }
.cv-envio__texto strong { font-weight: 600; }
.cv-envio__barra { height: 4px; background: var(--cv-stone-300); border-radius: 2px; overflow: hidden; }
.cv-envio__barra span { display: block; height: 100%; background: var(--cv-copper); transition: width 400ms var(--cv-ease); }
.cv-oscuro .cv-envio__barra { background: var(--cv-line); }
.cv-oscuro .cv-envio__barra span { background: var(--cv-gold); }
.cv-envio--logrado .cv-envio__texto { color: var(--cv-success); }
.cv-envio-carrito { max-width: var(--cv-max); margin: 0 auto 24px; padding: 16px; border: 1px solid var(--cv-stone-300); border-radius: var(--cv-radius); background: var(--cv-white); }
.cv-titulo-pagina {
	max-width: var(--cv-max);
	margin: 48px auto 24px;
	padding: 0 var(--cv-gutter);
	font: 500 44px/1.1 var(--cv-font-heading);
	color: var(--cv-text);
}
@media (max-width: 767px) { .cv-titulo-pagina { margin-top: 32px; font-size: 32px; } }
.cv-envio-carrito { margin-left: max(var(--cv-gutter), calc((100% - var(--cv-max)) / 2)); margin-right: max(var(--cv-gutter), calc((100% - var(--cv-max)) / 2)); }
.cv-checkout-confianza { max-width: var(--cv-max); margin-left: auto; margin-right: auto; padding: 0 var(--cv-gutter) 32px; }
.cv-carrito-vacio {
	max-width: var(--cv-max);
	margin: 0 auto 96px;
	padding: 40px var(--cv-gutter);
	border-top: 1px solid var(--cv-stone-300);
	font-family: var(--cv-font-body);
}
.cv-carrito-vacio p { margin: 0 0 8px; font-size: 18px; color: var(--cv-text); }
.cv-carrito-vacio .cv-carrito-vacio__texto { font-size: 15px; color: var(--cv-stone-600); margin-bottom: 24px; }
.cv-carrito-vacio .cv-carrito-vacio__texto:empty { display: none; }
body .cv-carrito-vacio a.button {
	display: inline-flex;
	align-items: center;
	min-height: 52px;
	padding: 16px 32px;
	background: var(--cv-black);
	color: var(--cv-cream);
	border-radius: var(--cv-radius-btn);
	font: 600 15px/1 var(--cv-font-body);
	letter-spacing: .08em;
	text-transform: uppercase;
	text-decoration: none;
}
body .cv-carrito-vacio a.button:hover { background: var(--cv-copper-700); }

/* Reserva el alto del carrito y del checkout mientras los bloques se hidratan: el footer arranca fuera
   de pantalla y no salta (CLS). El checkout real siempre es más alto que la ventana. */
.wp-block-woocommerce-cart.is-loading { min-height: 480px; }
.wp-block-woocommerce-checkout { min-height: calc(100vh - 120px); }

/* Avisos de Woo en las plantillas CV */
.cv-avisos .woocommerce-notices-wrapper:empty { display: none; }
.cv-avisos .woocommerce-message,
.cv-avisos .woocommerce-info,
.cv-avisos .woocommerce-error { margin: 0 0 8px; }
.cv-avisos .woocommerce-message .button { min-height: 44px; padding: 10px 18px; font-size: 13px; float: right; }

/* Historia, relacionados y reseñas (h2 propios de la ranura) */
.cv-historia,
.cv-relacionados,
.cv-resenas { font-family: var(--cv-font-body); }
.cv-historia h2,
.cv-relacionados h2,
.cv-resenas h2 {
	margin: 0 0 24px;
	font: 500 30px/1.1 var(--cv-font-heading);
	color: inherit;
}
@media (min-width: 1025px) {
	.cv-historia h2,
	.cv-relacionados h2,
	.cv-resenas h2 { font-size: 44px; }
}
.cv-historia__texto { max-width: 68ch; font-size: 16px; line-height: 1.65; }
.cv-relacionados .cv-label,
.cv-historia .cv-label { color: var(--cv-copper); }
.cv-resenas ul { display: grid; gap: 24px; list-style: none; margin: 0; padding: 0; }
@media (min-width: 768px) { .cv-resenas ul { grid-template-columns: repeat(2, 1fr); } }
.cv-resena { padding: 24px; border: 1px solid var(--cv-stone-300); border-radius: var(--cv-radius); }
.cv-resena blockquote { margin: 12px 0; padding: 0; border: 0; font-size: 16px; line-height: 1.65; }
.cv-resena__autor { margin: 0; font-weight: 600; }

/* Imagen de categoría */
.cv-categoria__img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--cv-radius); }

/* ---------- Barra fija de compra (móvil) ---------- */

.cv-sticky {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 999;
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
	background: var(--cv-black);
	color: var(--cv-cream);
	border-top: 1px solid var(--cv-line);
	font-family: var(--cv-font-body);
}
.cv-sticky[hidden] { display: none; }
.cv-sticky__img { width: 40px; height: 50px; object-fit: cover; border-radius: 2px; flex: none; }
.cv-sticky__info { min-width: 0; flex: 1; }
.cv-sticky__nombre { margin: 0; font: 600 18px/1.2 var(--cv-font-heading); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cv-sticky__precio { margin: 2px 0 0; font-size: 14px; color: var(--cv-gold-300); }
.cv-sticky__precio del { opacity: .6; }
.cv-sticky__boton {
	min-height: 44px;
	padding: 0 18px;
	border: 0;
	border-radius: var(--cv-radius-btn);
	background: var(--cv-gold);
	color: var(--cv-black);
	font: 600 14px/1 var(--cv-font-body);
	letter-spacing: .08em;
	text-transform: uppercase;
	cursor: pointer;
}
.cv-sticky__boton:hover { background: var(--cv-gold-300); }
@media (min-width: 1025px) { .cv-sticky { display: none !important; } }
@media (max-width: 1024px) { body.cv-sticky-activa { padding-bottom: 72px; } }

/* ---------- Avisos de WooCommerce ---------- */

.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.wc-block-components-notice-banner {
	font-family: var(--cv-font-body);
	border-radius: var(--cv-radius) !important;
}
.woocommerce-message,
.woocommerce-info { border-top-color: var(--cv-copper) !important; background: var(--cv-white); color: var(--cv-text); }
.woocommerce-message::before,
.woocommerce-info::before { color: var(--cv-copper) !important; }
.woocommerce-error { border-top-color: var(--cv-error) !important; }

/* ---------- Carrito y checkout (bloques de WooCommerce) ---------- */

.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout {
	font-family: var(--cv-font-body);
	color: var(--cv-text);
}
.wp-block-woocommerce-cart h1, .wp-block-woocommerce-cart h2,
.wp-block-woocommerce-checkout h1, .wp-block-woocommerce-checkout h2,
.wc-block-components-checkout-step__title,
.wc-block-components-title {
	font-family: var(--cv-font-heading) !important;
	font-weight: 600 !important;
}
.wc-block-cart-items .wc-block-cart-item__image img { aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--cv-radius); }
.wc-block-components-product-name { color: var(--cv-text) !important; font-weight: 600; text-decoration: none; }
.wc-block-components-text-input input,
.wc-block-components-text-input textarea,
.wc-block-components-combobox .wc-block-components-combobox-control input,
.wc-blocks-components-select .wc-blocks-components-select__select,
.wc-block-components-form .wc-block-components-text-input input {
	min-height: 52px !important;
	border: 1px solid var(--cv-stone-300) !important;
	border-radius: var(--cv-radius) !important;
	background: var(--cv-white) !important;
	font-family: var(--cv-font-body) !important;
}
.wc-block-components-text-input input:focus,
.wc-block-components-combobox .wc-block-components-combobox-control input:focus,
.wc-blocks-components-select .wc-blocks-components-select__select:focus {
	border-color: var(--cv-black) !important;
	box-shadow: 0 0 0 3px rgba(201, 150, 47, .35) !important;
	outline: none !important;
}
.wc-block-components-validation-error p,
.wc-block-components-text-input.has-error label { color: var(--cv-error) !important; }
.wc-block-components-text-input.has-error input { border-color: var(--cv-error) !important; }

.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button,
.wp-block-woocommerce-cart .wc-block-components-button:not(.is-link),
.wp-block-woocommerce-checkout .wc-block-components-button:not(.is-link) {
	min-height: 52px !important;
	border-radius: var(--cv-radius-btn) !important;
	background: var(--cv-black) !important;
	color: var(--cv-cream) !important;
	border: 1px solid var(--cv-black) !important;
	font: 600 15px/1 var(--cv-font-body) !important;
	letter-spacing: .08em;
	text-transform: uppercase;
	transition: background-color var(--cv-dur) var(--cv-ease);
}
.wc-block-cart__submit-button:hover,
.wc-block-components-checkout-place-order-button:hover,
.wp-block-woocommerce-cart .wc-block-components-button:not(.is-link):hover,
.wp-block-woocommerce-checkout .wc-block-components-button:not(.is-link):hover {
	background: var(--cv-copper-700) !important;
	border-color: var(--cv-copper-700) !important;
}
.wc-block-components-totals-item__value,
.wc-block-components-product-price { font-weight: 600; }
.wc-block-components-radio-control__option { min-height: 52px; }

.cv-checkout-confianza {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 16px;
	margin: 16px 0 0;
	font: 400 14px/1.5 var(--cv-font-body);
	color: var(--cv-stone-600);
}
.cv-checkout-confianza span { display: inline-flex; align-items: center; gap: 8px; }
.cv-checkout-confianza .cv-icono { color: var(--cv-copper); }
.cv-checkout-confianza a { color: var(--cv-copper); text-underline-offset: 4px; }

@media (max-width: 767px) {
	.wp-block-woocommerce-checkout .wc-block-components-sidebar-layout { flex-direction: column; }
	.wp-block-woocommerce-checkout .wc-block-components-main,
	.wp-block-woocommerce-checkout .wc-block-components-sidebar { width: 100% !important; padding: 0 !important; }
}

/* ---------- Movimiento reducido ---------- */

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
		scroll-behavior: auto !important;
	}
	li.product:hover .woocommerce-LoopProduct-link img { transform: none; }
}
