/*
Theme Name: Storefront Klima Child
Theme URI: https://example.com
Description: Child theme za Klima Servis Dukić — usklađen sa glavnim 11ty sajtom
Author: 
Template: storefront
Version: 1.0.0
Text Domain: storefront-klima-child
*/

:root{
	--kd-navy: #1C1C3D;  /* klima-dark, exact value from tailwind.config.js */
	--kd-navy-dark: #14142c;
	--kd-teal: #00A699;  /* klima-green, exact value from tailwind.config.js */
	--kd-gutter: clamp(12px, 4vw, 20px);
}
@media screen and (min-width: 1024px){
	:root{ --kd-gutter: clamp(20px, 8vw, 140px); }
}

/* ==========================================================
   SITE-WIDE CONTAINER — one consistent left/right margin
   (up to 140px on desktop) for every section: top bar, header,
   main content, sidebar, and footer, since they all render
   inside Storefront's shared .col-full wrapper.
   ========================================================== */
.col-full{
	max-width: none !important;
	box-sizing: border-box;
	padding-left: var(--kd-gutter) !important;
	padding-right: var(--kd-gutter) !important;
}

/* ==========================================================
   TOP CONTACT BAR
   Matches 11ty: <div class="... text-sm"><div class="mx-[20px]
   lg:mx-[140px] flex flex-col lg:flex-row justify-between
   items-center py-2">
   ========================================================== */
.kd-topbar{
	background: var(--kd-navy);
	color: #fff;
	padding: 8px 0; /* py-2 */
	font-size: 14px; /* text-sm */
}
.kd-topbar-inner{
	max-width: none;
	margin: 0;
	padding: 0 var(--kd-gutter);
	display: flex;
	flex-direction: column; /* flex-col */
	justify-content: space-between;
	align-items: center;
	gap: 8px; /* space-y-2 */
}
@media screen and (min-width: 1024px){
	.kd-topbar-inner{
		flex-direction: row; /* lg:flex-row */
		gap: 0;
	}
}
.kd-topbar-contact{
	display: flex;
	flex-direction: column; /* stacked, centered on mobile */
	align-items: center;
	text-align: center;
	gap: 8px; /* space-y-2 */
}
@media screen and (min-width: 1024px){
	.kd-topbar-contact{
		flex-direction: row; /* lg:flex-row */
		align-items: center;
		text-align: left; /* lg:text-left */
		gap: 24px; /* lg:space-x-6 */
	}
}
.kd-topbar-contact a,
.kd-topbar-contact span{
	color: #fff;
	text-decoration: none;
	display: flex;
	align-items: center;
	gap: 8px;
}
.kd-topbar-contact svg{
	width: 15px;
	height: 15px;
	fill: var(--kd-teal);
	flex-shrink: 0;
}
.kd-topbar-social{
	display: flex;
	gap: 16px; /* space-x-4 */
	margin-top: 8px; /* mt-2 */
}
@media screen and (min-width: 1024px){
	.kd-topbar-social{
		margin-top: 0; /* lg:mt-0 */
	}
}
.kd-topbar-social a svg{
	width: 16px;
	height: 16px;
	fill: #fff;
	transition: fill .2s;
}
.kd-topbar-social a:hover svg{
	fill: var(--kd-teal);
}

/* ==========================================================
   CUSTOM HEADER (.kd-header) — fully replaces Storefront's
   default header markup (see kd_custom_header in functions.php).
   Flat structure, all direct children of .kd-header:

     .kd-header-logo   — logo, always far left
     .kd-header-cart   — cart icon
     .kd-menu-toggle   — hamburger button (mobile only)
     .kd-nav           — menu; inline row on desktop,
                          slide-down overlay panel on mobile

   MOBILE:   [logo] .......... [cart] .......... [hamburger]
             (cart truly centered; menu drops down as an overlay
              panel below the header when the hamburger is tapped)
   DESKTOP:  [logo] ................... [menu items]  [cart]
   ========================================================== */

/* Neutralize Storefront's own .site-header box — our .kd-header
   inside it carries all layout/visuals */
.site-header{
	background: #fff;
	border-bottom: none;
	padding: 0;
	margin: 0;
	max-width: none;
	box-shadow: 0 4px 6px -1px rgba(0,0,0,.1), 0 2px 4px -2px rgba(0,0,0,.1); /* shadow-md */
}

