/* Wesay UI: lo que Elementor no resuelve por ajustes y la marca en las páginas de WooCommerce.
   Colores de marca: purple #8F00FF · blue #00C9FF · fucsia #E600FF. */

/* Marquesina del header: Elementor descarta los @keyframes del CSS personalizado del widget. */
@keyframes wesay-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* El busto del footer asoma ~110 px sobre el contenido: sin este espacio tapaba precios y
   botones de la última fila. La home no lo necesita (su última sección ya deja aire). */
body:not(.home) .site-main { padding-bottom: 110px; }

/* ---------- WooCommerce: marca ---------- */
.woocommerce div.product .product_title,
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce-products-header__title,
.woocommerce div.product .woocommerce-tabs h2,
.woocommerce .related > h2, .woocommerce .upsells > h2 {
	font-family: "Grenze", serif;
	font-weight: 600;
}
.woocommerce div.product p.price,
.woocommerce div.product span.price,
.woocommerce ul.products li.product .price {
	color: #8F00FF;
	font-family: "Grenze", serif;
	font-weight: 600;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title { color: #000; }
.woocommerce .product_meta a,
.woocommerce .woocommerce-breadcrumb a,
.woocommerce div.product .woocommerce-tabs .panel a { color: #8F00FF; }
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce button.button.alt, .woocommerce a.button.alt {
	background: #E600FF;
	color: #fff;
	border-radius: 0;
	font-family: "Grenze", serif;
	font-weight: 600;
	letter-spacing: .3px;
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover,
.woocommerce button.button.alt:hover, .woocommerce a.button.alt:hover {
	background: #00C9FF;
	color: #fff;
}
.woocommerce button.button.alt.disabled, .woocommerce button.button.alt.disabled:hover {
	background: #E600FF;
	opacity: .45;
}
.woocommerce span.onsale { background: #00C9FF; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span { color: #8F00FF; font-family: "Grenze", serif; font-weight: 600; min-width: 2.2em; }
.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li a:hover { background: #8F00FF; color: #fff; }

/* ---------- Carrito y checkout (bloques de WooCommerce) ---------- */
/* El tema Hello deja los botones con fondo transparente y WooCommerce les pone texto
   blanco: "Place Order" era invisible y "Proceed to Checkout" salía gris y subrayado. */
.wc-block-components-button.contained,
.wc-block-components-button.wp-element-button.contained {
	background: #E600FF;
	color: #fff;
	border: 0;
	border-radius: 0;
	font-family: "Grenze", serif;
	font-weight: 600;
	font-size: 20px;
	text-decoration: none;
}
.wc-block-components-button.contained:hover,
.wc-block-components-button.contained:focus {
	background: #00C9FF;
	color: #fff;
}
.wc-block-components-button.contained .wc-block-components-button__text { text-decoration: none; }
.wc-block-components-product-name { color: #000; text-decoration: none; font-family: "Grenze", serif; font-weight: 600; }
.page-header .entry-title { font-family: "Grenze", serif; font-weight: 600; }

/* Subtítulos dentro de la descripción del producto */
.woocommerce div.product .woocommerce-tabs .panel h2,
.woocommerce div.product .woocommerce-tabs .panel h3 { font-family: "Grenze", serif; font-weight: 600; }

/* Grillas de WooCommerce (categorías, tienda, relacionados): grilla CSS en vez de floats,
   así todas las tarjetas de una fila miden lo mismo y los botones quedan alineados.
   Las grillas de Elementor (.elementor-grid, home) ya son grid y no se tocan. */
.woocommerce ul.products:not(.elementor-grid) {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 32px 24px;
}
.woocommerce ul.products.columns-2:not(.elementor-grid) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.woocommerce ul.products.columns-3:not(.elementor-grid) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.woocommerce ul.products.columns-5:not(.elementor-grid) { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.woocommerce ul.products:not(.elementor-grid)::before,
.woocommerce ul.products:not(.elementor-grid)::after { display: none; }
.woocommerce ul.products:not(.elementor-grid) li.product {
	float: none;
	width: auto;
	margin: 0;
}
.woocommerce ul.products li.product { display: flex; flex-direction: column; }
.woocommerce ul.products li.product .button { margin-top: auto; align-self: center; }

/* Botones de Elementor sin partirse en varias líneas (SEE ALL en tablet) */
.elementor-button .elementor-button-text { white-space: nowrap; }

/* Tablet y celular: el margen negativo de .alignwide (tema Hello) sacaba el carrito por la izquierda. */
@media (max-width: 1024px) {
	.page-content .alignwide { margin-left: 0; margin-right: 0; }
}

/* ---------- Celular ---------- */
@media (max-width: 767px) {
	/* Header: el carrito muestra solo ícono y cantidad (el subtotal no cabía). */
	.elementor-location-header .elementor-menu-cart__toggle .elementor-button-text { display: none; }

	/* Footer: lista de "More resources" alineada a la izquierda, como el título. */
	.elementor-location-footer .elementor-nav-menu--layout-vertical .elementor-nav-menu > li > a {
		justify-content: flex-start;
		padding-left: 0;
	}
	/* En celular el busto asoma menos (margen -70 px). */
	body:not(.home) .site-main { padding-bottom: 72px; }

	/* Ficha de producto */
	.woocommerce div.product .product_title { font-size: 34px; line-height: 1.05; }
	.woocommerce div.product p.price, .woocommerce div.product span.price { font-size: 24px; }
	.woocommerce div.product form.cart .variations { margin-bottom: 8px; }
	.woocommerce div.product form.cart .variations th,
	.woocommerce div.product form.cart .variations td { display: block; padding: 4px 0; text-align: left; }
	.woocommerce div.product form.cart .variations select { width: 100%; min-height: 46px; font-size: 16px; }
	.woocommerce div.product form.cart .woocommerce-variation-add-to-cart,
	.woocommerce div.product form.cart:not(.variations_form) { display: flex; gap: 8px; }
	.woocommerce div.product form.cart .quantity { flex: 0 0 72px; margin: 0; }
	.woocommerce div.product form.cart .quantity .qty { width: 100%; min-height: 50px; }
	.woocommerce div.product form.cart .single_add_to_cart_button { flex: 1; min-height: 50px; font-size: 18px; }
	.woocommerce div.product .woocommerce-tabs ul.tabs {
		display: flex; overflow-x: auto; white-space: nowrap; padding: 0; margin-bottom: 16px;
	}
	.woocommerce div.product .woocommerce-tabs ul.tabs::before { display: none; }
	.woocommerce div.product .woocommerce-tabs ul.tabs li { flex: 0 0 auto; margin: 0 6px 0 0; }

	/* Grillas de productos: 2 columnas y botón a lo ancho de la tarjeta. */
	.woocommerce ul.products:not(.elementor-grid),
	.woocommerce ul.products[class*="columns-"]:not(.elementor-grid) {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 28px 12px;
	}
	.woocommerce ul.products li.product .button { display: block; text-align: center; align-self: stretch; }
	.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 17px; }
}

/* ---------- Banner de consentimiento (wesay-consent.js) ---------- */
.wesay-consent {
	position: fixed; left: 16px; bottom: 16px; z-index: 99999;
	width: min(520px, calc(100vw - 32px));
	background: #fff; color: #000; border: 2px solid #000;
	box-shadow: 6px 6px 0 #8F00FF;
	font-size: 14px; line-height: 1.45;
}
.wesay-consent[hidden] { display: none; }
.wesay-consent__box { padding: 18px 20px; }
.wesay-consent__title { margin: 0 0 6px; font-family: "Grenze", serif; font-weight: 600; font-size: 22px; line-height: 1.1; }
.wesay-consent__text { margin: 0 0 14px; }
.wesay-consent a { color: #8F00FF; text-decoration: underline; }
.wesay-consent__prefs { display: grid; gap: 10px; margin: 0 0 14px; padding: 12px 0 0; border-top: 1px solid #ddd; }
.wesay-consent__prefs[hidden] { display: none; }
.wesay-consent__prefs label { display: grid; grid-template-columns: auto 1fr; column-gap: 8px; align-items: baseline; cursor: pointer; }
.wesay-consent__prefs input { width: 18px; height: 18px; margin: 0; accent-color: #8F00FF; }
.wesay-consent__prefs span { grid-column: 2; color: #444; font-size: 13px; }
.wesay-consent__actions { display: flex; flex-wrap: wrap; gap: 8px; }
.wesay-consent__actions [hidden] { display: none; }
.wesay-consent__actions button {
	flex: 1 1 auto; min-height: 44px; padding: 8px 16px; margin: 0;
	border: 2px solid #000; border-radius: 0; background: #000; color: #fff;
	font-family: "Grenze", serif; font-weight: 600; font-size: 17px; letter-spacing: .3px; cursor: pointer;
}
.wesay-consent__actions button[data-act="accept"],
.wesay-consent__actions button[data-act="save"] { background: #8F00FF; border-color: #8F00FF; }
.wesay-consent__actions button.is-link { flex: 0 0 auto; background: transparent; color: #000; }
.wesay-consent__actions button:hover { opacity: .88; }
.wesay-consent__actions button:focus-visible { outline: 3px solid #00C9FF; outline-offset: 2px; }
.wesay-consent-link { margin: 0; padding: 10px 16px 14px; text-align: center; font-size: 13px; }
.wesay-consent-link a { color: inherit; text-decoration: underline; opacity: .8; }
@media (max-width: 600px) {
	.wesay-consent { left: 8px; bottom: 8px; width: calc(100vw - 16px); box-shadow: 4px 4px 0 #8F00FF; }
	.wesay-consent__box { padding: 14px 16px; }
	.wesay-consent__title { font-size: 20px; }
}

/* Paginas legales: las tablas (Cookie Policy) se desplazan dentro de su caja en celular. */
.page-content table { display: block; overflow-x: auto; font-size: 14px; border-collapse: collapse; }
.page-content th, .page-content td { min-width: 110px; vertical-align: top; }

/* Footer: enlaces legales y aviso del newsletter en blanco sobre el fondo oscuro. */
[data-elementor-type="footer"] .elementor-widget-text-editor a { color: #fff; text-decoration: underline; }
[data-elementor-type="footer"] .wesay-legal-links { line-height: 1.9; }
[data-elementor-type="footer"] .wesay-legal-links a { text-decoration: none; opacity: .85; }
[data-elementor-type="footer"] .wesay-legal-links a:hover { opacity: 1; text-decoration: underline; }

/* Formulario de contacto ([wesay_contact], wesay-forms.php). */
.wesay-contact { display: grid; gap: 14px; max-width: 560px; }
.wesay-contact label { display: grid; gap: 6px; font-weight: 600; }
.wesay-contact label span { font-weight: 400; color: #666; }
.wesay-contact input, .wesay-contact textarea {
	width: 100%; padding: 10px 12px; border: 2px solid #000; border-radius: 0; font: inherit; font-weight: 400; font-size: 16px;
}
.wesay-contact input:focus, .wesay-contact textarea:focus { outline: 3px solid #00C9FF; outline-offset: 1px; }
.wesay-contact__trap { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.wesay-contact__note { margin: 0; font-size: 13px; color: #555; }
.wesay-contact__note a { color: #8F00FF; }
.wesay-contact button {
	justify-self: start; min-height: 48px; padding: 10px 28px; border: 0; border-radius: 0;
	background: #E600FF; color: #fff; font-family: "Grenze", serif; font-weight: 600; font-size: 18px; cursor: pointer;
}
.wesay-contact button:disabled { opacity: .6; cursor: wait; }
.wesay-contact__status { margin: 0; font-weight: 600; }
