/* ==========================================================================
   Zorrito Verde – Diseño de la tienda
   Avisos, carrito, finalizar compra y mi cuenta con el estilo del personalizador.
   Funciona con las plantillas clásicas de WooCommerce y con los widgets de
   Elementor Pro (Carrito, Finalizar compra, Mi cuenta). Se usa !important donde
   Elementor fija colores por widget con mucha especificidad.
   ========================================================================== */

body.zvp-store {
	--zvp-accent: #34a065;
	--zvp-accent-hover: #2b8a56;
	--zvp-accent-soft: rgba(52, 160, 101, .1);
	--zvp-text: #1d1d1f;
	--zvp-muted: #6e6e73;
	--zvp-line: rgba(0, 0, 0, .08);
	--zvp-field-line: #d2d2d7;
	--zvp-surface: #f5f5f7;
	--zvp-control: #fff;
	--zvp-error: #d70015;
	--zvp-info: #0071e3;
	--zvp-focus: #0071e3;
}

/* --------------------------------------------------------------------------
   Variables de los widgets de Elementor Pro
   -------------------------------------------------------------------------- */
body.zvp-store .elementor-widget-woocommerce-cart,
body.zvp-store .elementor-widget-woocommerce-checkout-page,
body.zvp-store .elementor-widget-woocommerce-my-account {
	--sections-background-color: var(--zvp-surface) !important;
	--sections-border-color: transparent !important;
	--sections-border-type: solid !important;
	--sections-border-radius: 20px !important;
	--sections-padding: 24px !important;
	--sections-title-color: var(--zvp-text) !important;
	--sections-secondary-title-color: var(--zvp-text) !important;
	--sections-descriptions-color: var(--zvp-muted) !important;
	--sections-messages-color: var(--zvp-text) !important;
	--sections-radio-buttons-color: var(--zvp-accent) !important;
	--sections-checkboxes-color: var(--zvp-accent) !important;
	--links-normal-color: var(--zvp-accent) !important;
	--links-hover-color: var(--zvp-accent-hover) !important;
	--forms-labels-color: var(--zvp-text) !important;
	--forms-fields-normal-color: var(--zvp-text) !important;
	--forms-fields-focus-color: var(--zvp-text) !important;
	--forms-fields-normal-background-color: #fff !important;
	--forms-fields-focus-background-color: #fff !important;
	--forms-fields-border-radius: 12px !important;
	--forms-buttons-border-radius: 12px !important;
	--forms-buttons-border-color: transparent !important;
	--forms-buttons-hover-border-color: transparent !important;
	--forms-buttons-normal-text-color: var(--zvp-text) !important;
	--forms-buttons-hover-text-color: var(--zvp-text) !important;
	--product-link-normal-color: var(--zvp-text) !important;
	--product-link-hover-color: var(--zvp-accent) !important;
	--order-summary-color: var(--zvp-text) !important;
	--order-summary-title-color: var(--zvp-muted) !important;
	--order-summary-items-color: var(--zvp-text) !important;
	--order-summary-variations-color: var(--zvp-muted) !important;
	--order-summary-items-divider-color: var(--zvp-line) !important;
	--order-summary-totals-color: var(--zvp-text) !important;
	--order-summary-totals-divider-color: var(--zvp-line) !important;
	--order-summary-quantity-border-color: var(--zvp-field-line) !important;
	--order-summary-remove-icon-normal-color: #aeaeb2 !important;
	--order-summary-remove-icon-hover-color: var(--zvp-error) !important;
	--totals-color: var(--zvp-text) !important;
	--totals-divider-color: var(--zvp-line) !important;
	--checkout-button-normal-text-color: #fff !important;
	--checkout-button-hover-text-color: #fff !important;
	--checkout-button-border-radius: 14px !important;
	--checkout-button-width: 100% !important;
	--purchase-button-normal-text-color: #fff !important;
	--purchase-button-hover-text-color: #fff !important;
	--purchase-button-border-radius: 14px !important;
	--purchase-button-width: 100% !important;
	--general-text-color: var(--zvp-text) !important;
	--typography-section-titles-color: var(--zvp-text) !important;
	--tables-title-color: var(--zvp-muted) !important;
	--tables-items-color: var(--zvp-text) !important;
	--tables-divider-border-color: var(--zvp-line) !important;
	--tables-links-normal-color: var(--zvp-accent) !important;
	--tables-button-border-radius: 10px !important;
	--tables-buttons-border-color: transparent !important;
	--tables-button-normal-text-color: var(--zvp-text) !important;
	--tables-button-hover-text-color: var(--zvp-text) !important;
	--tabs-normal-color: var(--zvp-text) !important;
	--tabs-hover-color: var(--zvp-text) !important;
	--tabs-active-color: var(--zvp-text) !important;
	--tabs-border-color: transparent !important;
	--tabs-hover-border-color: transparent !important;
	--tabs-active-border-color: transparent !important;
	--tabs-divider-color: transparent !important;
	--tabs-border-radius: 10px !important;
	color: var(--zvp-text);
}

