/* ==========================================================================
   Caramelos Vinuesa — estilos del tema
   Colores y fuentes salen de theme.json (Apariencia → Editor → Estilos).
   ========================================================================== */

:root {
	--cv-rojo: var(--wp--preset--color--rojo, #c4122f);
	--cv-rojo-oscuro: var(--wp--preset--color--rojo-oscuro, #8e0e22);
	--cv-cacao: var(--wp--preset--color--cacao, #2b1712);
	--cv-texto-suave: var(--wp--preset--color--texto-suave, #5a4540);
	--cv-gris: var(--wp--preset--color--gris-calido, #6b5650);
	--cv-rosa-claro: var(--wp--preset--color--rosa-claro, #fbf3f1);
	--cv-rosa: var(--wp--preset--color--rosa, #fbe3e6);
	--cv-linea: var(--wp--preset--color--linea, #efe3df);
	--cv-blanco: #fff;
	--cv-titulos: var(--wp--preset--font-family--titulos, "Bricolage Grotesque", "Segoe UI", system-ui, sans-serif);
	--cv-texto: var(--wp--preset--font-family--texto, Figtree, "Segoe UI", system-ui, sans-serif);
	--cv-ancho: 1240px;
	--cv-margen: clamp(16px, 4vw, 40px);
	--cv-radio: 22px;
	--cv-sombra: 0 24px 50px -36px rgba(43, 23, 18, .45);
}

/* --------------------------------------------------------------- Base */

body {
	margin: 0;
	background: var(--cv-blanco);
	color: var(--cv-cacao);
	font-family: var(--cv-texto);
	-webkit-font-smoothing: antialiased;
}

.wp-site-blocks > * + * {
	margin-block-start: 0;
}

img {
	max-width: 100%;
	height: auto;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
	outline: 3px solid var(--cv-rojo);
	outline-offset: 2px;
}

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

.screen-reader-text:focus {
	z-index: 100000;
	top: 5px;
	left: 5px;
	width: auto;
	height: auto;
	padding: 12px 20px;
	clip: auto !important;
	clip-path: none;
	background: var(--cv-blanco);
	color: var(--cv-cacao);
	font-weight: 700;
}

.cv-contenedor {
	box-sizing: border-box;
	width: 100%;
	max-width: var(--cv-ancho);
	margin-inline: auto !important;
	padding-inline: var(--cv-margen);
}

.cv-contenedor--texto {
	max-width: 1000px;
}

.cv-icono {
	flex: none;
	vertical-align: middle;
}

.cv-caramelo {
	flex: none;
	fill: var(--cv-rojo);
}

.cv-acento {
	color: var(--cv-rojo);
}

/* --------------------------------------------------------------- Botones */

.cv-btn,
.woocommerce a.cv-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	box-sizing: border-box;
	min-height: 52px;
	padding: 0 26px;
	border: 2px solid transparent;
	border-radius: 999px;
	font-family: var(--cv-texto);
	font-size: 17px;
	font-weight: 700;
	line-height: 1.1;
	text-decoration: none;
	cursor: pointer;
	transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}

.cv-btn--primario {
	background: var(--cv-rojo);
	color: var(--cv-blanco);
}

.cv-btn--primario:hover {
	background: var(--cv-rojo-oscuro);
	color: var(--cv-blanco);
}

.cv-btn--oscuro {
	min-height: 48px;
	padding: 0 20px;
	background: var(--cv-cacao);
	color: var(--cv-blanco);
	font-size: 15px;
}

.cv-btn--oscuro:hover {
	background: #000;
	color: var(--cv-blanco);
}

.cv-btn--blanco {
	background: var(--cv-blanco);
	color: var(--cv-cacao);
	font-size: 16px;
}

.cv-btn--blanco:hover {
	background: var(--cv-rosa);
	color: var(--cv-cacao);
}

.cv-btn--contorno {
	border-color: currentColor;
	background: transparent;
	color: inherit;
	font-size: 16px;
}

.cv-btn--contorno:hover {
	background: rgba(255, 255, 255, .12);
	color: inherit;
}

.cv-enlace-flecha {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	font-weight: 700;
	color: var(--cv-cacao);
}

/* --------------------------------------------------------------- Cabecera */

.cv-topbar {
	background: var(--cv-cacao);
	color: #f6e9e5;
	font-size: 13px;
}

.cv-topbar__fila {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 6px 24px;
	padding-block: 9px;
}

.cv-topbar__lema {
	font-weight: 600;
	letter-spacing: .02em;
}

.cv-topbar__contacto {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 22px;
}

.cv-topbar a {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: #f6e9e5;
	text-decoration: none;
}

.cv-topbar a:hover {
	color: var(--cv-blanco);
	text-decoration: underline;
}

.cv-cabecera {
	position: relative;
	z-index: 20;
	background: var(--cv-blanco);
	border-bottom: 1px solid var(--cv-linea);
}

.cv-cabecera__fila {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 14px 28px;
	padding-block: 16px;
}

.cv-marca {
	display: flex;
	align-items: center;
	gap: 10px;
	color: var(--cv-cacao);
	text-decoration: none;
}

.cv-marca__texto {
	display: flex;
	flex-direction: column;
	line-height: 1;
}

.cv-marca__sub {
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--cv-gris);
}

.cv-marca__nombre {
	margin-top: 3px;
	font-family: var(--cv-titulos);
	font-size: 30px;
	font-weight: 800;
	letter-spacing: -.02em;
}

.cv-marca--clara {
	color: var(--cv-blanco);
}

.cv-marca--clara .cv-marca__sub {
	color: #e9d9d4;
}

.cv-cabecera__buscador {
	flex: 1 1 320px;
	max-width: 560px;
}

.cv-cabecera__acciones {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 20px;
	margin-left: auto;
}

.cv-cuenta {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	font-size: 15px;
	font-weight: 700;
	color: var(--cv-cacao);
	text-decoration: none;
}

/* Buscador: FiboSearch y el buscador de WooCommerce con el mismo aspecto */
.cv-cabecera__buscador form,
.cv-404__buscador form {
	position: relative;
	display: flex;
	align-items: center;
	margin: 0;
}

.cv-cabecera__buscador input[type="search"],
.cv-cabecera__buscador .dgwt-wcas-search-input,
.cv-404__buscador input[type="search"] {
	box-sizing: border-box;
	width: 100%;
	min-height: 48px;
	padding: 0 52px 0 20px !important;
	border: 1px solid transparent !important;
	border-radius: 999px !important;
	background: #f7efec !important;
	color: var(--cv-cacao);
	font-family: var(--cv-texto);
	font-size: 15px !important;
	box-shadow: none !important;
}

.cv-cabecera__buscador input[type="search"]:focus,
.cv-cabecera__buscador .dgwt-wcas-search-input:focus {
	border-color: var(--cv-rojo) !important;
	background: var(--cv-blanco) !important;
}

.cv-cabecera__buscador label,
.cv-404__buscador label {
	display: block;
	flex: 1 1 auto;
	margin: 0;
}

.cv-cabecera__buscador .search-field,
.cv-404__buscador .search-field {
	box-sizing: border-box;
	width: 100%;
	min-height: 48px;
	padding: 0 52px 0 20px;
	border: 1px solid transparent;
	border-radius: 999px;
	background: #f7efec;
	font-family: var(--cv-texto);
	font-size: 15px;
}

.cv-cabecera__buscador button[type="submit"],
.cv-cabecera__buscador .search-submit,
.cv-404__buscador .search-submit,
.cv-404__buscador button[type="submit"] {
	position: absolute;
	right: 4px;
	min-height: 40px;
	padding: 0 14px;
	border: 0;
	border-radius: 999px;
	background: var(--cv-cacao);
	color: var(--cv-blanco);
	font-weight: 700;
	cursor: pointer;
}

.cv-cabecera__buscador .dgwt-wcas-search-wrapp {
	max-width: none;
}

.cv-cabecera__buscador .dgwt-wcas-sf-wrapp {
	padding: 0 !important;
	background: none !important;
}

/* FiboSearch: lupa en un botón redondo a la derecha, como en el diseño */
.cv-cabecera__buscador .dgwt-wcas-search-wrapp .dgwt-wcas-sf-wrapp button.dgwt-wcas-search-submit,
.cv-404__buscador .dgwt-wcas-search-wrapp .dgwt-wcas-sf-wrapp button.dgwt-wcas-search-submit {
	position: absolute !important;
	top: 50% !important;
	right: 4px !important;
	left: auto !important;
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 40px !important;
	min-width: 0 !important;
	height: 40px !important;
	min-height: 40px !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 999px !important;
	background: var(--cv-cacao) !important;
	box-shadow: none !important;
	transform: translateY(-50%) !important;
}

.cv-cabecera__buscador .dgwt-wcas-search-submit:hover,
.cv-404__buscador .dgwt-wcas-search-submit:hover {
	background: var(--cv-rojo) !important;
}

.cv-cabecera__buscador .dgwt-wcas-search-submit::before,
.cv-404__buscador .dgwt-wcas-search-submit::before {
	display: none !important;
}

.cv-cabecera__buscador .dgwt-wcas-search-submit svg,
.cv-404__buscador .dgwt-wcas-search-submit svg {
	width: 18px !important;
	height: 18px !important;
}

.cv-cabecera__buscador .dgwt-wcas-search-submit svg,
.cv-cabecera__buscador .dgwt-wcas-search-submit svg path,
.cv-404__buscador .dgwt-wcas-search-submit svg,
.cv-404__buscador .dgwt-wcas-search-submit svg path {
	fill: var(--cv-blanco) !important;
}

/* Menú de categorías (bloque Navegación) */
.cv-menu {
	border-top: 1px solid #f3e9e6;
}

.cv-menu__nav {
	gap: 0 26px !important;
	font-size: 15px;
	font-weight: 600;
}

.cv-menu__nav .wp-block-navigation-item__content {
	padding-block: 13px !important;
	color: var(--cv-cacao);
	text-decoration: none;
}

.cv-menu__nav .wp-block-navigation-item__content:hover {
	color: var(--cv-rojo-oscuro);
}

.cv-menu__nav .current-menu-item > .wp-block-navigation-item__content,
.cv-menu__nav .wp-block-navigation-item__content[aria-current="page"] {
	box-shadow: inset 0 -3px 0 var(--cv-rojo);
}

.cv-menu__nav .cv-menu__destacado > .wp-block-navigation-item__content {
	color: var(--cv-rojo);
	font-weight: 700;
}

.cv-menu__nav .wp-block-navigation__submenu-container {
	min-width: 230px !important;
	padding: 8px 0 !important;
	border: 1px solid var(--cv-linea) !important;
	border-radius: 14px;
	background: var(--cv-blanco) !important;
	box-shadow: var(--cv-sombra);
}

.cv-menu__nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	padding: 9px 18px !important;
}

.cv-menu__nav .wp-block-navigation__responsive-container.is-menu-open {
	padding: 24px var(--cv-margen);
	background: var(--cv-blanco);
	color: var(--cv-cacao);
}

@media (min-width: 600px) {
	.cv-menu__nav .wp-block-navigation__responsive-container-open:not(.always-shown) {
		display: none !important;
	}
}

.cv-menu__nav .wp-block-navigation__responsive-container-open {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	padding: 0;
	color: var(--cv-cacao);
	font-weight: 700;
}

/* --------------------------------------------------------------- Portada: héroe */

.cv-hero {
	overflow: hidden;
	background: var(--cv-rosa-claro);
}

.cv-hero__fila {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 40px 56px;
	padding-block: clamp(40px, 6vw, 84px);
}

.cv-hero__texto {
	display: flex;
	flex: 1 1 480px;
	flex-direction: column;
	align-items: flex-start;
	gap: 24px;
	min-width: 0;
}

.cv-hero__texto > * {
	margin: 0 !important;
}

.cv-chip {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 7px 14px 7px 10px;
	border: 1px solid #efd9d3;
	border-radius: 999px;
	background: var(--cv-blanco);
	font-size: 14px;
	font-weight: 700;
}

.cv-hero__titulo {
	font-family: var(--cv-titulos);
	font-size: clamp(40px, 5.2vw, 76px) !important;
	font-weight: 800;
	line-height: .98 !important;
	letter-spacing: -.035em !important;
	text-wrap: balance;
}

.cv-hero__entradilla {
	max-width: 33em;
	color: var(--cv-texto-suave);
	font-size: clamp(17px, 1.35vw, 20px);
	line-height: 1.55;
	text-wrap: pretty;
}

.cv-hero__acciones {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px 24px;
}

.cv-hero__telefono {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	font-weight: 700;
	color: var(--cv-cacao);
	text-decoration: none;
}

.cv-checks {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 26px;
	margin: 8px 0 0;
	padding: 0;
	list-style: none;
	font-size: 15px;
	font-weight: 600;
}

.cv-checks li {
	display: flex;
	align-items: center;
	gap: 8px;
}

.cv-checks .cv-icono {
	color: var(--cv-rojo);
	stroke-width: 2.6;
}

.cv-hero__visual {
	position: relative;
	display: flex;
	flex: 1 1 420px;
	align-items: center;
	justify-content: center;
	min-width: 0;
	min-height: 500px;
}

.cv-silueta {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
}

.cv-silueta__bola {
	flex: none;
	width: min(440px, 78%);
	aspect-ratio: 1 / 1;
	border-radius: 50%;
	background: var(--cv-rojo);
}

.cv-silueta__lazo {
	width: 16%;
	height: 46%;
	background: var(--cv-rojo);
	clip-path: polygon(0 0, 100% 40%, 100% 60%, 0 100%);
}

.cv-silueta__lazo--der {
	clip-path: polygon(100% 0, 0 40%, 0 60%, 100% 100%);
}

.cv-foto {
	display: flex;
	flex-direction: column;
	gap: 10px;
	box-sizing: border-box;
	margin: 0;
	background: var(--cv-blanco);
}

.cv-foto img {
	display: block;
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: contain;
}

.cv-foto--grande {
	position: relative;
	width: min(340px, 66%);
	padding: 16px 16px 14px;
	border-radius: 28px;
	box-shadow: 0 40px 70px -30px rgba(43, 23, 18, .5);
	transform: rotate(2.5deg);
}

.cv-foto--grande figcaption {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	padding: 0 4px;
	font-size: 14px;
}

.cv-foto--grande figcaption span {
	color: var(--cv-gris);
}

.cv-foto--pequena {
	position: absolute;
	top: 8%;
	left: 0;
	width: min(180px, 36%);
	padding: 10px 10px 12px;
	border-radius: 20px;
	box-shadow: 0 24px 44px -22px rgba(43, 23, 18, .5);
	transform: rotate(-7deg);
}

.cv-foto--pequena figcaption {
	padding: 0 4px;
	font-size: 13px;
	font-weight: 700;
}

.cv-pegatina {
	position: absolute;
	top: 4%;
	right: 3%;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 118px;
	height: 118px;
	margin: 0;
	border-radius: 50%;
	background: var(--cv-cacao);
	color: var(--cv-blanco);
	line-height: 1.05;
	text-align: center;
	box-shadow: 0 16px 30px -16px rgba(43, 23, 18, .6);
	transform: rotate(10deg);
}

.cv-pegatina span {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.cv-pegatina span:last-child {
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0;
	text-transform: none;
}

.cv-pegatina strong {
	font-family: var(--cv-titulos);
	font-size: 34px;
	font-weight: 800;
}

/* --------------------------------------------------------------- Secciones */

.cv-seccion {
	padding-block: clamp(56px, 7vw, 96px);
	background: var(--cv-blanco);
}

.cv-seccion--rosa {
	background: var(--cv-rosa-claro);
}

.cv-seccion--cacao {
	background: var(--cv-cacao);
	color: var(--cv-blanco);
}

.cv-seccion__cabecera {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 16px 40px;
	margin-bottom: 36px;
}

.cv-seccion__titulos {
	display: flex;
	flex: 1 1 520px;
	flex-direction: column;
	gap: 10px;
	min-width: 0;
	max-width: 44em;
}

.cv-seccion__titulos > * {
	margin: 0 !important;
}

.cv-antetitulo {
	color: var(--cv-rojo);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
}

.cv-seccion--cacao .cv-antetitulo {
	color: #ffb3bf;
}

.cv-h2 {
	font-family: var(--cv-titulos);
	font-size: clamp(30px, 3.4vw, 48px) !important;
	font-weight: 800;
	line-height: 1.04 !important;
	letter-spacing: -.03em !important;
	text-wrap: balance;
}

.cv-seccion--cacao .cv-h2 {
	color: var(--cv-blanco);
}

.cv-seccion__texto {
	max-width: 36em;
	color: var(--cv-texto-suave);
	font-size: 18px;
}

.cv-seccion--cacao .cv-seccion__texto {
	color: #e9d9d4;
}

/* Categorías */
.cv-cats {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(160px, 100%), 1fr));
	gap: 20px;
}

.cv-cat {
	display: flex;
	flex-direction: column;
	gap: 4px;
	color: var(--cv-cacao);
	text-decoration: none;
}

.cv-cat__img {
	display: block;
	margin-bottom: 10px;
	padding: 12%;
	border-radius: 24px;
	background: var(--cv-rosa-claro);
	transition: background-color .2s ease;
}

.cv-cat:hover .cv-cat__img {
	background: var(--cv-rosa);
}

.cv-cat__img img {
	display: block;
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: contain;
	mix-blend-mode: multiply;
}

.cv-cat__nombre {
	font-family: var(--cv-titulos);
	font-size: 19px;
	font-weight: 700;
	line-height: 1.2;
}

.cv-cat__num {
	color: var(--cv-gris);
	font-size: 14px;
}

.cv-ocasiones {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	margin-top: 36px;
}

.cv-ocasiones__titulo {
	flex: none;
	margin-right: 6px;
	font-weight: 700;
	white-space: nowrap;
}

.cv-pastilla {
	display: inline-flex;
	align-items: center;
	box-sizing: border-box;
	min-height: 44px;
	padding: 0 18px;
	border: 1px solid #e8d6d1;
	border-radius: 999px;
	color: var(--cv-cacao);
	font-size: 15px;
	font-weight: 600;
	text-decoration: none;
}

.cv-pastilla:hover {
	border-color: var(--cv-rojo);
	color: var(--cv-rojo-oscuro);
}

/* Pasos */
.cv-pasos {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr));
	gap: 20px;
	margin: 40px 0 0;
	padding: 0;
	list-style: none;
}

.cv-pasos li {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: 28px;
	border-radius: 24px;
	background: var(--cv-rosa-claro);
}

.cv-pasos h3 {
	margin: 0;
	font-size: 22px;
	font-weight: 700;
	line-height: 1.2;
}

.cv-pasos p {
	margin: 0;
	color: var(--cv-texto-suave);
}

.cv-pasos__num {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: var(--cv-rojo);
	color: var(--cv-blanco);
	font-family: var(--cv-titulos);
	font-size: 22px;
	font-weight: 800;
}

/* Packaging */
.cv-packaging {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 40px 56px;
}

.cv-packaging__texto {
	display: flex;
	flex: 1 1 420px;
	flex-direction: column;
	align-items: flex-start;
	gap: 18px;
	min-width: 0;
}

.cv-packaging__texto > * {
	margin: 0 !important;
}

.cv-servicios {
	display: grid;
	flex: 1 1 460px;
	grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr));
	gap: 16px;
	min-width: 0;
	margin: 0;
	padding: 0;
	list-style: none;
}

