/* ==========================================================================
   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 !important; gap: 2rem clamp(1rem, 2.5vw, 2rem); margin: 0; padding: 0; list-style: none;
	width: 100%; justify-content: stretch;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}
.woocommerce ul.products.columns-1 { grid-template-columns: minmax(0, 1fr); }
.woocommerce ul.products.columns-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.woocommerce ul.products.columns-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.woocommerce ul.products li.product,
.woocommerce ul.products li.product:first-child {
	width: auto !important; max-width: none !important; margin: 0 !important;
	float: none !important; clear: none !important; text-align: left;
}
/* Guard: never leave an empty leading track / right-align the grid. */
.woocommerce ul.products::before,
.woocommerce ul.products::after { content: none !important; display: none !important; }

/* Portrait product cards — image fills the 3:4 rectangle tightly (no cream gap). */
.woocommerce ul.products li.product .kivo-product-thumb {
	display: block; position: relative; overflow: hidden;
	aspect-ratio: 3 / 4; background: var(--kivo-cream); margin-bottom: 1rem;
}
.woocommerce ul.products li.product .kivo-product-thumb img,
.woocommerce ul.products li.product a img,
.woocommerce ul.products li.product img {
	position: absolute; inset: 0; width: 100%; height: 100%;
	object-fit: cover; object-position: center top; margin: 0;
	transition: transform 0.7s ease, opacity var(--kivo-transition);
}
.woocommerce ul.products li.product:hover .kivo-product-thumb img,
.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: minmax(0, 1.08fr) minmax(0, 1fr); gap: clamp(2rem, 4vw, 3.5rem);
	max-width: 1180px; margin-inline: auto;
	align-items: start;
}
/* Neutralise WooCommerce's default float + 48% width so each column fills its grid cell. */
.single-product div.product .woocommerce-product-gallery,
.single-product div.product .summary,
.single-product div.product .summary.entry-summary {
	width: 100% !important; float: none !important; margin: 0 !important; clear: none;
}
.single-product div.product .woocommerce-product-gallery img { width: 100%; }

/* ---------- Vertical thumbnails down the right side of the main image ----------
   The rail is absolutely positioned so it exactly matches the main image height
   and scrolls internally instead of spilling below it. The main image reserves
   space on the right via margin so the two never overlap. */
@media (min-width: 768px) {
	.single-product div.product .woocommerce-product-gallery {
		display: flex; align-items: flex-start; gap: 1rem; position: relative;
	}
	/* Main image column. */
	.single-product div.product .woocommerce-product-gallery .flex-viewport,
	.single-product div.product .woocommerce-product-gallery > .woocommerce-product-gallery__wrapper {
		order: 1; flex: 1 1 auto; min-width: 0; margin: 0;
	}
	/* Rail: max-height is synced to the main image by JS so it scrolls internally. */
	.single-product div.product .woocommerce-product-gallery .flex-control-thumbs {
		order: 2; flex: 0 0 96px; width: 96px; position: static !important;
		display: flex !important; flex-direction: column; gap: 0.7rem;
		margin: 0; padding: 0; list-style: none;
		max-height: 620px;
		overflow-x: hidden !important; overflow-y: auto !important;
		overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: var(--kivo-border) transparent;
	}
	/* Always-visible thin scrollbar so it's clear the rail scrolls. */
	.single-product div.product .woocommerce-product-gallery .flex-control-thumbs::-webkit-scrollbar { width: 6px; }
	.single-product div.product .woocommerce-product-gallery .flex-control-thumbs::-webkit-scrollbar-thumb {
		background: var(--kivo-border); border-radius: 6px;
	}
	.single-product div.product .woocommerce-product-gallery .flex-control-thumbs::-webkit-scrollbar-track { background: transparent; }
	/* Override flexslider's inline horizontal widths so each thumb fills the rail. */
	.single-product div.product .woocommerce-product-gallery .flex-control-thumbs li {
		width: 100% !important; margin: 0 !important; float: none !important; display: block; flex: 0 0 auto;
	}
	.single-product div.product .woocommerce-product-gallery .flex-control-thumbs img {
		width: 100% !important; height: auto !important; aspect-ratio: 3 / 4; object-fit: cover;
		display: block; cursor: pointer; opacity: 0.55; transition: opacity var(--kivo-transition);
	}
	.single-product div.product .woocommerce-product-gallery .flex-control-thumbs img.flex-active,
	.single-product div.product .woocommerce-product-gallery .flex-control-thumbs img:hover { opacity: 1; }
	/* Keep the zoom trigger over the main image, not the rail. */
	.single-product div.product .woocommerce-product-gallery__trigger { right: 124px; }
}

