
/* ==========================================================
   CARO SHOP — ARCHIVE + LEFT FILTER SYSTEM
========================================================== */

body.woocommerce-shop #content,
body.tax-product_cat #content,
body.tax-product_tag #content {
	background: #fff !important;
}

/* MAIN TWO-COLUMN FRAME */

body.woocommerce-shop #content > .ast-container,
body.tax-product_cat #content > .ast-container,
body.tax-product_tag #content > .ast-container {
	display: grid !important;
	grid-template-columns: 270px minmax(0, 1fr) !important;
	gap: 48px !important;

	width: min(calc(100% - 64px), 1540px) !important;
	max-width: 1540px !important;

	margin: 0 auto !important;
	padding: 58px 0 100px !important;
	align-items: start !important;
}

/* LEFT FILTER */

body.woocommerce-shop #secondary,
body.tax-product_cat #secondary,
body.tax-product_tag #secondary {
	display: block !important;
	grid-column: 1 !important;

	float: none !important;
	width: 270px !important;
	max-width: 270px !important;

	margin: 0 !important;
	padding: 0 !important;

	border: 0 !important;
}

/* MAIN SHOP CONTENT */

body.woocommerce-shop #primary,
body.tax-product_cat #primary,
body.tax-product_tag #primary {
	display: block !important;
	grid-column: 2 !important;

	float: none !important;
	width: 100% !important;
	min-width: 0 !important;

	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
}

body.woocommerce-shop .site-main,
body.tax-product_cat .site-main,
body.tax-product_tag .site-main {
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* ==========================================================
   FILTER PANEL
========================================================== */

body.woocommerce-shop #secondary .widget,
body.tax-product_cat #secondary .widget,
body.tax-product_tag #secondary .widget {
	margin: 0 0 34px !important;
	padding: 0 !important;
	background: transparent !important;
}

body.woocommerce-shop #secondary .widget-title,
body.tax-product_cat #secondary .widget-title,
body.tax-product_tag #secondary .widget-title {
	margin: 0 0 18px !important;

	color: #111 !important;

	font-size: 1.2rem !important;
	font-weight: 650 !important;
	line-height: 1.2 !important;
	letter-spacing: -.025em !important;
}

body.woocommerce-shop #secondary ul,
body.tax-product_cat #secondary ul,
body.tax-product_tag #secondary ul {
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

body.woocommerce-shop #secondary .product-categories,
body.tax-product_cat #secondary .product-categories,
body.tax-product_tag #secondary .product-categories {
	border-top: 1px solid #e8e8e8 !important;
}

body.woocommerce-shop #secondary .product-categories > li,
body.tax-product_cat #secondary .product-categories > li,
body.tax-product_tag #secondary .product-categories > li {
	margin: 0 !important;
	border-bottom: 1px solid #e8e8e8 !important;
}

body.woocommerce-shop #secondary .product-categories a,
body.tax-product_cat #secondary .product-categories a,
body.tax-product_tag #secondary .product-categories a {
	display: block !important;

	padding: 13px 4px !important;

	color: #222 !important;

	font-size: .94rem !important;
	font-weight: 500 !important;
	line-height: 1.35 !important;

	text-decoration: none !important;
}

body.woocommerce-shop #secondary .product-categories a:hover,
body.tax-product_cat #secondary .product-categories a:hover,
body.tax-product_tag #secondary .product-categories a:hover {
	color: #777 !important;
}

body.woocommerce-shop #secondary .children,
body.tax-product_cat #secondary .children,
body.tax-product_tag #secondary .children {
	padding-left: 16px !important;
}

/* ==========================================================
   SHOP HEADING
========================================================== */

body.woocommerce-shop .woocommerce-breadcrumb,
body.tax-product_cat .woocommerce-breadcrumb,
body.tax-product_tag .woocommerce-breadcrumb {
	margin: 0 0 22px !important;
	color: #777 !important;
	font-size: .86rem !important;
}

body.woocommerce-shop .woocommerce-products-header,
body.tax-product_cat .woocommerce-products-header,
body.tax-product_tag .woocommerce-products-header {
	margin: 0 0 38px !important;
	padding: 0 !important;
}

body.woocommerce-shop .woocommerce-products-header__title,
body.tax-product_cat .woocommerce-products-header__title,
body.tax-product_tag .woocommerce-products-header__title {
	margin: 0 !important;

	color: #111 !important;

	font-size: clamp(2.8rem, 3.6vw, 4.15rem) !important;
	font-weight: 600 !important;
	line-height: 1 !important;
	letter-spacing: -.045em !important;
}

/* ==========================================================
   RESULT / SORT TOOLBAR
========================================================== */

body.woocommerce-shop .woocommerce-result-count,
body.tax-product_cat .woocommerce-result-count,
body.tax-product_tag .woocommerce-result-count {
	float: left !important;

	margin: 13px 0 38px !important;

	color: #555 !important;
	font-size: .92rem !important;
}

body.woocommerce-shop .woocommerce-ordering,
body.tax-product_cat .woocommerce-ordering,
body.tax-product_tag .woocommerce-ordering {
	float: right !important;
	margin: 0 0 38px !important;
}

body.woocommerce-shop .woocommerce-ordering select,
body.tax-product_cat .woocommerce-ordering select,
body.tax-product_tag .woocommerce-ordering select {
	width: 220px !important;
	height: 48px !important;

	padding: 0 42px 0 15px !important;

	border: 1px solid #d7d7d7 !important;
	border-radius: 7px !important;

	background-color: #fff !important;
	color: #222 !important;

	font-size: .92rem !important;
}