.cv-servicios li {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 24px;
	border-radius: 22px;
	background: var(--cv-blanco);
}

.cv-servicios strong {
	font-size: 17px;
}

.cv-servicios li > span:last-child {
	color: var(--cv-texto-suave);
	font-size: 15px;
}

.cv-servicios__icono {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	border-radius: 14px;
	background: var(--cv-rosa);
	color: var(--cv-rojo);
}

/* Distribuidores */
.cv-distribuidores {
	background: var(--cv-rojo);
	color: var(--cv-blanco);
}

.cv-distribuidores__fila {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 24px 48px;
	padding-block: 52px;
}

.cv-distribuidores__texto {
	display: flex;
	flex: 1 1 520px;
	flex-direction: column;
	gap: 8px;
	min-width: 0;
}

.cv-distribuidores__texto > * {
	margin: 0 !important;
}

.cv-distribuidores__texto p {
	color: #fff1f3;
	font-size: 18px;
}

.cv-h2--banda {
	color: var(--cv-blanco);
	font-size: clamp(28px, 2.6vw, 38px) !important;
}

.cv-distribuidores__botones {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

.cv-distribuidores .cv-cuenta {
	min-height: 52px;
	padding: 0 28px;
	border-radius: 999px;
	background: var(--cv-blanco);
	color: var(--cv-cacao);
	font-size: 16px;
}

.cv-distribuidores .cv-btn--contorno {
	color: var(--cv-blanco);
}

/* --------------------------------------------------------------- Pie */

.cv-pie {
	background: var(--cv-cacao);
	color: #e9d9d4;
	font-size: 15px;
}

.cv-pie .cv-contenedor {
	padding-block: 64px 32px;
}

.cv-pie__columnas {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr));
	gap: 32px;
}

