/**
 * Buldog cart page — v4 layout (matches the multi-step checkout).
 *
 * Loaded after buldog-multi-step-checkout.css, which provides the shared
 * blocks (review lines, benefits, summary rows, choice cards, buttons) and
 * the --buldog-ms-* tokens. This file adds the cart-only shell: tokens on the
 * Elementor Pro cart widget, the two-column grid, the hidden WooCommerce
 * tables, quantity stepper, summary card on .cart_totals, empty cart.
 */

.elementor-widget-woocommerce-cart {
	--buldog-ms-coral: #f35c47;
	--buldog-ms-primary: #f35c47;
	--buldog-ms-coral-dark: #eb4f3a;
	--buldog-ms-green: #85c854;
	--buldog-ms-ink: #252525;
	--buldog-ms-muted: #69727d;
	--buldog-ms-line: #e2e2e2;
	--buldog-ms-total-bg: #fff7f3;
	--buldog-ms-surface: #f9fafb;
	--buldog-ms-card-bg: #ffffff;
	--buldog-ms-field-radius: 8px;
	--buldog-ms-btn-radius: 11px;
	--buldog-ms-btn2-radius: 9px;
	--buldog-ms-card-radius: 20px;
	--buldog-ms-max-w: 1180px;
	--buldog-ms-summary-w: 360px;
	--buldog-ms-gap: 24px;
	--buldog-ms-sticky-top: 96px;
	--buldog-ms-border: var(--buldog-ms-line);
	--buldog-ms-text: var(--buldog-ms-ink);
}

/* Elementor sets Roboto on the widget; use the site font. */
.elementor-widget-woocommerce-cart .woocommerce {
	font-family: inherit;
}

.buldog-cart-v4-page .elementor-widget-woocommerce-cart .buldog-ms-cart__notices {
	max-width: var(--buldog-ms-max-w);
	margin-inline: auto;
}

/* ===== Two-column grid (Elementor's container, our columns) ===== */
.buldog-cart-v4 .e-cart__container,
.e-cart-layout-one-column .buldog-cart-v4 .e-cart__container,
.e-cart-layout-two-columns .buldog-cart-v4 .e-cart__container {
	display: grid;
	grid-template-columns: minmax(0, 1fr) var(--buldog-ms-summary-w);
	grid-column-gap: var(--buldog-ms-gap);
	grid-row-gap: var(--buldog-ms-gap);
	align-items: start;
}

.buldog-cart-v4 .e-cart__column {
	min-width: 0;
}

/* Elementor section chrome off — the cards are ours. */
.buldog-cart-v4 .e-cart-section,
.elementor-widget-woocommerce-cart .buldog-cart-v4 .e-cart-section {
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
}

.buldog-cart-v4 .e-clear {
	display: none;
}

/* ===== Hidden WooCommerce markup (kept for cart.js / plugins) ===== */
.buldog-cart-v4 table.woocommerce-cart-form__contents,
.buldog-cart-v4 .coupon.e-cart-section,
.buldog-cart-v4 .cart_totals > h2,
.buldog-cart-v4 .cart_totals > table.shop_table {
	display: none !important;
}

/* ===== Main card ===== */
.buldog-cart-v4__main.buldog-ms-checkout__main {
	min-height: 0;
}

.buldog-cart-v4 .buldog-ms-checkout__title-row {
	align-items: center;
}

.buldog-cart-v4__count {
	font-size: 13px;
}

.buldog-cart-v4 .buldog-ms-checkout__intro {
	margin: 22px 0 14px;
}

/* Review list: one line per row, a little larger than the checkout recap */
.buldog-cart-v4 .buldog-ms-checkout__review {
	margin-top: 0;
}

.buldog-cart-v4 .buldog-ms-checkout__review-list {
	grid-template-columns: 1fr;
	gap: 0;
}

.buldog-cart-v4__line.buldog-ms-checkout__review-line {
	grid-template-columns: 64px minmax(0, 1fr) auto auto;
	gap: 14px;
	min-height: 92px;
	padding: 14px 0;
}

.buldog-cart-v4__line .buldog-ms-checkout__review-thumb {
	width: 64px;
	height: 68px;
}