/* Tabs, related & upsells are full-width rows under the two columns — make sure
   nothing above can overlap them and they always start on their own line. */
.single-product div.product .woocommerce-tabs,
.single-product div.product .related.products,
.single-product div.product .up-sells.upsells {
	grid-column: 1 / -1;
	clear: both;
	position: relative;
	z-index: 1;
}
/* Left-align the buy column (title, price, meta) — fashion-store standard. */
.single-product div.product .summary,
.single-product div.product .summary.entry-summary { text-align: left; }
.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;
	text-align: left;
}
.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; }

/* ---------- PDP enhancements ---------- */

/* Size-guide trigger */
.kivo-size-guide-trigger {
	background: none; border: 0; padding: 0; margin: 0 0 0.75rem; cursor: pointer;
	font-family: var(--kivo-font-body); font-size: 0.75rem; letter-spacing: 0.1em; text-transform: uppercase;
	color: var(--kivo-ink); border-bottom: 1px solid var(--kivo-ink); line-height: 1.6;
	transition: color var(--kivo-transition), border-color var(--kivo-transition);
}
.kivo-size-guide-trigger:hover { color: var(--kivo-accent-dark); border-color: var(--kivo-accent-dark); }

/* Trust / USP badges */
.kivo-pdp-usps {
	list-style: none; margin: 1.25rem 0 0; padding: 1.25rem 0 1.5rem; border-top: 1px solid var(--kivo-border);
	display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem 1.75rem;
}
.kivo-pdp-usps li { display: flex; align-items: center; gap: 0.6rem; font-size: 0.85rem; color: var(--kivo-ink-soft); }
.kivo-pdp-usps .kivo-icon { color: var(--kivo-accent-dark); flex-shrink: 0; }

/* Accordion */
.kivo-accordion { margin-top: 1.5rem; border-top: 1px solid var(--kivo-border); }
.kivo-accordion__item { border-bottom: 1px solid var(--kivo-border); }
.kivo-accordion__head {
	width: 100%; background: none; border: 0; cursor: pointer; padding: 1rem 0;
	display: flex; align-items: center; justify-content: space-between; gap: 1rem;
	font-family: var(--kivo-font-body); font-size: 0.8rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--kivo-ink);
}
.kivo-accordion__icon { position: relative; width: 12px; height: 12px; flex-shrink: 0; }
.kivo-accordion__icon::before, .kivo-accordion__icon::after {
	content: ""; position: absolute; background: var(--kivo-ink); transition: opacity var(--kivo-transition);
}
.kivo-accordion__icon::before { top: 5px; left: 0; width: 12px; height: 1.5px; }
.kivo-accordion__icon::after { left: 5px; top: 0; width: 1.5px; height: 12px; }
.kivo-accordion__item.is-open .kivo-accordion__icon::after { opacity: 0; }
.kivo-accordion__body { display: none; padding: 0 0 1.1rem; }
.kivo-accordion__item.is-open .kivo-accordion__body { display: block; }
.kivo-accordion__body p { margin: 0; color: var(--kivo-ink-soft); font-size: 0.9rem; line-height: 1.7; }

/* Sticky add-to-cart bar */
.kivo-sticky-atc {
	position: fixed; left: 0; right: 0; bottom: 0; z-index: 90;
	background: rgba(255,255,255,0.97); backdrop-filter: blur(6px);
	border-top: 1px solid var(--kivo-border); box-shadow: 0 -6px 24px rgba(0,0,0,0.06);
	transform: translateY(0); animation: kivo-slide-up var(--kivo-transition);
}
@keyframes kivo-slide-up { from { transform: translateY(100%); } to { transform: translateY(0); } }
.kivo-sticky-atc__inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-block: 0.7rem; }
.kivo-sticky-atc__info { display: flex; align-items: center; gap: 0.9rem; min-width: 0; }
.kivo-sticky-atc__thumb { width: 46px; height: 58px; object-fit: cover; flex-shrink: 0; }
.kivo-sticky-atc__title { display: block; font-family: var(--kivo-font-display); font-size: 1.05rem; line-height: 1.2; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 42vw; }
.kivo-sticky-atc__price { font-size: 0.9rem; color: var(--kivo-ink); }
.kivo-sticky-atc__price del { color: var(--kivo-muted); margin-right: 0.35rem; }
.kivo-sticky-atc__btn { white-space: nowrap; }