/* ==========================================================
   PRODUCT GRID
========================================================== */

body.woocommerce-shop ul.products,
body.tax-product_cat ul.products,
body.tax-product_tag ul.products {
	clear: both !important;

	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr)) !important;

	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;

	column-gap: 26px !important;
	row-gap: 48px !important;
}

body.woocommerce-shop ul.products li.caro-product-card,
body.tax-product_cat ul.products li.caro-product-card,
body.tax-product_tag ul.products li.caro-product-card {
	float: none !important;

	width: 100% !important;
	max-width: none !important;

	margin: 0 !important;
	padding: 0 !important;
}

/* ==========================================================
   PRODUCT IMAGE CANVAS
========================================================== */

body.woocommerce-shop .caro-product-card__media,
body.tax-product_cat .caro-product-card__media,
body.tax-product_tag .caro-product-card__media {
	position: relative !important;

	width: 100% !important;
	height: auto !important;
	aspect-ratio: 1 / 1 !important;

	overflow: hidden !important;

	border: 1px solid #ededed !important;
	border-radius: 14px !important;

	background: #fff !important;
}

body.woocommerce-shop .caro-product-card__media-link,
body.tax-product_cat .caro-product-card__media-link,
body.tax-product_tag .caro-product-card__media-link {
	position: absolute !important;
	inset: 0 !important;

	display: flex !important;
	align-items: center !important;
	justify-content: center !important;

	width: 100% !important;
	height: 100% !important;
}

body.woocommerce-shop img.caro-product-card__image,
body.tax-product_cat img.caro-product-card__image,
body.tax-product_tag img.caro-product-card__image {
	display: block !important;

	width: 100% !important;
	height: 100% !important;

	margin: 0 !important;
	padding: 10px !important;

	object-fit: contain !important;
	object-position: center !important;

	background: #fff !important;
}

/* SALE */

body.woocommerce-shop .caro-product-card__sale,
body.tax-product_cat .caro-product-card__sale,
body.tax-product_tag .caro-product-card__sale {
	top: 12px !important;
	left: 12px !important;
}

/* WISHLIST */

body.woocommerce-shop .caro-product-card__wishlist,
body.tax-product_cat .caro-product-card__wishlist,
body.tax-product_tag .caro-product-card__wishlist {
	top: 12px !important;
	right: 12px !important;
}

/* ==========================================================
   PRODUCT INFORMATION
========================================================== */

body.woocommerce-shop .caro-product-card__body,
body.tax-product_cat .caro-product-card__body,
body.tax-product_tag .caro-product-card__body {
	padding: 17px 3px 0 !important;
}

body.woocommerce-shop .caro-product-card__title,
body.tax-product_cat .caro-product-card__title,
body.tax-product_tag .caro-product-card__title {
	margin: 0 0 9px !important;

	font-size: 1rem !important;
	font-weight: 650 !important;
	line-height: 1.3 !important;
	letter-spacing: -.015em !important;
}

body.woocommerce-shop .caro-product-card__price,
body.tax-product_cat .caro-product-card__price,
body.tax-product_tag .caro-product-card__price {
	font-size: .96rem !important;
	font-weight: 650 !important;
	line-height: 1.3 !important;
}

/* ==========================================================
   ADD TO BAG
========================================================== */

body.woocommerce-shop .caro-product-card__cart,
body.tax-product_cat .caro-product-card__cart,
body.tax-product_tag .caro-product-card__cart {
	left: 12px !important;
	right: 12px !important;
	bottom: 12px !important;

	width: auto !important;
}

body.woocommerce-shop .caro-product-card__cart .button,
body.tax-product_cat .caro-product-card__cart .button,
body.tax-product_tag .caro-product-card__cart .button {
	width: 100% !important;
	min-height: 46px !important;

	padding: 0 18px !important;

	border-radius: 7px !important;

	font-size: .74rem !important;
	font-weight: 700 !important;
	letter-spacing: .06em !important;
}

/* ==========================================================
   PAGINATION
========================================================== */

body.woocommerce-shop nav.woocommerce-pagination,
body.tax-product_cat nav.woocommerce-pagination,
body.tax-product_tag nav.woocommerce-pagination {
	clear: both !important;

	width: 100% !important;

	margin: 58px 0 0 !important;

	text-align: center !important;
}

body.woocommerce-shop nav.woocommerce-pagination ul,
body.tax-product_cat nav.woocommerce-pagination ul,
body.tax-product_tag nav.woocommerce-pagination ul {
	display: inline-flex !important;
	gap: 6px !important;

	margin: 0 !important;

	border: 0 !important;
}

body.woocommerce-shop nav.woocommerce-pagination ul li,
body.tax-product_cat nav.woocommerce-pagination ul li,
body.tax-product_tag nav.woocommerce-pagination ul li {
	border: 0 !important;
}

body.woocommerce-shop nav.woocommerce-pagination a,
body.woocommerce-shop nav.woocommerce-pagination span,
body.tax-product_cat nav.woocommerce-pagination a,
body.tax-product_cat nav.woocommerce-pagination span {
	display: grid !important;
	place-items: center !important;

	width: 42px !important;
	height: 42px !important;

	padding: 0 !important;

	border: 1px solid #ccc !important;

	background: #fff !important;
	color: #111 !important;
}

body.woocommerce-shop nav.woocommerce-pagination .current,
body.tax-product_cat nav.woocommerce-pagination .current {
	border-color: #111 !important;
	background: #111 !important;
	color: #fff !important;
}

