/* ==========================================================================
   La Despensa de Palacio · Capa de diseño (octubre 2026)
   Se carga DESPUÉS del CSS del tema y solo afina: no cambia colores de marca,
   tipografías ni logotipo. Para volver al diseño anterior basta con
   desactivar el plugin «La Despensa · Diseño» (o añadir ?original=1 a la URL).
   ========================================================================== */

:root {
	--lddp-azul: #000f9f;
	--lddp-azul-osc: #000a73;
	--lddp-amarillo: #ffed00;
	--lddp-crema: #faf8ef;
	--lddp-texto: #1d1d1f;
	--lddp-suave: #6b6b73;
	--lddp-linea: rgba(0, 15, 159, .12);
	--lddp-radio: 8px;
	--lddp-radio-btn: 6px;
	--lddp-sombra: 0 10px 30px -12px rgba(0, 15, 159, .25);
	--lddp-trans: .25s cubic-bezier(.2, .7, .2, 1);
}

/* ---------- Base y lectura ---------- */
html { scroll-behavior: smooth; }
body {
	color: var(--lddp-texto);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}
main p, footer p { line-height: 1.65; }
main p { font-weight: 400; }
::selection { background: var(--lddp-amarillo); color: #000; }

a, button, .button, input, select, textarea, img {
	transition: color var(--lddp-trans), background-color var(--lddp-trans),
		border-color var(--lddp-trans), box-shadow var(--lddp-trans),
		transform var(--lddp-trans), opacity var(--lddp-trans);
}

:focus-visible {
	outline: 2px solid var(--lddp-azul);
	outline-offset: 3px;
}

/* ---------- Cabecera ---------- */
header {
	box-shadow: 0 1px 0 rgba(0, 0, 0, .04);
}
.header-menu a,
.menu-top a {
	position: relative;
}
.header-menu a::after,
.menu-top a::after {
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: -4px;
	height: 1.5px;
	background: currentColor;
	transform: scaleX(0);
	transform-origin: center;
	transition: transform var(--lddp-trans);
}
.header-menu a:hover::after,
.menu-top a:hover::after,
.header-menu .current-menu-item > a::after {
	transform: scaleX(1);
}
.header-cart-bubble { font-weight: 600; }

/* ---------- Botones ---------- */
.primary-btn,
.secondary-btn,
.blue-btn,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce .single_add_to_cart_button,
.woocommerce #respond input#submit,
.wpcf7 input[type="submit"],
.checkout-button,
#place_order {
	border-radius: var(--lddp-radio-btn) !important;
	font-weight: 600 !important;
	letter-spacing: .01em;
}
.primary-btn:hover,
.secondary-btn:hover,
.blue-btn:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce .single_add_to_cart_button:hover,
.wpcf7 input[type="submit"]:hover,
.checkout-button:hover,
#place_order:hover {
	background-color: var(--lddp-azul-osc) !important;
	box-shadow: var(--lddp-sombra);
	transform: translateY(-1px);
}
/* Botones vacíos (sin texto) no se muestran como un bloque azul */
.secondary-btn:empty,
.primary-btn:empty { display: none !important; }

/* ---------- Tarjetas de producto ---------- */
/* Tarjeta crema con esquinas suaves; la foto (fondo blanco) se funde con
   la tarjeta gracias a mix-blend-mode, al estilo de las fichas de Venchi */
/* El fondo va en un ::before para respetar el hueco entre columnas del tema
   (en la rejilla de tienda el tema separa las tarjetas con 15px de padding) */
ul.products li.product {
	--lddp-gut: 0px;
	position: relative;
	isolation: isolate;
	text-align: center;
	padding: 18px 18px 22px !important;
	transition: transform var(--lddp-trans);
}
.products-grid ul.products li.product {
	--lddp-gut: 15px;
	padding: 18px 33px 22px !important;
}
ul.products li.product::before {
	content: "";
	position: absolute;
	top: 0; bottom: 0;
	left: var(--lddp-gut); right: var(--lddp-gut);
	background: var(--lddp-crema);
	border-radius: 12px;
	z-index: -1;
	transition: box-shadow var(--lddp-trans);
}
ul.products li.product .woocommerce-LoopProduct-link {
	display: block;
}
ul.products li.product img {
	border-radius: 6px;
	background: transparent !important;
	mix-blend-mode: multiply;
}
@media (hover: hover) {
	ul.products li.product:hover { transform: translateY(-2px); }
	ul.products li.product:hover::before { box-shadow: 0 18px 40px -22px rgba(0, 15, 159, .35); }
}
@media (hover: hover) {
	ul.products li.product .woocommerce-LoopProduct-link:hover img {
		transform: scale(1.03);
	}
	ul.products li.product .woocommerce-LoopProduct-link:hover .woocommerce-loop-product__title {
		color: var(--lddp-azul);
	}
}
ul.products li.product .product-list-cats,
ul.products li.product .product-list-cat {
	font-size: 11px !important;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--lddp-suave) !important;
}
ul.products li.product .woocommerce-loop-product__title {
	font-family: "Lora", serif !important;
	font-size: 17px !important;
	font-weight: 400 !important;
	line-height: 1.3 !important;
}
ul.products li.product .price {
	font-weight: 600 !important;
	color: var(--lddp-azul) !important;
	font-size: 16px !important;
}
ul.products li.product .product-list-cats {
	display: flex !important;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0 6px;
}
ul.products li.product a.button {
	width: 100%;
	max-width: 240px;
	text-align: center;
}
@media (max-width: 768px) {
	.products-grid ul.products li.product {
		--lddp-gut: 5px;
		padding: 12px 13px 16px !important;
	}
	ul.products li.product .woocommerce-loop-product__title { font-size: 15px !important; }
	ul.products li.product a.button { padding: 11px 8px !important; font-size: 13px !important; }
	ul.products li.product .product-list-cats,
	ul.products li.product .product-list-cat { font-size: 10px !important; }
}