/* Modal (size guide) */
body.kivo-modal-open { overflow: hidden; }
.kivo-modal { position: fixed; inset: 0; z-index: 300; display: flex; align-items: center; justify-content: center; padding: 1.5rem; }
/* Ensure the hidden attribute actually hides the modal (beats .kivo-modal's display:flex). */
.kivo-modal[hidden] { display: none; }
.kivo-modal__overlay { position: absolute; inset: 0; background: rgba(15,12,8,0.55); }
.kivo-modal__dialog {
	position: relative; background: #fff; max-width: 560px; width: 100%; max-height: 85vh; overflow-y: auto;
	padding: clamp(1.5rem, 4vw, 2.5rem); border-radius: var(--kivo-radius); box-shadow: 0 30px 80px rgba(0,0,0,0.25);
}
.kivo-modal__close { position: absolute; top: 0.75rem; right: 1rem; background: none; border: 0; font-size: 1.8rem; line-height: 1; cursor: pointer; color: var(--kivo-ink); }
.kivo-modal__dialog h3 { font-family: var(--kivo-font-display); margin: 0 0 0.4rem; }
.kivo-modal__sub { color: var(--kivo-muted); font-size: 0.85rem; margin-bottom: 1.25rem; }
.kivo-size-table { width: 100%; border-collapse: collapse; font-size: 0.9rem; }
.kivo-size-table th, .kivo-size-table td { padding: 0.7rem 0.5rem; text-align: left; border-bottom: 1px solid var(--kivo-border); }
.kivo-size-table th { font-family: var(--kivo-font-body); text-transform: uppercase; letter-spacing: 0.08em; font-size: 0.72rem; color: var(--kivo-muted); }

/* Give the sticky bar room so it never covers the footer content on short pages */
.single-product .site-footer { margin-bottom: 0; }

/* 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: 560px) {
	.kivo-sticky-atc__info > div { display: none; }
	.kivo-sticky-atc__title { max-width: 38vw; }
}
@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%; }
}

/* =========================================================================
   Slide-out cart drawer
   ========================================================================= */
.kivo-cart-drawer { position: fixed; inset: 0; z-index: 400; }
.kivo-cart-drawer[hidden] { display: none; }

.kivo-cart-drawer__overlay {
	position: absolute; inset: 0; background: rgba(15, 12, 8, 0.5);
	opacity: 0; transition: opacity 0.35s ease;
}
body.kivo-cart-open .kivo-cart-drawer__overlay { opacity: 1; }

.kivo-cart-drawer__panel {
	position: absolute; top: 0; right: 0; height: 100%;
	width: min(430px, 92vw); background: #fff;
	display: flex; flex-direction: column;
	transform: translateX(100%);
	transition: transform 0.4s cubic-bezier(0.22, 0.61, 0.36, 1);
	box-shadow: -12px 0 40px rgba(0, 0, 0, 0.12);
}
body.kivo-cart-open .kivo-cart-drawer__panel { transform: translateX(0); }

.kivo-cart-drawer__head {
	display: flex; align-items: center; justify-content: space-between;
	padding: 1.25rem 1.75rem; border-bottom: 1px solid var(--kivo-border); flex-shrink: 0;
}
.kivo-cart-drawer__head h2 { font-family: var(--kivo-font-display); font-size: 1.6rem; margin: 0; font-weight: 500; }
.kivo-cart-drawer__close {
	background: none; border: 0; width: 40px; height: 40px; border-radius: 50%;
	font-size: 1.6rem; line-height: 1; cursor: pointer; color: var(--kivo-ink);
	display: flex; align-items: center; justify-content: center; transition: background var(--kivo-transition);
}
.kivo-cart-drawer__close:hover { background: var(--kivo-cream); }

.kivo-cart-drawer__content { flex: 1 1 auto; display: flex; flex-direction: column; min-height: 0; }

/* Mini-cart items.
   Higher specificity + !important beats WooCommerce's `.woocommerce
   ul.product_list_widget { padding: 0 }`, which otherwise removes the left pad. */