/* ==========================================================
   RESPONSIVE
========================================================== */

@media (max-width: 1250px) {

	body.woocommerce-shop #content > .ast-container,
	body.tax-product_cat #content > .ast-container,
	body.tax-product_tag #content > .ast-container {
		grid-template-columns: 235px minmax(0, 1fr) !important;
		gap: 34px !important;
		width: calc(100% - 48px) !important;
	}

	body.woocommerce-shop #secondary,
	body.tax-product_cat #secondary,
	body.tax-product_tag #secondary {
		width: 235px !important;
		max-width: 235px !important;
	}

	body.woocommerce-shop ul.products,
	body.tax-product_cat ul.products,
	body.tax-product_tag ul.products {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	}
}

@media (max-width: 960px) {

	body.woocommerce-shop #content > .ast-container,
	body.tax-product_cat #content > .ast-container,
	body.tax-product_tag #content > .ast-container {
		display: block !important;
		width: calc(100% - 40px) !important;
	}

	body.woocommerce-shop #secondary,
	body.tax-product_cat #secondary,
	body.tax-product_tag #secondary {
		width: 100% !important;
		max-width: none !important;
		margin-bottom: 42px !important;
	}

	body.woocommerce-shop #secondary .product-categories,
	body.tax-product_cat #secondary .product-categories {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0,1fr)) !important;
		gap: 0 24px !important;
	}

	body.woocommerce-shop ul.products,
	body.tax-product_cat ul.products,
	body.tax-product_tag ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}

@media (max-width: 560px) {

	body.woocommerce-shop #content > .ast-container,
	body.tax-product_cat #content > .ast-container,
	body.tax-product_tag #content > .ast-container {
		width: calc(100% - 28px) !important;
		padding-top: 36px !important;
	}

	body.woocommerce-shop #secondary .product-categories,
	body.tax-product_cat #secondary .product-categories {
		grid-template-columns: 1fr !important;
	}

	body.woocommerce-shop .woocommerce-result-count,
	body.tax-product_cat .woocommerce-result-count,
	body.woocommerce-shop .woocommerce-ordering,
	body.tax-product_cat .woocommerce-ordering {
		float: none !important;
		width: 100% !important;
	}

	body.woocommerce-shop .woocommerce-ordering select,
	body.tax-product_cat .woocommerce-ordering select {
		width: 100% !important;
	}

	body.woocommerce-shop ul.products,
	body.tax-product_cat ul.products {
		grid-template-columns: repeat(2, minmax(0,1fr)) !important;
		gap: 34px 14px !important;
	}
}


/* ==========================================================
   PAGINATION
========================================================== */

body.woocommerce-shop nav.woocommerce-pagination,
body.tax-product_cat nav.woocommerce-pagination,
body.tax-product_tag nav.woocommerce-pagination {
	clear: both !important;

	width: 100% !important;

	margin: 58px 0 0 !important;

	text-align: center !important;
}

body.woocommerce-shop nav.woocommerce-pagination ul,
body.tax-product_cat nav.woocommerce-pagination ul,
body.tax-product_tag nav.woocommerce-pagination ul {
	display: inline-flex !important;
	gap: 7px !important;

	margin: 0 !important;
	padding: 0 !important;

	border: 0 !important;
}

body.woocommerce-shop nav.woocommerce-pagination li,
body.tax-product_cat nav.woocommerce-pagination li,
body.tax-product_tag nav.woocommerce-pagination li {
	margin: 0 !important;
	border: 0 !important;
}

body.woocommerce-shop nav.woocommerce-pagination a,
body.woocommerce-shop nav.woocommerce-pagination span,
body.tax-product_cat nav.woocommerce-pagination a,
body.tax-product_cat nav.woocommerce-pagination span,
body.tax-product_tag nav.woocommerce-pagination a,
body.tax-product_tag nav.woocommerce-pagination span {
	display: grid !important;
	place-items: center !important;

	width: 42px !important;
	height: 42px !important;

	padding: 0 !important;

	border: 1px solid #d4d4d4 !important;
	border-radius: 6px !important;

	background: #fff !important;
	color: #111 !important;

	font-size: .83rem !important;

	transition:
		background .18s ease,
		color .18s ease,
		border-color .18s ease !important;
}

body.woocommerce-shop nav.woocommerce-pagination .current,
body.tax-product_cat nav.woocommerce-pagination .current,
body.tax-product_tag nav.woocommerce-pagination .current {
	border-color: #111 !important;

	background: #111 !important;
	color: #fff !important;
}

/* ==========================================================
   TABLET
========================================================== */

@media (max-width: 1280px) {

	body.woocommerce-shop #content > .ast-container,
	body.tax-product_cat #content > .ast-container,
	body.tax-product_tag #content > .ast-container {
		grid-template-columns: 225px minmax(0, 1fr) !important;

		gap: 34px !important;

		width: calc(100% - 48px) !important;
	}

	body.woocommerce-shop #secondary,
	body.tax-product_cat #secondary,
	body.tax-product_tag #secondary {
		width: 225px !important;
		max-width: 225px !important;
	}

	body.woocommerce-shop #secondary .sidebar-main,
	body.tax-product_cat #secondary .sidebar-main,
	body.tax-product_tag #secondary .sidebar-main {
		padding: 18px 16px !important;
	}

	body.woocommerce-shop ul.products,
	body.tax-product_cat ul.products,
	body.tax-product_tag ul.products {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	}
}

/* ==========================================================
   SMALL TABLET
========================================================== */