/* Columnas del carrito y finalizar compra: separación cómoda */
body.zvp-store .elementor-widget-woocommerce-cart .e-cart__container,
body.zvp-store .elementor-widget-woocommerce-checkout-page .e-checkout__container {
	grid-column-gap: 24px !important;
	grid-row-gap: 20px !important;
}

/* --------------------------------------------------------------------------
   Avisos (añadido al carrito, información, errores)
   -------------------------------------------------------------------------- */
body.zvp-store .woocommerce-message,
body.zvp-store .woocommerce-info,
body.zvp-store .woocommerce-error,
body.zvp-store .wc-block-components-notice-banner {
	position: relative;
	display: block;
	margin: 0 0 20px !important;
	padding: 14px 16px 14px 54px !important;
	list-style: none;
	background: #fff !important;
	border: 0 !important;
	border-radius: 16px !important;
	box-shadow: 0 0 0 1px var(--zvp-line), 0 10px 30px rgba(0, 0, 0, .07) !important;
	color: var(--zvp-text) !important;
	font-size: 15px;
	line-height: 1.45;
	animation: zvp-notice-in .35s cubic-bezier(.2, .9, .3, 1);
}

body.zvp-store .woocommerce-message::after,
body.zvp-store .woocommerce-info::after,
body.zvp-store .woocommerce-error::after {
	content: "";
	display: table;
	clear: both;
}

body.zvp-store .woocommerce-message::before,
body.zvp-store .woocommerce-info::before,
body.zvp-store .woocommerce-error::before {
	content: "" !important;
	position: absolute !important;
	top: 13px !important;
	left: 16px !important;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: var(--zvp-accent) center / 12px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 10'%3E%3Cpath d='M1 5l3.5 3.5L11 1.5' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	font-family: inherit !important;
}

body.zvp-store .woocommerce-info::before {
	background-color: var(--zvp-info);
	background-size: 4px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 14'%3E%3Ccircle cx='2' cy='2' r='1.6' fill='%23fff'/%3E%3Cpath d='M2 6v6.5' stroke='%23fff' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E");
}

body.zvp-store .woocommerce-error::before {
	background-color: var(--zvp-error);
	background-size: 4px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 14'%3E%3Cpath d='M2 1.5V8' stroke='%23fff' stroke-width='2.4' stroke-linecap='round'/%3E%3Ccircle cx='2' cy='12' r='1.6' fill='%23fff'/%3E%3C/svg%3E");
}

body.zvp-store .woocommerce-error li {
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

body.zvp-store .woocommerce-error li + li {
	margin-top: 4px !important;
}

/* Botón dentro del aviso ("Ver carrito") */
body.zvp-store .woocommerce-message .button,
body.zvp-store .woocommerce-info .button,
body.zvp-store .woocommerce-error .button {
	float: right !important;
	margin: -4px 0 -4px 16px !important;
	padding: 8px 16px !important;
	min-height: 0 !important;
	background: var(--zvp-accent) !important;
	border: 0 !important;
	border-radius: 999px !important;
	color: #fff !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	line-height: 1.3 !important;
	text-decoration: none !important;
	box-shadow: none !important;
	transition: background .2s;
}

body.zvp-store .woocommerce-message .button:hover,
body.zvp-store .woocommerce-info .button:hover {
	background: var(--zvp-accent-hover) !important;
}

body.zvp-store .woocommerce-message a:not(.button),
body.zvp-store .woocommerce-info a:not(.button),
body.zvp-store .woocommerce-error a:not(.button) {
	color: var(--zvp-accent) !important;
	font-weight: 500;
}

@keyframes zvp-notice-in {
	from { opacity: 0; transform: translateY(-6px); }
	to { opacity: 1; transform: none; }
}

@media (max-width: 600px) {
	body.zvp-store .woocommerce-message .button,
	body.zvp-store .woocommerce-info .button {
		float: none !important;
		display: table !important;
		margin: 10px 0 0 !important;
	}
}

/* --------------------------------------------------------------------------
   Botones de la compra
   -------------------------------------------------------------------------- */
body.zvp-store .woocommerce a.button,
body.zvp-store .woocommerce button.button,
body.zvp-store .woocommerce input.button,
body.zvp-store .woocommerce .shop_table .button,
body.zvp-store .woocommerce-MyAccount-content .button {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 10px 20px !important;
	background: #fff !important;
	border: 0 !important;
	border-radius: 12px !important;
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .14) !important;
	color: var(--zvp-text) !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	line-height: 1.2 !important;
	text-decoration: none !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	transition: background .2s, box-shadow .2s, color .2s !important;
}