.kivo-cart-drawer .kivo-cart-drawer__content ul.woocommerce-mini-cart {
	list-style: none; margin: 0 !important; padding: 0.5rem 1.75rem !important; overflow-y: auto; flex: 1 1 auto;
}
.kivo-cart-drawer .woocommerce-mini-cart__empty-message { padding: 3rem 1.75rem; text-align: center; color: var(--kivo-muted); }
.kivo-cart-drawer li.woocommerce-mini-cart-item {
	display: grid; grid-template-columns: 72px 1fr auto; column-gap: 1rem;
	padding: 1.1rem 0; border-bottom: 1px solid var(--kivo-border);
	position: relative; align-items: start;
}
.kivo-cart-drawer .kivo-mini-thumb { grid-column: 1; display: block; }
.kivo-cart-drawer .kivo-mini-thumb img {
	width: 72px !important; height: 92px; object-fit: cover; margin: 0 !important; display: block; float: none;
}
/* Right side: title on top, then variation data, then price. */
.kivo-cart-drawer .kivo-mini-info {
	grid-column: 2; display: flex; flex-direction: column; gap: 0.3rem; min-width: 0;
}
.kivo-cart-drawer .kivo-mini-title {
	font-size: 0.92rem; line-height: 1.35; color: var(--kivo-ink); font-weight: 400;
}
.kivo-cart-drawer .kivo-mini-title:hover { color: var(--kivo-accent-dark); }
.kivo-cart-drawer .kivo-mini-info .quantity { color: var(--kivo-muted); font-size: 0.85rem; white-space: nowrap; }
.kivo-cart-drawer .kivo-mini-info .quantity .woocommerce-Price-amount { white-space: nowrap; }
.kivo-cart-drawer .kivo-mini-info .variation { margin: 0; font-size: 0.78rem; color: var(--kivo-muted); }
.kivo-cart-drawer .kivo-mini-info .variation p,
.kivo-cart-drawer .kivo-mini-info .variation dd { margin: 0; }
.kivo-cart-drawer li.woocommerce-mini-cart-item a.remove {
	grid-column: 3; grid-row: 1; position: static; width: 22px; height: 22px; line-height: 20px;
	text-align: center; color: var(--kivo-muted) !important; font-size: 1.1rem; border-radius: 50%;
}
.kivo-cart-drawer li.woocommerce-mini-cart-item a.remove:hover { color: var(--kivo-ink) !important; background: var(--kivo-cream); }
.kivo-cart-drawer .woocommerce-Price-amount { font-weight: 500; }

/* Totals + buttons */
.kivo-cart-drawer .woocommerce-mini-cart__total {
	display: flex; align-items: center; justify-content: space-between;
	padding: 1.1rem 1.75rem; margin: 0; border-top: 1px solid var(--kivo-border); flex-shrink: 0;
	font-size: 1.05rem; text-transform: uppercase; letter-spacing: 0.06em;
}
.kivo-cart-drawer .woocommerce-mini-cart__total strong { font-weight: 500; }
.kivo-cart-drawer .woocommerce-mini-cart__total .woocommerce-Price-amount { font-family: var(--kivo-font-display); font-size: 1.35rem; letter-spacing: 0; }
.kivo-cart-drawer .woocommerce-mini-cart__buttons {
	display: flex; flex-direction: column; gap: 0.6rem; padding: 0 1.75rem 1.75rem; margin: 0; flex-shrink: 0;
}
.kivo-cart-drawer .woocommerce-mini-cart__buttons .button {
	width: 100%; text-align: center; margin: 0; padding: 1em 1.5em;
	letter-spacing: 0.14em; text-transform: uppercase; font-size: 0.8rem; border-radius: var(--kivo-radius);
}
.kivo-cart-drawer .woocommerce-mini-cart__buttons .button:not(.checkout) {
	background: #fff; color: var(--kivo-ink); border: 1px solid var(--kivo-ink);
}
.kivo-cart-drawer .woocommerce-mini-cart__buttons .button:not(.checkout):hover { background: var(--kivo-cream); }
.kivo-cart-drawer .woocommerce-mini-cart__buttons .checkout { background: var(--kivo-ink); color: #fff; border: 1px solid var(--kivo-ink); }
.kivo-cart-drawer .woocommerce-mini-cart__buttons .checkout:hover { background: var(--kivo-accent-dark); border-color: var(--kivo-accent-dark); }

/* Trust strip at the very bottom of the drawer */
.kivo-cart-drawer__content::after { content: none; }

/* =========================================================================
   Wishlist
   ========================================================================= */
/* Card heart — overlaid on the product image (li is the positioning context) */
.woocommerce ul.products li.product { position: relative; }
.kivo-wishlist-btn {
	background: none; border: 0; cursor: pointer; color: var(--kivo-ink);
	display: inline-flex; align-items: center; justify-content: center;
}
.kivo-wishlist-btn--loop {
	position: absolute; top: 14px; right: 14px; z-index: 4;
	width: 38px; height: 38px; border-radius: 50%; background: rgba(255, 255, 255, 0.9);
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); transition: transform var(--kivo-transition), color var(--kivo-transition);
}
.kivo-wishlist-btn--loop:hover { transform: scale(1.08); color: var(--kivo-sale); }
.kivo-wishlist-btn.is-active { color: var(--kivo-sale); }
/* CSS fill overrides the inline fill="none" on the SVG, so active hearts fill in. */
.kivo-wishlist-btn.is-active .kivo-icon { fill: var(--kivo-sale); }
.kivo-wishlist-btn.just-added { animation: kivo-heart-pop 0.4s ease; }
@keyframes kivo-heart-pop { 0% { transform: scale(1); } 45% { transform: scale(1.28); } 100% { transform: scale(1); } }