@media (max-width: 960px) {

	body.woocommerce-shop #content > .ast-container,
	body.tax-product_cat #content > .ast-container,
	body.tax-product_tag #content > .ast-container {
		display: block !important;

		width: calc(100% - 40px) !important;

		padding-top: 44px !important;
	}

	body.woocommerce-shop #secondary,
	body.tax-product_cat #secondary,
	body.tax-product_tag #secondary {
		width: 100% !important;
		max-width: none !important;

		margin: 0 0 38px !important;
		padding: 0 !important;
	}

	body.woocommerce-shop #secondary .sidebar-main,
	body.tax-product_cat #secondary .sidebar-main,
	body.tax-product_tag #secondary .sidebar-main {
		position: static !important;
	}

	body.woocommerce-shop #secondary .product-categories,
	body.tax-product_cat #secondary .product-categories,
	body.tax-product_tag #secondary .product-categories {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0,1fr)) !important;

		gap: 0 26px !important;
	}

	body.woocommerce-shop ul.products,
	body.tax-product_cat ul.products,
	body.tax-product_tag ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;

		gap: 42px 22px !important;
	}
}

/* ==========================================================
   MOBILE
========================================================== */

@media (max-width: 600px) {

	body.woocommerce-shop #content > .ast-container,
	body.tax-product_cat #content > .ast-container,
	body.tax-product_tag #content > .ast-container {
		width: calc(100% - 28px) !important;

		padding-top: 34px !important;
		padding-bottom: 72px !important;
	}

	body.woocommerce-shop #secondary .product-categories,
	body.tax-product_cat #secondary .product-categories,
	body.tax-product_tag #secondary .product-categories {
		grid-template-columns: 1fr !important;
	}

	body.woocommerce-shop .woocommerce-products-header__title,
	body.tax-product_cat .woocommerce-products-header__title,
	body.tax-product_tag .woocommerce-products-header__title {
		font-size: 2.7rem !important;
	}

	body.woocommerce-shop .woocommerce-message,
	body.tax-product_cat .woocommerce-message,
	body.tax-product_tag .woocommerce-message {
		display: block !important;

		padding: 15px !important;
	}

	body.woocommerce-shop .woocommerce-message .button,
	body.tax-product_cat .woocommerce-message .button,
	body.tax-product_tag .woocommerce-message .button {
		display: flex !important;

		width: 100% !important;

		margin-top: 13px !important;
	}

	body.woocommerce-shop .woocommerce-result-count,
	body.tax-product_cat .woocommerce-result-count,
	body.tax-product_tag .woocommerce-result-count,
	body.woocommerce-shop .woocommerce-ordering,
	body.tax-product_cat .woocommerce-ordering,
	body.tax-product_tag .woocommerce-ordering {
		float: none !important;

		width: 100% !important;
	}

	body.woocommerce-shop .woocommerce-ordering select,
	body.tax-product_cat .woocommerce-ordering select,
	body.tax-product_tag .woocommerce-ordering select {
		width: 100% !important;
	}

	body.woocommerce-shop ul.products,
	body.tax-product_cat ul.products,
	body.tax-product_tag ul.products {
		grid-template-columns: repeat(2, minmax(0,1fr)) !important;

		gap: 34px 13px !important;
	}

	body.woocommerce-shop .caro-product-card__wishlist,
	body.tax-product_cat .caro-product-card__wishlist,
	body.tax-product_tag .caro-product-card__wishlist {
		width: 36px !important;
		height: 36px !important;
	}

	body.woocommerce-shop .caro-product-card__title,
	body.tax-product_cat .caro-product-card__title,
	body.tax-product_tag .caro-product-card__title {
		font-size: .88rem !important;
	}

	/* Purchase action remains accessible without hover */
	body.woocommerce-shop .caro-product-card__cart,
	body.tax-product_cat .caro-product-card__cart,
	body.tax-product_tag .caro-product-card__cart {
		opacity: 1 !important;
		transform: none !important;
	}
}


/* ==========================================================
   CARO SHOP — FILTER PANEL POLISH
========================================================== */

/* Filter panel */
body.woocommerce-shop #secondary .sidebar-main,
body.tax-product_cat #secondary .sidebar-main,
body.tax-product_tag #secondary .sidebar-main {
	padding: 24px 22px !important;
	border: 1px solid #e7e7e4 !important;
	border-radius: 14px !important;
	background: #fafaf8 !important;
	box-shadow: none !important;
}

/* Individual filter widgets */
body.woocommerce-shop #secondary .widget,
body.tax-product_cat #secondary .widget,
body.tax-product_tag #secondary .widget {
	margin: 0 !important;
	padding: 0 0 26px !important;
	border-bottom: 1px solid #e1e1de !important;
}

body.woocommerce-shop #secondary .widget + .widget,
body.tax-product_cat #secondary .widget + .widget,
body.tax-product_tag #secondary .widget + .widget {
	padding-top: 24px !important;
}

body.woocommerce-shop #secondary .widget:last-child,
body.tax-product_cat #secondary .widget:last-child,
body.tax-product_tag #secondary .widget:last-child {
	padding-bottom: 0 !important;
	border-bottom: 0 !important;
}

/* Filter headings */
body.woocommerce-shop #secondary .widget-title,
body.tax-product_cat #secondary .widget-title,
body.tax-product_tag #secondary .widget-title {
	margin: 0 0 15px !important;
	color: #111 !important;
	font-size: .76rem !important;
	font-weight: 750 !important;
	line-height: 1.2 !important;
	letter-spacing: .11em !important;
	text-transform: uppercase !important;
}