body.zvp-store .woocommerce a.button:hover,
body.zvp-store .woocommerce button.button:hover,
body.zvp-store .woocommerce input.button:hover,
body.zvp-store .woocommerce .shop_table .button:hover {
	background: var(--zvp-surface) !important;
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .25) !important;
	color: var(--zvp-text) !important;
}

body.zvp-store .woocommerce button.button:disabled,
body.zvp-store .woocommerce button.button:disabled[disabled] {
	opacity: .45 !important;
	background: #fff !important;
	color: var(--zvp-text) !important;
}

/* Botones principales: finalizar compra, realizar pedido, acceder, guardar */
html body.zvp-store .woocommerce a.button.alt,
html body.zvp-store .woocommerce button.button.alt,
html body.zvp-store .woocommerce .wc-proceed-to-checkout .checkout-button,
html body.zvp-store .woocommerce #place_order,
html body.zvp-store .woocommerce button.woocommerce-form-login__submit,
html body.zvp-store .woocommerce button.woocommerce-form-register__submit,
html body.zvp-store .woocommerce .woocommerce-Button[name="save_account_details"],
html body.zvp-store .woocommerce .woocommerce-Button[name="save_address"],
html body.zvp-store .woocommerce .return-to-shop .button {
	background: var(--zvp-accent) !important;
	box-shadow: 0 6px 16px rgba(52, 160, 101, .28) !important;
	color: #fff !important;
}

html body.zvp-store .woocommerce a.button.alt:hover,
html body.zvp-store .woocommerce button.button.alt:hover,
html body.zvp-store .woocommerce .wc-proceed-to-checkout .checkout-button:hover,
html body.zvp-store .woocommerce #place_order:hover,
html body.zvp-store .woocommerce button.woocommerce-form-login__submit:hover,
html body.zvp-store .woocommerce button.woocommerce-form-register__submit:hover,
html body.zvp-store .woocommerce .return-to-shop .button:hover {
	background: var(--zvp-accent-hover) !important;
	color: #fff !important;
	box-shadow: 0 6px 16px rgba(52, 160, 101, .35) !important;
}

body.zvp-store .woocommerce .wc-proceed-to-checkout .checkout-button,
body.zvp-store .woocommerce #place_order {
	display: flex !important;
	width: 100% !important;
	min-height: 54px;
	margin: 0 !important;
	border-radius: 14px !important;
	font-size: 17px !important;
}

body.zvp-store .woocommerce .wc-proceed-to-checkout {
	padding: 4px 0 0 !important;
}

body.zvp-store .woocommerce a.button:focus-visible,
body.zvp-store .woocommerce button.button:focus-visible {
	outline: 2px solid var(--zvp-focus) !important;
	outline-offset: 2px;
}

/* --------------------------------------------------------------------------
   Campos de formulario
   -------------------------------------------------------------------------- */
body.zvp-store .woocommerce form .form-row {
	margin: 0 0 14px !important;
	padding: 0 !important;
}

body.zvp-store .woocommerce form .form-row label,
body.zvp-store .woocommerce form label {
	margin: 0 0 6px !important;
	font-size: 13px !important;
	font-weight: 500 !important;
	line-height: 1.3 !important;
	color: var(--zvp-text) !important;
}

body.zvp-store .woocommerce form .form-row label.checkbox,
body.zvp-store .woocommerce form .woocommerce-form__label-for-checkbox {
	display: inline-flex !important;
	align-items: center;
	gap: 8px;
	font-size: 14px !important;
	font-weight: 400 !important;
}