.cv-pie__marca p {
	max-width: 26em;
	margin: 14px 0 0;
}

.cv-pie__bloque {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.cv-pie__titulo {
	margin: 0;
	color: var(--cv-blanco);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.cv-pie a {
	color: #e9d9d4;
	text-decoration: none;
}

.cv-pie a:hover {
	color: var(--cv-blanco);
	text-decoration: underline;
}

.cv-pie__legal {
	margin: 40px 0 0;
	padding-top: 20px;
	border-top: 1px solid #4a3029;
	color: #cdb9b3;
	font-size: 13px;
}

/* --------------------------------------------------------------- Tarjetas de producto (todas las rejillas) */

.woocommerce ul.products,
.woocommerce-page ul.products {
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(min(230px, 100%), 1fr));
	gap: 20px;
	margin: 0 0 32px !important;
	padding: 0 !important;
	list-style: none;
}

.woocommerce ul.products::before,
.woocommerce ul.products::after,
.woocommerce-page ul.products::before,
.woocommerce-page ul.products::after {
	content: none !important;
	display: none !important;
}

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product,
.woocommerce ul.products[class*="columns-"] li.product,
.woocommerce-page ul.products[class*="columns-"] li.product {
	display: flex;
	flex-direction: column;
	float: none !important;
	clear: none !important;
	width: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden;
	border: 1px solid var(--cv-linea);
	border-radius: var(--cv-radio);
	background: var(--cv-blanco);
	text-align: left;
}

.woocommerce ul.products li.product a.woocommerce-loop-product__link {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	gap: 8px;
	padding: 0 0 4px;
	color: var(--cv-cacao);
	text-decoration: none;
}

.cv-tarjeta__img {
	display: block;
	padding: 9%;
	background: var(--cv-rosa-claro);
}

.woocommerce ul.products li.product .cv-tarjeta__img img {
	display: block;
	width: 100%;
	height: auto;
	margin: 0 !important;
	aspect-ratio: 1 / 1;
	object-fit: contain;
	mix-blend-mode: multiply;
	box-shadow: none;
}

.woocommerce ul.products li.product .cv-ref {
	margin: 10px 18px 0;
}

.cv-ref {
	color: var(--cv-gris);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	margin: 0 18px !important;
	padding: 0 !important;
	font-family: var(--cv-titulos);
	font-size: 19px !important;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: -.01em;
}

.cv-datos {
	display: flex;
	flex-direction: column;
	gap: 3px;
	margin: 0 18px;
	padding: 0;
	list-style: none;
	color: var(--cv-texto-suave);
	font-size: 14px;
}

.cv-tarjeta__boton {
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	min-height: 44px;
	margin: 14px 18px 18px;
	border: 2px solid var(--cv-rojo);
	border-radius: 999px;
	color: var(--cv-rojo);
	font-size: 15px;
	font-weight: 700;
	text-decoration: none;
}

.cv-tarjeta__boton:hover {
	background: var(--cv-rojo);
	color: var(--cv-blanco);
}

/* Navidad (sección oscura de la portada) */
.cv-navidad ul.products li.product {
	border-color: transparent;
}

.cv-navidad .cv-tarjeta__img {
	background: var(--cv-blanco);
}

/* --------------------------------------------------------------- Tienda y categorías */

.cv-banda {
	background: var(--cv-rosa-claro);
}

.cv-banda .cv-contenedor {
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding-block: 28px 40px;
}

.cv-banda .cv-contenedor > * {
	margin: 0 !important;
}

.woocommerce-breadcrumb,
.woocommerce .woocommerce-breadcrumb {
	margin: 0 0 4px !important;
	color: var(--cv-gris) !important;
	font-size: 14px !important;
}

.woocommerce-breadcrumb a {
	color: var(--cv-gris) !important;
}

.cv-banda__titulo {
	font-family: var(--cv-titulos);
	font-size: clamp(38px, 4.4vw, 64px) !important;
	font-weight: 800;
	line-height: 1 !important;
	letter-spacing: -.035em !important;
}

.cv-banda__texto {
	max-width: 44em;
	color: var(--cv-texto-suave);
	font-size: 18px;
}

.cv-banda__texto p {
	margin: 0;
}

.cv-tienda__cuerpo {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 32px 40px;
	padding-block: 36px 64px;
}

.cv-tienda__filtros {
	flex: 1 1 220px;
	max-width: 100%;
}

.cv-tienda__filtros:empty {
	display: none;
}

.cv-tienda__productos {
	flex: 999 1 560px;
	min-width: 0;
}

.cv-tienda__productos > *,
.cv-tienda__cuerpo > .cv-tienda__productos,
.cv-tienda__cuerpo > .cv-tienda__filtros {
	margin-block-start: 0 !important;
}

.cv-filtros {
	display: flex;
	flex-direction: column;
	gap: 22px;
}

.cv-filtros__cabecera {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}

.cv-filtros__h {
	margin: 0;
	font-family: var(--cv-titulos);
	font-size: 20px;
	font-weight: 700;
}

.cv-filtros__limpiar {
	color: var(--cv-gris);
	font-size: 14px;
	font-weight: 600;
}

.cv-filtros__grupo {
	padding-bottom: 20px;
	border-bottom: 1px solid var(--cv-linea);
}

.cv-filtros__grupo:last-child {
	border-bottom: 0;
}

.cv-filtros__titulo {
	margin: 0 0 8px;
	font-size: 15px;
	font-weight: 700;
}

.cv-filtros ul {
	display: flex;
	flex-direction: column;
	gap: 2px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.cv-filtro {
	display: flex;
	align-items: center;
	gap: 10px;
	min-height: 36px;
	color: var(--cv-cacao);
	font-size: 15px;
	text-decoration: none;
}

.cv-filtro__caja {
	flex: none;
	box-sizing: border-box;
	width: 18px;
	height: 18px;
	border: 2px solid #c9b3ad;
	border-radius: 5px;
	background: var(--cv-blanco);
}

.cv-filtro.is-activo .cv-filtro__caja {
	border-color: var(--cv-rojo);
	background: var(--cv-rojo) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 5 5 9-10'/%3E%3C/svg%3E") center / 12px no-repeat;
}

.cv-filtro.is-activo {
	font-weight: 700;
}

.woocommerce .woocommerce-result-count {
	margin: 0 0 22px !important;
	color: var(--cv-texto-suave);
	font-size: 15px;
}

.woocommerce .woocommerce-ordering {
	margin: 0 0 22px !important;
}

.woocommerce .woocommerce-ordering select {
	min-height: 44px;
	padding: 0 14px;
	border: 1px solid #e3cfc9;
	border-radius: 12px;
	background-color: var(--cv-blanco);
	color: var(--cv-cacao);
	font-family: var(--cv-texto);
	font-size: 15px;
}

.woocommerce nav.woocommerce-pagination ul {
	display: inline-flex;
	gap: 6px;
	border: 0 !important;
}

.woocommerce nav.woocommerce-pagination ul li {
	border: 0 !important;
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	display: flex !important;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	padding: 0 12px !important;
	border-radius: 999px;
	font-weight: 700;
}

.woocommerce nav.woocommerce-pagination ul li span.current {
	background: var(--cv-cacao) !important;
	color: var(--cv-blanco) !important;
}

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

.cv-producto > .cv-contenedor {
	padding-block: 24px 72px;
}

.woocommerce div.product,
.woocommerce-page div.product {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 40px 56px;
	align-items: start;
	margin-top: 20px;
}

.woocommerce div.product div.images,
.woocommerce div.product div.summary,
.woocommerce-page div.product div.images,
.woocommerce-page div.product div.summary,
.woocommerce #content div.product div.images,
.woocommerce #content div.product div.summary {
	float: none !important;
	width: auto !important;
	margin: 0 !important;
}

.woocommerce div.product .woocommerce-tabs,
.woocommerce div.product section.related,
.woocommerce div.product section.up-sells {
	grid-column: 1 / -1;
}

.woocommerce div.product div.images {
	overflow: hidden;
	padding: 6%;
	border-radius: 28px;
	background: var(--cv-rosa-claro);
}

.woocommerce div.product div.images .woocommerce-product-gallery__image {
	background: var(--cv-rosa-claro);
}

.woocommerce div.product div.images .woocommerce-product-gallery__image > a img {
	mix-blend-mode: multiply;
}

.woocommerce div.product::before,
.woocommerce div.product::after {
	display: none !important;
}

.woocommerce div.product div.images .flex-control-thumbs {
	display: flex;
	gap: 10px;
	margin-top: 14px !important;
}

.woocommerce div.product div.images .flex-control-thumbs li {
	width: 72px !important;
	overflow: hidden;
	border-radius: 12px;
	background: var(--cv-blanco);
}

.woocommerce div.product div.summary {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 18px;
}

.woocommerce div.product div.summary > * {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}

.cv-ref--ficha {
	align-self: flex-start;
	padding: 5px 12px;
	border-radius: 999px;
	background: #f7efec;
	color: var(--cv-cacao);
	font-size: 13px;
	letter-spacing: .06em;
}

.woocommerce div.product .product_title {
	font-family: var(--cv-titulos);
	font-size: clamp(34px, 3.8vw, 54px);
	font-weight: 800;
	line-height: 1.02;
	letter-spacing: -.03em;
}

.woocommerce div.product .woocommerce-product-details__short-description {
	color: var(--cv-texto-suave);
	font-size: 17px;
}

.woocommerce div.product .woocommerce-product-details__short-description p {
	margin: 0 0 10px;
}

.cv-datos-clave {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(170px, 100%), 1fr));
	gap: 12px;
}