/* Category list */
body.woocommerce-shop #secondary .product-categories,
body.tax-product_cat #secondary .product-categories,
body.tax-product_tag #secondary .product-categories {
	border: 0 !important;
}

/* Top-level category */
body.woocommerce-shop #secondary .product-categories > li,
body.tax-product_cat #secondary .product-categories > li,
body.tax-product_tag #secondary .product-categories > li {
	border: 0 !important;
}

/* Category links */
body.woocommerce-shop #secondary .product-categories a,
body.tax-product_cat #secondary .product-categories a,
body.tax-product_tag #secondary .product-categories a {
	position: relative !important;
	display: block !important;
	padding: 9px 24px 9px 0 !important;
	border-radius: 5px !important;
	color: #383838 !important;
	font-size: .87rem !important;
	font-weight: 500 !important;
	line-height: 1.42 !important;
	text-decoration: none !important;
}

/* Small directional indicator */
body.woocommerce-shop #secondary .product-categories > li > a::after,
body.tax-product_cat #secondary .product-categories > li > a::after,
body.tax-product_tag #secondary .product-categories > li > a::after {
	content: "›" !important;
	position: absolute !important;
	top: 50% !important;
	right: 2px !important;
	transform: translateY(-50%) !important;
	color: #aaa !important;
	font-size: 1rem !important;
	font-weight: 400 !important;
}

/* Hover */
body.woocommerce-shop #secondary .product-categories a:hover,
body.tax-product_cat #secondary .product-categories a:hover,
body.tax-product_tag #secondary .product-categories a:hover {
	padding-left: 5px !important;
	color: #000 !important;
}

/* Current category */
body.woocommerce-shop #secondary .product-categories .current-cat > a,
body.tax-product_cat #secondary .product-categories .current-cat > a,
body.tax-product_tag #secondary .product-categories .current-cat > a {
	color: #000 !important;
	font-weight: 700 !important;
}

/* Children */
body.woocommerce-shop #secondary .product-categories .children,
body.tax-product_cat #secondary .product-categories .children,
body.tax-product_tag #secondary .product-categories .children {
	margin: 2px 0 7px !important;
	padding: 0 0 0 13px !important;
	border-left: 1px solid #ddd !important;
}

body.woocommerce-shop #secondary .product-categories .children a,
body.tax-product_cat #secondary .product-categories .children a,
body.tax-product_tag #secondary .product-categories .children a {
	padding-top: 7px !important;
	padding-bottom: 7px !important;
	color: #666 !important;
	font-size: .82rem !important;
}

/* ==========================================================
   PRICE FILTER — READY FOR NATIVE WC WIDGET
========================================================== */

body.woocommerce-shop #secondary .widget_price_filter,
body.tax-product_cat #secondary .widget_price_filter,
body.tax-product_tag #secondary .widget_price_filter {
	width: 100% !important;
}

/* Slider rail */
body.woocommerce-shop #secondary .price_slider_wrapper .ui-widget-content,
body.tax-product_cat #secondary .price_slider_wrapper .ui-widget-content,
body.tax-product_tag #secondary .price_slider_wrapper .ui-widget-content {
	height: 4px !important;
	margin: 14px 5px 22px !important;
	border: 0 !important;
	border-radius: 999px !important;
	background: #d9d9d6 !important;
}

/* Selected range */
body.woocommerce-shop #secondary .price_slider .ui-slider-range,
body.tax-product_cat #secondary .price_slider .ui-slider-range,
body.tax-product_tag #secondary .price_slider .ui-slider-range {
	height: 4px !important;
	background: #111 !important;
}

/* Slider handles */
body.woocommerce-shop #secondary .price_slider .ui-slider-handle,
body.tax-product_cat #secondary .price_slider .ui-slider-handle,
body.tax-product_tag #secondary .price_slider .ui-slider-handle {
	top: -6px !important;
	width: 16px !important;
	height: 16px !important;
	margin-left: -8px !important;
	border: 2px solid #111 !important;
	border-radius: 50% !important;
	background: #fff !important;
	box-shadow: none !important;
}

/* Price labels */
body.woocommerce-shop #secondary .price_slider_amount,
body.tax-product_cat #secondary .price_slider_amount,
body.tax-product_tag #secondary .price_slider_amount {
	display: flex !important;
	flex-wrap: wrap !important;
	align-items: center !important;
	justify-content: space-between !important;
	gap: 12px !important;
}

body.woocommerce-shop #secondary .price_slider_amount .price_label,
body.tax-product_cat #secondary .price_slider_amount .price_label,
body.tax-product_tag #secondary .price_slider_amount .price_label {
	color: #555 !important;
	font-size: .8rem !important;
	line-height: 1.4 !important;
}

/* Filter button */
body.woocommerce-shop #secondary .price_slider_amount .button,
body.tax-product_cat #secondary .price_slider_amount .button,
body.tax-product_tag #secondary .price_slider_amount .button {
	float: none !important;
	min-height: 38px !important;
	margin: 0 !important;
	padding: 0 16px !important;
	border: 1px solid #111 !important;
	border-radius: 6px !important;
	background: #111 !important;
	color: #fff !important;
	font-size: .68rem !important;
	font-weight: 700 !important;
	letter-spacing: .07em !important;
	text-transform: uppercase !important;
}


/* ==========================================================
   CARO SHOP — FILTER SIDEBAR FINAL POLISH
========================================================== */

