/**
 * DigiMart — WooCommerce styling.
 *
 * Sections: shop layout, product grid, toolbar, notices, single product,
 * cart, checkout, my-account, buttons, badges, forms.
 */

/* ============================================================
 * Shop layout (archive) + sidebar
 * ========================================================== */
.dz-shop-layout { display: grid; grid-template-columns: 1fr; gap: 32px; }
.dz-shop-layout.has-sidebar { grid-template-columns: 280px minmax(0, 1fr); }
.dz-shop-sidebar { display: flex; flex-direction: column; gap: 20px; }
.dz-shop-main { min-width: 0; }

/* ============================================================
 * Product grid
 * ========================================================== */
.dz-shop-main ul.products,
.dz-catblock ul.products,
ul.products {
	display: grid;
	grid-template-columns: repeat(var(--dz-cols, 4), minmax(0, 1fr));
	gap: var(--dz-gap);
	list-style: none;
	margin: 0;
	padding: 0;
}
ul.products.columns-1 { --dz-cols: 1; }
ul.products.columns-2 { --dz-cols: 2; }
ul.products.columns-3 { --dz-cols: 3; }
ul.products.columns-4 { --dz-cols: 4; }
ul.products.columns-5 { --dz-cols: 5; }
ul.products.columns-6 { --dz-cols: 6; }

ul.products li.product,
li.dz-card { margin: 0 !important; width: auto !important; float: none !important; }
ul.products::before,
ul.products::after { content: none !important; }

/* ============================================================
 * Toolbar (result count + ordering)
 * ========================================================== */
.dz-shop-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	flex-wrap: wrap;
	background: #fff;
	border: 1px solid var(--dz-border);
	border-radius: var(--dz-radius);
	padding: 12px 18px;
	margin-bottom: 22px;
}
.dz-shop-toolbar .woocommerce-result-count { margin: 0; color: var(--dz-muted); font-size: 0.88rem; }
.dz-shop-toolbar .woocommerce-ordering { margin: 0; }
.dz-shop-toolbar select {
	width: auto;
	min-width: 200px;
	padding: 9px 14px;
	border-radius: var(--dz-radius-sm);
}

/* ============================================================
 * Notices
 * ========================================================== */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-noreviews {
	list-style: none;
	border: 1px solid var(--dz-border);
	border-left: 4px solid var(--dz-accent);
	background: #fff;
	border-radius: var(--dz-radius-sm);
	padding: 14px 18px;
	margin: 0 0 18px;
	box-shadow: var(--dz-shadow);
	font-size: 0.92rem;
}
.woocommerce-message { border-left-color: var(--dz-success); }
.woocommerce-error { border-left-color: var(--dz-danger); }
.woocommerce-message .button,
.woocommerce-info .button { float: right; }

/* ============================================================
 * Buttons — map WooCommerce buttons to the theme button
 * ========================================================== */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce .single_add_to_cart_button,
.woocommerce #place_order {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	font-family: inherit;
	font-weight: 600;
	line-height: 1;
	color: #fff;
	background: var(--dz-accent);
	border: 1px solid transparent;
	border-radius: var(--dz-radius-sm);
	padding: 11px 20px;
	cursor: pointer;
	transition: background var(--dz-transition), transform var(--dz-transition);
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce .single_add_to_cart_button:hover,
.woocommerce #place_order:hover {
	background: var(--dz-accent-600);
	color: #fff;
	transform: translateY(-1px);
}
.woocommerce a.button.dz-btn { padding: 8px 14px; }

/* Card add-to-cart ("Buy") stays compact and full look */
li.dz-card .dz-card__foot .button.added { opacity: 0.85; }
li.dz-card .added_to_cart {
	margin-left: 8px;
	font-size: 0.8rem;
	font-weight: 600;
	color: var(--dz-accent-600);
}

/* ============================================================
 * Sale / featured flash
 * ========================================================== */
.woocommerce span.onsale {
	display: inline-flex;
	align-items: center;
	min-height: 0;
	min-width: 0;
	padding: 4px 12px;
	font-size: 0.72rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	color: var(--dz-danger);
	background: #fdeaea;
	border-radius: var(--dz-radius-pill);
	position: absolute;
	top: 12px;
	left: 12px;
	margin: 0;
}

/* ============================================================
 * Price html
 * ========================================================== */
.woocommerce .price { color: var(--dz-heading); font-weight: 700; }
.woocommerce .price del { color: var(--dz-muted); font-weight: 500; opacity: 1; margin-right: 6px; }
.woocommerce .price ins { text-decoration: none; color: var(--dz-heading); }