body.zvp-store .woocommerce form .form-row .required {
	color: var(--zvp-muted) !important;
	text-decoration: none;
	border: 0;
}

body.zvp-store .woocommerce input.input-text,
body.zvp-store .woocommerce textarea,
body.zvp-store .woocommerce select,
body.zvp-store .woocommerce form .form-row .input-text,
body.zvp-store .woocommerce form .form-row select,
body.zvp-store .woocommerce #customer_details .form-row .input-text,
body.zvp-store .woocommerce .coupon .input-text,
body.zvp-store.woocommerce-account .woocommerce input[type="text"],
body.zvp-store.woocommerce-account .woocommerce input[type="email"],
body.zvp-store.woocommerce-account .woocommerce input[type="password"],
body.zvp-store.woocommerce-account .woocommerce input[type="tel"] {
	width: 100%;
	min-height: 48px;
	padding: 12px 14px !important;
	background: #fff !important;
	border: 1px solid var(--zvp-field-line) !important;
	border-radius: 12px !important;
	box-shadow: none !important;
	color: var(--zvp-text) !important;
	font-size: 16px !important; /* evita el zoom en iPhone */
	line-height: 1.3 !important;
	transition: border-color .2s, box-shadow .2s !important;
}

body.zvp-store .woocommerce textarea {
	min-height: 96px;
}

body.zvp-store .woocommerce input.input-text:focus,
body.zvp-store .woocommerce textarea:focus,
body.zvp-store .woocommerce select:focus,
body.zvp-store .woocommerce form .form-row .input-text:focus {
	border-color: var(--zvp-accent) !important;
	box-shadow: 0 0 0 3px var(--zvp-accent-soft) !important;
	outline: none !important;
}

body.zvp-store .woocommerce form .form-row.woocommerce-invalid .input-text,
body.zvp-store .woocommerce form .form-row.woocommerce-invalid select {
	border-color: var(--zvp-error) !important;
}

body.zvp-store .woocommerce input[type="checkbox"],
body.zvp-store .woocommerce input[type="radio"] {
	accent-color: var(--zvp-accent);
	width: 18px;
	height: 18px;
	margin: 0 !important;
}

/* Selectores con buscador (país, provincia) */
body.zvp-store .select2-container--default .select2-selection--single {
	height: 48px !important;
	background: #fff !important;
	border: 1px solid var(--zvp-field-line) !important;
	border-radius: 12px !important;
}

body.zvp-store .select2-container--default .select2-selection--single .select2-selection__rendered {
	padding: 0 40px 0 14px !important;
	line-height: 46px !important;
	color: var(--zvp-text) !important;
	font-size: 16px;
}

body.zvp-store .select2-container--default .select2-selection--single .select2-selection__arrow {
	height: 46px !important;
	right: 10px !important;
}

body.zvp-store .select2-container--open .select2-selection--single,
body.zvp-store .select2-container--focus .select2-selection--single {
	border-color: var(--zvp-accent) !important;
	box-shadow: 0 0 0 3px var(--zvp-accent-soft) !important;
}

body.zvp-store .select2-dropdown {
	border: 1px solid var(--zvp-field-line) !important;
	border-radius: 12px !important;
	overflow: hidden;
	box-shadow: 0 12px 30px rgba(0, 0, 0, .12);
}

body.zvp-store .select2-container--default .select2-results__option--highlighted[aria-selected],
body.zvp-store .select2-container--default .select2-results__option--highlighted[data-selected] {
	background: var(--zvp-accent) !important;
	color: #fff !important;
}

body.zvp-store .woocommerce .quantity .qty {
	width: 72px !important;
	min-height: 40px;
	padding: 6px 8px !important;
	border-radius: 10px !important;
	text-align: center;
}

/* --------------------------------------------------------------------------
   Tablas (carrito, resumen del pedido, pedidos de mi cuenta)
   -------------------------------------------------------------------------- */
body.zvp-store .woocommerce table.shop_table {
	margin: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	border-collapse: collapse !important;
	background: transparent !important;
	color: var(--zvp-text);
}

body.zvp-store .woocommerce table.shop_table th,
body.zvp-store .woocommerce table.shop_table td {
	padding: 14px 8px !important;
	border: 0 !important;
	border-top: 1px solid var(--zvp-line) !important;
	background: transparent !important;
	color: var(--zvp-text) !important;
	font-size: 15px;
	vertical-align: middle;
}

