/* ==========================================================================
   Kivo — WooCommerce styles
   ========================================================================== */

.woocommerce-breadcrumb {
	font-size: 0.75rem; letter-spacing: 0.08em; text-transform: uppercase;
	color: var(--kivo-muted); margin-bottom: 1.5rem;
}
.woocommerce-breadcrumb a { color: var(--kivo-muted); }
.woocommerce-breadcrumb a:hover { color: var(--kivo-ink); }

/* Shop layout wrapper */
.kivo-shop { padding-block: clamp(2rem, 5vw, 3.5rem); }
.kivo-shop__layout { display: block; }

.woocommerce-products-header { text-align: center; margin-bottom: 2.5rem; }
.woocommerce-products-header__title.page-title {
	font-family: var(--kivo-font-display); font-size: clamp(2rem, 4vw, 3rem);
}
.term-description { max-width: 60ch; margin: 0.75rem auto 0; color: var(--kivo-ink-soft); text-align: center; }

/* Result count + ordering toolbar */
.woocommerce-result-count { color: var(--kivo-muted); font-size: 0.85rem; margin: 0; }
.woocommerce-ordering select,
.kivo-shop select {
	font-family: inherit; padding: 0.5rem 2rem 0.5rem 0.75rem; border: 1px solid var(--kivo-border);
	background: #fff; font-size: 0.85rem; border-radius: var(--kivo-radius);
}
.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering { margin-bottom: 1.75rem; }

/* ---------- Product grid ---------- */
.woocommerce ul.products {
	display: grid; gap: 2rem clamp(1rem, 2.5vw, 2rem); margin: 0; padding: 0; list-style: none;
	grid-template-columns: repeat(3, 1fr);
}
.woocommerce ul.products.columns-2 { grid-template-columns: repeat(2, 1fr); }
.woocommerce ul.products.columns-4 { grid-template-columns: repeat(4, 1fr); }
.woocommerce ul.products li.product {
	width: auto !important; margin: 0 !important; float: none !important; text-align: left;
}

.kivo-product-thumb, .woocommerce ul.products li.product a img {
	position: relative; overflow: hidden;
}
.woocommerce ul.products li.product .kivo-product-thumb { display: block; aspect-ratio: 3/4; background: var(--kivo-cream); margin-bottom: 1rem; }
.woocommerce ul.products li.product img {
	width: 100%; height: 100%; object-fit: cover; margin: 0; transition: transform 0.7s ease, opacity var(--kivo-transition);
}
.woocommerce ul.products li.product:hover img { transform: scale(1.05); }

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--kivo-font-body); font-size: 0.95rem; font-weight: 400;
	letter-spacing: 0.02em; padding: 0; margin: 0 0 0.3rem; color: var(--kivo-ink);
}
.woocommerce ul.products li.product .price {
	color: var(--kivo-ink); font-size: 0.95rem; font-weight: 500;
}
.woocommerce ul.products li.product .price del { color: var(--kivo-muted); font-weight: 400; margin-right: 0.4rem; }
.woocommerce ul.products li.product .price ins { text-decoration: none; color: var(--kivo-sale); }

/* Sale / new badges */
.woocommerce span.onsale, .woocommerce ul.products li.product .onsale {
	position: absolute; top: 12px; left: 12px; z-index: 3; margin: 0;
	background: var(--kivo-ink); color: #fff; min-height: auto; min-width: auto;
	border-radius: var(--kivo-radius); padding: 0.3rem 0.7rem; line-height: 1;
	font-family: var(--kivo-font-body); font-size: 0.65rem; letter-spacing: 0.14em; text-transform: uppercase;
}

/* Add to cart on product cards */
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart {
	display: inline-block; margin-top: 0.75rem; background: transparent; color: var(--kivo-ink);
	border: 1px solid var(--kivo-ink); border-radius: var(--kivo-radius);
	font-family: var(--kivo-font-body); font-size: 0.72rem; letter-spacing: 0.14em;
	text-transform: uppercase; padding: 0.7em 1.4em; transition: all var(--kivo-transition);
}
.woocommerce ul.products li.product .button:hover { background: var(--kivo-ink); color: #fff; }
.woocommerce ul.products li.product .star-rating { font-size: 0.7rem; margin: 0.35rem 0; color: var(--kivo-star); }

/* ---------- Single product ---------- */
.single-product div.product {
	display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 5vw, 4rem);
	max-width: var(--kivo-container); margin-inline: auto; padding: clamp(2rem, 5vw, 3.5rem) var(--kivo-gutter);
}
.single-product div.product .woocommerce-product-gallery { margin: 0; }
.single-product div.product .summary { margin: 0; }
.single-product div.product .product_title {
	font-family: var(--kivo-font-display); font-size: clamp(1.9rem, 3.5vw, 2.6rem); margin: 0 0 0.5rem;
}
.single-product div.product p.price,
.single-product div.product span.price { font-size: 1.4rem; color: var(--kivo-ink); margin-bottom: 1.25rem; }
.single-product div.product p.price ins { text-decoration: none; color: var(--kivo-sale); }
.single-product .woocommerce-product-rating { margin-bottom: 1rem; }
.single-product .woocommerce-product-details__short-description { color: var(--kivo-ink-soft); line-height: 1.75; margin-bottom: 1.5rem; }

.single-product .quantity input.qty {
	width: 64px; border: 1px solid var(--kivo-border); padding: 0.75rem 0.5rem; text-align: center; font-family: inherit;
}
.single-product form.cart { display: flex; gap: 0.75rem; align-items: stretch; flex-wrap: wrap; margin-bottom: 1.75rem; }
.woocommerce div.product form.cart .button,
.single-product .single_add_to_cart_button {
	background: var(--kivo-ink); color: #fff; border: 0; border-radius: var(--kivo-radius);
	font-family: var(--kivo-font-body); letter-spacing: 0.14em; text-transform: uppercase;
	font-size: 0.8rem; padding: 0 2.4rem; flex: 1; min-height: 52px; transition: background var(--kivo-transition);
}
.single-product .single_add_to_cart_button:hover { background: var(--kivo-accent-dark); }