/* ============================================================
 * Single product
 * ========================================================== */
.dz-single-product div.product {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 40px;
	background: #fff;
	border: 1px solid var(--dz-border);
	border-radius: var(--dz-radius);
	padding: clamp(18px, 3vw, 32px);
	position: relative;
}
.dz-single-product div.product .woocommerce-product-gallery { margin: 0; min-width: 0; }
.dz-single-product div.product .woocommerce-product-gallery__image img { border-radius: var(--dz-radius-sm); }
.dz-single-product div.product .summary { margin: 0; }
.dz-single-product .product_title { font-size: clamp(1.4rem, 2.6vw, 2rem); margin-bottom: 12px; }
.dz-single-product .woocommerce-product-rating { margin-bottom: 14px; }
.dz-single-product .summary .price { font-size: 1.8rem; margin: 6px 0 16px; }
.dz-single-product .summary .price del { font-size: 1.1rem; }
.dz-single-product .woocommerce-product-details__short-description { color: var(--dz-text); margin-bottom: 18px; }
.dz-single-product .cart { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 18px; }
.dz-single-product .quantity input.qty {
	width: 84px;
	text-align: center;
	padding: 12px 8px;
}
.dz-single-product .single_add_to_cart_button { padding: 13px 28px; font-size: 1rem; }
.dz-single-product .product_meta { font-size: 0.86rem; color: var(--dz-muted); border-top: 1px solid var(--dz-border); padding-top: 16px; }
.dz-single-product .product_meta > span { display: block; margin-bottom: 6px; }

/* Tabs, related & upsells span full width under the two-column top */
.dz-single-product .woocommerce-tabs,
.dz-single-product .upsells,
.dz-single-product .related { grid-column: 1 / -1; }
.dz-single-product .woocommerce-tabs { margin-top: 12px; }
.dz-single-product .woocommerce-tabs ul.tabs {
	display: flex;
	gap: 6px;
	list-style: none;
	margin: 0 0 18px;
	padding: 0;
	border-bottom: 1px solid var(--dz-border);
	flex-wrap: wrap;
}
.dz-single-product .woocommerce-tabs ul.tabs::before { display: none; }
.dz-single-product .woocommerce-tabs ul.tabs li {
	background: transparent;
	border: none;
	border-radius: 0;
	padding: 0;
	margin: 0;
}
.dz-single-product .woocommerce-tabs ul.tabs li::before,
.dz-single-product .woocommerce-tabs ul.tabs li::after { display: none; }
.dz-single-product .woocommerce-tabs ul.tabs li a {
	display: block;
	padding: 12px 18px;
	font-weight: 600;
	color: var(--dz-muted);
	border-bottom: 3px solid transparent;
}
.dz-single-product .woocommerce-tabs ul.tabs li.active a { color: var(--dz-accent-600); border-bottom-color: var(--dz-accent); }
.dz-single-product .related > h2,
.dz-single-product .upsells > h2 { margin: 36px 0 20px; }

/* ============================================================
 * Cart
 * ========================================================== */