/* ---------- Títulos de sección ---------- */
.products-related h2 span,
.cats-carrousel-header h3,
.posts-carrousel-header h3 {
	font-size: clamp(22px, 2.2vw, 30px) !important;
	letter-spacing: .01em;
}

/* ---------- Especialidades (categorías) ---------- */
.cat-item {
	border-radius: var(--lddp-radio);
	overflow: hidden;
}
.cat-item img { transition: transform .6s cubic-bezier(.2, .7, .2, 1); }
@media (hover: hover) {
	.cats-carrousel a:hover .cat-item img { transform: scale(1.05); }
	.cats-carrousel a:hover .cat-item { box-shadow: var(--lddp-sombra); }
}
.cat-item span {
	text-underline-offset: 4px;
}
.cats-carrousel a:hover .cat-item span { text-decoration: underline; }

/* ---------- Banners (producto destacado / ¡Te esperamos!) ---------- */
.banner-wrapper {
	border-radius: 12px;
	overflow: hidden;
}
.banner .content h3 {
	font-size: clamp(26px, 2.6vw, 36px) !important;
}

/* ---------- Blog ---------- */
.post-item .image {
	border-radius: var(--lddp-radio);
	overflow: hidden;
}
.post-item .image img { transition: transform .6s cubic-bezier(.2, .7, .2, 1); }
@media (hover: hover) {
	.post-item:hover .image img { transform: scale(1.04); }
}
.post-item .content h3 {
	text-transform: none !important;
	font-size: 20px !important;
	line-height: 1.3 !important;
}
.post-item .content > span {
	font-size: 11px;
	letter-spacing: .08em;
	text-transform: uppercase;
}

/* Carruseles de entradas: tarjetas a la misma altura y «Leer más» siempre
   alineado abajo, aunque los títulos o resúmenes tengan distinto largo. */
.owl-posts-carrousel .owl-stage { display: flex; }
.owl-posts-carrousel .owl-item { display: flex; flex-shrink: 0; }
.owl-posts-carrousel .owl-item > .item,
.owl-posts-carrousel .post-item,
.owl-posts-carrousel .post-item-wrapper {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	width: 100%;
}
.owl-posts-carrousel .post-item-wrapper > .content {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
}
.owl-posts-carrousel .post-item-wrapper > .content > .link {
	margin-top: auto;
	padding-top: 24px;
}

/* Carruseles de productos (relacionados, portada): tarjetas a la misma altura
   y botón siempre abajo, aunque el título ocupe más líneas o lleve etiquetas. */
.owl-related .owl-stage,
.owl-stage:has(> .owl-item > li.product) { display: flex; }
.owl-related .owl-item,
.owl-stage:has(> .owl-item > li.product) > .owl-item { display: flex; flex-shrink: 0; }
.owl-carousel .owl-item > li.product {
	flex: 1 1 auto;
	width: 100%;
	height: auto;
	display: flex;
	flex-direction: column;
}
.owl-carousel .owl-item > li.product > a.woocommerce-LoopProduct-link { flex: 1 1 auto; }

/* ---------- Categoría de tienda ---------- */
.wc-category-header,
.wc-category-header .image img {
	border-radius: 12px;
}
.wc-category-header-wrapper {
	border-radius: var(--lddp-radio);
}
.order-filter .filter-option,
.order-option select,
.woocommerce-ordering select {
	border-radius: var(--lddp-radio-btn);
}

/* ---------- Ficha de producto ---------- */
.single-product .woocommerce-product-gallery img,
.single-product .product .images img {
	border-radius: var(--lddp-radio);
}
.single-product .product_title {
	font-size: clamp(28px, 2.6vw, 38px) !important;
	line-height: 1.15 !important;
}
.single-product .summary .price {
	color: var(--lddp-azul) !important;
	font-weight: 600 !important;
}
.single-product .quantity input.qty {
	border-radius: var(--lddp-radio-btn);
}

/* ---------- Formularios ---------- */
input[type="text"], input[type="email"], input[type="tel"], input[type="password"],
input[type="number"], input[type="search"], select, textarea {
	border-radius: var(--lddp-radio-btn);
}
input[type="text"]:focus, input[type="email"]:focus, input[type="tel"]:focus,
input[type="password"]:focus, input[type="number"]:focus, input[type="search"]:focus,
select:focus, textarea:focus {
	border-color: var(--lddp-azul) !important;
	box-shadow: 0 0 0 3px rgba(0, 15, 159, .12);
	outline: none;
}

/* ---------- Carrito y pago ---------- */
.cart_totals,
.order-review {
	background: var(--lddp-crema);
	border-radius: 12px;
	padding: 24px !important;
}
.order-review {
	align-self: flex-start;
	height: auto !important;
}
#payment .wc_payment_method label,
#payment .payment_box,
#payment li.wc_payment_method {
	border-radius: var(--lddp-radio);
}
.woocommerce-cart-form img,
.order-review img {
	border-radius: 6px;
}

/* ---------- Defectos visuales corregidos ---------- */
/* Formulario de pago: los campos quedaban descolocados (Población, Correo)
   porque el tema los coloca con float. Se ordenan en una rejilla de 2 columnas. */
.woocommerce-billing-fields__field-wrapper,
.woocommerce-shipping-fields__field-wrapper,
.woocommerce-address-fields__field-wrapper {
	display: grid !important;
	grid-template-columns: 1fr 1fr;
	column-gap: 24px;
}
.woocommerce-billing-fields__field-wrapper::before,
.woocommerce-billing-fields__field-wrapper::after,
.woocommerce-shipping-fields__field-wrapper::before,
.woocommerce-shipping-fields__field-wrapper::after,
.woocommerce-address-fields__field-wrapper::before,
.woocommerce-address-fields__field-wrapper::after {
	display: none !important;
}
.woocommerce-billing-fields__field-wrapper > .form-row,
.woocommerce-shipping-fields__field-wrapper > .form-row,
.woocommerce-address-fields__field-wrapper > .form-row {
	float: none !important;
	width: auto !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}
