/**
 * Carrito, checkout y "Mi cuenta": usamos las plantillas por defecto de
 * WooCommerce (no las sobreescribimos en esta v1) pero restyleadas acá
 * para que se sientan parte del mismo sistema visual.
 */

/* Todo precio de WooCommerce (wc_price()/get_price_html()) sale envuelto en
   este span, en cualquier parte del sitio — tarjetas, ficha de producto,
   carrito, checkout, cajitas de precio mayorista. Con una sola regla los
   números quedan con ancho fijo por dígito (no "bailan" al cambiar de
   cantidad) y un poco más de peso, para que se lean como un dato y no como
   texto corrido — mismo criterio que separar tipografía de precio y de
   contenido en atacadoconnect.com, sin sumar una fuente nueva. */
.woocommerce-Price-amount {
	font-variant-numeric: tabular-nums;
	font-weight: 700;
}

/* El precio tachado (antes de una oferta) es la referencia secundaria, no
   el dato principal — se queda con su peso liviano de siempre aunque la
   regla de arriba sea más específica que el "del" que lo envuelve. */
del .woocommerce-Price-amount {
	font-weight: 500;
}

/* ---------- Inputs y selects genéricos ----------
   OJO: no incluir input[type="search"] acá — WooCommerce pone la clase
   "woocommerce" en el <body> de tienda/categoría, y como el header vive
   dentro de ese <body>, cualquier regla ".woocommerce input[type=search]"
   termina pisando (por especificidad) el buscador del header y el del
   overlay de búsqueda, que ya tienen su propio estilo en header.css /
   mobile-nav.css. Esos buscadores no deben tocarse desde acá. */
.woocommerce input[type="text"],
.woocommerce input[type="email"],
.woocommerce input[type="tel"],
.woocommerce input[type="password"],
.woocommerce input[type="number"],
.woocommerce textarea,
.woocommerce select,
#site-main input[type="text"],
#site-main input[type="email"],
#site-main input[type="tel"],
#site-main input[type="password"],
#site-main select,
#site-main textarea {
	width: 100%;
	border: 1px solid var(--color-border-strong);
	border-radius: var(--radius-sm);
	padding: 12px 14px;
	background: #fff;
	font-size: 0.92rem;
}

.woocommerce input:focus,
.woocommerce select:focus,
.woocommerce textarea:focus {
	outline: 2px solid var(--color-primary);
	outline-offset: 1px;
}

.woocommerce .form-row {
	margin-bottom: var(--space-3);
}

.woocommerce .form-row label {
	display: block;
	font-size: 0.82rem;
	font-weight: 600;
	margin-bottom: 4px;
}

.woocommerce .required {
	color: var(--color-danger);
}

.woocommerce button.button,
.woocommerce input.button,
.woocommerce a.button,
#site-main button.button,
#site-main input.button,
#site-main a.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--space-2);
	padding: 13px 22px;
	border-radius: var(--radius-full);
	font-weight: 700;
	font-size: 0.9rem;
	background: var(--color-primary);
	color: #fff;
	border: none;
}

.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce a.button:hover {
	background: var(--color-primary-hover);
	color: #fff;
}

.woocommerce a.remove {
	color: var(--color-danger) !important;
	font-size: 1.3rem !important;
}

/* ---------- Carrito ---------- */
.woocommerce-cart-form table.shop_table,
.woocommerce-checkout-review-order-table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: var(--space-5);
}

.woocommerce-cart-form table.shop_table th {
	text-align: left;
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--color-text-tertiary);
	padding-bottom: var(--space-3);
	border-bottom: 1px solid var(--color-border);
}

.woocommerce-cart-form table.shop_table td {
	padding: var(--space-3) var(--space-2);
	border-bottom: 1px solid var(--color-border);
	vertical-align: middle;
}

.woocommerce-cart-form .product-thumbnail img {
	width: 64px;
	border-radius: var(--radius-sm);
}

.woocommerce-cart-form .product-name a {
	font-weight: 600;
	font-size: 0.9rem;
}

.cart-collaterals {
	max-width: 420px;
	margin-left: auto;
}

.cart_totals {
	background: var(--color-bg-subtle);
	border-radius: var(--radius-lg);
	padding: var(--space-5);
}

.cart_totals table {
	width: 100%;
}

.cart_totals th,
.cart_totals td {
	padding: var(--space-2) 0;
	font-size: 0.88rem;
}

