/**
 * Carrito y checkout.
 * El marcado nativo de WooCommerce es una <table>; aquí se convierte en tarjetas
 * con display:grid sin tocar los nombres de campo que el plugin espera.
 */

.gamur-cart-page,
.gamur-checkout-page {
	padding-bottom: 60px;
}

.gamur-cart-title {
	font-size: var(--gamur-text-page);
	font-weight: 700;
	margin: 0 0 24px;
}

/* ---------- Carrito: layout ---------- */

.gamur-cart-layout {
	display: grid;
	grid-template-columns: 1fr 360px;
	gap: 32px;
	align-items: start;
}

/* ---------- Carrito: líneas ---------- */

.woocommerce table.shop_table.cart {
	display: flex;
	flex-direction: column;
	gap: 14px;
	border: 0;
	background: none;
	border-radius: 0;
	margin: 0;
}

.woocommerce table.shop_table.cart thead { display: none; }

.woocommerce table.shop_table.cart tbody,
.woocommerce table.shop_table.cart tfoot {
	display: contents;
}

.woocommerce table.shop_table.cart tr.woocommerce-cart-form__cart-item {
	display: grid;
	grid-template-columns: 88px 1fr auto auto auto;
	align-items: center;
	gap: 16px;
	background: var(--gamur-surface);
	border: 1px solid var(--gamur-border);
	border-radius: var(--gamur-radius-panel);
	padding: 16px;
}

.woocommerce table.shop_table.cart td {
	display: block;
	border: 0;
	padding: 0;
}

.woocommerce table.shop_table.cart td.product-thumbnail {
	width: 88px;
	height: 88px;
	border-radius: var(--gamur-radius-lg);
	overflow: hidden;
	flex-shrink: 0;
}

.woocommerce table.shop_table.cart td.product-thumbnail img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.woocommerce table.shop_table.cart td.product-name a {
	font-family: var(--gamur-font-display);
	font-size: 1.125rem;
	font-weight: 600;
	color: var(--gamur-ink);
}

/* Metadatos del ítem: tamaño, fecha de entrega y mensaje de tarjeta. */
.woocommerce table.shop_table.cart td.product-name .variation,
.woocommerce table.shop_table.cart td.product-name dl.variation {
	margin: 4px 0 0;
	font-size: var(--gamur-text-xs);
	color: var(--gamur-ink-muted);
}

.woocommerce td.product-name dl.variation dt,
.woocommerce td.product-name dl.variation dd {
	display: inline;
	margin: 0;
	font-weight: 400;
}

.woocommerce td.product-name dl.variation dd p { margin: 0; display: inline; }

.woocommerce td.product-name dl.variation dd::after {
	content: " · ";
	color: var(--gamur-ink-faint);
}

.woocommerce td.product-name dl.variation dd:last-child::after { content: ""; }

.woocommerce table.shop_table.cart td.product-price {
	font-weight: 700;
}

.woocommerce table.shop_table.cart td.product-subtotal {
	width: 90px;
	text-align: right;
	font-weight: 700;
}

.woocommerce table.shop_table.cart td.product-quantity .quantity {
	display: flex;
	align-items: center;
	border: 1px solid var(--gamur-border);
	border-radius: var(--gamur-radius-md);
}

.woocommerce table.shop_table.cart td.product-quantity input.qty {
	width: 40px;
	height: 42px;
	border: 0;
	background: none;
	text-align: center;
	font-weight: 700;
	-moz-appearance: textfield;
}

.woocommerce table.shop_table.cart td.product-remove a.remove {
	display: grid;
	place-items: center;
	width: 32px;
	height: 32px;
	font-size: 18px;
	color: var(--gamur-primary-dark);
	background: none;
	border-radius: 50%;
}

.woocommerce table.shop_table.cart td.product-remove a.remove:hover {
	background: var(--gamur-blush);
	color: var(--gamur-primary);
}

/* ---------- Carrito: cupón ---------- */

.woocommerce table.shop_table.cart td.actions {
	display: flex;
	gap: 12px;
	margin-top: 8px;
	padding: 0;
}

.woocommerce table.shop_table.cart .coupon {
	display: flex;
	gap: 12px;
	flex: 1;
}

.woocommerce table.shop_table.cart .coupon input#coupon_code {
	flex: 1;
	border: 1px solid var(--gamur-border);
	border-radius: var(--gamur-radius-md);
	padding: 13px 15px;
	background: var(--gamur-surface);
	width: auto;
}

