/* =====================================================================
   KZT Product Designer — WooCommerce redesign (v1.1)
   Scoped by <body> classes: .kzt-pd (global), .kzt-pd-shop (archive),
   .kzt-pd-single (product), .kzt-pd-cart (cart/checkout).
   Buttons/CTAs use --kzt-pd-cta; accents/links/price use --kzt-pd-primary.
   ===================================================================== */

.kzt-pd {
	--kzt-pd-text: #1f2328;
	--kzt-pd-muted: #6b7280;
	--kzt-pd-line: #ececf0;
	--kzt-pd-bg-soft: #f6f6f8;
	--kzt-pd-shadow: 0 6px 22px rgba( 17, 24, 39, 0.06 );
	--kzt-pd-shadow-lg: 0 18px 44px rgba( 17, 24, 39, 0.14 );
}

.kzt-pd .woocommerce,
.kzt-pd .woocommerce-page {
	color: var( --kzt-pd-text );
}

.kzt-pd .woocommerce a {
	transition: color 0.2s ease, opacity 0.2s ease;
}

/* ---------- Buttons: secondary/generic = dark primary ---------- */
.kzt-pd .woocommerce a.button,
.kzt-pd .woocommerce button.button,
.kzt-pd .woocommerce input.button,
.kzt-pd .woocommerce #respond input#submit {
	background: var( --kzt-pd-primary );
	color: var( --kzt-pd-on-primary );
	border: 0;
	border-radius: 999px;
	font-weight: 700;
	letter-spacing: 0.01em;
	padding: 0.85em 1.7em;
	line-height: 1.2;
	text-shadow: none;
	box-shadow: 0 4px 14px rgba( 17, 24, 39, 0.10 );
	transition: transform 0.15s ease, box-shadow 0.2s ease, background 0.2s ease, filter 0.2s ease;
}

.kzt-pd .woocommerce a.button:hover,
.kzt-pd .woocommerce button.button:hover,
.kzt-pd .woocommerce input.button:hover,
.kzt-pd .woocommerce #respond input#submit:hover {
	background: var( --kzt-pd-primary-hover );
	transform: translateY( -2px );
	box-shadow: var( --kzt-pd-shadow-lg );
}

/* ---------- Buttons: primary CTAs = brand CTA colour ---------- */
.kzt-pd .woocommerce a.button.add_to_cart_button,
.kzt-pd .woocommerce a.button.product_type_variable,
.kzt-pd .woocommerce a.button.product_type_simple,
.kzt-pd .woocommerce button.single_add_to_cart_button,
.kzt-pd .woocommerce .single_add_to_cart_button.button,
.kzt-pd .woocommerce a.checkout-button,
.kzt-pd .woocommerce .wc-proceed-to-checkout a.checkout-button,
.kzt-pd .woocommerce #place_order,
.kzt-pd .woocommerce button.button.alt,
.kzt-pd .woocommerce input.button.alt,
.kzt-pd .kzt-pd-elementor .products a.button.add_to_cart_button {
	background: var( --kzt-pd-cta ) !important;
	color: var( --kzt-pd-on-cta ) !important;
	box-shadow: 0 6px 18px color-mix( in srgb, var( --kzt-pd-cta ) 40%, transparent );
}

.kzt-pd .woocommerce a.button.add_to_cart_button:hover,
.kzt-pd .woocommerce a.button.product_type_variable:hover,
.kzt-pd .woocommerce a.button.product_type_simple:hover,
.kzt-pd .woocommerce button.single_add_to_cart_button:hover,
.kzt-pd .woocommerce .single_add_to_cart_button.button:hover,
.kzt-pd .woocommerce a.checkout-button:hover,
.kzt-pd .woocommerce .wc-proceed-to-checkout a.checkout-button:hover,
.kzt-pd .woocommerce #place_order:hover,
.kzt-pd .woocommerce button.button.alt:hover,
.kzt-pd .woocommerce input.button.alt:hover,
.kzt-pd .kzt-pd-elementor .products a.button.add_to_cart_button:hover {
	background: var( --kzt-pd-cta-hover ) !important;
	transform: translateY( -2px );
}

