/* Ajustes de WooCommerce heredados de Divi BodyCommerce (ver tienda-ajustes.php). */

/* Carrito vacío: botón "Volver a la tienda" con el estilo de los botones del sitio. */
.woocommerce .return-to-shop .button,
.woocommerce-page .return-to-shop .button {
	padding: 0.7vw 2vw !important;
	border: 0 !important;
	border-radius: 0;
	background: #eb5460 !important;
	color: #fff !important;
	font-size: 1.3vw !important;
}

.woocommerce .return-to-shop .button:after {
	display: none;
}

@media (max-width: 980px) {
	.woocommerce .return-to-shop .button,
	.woocommerce-page .return-to-shop .button {
		padding: 10px 24px !important;
		font-size: 16px !important;
	}
}

/* Categorías: sin subcategorías, el Loop Builder muestra "No se han encontrado resultados"; se oculta la fila. */
.kp-subcategorias:has(.not-found-title) {
	display: none;
}

/* Selectores "Ordenar por precio" / "Filtrar por categorías" (shortcode mostrar_categorias_o_precio). */
.et_pb_code form.et_pb_contact_form select.et_pb_contact_select {
	width: 100%;
	height: 3.75vw;
	padding: 0 3vw 0 1.15vw !important;
	line-height: normal;
	border: 0;
	border-radius: 0;
	background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='10' viewBox='0 0 16 10'%3E%3Cpath d='M1 1l7 7 7-7' fill='none' stroke='%23000' stroke-width='2'/%3E%3C/svg%3E") no-repeat right 1.2vw center / 1vw auto;
	color: #333;
	font-size: 0.972vw;
	appearance: none;
	-webkit-appearance: none;
}

@media (max-width: 980px) {
	.et_pb_code form.et_pb_contact_form select.et_pb_contact_select {
		height: 54px;
		padding: 0 40px 0 15px !important;
		background-position: right 15px center;
		background-size: 14px auto;
		font-size: 14px;
	}
}

/* Mi cuenta sin sesión: formulario de WooCommerce dentro de la tarjeta "Iniciar sesión". */
.kp-acceso #customer_login > h2,
.kp-acceso #customer_login .u-column1 > h2,
.kp-acceso #customer_login .u-column2,
.kp-acceso .woocommerce > h2 {
	display: none;
}

.kp-acceso #customer_login .u-column1 {
	width: 100%;
	float: none;
}

.kp-acceso form.woocommerce-form-login,
.kp-acceso form.woocommerce-ResetPassword {
	margin: 0;
	padding: 0;
	border: 0;
}

.kp-acceso label {
	display: block;
	margin-bottom: 0.6vw;
	color: #333;
	font-size: 1.25vw;
}

.kp-acceso input.input-text {
	width: 100%;
	padding: 1.35vw 1.1vw;
	border: 0;
	border-radius: 0;
	background: #efefef;
	font-size: 0.9vw;
}

.kp-acceso .woocommerce-button.button,
.kp-acceso button.button {
	padding: 0.6vw 2vw !important;
	border: 0 !important;
	border-radius: 10px;
	background: #333 !important;
	color: #fff !important;
	font-size: 1.3vw !important;
}

.kp-acceso .button:after {
	display: none;
}

.kp-acceso .woocommerce-LostPassword a {
	color: #333;
	font-size: 1.25vw;
}

@media (max-width: 980px) {
	.kp-acceso label,
	.kp-acceso .woocommerce-LostPassword a {
		margin-bottom: 8px;
		font-size: 16px;
	}

	.kp-acceso input.input-text {
		padding: 17px 12px;
		font-size: 14px;
	}

	.kp-acceso .woocommerce-button.button,
	.kp-acceso button.button {
		padding: 12px 30px !important;
		font-size: 16px !important;
	}
}

/* Mi cuenta con sesión: la regla del sitio para ".et_pb_code_inner > .woocommerce" (relleno y letra de la
   cuenta) no debe alcanzar al buscador del encabezado, que también lleva la clase "woocommerce". */
.et-l--header .et_pb_code_inner > .dgwt-wcas-search-wrapp {
	padding: 0 !important;
	font-size: inherit !important;
}

/* Mi cuenta > Editar dirección: formulario centrado (plantilla woocommerce/myaccount/form-edit-address.php). */
.kp-form-direccion {
	width: 80%;
	max-width: 1080px;
	margin: 0 auto;
}

/* Carrito: columnas con ancho automático (el módulo de Divi 5 las reparte por igual). */
.woocommerce-cart table.shop_table.cart {
	table-layout: auto;
}