.woocommerce table.shop_table.cart .coupon button {
	background: var(--gamur-ink);
	color: #fff;
	padding: 0 22px;
	border-radius: var(--gamur-radius-md);
	font-weight: 600;
}

.woocommerce table.shop_table.cart .coupon button:hover {
	background: #1F1B18;
}

/* El botón "Actualizar carrito" queda secundario. */
.woocommerce table.shop_table.cart td.actions > button[name="update_cart"] {
	background: none;
	border: 1px solid var(--gamur-border);
	color: var(--gamur-ink-muted);
	border-radius: var(--gamur-radius-md);
	padding: 13px 20px;
}

/* ---------- Resumen (carrito y checkout) ---------- */

.gamur-summary {
	background: var(--gamur-surface);
	border: 1px solid var(--gamur-border);
	border-radius: var(--gamur-radius-panel);
	padding: 24px;
	position: sticky;
	top: var(--gamur-sticky-top);
}

.gamur-summary__title {
	font-family: var(--gamur-font-display);
	font-size: 1.375rem;
	font-weight: 700;
	margin: 0 0 18px;
}

.gamur-summary__row {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	padding: 8px 0;
	color: var(--gamur-ink-soft);
}

.gamur-summary__row strong {
	color: var(--gamur-ink);
	font-weight: 600;
}

.gamur-summary__free {
	color: var(--gamur-green);
	font-weight: 600;
}

.gamur-summary__total {
	display: flex;
	justify-content: space-between;
	font-size: 1.25rem;
	font-weight: 700;
	margin-bottom: 20px;
}

.gamur-summary__secondary {
	display: block;
	width: 100%;
	background: none;
	border: none;
	color: var(--gamur-ink-muted);
	font-weight: 600;
	padding: 12px;
	margin-top: 6px;
	text-align: center;
	cursor: pointer;
}

.gamur-summary__secondary:hover { color: var(--gamur-primary); }

.gamur-summary__note {
	text-align: center;
	font-size: var(--gamur-text-2xs);
	color: var(--gamur-ink-faint);
	margin: 12px 0 0;
}

/* Miniaturas del resumen de checkout con badge de cantidad. */
.gamur-summary__items {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin-bottom: 16px;
}

.gamur-summary__item {
	display: flex;
	gap: 12px;
	align-items: center;
}

.gamur-summary__thumb {
	position: relative;
	width: 52px;
	height: 52px;
	border-radius: var(--gamur-radius-sm);
	overflow: visible;
	flex-shrink: 0;
}

.gamur-summary__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: var(--gamur-radius-sm);
	display: block;
}

.gamur-summary__qty {
	position: absolute;
	top: -6px;
	right: -6px;
	display: grid;
	place-items: center;
	width: 20px;
	height: 20px;
	background: var(--gamur-ink);
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	border-radius: 50%;
}

.gamur-summary__name {
	flex: 1;
	font-size: var(--gamur-text-sm);
	font-weight: 600;
}

.gamur-summary__price {
	font-size: var(--gamur-text-sm);
	font-weight: 700;
}

/* ---------- Carrito vacío ---------- */

.gamur-cart-empty {
	text-align: center;
	padding: 70px 20px;
	background: var(--gamur-surface);
	border: 1px solid var(--gamur-border);
	border-radius: var(--gamur-radius-card);
}

.gamur-cart-empty__icon { font-size: 48px; }

.gamur-cart-empty p {
	color: var(--gamur-ink-muted);
	font-size: 1.0625rem;
	margin: 14px 0 22px;
}

/* ---------- Checkout ---------- */

.gamur-checkout-layout {
	display: grid;
	grid-template-columns: 1fr 380px;
	gap: 32px;
	align-items: start;
}

.woocommerce .gamur-checkout-fields {
	display: flex;
	flex-direction: column;
	gap: 22px;
}

.gamur-checkout-section {
	background: var(--gamur-surface);
	border: 1px solid var(--gamur-border);
	border-radius: var(--gamur-radius-panel);
	padding: 24px;
}

.gamur-checkout-section > h3,
.woocommerce-billing-fields > h3,
.woocommerce-shipping-fields > h3,
.woocommerce-additional-fields > h3 {
	font-family: var(--gamur-font-display);
	font-size: 1.25rem;
	font-weight: 700;
	margin: 0 0 16px;
}

.woocommerce form .form-row {
	padding: 0;
	margin: 0 0 14px;
}