.kd-header{
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 12px var(--kd-gutter);
	background: #fff;
}

/* --- Logo --- */
.kd-header-logo{
	flex: 0 0 auto;
	line-height: 0;
}
.kd-header-logo img{
	max-width: 200px;
	height: auto;
	display: block;
}
.kd-site-title{
	font-size: 20px;
	font-weight: 700;
	color: var(--kd-navy);
	text-decoration: none;
}

/* --- Cart --- */
.kd-header-cart{
	flex: 0 0 auto;
	display: flex;
	align-items: center;
}
.kd-cart-link{
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	text-decoration: none;
	transition: background-color .2s;
}
.kd-cart-link:hover{
	background-color: rgba(28,28,61,.06);
}
.kd-cart-link svg{
	width: 26px;
	height: 26px;
	fill: var(--kd-navy);
	transition: fill .2s;
}
.kd-cart-link:hover svg{
	fill: var(--kd-teal);
}
.kd-cart-count{
	position: absolute;
	top: 2px;
	right: 2px;
	min-width: 16px;
	height: 16px;
	padding: 0 4px;
	background: var(--kd-teal);
	color: #fff;
	font-size: 10px;
	font-weight: 700;
	line-height: 16px;
	text-align: center;
	border-radius: 999px;
}

/* --- Hamburger toggle (mobile only) --- */
.kd-menu-toggle{
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	margin: 0;
	background: transparent;
	border: none;
	outline: none;
	box-shadow: none;
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
}
.kd-menu-toggle:hover,
.kd-menu-toggle:focus,
.kd-menu-toggle:active{
	background: transparent;
	outline: none;
	box-shadow: none;
}
.kd-hamburger{
	position: relative;
	display: block;
	width: 24px;
	height: 18px;
}
.kd-hamburger span{
	position: absolute;
	left: 0;
	display: block;
	width: 100%;
	height: 2px;
	border-radius: 2px;
	background: var(--kd-navy);
	transition: transform .25s ease, opacity .2s ease, top .25s ease;
}
.kd-hamburger span:nth-child(1){ top: 0; }
.kd-hamburger span:nth-child(2){ top: 8px; }
.kd-hamburger span:nth-child(3){ top: 16px; }

/* Morph into an X when open */
.kd-header.kd-open .kd-hamburger span:nth-child(1){
	top: 8px;
	transform: rotate(45deg);
}
.kd-header.kd-open .kd-hamburger span:nth-child(2){
	opacity: 0;
}
.kd-header.kd-open .kd-hamburger span:nth-child(3){
	top: 8px;
	transform: rotate(-45deg);
}

/* --- Nav / menu --- */
.kd-nav ul{
	list-style: none;
	margin: 0;
	padding: 0;
}
.kd-nav a{
	color: var(--kd-navy);
	font-weight: 600;
	text-decoration: none;
}
.kd-nav a:hover{
	color: var(--kd-teal);
}
/* Hide any sub-menus for simplicity (flat menu) */
.kd-nav .sub-menu{
	display: none;
}

/* ---------- MOBILE (<1024px) ---------- */
@media screen and (max-width: 1023px){
	/* Smaller logo so it doesn't dominate the mobile header.
	   !important + width/height:auto override the inline
	   width/height attributes WordPress adds to custom logos. */
	.kd-header-logo img,
	.kd-header-logo .custom-logo{
		max-width: 130px !important;
		width: auto !important;
		height: auto !important;
	}

	/* Cart sits just left of the hamburger, both right-aligned:
	   logo (left) ... [cart][hamburger] (right). The logo takes
	   the remaining space via margin-right:auto, pushing the cart
	   and toggle to the right edge together. */
	.kd-header-logo{
		margin-right: auto;
	}
	.kd-header-cart{
		margin-left: auto;
	}

	.kd-cart-link{
		width: 48px;
		height: 48px;
	}
	.kd-cart-link svg{
		width: 28px;
		height: 28px;
	}


	/* Menu: hidden by default; opens as an overlay panel pinned
	   directly below the header, full width, floating OVER the
	   page content (does not push it down / does not change the
	   header row itself). */
	.kd-nav{
		display: none;
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		background: #fff;
		border-top: 1px solid rgba(28,28,61,.08);
		box-shadow: 0 14px 28px rgba(0,0,0,.15);
		z-index: 999;
	}
	.kd-header.kd-open .kd-nav{
		display: block;
	}
	.kd-nav ul{
		padding: 8px 0;
	}
	.kd-nav li{
		border-bottom: 1px solid rgba(28,28,61,.06);
	}
	.kd-nav li:last-child{
		border-bottom: none;
	}
	.kd-nav a{
		display: block;
		padding: 14px var(--kd-gutter);
		font-size: 16px;
		line-height: 1.3;
	}
	.kd-nav li.current-menu-item > a{
		color: var(--kd-teal);
	}
}