.cart_totals .order-total .woocommerce-Price-amount {
	font-size: 1.2rem;
	font-weight: 600;
}

.wc-proceed-to-checkout .checkout-button {
	display: flex;
	width: 100%;
	margin-top: var(--space-3);
}

/* ---------- Checkout ---------- */
.woocommerce-checkout #order_review,
.woocommerce-checkout .woocommerce-checkout-review-order {
	background: var(--color-bg-subtle);
	border-radius: var(--radius-lg);
	padding: var(--space-5);
}

.woocommerce-checkout .col2-set,
.woocommerce-checkout .col2-set .col-1,
.woocommerce-checkout .col2-set .col-2 {
	width: 100%;
}

@media (min-width: 900px) {
	.woocommerce-checkout form.checkout {
		display: grid;
		grid-template-columns: 1.2fr 1fr;
		gap: var(--space-7);
		align-items: start;
	}
}

.woocommerce-checkout .payment_methods {
	list-style: none;
	padding: 0;
}

.woocommerce-checkout .payment_methods li {
	background: #fff;
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	padding: var(--space-3);
	margin-bottom: var(--space-2);
}

/* ---------- Mi cuenta ---------- */
.woocommerce-account .woocommerce-MyAccount-navigation ul {
	display: flex;
	overflow-x: auto;
	gap: var(--space-2);
	margin-bottom: var(--space-5);
	border-bottom: 1px solid var(--color-border);
}

.woocommerce-account .woocommerce-MyAccount-navigation li {
	white-space: nowrap;
}

.woocommerce-account .woocommerce-MyAccount-navigation li a {
	display: block;
	padding: var(--space-3) var(--space-2);
	font-weight: 600;
	font-size: 0.85rem;
	color: var(--color-text-secondary);
	border-bottom: 2px solid transparent;
}

.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a {
	color: var(--color-text);
	border-color: var(--color-primary);
}

.woocommerce-account table.shop_table {
	width: 100%;
	border-collapse: collapse;
}

.woocommerce-account table.shop_table th,
.woocommerce-account table.shop_table td {
	padding: var(--space-3) var(--space-2);
	border-bottom: 1px solid var(--color-border);
	font-size: 0.85rem;
	text-align: left;
}

.woocommerce-form-login,
.woocommerce-form-register {
	max-width: 420px;
	background: var(--color-bg-subtle);
	border-radius: var(--radius-lg);
	padding: var(--space-5);
}

.woocommerce-LostPassword {
	font-size: 0.85rem;
	margin-top: var(--space-2);
}

.woocommerce-tabs table.shop_attributes,
table.woocommerce-order-details__table {
	width: 100%;
	border-collapse: collapse;
}

.select2-container .select2-selection--single {
	height: 46px !important;
	border: 1px solid var(--color-border-strong) !important;
	border-radius: var(--radius-sm) !important;
	display: flex;
	align-items: center;
	padding: 0 var(--space-3) !important;
}

/* =========================================================
   Carrito y checkout clasicos (shortcode) - rediseno 0.6.4
   ========================================================= */
#site-main .woocommerce,
#site-main .woocommerce table,
#site-main .woocommerce input,
#site-main .woocommerce select,
#site-main .woocommerce textarea,
#site-main .woocommerce button {
	font-family: var(--font-sans);
}

#site-main .woocommerce-cart-form table.shop_table {
	border: 1px solid var(--color-border);
	border-radius: var(--radius-lg);
	border-collapse: separate;
	border-spacing: 0;
	overflow: hidden;
	background: #fff;
}

#site-main .woocommerce-cart-form table.shop_table th {
	background: var(--color-bg-subtle);
	padding: var(--space-3) var(--space-4);
	border-bottom: 1px solid var(--color-border);
}

#site-main .woocommerce-cart-form table.shop_table td {
	padding: var(--space-4);
	color: var(--color-text);
	font-size: 0.92rem;
}

#site-main .woocommerce-cart-form table.shop_table tr:last-child td {
	border-bottom: none;
}

#site-main .woocommerce-cart-form td.product-remove {
	width: 40px;
	padding-right: 0;
}

#site-main .woocommerce-cart-form a.remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: var(--color-bg-subtle);
	color: var(--color-text-secondary) !important;
	font-size: 1.1rem !important;
	line-height: 1;
	text-decoration: none;
}