.woocommerce-billing-fields__field-wrapper > .form-row-wide,
.woocommerce-shipping-fields__field-wrapper > .form-row-wide,
.woocommerce-address-fields__field-wrapper > .form-row-wide {
	grid-column: 1 / -1;
}
@media (max-width: 768px) {
	.woocommerce-billing-fields__field-wrapper,
	.woocommerce-shipping-fields__field-wrapper,
	.woocommerce-address-fields__field-wrapper {
		grid-template-columns: 1fr;
	}
}
/* Contact Form 7 (6.x) añade un <fieldset> que el tema muestra con borde */
.wpcf7 fieldset.hidden-fields-container {
	border: 0 !important;
	padding: 0 !important;
	margin: 0 !important;
	min-width: 0;
}
/* Textos largos (correo de redes) no se salen de su columna */
footer a, footer p { overflow-wrap: anywhere; }

/* ---------- Pie ---------- */
.newsletter-block h4 { letter-spacing: .01em; }
footer a:hover { color: var(--lddp-azul); }

/* ---------- Movimiento reducido ---------- */
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { transition: none !important; animation: none !important; }
}

/* ---------- Portada: cabecera principal ----------
   Solo se aplica cuando la diapositiva NO tiene imagen (lo detecta
   lddp-diseno.js y añade .lddp-hero-on). Si se pone una imagen en la
   diapositiva desde el administrador, la portada vuelve a su diseño normal. */
.full-slider .lddp-vacio { display: none !important; }
.full-slider.lddp-una .dots { display: none !important; }

.lddp-hero-on .full-slider-wrapper { overflow: hidden; }
.lddp-hero-activo .full-slider-item-wrapper {
	display: grid !important;
	grid-template-columns: minmax(0, .85fr) minmax(0, 1.65fr);
	align-items: center;
	gap: clamp(28px, 4vw, 56px);
	padding: 36px 0 !important;
	min-height: 0;
	height: auto !important;
}
.lddp-hero-on .full-slider-item,
.lddp-hero-on .full-slider .item,
.full-slider.lddp-hero-on .item { height: auto !important; }
.full-slider.lddp-hero-on .item > .container { height: auto !important; min-height: 0 !important; }
.lddp-hero-activo .full-slider-item-wrapper > .content {
	background: transparent !important;
	padding: 0 !important;
	width: auto !important;
	max-width: 500px;
	height: auto !important;
	margin: 0 !important;
}
.lddp-hero-activo .content h1 {
	font-size: clamp(34px, 3.4vw, 52px) !important;
	line-height: 1.08 !important;
	letter-spacing: -.01em;
	margin: 0 0 22px !important;
	width: auto !important;
}
.lddp-hero-activo .content h1::after {
	content: "";
	display: block;
	width: 56px;
	height: 3px;
	margin-top: 22px;
	background: var(--lddp-amarillo);
	border-radius: 2px;
}
.lddp-hero-activo .content .content-wrapper,
.lddp-hero-activo .content p {
	font-size: 15px !important;
	line-height: 1.7 !important;
	max-width: 46ch;
	width: auto !important;
}

.lddp-hero {
	position: relative;
	height: clamp(260px, 22vw, 330px);
}
.lddp-hero-fondo {
	position: absolute;
	inset: 0;
	border-radius: 20px;
	background: var(--lddp-amarillo) url("/wp-content/themes/ladespensadepalacio/images/components/back-cat-carrousel.jpg") center / 520px auto repeat;
	animation: lddp-azulejo 60s linear infinite;
}
@keyframes lddp-azulejo {
	from { background-position: 0 0; }
	to { background-position: 520px 520px; }
}
.lddp-hero-foto {
	--px: 0px; --py: 0px; --r: 0deg;
	position: absolute;
	margin: 0;
	width: 21%;
	aspect-ratio: 1;
	padding: 8px;
	background: var(--lddp-crema);
	border-radius: 16px;
	box-shadow: 0 24px 50px -24px rgba(0, 15, 159, .45), 0 2px 6px rgba(0, 0, 0, .06);
	transform: translate(var(--px), var(--py)) rotate(var(--r));
	transition: transform .6s cubic-bezier(.2, .7, .2, 1);
	animation: lddp-flota 7s ease-in-out infinite;
}
.lddp-hero-foto img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	mix-blend-mode: multiply;
	border-radius: 10px;
}
.lddp-f1 { --r: -5deg; top: 12%; left: 4%;  animation-delay: 0s; }
.lddp-f2 { --r: 4deg;  top: 28%; left: 28%; animation-delay: -2s; z-index: 2; }
.lddp-f3 { --r: -3deg; top: 9%;  left: 52%; animation-delay: -4s; }
.lddp-f4 { --r: 5deg;  top: 26%; left: 75%; animation-delay: -5.5s; z-index: 2; }
@keyframes lddp-flota {
	0%, 100% { translate: 0 0; }
	50% { translate: 0 -12px; }
}

/* Cabecera con vídeo: fondo amarillo con el azulejo de la marca y el vídeo enmarcado */
.full-slider.lddp-hero-on:has(.lddp-hero-video, .lddp-hero-logo) .full-slider-wrapper {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	background: var(--lddp-amarillo);
}
/* Azulejo propio (lacería de estrellas de ocho puntas), continuo y en movimiento lento.
   Más suave detrás del texto y pleno en la zona del logo. */