/* ---------- DESKTOP (1024px+) ---------- */
@media screen and (min-width: 1024px){
	.kd-menu-toggle{
		display: none;
	}
	/* Order: logo | nav (pushed right) | cart (far right).
	   .kd-header-cart comes BEFORE .kd-nav in the DOM, so swap
	   them visually with flex order. */
	.kd-header-cart{ order: 3; }
	.kd-nav{        order: 2; margin-left: auto; }
	.kd-header-logo{ order: 1; }

	.kd-nav{
		display: block;
	}
	.kd-nav ul{
		display: flex;
		align-items: center;
		gap: 28px;
	}
	.kd-nav a{
		display: inline-block;
		padding: 4px 0;
		border-bottom: 2px solid transparent;
		transition: border-color .15s, color .15s;
	}
	.kd-nav li:hover > a,
	.kd-nav li.current-menu-item > a{
		border-bottom-color: var(--kd-navy);
	}
}

/* ==========================================================
   SITE-WIDE ACCENT COLOR (buttons, prices, links)
   ========================================================== */
.woocommerce a.button:not(.disabled):not([disabled]),
.woocommerce button.button:not(.disabled):not([disabled]),
.woocommerce input.button:not(.disabled):not([disabled]),
a.button:not(.disabled):not([disabled]),
button.button:not(.disabled):not([disabled]),
.woocommerce #respond input#submit,
.woocommerce a.added_to_cart{
	background-color: var(--kd-teal);
	border-color: var(--kd-teal);
	color: #fff;
}
.woocommerce a.button:not(.disabled):not([disabled]):hover,
.woocommerce button.button:not(.disabled):not([disabled]):hover,
.woocommerce input.button:not(.disabled):not([disabled]):hover{
	background-color: var(--kd-navy);
	border-color: var(--kd-navy);
	color: #fff;
}
.woocommerce .price,
.price{
	color: var(--kd-teal);
}

/* ==========================================================
   FOOTER
   Matches the original 11ty footer 1:1 — 4 flat columns
   (contact / services / products / social) + copyright bar.
   Rendered entirely by kd_custom_footer() in functions.php.
   ========================================================== */
.site-footer{
	background: var(--kd-navy-dark);
	color: #fff;
	padding: 0;
}
  /* Fully neutralize Storefront's .col-full inside the footer:
     kill its max-width, auto margins, and content-box sizing so
     our 140px padding is the ONLY horizontal spacing applied.
     Also reset display:block to override the Shop page's
     .kd-shop.woocommerce-page .col-full { display:flex } rule
     which would otherwise break the footer column layout. */
  .site-footer .col-full{
  	display: block !important;
  	flex-direction: row !important;
  	gap: 0 !important;
  	align-items: stretch !important;
  	background: transparent !important;
  	max-width: none !important;
  	margin: 0 !important;
  	padding: 0 var(--kd-gutter) !important;
  	box-sizing: border-box !important;
  	width: 100%;
  }

/* Footer only needs vertical padding — horizontal 140px margins
   come from the .col-full wrapper (see rule above). */
.kd-footer{
	padding: 40px 0;
	max-width: none;
	box-sizing: border-box;
}

.kd-footer-cols{
	display: flex;
	flex-wrap: wrap;
	gap: 32px;
}

.kd-footer-col{
	width: 100%;
	margin-bottom: 0;
}
@media screen and (min-width: 640px){
	.kd-footer-col{
		width: calc(50% - 16px);
	}
}
@media screen and (min-width: 1024px){
	.kd-footer-cols{
		flex-wrap: nowrap;
		gap: 48px;
	}
	.kd-footer-col{
		width: auto;
		margin-bottom: 0;
	}
	/* Proportional flex values (3:2:4:2) match the original 11ty
	   column ratios while filling the full width evenly. */
	.kd-footer-col-1{ flex: 3 1 0; }
	.kd-footer-col-2{ flex: 2 1 0; }
	.kd-footer-col-3{ flex: 4 1 0; }
	.kd-footer-col-4{ flex: 2 1 0; }
}