#site-main .woocommerce-cart-form a.remove:hover {
	background: var(--color-danger);
	color: #fff !important;
}

#site-main .woocommerce-cart-form .product-thumbnail img {
	width: 72px;
	height: 72px;
	object-fit: cover;
	border-radius: var(--radius-md);
	background: var(--color-bg-subtle);
}

#site-main .woocommerce-cart-form .product-name a {
	color: var(--color-text);
	line-height: 1.35;
}

#site-main .woocommerce-cart-form .product-subtotal {
	font-weight: 700;
}

/* Cupon + actualizar */
#site-main .woocommerce-cart-form td.actions {
	background: var(--color-bg-subtle);
}

#site-main .woocommerce-cart-form td.actions .coupon {
	display: flex;
	gap: var(--space-2);
	float: left;
	max-width: 100%;
}

#site-main .woocommerce-cart-form td.actions .coupon label {
	display: none;
}

#site-main .woocommerce-cart-form td.actions .coupon .input-text {
	width: 190px;
	max-width: 100%;
	height: 44px;
	padding: 0 var(--space-4);
	border: 1px solid var(--color-border-strong);
	border-radius: var(--radius-full);
	background: #fff;
	font-size: 0.9rem;
}

#site-main .woocommerce-cart-form td.actions .coupon .input-text:focus {
	outline: none;
	border-color: var(--color-primary);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-primary) 22%, transparent);
}

#site-main .woocommerce-cart-form td.actions button.button {
	height: 44px;
	padding: 0 20px;
	white-space: nowrap;
}

#site-main .woocommerce-cart-form td.actions button[name="update_cart"] {
	float: right;
	background: #fff;
	color: var(--color-text);
	border: 1px solid var(--color-border-strong);
}

#site-main .woocommerce-cart-form td.actions button[name="update_cart"]:hover:not(:disabled) {
	background: var(--color-bg-subtle);
	color: var(--color-text);
}

#site-main .woocommerce-cart-form td.actions button[name="update_cart"]:disabled {
	opacity: 0.45;
	cursor: not-allowed;
}

#site-main .woocommerce-cart-form td.actions .coupon button.button {
	background: var(--color-text);
}

#site-main .woocommerce-cart-form td.actions .coupon button.button:hover {
	background: #000;
}

/* Totales */
#site-main .cart-collaterals {
	max-width: 440px;
	width: 100%;
	float: none;
	margin-left: auto;
}

#site-main .cart-collaterals .cart_totals {
	width: 100%;
	float: none;
	background: #fff;
	border: 1px solid var(--color-border);
	border-radius: var(--radius-lg);
	padding: var(--space-5);
}

#site-main .cart_totals h2 {
	font-size: 1.15rem;
	font-weight: 700;
	margin: 0 0 var(--space-3);
}

#site-main .cart_totals table.shop_table {
	border: none;
	border-radius: 0;
	background: transparent;
	margin: 0;
	width: 100%;
}

#site-main .cart_totals th,
#site-main .cart_totals td {
	padding: var(--space-3) 0;
	border: none;
	border-bottom: 1px solid var(--color-border);
	background: transparent;
	font-size: 0.92rem;
	text-align: left;
	vertical-align: top;
}

#site-main .cart_totals td {
	text-align: right;
}

#site-main .cart_totals th {
	color: var(--color-text-secondary);
	font-weight: 500;
}

#site-main .cart_totals tr.order-total th,
#site-main .cart_totals tr.order-total td {
	border-bottom: none;
	padding-top: var(--space-4);
	color: var(--color-text);
	font-weight: 700;
}

#site-main .cart_totals tr.order-total .woocommerce-Price-amount {
	font-size: 1.35rem;
}

#site-main .wc-proceed-to-checkout {
	padding: var(--space-4) 0 0;
}

#site-main .wc-proceed-to-checkout a.checkout-button {
	display: flex;
	width: 100%;
	margin: 0;
	padding: 16px 22px;
	font-size: 1rem;
}

/* Checkout */
#site-main .woocommerce-checkout h3,
#site-main .woocommerce-checkout #order_review_heading {
	font-size: 1.15rem;
	font-weight: 700;
	margin: 0 0 var(--space-4);
}

#site-main .woocommerce-checkout .form-row {
	margin: 0 0 var(--space-3);
	padding: 0;
	width: 100%;
	float: none;
}

