/**
 * Lena's Little Craft Shop — estilos de marca.
 * Misma identidad que la web actual (rosa #D30F7B, turquesa #019C96,
 * Playfair Display + Poppins), con el acabado limpio: rejillas alineadas,
 * tarjetas de la misma altura y sombras suaves.
 */

/* ---------------------------------------------------------------- base --- */

:root {
	--llcs-radius: 14px;
	--llcs-radius-sm: 8px;
	--llcs-shadow: 0 1px 2px rgba(36, 28, 34, .05), 0 8px 24px -12px rgba(36, 28, 34, .18);
	--llcs-shadow-lift: 0 2px 6px rgba(36, 28, 34, .07), 0 22px 44px -20px rgba(211, 15, 123, .3);
	--llcs-wrap: 1200px;
	--llcs-gap: clamp(1.25rem, 3vw, 2.25rem);
	--llcs-section: clamp(3.5rem, 8vw, 6.5rem);
	--llcs-serif: "Playfair Display", Georgia, "Times New Roman", serif;
	--llcs-sans: "Poppins", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

body.llcs-has-header,
body.llcs-has-footer {
	font-family: var(--llcs-sans);
	color: var(--llcs-ink);
	background: #fff;
}

.llcs-wrap {
	width: min(100% - 2.5rem, var(--llcs-wrap));
	margin-inline: auto;
}

.llcs-header h1, .llcs-header h2,
.llcs-footer h2, .llcs-footer h3,
.llcs-cta h2 {
	font-family: var(--llcs-serif);
	font-weight: 600;
	letter-spacing: -.01em;
}

/* -------------------------------------------------------------- botones --- */

.llcs-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	padding: .85rem 1.6rem;
	border-radius: 999px;
	font: 500 .95rem/1 var(--llcs-sans);
	text-decoration: none;
	border: 1.5px solid transparent;
	cursor: pointer;
	transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease, color .18s ease;
}

.llcs-btn:hover { transform: translateY(-2px); }
.llcs-btn:focus-visible { outline: 3px solid var(--llcs-yellow); outline-offset: 3px; }