/* --- Column 1: Logo + contact --- */
.kd-footer-logo{
	margin-bottom: 16px;
}
.kd-footer-logo img,
.kd-footer-logo-img{
	max-width: 160px;
	height: auto;
	display: block;
}

.kd-footer-tagline{
	margin: 0 0 0 16px;
	font-weight: 300;
	color: #fff;
}
.kd-footer-tagline-last{
	margin-bottom: 24px;
}
.kd-footer-contact-row{
	display: flex;
	align-items: flex-start;
	gap: 12px;
	margin: 0 0 8px 16px;
}
.kd-footer-contact-row:last-child{
	margin-bottom: 0;
}
.kd-footer-contact-row svg{
	width: 15px;
	height: 15px;
	margin-top: 3px;
	fill: var(--kd-teal);
	flex-shrink: 0;
}
.kd-footer-contact-row a,
.kd-footer-contact-row p{
	margin: 0;
	color: #fff;
	text-decoration: none;
}
.kd-footer-contact-row a:hover{
	text-decoration: underline;
}

/* --- Headings (Usluge / Proizvodi / Zapratite Nas) --- */
.kd-footer-heading{
	color: #fff;
	font-weight: 600;
	font-size: 1.25rem;
	margin: 0 0 24px;
}
.kd-footer-col-3 .kd-footer-heading{
	margin-bottom: 16px;
}

/* --- Column 2: Services list --- */
.kd-footer-list{
	list-style: none;
	margin: 0;
	padding: 0;
}
.kd-footer-list li{
	margin-bottom: 8px;
}
.kd-footer-list li:last-child{
	margin-bottom: 0;
}
.kd-footer-list a{
	color: #fff;
	text-decoration: none;
}
.kd-footer-list a:hover{
	text-decoration: underline;
}

/* --- Column 3: Products --- */
.kd-footer-product{
	display: flex;
	align-items: center;
	margin-bottom: 16px;
}
.kd-footer-product:last-child{
	margin-bottom: 0;
}
.kd-footer-product-img{
	width: 64px;
	height: 64px;
	margin-right: 16px;
	border-radius: 8px;
	object-fit: cover;
	flex-shrink: 0;
}
.kd-footer-product-name{
	display: block;
	color: #fff;
	font-weight: 600;
	text-decoration: none;
}
.kd-footer-product-name:hover{
	text-decoration: underline;
}
.kd-footer-product-price{
	margin: 0;
	color: var(--kd-teal);
	font-weight: 300;
}
.kd-footer-product-price .woocommerce-Price-amount{
	color: var(--kd-teal);
}

/* --- Column 4: Social icons --- */
.kd-footer-social{
	display: flex;
	flex-direction: column;
	gap: 16px;
}
.kd-footer-social a svg{
	width: 24px;
	height: 24px;
	fill: var(--kd-teal);
	transition: fill .2s;
}
.kd-footer-social a:hover svg{
	fill: #fff;
}

/* --- Divider + copyright bar --- */
.kd-footer-hr{
	margin: 24px 0;
	border: none;
	border-top: 1px solid #fff;
}
.kd-footer-copyright{
	display: block;
	text-align: center;
	font-size: .875rem;
	color: #fff;
}
.kd-footer-copyright a{
	color: #fff;
	text-decoration: none;
}
.kd-footer-copyright a:hover{
	text-decoration: underline;
}

/* ==========================================================
   SHOP PAGE — sidebar + toolbar
   ========================================================== */


/* Shop layout: sidebar on the left */
.kd-shop.woocommerce-page #primary,
.kd-shop.woocommerce-page #secondary{
	float: none;
}
.kd-shop.woocommerce-page .col-full{
	display: flex;
	gap: 40px;
	align-items: flex-start;
}

/* Hide any duplicate default WooCommerce ordering / result count
   left over from Storefront's shop-loop wrapper. */
.kd-shop form.woocommerce-ordering:not(.kd-ordering),
.kd-shop .woocommerce-result-count{
	display: none !important;
}