/* Sidebar card */
body.woocommerce-shop #secondary .sidebar-main,
body.tax-product_cat #secondary .sidebar-main,
body.tax-product_tag #secondary .sidebar-main {
	padding: 22px 20px !important;
	border: 1px solid #e5e5e2 !important;
	border-radius: 13px !important;
	background: #fafaf8 !important;
}

/* Widget sections */
body.woocommerce-shop #secondary .widget,
body.tax-product_cat #secondary .widget,
body.tax-product_tag #secondary .widget {
	margin: 0 !important;
	padding: 0 0 24px !important;
	border-bottom: 1px solid #e2e2df !important;
}

body.woocommerce-shop #secondary .widget + .widget,
body.tax-product_cat #secondary .widget + .widget,
body.tax-product_tag #secondary .widget + .widget {
	padding-top: 24px !important;
}

body.woocommerce-shop #secondary .widget:last-child,
body.tax-product_cat #secondary .widget:last-child,
body.tax-product_tag #secondary .widget:last-child {
	padding-bottom: 0 !important;
	border-bottom: 0 !important;
}

/* Filter titles */
body.woocommerce-shop #secondary .widget-title,
body.tax-product_cat #secondary .widget-title,
body.tax-product_tag #secondary .widget-title {
	margin: 0 0 15px !important;
	color: #111 !important;
	font-size: .72rem !important;
	font-weight: 750 !important;
	line-height: 1.2 !important;
	letter-spacing: .12em !important;
	text-transform: uppercase !important;
}

/* ==========================================================
   CATEGORY FILTER
========================================================== */

body.woocommerce-shop #secondary .product-categories,
body.tax-product_cat #secondary .product-categories,
body.tax-product_tag #secondary .product-categories {
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	list-style: none !important;
}

/* Kill all old tree/arrow decoration */
body.woocommerce-shop #secondary .product-categories li::before,
body.woocommerce-shop #secondary .product-categories li::after,
body.tax-product_cat #secondary .product-categories li::before,
body.tax-product_cat #secondary .product-categories li::after,
body.tax-product_tag #secondary .product-categories li::before,
body.tax-product_tag #secondary .product-categories li::after {
	display: none !important;
	content: none !important;
}

body.woocommerce-shop #secondary .product-categories li,
body.tax-product_cat #secondary .product-categories li,
body.tax-product_tag #secondary .product-categories li {
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	list-style: none !important;
}

/* Parent category = group label */
body.woocommerce-shop #secondary .product-categories > li > a,
body.tax-product_cat #secondary .product-categories > li > a,
body.tax-product_tag #secondary .product-categories > li > a {
	display: block !important;
	margin: 0 0 7px !important;
	padding: 5px 3px 8px !important;
	color: #171717 !important;
	font-size: .88rem !important;
	font-weight: 700 !important;
	line-height: 1.4 !important;
	text-decoration: none !important;
}

/* Children become the actual filter choices */
body.woocommerce-shop #secondary .product-categories .children,
body.tax-product_cat #secondary .product-categories .children,
body.tax-product_tag #secondary .product-categories .children {
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
}

body.woocommerce-shop #secondary .product-categories .children li,
body.tax-product_cat #secondary .product-categories .children li,
body.tax-product_tag #secondary .product-categories .children li {
	margin: 2px 0 !important;
}

body.woocommerce-shop #secondary .product-categories .children a,
body.tax-product_cat #secondary .product-categories .children a,
body.tax-product_tag #secondary .product-categories .children a {
	display: block !important;
	padding: 9px 10px !important;
	border-radius: 6px !important;
	color: #555 !important;
	font-size: .83rem !important;
	font-weight: 500 !important;
	line-height: 1.35 !important;
	text-decoration: none !important;
	transition:
		background .15s ease,
		color .15s ease !important;
}

body.woocommerce-shop #secondary .product-categories .children a:hover,
body.tax-product_cat #secondary .product-categories .children a:hover,
body.tax-product_tag #secondary .product-categories .children a:hover {
	padding-left: 10px !important;
	background: #efefec !important;
	color: #111 !important;
}

/* Active category */
body.woocommerce-shop #secondary .current-cat > a,
body.tax-product_cat #secondary .current-cat > a,
body.tax-product_tag #secondary .current-cat > a {
	background: #111 !important;
	color: #fff !important;
	font-weight: 650 !important;
}

/* ==========================================================
   PRICE FILTER
========================================================== */

body.woocommerce-shop #secondary .widget_price_filter,
body.tax-product_cat #secondary .widget_price_filter,
body.tax-product_tag #secondary .widget_price_filter {
	width: 100% !important;
}

/* Slider track */
body.woocommerce-shop #secondary .price_slider_wrapper .ui-widget-content,
body.tax-product_cat #secondary .price_slider_wrapper .ui-widget-content,
body.tax-product_tag #secondary .price_slider_wrapper .ui-widget-content {
	position: relative !important;
	height: 4px !important;
	margin: 19px 7px 24px !important;
	border: 0 !important;
	border-radius: 999px !important;
	background: #d8d8d5 !important;
}

/* Selected price range */
body.woocommerce-shop #secondary .price_slider .ui-slider-range,
body.tax-product_cat #secondary .price_slider .ui-slider-range,
body.tax-product_tag #secondary .price_slider .ui-slider-range {
	height: 4px !important;
	border-radius: 999px !important;
	background: #111 !important;
}

/* Slider handles */
body.woocommerce-shop #secondary .price_slider .ui-slider-handle,
body.tax-product_cat #secondary .price_slider .ui-slider-handle,
body.tax-product_tag #secondary .price_slider .ui-slider-handle {
	top: -6px !important;
	width: 16px !important;
	height: 16px !important;
	margin-left: -8px !important;
	border: 2px solid #111 !important;
	border-radius: 50% !important;
	background: #fff !important;
	box-shadow: none !important;
	cursor: pointer !important;
}