.woocommerce form .form-row label {
	font-size: var(--gamur-text-xs);
	font-weight: 600;
	color: var(--gamur-ink-muted);
	margin-bottom: 6px;
}

.woocommerce form .form-row-first,
.woocommerce form .form-row-last {
	width: calc(50% - 7px);
}

/* ---------- Métodos de pago ---------- */

.woocommerce-checkout #payment {
	background: none;
	border-radius: 0;
}

.woocommerce-checkout #payment ul.payment_methods {
	display: flex;
	flex-direction: column;
	gap: 10px;
	border: 0;
	padding: 0;
	margin: 0;
}

.woocommerce-checkout #payment ul.payment_methods li {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	background: var(--gamur-surface);
	border: 1px solid var(--gamur-border);
	border-radius: var(--gamur-radius-md);
	padding: 14px 16px;
	list-style: none;
	transition: border-color var(--gamur-duration) var(--gamur-ease),
	            background var(--gamur-duration) var(--gamur-ease);
}

.woocommerce-checkout #payment ul.payment_methods li:has(input:checked) {
	background: var(--gamur-blush);
	border-color: var(--gamur-primary);
}

.woocommerce-checkout #payment ul.payment_methods li input[type="radio"] {
	width: 18px;
	height: 18px;
	accent-color: var(--gamur-primary);
	margin: 0;
}

.woocommerce-checkout #payment ul.payment_methods li label {
	font-weight: 600;
	margin: 0;
	cursor: pointer;
}

.woocommerce-checkout #payment div.payment_box {
	flex-basis: 100%;
	background: var(--gamur-cream);
	border-radius: var(--gamur-radius-sm);
	font-size: var(--gamur-text-sm);
	color: var(--gamur-ink-soft);
	margin: 4px 0 0;
	padding: 12px 14px;
}

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

.woocommerce #payment #place_order,
.woocommerce-checkout #payment #place_order {
	width: 100%;
	font-size: 1.0625rem;
	padding: 15px;
	border-radius: var(--gamur-radius-lg);
	margin-top: 4px;
	float: none;
}

/* El resumen del pedido (review-order.php) ya es un .gamur-summary; aquí solo se
   normaliza la fila de envío, que WooCommerce sigue imprimiendo como <tr>/<td>. */
.woocommerce-checkout-review-order-table .woocommerce-shipping-totals,
.woocommerce-checkout-review-order-table tr {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	padding: 8px 0;
	color: var(--gamur-ink-soft);
}

.woocommerce-checkout-review-order-table th,
.woocommerce-checkout-review-order-table td {
	display: block;
	border: 0;
	padding: 0;
	font-weight: 400;
	text-align: left;
}

.woocommerce-checkout-review-order-table ul#shipping_method {
	list-style: none;
	margin: 0;
	padding: 0;
	text-align: right;
}

.woocommerce-checkout-review-order-table ul#shipping_method .amount {
	color: var(--gamur-green);
	font-weight: 600;
}

/* ---------- Avisos ---------- */

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	background: var(--gamur-surface);
	border: 1px solid var(--gamur-border);
	border-top: 3px solid var(--gamur-primary);
	border-radius: var(--gamur-radius-md);
	color: var(--gamur-ink);
	padding: 16px 20px;
	list-style: none;
}

.woocommerce-message { border-top-color: var(--gamur-green); }
.woocommerce-error { border-top-color: #C0392B; }

.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before { display: none; }

/* ---------- Responsive ---------- */

@media (max-width: 900px) {
	.gamur-cart-layout,
	.gamur-checkout-layout {
		grid-template-columns: 1fr;
	}

	.gamur-summary { position: static; }
}

@media (max-width: 640px) {
	.woocommerce table.shop_table.cart tr.woocommerce-cart-form__cart-item {
		grid-template-columns: 72px 1fr auto;
		gap: 12px;
	}

	.woocommerce table.shop_table.cart td.product-thumbnail { width: 72px; height: 72px; }

	.woocommerce table.shop_table.cart td.product-price { display: none; }

	.woocommerce table.shop_table.cart td.product-quantity { grid-column: 2; }

	.woocommerce table.shop_table.cart td.product-subtotal {
		grid-column: 3;
		width: auto;
	}

	.woocommerce table.shop_table.cart td.actions,
	.woocommerce table.shop_table.cart .coupon { flex-wrap: wrap; }

	.woocommerce form .form-row-first,
	.woocommerce form .form-row-last { width: 100%; }
}