.cv-datos-clave div {
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding: 14px 16px;
	border-radius: 16px;
	background: var(--cv-rosa-claro);
}

.cv-datos-clave dt {
	color: var(--cv-gris);
	font-size: 13px;
}

.cv-datos-clave dd {
	margin: 0;
	font-family: var(--cv-titulos);
	font-size: 19px;
	font-weight: 700;
	line-height: 1.25;
}

.woocommerce div.product form.cart {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	padding: 20px 22px;
	border: 1px solid var(--cv-linea);
	border-radius: 20px;
	background: var(--cv-blanco);
	box-shadow: var(--cv-sombra);
}

.woocommerce div.product.product-type-simple form.cart::before {
	content: "Cantidad (unidades)";
	flex-basis: 100%;
	font-size: 14px;
	font-weight: 700;
}

.woocommerce div.product form.cart div.quantity {
	float: none;
	margin: 0;
}

.woocommerce .quantity .qty {
	box-sizing: border-box;
	width: 120px;
	min-height: 48px;
	padding: 0 12px;
	border: 1px solid #e3cfc9;
	border-radius: 12px;
	font-family: var(--cv-texto);
	font-size: 16px;
	text-align: left;
}

/* Botón de YITH Request a Quote («Añadir al presupuesto») y botones de WooCommerce */
.woocommerce a.add-request-quote-button,
.woocommerce a.add-request-quote-button.button,
.woocommerce div.product form.cart .button,
.woocommerce #respond input#submit,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	min-height: 52px;
	padding: 0 26px;
	border: 0;
	border-radius: 999px;
	background: var(--cv-rojo);
	color: var(--cv-blanco);
	font-family: var(--cv-texto);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.1;
	text-decoration: none;
}