#site-main .woocommerce-checkout .form-row label {
	display: block;
	font-size: 0.82rem;
	font-weight: 600;
	color: var(--color-text-secondary);
	margin-bottom: 4px;
}

#site-main .woocommerce-checkout .input-text,
#site-main .woocommerce-checkout select,
#site-main .woocommerce-checkout textarea {
	width: 100%;
	min-height: 46px;
	padding: 10px var(--space-4);
	border: 1px solid var(--color-border-strong);
	border-radius: var(--radius-md);
	background: #fff;
	font-size: 0.95rem;
	color: var(--color-text);
}

#site-main .woocommerce-checkout .input-text:focus,
#site-main .woocommerce-checkout select:focus,
#site-main .woocommerce-checkout textarea:focus {
	outline: none;
	border-color: var(--color-primary);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-primary) 22%, transparent);
}

#site-main .woocommerce-checkout #order_review {
	background: #fff;
	border: 1px solid var(--color-border);
}

#site-main .woocommerce-checkout-review-order-table {
	border: none;
	border-radius: 0;
}

#site-main .woocommerce-checkout-review-order-table th,
#site-main .woocommerce-checkout-review-order-table td {
	padding: var(--space-3) 0;
	border-bottom: 1px solid var(--color-border);
	font-size: 0.9rem;
	text-align: left;
	background: transparent;
}

#site-main .woocommerce-checkout-review-order-table td:last-child,
#site-main .woocommerce-checkout-review-order-table tfoot td {
	text-align: right;
}

#site-main .woocommerce-checkout #payment {
	background: transparent;
	border-radius: 0;
}

#site-main .woocommerce-checkout #payment ul.payment_methods {
	border: none;
	padding: 0;
	margin: 0 0 var(--space-4);
}

#site-main .woocommerce-checkout #payment div.payment_box {
	background: var(--color-bg-subtle);
	color: var(--color-text-secondary);
	border-radius: var(--radius-md);
	font-size: 0.85rem;
	margin: var(--space-2) 0 0;
	padding: var(--space-3);
}

#site-main .woocommerce-checkout #payment div.payment_box::before {
	display: none;
}

#site-main .woocommerce-checkout #place_order {
	width: 100%;
	padding: 16px 22px;
	font-size: 1rem;
	float: none;
}

#site-main .woocommerce-info,
#site-main .woocommerce-message,
#site-main .woocommerce-error {
	border-radius: var(--radius-md);
	border: 1px solid var(--color-border);
	background: var(--color-bg-subtle);
	font-size: 0.9rem;
}

/* Movil: filas del carrito como tarjetas */
@media (max-width: 768px) {
	#site-main .woocommerce-cart-form table.shop_table thead {
		display: none;
	}

	#site-main .woocommerce-cart-form table.shop_table,
	#site-main .woocommerce-cart-form table.shop_table tbody {
		display: block;
		border: none;
		background: transparent;
	}

	#site-main .woocommerce-cart-form table.shop_table tr.cart_item {
		display: grid;
		grid-template-columns: 76px 1fr;
		grid-template-areas:
			"thumb name"
			"thumb price"
			"thumb qty"
			"sub sub";
		gap: 4px var(--space-3);
		position: relative;
		background: #fff;
		border: 1px solid var(--color-border);
		border-radius: var(--radius-lg);
		padding: var(--space-3);
		margin-bottom: var(--space-3);
	}

	#site-main .woocommerce-cart-form table.shop_table tr.cart_item td {
		display: block;
		padding: 0;
		border: none;
		text-align: left;
		width: auto;
	}

	#site-main .woocommerce-cart-form table.shop_table td::before {
		display: none;
	}

	#site-main .woocommerce-cart-form td.product-thumbnail { grid-area: thumb; }
	#site-main .woocommerce-cart-form td.product-thumbnail img { width: 76px; height: 76px; }
	#site-main .woocommerce-cart-form td.product-name { grid-area: name; padding-right: 30px; }
	#site-main .woocommerce-cart-form td.product-price { grid-area: price; color: var(--color-text-secondary); font-size: 0.85rem; }
	#site-main .woocommerce-cart-form td.product-quantity { grid-area: qty; }
	#site-main .woocommerce-cart-form td.product-subtotal {
		grid-area: sub;
		display: flex;
		justify-content: space-between;
		align-items: center;
		margin-top: var(--space-2);
		padding-top: var(--space-2);
		border-top: 1px solid var(--color-border);
	}

	#site-main .woocommerce-cart-form table.shop_table td.product-subtotal::before {
		display: inline;
		content: "Subtotal";
		font-weight: 500;
		color: var(--color-text-secondary);
	}

	#site-main .woocommerce-cart-form td.product-remove {
		position: absolute;
		top: var(--space-3);
		right: var(--space-3);
		width: auto;
	}

	#site-main .woocommerce-cart-form table.shop_table tr:not(.cart_item) td.actions {
		display: block;
		border: 1px solid var(--color-border);
		border-radius: var(--radius-lg);
		padding: var(--space-3);
	}

	#site-main .woocommerce-cart-form td.actions .coupon {
		float: none;
		margin-bottom: var(--space-3);
	}

	#site-main .woocommerce-cart-form td.actions .coupon .input-text {
		flex: 1;
		min-width: 0;
		width: auto;
	}

	#site-main .woocommerce-cart-form td.actions button[name="update_cart"] {
		float: none;
		width: 100%;
	}

	#site-main .cart-collaterals {
		max-width: none;
	}
}