.llcs-btn--teal  { background: var(--llcs-teal); color: #fff; box-shadow: 0 10px 24px -12px rgba(1, 156, 150, .8); }
.llcs-btn--teal:hover  { background: #017f7a; color: #fff; }
.llcs-btn--pink  { background: var(--llcs-pink); color: #fff; box-shadow: 0 10px 24px -12px rgba(211, 15, 123, .8); }
.llcs-btn--pink:hover  { background: #b00c67; color: #fff; }
.llcs-btn--ghost { background: transparent; color: currentColor; border-color: currentColor; }
.llcs-btn--ghost:hover { background: rgba(255, 255, 255, .14); }

/* ------------------------------------------------------------- cabecera --- */

.llcs-header {
	position: relative;
	z-index: 50;
	background: #fff;
	box-shadow: 0 1px 0 var(--llcs-line);
}

.llcs-topbar {
	background: var(--llcs-pink);
	color: #fff;
	font-size: .82rem;
	letter-spacing: .01em;
}

.llcs-topbar .llcs-wrap {
	display: flex;
	flex-wrap: wrap;
	gap: .35rem 1.5rem;
	align-items: center;
	justify-content: space-between;
	min-height: 40px;
	padding-block: .45rem;
}

.llcs-topbar__contact { display: flex; gap: 1.25rem; }
.llcs-topbar a { color: #fff; text-decoration: none; border-bottom: 1px solid rgba(255, 255, 255, .45); }
.llcs-topbar a:hover { border-bottom-color: #fff; }

.llcs-header__bar .llcs-wrap {
	display: flex;
	align-items: center;
	gap: var(--llcs-gap);
	min-height: 88px;
	padding-block: .75rem;
}

.llcs-logo { flex: 0 0 auto; line-height: 0; }
.llcs-logo img {
	width: auto;
	height: 64px;
	border-radius: var(--llcs-radius-sm);
	object-fit: contain;
}

.llcs-nav { margin-inline-start: auto; }

.llcs-menu {
	display: flex;
	align-items: center;
	gap: clamp(.9rem, 1.9vw, 1.9rem);
	margin: 0;
	padding: 0;
	list-style: none;
}

.llcs-menu a {
	position: relative;
	display: block;
	padding: .35rem 0;
	color: var(--llcs-ink);
	font-size: .87rem;
	font-weight: 500;
	letter-spacing: .04em;
	text-transform: uppercase;
	text-decoration: none;
	white-space: nowrap;
	transition: color .18s ease;
}

.llcs-menu a::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 2px;
	background: var(--llcs-pink);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .24s ease;
}

.llcs-menu a:hover { color: var(--llcs-pink); }
.llcs-menu a:hover::after,
.llcs-menu .current-menu-item > a::after { transform: scaleX(1); }
.llcs-menu .current-menu-item > a { color: var(--llcs-pink); }

/* submenús */
.llcs-menu .sub-menu {
	position: absolute;
	z-index: 20;
	min-width: 210px;
	margin: 0;
	padding: .5rem;
	list-style: none;
	background: #fff;
	border-radius: var(--llcs-radius-sm);
	box-shadow: var(--llcs-shadow);
	opacity: 0;
	visibility: hidden;
	transform: translateY(6px);
	transition: opacity .18s ease, transform .18s ease, visibility .18s;
}
.llcs-menu li { position: relative; }
.llcs-menu li:hover > .sub-menu,
.llcs-menu li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: translateY(0); }
.llcs-menu .sub-menu a { padding: .5rem .75rem; text-transform: none; letter-spacing: 0; font-size: .9rem; }
.llcs-menu .sub-menu a::after { display: none; }

.llcs-header__actions { display: flex; align-items: center; gap: .6rem; }

.llcs-icon-btn,
.llcs-cart {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	padding: .55rem .8rem;
	border-radius: 999px;
	color: var(--llcs-pink);
	background: #fdeef6;
	text-decoration: none;
	transition: background-color .18s ease, color .18s ease;
}

.llcs-icon-btn:hover,
.llcs-cart:hover { background: var(--llcs-pink); color: #fff; }

.llcs-cart__count {
	min-width: 20px;
	height: 20px;
	display: grid;
	place-items: center;
	padding-inline: .3rem;
	border-radius: 999px;
	background: var(--llcs-pink);
	color: #fff;
	font-size: .72rem;
	font-weight: 600;
}
.llcs-cart:hover .llcs-cart__count { background: #fff; color: var(--llcs-pink); }

/* botón hamburguesa */
.llcs-burger {
	display: none;
	margin-inline-start: auto;
	width: 44px;
	height: 44px;
	padding: 0;
	background: none;
	border: 0;
	cursor: pointer;
}
.llcs-burger span {
	display: block;
	width: 24px;
	height: 2px;
	margin: 5px auto;
	background: var(--llcs-ink);
	border-radius: 2px;
	transition: transform .22s ease, opacity .22s ease;
}
.llcs-burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.llcs-burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.llcs-burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

@media (max-width: 1024px) {
	.llcs-burger { display: block; order: 2; }
	.llcs-header__actions { order: 3; }
	.llcs-nav {
		order: 4;
		flex: 1 0 100%;
		max-height: 0;
		overflow: hidden;
		margin: 0;
		transition: max-height .3s ease;
	}
	.llcs-nav.is-open { max-height: 70vh; overflow-y: auto; }
	.llcs-menu {
		flex-direction: column;
		align-items: stretch;
		gap: 0;
		padding: .5rem 0 1rem;
	}
	.llcs-menu a { padding: .8rem .25rem; border-bottom: 1px solid var(--llcs-line); }
	.llcs-menu a::after { display: none; }
	.llcs-menu .sub-menu {
		position: static;
		opacity: 1;
		visibility: visible;
		transform: none;
		box-shadow: none;
		padding-inline-start: 1rem;
	}
	.llcs-header__bar .llcs-wrap { flex-wrap: wrap; min-height: 72px; }
	.llcs-logo img { height: 52px; }
}

/* --------------------------------------------------------- llamada final --- */

.llcs-cta {
	position: relative;
	padding-block: var(--llcs-section);
	text-align: center;
	color: #fff;
	background: linear-gradient(150deg, #2b1f27 0%, #4a2c3c 55%, #6d2f52 100%);
}

.llcs-cta h2 { margin: 0 0 .75rem; font-size: clamp(1.9rem, 4vw, 2.9rem); color: #fff; }
.llcs-cta p { margin: 0 auto; max-width: 46rem; font-size: 1.05rem; line-height: 1.7; color: rgba(255, 255, 255, .88); }
.llcs-cta a { color: #fff; }
.llcs-cta__actions { display: flex; flex-wrap: wrap; gap: .75rem; justify-content: center; margin-top: 2rem !important; }

/* -------------------------------------------------------------------- pie --- */

.llcs-footer { background: var(--llcs-cream); color: var(--llcs-ink); }

.llcs-footer__grid {
	display: grid;
	grid-template-columns: 1.6fr 1fr 1.2fr 1fr;
	gap: var(--llcs-gap);
	padding-block: clamp(2.5rem, 6vw, 4.5rem);
}

.llcs-footer__col h3 {
	margin: 0 0 1rem;
	font-size: 1.05rem;
	color: var(--llcs-pink);
}

.llcs-footer__brand img { height: 74px; width: auto; border-radius: var(--llcs-radius-sm); margin-bottom: 1rem; }
.llcs-footer__brand p { margin: 0; font-size: .9rem; line-height: 1.75; color: var(--llcs-grey); max-width: 34ch; }

.llcs-footer__menu,
.llcs-contact {
	margin: 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: .55rem;
}

.llcs-footer__menu a,
.llcs-contact a {
	color: var(--llcs-grey);
	font-size: .9rem;
	text-decoration: none;
	transition: color .16s ease;
}
.llcs-footer__menu a:hover,
.llcs-contact a:hover { color: var(--llcs-pink); }
.llcs-contact li { font-size: .9rem; line-height: 1.6; color: var(--llcs-grey); }

.llcs-social {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	margin-top: 1.1rem;
	color: var(--llcs-pink);
	font-size: .9rem;
	text-decoration: none;
}
.llcs-social:hover { text-decoration: underline; }

.llcs-footer__bottom {
	border-top: 1px solid var(--llcs-line);
	padding-block: 1.1rem;
	font-size: .82rem;
	color: var(--llcs-grey);
	text-align: center;
}

@media (max-width: 900px) {
	.llcs-footer__grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) {
	.llcs-footer__grid { grid-template-columns: 1fr; }
}

/* --------------------------------------------------------- WhatsApp flotante */

.llcs-wa-float {
	position: fixed;
	right: 18px;
	bottom: 18px;
	z-index: 90;
	display: grid;
	place-items: center;
	width: 54px;
	height: 54px;
	border-radius: 50%;
	background: #25d366;
	color: #fff;
	box-shadow: 0 10px 26px -8px rgba(37, 211, 102, .7);
	transition: transform .2s ease;
}
.llcs-wa-float:hover { transform: scale(1.07); }

@media print { .llcs-wa-float { display: none; } }

/* ------------------------------------------------- rejilla de categorías --- */

.llcs-cats {
	display: grid;
	grid-template-columns: repeat(var(--llcs-cols, 4), minmax(0, 1fr));
	gap: var(--llcs-gap);
	margin: 0;
	padding: 0;
	list-style: none;
}

.llcs-cat a {
	display: grid;
	gap: .55rem;
	text-decoration: none;
	color: inherit;
}

.llcs-cat__img {
	display: block;
	aspect-ratio: 1;
	overflow: hidden;
	border-radius: var(--llcs-radius);
	background: var(--llcs-cream);
}

.llcs-cat__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .5s cubic-bezier(.2, .7, .3, 1);
}

.llcs-cat a:hover .llcs-cat__img img { transform: scale(1.06); }

.llcs-cat__name {
	font-family: var(--llcs-serif);
	font-size: 1.08rem;
	color: var(--llcs-pink);
}
.llcs-cat__count { font-size: .8rem; color: var(--llcs-grey); }

@media (max-width: 900px) { .llcs-cats { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ----------------------------------------------------------- contacto ----- */

.llcs-contact-block {
	display: grid;
	gap: 1rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.llcs-contact-block li {
	display: grid;
	gap: .15rem;
	padding-bottom: 1rem;
	border-bottom: 1px solid var(--llcs-line);
}
.llcs-contact-block li:last-child { border-bottom: 0; padding-bottom: 0; }
.llcs-contact-block strong {
	font-size: .74rem;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--llcs-grey);
}
.llcs-contact-block a, .llcs-contact-block span { font-size: 1.02rem; color: var(--llcs-ink); text-decoration: none; }
.llcs-contact-block a:hover { color: var(--llcs-pink); }

.llcs-map { border-radius: var(--llcs-radius); overflow: hidden; box-shadow: var(--llcs-shadow); }
.llcs-map iframe { display: block; width: 100%; height: 380px; border: 0; }

/* --------------------------------------------------------------- Instagram */

.llcs-ig {
	text-align: center;
	padding: clamp(2.5rem, 6vw, 4rem) clamp(1.25rem, 4vw, 3rem);
	border-radius: var(--llcs-radius);
	background: linear-gradient(135deg, #fdeef6 0%, #fff7ef 100%);
}
.llcs-ig h2 { font-family: var(--llcs-serif); font-size: clamp(1.6rem, 3.4vw, 2.3rem); margin: 0 0 .6rem; color: var(--llcs-pink); }
.llcs-ig p { margin: 0 auto 1.6rem; max-width: 44ch; color: var(--llcs-grey); line-height: 1.7; }

/* -------------------------------------------------------- precio a pedir --- */

.llcs-price-ask {
	display: inline-block;
	font-family: var(--llcs-sans);
	font-weight: 500;
	color: var(--llcs-grey);
}

.llcs-ask {
	margin-block: 1.25rem;
	padding: 1.25rem 1.4rem;
	border-radius: var(--llcs-radius);
	background: var(--llcs-cream);
	border: 1px solid var(--llcs-line);
}
.llcs-ask p { margin: 0 0 .9rem; font-size: .95rem; line-height: 1.65; }
.llcs-ask p:last-child { margin-bottom: 0; display: flex; flex-wrap: wrap; gap: .6rem; }
.llcs-ask .llcs-btn--ghost { color: var(--llcs-pink); }

/* ============================================================ WooCommerce == */

/* Sólo las listas clásicas de WooCommerce. Los bloques (carrito, pago,
   productos recomendados) traen su propia rejilla: si se les fuerza ésta,
   las celdas se estrechan y el texto de los botones cae en vertical. */
.woocommerce ul.products {
	display: grid !important;
	grid-template-columns: repeat(var(--llcs-shop-cols, 4), minmax(0, 1fr));
	gap: var(--llcs-gap);
	margin: 0 0 2.5rem;
	padding: 0;
	list-style: none;
}

.woocommerce ul.products::before,
.woocommerce ul.products::after { display: none; }

.woocommerce ul.products li.product {
	display: flex !important;
	flex-direction: column;
	width: auto !important;
	margin: 0 !important;
	padding: 0;
	float: none !important;
	background: #fff;
	border: 1px solid var(--llcs-line);
	border-radius: var(--llcs-radius);
	overflow: hidden;
	transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

.woocommerce ul.products li.product:hover {
	transform: translateY(-4px);
	border-color: transparent;
	box-shadow: var(--llcs-shadow-lift);
}

.woocommerce ul.products li.product a img {
	display: block;
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
	margin: 0;
	border-radius: 0;
	transition: transform .5s cubic-bezier(.2, .7, .3, 1);
}

.woocommerce ul.products li.product:hover a img { transform: scale(1.05); }

.woocommerce ul.products li.product .woocommerce-loop-product__link {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	overflow: hidden;
	text-decoration: none;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	flex: 1 1 auto;
	padding: 1rem 1.1rem .25rem;
	font-family: var(--llcs-serif);
	font-size: 1.02rem !important;
	font-weight: 600;
	line-height: 1.35;
	color: var(--llcs-ink);
}

.woocommerce ul.products li.product .price {
	display: block;
	padding: 0 1.1rem;
	margin: 0 0 .9rem;
	font-family: var(--llcs-sans);
	font-size: 1rem;
	font-weight: 600;
	color: var(--llcs-pink);
}
.woocommerce ul.products li.product .price del { color: var(--llcs-grey); font-weight: 400; opacity: .7; margin-inline-end: .4rem; }
.woocommerce ul.products li.product .price ins { text-decoration: none; }

.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart {
	margin: 0 1.1rem 1.1rem;
	padding: .7rem 1.1rem;
	border-radius: 999px;
	background: var(--llcs-teal);
	color: #fff;
	font: 500 .86rem/1 var(--llcs-sans);
	text-align: center;
	text-decoration: none;
	transition: background-color .18s ease;
}
.woocommerce ul.products li.product .button:hover { background: #017f7a; color: #fff; }
.woocommerce ul.products li.product .added_to_cart { background: var(--llcs-pink); }

.woocommerce ul.products li.product .onsale,
.woocommerce span.onsale {
	top: .8rem;
	right: .8rem;
	left: auto;
	min-height: 0;
	min-width: 0;
	margin: 0;
	padding: .3rem .8rem;
	border-radius: 999px;
	background: var(--llcs-coral);
	font: 600 .74rem/1.4 var(--llcs-sans);
	letter-spacing: .04em;
}

.woocommerce .star-rating { color: var(--llcs-yellow); margin: 0 1.1rem .5rem; font-size: .82rem; }

@media (max-width: 1024px) { .woocommerce ul.products { --llcs-shop-cols: 3; } }
@media (max-width: 780px)  { .woocommerce ul.products { --llcs-shop-cols: 2; } }
@media (max-width: 420px)  { .woocommerce ul.products { --llcs-shop-cols: 1; } }

/* --- página de tienda --- */

.woocommerce .woocommerce-result-count { color: var(--llcs-grey); font-size: .9rem; }

.woocommerce .woocommerce-ordering select {
	padding: .6rem 1rem;
	border: 1px solid var(--llcs-line);
	border-radius: 999px;
	font-family: var(--llcs-sans);
	font-size: .9rem;
	background: #fff;
}

.woocommerce nav.woocommerce-pagination ul {
	border: 0;
	display: flex;
	gap: .4rem;
	justify-content: center;
}
.woocommerce nav.woocommerce-pagination ul li { border: 0; margin: 0; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	display: grid;
	place-items: center;
	min-width: 40px;
	height: 40px;
	padding: 0 .6rem;
	border-radius: 999px;
	border: 1px solid var(--llcs-line);
	font-size: .9rem;
	color: var(--llcs-ink);
}
.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li a:hover {
	background: var(--llcs-pink);
	border-color: var(--llcs-pink);
	color: #fff;
}

/* --- ficha de producto --- */

.woocommerce div.product .product_title {
	font-family: var(--llcs-serif);
	font-size: clamp(1.7rem, 3.4vw, 2.5rem);
	line-height: 1.15;
	margin-bottom: .5rem;
}

.woocommerce div.product p.price,
.woocommerce div.product span.price {
	font-family: var(--llcs-sans);
	font-size: 1.6rem;
	font-weight: 600;
	color: var(--llcs-pink);
}

.woocommerce div.product .woocommerce-product-gallery__image img { border-radius: var(--llcs-radius); }

.woocommerce div.product form.cart .button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt {
	padding: .95rem 2rem;
	border-radius: 999px;
	background: var(--llcs-teal);
	color: #fff;
	font: 500 .95rem/1 var(--llcs-sans);
	transition: background-color .18s ease, transform .18s ease;
}
.woocommerce div.product form.cart .button:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover { background: #017f7a; color: #fff; transform: translateY(-2px); }

.woocommerce div.product form.cart div.quantity input.qty {
	height: 48px;
	width: 70px;
	border: 1px solid var(--llcs-line);
	border-radius: 999px;
	text-align: center;
	font-family: var(--llcs-sans);
}

.woocommerce div.product .woocommerce-tabs ul.tabs { padding: 0; margin-bottom: 1.5rem; }
.woocommerce div.product .woocommerce-tabs ul.tabs::before { border-bottom-color: var(--llcs-line); }
.woocommerce div.product .woocommerce-tabs ul.tabs li {
	background: transparent;
	border: 0;
	border-radius: 0;
	padding: 0;
	margin: 0 1.5rem 0 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	display: block;
	padding: .8rem 0;
	font-family: var(--llcs-sans);
	font-weight: 500;
	color: var(--llcs-grey);
	border-bottom: 2px solid transparent;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
	color: var(--llcs-pink);
	border-bottom-color: var(--llcs-pink);
}

.woocommerce .product_meta { font-size: .88rem; color: var(--llcs-grey); }
.woocommerce .product_meta a { color: var(--llcs-pink); text-decoration: none; }
.woocommerce .product_meta a:hover { text-decoration: underline; }

.woocommerce .related > h2,
.woocommerce .upsells > h2 {
	font-family: var(--llcs-serif);
	font-size: clamp(1.5rem, 3vw, 2.1rem);
	margin-bottom: 1.5rem;
}

/* --- avisos, carrito y checkout --- */

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	border-top-color: var(--llcs-teal);
	background: var(--llcs-cream);
	border-radius: var(--llcs-radius-sm);
	font-family: var(--llcs-sans);
	font-size: .95rem;
}
.woocommerce-message::before, .woocommerce-info::before { color: var(--llcs-teal); }
.woocommerce-error { border-top-color: var(--llcs-coral); }
.woocommerce-error::before { color: var(--llcs-coral); }

.woocommerce table.shop_table {
	border-radius: var(--llcs-radius);
	border-color: var(--llcs-line);
	font-family: var(--llcs-sans);
}
.woocommerce table.shop_table th { font-weight: 600; }

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select {
	padding: .8rem 1rem;
	border: 1px solid var(--llcs-line);
	border-radius: var(--llcs-radius-sm);
	font-family: var(--llcs-sans);
	font-size: .95rem;
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus {
	outline: 2px solid var(--llcs-pink);
	outline-offset: 1px;
	border-color: transparent;
}

/* --- migas --- */

.woocommerce .woocommerce-breadcrumb {
	font-size: .85rem;
	color: var(--llcs-grey);
	margin-bottom: 1rem;
}
.woocommerce .woocommerce-breadcrumb a { color: var(--llcs-pink); text-decoration: none; }

/* -------------------------------------------------- ajustes de Elementor --- */

/* El hero de la portada usa un pase de fotos: sin JS quedaba un bloque gris
   enorme. Se le pone una altura sensata y una imagen de respaldo. */
.llcs-hero {
	min-height: clamp(480px, 78vh, 760px) !important;
	display: flex;
	align-items: center;
}

.llcs-hero .elementor-background-overlay { background: linear-gradient(180deg, rgba(30, 20, 26, .45) 0%, rgba(30, 20, 26, .62) 100%); }

.llcs-section { padding-block: var(--llcs-section) !important; }

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

/* ---------------------------------------------------- formulario propio --- */

.llcs-form { display: grid; gap: .25rem; }

.llcs-form__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0 1rem;
}
@media (max-width: 600px) { .llcs-form__grid { grid-template-columns: 1fr; } }

.llcs-form__row { display: grid; gap: .35rem; margin: 0 0 1.1rem; }

.llcs-form label {
	font-size: .82rem;
	font-weight: 500;
	letter-spacing: .02em;
	color: var(--llcs-grey);
}

.llcs-form input[type="text"],
.llcs-form input[type="email"],
.llcs-form input[type="tel"],
.llcs-form select,
.llcs-form textarea {
	width: 100%;
	padding: .85rem 1rem;
	border: 1px solid var(--llcs-line);
	border-radius: var(--llcs-radius-sm);
	background: #fff;
	font: 400 .98rem/1.55 var(--llcs-sans);
	color: var(--llcs-ink);
	transition: border-color .16s ease, box-shadow .16s ease;
}

.llcs-form input:focus,
.llcs-form select:focus,
.llcs-form textarea:focus {
	outline: none;
	border-color: var(--llcs-pink);
	box-shadow: 0 0 0 3px rgba(211, 15, 123, .14);
}

.llcs-form textarea { resize: vertical; min-height: 150px; }

.llcs-form__consent { margin: .25rem 0 1.3rem; }
.llcs-form__consent label {
	display: flex;
	align-items: flex-start;
	gap: .55rem;
	font-size: .87rem;
	line-height: 1.6;
	color: var(--llcs-grey);
	font-weight: 400;
}
.llcs-form__consent input { margin-top: .2rem; accent-color: var(--llcs-pink); }
.llcs-form__consent a { color: var(--llcs-pink); }

/* trampa antispam: fuera de pantalla pero accesible para lectores */
.llcs-form__hp {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
}

.llcs-form__actions { margin: 0; }

.llcs-form__ok,
.llcs-form__error {
	margin-bottom: 1.3rem;
	padding: 1rem 1.2rem;
	border-radius: var(--llcs-radius-sm);
	border-left: 4px solid var(--llcs-teal);
	background: #f2fbfa;
	font-size: .95rem;
	line-height: 1.65;
}
.llcs-form__error { border-left-color: var(--llcs-coral); background: #fdf3f2; }
.llcs-form__ok a, .llcs-form__error a { color: var(--llcs-pink); }

/* ==================================== bloques de WooCommerce (carrito/pago) == */
/* El carrito y el pago se pintan con bloques de Gutenberg, no con las
   plantillas clásicas. Sus botones llevan otras clases, así que sin estas
   reglas salían en gris oscuro, subrayados y —en columnas estrechas— con
   una letra por línea. */

.wc-block-components-button,
.wp-block-button__link,
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button,
.wc-block-cart__submit-container a {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	width: auto;
	min-width: max-content;          /* nunca parte el texto letra a letra */
	padding: .95rem 2rem;
	border: 0;
	border-radius: 999px;
	background: var(--llcs-teal);
	color: #fff !important;
	font: 500 .98rem/1.2 var(--llcs-sans) !important;
	text-align: center;
	text-decoration: none !important;
	white-space: nowrap;
	box-shadow: none;
	transition: background-color .18s ease, transform .18s ease;
}

.wc-block-components-button:hover,
.wp-block-button__link:hover,
.wc-block-cart__submit-button:hover,
.wc-block-components-checkout-place-order-button:hover {
	background: #017f7a;
	color: #fff !important;
	transform: translateY(-2px);
}

/* El botón de finalizar compra sí ocupa toda la columna de totales. */
.wc-block-cart__submit-container .wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button {
	width: 100%;
	min-width: 0;
}

/* Botones secundarios de los bloques (volver, aplicar cupón…). */
.wc-block-components-button.outlined,
.wc-block-components-totals-coupon__button {
	background: transparent;
	color: var(--llcs-pink) !important;
	border: 1.5px solid var(--llcs-pink);
}
.wc-block-components-button.outlined:hover,
.wc-block-components-totals-coupon__button:hover {
	background: var(--llcs-pink);
	color: #fff !important;
}

/* Tarjetas de producto dentro de bloques (recomendados, venta cruzada). */
.wc-block-grid__products,
.wp-block-woocommerce-product-collection ul.products {
	gap: var(--llcs-gap);
}
.wc-block-grid__product-title,
.wc-block-components-product-name {
	font-family: var(--llcs-serif);
	color: var(--llcs-ink);
	text-decoration: none;
}
.wc-block-grid__product-price,
.wc-block-components-product-price {
	color: var(--llcs-pink);
	font-weight: 600;
}

/* Tipografía y campos de los bloques. */
.wc-block-components-title,
.wc-block-cart__totals-title,
.wp-block-woocommerce-cart-order-summary-block .wc-block-components-title {
	font-family: var(--llcs-serif) !important;
	color: var(--llcs-ink);
}
.wc-block-components-totals-item__value,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	color: var(--llcs-pink);
	font-weight: 600;
}
.wc-block-components-text-input input,
.wc-block-components-textarea,
.wc-block-components-select__container {
	border-radius: var(--llcs-radius-sm);
	font-family: var(--llcs-sans);
}
.wc-block-components-text-input.is-active input:focus {
	box-shadow: 0 0 0 3px rgba(211, 15, 123, .16);
	border-color: var(--llcs-pink);
}

/* Título de las páginas de tienda (Carrito, Finalizar compra, Mi cuenta). */
.woocommerce-cart .entry-title,
.woocommerce-checkout .entry-title,
.woocommerce-account .entry-title,
.woocommerce-page .page-header .entry-title {
	font-family: var(--llcs-serif);
	font-weight: 600;
	font-size: clamp(2rem, 4vw, 2.9rem);
	color: var(--llcs-ink);
}

/* Ningún botón de la web debe partirse letra a letra. */
.llcs-btn,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce a.button.alt,
.woocommerce button.button.alt {
	white-space: nowrap;
}

/* En pantallas estrechas se permite el salto por palabras, nunca por letras. */
@media (max-width: 480px) {
	.llcs-btn,
	.woocommerce a.button,
	.woocommerce button.button,
	.wc-block-components-button,
	.wp-block-button__link {
		white-space: normal;
		word-break: keep-all;
		overflow-wrap: normal;
		min-width: 0;
	}
}

/* Aviso visual al añadir un producto al carrito. */
.llcs-cart.is-bumped { animation: llcs-bump .45s ease; }
@keyframes llcs-bump {
	0%   { transform: scale(1); }
	35%  { transform: scale(1.14); }
	100% { transform: scale(1); }
}
.llcs-cart__count.is-filled { background: var(--llcs-teal); }
.llcs-cart:hover .llcs-cart__count.is-filled { background: #fff; color: var(--llcs-teal); }

/* ============================================================== buscador == */

.llcs-shop-search { margin: 0 0 2rem; }

.llcs-search {
	display: flex;
	flex-wrap: wrap;
	gap: .6rem;
	align-items: center;
}

.llcs-search__field {
	position: relative;
	display: flex;
	align-items: center;
	flex: 1 1 260px;
	min-width: 0;
}

.llcs-search__field svg {
	position: absolute;
	left: 1rem;
	color: var(--llcs-grey);
	pointer-events: none;
}

.llcs-search input[type="search"] {
	width: 100%;
	padding: .85rem 1rem .85rem 2.85rem;
	border: 1px solid var(--llcs-line);
	border-radius: 999px;
	background: #fff;
	font: 400 .98rem/1.4 var(--llcs-sans);
	color: var(--llcs-ink);
	transition: border-color .16s ease, box-shadow .16s ease;
	-webkit-appearance: none;
	appearance: none;
}

.llcs-search input[type="search"]:focus {
	outline: none;
	border-color: var(--llcs-pink);
	box-shadow: 0 0 0 3px rgba(211, 15, 123, .14);
}

.llcs-search input[type="search"]::-webkit-search-cancel-button { cursor: pointer; }
.llcs-search .llcs-btn { flex: 0 0 auto; }

@media (max-width: 520px) {
	.llcs-search { flex-wrap: nowrap; }
	.llcs-search .llcs-btn { padding-inline: 1.15rem; }
}

/* ================================================================== blog == */

.llcs-blog-head {
	padding-block: clamp(2.5rem, 6vw, 4.5rem) clamp(1.5rem, 4vw, 2.5rem);
	text-align: center;
	background: var(--llcs-cream);
}
.llcs-blog-head h1 {
	margin: 0 0 .6rem;
	font-family: var(--llcs-serif);
	font-size: clamp(2rem, 5vw, 3.2rem);
	color: var(--llcs-pink);
}
.llcs-blog-head p { margin: 0 auto; max-width: 52ch; color: var(--llcs-grey); line-height: 1.7; }

/* listado de entradas */
body.blog .wp-site-blocks > main,
body.archive .wp-site-blocks > main,
body.blog .site-main,
body.archive .site-main,
body.single-post .site-main {
	width: min(100% - 2.5rem, var(--llcs-wrap));
	margin-inline: auto;
	padding-block: clamp(2.5rem, 6vw, 4rem);
}

body.blog article.post,
body.archive article.post {
	margin-bottom: 2.5rem;
	padding-bottom: 2.5rem;
	border-bottom: 1px solid var(--llcs-line);
}

body.blog .entry-title a,
body.archive .entry-title a,
body.single-post .entry-title {
	font-family: var(--llcs-serif);
	color: var(--llcs-ink);
	text-decoration: none;
}
body.blog .entry-title a:hover,
body.archive .entry-title a:hover { color: var(--llcs-pink); }

/* entrada individual: ancho de lectura cómodo */
body.single-post .entry-content,
body.single-post .wp-block-post-content {
	max-width: 72ch;
	margin-inline: auto;
	font-size: 1.05rem;
	line-height: 1.8;
	color: #352c31;
}
body.single-post .entry-content h2,
body.single-post .wp-block-post-content h2 {
	margin: 2.4rem 0 .9rem;
	font-family: var(--llcs-serif);
	font-size: clamp(1.45rem, 3vw, 1.9rem);
	color: var(--llcs-pink);
	line-height: 1.25;
}
body.single-post .entry-content h3,
body.single-post .wp-block-post-content h3 {
	margin: 1.9rem 0 .7rem;
	font-family: var(--llcs-serif);
	font-size: 1.25rem;
	color: var(--llcs-ink);
}
body.single-post .entry-content p,
body.single-post .wp-block-post-content p { margin: 0 0 1.15rem; }
body.single-post .entry-content ul,
body.single-post .wp-block-post-content ul { margin: 0 0 1.4rem; padding-left: 1.3rem; }
body.single-post .entry-content li,
body.single-post .wp-block-post-content li { margin-bottom: .55rem; }
body.single-post .entry-content strong { color: var(--llcs-ink); }
body.single-post .entry-content a { color: var(--llcs-pink); }

body.single-post .post-thumbnail img,
body.single-post .wp-post-image {
	width: 100%;
	max-height: 460px;
	object-fit: cover;
	border-radius: var(--llcs-radius);
	margin-bottom: 2rem;
}

/* ==================================== ajustes finos de móvil y tablet ===== */

@media (max-width: 1024px) {
	/* Elementor: columnas apiladas sin el hueco lateral que dejaban */
	.elementor-column { padding-left: 0 !important; }
	.llcs-hero { min-height: clamp(420px, 62vh, 560px) !important; }
}

@media (max-width: 782px) {
	:root { --llcs-gap: 1.1rem; }

	/* Nada puede desbordar el ancho de la pantalla */
	body.llcs-has-header { overflow-x: hidden; }
	img, iframe, video, table { max-width: 100%; }

	.llcs-topbar .llcs-wrap { justify-content: center; text-align: center; }
	.llcs-topbar__contact { gap: .9rem; }

	.llcs-cta__actions { flex-direction: column; align-items: stretch; }
	.llcs-cta__actions .llcs-btn { width: 100%; }

	.llcs-map iframe { height: 300px; }

	/* Fondos fijos: en móvil se comportan mal, se dejan normales */
	.elementor-section[data-settings*="background_attachment"] { background-attachment: scroll !important; }
}

@media (max-width: 560px) {
	.llcs-topbar { font-size: .76rem; }
	.llcs-topbar__contact { flex-direction: column; gap: .15rem; }

	.woocommerce div.product .woocommerce-tabs ul.tabs li { margin-right: 1rem; }
	.woocommerce table.shop_table_responsive tr td { text-align: right; }

	.llcs-contact-block li { padding-bottom: .8rem; }
	.llcs-footer__brand img { height: 62px; }
}

/* Las tablas de WooCommerce (carrito, pedidos) se desplazan si no caben */
.woocommerce table.shop_table,
.woocommerce-account .woocommerce-orders-table,
.wc-block-cart-items {
	display: table;
	width: 100%;
}
.llcs-table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }

/* ======================== compatibilidad con temas de bloques (FSE) ======= */
/* Los temas de bloques usan otras clases para los títulos y el contenido.
   Sin esto, el blog salía con la tipografía del tema y no con la de marca. */

.wp-block-post-title,
.wp-block-post-title a,
.wp-block-query-title,
.wp-block-archive-title,
body.single-post h1.entry-title,
body.blog h1.page-title,
body.archive h1.page-title,
body.search h1.page-title {
	font-family: var(--llcs-serif) !important;
	font-weight: 600;
	letter-spacing: -.01em;
	color: var(--llcs-ink);
	text-decoration: none;
}

.wp-block-post-title a:hover { color: var(--llcs-pink); }

.wp-block-post-content,
.wp-block-post-excerpt__excerpt {
	font-family: var(--llcs-sans);
	line-height: 1.8;
	color: #352c31;
}

.wp-block-post-content h2 {
	font-family: var(--llcs-serif);
	color: var(--llcs-pink);
	margin-top: 2.4rem;
}
.wp-block-post-content h3 { font-family: var(--llcs-serif); color: var(--llcs-ink); }
.wp-block-post-content a { color: var(--llcs-pink); }

/* Imagen destacada del listado: alta pero no descomunal */
.wp-block-post-featured-image img,
body.blog .post-thumbnail img,
body.archive .post-thumbnail img {
	max-height: 420px;
	object-fit: cover;
	border-radius: var(--llcs-radius);
}

.wp-block-post-date,
.wp-block-post-terms,
.wp-block-post-author-name,
body.single-post .entry-meta {
	font-family: var(--llcs-sans);
	font-size: .88rem;
	color: var(--llcs-grey);
}
.wp-block-post-terms a,
.wp-block-post-author-name a { color: var(--llcs-pink); text-decoration: none; }

/* Botones nativos del tema de bloques dentro del contenido */
.wp-block-read-more,
.wp-block-post-excerpt__more-link {
	display: inline-block;
	margin-top: .75rem;
	color: var(--llcs-pink);
	font-weight: 500;
	text-decoration: none;
	border-bottom: 1px solid currentColor;
}

/* ------------------------------- colocación del buscador en la tienda ---- */

.llcs-shop-search {
	clear: both;
	width: 100%;
	max-width: 640px;
	margin: 1.5rem 0 2.25rem;
}

.woocommerce .llcs-shop-search + .woocommerce-notices-wrapper { clear: both; }

/* Cuando el tema centra el contenido, el buscador se centra con él */
.wp-site-blocks .llcs-shop-search { margin-inline: auto; }

/* Resultados de búsqueda sin nada encontrado */
.llcs-search-empty {
	padding: 2rem;
	border-radius: var(--llcs-radius);
	background: var(--llcs-cream);
	text-align: center;
}
.llcs-search-empty h2 { font-family: var(--llcs-serif); color: var(--llcs-pink); margin: 0 0 .6rem; }
.llcs-search-empty p { color: var(--llcs-grey); margin: 0 0 1.2rem; }