.kzt-pd .woocommerce a.button:focus-visible,
.kzt-pd .woocommerce button.button:focus-visible,
.kzt-pd .woocommerce input.button:focus-visible {
	outline: 3px solid var( --kzt-pd-primary-soft );
	outline-offset: 2px;
}

.kzt-pd .woocommerce a.added_to_cart {
	display: inline-block;
	margin-top: 8px;
	color: var( --kzt-pd-primary );
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* ---------- Notices ---------- */
.kzt-pd .woocommerce-message,
.kzt-pd .woocommerce-info,
.kzt-pd .woocommerce-error {
	border-radius: var( --kzt-pd-radius );
	border: 1px solid var( --kzt-pd-line );
	border-top: 3px solid var( --kzt-pd-cta );
	background: #fff;
	box-shadow: var( --kzt-pd-shadow );
	padding: 1em 1.4em;
}

.kzt-pd .woocommerce-error {
	border-top-color: var( --kzt-pd-sale );
}

.kzt-pd .woocommerce-message::before,
.kzt-pd .woocommerce-info::before {
	color: var( --kzt-pd-cta );
}

/* ---------- Result count + ordering ---------- */
.kzt-pd .woocommerce .woocommerce-result-count {
	color: var( --kzt-pd-muted );
	font-size: 0.9rem;
	margin-top: 6px;
}

.kzt-pd .woocommerce .woocommerce-ordering select,
.kzt-pd .woocommerce-ordering select {
	border: 1px solid var( --kzt-pd-line );
	border-radius: 999px;
	padding: 0.55em 2.4em 0.55em 1.1em;
	background: #fff;
	font-weight: 600;
	color: var( --kzt-pd-text );
	cursor: pointer;
}

/* =====================================================================
   SHOP / ARCHIVE / PRODUCT GALLERY
   ===================================================================== */
.kzt-pd-shop .woocommerce ul.products,
.kzt-pd-shop .woocommerce-page ul.products,
.kzt-pd-elementor .products {
	display: grid !important;
	grid-template-columns: repeat( auto-fill, minmax( 230px, 1fr ) );
	gap: 26px;
	margin: 0 0 3em;
	padding: 0;
	list-style: none;
}

.kzt-pd-shop .woocommerce ul.products li.product,
.kzt-pd-shop .woocommerce-page ul.products li.product,
.kzt-pd-elementor .products li.product {
	width: auto !important;
	margin: 0 !important;
	float: none !important;
	clear: none !important;
	display: flex !important;
	flex-direction: column;
	position: relative;
	background: #fff;
	border: 1px solid var( --kzt-pd-line );
	border-radius: var( --kzt-pd-radius );
	padding: 12px 12px 18px;
	text-align: left;
	transition: transform 0.35s cubic-bezier( 0.2, 0.8, 0.2, 1 ), box-shadow 0.35s ease, border-color 0.35s ease;
}

.kzt-pd-shop .woocommerce ul.products li.product:hover,
.kzt-pd-elementor .products li.product:hover {
	transform: translateY( -6px );
	box-shadow: var( --kzt-pd-shadow-lg );
	border-color: transparent;
}

.kzt-pd-shop .woocommerce ul.products li.product a img,
.kzt-pd-elementor .products li.product a img {
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	margin: 0 0 14px;
	border-radius: var( --kzt-pd-radius-sm );
	background: var( --kzt-pd-bg-soft );
	transition: transform 0.5s cubic-bezier( 0.2, 0.8, 0.2, 1 );
}

.kzt-pd-shop .woocommerce ul.products li.product:hover a img,
.kzt-pd-elementor .products li.product:hover a img {
	transform: scale( 1.035 );
}

.kzt-pd-shop .woocommerce ul.products li.product a,
.kzt-pd-elementor .products li.product a {
	overflow: hidden;
	border-radius: var( --kzt-pd-radius-sm );
}

.kzt-pd-shop .woocommerce ul.products li.product .woocommerce-loop-product__title,
.kzt-pd-elementor .products li.product .woocommerce-loop-product__title {
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.35;
	color: var( --kzt-pd-text );
	padding: 4px 2px 0;
	margin: 0;
}

.kzt-pd-shop .woocommerce ul.products li.product .star-rating,
.kzt-pd-elementor .products li.product .star-rating {
	margin: 8px 2px 0;
	font-size: 0.82em;
	color: var( --kzt-pd-primary );
}

.kzt-pd-shop .woocommerce ul.products li.product .price,
.kzt-pd-elementor .products li.product .price {
	color: var( --kzt-pd-text );
	font-weight: 700;
	font-size: 1.02rem;
	margin: 8px 2px 14px;
}

.kzt-pd-shop .woocommerce ul.products li.product .price del,
.kzt-pd-elementor .products li.product .price del {
	color: var( --kzt-pd-muted );
	font-weight: 400;
	opacity: 0.7;
	margin-right: 6px;
}

.kzt-pd-shop .woocommerce ul.products li.product .price ins,
.kzt-pd-elementor .products li.product .price ins {
	text-decoration: none;
	color: var( --kzt-pd-sale );
}

.kzt-pd-shop .woocommerce ul.products li.product .button,
.kzt-pd-elementor .products li.product .button {
	margin-top: auto !important;
	align-self: flex-start;
	padding: 0.7em 1.4em !important;
	font-size: 0.9rem;
}

/* Sale badge → pill. */
.kzt-pd .woocommerce span.onsale {
	position: absolute;
	top: 18px;
	left: 18px;
	right: auto;
	margin: 0;
	min-height: 0;
	min-width: 0;
	line-height: 1;
	padding: 0.42em 0.8em;
	border-radius: 999px;
	background: var( --kzt-pd-sale );
	color: var( --kzt-pd-on-sale );
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	box-shadow: 0 4px 12px rgba( 0, 0, 0, 0.15 );
}

/* =====================================================================
   SINGLE PRODUCT PAGE (Jumia-inspired)
   ===================================================================== */
.kzt-pd-single .woocommerce div.product {
	display: flex;
	flex-wrap: wrap;
	gap: 48px;
	margin-top: 8px;
}

.kzt-pd-single .woocommerce div.product > .onsale {
	top: 16px;
	left: 16px;
}

.kzt-pd-single .woocommerce div.product div.images {
	flex: 1 1 46%;
	min-width: 300px;
	margin: 0;
	float: none;
	width: auto;
	position: relative;
}

.kzt-pd-single .woocommerce div.product div.summary {
	flex: 1 1 44%;
	min-width: 300px;
	margin: 0;
	float: none;
	width: auto;
}

.kzt-pd-single .woocommerce-product-gallery {
	position: relative;
}

.kzt-pd-single .woocommerce-product-gallery__image img,
.kzt-pd-single .woocommerce div.product div.images img {
	border-radius: var( --kzt-pd-radius );
	background: var( --kzt-pd-bg-soft );
}

.kzt-pd-single .flex-control-thumbs {
	margin-top: 14px !important;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.kzt-pd-single .flex-control-thumbs li {
	width: 76px !important;
	margin: 0 !important;
}

.kzt-pd-single .flex-control-thumbs img {
	border-radius: var( --kzt-pd-radius-sm );
	border: 2px solid transparent;
	opacity: 0.6;
	transition: opacity 0.2s ease, border-color 0.2s ease;
}

.kzt-pd-single .flex-control-thumbs img:hover,
.kzt-pd-single .flex-control-thumbs img.flex-active {
	opacity: 1;
	border-color: var( --kzt-pd-primary );
}

.kzt-pd-single .woocommerce-product-gallery__trigger {
	background: rgba( 255, 255, 255, 0.9 );
	border-radius: 999px;
	box-shadow: var( --kzt-pd-shadow );
}

.kzt-pd-single .woocommerce div.product .product_title {
	font-size: clamp( 1.55rem, 3vw, 2.2rem );
	font-weight: 800;
	line-height: 1.15;
	letter-spacing: -0.01em;
	margin: 0 0 12px;
	color: var( --kzt-pd-text );
}

.kzt-pd-single .woocommerce div.product .woocommerce-product-rating {
	margin-bottom: 14px;
}

.kzt-pd-single .woocommerce div.product .woocommerce-product-rating .star-rating {
	color: var( --kzt-pd-primary );
}

/* Price block with a Jumia-style divider under it. */
.kzt-pd-single .woocommerce div.product p.price,
.kzt-pd-single .woocommerce div.product > .summary .price {
	font-size: 1.7rem;
	font-weight: 800;
	color: var( --kzt-pd-text );
	margin: 0 0 16px;
	padding-bottom: 16px;
	border-bottom: 1px solid var( --kzt-pd-line );
}

.kzt-pd-single .woocommerce div.product p.price del {
	color: var( --kzt-pd-muted );
	font-weight: 400;
	font-size: 1.1rem;
	opacity: 0.7;
	margin-right: 8px;
}

.kzt-pd-single .woocommerce div.product p.price ins {
	text-decoration: none;
	color: var( --kzt-pd-sale );
}

.kzt-pd-single .woocommerce div.product .woocommerce-product-details__short-description {
	color: var( --kzt-pd-muted );
	font-size: 1.02rem;
	line-height: 1.65;
	margin-bottom: 22px;
}

.kzt-pd-single .woocommerce div.product .woocommerce-product-details__short-description ul {
	padding-left: 1.1em;
}

.kzt-pd-single .woocommerce div.product .woocommerce-product-details__short-description li {
	margin-bottom: 6px;
}

/* Add-to-cart form. */
.kzt-pd-single .woocommerce div.product form.cart {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	margin: 8px 0 22px;
	padding: 0;
	border: 0;
}

.kzt-pd-single .woocommerce div.product form.cart .quantity {
	margin: 0;
}

.kzt-pd-single .woocommerce .quantity {
	display: inline-flex;
	align-items: center;
	border: 1px solid var( --kzt-pd-line );
	border-radius: 999px;
	overflow: hidden;
	background: #fff;
}

.kzt-pd-single .woocommerce .quantity input.qty {
	width: 62px;
	height: 52px;
	border: 0;
	background: transparent;
	text-align: center;
	font-weight: 700;
	font-size: 1rem;
	color: var( --kzt-pd-text );
	-moz-appearance: textfield;
}

.kzt-pd-single .woocommerce .quantity input.qty::-webkit-outer-spin-button,
.kzt-pd-single .woocommerce .quantity input.qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.kzt-pd-single .woocommerce div.product form.cart .single_add_to_cart_button {
	flex: 1 1 auto;
	min-width: 200px;
	height: 52px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 1rem !important;
	padding: 0 2em !important;
}

.kzt-pd-single .woocommerce div.product form.cart .variations {
	width: 100%;
	margin-bottom: 8px;
	border: 0;
}

.kzt-pd-single .woocommerce div.product form.cart .variations td,
.kzt-pd-single .woocommerce div.product form.cart .variations th {
	border: 0;
	padding: 8px 0;
}

.kzt-pd-single .woocommerce div.product form.cart .variations select {
	border: 1px solid var( --kzt-pd-line );
	border-radius: 10px;
	padding: 0.7em 1em;
	background: #fff;
	min-width: 200px;
}

.kzt-pd-single .woocommerce div.product .reset_variations {
	color: var( --kzt-pd-muted );
}

.kzt-pd-single .woocommerce div.product .product_meta {
	font-size: 0.88rem;
	color: var( --kzt-pd-muted );
	border-top: 1px solid var( --kzt-pd-line );
	padding-top: 18px;
	margin-top: 4px;
}

.kzt-pd-single .woocommerce div.product .product_meta > span {
	display: block;
	margin-bottom: 6px;
}

.kzt-pd-single .woocommerce div.product .product_meta a {
	color: var( --kzt-pd-primary );
}

/* Breadcrumb. */
.kzt-pd .woocommerce .woocommerce-breadcrumb {
	font-size: 0.85rem;
	color: var( --kzt-pd-muted );
	margin-bottom: 22px;
}

.kzt-pd .woocommerce .woocommerce-breadcrumb a {
	color: var( --kzt-pd-muted );
}

.kzt-pd .woocommerce .woocommerce-breadcrumb a:hover {
	color: var( --kzt-pd-primary );
}

/* ---------- Delivery / trust box (Jumia-style) ---------- */
.kzt-pd-delivery {
	border: 1px solid var( --kzt-pd-line );
	border-radius: var( --kzt-pd-radius );
	background: #fff;
	padding: 6px 16px;
	margin: 6px 0 20px;
	box-shadow: var( --kzt-pd-shadow );
}

.kzt-pd-delivery__row {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	padding: 11px 0;
	border-top: 1px solid var( --kzt-pd-line );
	font-size: 0.95rem;
	color: var( --kzt-pd-text );
}

.kzt-pd-delivery__row:first-child {
	border-top: 0;
}

.kzt-pd-delivery__ic {
	flex: 0 0 auto;
	width: 20px !important;
	height: 20px !important;
	margin-top: 1px;
	color: var( --kzt-pd-cta );
	fill: var( --kzt-pd-cta ) !important;
	stroke: none !important;
	display: inline-block !important;
}

/* ---------- Watch video button ---------- */
.kzt-pd-watchvideo {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 18px;
	padding: 0.6em 1.1em;
	border: 1px solid var( --kzt-pd-line );
	border-radius: 999px;
	background: #fff;
	color: var( --kzt-pd-text );
	font-weight: 700;
	font-size: 0.9rem;
	cursor: pointer;
	transition: border-color 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease;
}

.kzt-pd-watchvideo:hover {
	border-color: var( --kzt-pd-cta );
	transform: translateY( -1px );
	box-shadow: var( --kzt-pd-shadow );
}

.kzt-pd-watchvideo__ic {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	border-radius: 999px;
	background: var( --kzt-pd-cta );
	color: var( --kzt-pd-on-cta );
	font-size: 0.6rem;
	padding-left: 2px;
}

/* ---------- Gallery play badge ---------- */
.kzt-pd-galleryvideo {
	position: absolute;
	z-index: 6;
	left: 14px;
	bottom: 14px;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 0.5em 0.9em 0.5em 0.55em;
	border: 0;
	border-radius: 999px;
	background: rgba( 17, 24, 39, 0.82 );
	color: #fff;
	font-weight: 700;
	font-size: 0.82rem;
	cursor: pointer;
	-webkit-backdrop-filter: blur( 6px );
	backdrop-filter: blur( 6px );
	box-shadow: 0 6px 18px rgba( 0, 0, 0, 0.25 );
	transition: transform 0.15s ease, background 0.2s ease;
}

.kzt-pd-galleryvideo:hover {
	transform: translateY( -1px );
	background: rgba( 17, 24, 39, 0.94 );
}

.kzt-pd-galleryvideo__ic {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	border-radius: 999px;
	background: var( --kzt-pd-cta );
	color: var( --kzt-pd-on-cta );
	font-size: 0.62rem;
	padding-left: 2px;
}

/* ---------- Tabs ---------- */
.kzt-pd-single .woocommerce div.product .woocommerce-tabs {
	margin-top: 56px;
}

.kzt-pd-single .woocommerce div.product .woocommerce-tabs ul.tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	padding: 0;
	margin: 0 0 24px;
	border-bottom: 1px solid var( --kzt-pd-line );
}

.kzt-pd-single .woocommerce div.product .woocommerce-tabs ul.tabs::before {
	display: none;
}

.kzt-pd-single .woocommerce div.product .woocommerce-tabs ul.tabs li {
	background: transparent;
	border: 0;
	border-radius: 0;
	margin: 0;
	padding: 0;
}

.kzt-pd-single .woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.kzt-pd-single .woocommerce div.product .woocommerce-tabs ul.tabs li::after {
	display: none;
}

.kzt-pd-single .woocommerce div.product .woocommerce-tabs ul.tabs li a {
	display: block;
	padding: 12px 18px;
	font-weight: 700;
	color: var( --kzt-pd-muted );
	border-bottom: 2px solid transparent;
	margin-bottom: -1px;
}

.kzt-pd-single .woocommerce div.product .woocommerce-tabs ul.tabs li.active a,
.kzt-pd-single .woocommerce div.product .woocommerce-tabs ul.tabs li a:hover {
	color: var( --kzt-pd-primary );
	border-bottom-color: var( --kzt-pd-cta );
}

.kzt-pd-single .woocommerce div.product .woocommerce-Tabs-panel h2 {
	font-weight: 800;
}

/* ---------- Video tab facade ---------- */
.kzt-pd-videotab {
	max-width: 860px;
}

.kzt-pd-videotab__facade {
	position: relative;
	aspect-ratio: 16 / 9;
	border-radius: var( --kzt-pd-radius );
	overflow: hidden;
	cursor: pointer;
	background: #0b0b0b center / cover no-repeat;
}

.kzt-pd-videotab__facade::after {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba( 0, 0, 0, 0.15 );
	transition: background 0.2s ease;
}

.kzt-pd-videotab__facade:hover::after {
	background: rgba( 0, 0, 0, 0.28 );
}

.kzt-pd-videotab__play {
	position: absolute;
	z-index: 2;
	top: 50%;
	left: 50%;
	transform: translate( -50%, -50% );
	width: 68px;
	height: 68px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 999px;
	background: var( --kzt-pd-cta );
	color: var( --kzt-pd-on-cta );
	font-size: 1.2rem;
	padding-left: 5px;
	box-shadow: 0 8px 24px rgba( 0, 0, 0, 0.35 );
}

.kzt-pd-videotab__player {
	width: 100%;
	aspect-ratio: 16 / 9;
	border: 0;
	border-radius: var( --kzt-pd-radius );
	display: block;
	background: #000;
}

/* ---------- Video modal ---------- */
.kzt-pd-videomodal {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: none;
	align-items: center;
	justify-content: center;
	padding: 20px;
	background: rgba( 0, 0, 0, 0.82 );
}

.kzt-pd-videomodal.is-open {
	display: flex;
}

.kzt-pd-videomodal__box {
	width: min( 960px, 100% );
	aspect-ratio: 16 / 9;
	background: #000;
	border-radius: 12px;
	overflow: hidden;
	position: relative;
	box-shadow: 0 30px 80px rgba( 0, 0, 0, 0.5 );
}

.kzt-pd-videomodal__box iframe,
.kzt-pd-videomodal__box video {
	width: 100%;
	height: 100%;
	border: 0;
	display: block;
}

.kzt-pd-videomodal__close {
	position: absolute;
	top: 18px;
	right: 20px;
	width: 42px;
	height: 42px;
	border: 0;
	border-radius: 999px;
	background: rgba( 255, 255, 255, 0.15 );
	color: #fff;
	font-size: 1.6rem;
	line-height: 1;
	cursor: pointer;
	transition: background 0.2s ease;
}

.kzt-pd-videomodal__close:hover {
	background: rgba( 255, 255, 255, 0.28 );
}

/* ---------- Related / up-sells — slider-safe spacing ----------
   KuteShop renders these as a slider (note the arrows), so we must NOT
   force a grid on them. Instead we add a per-item gutter with padding,
   which spaces the items whether they are in a slider OR a plain grid.
   box-sizing keeps the item from overflowing the slider's set width. */
.kzt-pd-single .related.products,
.kzt-pd-single .upsells.products {
	margin-top: 60px;
	padding-top: 34px;
	border-top: 1px solid var( --kzt-pd-line );
	clear: both;
}

.kzt-pd-single .related.products > h2,
.kzt-pd-single .upsells.products > h2 {
	font-size: 1.4rem;
	font-weight: 800;
	margin-bottom: 24px;
}

.kzt-pd-single .related.products li.product,
.kzt-pd-single .upsells.products li.product {
	box-sizing: border-box !important;
	padding: 0 14px !important;
	margin-bottom: 0 !important;
}

.kzt-pd-single .related.products li.product img,
.kzt-pd-single .upsells.products li.product img {
	border-radius: var( --kzt-pd-radius-sm );
}

/* =====================================================================
   CART & CHECKOUT
   ===================================================================== */
.kzt-pd-cart .woocommerce table.shop_table {
	border: 1px solid var( --kzt-pd-line );
	border-radius: var( --kzt-pd-radius );
	border-collapse: separate;
	border-spacing: 0;
	overflow: hidden;
}

.kzt-pd-cart .woocommerce table.shop_table thead th {
	background: var( --kzt-pd-bg-soft );
	border: 0;
	font-weight: 700;
	text-transform: uppercase;
	font-size: 0.78rem;
	letter-spacing: 0.04em;
	color: var( --kzt-pd-muted );
}

.kzt-pd-cart .woocommerce table.shop_table td,
.kzt-pd-cart .woocommerce table.shop_table th {
	border-top: 1px solid var( --kzt-pd-line );
}

.kzt-pd-cart .woocommerce table.cart img {
	border-radius: var( --kzt-pd-radius-sm );
	width: 68px;
}

.kzt-pd-cart .woocommerce .cart .product-remove a.remove {
	color: var( --kzt-pd-sale ) !important;
	border: 1px solid var( --kzt-pd-line );
	background: #fff !important;
}

/* ---- Cart quantity stepper — fixed & touch-friendly (mobile too) ---- */
.kzt-pd-cart .woocommerce .quantity,
.kzt-pd-cart .woocommerce td.product-quantity .quantity {
	display: inline-flex !important;
	align-items: center;
	width: auto !important;
	max-width: none !important;
	height: auto !important;
	padding: 0 !important;
	border: 1px solid var( --kzt-pd-line ) !important;
	border-radius: 999px !important;
	background: #fff;
	overflow: hidden;
}

.kzt-pd-cart .woocommerce .quantity input.qty {
	width: 48px !important;
	height: 44px !important;
	min-width: 48px;
	border: 0 !important;
	background: transparent !important;
	text-align: center;
	font-weight: 700;
	font-size: 1rem;
	color: var( --kzt-pd-text );
	padding: 0 !important;
	margin: 0 !important;
	box-shadow: none !important;
	-moz-appearance: textfield;
}

.kzt-pd-cart .woocommerce .quantity input.qty::-webkit-outer-spin-button,
.kzt-pd-cart .woocommerce .quantity input.qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.kzt-pd-cart .woocommerce .quantity .plus,
.kzt-pd-cart .woocommerce .quantity .minus,
.kzt-pd-cart .woocommerce .quantity .increase,
.kzt-pd-cart .woocommerce .quantity .decrease,
.kzt-pd-cart .woocommerce .quantity .plus.button,
.kzt-pd-cart .woocommerce .quantity .minus.button,
.kzt-pd-cart .woocommerce .quantity button,
.kzt-pd-cart .woocommerce .quantity .qib-button {
	width: 44px !important;
	height: 44px !important;
	min-width: 44px !important;
	flex: 0 0 44px;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: var( --kzt-pd-bg-soft ) !important;
	color: var( --kzt-pd-text ) !important;
	font-size: 1.25rem !important;
	font-weight: 700;
	line-height: 1 !important;
	cursor: pointer;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	box-shadow: none !important;
	text-shadow: none !important;
	transform: none !important;
}

.kzt-pd-cart .woocommerce .quantity .plus:hover,
.kzt-pd-cart .woocommerce .quantity .minus:hover,
.kzt-pd-cart .woocommerce .quantity button:hover {
	background: var( --kzt-pd-line ) !important;
	color: var( --kzt-pd-text ) !important;
}

/* Undo any theme attempt to make the whole stepper a circle. */
.kzt-pd-cart .woocommerce td.product-quantity {
	min-width: 150px;
}

.kzt-pd-cart .woocommerce .cart-collaterals .cart_totals,
.kzt-pd-cart .woocommerce-cart .cart-collaterals .cart_totals {
	background: #fff;
	border: 1px solid var( --kzt-pd-line );
	border-radius: var( --kzt-pd-radius );
	padding: 22px 24px;
	box-shadow: var( --kzt-pd-shadow );
}

.kzt-pd-cart .woocommerce .cart_totals h2 {
	font-weight: 800;
	margin-top: 0;
}

.kzt-pd-cart .woocommerce .wc-proceed-to-checkout a.checkout-button {
	width: 100%;
	text-align: center;
	font-size: 1.05rem !important;
	padding: 1em 1.5em !important;
}

.kzt-pd-cart .woocommerce form .form-row input.input-text,
.kzt-pd-cart .woocommerce form .form-row textarea,
.kzt-pd-cart .woocommerce form .form-row select,
.kzt-pd-cart .woocommerce .select2-container .select2-selection {
	border: 1px solid var( --kzt-pd-line );
	border-radius: 10px;
	padding: 0.7em 0.9em;
	min-height: 46px;
	background: #fff;
}

.kzt-pd-cart .woocommerce form .form-row input.input-text:focus,
.kzt-pd-cart .woocommerce form .form-row textarea:focus,
.kzt-pd-cart .woocommerce form .form-row select:focus {
	border-color: var( --kzt-pd-primary );
	outline: 3px solid var( --kzt-pd-primary-soft );
	outline-offset: 1px;
}

.kzt-pd-cart .woocommerce #order_review,
.kzt-pd-cart .woocommerce .woocommerce-checkout-review-order {
	background: #fff;
	border: 1px solid var( --kzt-pd-line );
	border-radius: var( --kzt-pd-radius );
	padding: 22px 24px;
	box-shadow: var( --kzt-pd-shadow );
}

/* =====================================================================
   ELEMENTOR — KZT Product Grid
   ===================================================================== */
.kzt-pd-elementor .products {
	grid-template-columns: repeat( var( --kzt-cols, 4 ), 1fr ) !important;
}

/* =====================================================================
   RESPONSIVE
   ===================================================================== */
@media ( max-width: 782px ) {
	.kzt-pd-shop .woocommerce ul.products,
	.kzt-pd-shop .woocommerce-page ul.products {
		grid-template-columns: repeat( 2, 1fr ) !important;
		gap: 14px;
	}

	.kzt-pd-shop .woocommerce ul.products li.product {
		padding: 8px 8px 14px;
	}

	.kzt-pd-shop .woocommerce ul.products li.product .woocommerce-loop-product__title {
		font-size: 0.9rem;
	}

	.kzt-pd-shop .woocommerce ul.products li.product .button {
		width: 100%;
		text-align: center;
		align-self: stretch;
	}

	.kzt-pd-single .woocommerce div.product {
		gap: 26px;
	}

	/* Jumia-style full-width CTA on mobile. */
	.kzt-pd-single .woocommerce div.product form.cart .single_add_to_cart_button {
		flex: 1 1 100%;
		width: 100%;
		min-width: 0;
	}

	.kzt-pd-single .related.products li.product,
	.kzt-pd-single .upsells.products li.product {
		padding: 0 8px !important;
	}

	body.kzt-pd-cartbar-on {
		padding-bottom: 76px;
	}
}

@media ( max-width: 420px ) {
	.kzt-pd-shop .woocommerce ul.products,
	.kzt-pd-shop .woocommerce-page ul.products {
		grid-template-columns: 1fr;
	}
}
