/* ==========================================================================
   LOVIA sobre Flatsome
   Tokens de marca + ajustes de componentes. Sin dependencias.
   ========================================================================== */

:root {
	--lv-naranja: #FF6600;        /* logo: decorativo o sobre fondo oscuro */
	--lv-naranja-texto: #C2410C;  /* botones y enlaces sobre claro (AA) */
	--lv-naranja-hover: #9A3412;
	--lv-tinta: #1C1917;
	--lv-gris: #6B6158;
	--lv-crema: #F6EFE7;
	--lv-arena: #EADFD2;
	--lv-linea: #E7DCCD;
	--lv-dorado: #8A6428;          /* texto dorado sobre crema (AA) */
	--lv-dorado-claro: #D9B26F;    /* filetes y texto sobre oscuro */
	--lv-blanco: #FFFFFF;

	--lv-serif: "Cormorant Garamond", Georgia, "Times New Roman", serif;
	--lv-sans: "Montserrat", system-ui, -apple-system, "Segoe UI", sans-serif;

	--lv-radio: 14px;
	--lv-radio-sm: 8px;
	--lv-sombra: 0 10px 30px -12px rgba(28, 25, 23, .18);
	--lv-sombra-hover: 0 18px 40px -16px rgba(28, 25, 23, .28);
	--lv-ease: cubic-bezier(.2, .7, .2, 1);
}

/* ---------- Base ---------- */
body {
	font-family: var(--lv-sans);
	color: var(--lv-tinta);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
body, p, li { line-height: 1.65; }
h1, h2, h3, h4, .heading-font, .section-title-main, .product-title, .product_title {
	font-family: var(--lv-serif);
	font-weight: 600;
	color: var(--lv-tinta);
	letter-spacing: -.005em;
}
/* Flatsome fija tamaños en su CSS inline: se sube la especificidad. */
html body h1, html body .h1 { font-size: clamp(2.5rem, 5vw, 4.1rem); line-height: 1.04; }
html body h2, html body .h2 { font-size: clamp(2rem, 3.4vw, 2.9rem); line-height: 1.1; }
html body h3, html body .h3 { font-size: 1.5rem; line-height: 1.2; }
.dark h1, .dark h2, .dark h3, .dark h4 { color: var(--lv-blanco); }
a { transition: color .2s var(--lv-ease); }
::selection { background: var(--lv-naranja); color: var(--lv-blanco); }
:focus-visible { outline: 2px solid var(--lv-naranja-texto); outline-offset: 3px; }

/* Etiqueta superior de sección */
.lv-eyebrow {
	font-family: var(--lv-sans);
	font-size: .75rem;
	font-weight: 600;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--lv-dorado);
	margin-bottom: .9em;
	display: inline-flex;
	align-items: center;
	gap: .7em;
}
.lv-eyebrow::before { content: ""; width: 28px; height: 1px; background: currentColor; }
.text-center .lv-eyebrow::after { content: ""; width: 28px; height: 1px; background: currentColor; }
.dark .lv-eyebrow { color: var(--lv-dorado-claro); }
.lv-lead { font-size: 1.125rem; color: var(--lv-gris); max-width: 34em; }
.text-center .lv-lead { margin-left: auto; margin-right: auto; }
.dark .lv-lead { color: #D8CFC5; }
.lv-accent { color: var(--lv-naranja-texto); font-style: italic; }
.dark .lv-accent { color: var(--lv-naranja); }
.lv-hairline { width: 64px; height: 1px; background: var(--lv-dorado-claro); border: 0; margin: 1.4em 0; }
.text-center .lv-hairline { margin-left: auto; margin-right: auto; }

/* ---------- Botones ---------- */
html body .button, html body button.button, html body input.button {
	font-family: var(--lv-sans);
	font-weight: 600;
	letter-spacing: .1em;
	text-transform: uppercase;
	font-size: .76rem;
	padding: 0 1.9em;
	min-height: 48px;
	line-height: 48px;
	transition: background-color .2s var(--lv-ease), color .2s var(--lv-ease), box-shadow .2s var(--lv-ease), transform .2s var(--lv-ease);
}
.button:hover { transform: translateY(-1px); box-shadow: var(--lv-sombra); }
.button:active { transform: translateY(0); box-shadow: none; }
.button.primary:not(.is-outline), .single_add_to_cart_button, .checkout-button, #place_order {
	background-color: var(--lv-naranja-texto) !important;
	color: var(--lv-blanco) !important;
}
.button.primary:not(.is-outline):hover, .single_add_to_cart_button:hover, .checkout-button:hover, #place_order:hover {
	background-color: var(--lv-naranja-hover) !important;
}
.button.is-outline.lv-btn-outline, .button.secondary.is-outline { border: 1.5px solid var(--lv-tinta); color: var(--lv-tinta); }
.button.is-outline.lv-btn-outline:hover { background: var(--lv-tinta); color: var(--lv-blanco); }
.lv-btn-icon { display: inline-flex !important; align-items: center; gap: .6em; }
.lv-btn-icon .lv-icon { flex: none; }
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition-duration: 0ms !important; animation-duration: 0ms !important; }
	.button:hover { transform: none; }
}