body.zvp-store .woocommerce table.shop_table thead th {
	border-top: 0 !important;
	padding-top: 0 !important;
	color: var(--zvp-muted) !important;
	font-size: 12px !important;
	font-weight: 600 !important;
	letter-spacing: .02em;
	text-transform: uppercase;
}

body.zvp-store .woocommerce table.shop_table tbody tr:first-child td {
	border-top: 0 !important;
}

/* --------------------------------------------------------------------------
   Carrito
   -------------------------------------------------------------------------- */
body.zvp-store .e-cart-section,
body.zvp-store.woocommerce-cart .cart_totals,
body.zvp-store.woocommerce-cart .woocommerce-cart-form {
	border: 0 !important;
	border-radius: 20px !important;
}

body.zvp-store.woocommerce-cart:not(.elementor-page) .woocommerce-cart-form,
body.zvp-store.woocommerce-cart:not(.elementor-page) .cart_totals {
	padding: 24px;
	background: var(--zvp-surface);
}

body.zvp-store .woocommerce table.cart td.product-thumbnail img,
body.zvp-store .woocommerce table.cart .product-thumbnail img {
	display: block;
	width: 76px !important;
	max-width: none;
	height: 76px !important;
	object-fit: cover;
	border-radius: 14px;
	box-shadow: 0 0 0 1px var(--zvp-line);
}

body.zvp-store .woocommerce table.cart td.product-name > a,
body.zvp-store .woocommerce table.cart td.product-name {
	font-size: 16px !important;
	font-weight: 600 !important;
	color: var(--zvp-text) !important;
	text-decoration: none !important;
}

body.zvp-store .woocommerce table.cart td.product-name > a:hover {
	color: var(--zvp-accent) !important;
}

/* Personalización elegida bajo el nombre del producto */
body.zvp-store .woocommerce dl.variation,
body.zvp-store .woocommerce .wc-item-meta {
	display: grid !important;
	grid-template-columns: auto 1fr;
	gap: 4px 10px;
	margin: 8px 0 0 !important;
	padding: 0 !important;
	font-size: 13px !important;
	font-weight: 400 !important;
	line-height: 1.35;
	color: var(--zvp-muted) !important;
	border: 0 !important;
}

body.zvp-store .woocommerce dl.variation dt,
body.zvp-store .woocommerce dl.variation dd,
body.zvp-store .woocommerce .wc-item-meta li,
body.zvp-store .woocommerce .wc-item-meta li p {
	float: none !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	font-size: 13px !important;
	font-weight: 400 !important;
}

body.zvp-store .woocommerce dl.variation dt {
	color: var(--zvp-text) !important;
	font-weight: 500 !important;
}

body.zvp-store .woocommerce dl.variation dd p {
	display: flex;
	align-items: center;
	margin: 0 !important;
}

body.zvp-store .woocommerce .wc-item-meta {
	grid-template-columns: 1fr;
	list-style: none !important;
}

body.zvp-store .woocommerce .wc-item-meta .wc-item-meta-label {
	color: var(--zvp-text);
	font-weight: 500;
}

/* Quitar producto: círculo discreto */
body.zvp-store .woocommerce a.remove {
	display: grid !important;
	place-items: center;
	width: 28px !important;
	height: 28px !important;
	border-radius: 50% !important;
	background: #fff !important;
	box-shadow: 0 0 0 1px var(--zvp-line);
	color: #aeaeb2 !important;
	font-size: 18px !important;
	font-weight: 400 !important;
	line-height: 1 !important;
	text-decoration: none !important;
	transition: color .2s, background .2s;
}

body.zvp-store .woocommerce a.remove:hover {
	background: #fff0f1 !important;
	color: var(--zvp-error) !important;
}

/* Cupón y actualizar carrito */
body.zvp-store .woocommerce table.cart td.actions {
	padding-top: 18px !important;
}

body.zvp-store .woocommerce .coupon {
	display: flex !important;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
}

body.zvp-store .woocommerce .coupon .input-text {
	flex: 1 1 160px;
	width: auto !important;
	margin: 0 !important;
}

body.zvp-store .woocommerce .coupon .button {
	flex: 0 0 auto;
	width: auto !important;
	float: none !important;
}

/* Totales */
body.zvp-store .woocommerce .cart_totals h2,
body.zvp-store .woocommerce .e-checkout__order_review h3,
body.zvp-store .woocommerce #order_review_heading,
body.zvp-store .woocommerce-checkout h3 {
	margin: 0 0 12px !important;
	padding: 0 !important;
	font-size: 21px !important;
	font-weight: 600 !important;
	letter-spacing: -.02em;
	color: var(--zvp-text) !important;
	text-transform: none !important;
}