.woocommerce table.shop_table {
	border: 1px solid var(--dz-border);
	border-radius: var(--dz-radius);
	border-collapse: separate;
	overflow: hidden;
	background: #fff;
}
.woocommerce table.shop_table th { background: var(--dz-navy); color: #fff; padding: 14px 16px; font-size: 0.85rem; }
.woocommerce table.shop_table td { padding: 16px; border-top: 1px solid var(--dz-border); }
/* Cart / Checkout / Account pages: drop the page "card" so Woo lays out full width. */
.dz-woo-page .dz-article { background: transparent; border: none; box-shadow: none; padding: 0; }
.dz-woo-page .dz-article > .dz-article__header { margin-bottom: 22px; }
.dz-woo-page .dz-article > .dz-article__header h1 { font-size: clamp(1.7rem, 3vw, 2.3rem); }

/* ---- Cart: items left, sticky totals right ---- */
.woocommerce-cart .woocommerce {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 340px;
	gap: 28px;
	align-items: start;
}
.woocommerce-cart form.woocommerce-cart-form { grid-column: 1; margin: 0; }
.woocommerce-cart table.cart img { width: 60px; height: auto; border-radius: 8px; }
.woocommerce-cart table.cart td.product-name a { font-weight: 600; color: var(--dz-heading); }
.woocommerce-cart table.cart td.product-name a:hover { color: var(--dz-accent-600); }
.woocommerce-cart table.cart td.actions { background: var(--dz-bg); }
.woocommerce-cart table.cart td.actions .coupon input.input-text { width: 200px; margin-right: 8px; }
.woocommerce-cart .cart-collaterals { grid-column: 2; width: auto; float: none; margin: 0; }
.woocommerce-cart .cart-collaterals .cart_totals {
	width: auto;
	float: none;
	position: sticky;
	top: 90px;
	background: #fff;
	border: 1px solid var(--dz-border);
	border-radius: var(--dz-radius);
	padding: 22px;
}
.woocommerce-cart .cart_totals h2 { margin-top: 0; }
.woocommerce-cart .cart_totals table { border: none; }
.woocommerce-cart .cart_totals table th,
.woocommerce-cart .cart_totals table td { background: transparent; color: var(--dz-text); border-top: 1px solid var(--dz-border); padding: 12px 0; }
.woocommerce-cart .cart_totals table th { text-align: left; font-weight: 600; }
.woocommerce-cart .cart_totals table td { text-align: right; }
.woocommerce-cart .cart_totals .order-total .amount { color: var(--dz-accent-600); font-size: 1.15rem; }
.woocommerce-cart .wc-proceed-to-checkout { padding-top: 16px; }
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button { display: block; width: 100%; text-align: center; padding: 14px; font-size: 1.05rem; }
.woocommerce-cart .cross-sells { display: none; }
.woocommerce a.remove {
	color: var(--dz-danger) !important;
	border: 1px solid var(--dz-border);
	border-radius: 50%;
	line-height: 22px;
	height: 24px;
	width: 24px;
}
.woocommerce a.remove:hover { background: var(--dz-danger) !important; color: #fff !important; }

/* ============================================================
 * Checkout: billing form left, sticky order summary right
 * ========================================================== */
.woocommerce-checkout form.checkout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 380px;
	gap: 0 32px;
	align-items: start;
}
.woocommerce-checkout #customer_details { grid-column: 1; grid-row: 1 / span 2; }
.woocommerce-checkout #customer_details.col2-set { display: block; }
.woocommerce-checkout #order_review_heading { grid-column: 2; grid-row: 1; margin: 0 0 14px; }
.woocommerce-checkout #order_review { grid-column: 2; grid-row: 2; position: sticky; top: 90px; }

.woocommerce-checkout .woocommerce-billing-fields,
.woocommerce-checkout .woocommerce-account-fields,
.woocommerce-checkout .woocommerce-shipping-fields,
.woocommerce-checkout .woocommerce-additional-fields {
	background: #fff;
	border: 1px solid var(--dz-border);
	border-radius: var(--dz-radius);
	padding: 24px;
	margin-bottom: 20px;
}
.woocommerce-checkout .woocommerce-billing-fields h3,
.woocommerce-checkout .woocommerce-additional-fields h3 { margin-top: 0; }
.woocommerce form .form-row label { display: block; margin-bottom: 6px; }

.woocommerce-checkout #order_review {
	background: #fff;
	border: 1px solid var(--dz-border);
	border-radius: var(--dz-radius);
	padding: 22px;
}
.woocommerce-checkout #order_review table.shop_table { border: none; }
.woocommerce-checkout #order_review table.shop_table th { background: transparent; color: var(--dz-heading); border-bottom: 1px solid var(--dz-border); padding: 12px 0; }
.woocommerce-checkout #order_review table.shop_table td { background: transparent; border-top: 1px solid var(--dz-border); padding: 12px 0; }
.woocommerce-checkout #order_review .order-total .amount { color: var(--dz-accent-600); font-size: 1.15rem; }
.woocommerce-checkout #payment { background: var(--dz-bg); border: 1px solid var(--dz-border); border-radius: var(--dz-radius-sm); margin-top: 16px; }
.woocommerce-checkout #payment ul.payment_methods { background: transparent; border: none; padding: 16px; margin: 0; }
.woocommerce-checkout #payment div.payment_box { background: #fff; border-radius: var(--dz-radius-sm); }
.woocommerce-checkout #payment div.form-row { padding: 16px; }
.woocommerce-checkout #payment div.place-order { padding: 0; }
.woocommerce #place_order { width: 100%; padding: 15px; font-size: 1.05rem; }

/* ============================================================
 * My account
 * ========================================================== */