/* ---------- Barra superior y header ---------- */
.lv-topbar { font-size: .75rem; letter-spacing: .08em; color: #E8DED3; }
#top-bar .flex-col { justify-content: center; }
.header-main { border-bottom: 1px solid var(--lv-linea); }
.header-nav-main > li > a { font-size: .85rem; letter-spacing: .04em; color: var(--lv-tinta); }
.header-nav-main > li > a:hover, .header-nav-main > li.active > a { color: var(--lv-naranja-texto); }
.header-nav-main > li.active > a { box-shadow: inset 0 -2px 0 var(--lv-naranja); }
.lv-mobile-note { font-size: .85rem; color: var(--lv-gris); padding: 0 20px; }

/* ---------- Secciones ---------- */
.lv-sec-crema { background: var(--lv-crema); }
.lv-sec-arena { background: var(--lv-arena); }
.lv-sec-tinta { background: var(--lv-tinta); }

/* Hero */
.lv-hero h1 { margin-bottom: .35em; }
.lv-hero h1 em { font-style: italic; color: var(--lv-naranja-texto); font-weight: 500; }
.lv-hero .lv-lead { margin-bottom: 1.8em; }
.lv-hero .button { margin: 0 .6em .8em 0; }
.lv-hero-img img { border-radius: var(--lv-radio); box-shadow: var(--lv-sombra); }
.lv-chips { display: flex; flex-wrap: wrap; gap: 10px 22px; margin-top: 1.2em; padding: 0; list-style: none; }
.lv-chips li { display: inline-flex; align-items: center; gap: .5em; font-size: .85rem; color: var(--lv-gris); margin: 0; }
.lv-chips .lv-icon { color: var(--lv-naranja-texto); }

/* Pilares (feature) */
.lv-feature { text-align: center; padding: 8px 12px; }
.lv-feature__icon {
	display: inline-grid;
	place-items: center;
	width: 68px;
	height: 68px;
	border-radius: 50%;
	border: 1px solid var(--lv-dorado-claro);
	color: var(--lv-dorado);
	margin-bottom: 14px;
	background: var(--lv-blanco);
}
.lv-feature__title { font-size: 1.35rem; margin-bottom: .3em; }
.lv-feature__text { color: var(--lv-gris); font-size: .95rem; margin: 0 auto; max-width: 22em; }
.lv-feature--fila { display: flex; text-align: left; gap: 16px; align-items: flex-start; }
.lv-feature--fila .lv-feature__icon { width: 48px; height: 48px; flex: none; margin: 0; }
.lv-feature--fila .lv-feature__title { font-family: var(--lv-sans); font-size: .95rem; font-weight: 600; margin: 4px 0 .2em; }
.lv-feature--fila .lv-feature__text { margin: 0; font-size: .875rem; }
.dark .lv-feature__icon { background: transparent; color: var(--lv-naranja); border-color: rgba(217, 178, 111, .5); }
.dark .lv-feature__text { color: #D8CFC5; }

/* Productos destacados (filas imagen + texto) */
.lv-producto-img img { border-radius: var(--lv-radio); }
.lv-producto h2 { margin-bottom: .2em; }
.lv-lema { font-size: .75rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--lv-dorado); }
.lv-beneficios { list-style: none; margin: 1.2em 0 1.6em; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 12px 24px; }
.lv-beneficios li { margin: 0; padding-left: 26px; position: relative; font-size: .95rem; color: var(--lv-gris); }
.lv-beneficios li::before {
	content: "";
	position: absolute;
	left: 0;
	top: .45em;
	width: 14px;
	height: 8px;
	border-left: 2px solid var(--lv-naranja-texto);
	border-bottom: 2px solid var(--lv-naranja-texto);
	transform: rotate(-45deg);
}
.lv-beneficios strong { color: var(--lv-tinta); font-weight: 600; }
@media (max-width: 549px) { .lv-beneficios { grid-template-columns: 1fr; } }
.lv-sellos { font-size: .8rem; color: var(--lv-dorado); letter-spacing: .06em; text-transform: uppercase; font-weight: 600; }

/* Pasos */
.lv-step { display: flex; gap: 18px; align-items: flex-start; padding: 18px 0; border-top: 1px solid var(--lv-linea); }
.lv-step__n {
	flex: none;
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--lv-crema);
	color: var(--lv-naranja-texto);
	font-weight: 600;
	font-size: .85rem;
}
.lv-step__title { font-family: var(--lv-sans); font-size: 1rem; font-weight: 600; margin: 2px 0 .25em; }
.lv-step__text { margin: 0; color: var(--lv-gris); font-size: .925rem; }
.dark .lv-step { border-color: rgba(255, 255, 255, .12); }
.dark .lv-step__n { background: rgba(255, 102, 0, .14); color: var(--lv-naranja); }
.dark .lv-step__title { color: var(--lv-blanco); }
.dark .lv-step__text { color: #D8CFC5; }

/* Tarjetas */
.lv-card {
	background: var(--lv-blanco);
	border: 1px solid var(--lv-linea);
	border-radius: var(--lv-radio);
	padding: 32px 28px;
	height: 100%;
	transition: box-shadow .25s var(--lv-ease), transform .25s var(--lv-ease);
}
.lv-card:hover { box-shadow: var(--lv-sombra-hover); transform: translateY(-2px); }
.lv-card--destacada { border-color: var(--lv-naranja-texto); box-shadow: inset 0 3px 0 var(--lv-naranja); }
.lv-card h3 { margin-bottom: .4em; }
.lv-card ul { list-style: none; padding: 0; margin: 1em 0 0; }
.lv-card li { margin: 0 0 .55em; padding-left: 22px; position: relative; font-size: .95rem; color: var(--lv-gris); }
.lv-card li::before { content: ""; position: absolute; left: 2px; top: .6em; width: 7px; height: 7px; border-radius: 50%; background: var(--lv-naranja); }

/* Comisión a dos niveles */
.lv-niveles { display: grid; gap: 10px; max-width: 360px; }
.lv-nivel { display: flex; justify-content: space-between; align-items: center; padding: 14px 18px; border-radius: var(--lv-radio-sm); border: 1px solid rgba(255, 255, 255, .14); font-size: .9rem; color: #D8CFC5; }
.lv-nivel strong { font-size: .7rem; letter-spacing: .14em; text-transform: uppercase; }
.lv-nivel--vende { border-color: var(--lv-naranja); color: var(--lv-blanco); }
.lv-nivel--vende strong { color: var(--lv-naranja); }
.lv-nivel--sup { border-color: var(--lv-dorado-claro); }
.lv-nivel--sup strong { color: var(--lv-dorado-claro); }

/* FAQ (accordion de Flatsome) */
.lv-faq .accordion-title { font-family: var(--lv-sans); font-weight: 600; font-size: 1rem; border-top: 1px solid var(--lv-linea); padding: 18px 40px 18px 0; color: var(--lv-tinta); }
.lv-faq .accordion-title.active { color: var(--lv-naranja-texto); background: transparent; }
.lv-faq .accordion-inner { padding: 0 40px 18px 0; color: var(--lv-gris); }
.lv-faq .accordion-title .toggle { right: 0; left: auto; }

/* ---------- Tienda ---------- */
.product-small .box-image { border-radius: var(--lv-radio); background: var(--lv-crema); }
.product-small .box-text { padding-top: 14px; }
.product-small .name.product-title, .product-small .product-title a {
	font-family: var(--lv-serif);
	font-size: 1.35rem;
	font-weight: 600;
	color: var(--lv-tinta);
	line-height: 1.2;
}
.product-small .price, .product-info .price { color: var(--lv-tinta); font-weight: 600; }
.product-small .price .amount { font-size: 1rem; }
.product-small .add-to-cart-button .button, .product-small .add_to_cart_button { min-height: 40px; line-height: 40px; font-size: .72rem; }
.badge-container .badge-inner { background: var(--lv-tinta); }
.product-info .product-title { font-size: clamp(2rem, 3.4vw, 2.8rem); }
.product-info .price { font-size: 1.4rem; }
.product-short-description .lv-lema { margin-bottom: .6em; }
.woocommerce-tabs .tabs li a { font-family: var(--lv-sans); font-weight: 600; letter-spacing: .06em; }
.lv-legal { font-size: .8rem; color: var(--lv-gris); border-top: 1px solid var(--lv-linea); padding-top: 1em; margin-top: 1.5em; }
.lr-precio-lista { display: block; font-size: .8em; color: var(--lv-gris); font-weight: 400; }
.lr-precio-mayorista ins { text-decoration: none; color: var(--lv-naranja-texto); }

/* Confianza en la ficha */
.lv-confianza { display: grid; gap: 12px; margin: 22px 0 6px; padding: 18px 20px; border: 1px solid var(--lv-linea); border-radius: var(--lv-radio); background: var(--lv-crema); }
.lv-confianza .lv-feature--fila .lv-feature__icon { width: 38px; height: 38px; }

/* ---------- Footer ---------- */
.lv-footer a { color: #D8CFC5; }
.lv-footer a:hover { color: var(--lv-naranja); }
.lv-footer h4 { font-family: var(--lv-sans); font-size: .75rem; letter-spacing: .2em; text-transform: uppercase; color: var(--lv-dorado-claro); margin-bottom: 1.2em; }
.lv-footer ul { list-style: none; margin: 0; padding: 0; }
.lv-footer ul li { margin: 0 0 .6em; font-size: .9rem; }
.lv-chips li, .lv-beneficios li, .lv-card li { margin-left: 0; }
.lv-footer p { color: #BDB3A8; font-size: .9rem; }
.absolute-footer { font-size: .78rem; letter-spacing: .04em; }
.absolute-footer.dark { color: #9C9188; }

/* ---------- Panel de revendedores (plugin Lovia Revendedores) ---------- */
.lr {
	--lr-accent: var(--lv-tinta);
	--lr-accent-soft: var(--lv-crema);
	--lr-line: var(--lv-linea);
	--lr-muted: var(--lv-gris);
}
.lr .lr-button { background: var(--lv-naranja-texto) !important; border-radius: 99px; text-transform: uppercase; letter-spacing: .08em; font-size: .78rem; font-weight: 600; }
.lr .lr-button--wa { background: #1F7A45 !important; }
.lr-card__value { font-family: var(--lv-serif); font-weight: 600; }
.lr-summary__commission { color: var(--lv-naranja-texto) !important; }
.lr-badge--pagado, .lr-badge--completado, .lr-badge--activo { color: #2F6B4A !important; background: #E6F1EA !important; }
.woocommerce-MyAccount-navigation ul li a { font-size: .9rem; }
.woocommerce-MyAccount-navigation ul li.is-active > a { color: var(--lv-naranja-texto); font-weight: 600; }

/* ---------- Utilidades ---------- */
.lv-rounded img, img.lv-rounded { border-radius: var(--lv-radio); }
.lv-max-38 { max-width: 38em; }
@media (max-width: 849px) {
	.lv-hero { text-align: left; }
	.lv-hero-img { margin-top: 10px; }
}

/* ---------- Ajustes responsive ---------- */
.lv-footer ul { margin: 0 !important; padding: 0 !important; }
.lv-footer ul li { margin-left: 0 !important; padding-left: 0 !important; list-style: none; }
/* Botones: texto centrado vertical también en los que tienen borde */
html body .button:not(.icon):not(.circle) { display: inline-flex; align-items: center; justify-content: center; line-height: 1.2; vertical-align: middle; }
@media (max-width: 849px) {
	.lv-producto-img { order: -1; }   /* en móvil la foto siempre arriba */
	.lv-producto { padding-top: 8px; }
	.lv-hero .button { margin-right: .4em; }
}

/* Botones chicos en grillas de productos */
html body .product-small .button { padding: 0 1.1em; font-size: .68rem; letter-spacing: .05em; white-space: nowrap; min-height: 40px; }
@media (max-width: 549px) { html body .product-small .button { padding: 0 .8em; font-size: .62rem; letter-spacing: .03em; } }
/* Título de categoría/tienda */
.shop-page-title { background: var(--lv-crema); border-bottom: 1px solid var(--lv-linea); }
.shop-page-title .page-title-inner { padding-top: 22px; padding-bottom: 22px; }
.shop-page-title .breadcrumbs { font-size: .78rem; letter-spacing: .14em; }
/* Botones de icono de Flatsome (compartir, anterior/siguiente): sin el tamaño de los botones de texto */
html body .button.icon { min-height: 0; padding: 0; width: 2.4em; height: 2.4em; line-height: 2.25em; letter-spacing: 0; display: inline-block; }
html body .button.icon:hover { transform: none; box-shadow: none; }

/* ---------- Armador de pedidos con Flatsome ---------- */
.lr-qty button, .lr-qty input {
	margin: 0 !important; min-height: 0 !important; height: 40px !important; box-shadow: none !important;
	border-radius: 0 !important; font-size: 16px; line-height: 40px; letter-spacing: 0; text-transform: none;
}
.lr-qty button { width: 38px; padding: 0 !important; background: var(--lv-crema) !important; color: var(--lv-tinta) !important; }
.lr-qty input { width: 46px !important; padding: 0 !important; border: 0 !important; text-align: center; background: #fff !important; }
.lr-builder__name { min-width: 0; }
.lr-builder__name span { line-height: 1.3; }
.lr-link-btn { text-transform: none !important; letter-spacing: 0 !important; font-size: .85rem !important; margin: 0 0 .3em !important; min-height: 0 !important; }
.lr-radio input { margin: 0; }
@media (max-width: 549px) {
	.lr-builder__products thead { display: none; }
	.lr-builder__products tr { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 6px 12px; padding: 12px 0; border-bottom: 1px solid var(--lv-linea); }
	.lr-builder__products td { border: 0 !important; padding: 0 !important; }
	.lr-builder__products td:first-child { grid-column: 1 / -1; }
	.lr-builder__products .lr-num { text-align: left; }
	.lr-builder__products td:last-child { text-align: right; }
}
/* Encabezado de Mi cuenta */
.my-account-header.page-title { background: var(--lv-crema); border-bottom: 1px solid var(--lv-linea); }
.my-account-header h1.uppercase { text-transform: none; font-size: clamp(2rem, 3.4vw, 2.8rem); }
.my-account-header .page-title-inner { padding-top: 28px; padding-bottom: 24px; }
.account-user .user-name { font-weight: 600; }

/* ---------- Carrito y checkout de bloques ---------- */
.wc-block-components-button:not(.is-link):not(.wc-block-components-button--text),
.wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button {
	background: var(--lv-naranja-texto) !important; color: #fff !important; border-radius: 99px !important;
	font-family: var(--lv-sans); font-weight: 600; letter-spacing: .1em; text-transform: uppercase; font-size: .8rem !important;
	min-height: 52px; border: 0 !important;
}
.wc-block-components-button:not(.is-link):hover { background: var(--lv-naranja-hover) !important; }
.wc-block-components-product-metadata { display: none; } /* la descripción corta ya está en la ficha */
.wc-block-components-product-name { font-family: var(--lv-serif); font-size: 1.2rem !important; font-weight: 600; color: var(--lv-tinta) !important; }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value { font-weight: 700; }
.wp-block-woocommerce-checkout .wc-block-components-checkout-step__title, .wc-block-cart__totals-title { font-family: var(--lv-sans) !important; letter-spacing: .08em; }
.wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control-accordion-option--checked-option-highlighted { box-shadow: inset 0 0 0 2px var(--lv-naranja-texto) !important; }