.full-slider.lddp-hero-on:has(.lddp-hero-video, .lddp-hero-logo) .full-slider-wrapper::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='150' height='150' viewBox='0 0 150 150'%3E%3Cg fill='none' stroke='%23d6b400' stroke-width='1.4' stroke-linejoin='round' stroke-linecap='round'%3E%3Cpolygon points='75.00,45.00 80.36,62.07 96.21,53.79 87.93,69.64 105.00,75.00 87.93,80.36 96.21,96.21 80.36,87.93 75.00,105.00 69.64,87.93 53.79,96.21 62.07,80.36 45.00,75.00 62.07,69.64 53.79,53.79 69.64,62.07'/%3E%3Cpolygon points='75.00,54.00 78.06,67.61 89.85,60.15 82.39,71.94 96.00,75.00 82.39,78.06 89.85,89.85 78.06,82.39 75.00,96.00 71.94,82.39 60.15,89.85 67.61,78.06 54.00,75.00 67.61,71.94 60.15,60.15 71.94,67.61' stroke-width='.9'/%3E%3Ccircle cx='75.0' cy='75.0' r='4' fill='%23d6b400' stroke='none'/%3E%3Cpath d='M75.00 45.00 L75.00 0 M96.21 53.79 L140.10 9.90 M105.00 75.00 L150 75.00 M96.21 96.21 L140.10 140.10 M75.00 105.00 L75.00 150 M53.79 96.21 L9.90 140.10 M45.00 75.00 L0 75.00 M53.79 53.79 L9.90 9.90'/%3E%3Ccircle cx='0' cy='0' r='14'/%3E%3Ccircle cx='0' cy='0' r='3' fill='%23d6b400' stroke='none'/%3E%3Ccircle cx='8.00' cy='0.00' r='2.2'/%3E%3Ccircle cx='5.66' cy='5.66' r='2.2'/%3E%3Ccircle cx='0.00' cy='8.00' r='2.2'/%3E%3Ccircle cx='-5.66' cy='5.66' r='2.2'/%3E%3Ccircle cx='-8.00' cy='0.00' r='2.2'/%3E%3Ccircle cx='-5.66' cy='-5.66' r='2.2'/%3E%3Ccircle cx='-0.00' cy='-8.00' r='2.2'/%3E%3Ccircle cx='5.66' cy='-5.66' r='2.2'/%3E%3Ccircle cx='0' cy='150' r='14'/%3E%3Ccircle cx='0' cy='150' r='3' fill='%23d6b400' stroke='none'/%3E%3Ccircle cx='8.00' cy='150.00' r='2.2'/%3E%3Ccircle cx='5.66' cy='155.66' r='2.2'/%3E%3Ccircle cx='0.00' cy='158.00' r='2.2'/%3E%3Ccircle cx='-5.66' cy='155.66' r='2.2'/%3E%3Ccircle cx='-8.00' cy='150.00' r='2.2'/%3E%3Ccircle cx='-5.66' cy='144.34' r='2.2'/%3E%3Ccircle cx='-0.00' cy='142.00' r='2.2'/%3E%3Ccircle cx='5.66' cy='144.34' r='2.2'/%3E%3Ccircle cx='150' cy='0' r='14'/%3E%3Ccircle cx='150' cy='0' r='3' fill='%23d6b400' stroke='none'/%3E%3Ccircle cx='158.00' cy='0.00' r='2.2'/%3E%3Ccircle cx='155.66' cy='5.66' r='2.2'/%3E%3Ccircle cx='150.00' cy='8.00' r='2.2'/%3E%3Ccircle cx='144.34' cy='5.66' r='2.2'/%3E%3Ccircle cx='142.00' cy='0.00' r='2.2'/%3E%3Ccircle cx='144.34' cy='-5.66' r='2.2'/%3E%3Ccircle cx='150.00' cy='-8.00' r='2.2'/%3E%3Ccircle cx='155.66' cy='-5.66' r='2.2'/%3E%3Ccircle cx='150' cy='150' r='14'/%3E%3Ccircle cx='150' cy='150' r='3' fill='%23d6b400' stroke='none'/%3E%3Ccircle cx='158.00' cy='150.00' r='2.2'/%3E%3Ccircle cx='155.66' cy='155.66' r='2.2'/%3E%3Ccircle cx='150.00' cy='158.00' r='2.2'/%3E%3Ccircle cx='144.34' cy='155.66' r='2.2'/%3E%3Ccircle cx='142.00' cy='150.00' r='2.2'/%3E%3Ccircle cx='144.34' cy='144.34' r='2.2'/%3E%3Ccircle cx='150.00' cy='142.00' r='2.2'/%3E%3Ccircle cx='155.66' cy='144.34' r='2.2'/%3E%3Cpath d='M75.0 -6 L81.0 0 L75.0 6 L69.0 0Z M75.0 144 L81.0 150 L75.0 156 L69.0 150Z M-6 75.0 L0 69.0 L6 75.0 L0 81.0Z M144 75.0 L150 69.0 L156 75.0 L150 81.0Z' fill='%23d6b400' fill-opacity='.5' stroke='none'/%3E%3C/g%3E%3C/svg%3E") 0 0 / 150px 150px repeat;
	-webkit-mask-image: linear-gradient(90deg, rgba(0, 0, 0, .18) 0%, rgba(0, 0, 0, .35) 30%, #000 62%);
	mask-image: linear-gradient(90deg, rgba(0, 0, 0, .18) 0%, rgba(0, 0, 0, .35) 30%, #000 62%);
	animation: lddp-lazo 60s linear infinite;
}
@keyframes lddp-lazo {
	from { background-position: 0 0; }
	to { background-position: 150px 150px; }
}
@media (max-width: 991px) {
	.full-slider.lddp-hero-on:has(.lddp-hero-video, .lddp-hero-logo) .full-slider-wrapper::before {
		-webkit-mask-image: linear-gradient(180deg, #000 0%, #000 38%, rgba(0, 0, 0, .25) 70%);
		mask-image: linear-gradient(180deg, #000 0%, #000 38%, rgba(0, 0, 0, .25) 70%);
	}
}
@media (prefers-reduced-motion: reduce) {
	.full-slider.lddp-hero-on .full-slider-wrapper::before { animation: none !important; }
}
.lddp-hero-activo:has(.lddp-hero-video, .lddp-hero-logo) .content h1::after { background: var(--lddp-azul); }
.lddp-hero-activo:has(.lddp-hero-video, .lddp-hero-logo) .content h1,
.lddp-hero-activo:has(.lddp-hero-video, .lddp-hero-logo) .content p,
.lddp-hero-activo:has(.lddp-hero-video, .lddp-hero-logo) .content .content-wrapper { color: #1d1d1f !important; }
.lddp-hero-video {
	padding: 10px;
	background: var(--lddp-crema);
	border-radius: 24px;
	box-shadow: 0 30px 60px -28px rgba(0, 15, 159, .55), 0 2px 8px rgba(0, 0, 0, .08);
}

/* Logo en 3D girando sobre el azulejo */
.lddp-hero-logo {
	display: flex;
	align-items: center;
	justify-content: center;
	height: clamp(300px, 26vw, 380px);
}
.lddp-hero-logo::before { /* halo claro detrás del logo */
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	width: min(70%, 420px);
	aspect-ratio: 1;
	transform: translate(-50%, -50%);
	background: radial-gradient(closest-side, rgba(255, 255, 255, .7), rgba(255, 255, 255, 0));
	pointer-events: none;
}
.lddp-logo3d {
	position: relative;
	display: block;
	height: 100%;
	width: auto;
	max-width: 100%;
	object-fit: contain;
}
.lddp-logo3d-img { animation: lddp-balanceo 6s ease-in-out infinite; transform-origin: 50% 60%; }
@keyframes lddp-balanceo {
	0%, 100% { transform: perspective(900px) rotateY(-16deg); }
	50% { transform: perspective(900px) rotateY(16deg); }
}
.lddp-hero-on .lddp-logo3d { opacity: 0; }
.lddp-hero-on.lddp-entrada .lddp-logo3d { animation: lddp-entra .9s cubic-bezier(.2, .8, .2, 1) forwards; }
.lddp-hero-on.lddp-entrada .lddp-logo3d-img { animation: lddp-entra .9s cubic-bezier(.2, .8, .2, 1) forwards, lddp-balanceo 6s ease-in-out .9s infinite; }

/* Lata sin fondo sobre el azulejo */
.lddp-hero-lata::before { width: 96%; aspect-ratio: 2.4; }
.lddp-hero-lata .lddp-logo3d { filter: drop-shadow(0 24px 22px rgba(0, 15, 80, .28)); }
.lddp-hero-lata .lddp-logo3d-img,
.lddp-hero-on.lddp-entrada .lddp-hero-lata .lddp-logo3d-img { animation: lddp-entra .9s cubic-bezier(.2, .8, .2, 1) forwards, lddp-flota 7s ease-in-out .9s infinite; }

/* Panel con el vídeo de la lata girando */
.lddp-hero-lienzo {
	position: absolute;
	inset: 10px;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	border-radius: 20px;
	background: #e2eae8; /* mismo color que el fondo del vídeo */
	border-radius: 16px;
}
.lddp-hero-lienzo video {
	display: block;
	width: 94%;
	height: auto;
	max-height: 100%;
	object-fit: contain;
}
.lddp-hero-on .lddp-hero-lienzo { opacity: 0; }
.lddp-hero-on.lddp-entrada .lddp-hero-lienzo { animation: lddp-entra .9s cubic-bezier(.2, .8, .2, 1) forwards; }

/* Entrada al cargar la página */
/* El texto se ve desde el primer momento; solo las fotos entran animadas */
.lddp-hero-on .lddp-hero-foto { opacity: 0; }
.lddp-hero-on.lddp-entrada .lddp-hero-foto {
	animation: lddp-entra .9s cubic-bezier(.2, .8, .2, 1.1) forwards, lddp-flota 7s ease-in-out infinite;
}
.lddp-hero-on.lddp-entrada .lddp-f1 { animation-delay: 0s, 1s; }
.lddp-hero-on.lddp-entrada .lddp-f2 { animation-delay: .12s, -1s; }
.lddp-hero-on.lddp-entrada .lddp-f3 { animation-delay: .24s, -3s; }
.lddp-hero-on.lddp-entrada .lddp-f4 { animation-delay: .36s, -4.5s; }
@keyframes lddp-sube { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@keyframes lddp-aparece { from { opacity: 0; } to { opacity: 1; } }
@keyframes lddp-entra {
	from { opacity: 0; scale: .85; }
	to { opacity: 1; scale: 1; }
}

@media (max-width: 991px) {
	.lddp-hero-activo .full-slider-item-wrapper {
		grid-template-columns: 1fr;
		gap: 28px;
		padding: 16px 16px 36px !important;
	}
	.lddp-hero { order: -1; height: clamp(170px, 42vw, 280px); }
	.lddp-hero-activo .full-slider-item-wrapper > .content { max-width: none; }
	.lddp-hero-activo .content h1 { font-size: clamp(30px, 8vw, 40px) !important; }
	.lddp-hero-foto { padding: 6px; border-radius: 12px; }
}
@media (prefers-reduced-motion: reduce) {
	.lddp-hero-on .lddp-hero-foto,
	.lddp-hero-on .lddp-hero-lienzo,
	.lddp-hero-on .lddp-logo3d,
	.lddp-hero-fondo { opacity: 1 !important; animation: none !important; }
}

/* ---------- Banner de cookies (Complianz) ----------
   Barra apaisada a todo el ancho, al estilo Venchi, con el logo y los colores
   de la casa. Va aquí (y no en el CSS personalizado de Complianz) para que se
   aplique siempre igual sea cual sea la posición elegida en Complianz. */
body .cmplz-cookiebanner.cmplz-cookiebanner {
	position: fixed !important;
	left: 0 !important;
	right: 0 !important;
	bottom: 0 !important;
	top: auto !important;
	transform: none !important;
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	display: flex !important;
	flex-direction: column;
	gap: 10px;
	padding: 20px max(24px, calc((100vw - 1080px) / 2)) 16px !important;
	background: var(--lddp-crema) !important;
	border: 0 !important;
	border-top: 4px solid var(--lddp-amarillo) !important;
	border-radius: 0 !important;
	box-shadow: 0 -16px 40px -24px rgba(0, 15, 159, .45) !important;
	font-family: "Montserrat", sans-serif !important;
	color: var(--lddp-texto);
}
body .cmplz-cookiebanner {
	--cmplz_slider_active_color: #000f9f;
	--cmplz_slider_inactive_color: #cfcab6;
	--cmplz_slider_bullet_color: #ffffff;
	--cmplz_category_header_always_active_color: #000f9f;
	--cmplz_hyperlink_color: #000f9f;
}
.cmplz-cookiebanner .cmplz-categories { width: 100% !important; max-width: none !important; }
body .cmplz-cookiebanner.cmplz-hidden,
body .cmplz-cookiebanner.cmplz-dismissed { display: none !important; }
.cmplz-cookiebanner .cmplz-divider { display: none !important; }
.cmplz-cookiebanner .cmplz-header {
	display: flex !important;
	align-items: center;
	gap: 14px;
	width: 100%;
}
.cmplz-cookiebanner .cmplz-logo {
	display: block !important;
	flex: 0 0 34px;
	width: 34px;
	height: 44px;
	background: url("/wp-content/uploads/2023/04/logo-lddp-small.svg") center / contain no-repeat;
}
.cmplz-cookiebanner .cmplz-logo > * { display: none !important; }
.cmplz-cookiebanner .cmplz-title {
	flex: 1;
	font-family: "Lora", serif !important;
	font-size: 23px !important;
	font-weight: 400 !important;
	color: var(--lddp-texto) !important;
	text-align: left !important;
	margin: 0 !important;
}
.cmplz-cookiebanner .cmplz-title { display: block !important; }
.cmplz-cookiebanner .cmplz-close { margin-left: auto !important; color: var(--lddp-suave) !important; }
.cmplz-cookiebanner .cmplz-documents ul,
.cmplz-cookiebanner .cmplz-links ul { display: flex !important; flex-wrap: wrap; gap: 4px 14px; }
.cmplz-cookiebanner .cmplz-documents li,
.cmplz-cookiebanner .cmplz-links li { width: auto !important; flex: 0 0 auto !important; margin: 0 !important; }
.cmplz-cookiebanner .cmplz-close:hover { color: var(--lddp-azul) !important; }
.cmplz-cookiebanner .cmplz-body { width: 100%; }
.cmplz-cookiebanner .cmplz-message,
.cmplz-cookiebanner .cmplz-message p {
	width: 100% !important;
	font-size: 14px !important;
	line-height: 1.6 !important;
	color: #3a3a40 !important;
	text-align: left !important;
	max-width: none !important;
}
.cmplz-cookiebanner .cmplz-links,
.cmplz-cookiebanner .cmplz-documents { justify-content: flex-start !important; width: 100%; }
.cmplz-cookiebanner .cmplz-links.cmplz-information { justify-content: flex-end !important; }
.cmplz-cookiebanner .cmplz-links ul { padding: 0 !important; margin: 0 !important; }
.cmplz-cookiebanner .cmplz-link,
.cmplz-cookiebanner a { color: var(--lddp-azul) !important; font-size: 13px !important; }
.cmplz-cookiebanner .cmplz-buttons {
	display: grid !important;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
	width: 100%;
	margin-top: 4px;
}
.cmplz-cookiebanner .cmplz-buttons .cmplz-btn {
	width: 100% !important;
	height: 46px !important;
	margin: 0 !important;
	border-radius: var(--lddp-radio-btn) !important;
	font-family: "Montserrat", sans-serif !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	transition: background-color var(--lddp-trans), color var(--lddp-trans), border-color var(--lddp-trans);
}
.cmplz-cookiebanner .cmplz-buttons .cmplz-deny { order: 1; }
.cmplz-cookiebanner .cmplz-buttons .cmplz-view-preferences,
.cmplz-cookiebanner .cmplz-buttons .cmplz-save-preferences { order: 2; }
.cmplz-cookiebanner .cmplz-buttons .cmplz-accept { order: 3; }
.cmplz-cookiebanner .cmplz-buttons .cmplz-deny,
.cmplz-cookiebanner .cmplz-buttons .cmplz-view-preferences,
.cmplz-cookiebanner .cmplz-buttons .cmplz-save-preferences {
	background: #fff !important;
	border: 1px solid var(--lddp-azul) !important;
	color: var(--lddp-azul) !important;
}
.cmplz-cookiebanner .cmplz-buttons .cmplz-deny:hover,
.cmplz-cookiebanner .cmplz-buttons .cmplz-view-preferences:hover,
.cmplz-cookiebanner .cmplz-buttons .cmplz-save-preferences:hover {
	background: var(--lddp-amarillo) !important;
	border-color: var(--lddp-amarillo) !important;
	color: #000 !important;
}
.cmplz-cookiebanner .cmplz-buttons .cmplz-accept {
	background: var(--lddp-azul) !important;
	border: 1px solid var(--lddp-azul) !important;
	color: #fff !important;
}
.cmplz-cookiebanner .cmplz-buttons .cmplz-accept:hover {
	background: var(--lddp-azul-osc) !important;
	border-color: var(--lddp-azul-osc) !important;
}
.cmplz-cookiebanner .cmplz-categories .cmplz-category {
	background: #fff !important;
	border-radius: 8px !important;
}
.cmplz-cookiebanner .cmplz-categories .cmplz-category-title { color: var(--lddp-texto) !important; font-weight: 600 !important; }
.cmplz-cookiebanner .cmplz-always-active { color: var(--lddp-azul) !important; }
#cmplz-manage-consent .cmplz-manage-consent {
	background: var(--lddp-azul) !important;
	color: #fff !important;
	font-family: "Montserrat", sans-serif !important;
	font-weight: 600 !important;
	border-radius: 8px 8px 0 0 !important;
}
#cmplz-manage-consent .cmplz-manage-consent:hover { background: var(--lddp-amarillo) !important; color: #000 !important; }
@media (max-width: 768px) {
	body .cmplz-cookiebanner.cmplz-cookiebanner { padding: 18px 18px 16px !important; gap: 10px; max-height: 85vh; overflow-y: auto; }
	.cmplz-cookiebanner .cmplz-title { font-size: 20px !important; }
	.cmplz-cookiebanner .cmplz-logo { flex-basis: 28px; width: 28px; height: 39px; }
	.cmplz-cookiebanner .cmplz-message, .cmplz-cookiebanner .cmplz-message p { font-size: 13px !important; }
	.cmplz-cookiebanner .cmplz-buttons { grid-template-columns: 1fr; gap: 8px; }
	.cmplz-cookiebanner .cmplz-buttons .cmplz-accept { order: 0; }
	.cmplz-cookiebanner .cmplz-buttons .cmplz-btn { height: 46px !important; }
	.cmplz-cookiebanner .cmplz-links.cmplz-information { justify-content: flex-start !important; }
}

/* ---------- Portada: galería de ilustraciones de las latas ----------
   Las ilustraciones originales a pantalla completa, con acercamiento lento y
   fundido entre ellas; texto sobre un velo azul noche. */
.lddp-gal-oculto { display: none !important; }
.lddp-gal {
	--gal-azul: #0b1238;
	--gal-oro: #c9a45c;
	--gal-crema: #fbf6ea;
	position: relative;
	isolation: isolate;
	overflow: hidden;
	min-height: clamp(520px, calc(100vh - 150px), 760px);
	display: flex;
	align-items: center;
	background: var(--gal-azul);
	color: var(--gal-crema);
}
.lddp-gal-capas, .lddp-gal-capa, .lddp-gal-velo { position: absolute; inset: 0; }
.lddp-gal-capas { z-index: -2; }
.lddp-gal-capa {
	background-size: cover;
	background-repeat: no-repeat;
	opacity: 0;
	transform: scale(1.04);
	transition: opacity 1.8s ease;
	will-change: opacity, transform;
}
.lddp-gal-capa.lddp-gal-activa {
	opacity: 1;
	animation: lddp-gal-zoom calc(var(--lddp-gal-t, 7000ms) + 2200ms) linear both;
}
.lddp-gal-capa.lddp-gal-par.lddp-gal-activa { animation-name: lddp-gal-zoom-b; }
@keyframes lddp-gal-zoom { from { transform: scale(1.04) translate3d(0, 0, 0); } to { transform: scale(1.14) translate3d(-1.5%, -1%, 0); } }
@keyframes lddp-gal-zoom-b { from { transform: scale(1.14) translate3d(1.5%, 0, 0); } to { transform: scale(1.04) translate3d(0, -1%, 0); } }
.lddp-gal-velo {
	z-index: -1;
	background:
		linear-gradient(90deg, rgba(11, 18, 56, .94) 0%, rgba(11, 18, 56, .82) 30%, rgba(11, 18, 56, .35) 55%, rgba(11, 18, 56, 0) 72%),
		linear-gradient(0deg, rgba(11, 18, 56, .7) 0%, rgba(11, 18, 56, 0) 26%);
}
.lddp-gal::after { /* filete dorado inferior */
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: 0;
	height: 3px;
	background: linear-gradient(90deg, rgba(201, 164, 92, 0), var(--gal-oro) 20%, var(--gal-oro) 80%, rgba(201, 164, 92, 0));
}
.lddp-gal-in {
	width: 100%;
	max-width: 1240px;
	margin: 0 auto;
	padding: 36px 32px 84px;
}
.lddp-gal-texto { max-width: 580px; }
@media (min-width: 901px) { .lddp-gal-kicker { white-space: nowrap; } }
.lddp-gal-kicker {
	font-family: "Montserrat", sans-serif !important;
	font-size: 12px !important;
	font-weight: 600 !important;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--gal-oro) !important;
	margin: 0 0 20px !important;
}
.lddp-gal-texto h1 {
	font-family: "Lora", serif !important;
	font-weight: 500 !important;
	font-size: clamp(38px, 4.2vw, 60px) !important;
	line-height: 1.06 !important;
	letter-spacing: -.01em;
	color: var(--gal-crema) !important;
	margin: 0 0 24px !important;
	text-transform: none !important;
	text-wrap: balance;
	text-shadow: 0 2px 24px rgba(0, 0, 0, .35);
}
.lddp-gal-texto h1 em { font-style: italic; color: #e4c98f; }
.lddp-gal-linea { display: block; width: 56px; height: 2px; background: var(--gal-oro); margin: 0 0 24px; }
.lddp-gal-p {
	font-family: "Montserrat", sans-serif !important;
	font-size: clamp(15px, 1.15vw, 17px) !important;
	line-height: 1.7 !important;
	color: rgba(251, 246, 234, .86) !important;
	margin: 0 0 34px !important;
	max-width: 30em;
}
.lddp-gal-botones { display: flex; flex-wrap: wrap; gap: 12px; }
.lddp-gal-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 50px;
	padding: 0 28px;
	border-radius: 999px;
	font-family: "Montserrat", sans-serif;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: .02em;
	text-decoration: none !important;
	transition: background-color .25s ease, color .25s ease, border-color .25s ease, transform .25s ease;
}
.lddp-gal-btn--prim { background: var(--gal-crema); color: var(--gal-azul) !important; border: 1px solid var(--gal-crema); }
.lddp-gal-btn--prim:hover { background: var(--gal-oro); border-color: var(--gal-oro); color: #fff !important; transform: translateY(-2px); }
.lddp-gal-btn--sec { background: transparent; color: var(--gal-crema) !important; border: 1px solid rgba(251, 246, 234, .5); }
.lddp-gal-btn--sec:hover { border-color: var(--gal-oro); color: var(--gal-oro) !important; transform: translateY(-2px); }
.lddp-gal-pie {
	position: absolute;
	right: max(32px, calc((100vw - 1240px) / 2 + 32px));
	bottom: 30px;
	display: flex;
	align-items: center;
	gap: 14px;
	font-family: "Montserrat", sans-serif;
	font-size: 13px;
	color: rgba(251, 246, 234, .9) !important;
	text-decoration: none !important;
	text-shadow: 0 1px 10px rgba(0, 0, 0, .5);
}
.lddp-gal-pie span { font-style: italic; font-family: "Lora", serif; font-size: 15px; }
.lddp-gal-pie b { font-weight: 600; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--gal-oro); border-bottom: 1px solid currentColor; padding-bottom: 2px; }
.lddp-gal-pie:hover b { color: #fff; }
.lddp-gal-marcas {
	position: absolute;
	left: max(32px, calc((100vw - 1240px) / 2 + 32px));
	bottom: 34px;
	display: flex;
	gap: 10px;
}
.lddp-gal-marcas button {
	width: 44px;
	height: 18px;
	padding: 0;
	border: 0;
	background: none;
	cursor: pointer;
	display: flex;
	align-items: center;
}
.lddp-gal-marcas i { position: relative; display: block; width: 100%; height: 2px; background: rgba(251, 246, 234, .3); overflow: hidden; }
.lddp-gal-marcas i::after { content: ""; position: absolute; inset: 0; background: var(--gal-oro); transform: scaleX(0); transform-origin: left; }
.lddp-gal-marcas .lddp-gal-on i::after { animation: lddp-gal-barra var(--lddp-gal-t, 7000ms) linear forwards; }
@keyframes lddp-gal-barra { to { transform: scaleX(1); } }
/* entrada */
.lddp-gal .lddp-gal-texto > * { opacity: 0; transform: translateY(18px); transition: opacity .9s ease, transform .9s cubic-bezier(.2, .8, .2, 1); }
.lddp-gal.lddp-gal-lista .lddp-gal-texto > * { opacity: 1; transform: none; }
.lddp-gal.lddp-gal-lista .lddp-gal-texto > :nth-child(2) { transition-delay: .1s; }
.lddp-gal.lddp-gal-lista .lddp-gal-texto > :nth-child(3) { transition-delay: .2s; }
.lddp-gal.lddp-gal-lista .lddp-gal-texto > :nth-child(4) { transition-delay: .3s; }
.lddp-gal.lddp-gal-lista .lddp-gal-texto > :nth-child(5) { transition-delay: .4s; }
@media (max-width: 900px) {
	.lddp-gal { min-height: 0; align-items: flex-end; }
	.lddp-gal-capas { bottom: auto; height: 62vw; min-height: 260px; }
	.lddp-gal-velo { background: linear-gradient(180deg, rgba(11, 18, 56, 0) 0%, rgba(11, 18, 56, 0) 34%, rgba(11, 18, 56, .96) 56%, var(--gal-azul) 70%); }
	.lddp-gal-in { padding: calc(max(62vw, 260px) + 22px) 20px 92px; }
	.lddp-gal-kicker { display: none !important; }
	.lddp-gal-texto h1 { font-size: clamp(32px, 9vw, 44px) !important; }
	.lddp-gal-btn { flex: 1 1 auto; }
	.lddp-gal-pie { left: 20px; right: 20px; bottom: 26px; justify-content: space-between; }
	.lddp-gal-pie span { font-size: 13px; }
	.lddp-gal-pie b { white-space: nowrap; }
	.lddp-gal-capa { background-size: auto 116% !important; background-position-y: 30% !important; }
	.lddp-gal-marcas { left: 20px; top: calc(max(62vw, 260px) - 22px); bottom: auto; }
}
@media (prefers-reduced-motion: reduce) {
	.lddp-gal-capa, .lddp-gal-capa.lddp-gal-activa { animation: none !important; transform: none !important; transition: none !important; }
	.lddp-gal .lddp-gal-texto > * { opacity: 1 !important; transform: none !important; transition: none !important; }
	.lddp-gal-marcas .lddp-gal-on i::after { animation: none !important; transform: scaleX(1); }
}

/* Botón mostrar/ocultar contraseña: el tema lo dejaba como una barrita sin icono. Icono de ojo propio (SVG), sin depender de fuentes. */
.woocommerce form .show-password-input, .woocommerce-page form .show-password-input {
	width: 1.5em !important; height: 1.5em !important;
	right: .7em !important; top: 50% !important; transform: translateY(-50%) !important;
	background: transparent url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23585858'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M1%2012s4-7%2011-7%2011%207%2011%207-4%207-11%207-11-7-11-7z'/%3E%3Ccircle%20cx='12'%20cy='12'%20r='3'/%3E%3C/svg%3E") center / 1.15em no-repeat !important;
	border: 0 !important; box-shadow: none !important; opacity: .55; padding: 0 !important;
}
.woocommerce form .show-password-input:hover, .woocommerce-page form .show-password-input:hover { opacity: .9; }
.woocommerce form .show-password-input.display-password, .woocommerce-page form .show-password-input.display-password {
	background-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23585858'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M17.94%2017.94A10%2010%200%200%201%2012%2020C5%2020%201%2012%201%2012a18.5%2018.5%200%200%201%205.06-5.94M9.9%204.24A9%209%200%200%201%2012%204c7%200%2011%208%2011%208a18.5%2018.5%200%200%201-2.16%203.19m-6.72-1.07a3%203%200%201%201-4.24-4.24'/%3E%3Cline%20x1='1'%20y1='1'%20x2='23'%20y2='23'/%3E%3C/svg%3E") !important; opacity: .9;
}
.woocommerce form .show-password-input::after, .woocommerce-page form .show-password-input::after { content: none !important; }