body.zvp-store .woocommerce .cart_totals table.shop_table th,
body.zvp-store .woocommerce .cart_totals table.shop_table td {
	padding: 12px 0 !important;
	font-weight: 400 !important;
}

body.zvp-store .woocommerce .cart_totals table.shop_table td::before {
	color: var(--zvp-muted) !important;
	font-weight: 400 !important;
}

body.zvp-store .woocommerce .cart_totals .order-total th,
body.zvp-store .woocommerce .cart_totals .order-total td,
body.zvp-store .woocommerce .cart_totals .order-total .woocommerce-Price-amount,
body.zvp-store .woocommerce-checkout-review-order-table .order-total th,
body.zvp-store .woocommerce-checkout-review-order-table .order-total td,
body.zvp-store .woocommerce-checkout-review-order-table .order-total .woocommerce-Price-amount {
	font-size: 19px !important;
	font-weight: 700 !important;
	color: var(--zvp-text) !important;
}

body.zvp-store .woocommerce .cart_totals td .woocommerce-Price-amount {
	font-weight: 600 !important;
	color: var(--zvp-text) !important;
}

body.zvp-store .woocommerce ul#shipping_method,
body.zvp-store .woocommerce ul.woocommerce-shipping-methods {
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

body.zvp-store .woocommerce ul#shipping_method li,
body.zvp-store .woocommerce ul.woocommerce-shipping-methods li {
	margin: 0 0 6px !important;
	font-size: 14px;
	line-height: 1.4;
}

body.zvp-store .woocommerce ul#shipping_method li input {
	margin: 0 6px 0 0 !important;
	vertical-align: -3px !important;
}

body.zvp-store .woocommerce ul#shipping_method li label {
	display: inline !important;
	margin: 0 !important;
	color: var(--zvp-text) !important;
	font-size: 14px !important;
	font-weight: 400 !important;
}

body.zvp-store .woocommerce .woocommerce-shipping-destination,
body.zvp-store .woocommerce .shipping-calculator-button {
	font-size: 13px;
	color: var(--zvp-muted) !important;
}

/* Carrito vacío */
body.zvp-store .woocommerce .wc-empty-cart-message .cart-empty {
	max-width: 520px;
	margin: 0 auto 20px !important;
	text-align: left;
}

body.zvp-store .woocommerce .return-to-shop {
	text-align: center;
}

/* --------------------------------------------------------------------------
   Finalizar compra
   -------------------------------------------------------------------------- */
body.zvp-store .woocommerce-checkout #customer_details .col-1,
body.zvp-store .woocommerce-checkout #customer_details .col-2,
body.zvp-store .woocommerce .e-checkout__order_review,
body.zvp-store .woocommerce .e-coupon-box,
body.zvp-store .woocommerce .e-checkout__order_review-2,
body.zvp-store .woocommerce-checkout .woocommerce-additional-fields {
	border: 0 !important;
	border-radius: 20px !important;
	background-color: var(--zvp-surface) !important;
}

body.zvp-store .woocommerce .e-checkout__order_review-2 {
	padding: 20px !important;
}

body.zvp-store .woocommerce-checkout-review-order-table th.product-total,
body.zvp-store .woocommerce-checkout-review-order-table td.product-total,
body.zvp-store .woocommerce-checkout-review-order-table tfoot td {
	text-align: right !important;
	white-space: nowrap;
}

body.zvp-store .woocommerce-checkout-review-order-table tfoot th {
	font-weight: 400 !important;
	color: var(--zvp-muted) !important;
}

body.zvp-store .woocommerce-checkout-review-order-table .cart_item td,
body.zvp-store .woocommerce-checkout-review-order-table .cart_item td .product-quantity {
	font-size: 14px !important;
}

body.zvp-store .woocommerce-checkout-review-order-table td.product-name {
	font-weight: 500 !important;
}

/* Métodos de pago como tarjetas seleccionables */
body.zvp-store .woocommerce-checkout #payment,
body.zvp-store #add_payment_method #payment {
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	padding: 0 !important;
}

body.zvp-store .woocommerce-checkout #payment ul.payment_methods {
	display: grid;
	gap: 10px;
	margin: 0 0 16px !important;
	padding: 0 !important;
	border: 0 !important;
}