.buldog-cart-v4__line .buldog-ms-checkout__review-thumb a {
	display: block;
	width: 100%;
	height: 100%;
}

.buldog-cart-v4__line .buldog-ms-checkout__review-name {
	font-size: 14px;
}

.buldog-cart-v4__line .buldog-ms-checkout__review-name a {
	color: inherit;
	text-decoration: none;
}

.buldog-cart-v4__line .buldog-ms-checkout__review-name a:hover {
	color: var(--buldog-ms-coral-dark);
}

.buldog-cart-v4__line .buldog-ms-checkout__review-meta {
	font-size: 12px;
}

.buldog-cart-v4__unit {
	display: block;
	margin-bottom: 4px;
	color: var(--buldog-ms-muted);
	font-size: 11px;
}

.buldog-cart-v4__unit .woocommerce-Price-amount {
	color: inherit;
}

.buldog-cart-v4__remove-wrap {
	display: inline-block;
}

.buldog-cart-v4 a.buldog-cart-v4__remove,
.buldog-cart-v4 .product-remove > a.remove.buldog-cart-v4__remove {
	display: inline;
	width: auto;
	height: auto;
	margin: 0;
	padding: 0;
	border: 0;
	border-bottom: 1px solid currentColor;
	border-radius: 0;
	background: transparent !important;
	color: #777 !important;
	font-size: 11px;
	font-weight: 400;
	line-height: 1.4;
	text-align: start;
	text-decoration: none;
}

.buldog-cart-v4 a.buldog-cart-v4__remove:hover {
	color: var(--buldog-ms-coral-dark) !important;
}

.buldog-cart-v4__price.buldog-ms-checkout__review-price {
	min-width: 84px;
	font-size: 15px;
}

.buldog-cart-v4__price del {
	font-size: 11px;
}

/* Quantity stepper */
.buldog-cart-v4__qty {
	display: inline-flex;
	align-items: stretch;
	height: 40px;
	border: 1px solid #d9d5cd;
	border-radius: var(--buldog-ms-field-radius);
	background: #fff;
	overflow: hidden;
}

.buldog-cart-v4__qty .buldog-qty-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: var(--buldog-ms-surface);
	color: var(--buldog-ms-ink);
	font-size: 17px;
	line-height: 1;
	cursor: pointer;
}

.buldog-cart-v4__qty .buldog-qty-btn:hover {
	background: var(--buldog-ms-total-bg);
	color: var(--buldog-ms-coral-dark);
}

.buldog-cart-v4__qty .quantity {
	display: flex;
	margin: 0;
}

.buldog-cart-v4 .buldog-cart-v4__qty input.qty {
	width: 46px;
	min-height: 0;
	height: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	border-inline: 1px solid #ece9e3;
	border-radius: 0;
	background: #fff;
	color: var(--buldog-ms-ink);
	font-size: 14px;
	font-weight: 600;
	text-align: center;
	box-shadow: none;
	-moz-appearance: textfield;
}

.buldog-cart-v4__qty input.qty::-webkit-outer-spin-button,
.buldog-cart-v4__qty input.qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.buldog-cart-v4__qty input.qty:focus {
	outline: 0;
	box-shadow: inset 0 0 0 1px var(--buldog-ms-coral);
}

.buldog-cart-v4__qty.is-locked {
	height: auto;
	padding: 6px 10px;
	border-style: dashed;
	background: var(--buldog-ms-surface);
}

.buldog-cart-v4__qty-fixed {
	align-self: center;
	padding: 0 8px;
	color: #777;
	font-size: 12px;
	white-space: nowrap;
}

/* Benefits block: give the coupon entry a bit more room on the cart */
.buldog-cart-v4 .buldog-ms-checkout__benefit-body b {
	font-size: 13px;
}

.buldog-cart-v4 .buldog-ms-checkout__coupon-form .coupon-error-notice {
	grid-column: 1 / -1;
	margin: 2px 0 0;
	color: #b3261e;
	font-size: 12px;
}

.buldog-cart-v4 .buldog-ms-checkout__coupon-form input.has-error {
	border-color: #b3261e;
}

/* Actions row: "continue shopping" (+ sticky CTA on mobile) */
.buldog-cart-v4__cta--mobile {
	display: none !important;
}