/* Ficha de producto: insignia con el porcentaje de descuento (filtro woocommerce_sale_flash). */
.woocommerce span.onsale.kp-insignia-descuento {
	top: 10px !important;
	left: 10px !important;
	right: auto !important;
	z-index: 100;
	width: 60px;
	height: 60px;
	min-width: 0;
	min-height: 0;
	margin: 0 !important;
	padding: 0 !important;
	border-radius: 0;
	background: none !important;
	line-height: 60px;
}

.kp-insignia-descuento svg {
	position: absolute;
	inset: 0;
	width: 60px;
	height: 60px;
	fill: #eb5460;
}

.kp-insignia-descuento__texto {
	position: relative;
	display: block;
	width: 60px;
	line-height: 60px !important;
	color: #fff;
	font-size: 18px;
	font-weight: 400;
	text-align: center;
}

/* Ficha de producto: precio de oferta con el peso del diseño anterior (galería y botones: ajustes de los módulos). */
.woocommerce div.product .price ins,
.woocommerce div.product .price ins .amount {
	font-weight: 400 !important;
}

/* Productos que se venden de a uno: el selector de cantidad oculto no debe ocupar espacio. */
.woocommerce div.product form.cart .quantity.hidden {
	display: none !important;
}

/* Paginación de listados: casillas con fondo blanco sobre el gris de la página. */
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span.dots {
	background-color: #fff;
}

/* Mi cuenta: avisos y tabla de pedidos con las medidas del diseño anterior. */
.woocommerce-account .woocommerce-info,
.woocommerce-account .woocommerce-message,
.woocommerce-account .woocommerce-error {
	padding: 15px 25px !important;
	font-size: 16px !important;
}

.woocommerce-account .woocommerce-info .button,
.woocommerce-account .woocommerce-message .button {
	padding: 0.3em 1em !important;
	font-size: 16px !important;
	line-height: 1.7 !important;
}

.woocommerce-account .woocommerce-orders-table__cell-order-number a {
	font-weight: 500;
}


/* Pago (módulos de checkout de Divi 5): detalles que aplicaban los módulos de Divi 4. */
.woocommerce-checkout .form-row .required {
	border: 0 !important;
	color: #a00;
	font-weight: 700;
	text-decoration: none;
	visibility: visible;
}

.woocommerce-checkout .woocommerce-billing-fields .form-row,
.woocommerce-checkout .woocommerce-additional-fields .form-row {
	margin-bottom: 17px !important;
}

.woocommerce-checkout .woocommerce-billing-fields .form-row label,
.woocommerce-checkout .woocommerce-additional-fields .form-row label {
	padding-bottom: 2px;
}

.woocommerce-checkout #order_comments {
	height: 66px !important;
	line-height: 1.3;
}

.woocommerce-checkout #payment {
	background: transparent !important;
}

/* Acordeones (Preguntas frecuentes, Happy Weddings): el icono de pregunta abierta es el mismo círculo con "−"
   (ETmodules \4f) que el "+" de las cerradas, con su tamaño y color. Las opciones del tema traen content:"4f"
   (sin barra), que dibuja otros dos iconos, y Divi 5 no imprime el tamaño del icono en tableta y móvil. */
.et_pb_accordion .et_pb_toggle.et_pb_toggle_open > .et_pb_toggle_title::before {
	content: "\4f" !important;
	font-family: ETmodules !important;
	font-weight: 400 !important;
	font-size: 2.3vw;
	line-height: normal;
	color: #343434;
}

@media (max-width: 980px) {
	.et_pb_accordion .et_pb_toggle > .et_pb_toggle_title::before,
	.et_pb_accordion .et_pb_toggle.et_pb_toggle_open > .et_pb_toggle_title::before {
		font-size: 30px !important;
		line-height: 30px !important;
	}

	.kp-faq .et_pb_toggle {
		margin-bottom: 30px !important;
	}

	.kp-faq .et_pb_toggle:last-child {
		margin-bottom: 0 !important;
	}
}

/* Carruseles de grupo: indican que se pueden arrastrar con el mouse (carruseles.js). */
.et_pb_group_carousel {
	cursor: grab;
}

.et_pb_group_carousel.kp-arrastrando,
.et_pb_group_carousel.kp-arrastrando * {
	cursor: grabbing !important;
	user-select: none;
}

/* Ficha de producto: estado del botón al añadir sin recargar (carrito-ajax.js). */
.woocommerce div.product form.cart .single_add_to_cart_button.kp-cargando {
	opacity: 0.6;
	pointer-events: none;
	cursor: wait;
}