.woocommerce-account .woocommerce {
	display: grid;
	grid-template-columns: 240px minmax(0, 1fr);
	gap: 32px;
	align-items: start;
}
.woocommerce-account .woocommerce-MyAccount-navigation {
	background: #fff;
	border: 1px solid var(--dz-border);
	border-radius: var(--dz-radius);
	padding: 10px;
	float: none;
	width: auto;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation li a {
	display: block;
	padding: 11px 14px;
	border-radius: var(--dz-radius-sm);
	color: var(--dz-text);
	font-weight: 500;
}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover { background: var(--dz-accent-050); color: var(--dz-accent-600); }
.woocommerce-account .woocommerce-MyAccount-content { float: none; width: auto; }
.woocommerce-account .u-columns.col2-set,
.woocommerce .col2-set { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.woocommerce form.login,
.woocommerce form.register {
	border: 1px solid var(--dz-border);
	border-radius: var(--dz-radius);
	padding: 24px;
}

/* ============================================================
 * Widgets (shop sidebar filters)
 * ========================================================== */
.dz-shop-sidebar .widget { margin: 0; }
.dz-shop-sidebar .price_slider_wrapper .ui-widget-content { background: var(--dz-border); }
.dz-shop-sidebar .ui-slider .ui-slider-range,
.dz-shop-sidebar .ui-slider .ui-slider-handle { background: var(--dz-accent); }

/* ---- Filter sidebar ---- */
.dz-filters { display: flex; flex-direction: column; gap: 18px; }
.dz-filter-form { display: flex; flex-direction: column; gap: 18px; margin: 0; }
.dz-filter-group {
	background: var(--dz-card);
	border: 1px solid var(--dz-border);
	border-radius: var(--dz-radius);
	padding: 18px;
}
.dz-filter-title { font-size: 0.95rem; margin: 0 0 14px; }
.dz-filter-cats { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.dz-filter-cats a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	padding: 8px 10px;
	border-radius: var(--dz-radius-sm);
	color: var(--dz-text);
	font-size: 0.9rem;
}
.dz-filter-cats a span { color: var(--dz-muted); font-size: 0.76rem; background: var(--dz-bg); padding: 1px 8px; border-radius: var(--dz-radius-pill); }
.dz-filter-cats a:hover,
.dz-filter-cats li.is-active a { background: var(--dz-accent-050); color: var(--dz-accent-600); }
.dz-filter-cats li.is-active a span { background: var(--dz-card); }
.dz-filter-price { display: flex; align-items: center; gap: 8px; }
.dz-filter-price input { width: 100%; padding: 9px 10px; }
.dz-filter-price span { color: var(--dz-muted); }
.dz-filter-check { display: flex; align-items: center; gap: 8px; font-weight: 500; cursor: pointer; }
.dz-filter-check input { width: auto; }
.dz-filter-actions { display: flex; flex-direction: column; gap: 10px; align-items: center; }
.dz-filter-reset { font-size: 0.85rem; color: var(--dz-muted); }
.dz-filter-reset:hover { color: var(--dz-danger); }

/* ============================================================
 * Responsive
 * ========================================================== */
@media (max-width: 1024px) {
	.dz-shop-layout.has-sidebar { grid-template-columns: 240px minmax(0, 1fr); }
	ul.products.columns-4,
	ul.products.columns-5,
	ul.products.columns-6 { --dz-cols: 3; }
}
@media (max-width: 860px) {
	.dz-single-product div.product { grid-template-columns: 1fr; gap: 24px; }
	.dz-shop-layout.has-sidebar { grid-template-columns: 1fr; }
	.woocommerce-account .woocommerce { grid-template-columns: 1fr; }
	.woocommerce .col2-set { grid-template-columns: 1fr; }

	/* Cart & checkout stack to one column */
	.woocommerce-cart .woocommerce { grid-template-columns: 1fr; }
	.woocommerce-cart .cart-collaterals,
	.woocommerce-cart form.woocommerce-cart-form { grid-column: 1; }
	.woocommerce-cart .cart-collaterals .cart_totals { position: static; }
	.woocommerce-checkout form.checkout { grid-template-columns: 1fr; }
	.woocommerce-checkout #customer_details,
	.woocommerce-checkout #order_review_heading,
	.woocommerce-checkout #order_review { grid-column: 1; grid-row: auto; position: static; }
}
@media (max-width: 720px) {
	ul.products,
	ul.products.columns-3,
	ul.products.columns-4,
	ul.products.columns-5,
	ul.products.columns-6 { --dz-cols: 2; }
	.dz-shop-toolbar { flex-direction: column; align-items: stretch; }
	.dz-shop-toolbar select { width: 100%; }
}
@media (max-width: 420px) {
	ul.products,
	ul.products.columns-2,
	ul.products.columns-3,
	ul.products.columns-4 { --dz-cols: 1; }
}