/* Bottom row */
body.woocommerce-shop #secondary .price_slider_amount,
body.tax-product_cat #secondary .price_slider_amount,
body.tax-product_tag #secondary .price_slider_amount {
	display: flex !important;
	flex-direction: column !important;
	align-items: stretch !important;
	gap: 12px !important;
	text-align: left !important;
}

body.woocommerce-shop #secondary .price_slider_amount .price_label,
body.tax-product_cat #secondary .price_slider_amount .price_label,
body.tax-product_tag #secondary .price_slider_amount .price_label {
	order: 1 !important;
	color: #555 !important;
	font-size: .78rem !important;
	line-height: 1.4 !important;
}

body.woocommerce-shop #secondary .price_slider_amount .button,
body.tax-product_cat #secondary .price_slider_amount .button,
body.tax-product_tag #secondary .price_slider_amount .button {
	order: 2 !important;
	float: none !important;
	width: 100% !important;
	min-height: 39px !important;
	margin: 0 !important;
	padding: 0 15px !important;
	border: 1px solid #111 !important;
	border-radius: 6px !important;
	background: #111 !important;
	color: #fff !important;
	font-size: .67rem !important;
	font-weight: 700 !important;
	line-height: 1 !important;
	letter-spacing: .075em !important;
	text-transform: uppercase !important;
}

/* Keep sidebar slightly narrower / more elegant */
body.woocommerce-shop #secondary,
body.tax-product_cat #secondary,
body.tax-product_tag #secondary {
	width: 240px !important;
	max-width: 240px !important;
}

body.woocommerce-shop #content > .ast-container,
body.tax-product_cat #content > .ast-container,
body.tax-product_tag #content > .ast-container {
	grid-template-columns: 240px minmax(0, 1fr) !important;
	gap: 48px !important;
}


/* ==========================================================
   CARO SHOP — FINAL SIDEBAR POSITION + STICKY BEHAVIOUR
========================================================== */

/*
 * Keep the sidebar visually aligned beneath the Shop heading
 * and near the results/sorting controls rather than starting
 * too high beside the title.
 */

body.woocommerce-shop #secondary,
body.tax-product_cat #secondary,
body.tax-product_tag #secondary {
	position: sticky !important;
	top: 118px !important;
	align-self: flex-start !important;

	/* Vertical alignment with catalogue controls */
	margin-top: 112px !important;

	height: fit-content !important;
	max-height: calc(100vh - 145px);
	overflow-y: auto;
	overflow-x: hidden;

	z-index: 4;
}

/* Sticky requires ancestors not to clip the sidebar */

body.woocommerce-shop #content,
body.woocommerce-shop #content > .ast-container,
body.woocommerce-shop #primary,
body.tax-product_cat #content,
body.tax-product_cat #content > .ast-container,
body.tax-product_cat #primary,
body.tax-product_tag #content,
body.tax-product_tag #content > .ast-container,
body.tax-product_tag #primary {
	overflow: visible !important;
}

/* Sidebar itself */

body.woocommerce-shop #secondary .sidebar-main,
body.tax-product_cat #secondary .sidebar-main,
body.tax-product_tag #secondary .sidebar-main {
	width: 100%;
	margin: 0 !important;
}

/* Filter panel gets a controlled premium card */

body.woocommerce-shop #secondary .widget,
body.tax-product_cat #secondary .widget,
body.tax-product_tag #secondary .widget {
	margin: 0 0 18px !important;
	padding: 22px 20px !important;
	border: 1px solid #e4e3df !important;
	border-radius: 14px !important;
	background: #faf9f6 !important;
	box-shadow: 0 7px 25px rgba(0,0,0,.035);
}

/* Prevent an unnecessary double panel around consecutive filters */

body.woocommerce-shop #secondary .widget + .widget,
body.tax-product_cat #secondary .widget + .widget,
body.tax-product_tag #secondary .widget + .widget {
	margin-top: 16px !important;
}

/* Filter headings */

body.woocommerce-shop #secondary .widget-title,
body.tax-product_cat #secondary .widget-title,
body.tax-product_tag #secondary .widget-title {
	margin: 0 0 17px !important;
	padding: 0 0 12px !important;
	border-bottom: 1px solid #e2e1dd !important;

	color: #171717 !important;
	font-size: .73rem !important;
	font-weight: 750 !important;
	line-height: 1.2 !important;
	letter-spacing: .13em !important;
	text-transform: uppercase !important;
}

/* Category list */

body.woocommerce-shop #secondary .product-categories,
body.tax-product_cat #secondary .product-categories,
body.tax-product_tag #secondary .product-categories {
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

body.woocommerce-shop #secondary .product-categories li,
body.tax-product_cat #secondary .product-categories li,
body.tax-product_tag #secondary .product-categories li {
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

body.woocommerce-shop #secondary .product-categories li::before,
body.woocommerce-shop #secondary .product-categories li::after,
body.tax-product_cat #secondary .product-categories li::before,
body.tax-product_cat #secondary .product-categories li::after,
body.tax-product_tag #secondary .product-categories li::before,
body.tax-product_tag #secondary .product-categories li::after {
	display: none !important;
	content: none !important;
}