.woocommerce a.add-request-quote-button:hover,
.woocommerce div.product form.cart .button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover {
	background: var(--cv-rojo-oscuro);
	color: var(--cv-blanco);
}

.woocommerce div.product .yith-ywraq-add-to-quote {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.woocommerce div.product .yith-ywraq-add-to-quote a.add-request-quote-button {
	width: 100%;
	min-height: 56px;
	font-size: 17px;
}

.yith_ywraq_add_item_response_message,
.yith_ywraq_add_item_browse_message {
	font-size: 15px;
	font-weight: 600;
}

.cv-ayuda {
	color: var(--cv-texto-suave);
	font-size: 14px;
}

.cv-ayuda a {
	font-weight: 700;
}

/* Pestaña «Ficha técnica» */
.woocommerce div.product .woocommerce-tabs {
	padding: 40px clamp(20px, 3vw, 40px);
	border-radius: 28px;
	background: var(--cv-rosa-claro);
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 20px !important;
	padding: 0 !important;
	overflow: visible;
}

.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 !important;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li {
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 999px !important;
	background: var(--cv-blanco) !important;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	display: block;
	padding: 10px 18px !important;
	color: var(--cv-cacao) !important;
	font-weight: 700;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active {
	background: var(--cv-cacao) !important;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
	color: var(--cv-blanco) !important;
}

.woocommerce div.product .woocommerce-tabs .panel > h2:first-child {
	display: none;
}

.woocommerce table.shop_attributes {
	overflow: hidden;
	margin: 0;
	border: 0 !important;
	border-radius: 20px;
	background: var(--cv-blanco);
}

.woocommerce table.shop_attributes th,
.woocommerce table.shop_attributes td {
	padding: 14px 20px !important;
	border: 0 !important;
	border-bottom: 1px solid #f1e6e2 !important;
	background: none !important;
	font-size: 15px;
	font-style: normal !important;
	text-align: left;
	vertical-align: top;
}

.woocommerce table.shop_attributes th {
	width: 200px;
	font-weight: 700;
}

.woocommerce table.shop_attributes td {
	color: var(--cv-texto-suave);
}

.woocommerce table.shop_attributes td p {
	margin: 0;
	padding: 0 !important;
}

.woocommerce table.shop_attributes tr:last-child th,
.woocommerce table.shop_attributes tr:last-child td {
	border-bottom: 0 !important;
}

.woocommerce div.product section.related > h2,
.woocommerce div.product section.up-sells > h2 {
	margin: 0 0 24px;
	font-family: var(--cv-titulos);
	font-size: clamp(26px, 2.4vw, 34px);
	font-weight: 800;
	letter-spacing: -.02em;
}

/* --------------------------------------------------------------- Páginas, avisos y Mi presupuesto */

.cv-pagina > .cv-contenedor {
	padding-block: 48px 80px;
}

.cv-pagina__titulo {
	margin: 0 0 28px;
	font-family: var(--cv-titulos);
	font-size: clamp(36px, 4vw, 56px) !important;
	font-weight: 800;
	line-height: 1.02;
	letter-spacing: -.03em;
}

.cv-pagina__contenido {
	font-size: 17px;
	line-height: 1.6;
}

.cv-404__buscador {
	max-width: 560px;
	margin: 24px 0;
}

.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-notices-wrapper .woocommerce-message {
	border-top-color: var(--cv-rojo) !important;
	border-radius: 14px;
	background: var(--cv-rosa-claro) !important;
	color: var(--cv-cacao) !important;
}

.woocommerce-message::before,
.woocommerce-info::before {
	color: var(--cv-rojo) !important;
}

#yith-ywraq-form table,
.ywraq-wrapper table {
	width: 100%;
	border-collapse: collapse;
}

#yith-ywraq-form input[type="text"],
#yith-ywraq-form input[type="email"],
#yith-ywraq-form input[type="tel"],
#yith-ywraq-form textarea,
.yith-ywraq-mail-form-wrapper input[type="text"],
.yith-ywraq-mail-form-wrapper input[type="email"],
.yith-ywraq-mail-form-wrapper textarea {
	box-sizing: border-box;
	width: 100%;
	min-height: 48px;
	padding: 10px 14px;
	border: 1px solid #e3cfc9;
	border-radius: 12px;
	font-family: var(--cv-texto);
	font-size: 16px;
}

/* --------------------------------------------------------------- Móvil y tableta */

@media (max-width: 900px) {
	.woocommerce div.product,
	.woocommerce-page div.product {
		grid-template-columns: minmax(0, 1fr);
	}

	.cv-hero__visual {
		min-height: 420px;
	}

	.cv-cabecera__buscador {
		flex-basis: 100%;
		order: 3;
		max-width: none;
	}

	.cv-tienda__filtros {
		flex-basis: 100%;
	}

	.cv-filtros {
		flex-direction: row;
		flex-wrap: wrap;
		gap: 12px 24px;
	}

	.cv-filtros__cabecera {
		flex-basis: 100%;
	}

	.cv-filtros__grupo {
		padding: 0;
		border: 0;
	}

	.cv-filtros ul {
		flex-direction: row;
		flex-wrap: wrap;
		gap: 8px;
	}

	.cv-filtro {
		padding: 0 14px;
		border: 1px solid #e8d6d1;
		border-radius: 999px;
	}

	.cv-filtro__caja {
		display: none;
	}

	.cv-filtro.is-activo {
		border-color: var(--cv-rojo);
		background: var(--cv-rojo);
		color: var(--cv-blanco);
	}
}

@media (max-width: 600px) {
	.cv-topbar__lema {
		display: none;
	}

	.cv-topbar__fila {
		justify-content: center;
	}

	.cv-cabecera__fila {
		gap: 10px 12px;
		padding-block: 10px 12px;
	}

	.cv-marca__nombre {
		font-size: 24px;
	}

	.cv-marca .cv-caramelo {
		width: 36px;
		height: 36px;
	}

	.cv-cabecera__acciones .cv-cuenta span,
	.cv-cabecera__acciones .cv-btn--oscuro span {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip-path: inset(50%);
		white-space: nowrap;
	}

	.cv-cabecera__acciones .cv-btn--oscuro {
		width: 44px;
		min-height: 44px;
		padding: 0;
	}

	.cv-hero__titulo {
		font-size: 40px !important;
	}

	.cv-hero__acciones {
		flex-direction: column;
		align-items: stretch;
		width: 100%;
	}

	.cv-hero__visual {
		min-height: 330px;
	}

	.cv-foto--grande {
		width: 210px;
		padding: 12px 12px 10px;
	}

	.cv-foto--pequena,
	.cv-foto--grande figcaption span {
		display: none;
	}

	.cv-pegatina {
		width: 92px;
		height: 92px;
	}

	.cv-pegatina strong {
		font-size: 27px;
	}

	.cv-cats {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 16px 12px;
	}

	.cv-ocasiones {
		flex-wrap: nowrap;
		margin-inline: calc(-1 * var(--cv-margen));
		padding-inline: var(--cv-margen);
		overflow-x: auto;
	}

	.cv-pastilla {
		flex: none;
	}

	.cv-navidad ul.products {
		display: flex !important;
		gap: 12px;
		margin-inline: calc(-1 * var(--cv-margen)) !important;
		padding-inline: var(--cv-margen) !important;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
	}

	.cv-navidad ul.products li.product {
		flex: none;
		width: 236px !important;
		scroll-snap-align: start;
	}

	.cv-distribuidores__botones,
	.cv-distribuidores__botones a {
		width: 100%;
	}

	.woocommerce table.shop_attributes th {
		width: auto;
	}
}