@media (max-width: 768px) {
	#site-main .woocommerce-cart-form table.shop_table tr.cart_item td.product-name {
		padding-right: 34px;
	}

	#site-main .woocommerce-cart-form td.product-quantity .quantity {
		display: inline-flex;
		width: auto;
		max-width: 140px;
	}

	/* 40px alcanzaba para un dígito, pero con dos (10, 12...) el número
	   quedaba cortado a la mitad — el ancho no dejaba lugar ni para los dos
	   caracteres ni para el padding del input. */
	#site-main .woocommerce-cart-form td.product-quantity .quantity .qty {
		width: 48px;
		box-sizing: border-box;
		padding: 9px 2px;
		border: none;
		box-shadow: none;
		background: transparent;
	}
}

@media (max-width: 768px) {
	#site-main .woocommerce-cart-form table.shop_table tr:not(.cart_item) {
		display: block;
	}

	#site-main .woocommerce-cart-form table.shop_table tr:not(.cart_item) td.actions {
		box-sizing: border-box;
		width: 100%;
	}

	#site-main .woocommerce-cart-form td.actions .coupon .input-text {
		width: 0;
	}
}

/* Tipografia unica del tema en carrito/checkout (evita fuentes de plugins) */
#site-main .woocommerce *:not(i):not([class*="icon"]):not(.dashicons),
#site-main .cart_totals *,
#site-main .wc-proceed-to-checkout a,
.woocommerce-cart #site-main h2,
.woocommerce-checkout #site-main h3 {
	font-family: var(--font-sans) !important;
}

/* Carrito y checkout: ancho completo en escritorio */
.woocommerce-cart #site-main.content-narrow,
.woocommerce-checkout:not(.woocommerce-order-received) #site-main.content-narrow {
	max-width: 1120px;
}

@media (min-width: 900px) {
	#site-main .woocommerce-checkout form.checkout,
	.woocommerce-checkout #site-main form.checkout {
		display: grid;
		grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
		grid-template-areas:
			"details heading"
			"details review";
		grid-template-rows: auto 1fr;
		align-content: start;
		column-gap: var(--space-7);
		align-items: start;
	}

	#site-main form.checkout #customer_details {
		grid-area: details;
		width: 100%;
	}

	#site-main form.checkout #order_review_heading {
		grid-area: heading;
		margin-bottom: var(--space-3);
	}

	#site-main form.checkout #order_review {
		grid-area: review;
		position: sticky;
		top: 100px;
	}

	#site-main form.checkout .col2-set .col-1,
	#site-main form.checkout .col2-set .col-2 {
		float: none;
		width: 100%;
	}

	/* Nombre/apellidos y CP/ciudad en dos columnas */
	#site-main .woocommerce-billing-fields__field-wrapper {
		display: grid;
		grid-template-columns: 1fr 1fr;
		column-gap: var(--space-3);
	}

	#site-main .woocommerce-billing-fields__field-wrapper .form-row {
		grid-column: span 2;
	}

	#site-main .woocommerce-billing-fields__field-wrapper .form-row-first,
	#site-main .woocommerce-billing-fields__field-wrapper .form-row-last {
		grid-column: span 1;
	}
}