/* Single-product wishlist button (below add-to-cart, full-width row) */
.single-product form.cart .kivo-wishlist-btn--single {
	flex: 0 0 100%; justify-content: flex-start; gap: 0.55rem; background: none; padding: 0.4rem 0; margin-top: 0.9rem;
	font-family: var(--kivo-font-body); font-size: 0.74rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--kivo-ink-soft);
}
.single-product form.cart .kivo-wishlist-btn--single:hover { color: var(--kivo-ink); }
.single-product form.cart .kivo-wishlist-btn--single.is-active { color: var(--kivo-sale); }
.single-product form.cart .kivo-wishlist-btn--single.is-active .kivo-icon { fill: var(--kivo-sale); }

/* Header wishlist count badge */
.header-action--wishlist { position: relative; }
.kivo-wishlist-count {
	position: absolute; top: -8px; right: -10px; background: var(--kivo-accent-dark); color: #fff;
	font-family: var(--kivo-font-body); font-size: 0.6rem; min-width: 16px; height: 16px; border-radius: 50%;
	display: flex; align-items: center; justify-content: center; padding: 0 4px;
}
.kivo-wishlist-count.is-empty { display: none; }

/* Wishlist page */
.kivo-wishlist-page { min-height: 220px; }
.kivo-wishlist-page.is-loading { opacity: 0.5; transition: opacity var(--kivo-transition); }
.kivo-wishlist-loading,
.kivo-wishlist-empty { text-align: center; padding: 3.5rem 1rem; color: var(--kivo-muted); font-size: 1rem; }

/* =========================================================================
   Variation size swatches (single product)
   ========================================================================= */
.kivo-swatches { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 0.35rem; }
/* Circular size buttons */
.kivo-swatch {
	width: 54px; height: 54px; padding: 0; border-radius: 50%; background: #fff; cursor: pointer;
	display: inline-flex; align-items: center; justify-content: center;
	border: 1px solid var(--kivo-border);
	font-family: var(--kivo-font-body); font-size: 0.85rem; letter-spacing: 0.02em; line-height: 1;
	color: var(--kivo-ink); transition: all var(--kivo-transition);
}
.kivo-swatch:hover { border-color: var(--kivo-ink); }
.kivo-swatch.is-active { background: var(--kivo-ink); color: #fff; border-color: var(--kivo-ink); }
.kivo-swatch.is-disabled {
	opacity: 0.4; cursor: not-allowed; text-decoration: line-through; color: var(--kivo-muted);
}
.kivo-swatch.is-disabled:hover { border-color: var(--kivo-border); }
/* Stack the label above the swatches (like the reference "SELECT SIZE") */
.single-product div.product form.cart .variations,
.single-product div.product form.cart .variations tbody,
.single-product div.product form.cart .variations tr,
.single-product div.product form.cart .variations th,
.single-product div.product form.cart .variations td { display: block; width: auto; }
.single-product div.product form.cart .variations th.label { padding: 0 0 0.35rem; vertical-align: top; }
.single-product div.product form.cart .variations th.label label {
	font-family: var(--kivo-font-body); font-size: 0.75rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--kivo-ink); margin: 0;
}
/* The reset/clear link sits under the swatches, understated. */
.single-product div.product form.cart .variations + .single_variation_wrap .reset_variations,
.single-product div.product form.cart .reset_variations {
	display: inline-block; margin-top: 0.5rem; font-size: 0.72rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--kivo-muted);
}

/* =========================================================================
   Account / Cart / Checkout pages render via page.php (capped at 760px).
   Let them use the full container width so they align with the header/logo.
   ========================================================================= */
.woocommerce-account .entry--page,
.woocommerce-cart .entry--page,
.woocommerce-checkout .entry--page,
.woocommerce-account .entry--page .entry-content,
.woocommerce-cart .entry--page .entry-content,
.woocommerce-checkout .entry--page .entry-content {
	max-width: none;
	margin-inline: 0;
}
.woocommerce-account .entry--page .entry-title,
.woocommerce-cart .entry--page .entry-title,
.woocommerce-checkout .entry--page .entry-title {
	text-align: left;
}