body.zvp-store .woocommerce-checkout #payment ul.payment_methods li {
	margin: 0 !important;
	padding: 14px 16px !important;
	list-style: none !important;
	background: #fff !important;
	border-radius: 14px !important;
	box-shadow: inset 0 0 0 1px var(--zvp-line);
	transition: box-shadow .2s;
}

body.zvp-store .woocommerce-checkout #payment ul.payment_methods li:has(> input:checked) {
	box-shadow: inset 0 0 0 2px var(--zvp-accent);
}

body.zvp-store .woocommerce-checkout #payment ul.payment_methods li > label {
	display: inline !important;
	margin: 0 0 0 8px !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	cursor: pointer;
}

body.zvp-store .woocommerce-checkout #payment ul.payment_methods li img {
	max-height: 24px;
	width: auto !important;
	vertical-align: middle;
}

body.zvp-store .woocommerce-checkout #payment div.payment_box {
	margin: 12px 0 0 !important;
	padding: 12px 14px !important;
	background: var(--zvp-surface) !important;
	border-radius: 10px !important;
	color: var(--zvp-muted) !important;
	font-size: 14px !important;
}

body.zvp-store .woocommerce-checkout #payment div.payment_box::before {
	display: none !important;
}

body.zvp-store .woocommerce-checkout #payment div.payment_box p:last-child {
	margin-bottom: 0;
}

body.zvp-store .woocommerce-checkout #payment .place-order {
	padding: 0 !important;
	margin: 0 !important;
}

body.zvp-store .woocommerce-terms-and-conditions-wrapper,
body.zvp-store .woocommerce-privacy-policy-text {
	font-size: 13px;
	color: var(--zvp-muted);
}

body.zvp-store .woocommerce-privacy-policy-text p {
	margin: 0 0 14px;
}

/* Enlaces "¿Tienes un cupón?" / "¿Ya eres cliente?" */
body.zvp-store .woocommerce-form-coupon-toggle .woocommerce-info,
body.zvp-store .woocommerce-form-login-toggle .woocommerce-info {
	box-shadow: 0 0 0 1px var(--zvp-line) !important;
}

/* --------------------------------------------------------------------------
   Mi cuenta
   -------------------------------------------------------------------------- */

/* Acceso / registro */
body.zvp-store.woocommerce-account .woocommerce > h2,
body.zvp-store.woocommerce-account .u-column1 > h2,
body.zvp-store.woocommerce-account .u-column2 > h2 {
	margin: 0 0 14px !important;
	font-size: 28px !important;
	font-weight: 600 !important;
	letter-spacing: -.02em;
	color: var(--zvp-text) !important;
}

body.zvp-store.woocommerce-account .woocommerce-form-login,
body.zvp-store.woocommerce-account .woocommerce-form-register,
body.zvp-store.woocommerce-account .woocommerce-ResetPassword {
	max-width: 460px;
	height: auto !important;
	margin: 0 0 20px !important;
	padding: 24px !important;
	background: var(--zvp-surface) !important;
	border: 0 !important;
	border-radius: 20px !important;
}

body.zvp-store.woocommerce-account .woocommerce-form-login .form-row:has(.woocommerce-form-login__submit) {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 14px;
}

body.zvp-store.woocommerce-account .woocommerce-form-login__submit,
body.zvp-store.woocommerce-account .woocommerce-form-register__submit {
	order: 2;
	width: 100% !important;
	min-height: 50px;
	margin: 0 !important;
	float: none !important;
}

body.zvp-store.woocommerce-account .lost_password {
	margin: 0 !important;
	font-size: 14px;
}

body.zvp-store.woocommerce-account .lost_password a {
	color: var(--zvp-accent) !important;
}

body.zvp-store .woocommerce form .password-input {
	position: relative;
	display: block;
}

body.zvp-store .woocommerce form .show-password-input {
	position: absolute !important;
	top: 50% !important;
	right: 12px !important;
	transform: translateY(-50%);
	padding: 4px !important;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	color: var(--zvp-muted) !important;
}

/* Menú lateral */
body.zvp-store .woocommerce-MyAccount-navigation ul {
	display: grid;
	gap: 2px;
	margin: 0 !important;
	padding: 8px !important;
	list-style: none !important;
	background: var(--zvp-surface) !important;
	border: 0 !important;
	border-radius: 18px !important;
}