.kd-shop .woocommerce-products-header{
	padding: 0 !important;
	margin: 0 !important;
	min-height: 0 !important;
}

.kd-shop #secondary,
.kd-shop .kd-shop-sidebar{
	width: 300px;
	flex-shrink: 0;
	order: 1;
}
.kd-shop #primary{
	flex: 1 1 auto;
	min-width: 0;
	order: 2;
}
.kd-shop #primary,
.kd-shop #primary .content-area,
.kd-shop ul.products{
	margin-top: 0 !important;
	padding-top: 0 !important;
}
@media (max-width: 900px){
	.kd-shop.woocommerce-page .col-full{ flex-direction: column; }
	.kd-shop #secondary,
	.kd-shop .kd-shop-sidebar{ width: 100%; }
}
/* ==========================================================
   MOBILE SHOP GRID FIX
   Storefront's default float/nth-child grid math breaks once
   our sidebar stacks above #primary (widths no longer match
   what Storefront's breakpoints expect), pushing products to
   the right / off-center. Replace with CSS Grid, which is
   width-agnostic and self-centers.
   ========================================================== */
@media screen and (max-width: 900px){
	.kd-shop #primary ul.products{
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: clamp(8px, 3vw, 16px) !important;
		margin: 0 !important;
		padding: 0 !important;
		width: 100%;
	}
	.kd-shop #primary ul.products::before,
	.kd-shop #primary ul.products::after{
		display: none !important;
		content: none !important;
	}
	.kd-shop #primary ul.products li.product{
		float: none !important;
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		margin: 0 !important;
		overflow: hidden;
	}
	.kd-shop #primary ul.products li.product img{
		width: 100% !important;
		max-width: 100% !important;
		height: auto !important;
		max-height: clamp(90px, 22vw, 140px);
		object-fit: cover;
	}
	.kd-shop ul.products.columns-3{
        display:grid !important;
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:12px;
    }

    .kd-shop ul.products.columns-3 li.product{
        float:none !important;
        clear:none !important;
        margin:0 !important;
        width:auto !important;
    }
	.kd-shop-toolbar{
		flex-wrap: wrap;
	}
	.kd-shop-toolbar select.kd-orderby{
		min-width: 0;   /* the 200px floor here was the actual root cause —
		                   it forced .kd-shop-toolbar, then #primary, then
		                   everything sized as %-of-#primary (including the
		                   product grid) wider than the viewport */
		width: 100%;
		max-width: 260px;
	}
}

@media screen and (max-width: 360px){
	.kd-shop #primary ul.products{
		grid-template-columns: 1fr !important;
	}
}