/* Mi cuenta > Happy Weddings sin mesa creada: el plugin de mesas de regalo dibuja un corazón sin tamaño ni color,
   que ocupaba todo el ancho (y el mismo alto) en blanco. Se muestra pequeño, dorado y centrado con su texto. */
.nmgr-call-to-action-no-wishlist {
	text-align: center;
}

.nmgr-no-wishlist-placeholder-svg svg {
	display: block;
	width: 5.556vw;
	height: auto;
	margin: 0 auto 1.042vw;
	fill: #cfaf70;
	opacity: 0.35;
}

@media (max-width: 991px) {
	.nmgr-no-wishlist-placeholder-svg svg {
		width: 70px;
		margin-bottom: 15px;
	}
}

@media (max-width: 479px) {
	.nmgr-no-wishlist-placeholder-svg svg {
		width: 16.279vw;
		margin-bottom: 3.488vw;
	}
}

/* Listados (tienda, categorías, etiquetas y búsqueda): aire entre los productos y la paginación. */
.et_pb_shop nav.woocommerce-pagination {
	margin-top: 3.958vw;
}

@media (max-width: 991px) {
	.et_pb_shop nav.woocommerce-pagination {
		margin-top: 40px;
	}
}

@media (max-width: 479px) {
	.et_pb_shop nav.woocommerce-pagination {
		margin-top: 9.535vw;
	}
}

/* Inicio, carrusel "Beneficios" (kp-carrusel-beneficios): en tableta y móvil deja asomar la tarjeta siguiente;
   su sección recorta lo que pasa del borde de la pantalla para que la página no se desplace de lado. */
@media (max-width: 980px) {
	.et_pb_section:has(.kp-carrusel-beneficios) {
		overflow-x: clip;
	}
}

/* Listado sin productos (categoría, etiqueta o búsqueda vacía; tienda-ajustes.php). */
.kp-sin-productos {
	max-width: 36vw;
	margin: 0 auto;
	padding: 4.167vw 0;
	text-align: center;
}

.kp-sin-productos__icono {
	display: block;
	width: 4.444vw;
	height: auto;
	margin: 0 auto 1.667vw;
	color: #eb5460;
}

.kp-sin-productos__titulo {
	margin: 0 0 0.833vw;
	padding: 0;
	color: #343434;
	font-size: 1.944vw;
	line-height: 1.2;
}

.kp-sin-productos__texto {
	margin: 0 0 2.083vw;
	padding: 0;
	color: #767676;
	font-size: 1.111vw;
	line-height: 1.6;
}

.kp-sin-productos__boton,
.kp-sin-productos__boton:hover {
	display: inline-block;
	padding: 0.833vw 2.083vw;
	border-radius: 5px;
	background: #eb5460;
	color: #fff !important;
	font-size: 1.111vw;
	line-height: 1.3;
}

.kp-sin-productos__boton:hover {
	background: #d84552;
}

@media (max-width: 991px) {
	.kp-sin-productos {
		max-width: 520px;
		padding: 50px 0;
	}

	.kp-sin-productos__icono {
		width: 56px;
		margin-bottom: 20px;
	}

	.kp-sin-productos__titulo {
		margin-bottom: 10px;
		font-size: 24px;
	}

	.kp-sin-productos__texto {
		margin-bottom: 25px;
		font-size: 16px;
	}

	.kp-sin-productos__boton {
		padding: 12px 28px;
		font-size: 16px;
	}
}

@media (max-width: 479px) {
	.kp-sin-productos {
		max-width: none;
		padding: 11.628vw 0;
	}

	.kp-sin-productos__icono {
		width: 13.023vw;
		margin-bottom: 4.651vw;
	}

	.kp-sin-productos__titulo {
		margin-bottom: 2.326vw;
		font-size: 5.581vw;
	}

	.kp-sin-productos__texto {
		margin-bottom: 5.814vw;
		font-size: 3.721vw;
	}

	.kp-sin-productos__boton {
		padding: 2.791vw 6.512vw;
		font-size: 3.721vw;
	}
}

/* Pago, resumen "Tu pedido": filas con aire entre columnas, sin el marco interno de la tabla (el módulo ya tiene
   el suyo) y las opciones de envío como tarjetas seleccionables a todo el ancho. La tabla se maqueta con flex
   para que la fila de envío pueda ocupar el ancho completo. */