body.zvp-store .woocommerce-MyAccount-navigation ul li {
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	list-style: none !important;
}

body.zvp-store .woocommerce-MyAccount-navigation ul li a {
	display: block !important;
	padding: 11px 14px !important;
	border: 0 !important;
	border-radius: 12px !important;
	background: transparent !important;
	color: var(--zvp-text) !important;
	font-size: 15px !important;
	font-weight: 500 !important;
	text-decoration: none !important;
	transition: background .2s;
}

body.zvp-store .woocommerce-MyAccount-navigation ul li a:hover {
	background: rgba(0, 0, 0, .04) !important;
}

body.zvp-store .woocommerce-MyAccount-navigation ul li.is-active a {
	background: #fff !important;
	box-shadow: 0 1px 3px rgba(0, 0, 0, .08), 0 0 0 1px var(--zvp-line);
	color: var(--zvp-accent) !important;
	font-weight: 600 !important;
}

body.zvp-store .woocommerce-MyAccount-navigation-link--customer-logout a {
	color: var(--zvp-muted) !important;
}

/* Contenido */
body.zvp-store .woocommerce-MyAccount-content {
	color: var(--zvp-text);
}

body.zvp-store .woocommerce-MyAccount-content-wrapper,
body.zvp-store.woocommerce-account:not(.elementor-page) .woocommerce-MyAccount-content {
	border: 0 !important;
	border-radius: 20px !important;
	background: var(--zvp-surface) !important;
}

body.zvp-store.woocommerce-account:not(.elementor-page) .woocommerce-MyAccount-content {
	padding: 24px;
}

body.zvp-store .woocommerce-MyAccount-content p {
	color: var(--zvp-text) !important;
}

body.zvp-store .woocommerce-MyAccount-content a:not(.button) {
	color: var(--zvp-accent) !important;
}

body.zvp-store.woocommerce-account address,
body.zvp-store.woocommerce-account .woocommerce-address-fields {
	padding: 18px !important;
	background: #fff !important;
	border: 0 !important;
	border-radius: 14px !important;
	box-shadow: 0 0 0 1px var(--zvp-line);
	font-style: normal;
	line-height: 1.6;
}

body.zvp-store.woocommerce-account .woocommerce-Address-title h2,
body.zvp-store.woocommerce-account .woocommerce-Address-title h3,
body.zvp-store .woocommerce-MyAccount-content h2,
body.zvp-store .woocommerce-MyAccount-content h3 {
	font-size: 19px !important;
	font-weight: 600 !important;
	color: var(--zvp-text) !important;
}

/* Pedidos */
body.zvp-store .woocommerce-orders-table .button,
body.zvp-store .woocommerce-MyAccount-content .shop_table .button {
	min-height: 34px;
	margin: 2px 4px 2px 0 !important;
	padding: 6px 14px !important;
	font-size: 13px !important;
	border-radius: 999px !important;
}

body.zvp-store .woocommerce-orders-table__cell-order-status {
	font-weight: 500;
}

body.zvp-store .woocommerce-MyAccount-content mark {
	padding: 2px 8px;
	border-radius: 999px;
	background: var(--zvp-accent-soft);
	color: var(--zvp-text);
	font-weight: 600;
}

/* Tablas responsive de WooCommerce en móvil */
@media (max-width: 768px) {
	body.zvp-store .woocommerce table.shop_table_responsive tr td {
		padding: 10px 4px !important;
	}

	body.zvp-store .woocommerce table.shop_table_responsive tr td::before {
		color: var(--zvp-muted);
		font-weight: 500 !important;
	}

	body.zvp-store .woocommerce table.cart tr.cart_item {
		display: block;
		padding: 12px 0;
		border-top: 1px solid var(--zvp-line);
	}

	body.zvp-store .woocommerce table.cart tr.cart_item:first-child {
		border-top: 0;
	}

	body.zvp-store .woocommerce table.cart tr.cart_item td {
		border-top: 0 !important;
	}

	body.zvp-store .woocommerce-MyAccount-navigation ul {
		grid-auto-flow: column;
		grid-auto-columns: max-content;
		overflow-x: auto;
		scrollbar-width: none;
	}

	body.zvp-store .woocommerce-MyAccount-navigation ul::-webkit-scrollbar {
		display: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	body.zvp-store .woocommerce-message,
	body.zvp-store .woocommerce-info,
	body.zvp-store .woocommerce-error {
		animation: none;
	}
}