/* Sidebar widgets */
.kd-shop-sidebar .kd-widget{
	margin-bottom: 32px;
	background: #fff;
}
.kd-shop-sidebar .kd-widget-title{
	position: relative;
	font-size: 16px;
	font-weight: 700;
	color: var(--kd-navy);
	background: #EAF2FB;
	padding: 12px 16px;
	margin: 0 0 16px;
	border-left: 4px solid #2F6BFF;
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.kd-widget-filter .kd-widget-title{ cursor: pointer; }
.kd-caret::before{
	content: "";
	display: inline-block;
	border: solid var(--kd-navy);
	border-width: 0 2px 2px 0;
	padding: 3px;
	transform: rotate(-135deg);
	transition: transform .2s;
}
.kd-widget-filter.is-collapsed .kd-caret::before{ transform: rotate(45deg); }
.kd-widget-filter.is-collapsed .kd-widget-body{ display: none; }

/* Best seller carousel */
.kd-carousel{ position: relative; }
.kd-carousel-slide{ text-align: left; padding: 0 4px; }
.kd-carousel-img img,
.kd-top-seller-img img{
	display: block; width: 100%; height: auto;
	background: #F5F5F5;
}
.kd-carousel-name{
	display: block;
	color: var(--kd-navy);
	font-weight: 700;
	margin-top: 12px;
	text-decoration: none;
}
.kd-carousel-name:hover{ color: var(--kd-teal); }
.kd-carousel-price,
.kd-carousel-price .woocommerce-Price-amount{
	color: var(--kd-navy);
	font-weight: 700;
	margin-top: 4px;
}
.kd-carousel-nav{
	display: flex; gap: 10px; margin-top: 12px;
}
.kd-carousel-nav button{
	width: 34px; height: 34px; border-radius: 50%;
	border: none; cursor: pointer;
	background: var(--kd-teal); color: #fff;
	font-size: 16px; line-height: 1;
	display: inline-flex; align-items: center; justify-content: center;
	opacity: .55; transition: opacity .2s;
}
.kd-carousel-nav .kd-carousel-next{ opacity: 1; }
.kd-carousel-nav button:hover{ opacity: 1; background: var(--kd-navy); }


/* Top seller list */
.kd-top-seller-list{ list-style: none; margin: 0; padding: 0; }
.kd-top-seller-list li{
	display: flex; align-items: center; gap: 12px;
	padding: 8px 0; border-bottom: 1px solid #EFEFEF;
}
.kd-top-seller-list li:last-child{ border-bottom: none; }
.kd-top-seller-img{ flex: 0 0 80px; }
.kd-top-seller-img img{ background: #F5F5F5; border-radius: 4px; }
.kd-top-seller-name{
	display: block; color: var(--kd-navy);
	font-weight: 600; text-decoration: none;
}
.kd-top-seller-price,
.kd-top-seller-price .woocommerce-Price-amount{
	color: var(--kd-navy); font-weight: 700; font-size: 14px;
}

/* Filter widgets — checkbox rows */
.kd-filter-list{ list-style: none; margin: 0; padding: 0; }
.kd-filter-list li{ margin-bottom: 8px; }
.kd-filter-list-2col{ display: flex; flex-wrap: wrap; gap: 4px 12px; }
.kd-filter-list-2col li{ width: calc(50% - 12px); }
.kd-filter-item{
	display: inline-flex; align-items: center; gap: 8px;
	color: var(--kd-navy); text-decoration: none;
	font-size: 14px;
}
.kd-check{
	width: 16px; height: 16px; border: 1px solid #BBB;
	border-radius: 3px; display: inline-block; flex-shrink: 0;
	position: relative; background: #fff;
}
.kd-filter-item.is-checked .kd-check{
	background: var(--kd-teal); border-color: var(--kd-teal);
}
.kd-filter-item.is-checked .kd-check::after{
	content: ""; position: absolute; top: 2px; left: 5px;
	width: 4px; height: 8px; border: solid #fff;
	border-width: 0 2px 2px 0; transform: rotate(45deg);
}
.kd-count{ color: #888; font-size: 12px; }

/* Price filter */
.kd-price-hint{ font-size: 13px; color: var(--kd-navy); margin: 0 0 8px; }
.kd-price-inputs{
	display: flex; align-items: center; gap: 6px; margin-bottom: 8px;
}
.kd-price-symbol{ color: var(--kd-navy); font-weight: 700; }
.kd-price-inputs input{
	width: 100%; padding: 6px 8px; border: 1px solid #DDD;
	border-radius: 4px; font-size: 14px;
}
.kd-price-apply{
	background: var(--kd-navy) !important; border-color: var(--kd-navy) !important;
	color: #fff !important; padding: 6px 14px !important; font-size: 13px !important;
}

/* Sort/grid-list toolbar */
.kd-shop-toolbar{
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 8px 14px;
	border: 1px solid #EAEAEA;
	border-radius: 4px;
	margin-bottom: 20px;
	min-height: 52px;
}
.kd-shop-toolbar .woocommerce-ordering{ margin: 0; }
.kd-shop-toolbar{
	min-height: 52px; /* add this line to your existing .kd-shop-toolbar rule, or merge in */
}

.kd-shop-toolbar .kd-ordering{
	display: flex;
	align-items: center;
	margin: 0;
}

.kd-shop-toolbar select.kd-orderby{
	height: 40px;
	line-height: 40px;
	padding: 0 34px 0 14px;
	margin: 0;
	box-sizing: border-box;
	background-color: var(--kd-teal);
	color: #fff;
	border: none;
	border-radius: 4px;
	font-weight: 600;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path fill='%23fff' d='M6 8L0 0h12z'/></svg>");
	background-repeat: no-repeat;
	background-position: right 12px center;
	min-width: 200px;
	cursor: pointer;
}
.kd-shop-toolbar select.kd-orderby option{ color: var(--kd-navy); background: #fff; }

.kd-view-toggle{
	display: flex;
	align-items: center;
	gap: 4px;
}
.kd-view-btn{
	width: 40px; height: 40px; border-radius: 4px;
	background: #F2F2F2;
	border: 1px solid #E0E0E0;
	cursor: pointer;
	padding: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: background-color .2s, border-color .2s;
}
.kd-view-btn svg{
	display: block;
	width: 16px;
	height: 16px;
	flex-shrink: 0;
}
.kd-view-btn svg path{
	fill: var(--kd-navy);
}
.kd-view-btn.is-active{
	background: var(--kd-teal);
	border-color: var(--kd-teal);
}
.kd-view-btn.is-active svg path{
	fill: #fff;
}
.kd-view-btn:hover:not(.is-active) svg path{
	fill: var(--kd-teal);
}


/* ==========================================================
   OUT-OF-STOCK BUTTON — red background
   Three targeting strategies combined:
   1. .kd-oos-btn  — PHP-injected class (most reliable)
   2. li.product.outofstock a.button — WC adds .outofstock to the <li>
   3. .disabled / [disabled] — fallback for products that do get it
   ========================================================== */

/* 1. PHP-injected class (loop) */
.woocommerce a.button.kd-oos-btn,
.woocommerce-page a.button.kd-oos-btn,
.woocommerce ul.products li.product a.button.kd-oos-btn,
.woocommerce-page ul.products li.product a.button.kd-oos-btn {
	background-color: #e74c3c !important;
	background: #e74c3c !important;
	border-color: #e74c3c !important;
	color: #fff !important;
	opacity: 1 !important;
	cursor: not-allowed !important;
	pointer-events: auto !important;
}
.woocommerce a.button.kd-oos-btn:hover,
.woocommerce a.button.kd-oos-btn:focus,
.woocommerce-page a.button.kd-oos-btn:hover,
.woocommerce-page a.button.kd-oos-btn:focus {
	background-color: #c0392b !important;
	background: #c0392b !important;
	border-color: #c0392b !important;
	color: #fff !important;
}

/* 2. WooCommerce .outofstock class on the <li> */
.woocommerce ul.products li.product.outofstock a.button,
.woocommerce-page ul.products li.product.outofstock a.button {
	background-color: #e74c3c !important;
	background: #e74c3c !important;
	border-color: #e74c3c !important;
	color: #fff !important;
	opacity: 1 !important;
	cursor: not-allowed !important;
	pointer-events: auto !important;
}
.woocommerce ul.products li.product.outofstock a.button:hover,
.woocommerce ul.products li.product.outofstock a.button:focus,
.woocommerce-page ul.products li.product.outofstock a.button:hover,
.woocommerce-page ul.products li.product.outofstock a.button:focus {
	background-color: #c0392b !important;
	background: #c0392b !important;
	border-color: #c0392b !important;
	color: #fff !important;
}

/* 3. .disabled / [disabled] fallback */
.woocommerce ul.products li.product a.button.disabled,
.woocommerce ul.products li.product a.button[disabled],
.woocommerce-page ul.products li.product a.button.disabled,
.woocommerce-page ul.products li.product a.button[disabled],
.woocommerce a.button.disabled,
.woocommerce a.button[disabled],
.woocommerce button.button.disabled,
.woocommerce button.button[disabled] {
	background-color: #e74c3c !important;
	background: #e74c3c !important;
	border-color: #e74c3c !important;
	color: #fff !important;
	opacity: 1 !important;
	cursor: not-allowed !important;
	pointer-events: auto !important;
}

/* Single product page */
.woocommerce .single_add_to_cart_button.disabled,
.woocommerce .single_add_to_cart_button[disabled],
.woocommerce form.cart .single_add_to_cart_button.disabled {
	background-color: #e74c3c !important;
	background: #e74c3c !important;
	border-color: #e74c3c !important;
	color: #fff !important;
	opacity: 1 !important;
	cursor: not-allowed !important;
}

/* List view */
ul.products.kd-list-view li.product{
	width: 100% !important; float: none !important;
	display: flex; gap: 20px; align-items: flex-start;
	margin-bottom: 20px;
}
ul.products.kd-list-view li.product img{ width: 180px !important; }

/* Center the single remaining (cart) icon in the handheld footer bar */
.handheld-footer-bar .col-full{
	justify-content: center;
}
.handheld-footer-bar li{
	width: auto !important;
	max-width: 120px;
}