.buldog-cart-v4 .buldog-ms-checkout__actions {
	margin-top: 26px;
}

/* ===== Summary card (WooCommerce's .cart_totals is the card) ===== */
.buldog-cart-v4 .cart_totals {
	min-width: 0;
	padding: 28px;
	border: 1px solid var(--buldog-ms-line);
	border-radius: var(--buldog-ms-card-radius);
	background: var(--buldog-ms-card-bg);
	box-shadow: 0 14px 40px rgba(57, 46, 36, 0.07);
}

.buldog-cart-v4 .e-sticky-right-column--active {
	top: var(--buldog-ms-sticky-top);
}

.buldog-cart-v4 .cart_totals .buldog-ms-checkout__summary-head {
	margin-bottom: 18px;
}

.buldog-cart-v4__shipping {
	margin: 0 0 18px;
	padding-bottom: 6px;
	border-bottom: 1px solid var(--buldog-ms-line);
}

.buldog-cart-v4__shipping-title {
	margin: 0 0 2px;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.3;
}

.buldog-cart-v4__shipping-text {
	margin: 0 0 12px;
	color: var(--buldog-ms-muted);
	font-size: 11px;
}

.buldog-cart-v4 .buldog-ms-checkout__choices {
	margin-bottom: 12px;
}

.buldog-cart-v4 .buldog-ms-checkout__choice {
	grid-template-columns: auto auto minmax(0, 1fr) auto;
	min-height: 70px;
	padding: 12px 14px;
}

.buldog-cart-v4 .buldog-ms-checkout__choice-hint {
	margin-bottom: 10px;
}

/* Shipping calculator (WooCommerce form, restyled) */
.buldog-cart-v4__calc {
	margin: 0 0 12px;
}

.buldog-cart-v4__calc .shipping-calculator-button {
	display: inline-block;
	border-bottom: 1px solid currentColor;
	color: #777;
	font-size: 11px;
	text-decoration: none;
}

.buldog-cart-v4__calc .shipping-calculator-button:hover {
	color: var(--buldog-ms-coral-dark);
}

.buldog-cart-v4__calc .shipping-calculator-form {
	margin-top: 10px;
	padding: 12px;
	border: 1px solid var(--buldog-ms-line);
	border-radius: 11px;
	background: var(--buldog-ms-surface);
}

.buldog-cart-v4__calc .shipping-calculator-form .form-row {
	display: block;
	margin: 0 0 8px;
	padding: 0;
	float: none;
	width: 100%;
}

.buldog-cart-v4__calc .shipping-calculator-form label {
	display: block;
	margin-bottom: 4px;
	color: var(--buldog-ms-muted);
	font-size: 11px;
}

.buldog-cart-v4__calc .shipping-calculator-form .input-text,
.buldog-cart-v4__calc .shipping-calculator-form select {
	width: 100%;
	min-height: 40px;
	padding: 0 12px;
	border: 1px solid #d9d5cd;
	border-radius: var(--buldog-ms-field-radius);
	background: #fff;
	font-size: 13px;
}

.buldog-cart-v4__calc .shipping-calculator-form .input-text:focus,
.buldog-cart-v4__calc .shipping-calculator-form select:focus {
	outline: 0;
	border-color: var(--buldog-ms-coral);
}

.buldog-cart-v4__calc .shipping-calculator-form p:last-of-type {
	margin: 0;
}

.buldog-cart-v4__calc .shipping-calculator-form button[name="calc_shipping"] {
	min-height: 38px;
	padding: 0 16px;
	border: 1px solid #888;
	border-radius: var(--buldog-ms-field-radius);
	background: #fff;
	color: var(--buldog-ms-ink);
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
}

.buldog-cart-v4__calc .buldog-cart-total-weight {
	margin: 8px 0 0;
	color: var(--buldog-ms-muted);
	font-size: 11px;
}

/* #calc_shipping_state is a hidden input inside a .form-row — collapse the row */
.buldog-cart-v4__calc #calc_shipping_state_field:empty,
.buldog-cart-v4__calc #calc_shipping_state_field:has(> input[type="hidden"]:only-child) {
	display: none;
}