.single-product .product_meta { font-size: 0.82rem; color: var(--kivo-muted); border-top: 1px solid var(--kivo-border); padding-top: 1.25rem; }
.single-product .product_meta > span { display: block; margin-bottom: 0.35rem; }
.single-product .product_meta a { color: var(--kivo-ink); }

/* Variations */
.woocommerce div.product form.cart .variations { width: 100%; margin-bottom: 1rem; }
.woocommerce div.product form.cart .variations td, .woocommerce div.product form.cart .variations th { padding: 0.4rem 0; }
.woocommerce div.product form.cart .variations select {
	border: 1px solid var(--kivo-border); padding: 0.6rem 0.75rem; font-family: inherit;
}

/* Tabs */
.woocommerce-tabs { grid-column: 1 / -1; max-width: var(--kivo-container); margin: 2rem auto 0; padding-inline: var(--kivo-gutter); }
.woocommerce div.product .woocommerce-tabs ul.tabs {
	padding: 0; margin: 0 0 2rem; display: flex; gap: 2rem; border-bottom: 1px solid var(--kivo-border);
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li {
	background: none; border: 0; border-radius: 0; padding: 0 0 1rem; margin: 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	font-family: var(--kivo-font-body); font-size: 0.8rem; letter-spacing: 0.12em; text-transform: uppercase;
	color: var(--kivo-muted); padding: 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--kivo-ink); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { border-bottom: 2px solid var(--kivo-ink); }

/* Related products */
.related.products, .up-sells.upsells {
	grid-column: 1 / -1; max-width: var(--kivo-container); margin: 3rem auto 0; padding-inline: var(--kivo-gutter);
}
.related.products > h2, .up-sells > h2 { font-family: var(--kivo-font-display); text-align: center; margin-bottom: 2rem; }

/* ---------- Cart ---------- */
.woocommerce-cart .kivo-shop, .woocommerce-checkout .kivo-shop, .woocommerce-account .kivo-shop { max-width: var(--kivo-container); }
.woocommerce table.shop_table {
	border: 1px solid var(--kivo-border); border-radius: var(--kivo-radius); border-collapse: collapse;
}
.woocommerce table.shop_table th { font-family: var(--kivo-font-body); text-transform: uppercase; letter-spacing: 0.08em; font-size: 0.78rem; }
.woocommerce table.shop_table td, .woocommerce table.shop_table th { border-top: 1px solid var(--kivo-border); padding: 1rem; }
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce .cart .button, .woocommerce .cart input.button {
	background: var(--kivo-ink); color: #fff; border-radius: var(--kivo-radius);
	font-family: var(--kivo-font-body); letter-spacing: 0.12em; text-transform: uppercase; font-size: 0.78rem;
	padding: 0.85em 1.8em; transition: background var(--kivo-transition);
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover { background: var(--kivo-accent-dark); }
.woocommerce .button.alt, .woocommerce #respond input#submit.alt, .wc-block-components-button {
	background: var(--kivo-ink) !important;
}
.woocommerce .cart-collaterals .cart_totals, .woocommerce-checkout .woocommerce-checkout-review-order {
	background: var(--kivo-cream); padding: 1.75rem; border-radius: var(--kivo-radius);
}
.woocommerce .cart_totals h2, .woocommerce-checkout h3 { font-family: var(--kivo-font-display); }

/* Coupon / update */
.woocommerce .actions .coupon input { border: 1px solid var(--kivo-border); padding: 0.75rem 1rem; }

/* ---------- Checkout ---------- */
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select,
.woocommerce-checkout input, .woocommerce-checkout select, .woocommerce-checkout textarea {
	border: 1px solid var(--kivo-border) !important; border-radius: var(--kivo-radius); padding: 0.8rem 1rem; font-family: inherit;
}
.woocommerce form .form-row label { font-size: 0.85rem; letter-spacing: 0.02em; }
#add_payment_method #payment, .woocommerce-cart #payment, .woocommerce-checkout #payment { background: var(--kivo-cream); border-radius: var(--kivo-radius); }

/* ---------- Account ---------- */
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation li { border-bottom: 1px solid var(--kivo-border); }
.woocommerce-account .woocommerce-MyAccount-navigation li a { display: block; padding: 0.85rem 0; text-transform: uppercase; letter-spacing: 0.08em; font-size: 0.8rem; }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a { color: var(--kivo-accent-dark); }

/* Notices */
.woocommerce-message, .woocommerce-info, .woocommerce-error {
	border-top-color: var(--kivo-accent) !important; border-radius: var(--kivo-radius);
	font-size: 0.9rem;
}
.woocommerce-message::before, .woocommerce-info::before { color: var(--kivo-accent-dark); }

/* Widgets (filters) */
.widget_price_filter .price_slider_amount .button { font-size: 0.72rem; }
.widget_shopping_cart .buttons a { display: inline-block; margin-right: 0.5rem; }

/* Responsive */
@media (max-width: 900px) {
	.single-product div.product { grid-template-columns: 1fr; }
	.woocommerce ul.products, .woocommerce ul.products.columns-4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
	.woocommerce ul.products, .woocommerce ul.products.columns-3, .woocommerce ul.products.columns-4 { grid-template-columns: repeat(2, 1fr); gap: 1.25rem; }
	.single-product form.cart { flex-direction: column; }
	.single-product .single_add_to_cart_button { width: 100%; }
}