body.woocommerce-shop #secondary .product-categories a,
body.tax-product_cat #secondary .product-categories a,
body.tax-product_tag #secondary .product-categories a {
	display: block;
	margin: 2px 0;
	padding: 9px 10px;
	border-radius: 7px;

	color: #333 !important;
	font-size: .88rem;
	line-height: 1.4;
	text-decoration: none !important;

	transition:
		background .15s ease,
		color .15s ease;
}

body.woocommerce-shop #secondary .product-categories a:hover,
body.tax-product_cat #secondary .product-categories a:hover,
body.tax-product_tag #secondary .product-categories a:hover {
	background: #efeee9;
	color: #111 !important;
}

/* Nested categories */

body.woocommerce-shop #secondary .product-categories .children,
body.tax-product_cat #secondary .product-categories .children,
body.tax-product_tag #secondary .product-categories .children {
	margin: 4px 0 7px !important;
	padding: 0 0 0 10px !important;
	border: 0 !important;
}

/* Current category */

body.woocommerce-shop #secondary .product-categories .current-cat > a,
body.tax-product_cat #secondary .product-categories .current-cat > a,
body.tax-product_tag #secondary .product-categories .current-cat > a {
	background: #111 !important;
	color: #fff !important;
}


/* PRICE FILTER */

body.woocommerce-shop #secondary .price_slider_wrapper,
body.tax-product_cat #secondary .price_slider_wrapper,
body.tax-product_tag #secondary .price_slider_wrapper {
	padding-top: 5px;
}

body.woocommerce-shop #secondary .price_slider,
body.tax-product_cat #secondary .price_slider,
body.tax-product_tag #secondary .price_slider {
	margin: 10px 7px 23px !important;
	height: 4px !important;
	background: #deddd8 !important;
}

body.woocommerce-shop #secondary .ui-slider-range,
body.tax-product_cat #secondary .ui-slider-range,
body.tax-product_tag #secondary .ui-slider-range {
	background: #111 !important;
}

body.woocommerce-shop #secondary .ui-slider-handle,
body.tax-product_cat #secondary .ui-slider-handle,
body.tax-product_tag #secondary .ui-slider-handle {
	top: -6px !important;
	width: 16px !important;
	height: 16px !important;
	border: 2px solid #111 !important;
	border-radius: 50% !important;
	background: #fff !important;
}

body.woocommerce-shop #secondary .price_slider_amount,
body.tax-product_cat #secondary .price_slider_amount,
body.tax-product_tag #secondary .price_slider_amount {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

body.woocommerce-shop #secondary .price_label,
body.tax-product_cat #secondary .price_label,
body.tax-product_tag #secondary .price_label {
	order: 1;
	color: #555;
	font-size: .82rem;
	text-align: left;
}

body.woocommerce-shop #secondary .price_slider_amount .button,
body.tax-product_cat #secondary .price_slider_amount .button,
body.tax-product_tag #secondary .price_slider_amount .button {
	order: 2;
	float: none !important;
	width: 100% !important;
	min-height: 42px;

	border-radius: 6px !important;
	background: #111 !important;
	color: #fff !important;

	font-size: .71rem !important;
	font-weight: 700 !important;
	letter-spacing: .08em;
	text-transform: uppercase;
}


/* TABLET / MOBILE — sidebar becomes normal flow */

@media (max-width: 960px) {

	body.woocommerce-shop #secondary,
	body.tax-product_cat #secondary,
	body.tax-product_tag #secondary {
		position: static !important;
		top: auto !important;
		margin-top: 0 !important;
		max-height: none !important;
		overflow: visible !important;
	}
}


/* ==========================================================
   CARO SHOP — AUTHORITATIVE STICKY FILTER RAIL
   No independent scrollbar.
========================================================== */

@media (min-width: 961px) {

	body.woocommerce-shop #secondary,
	body.tax-product_cat #secondary,
	body.tax-product_tag #secondary {
		position: sticky !important;
		top: 108px !important;

		/*
		 * Align filter rail closer to result-count / sorting row,
		 * rather than beside the Shop H1.
		 */
		margin-top: 225px !important;

		align-self: flex-start !important;

		width: 240px !important;
		height: auto !important;
		min-height: 0 !important;
		max-height: none !important;

		overflow: visible !important;
		overflow-x: visible !important;
		overflow-y: visible !important;

		z-index: 5;
	}

	body.woocommerce-shop #secondary .sidebar-main,
	body.tax-product_cat #secondary .sidebar-main,
	body.tax-product_tag #secondary .sidebar-main,
	body.woocommerce-shop #secondary .widget-area,
	body.tax-product_cat #secondary .widget-area,
	body.tax-product_tag #secondary .widget-area {
		height: auto !important;
		min-height: 0 !important;
		max-height: none !important;
		overflow: visible !important;
	}

	/*
	 * Sticky elements cannot work correctly when an ancestor
	 * creates its own clipped scrolling context.
	 */
	body.woocommerce-shop #content,
	body.woocommerce-shop #content > .ast-container,
	body.woocommerce-shop #primary,
	body.tax-product_cat #content,
	body.tax-product_cat #content > .ast-container,
	body.tax-product_cat #primary,
	body.tax-product_tag #content,
	body.tax-product_tag #content > .ast-container,
	body.tax-product_tag #primary {
		overflow: visible !important;
	}
}


/* Normal-flow filters on tablet/mobile */

@media (max-width: 960px) {

	body.woocommerce-shop #secondary,
	body.tax-product_cat #secondary,
	body.tax-product_tag #secondary {
		position: static !important;
		top: auto !important;
		margin-top: 25px !important;

		width: 100% !important;
		height: auto !important;
		max-height: none !important;

		overflow: visible !important;
	}
}