/* Summary body reuses the checkout rows; the CTA sits under the total */
.buldog-cart-v4 .wc-proceed-to-checkout {
	margin: 18px 0 0;
	padding: 0;
}

.buldog-cart-v4 .wc-proceed-to-checkout .buldog-cart-v4__cta,
.buldog-cart-v4 .buldog-cart-v4__cta.buldog-ms-checkout__btn--primary {
	display: flex;
	width: 100%;
	min-height: 54px;
	margin: 0;
	font-size: 16px;
	text-align: center;
}

/* The checkout CSS scopes buttons to .buldog-ms-checkout (our root) — keep
   Elementor's cart-widget button rules from bleeding into them. */
.elementor-widget-woocommerce-cart .buldog-cart-v4 .checkout-button.buldog-cart-v4__cta,
.elementor-widget-woocommerce-cart .buldog-cart-v4 .checkout-button.buldog-cart-v4__cta:hover {
	border: 0;
	border-radius: var(--buldog-ms-btn-radius);
	background-color: var(--buldog-ms-green);
	background-image: none;
	color: #fff;
	font-family: inherit;
	line-height: 1.2;
	text-transform: none;
	letter-spacing: 0;
}

/* Block overlays should follow the card corners */
.buldog-cart-v4 .cart_totals .blockUI.blockOverlay,
.buldog-cart-v4 .woocommerce-cart-form .blockUI.blockOverlay {
	border-radius: var(--buldog-ms-card-radius);
}

/* ===== Empty cart ===== */
.buldog-cart-v4-page .elementor-widget-woocommerce-cart .cart-empty.woocommerce-info,
.buldog-cart-v4-page .elementor-widget-woocommerce-cart .wc-empty-cart-message .cart-empty {
	max-width: 560px;
	margin: 24px auto 16px;
	padding: 28px;
	border: 1px solid var(--buldog-ms-line);
	border-radius: var(--buldog-ms-card-radius);
	background: var(--buldog-ms-card-bg);
	color: var(--buldog-ms-ink);
	font-size: 16px;
	text-align: center;
	box-shadow: 0 14px 40px rgba(57, 46, 36, 0.07);
}

.buldog-cart-v4-page .elementor-widget-woocommerce-cart .cart-empty.woocommerce-info::before {
	display: none;
}

.buldog-cart-v4-page .elementor-widget-woocommerce-cart .return-to-shop {
	text-align: center;
}

.buldog-cart-v4-page .elementor-widget-woocommerce-cart .return-to-shop .button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 50px;
	padding: 0 24px;
	border: 0;
	border-radius: var(--buldog-ms-btn-radius);
	background: var(--buldog-ms-green);
	color: #fff;
	font-size: 15px;
	font-weight: 700;
	text-decoration: none;
}

/* ===== Mobile ===== */
@media (max-width: 760px) {
	.buldog-cart-v4 .e-cart__container,
	.e-cart-layout-one-column .buldog-cart-v4 .e-cart__container,
	.e-cart-layout-two-columns .buldog-cart-v4 .e-cart__container {
		grid-template-columns: 1fr;
	}

	.buldog-cart-v4__line.buldog-ms-checkout__review-line {
		grid-template-columns: 58px minmax(0, 1fr) auto;
		grid-template-areas:
			"thumb body price"
			"thumb qty qty";
		gap: 8px 12px;
		min-height: 0;
	}

	.buldog-cart-v4__line .buldog-ms-checkout__review-thumb {
		grid-area: thumb;
		width: 58px;
		height: 62px;
	}

	.buldog-cart-v4__line .buldog-ms-checkout__review-body {
		grid-area: body;
	}

	.buldog-cart-v4__line .buldog-cart-v4__qty {
		grid-area: qty;
		justify-self: start;
		height: 36px;
	}

	.buldog-cart-v4__line .buldog-cart-v4__price {
		grid-area: price;
		min-width: 0;
	}

	.buldog-cart-v4__cta--mobile {
		display: inline-flex !important;
		flex: 1;
	}

	.buldog-cart-v4 .cart_totals {
		position: static !important;
		padding: 22px;
	}

	.buldog-cart-v4 .e-sticky-right-column--active {
		position: static;
	}
}