.woocommerce-checkout .woocommerce-checkout-review-order-table {
	display: block;
	width: 100%;
	margin: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table thead,
.woocommerce-checkout .woocommerce-checkout-review-order-table tbody,
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot {
	display: block;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table tr {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1.667vw;
	padding: 0.833vw 0;
	border-bottom: 1px solid #e5e5e5;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table th,
.woocommerce-checkout .woocommerce-checkout-review-order-table td {
	display: block;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table .product-name,
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot th {
	flex: 1 1 auto;
	min-width: 0;
	text-align: left;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table .product-total,
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot td {
	flex: 0 0 auto;
	text-align: right;
	white-space: nowrap;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table thead th {
	color: #767676;
	font-size: 0.972vw;
	font-weight: 400;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table .product-quantity {
	color: #767676;
	font-weight: 400;
	white-space: nowrap;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table tr.order-total {
	border-bottom: 0;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table tr.order-total th,
.woocommerce-checkout .woocommerce-checkout-review-order-table tr.order-total td {
	font-size: 1.528vw;
}

/* Envío: título arriba y opciones debajo, a todo el ancho. */
.woocommerce-checkout .woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals {
	flex-wrap: wrap;
	row-gap: 0.694vw;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals th,
.woocommerce-checkout .woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals td {
	flex: 1 1 100%;
	text-align: left;
	white-space: normal;
}

.woocommerce-checkout #shipping_method {
	display: grid;
	gap: 0.556vw;
	margin: 0;
	padding: 0;
	list-style: none;
}

.woocommerce-checkout #shipping_method li {
	position: relative;
	display: flex;
	align-items: center;
	gap: 0.694vw;
	margin: 0 !important;
	padding: 0.833vw 0.972vw;
	border: 1px solid #dcdcdc;
	border-radius: 6px;
	background: #fff;
	line-height: 1.3;
	text-indent: 0;
	transition: border-color 0.2s ease, background-color 0.2s ease;
}

.woocommerce-checkout #shipping_method li:hover {
	border-color: #eb5460;
}

.woocommerce-checkout #shipping_method li:has(input:checked) {
	border-color: #eb5460;
	background: #fff5f6;
	box-shadow: inset 0 0 0 1px #eb5460;
}

.woocommerce-checkout #shipping_method input.shipping_method {
	flex: none;
	width: 1.25vw;
	height: 1.25vw;
	margin: 0 !important;
	accent-color: #eb5460;
	cursor: pointer;
}

.woocommerce-checkout #shipping_method label {
	display: flex;
	flex: 1 1 auto;
	justify-content: space-between;
	gap: 0.694vw;
	margin: 0;
	cursor: pointer;
}

/* Toda la tarjeta selecciona la opción. */
.woocommerce-checkout #shipping_method label::after {
	content: "";
	position: absolute;
	inset: 0;
}

.woocommerce-checkout #shipping_method label .amount {
	font-weight: 600;
	white-space: nowrap;
}

@media (max-width: 991px) {
	.woocommerce-checkout .woocommerce-checkout-review-order-table tr {
		gap: 20px;
		padding: 12px 0;
	}

	.woocommerce-checkout .woocommerce-checkout-review-order-table thead th {
		font-size: 13px;
	}

	.woocommerce-checkout .woocommerce-checkout-review-order-table tr.order-total th,
	.woocommerce-checkout .woocommerce-checkout-review-order-table tr.order-total td {
		font-size: 20px;
	}

	.woocommerce-checkout .woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals {
		row-gap: 10px;
	}

	.woocommerce-checkout #shipping_method {
		gap: 8px;
	}

	.woocommerce-checkout #shipping_method li {
		gap: 10px;
		padding: 12px 14px;
	}

	.woocommerce-checkout #shipping_method input.shipping_method {
		width: 18px;
		height: 18px;
	}
}

@media (max-width: 479px) {
	.woocommerce-checkout .woocommerce-checkout-review-order-table tr {
		gap: 4.651vw;
		padding: 2.791vw 0;
	}

	.woocommerce-checkout .woocommerce-checkout-review-order-table thead th {
		font-size: 3.023vw;
	}

	.woocommerce-checkout .woocommerce-checkout-review-order-table tr.order-total th,
	.woocommerce-checkout .woocommerce-checkout-review-order-table tr.order-total td {
		font-size: 4.651vw;
	}

	.woocommerce-checkout #shipping_method {
		gap: 1.86vw;
	}

	.woocommerce-checkout #shipping_method li {
		gap: 2.326vw;
		padding: 2.791vw 3.256vw;
	}

	.woocommerce-checkout #shipping_method input.shipping_method {
		width: 4.186vw;
		height: 4.186vw;
	}
}

