/* Site-wide refinements: product cards, category tree, size chart, footer. */

@font-face {
	font-family: 'Aptos';
	src: url('../fonts/aptos-regular.woff2') format('woff2');
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Aptos';
	src: url('../fonts/aptos-black.woff2') format('woff2');
	font-weight: 900;
	font-style: normal;
	font-display: swap;
}

body,
body h1,
body h2,
body h3,
body h4,
body h5,
body h6,
body .button,
body button,
body input,
body select,
body textarea {
	font-family: 'Aptos', system-ui, -apple-system, 'Segoe UI', Arial, sans-serif;
}

/* ------------------------------------------------- Equal product cards */
.woocommerce ul.products {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
}

.woocommerce ul.products li.product {
	display: flex;
	flex-direction: column;
	margin-bottom: 32px;
}

.woocommerce ul.products li.product .product-small.box {
	display: flex;
	flex-direction: column;
	height: 100%;
}

.woocommerce ul.products li.product .product-small.box .box-image {
	flex: 0 0 auto;
}

.woocommerce ul.products li.product .product-small.box .box-text {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	height: auto;
	padding-bottom: 0;
}

.woocommerce ul.products li.product .product-small.box .box-text .name,
.woocommerce ul.products li.product .product-small.box .box-text .category {
	flex: 0 0 auto;
}

.woocommerce ul.products li.product .product-small.box .box-text .price-wrapper,
.woocommerce ul.products li.product .product-small.box .box-text .price {
	margin-top: auto;
	padding-top: 8px;
}

.woocommerce ul.products li.product .product-small.box .box-text .name {
	min-height: 2.5em;
}

/* One discount badge per product card */
.woocommerce ul.products li.product .badge-container .badge,
.woocommerce ul.products li.product .onsale {
	font-weight: 900;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.woocommerce ul.products li.product .badge-container .badge + .badge {
	display: none;
}

/* ------------------------------------------------------- Category tree */
.widget_product_categories ul.product-categories,
.widget_product_categories ul.children {
	list-style: none;
	margin: 0;
	padding: 0;
}

.widget_product_categories ul.product-categories > li {
	position: relative;
	border-bottom: 1px solid #ececec;
}

.widget_product_categories li {
	position: relative;
}

.widget_product_categories li > a {
	display: block;
	padding: 10px 36px 10px 0;
	font-size: 14px;
	line-height: 1.3;
	color: #14140f;
}

.widget_product_categories li.current-cat > a,
.widget_product_categories li.current-cat-parent > a {
	font-weight: 900;
}

.widget_product_categories ul.children {
	padding-left: 14px;
}

.widget_product_categories ul.children li > a {
	font-size: 13px;
	padding: 8px 36px 8px 0;
}

/* Neutralise Flatsome's own dropdown arrow inside the widget */
.widget_product_categories li.cat-parent > a::after,
.widget_product_categories li.cat-parent > a::before,
.widget_product_categories li.menu-item-has-children > a::after,
.widget_product_categories li.menu-item-has-children > a::before {
	display: none !important;
	content: none !important;
}

.lh-cat-toggle {
	position: absolute;
	top: 6px;
	right: 0;
	width: 30px;
	height: 30px;
	padding: 0;
	border: 0;
	background: transparent;
	color: #14140f;
	cursor: pointer;
	z-index: 2;
}

.lh-cat-toggle span {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 10px;
	height: 10px;
	margin: -6px 0 0 -6px;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	transform: rotate(45deg);
	transition: transform 0.2s ease;
}

.lh-cat-toggle[aria-expanded="true"] span {
	margin-top: -3px;
	transform: rotate(-135deg);
}

.lh-js .lh-cat-has-children > ul.children {
	display: none;
}

.lh-js .lh-cat-has-children.lh-cat-open > ul.children {
	display: block;
}

/* No-JS: the full hierarchy stays visible and indented. */
html:not(.lh-js) .widget_product_categories ul.children {
	display: block;
}

/* ------------------------------------------------------------- Size chart */
.lh-size-chart-open {
	display: inline-block;
	margin: 8px 0 12px;
	padding: 0;
	border: 0;
	background: none;
	color: #14140f;
	font-size: 13px;
	line-height: 1.4;
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
}

.lh-size-chart h3 {
	margin: 0 0 12px;
	font-size: 20px;
	font-weight: 900;
}

.lh-size-chart p {
	font-size: 14px;
	line-height: 1.55;
	color: #333;
	margin: 0 0 12px;
}

.lh-size-chart-tables {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
}

.lh-size-chart-table h4 {
	margin: 0 0 8px;
	font-size: 15px;
	font-weight: 900;
	text-transform: uppercase;
}

.lh-size-chart-table table {
	width: 100%;
	border-collapse: collapse;
	font-size: 13px;
}

.lh-size-chart-table th,
.lh-size-chart-table td {
	padding: 6px 8px;
	border-bottom: 1px solid #e5e5e5;
	text-align: left;
}

.lh-size-chart-table th {
	background: #f4f3ef;
	font-weight: 700;
}

.lh-size-modal {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
}

.lh-size-modal[hidden] {
	display: none;
}

.lh-size-modal-backdrop {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.6);
}

.lh-size-modal-panel {
	position: relative;
	z-index: 1;
	max-width: 920px;
	width: 100%;
	max-height: 85vh;
	overflow: auto;
	padding: 32px;
	background: #ffffff;
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
}

.lh-size-modal-close {
	position: absolute;
	top: 8px;
	right: 12px;
	border: 0;
	background: none;
	font-size: 28px;
	line-height: 1;
	cursor: pointer;
}

body.lh-modal-open {
	overflow: hidden;
}

@media (max-width: 800px) {
	.lh-size-chart-tables {
		grid-template-columns: 1fr;
	}

	.lh-size-modal-panel {
		padding: 20px;
	}
}

/* ---------------------------------------------------------------- Footer */
.footer-2 .widget_custom_html .textwidget p {
	margin: 0 0 6px;
	line-height: 1.5;
}

.footer-2 .widget_custom_html .textwidget a:hover {
	text-decoration: underline;
}

/* Unified discount badge on shop cards and product pages */
.lh-onsale,
.woocommerce span.onsale,
.woocommerce ul.products li.product .onsale {
	display: inline-block;
	min-height: 0;
	min-width: 0;
	margin: 0;
	padding: 6px 10px;
	background: #14140f;
	color: #ffffff;
	font-size: 12px;
	font-weight: 900;
	line-height: 1;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	border-radius: 0;
}

.woocommerce ul.products li.product .badge-container .badge-inner.secondary,
.woocommerce ul.products li.product .badge-inner.on-sale {
	background: #14140f !important;
	color: #ffffff !important;
}

.woocommerce ul.products li.product .badge-inner.on-sale .onsale,
.woocommerce ul.products li.product .badge-inner .onsale {
	color: #ffffff;
	background: transparent;
	padding: 0;
}

.woocommerce div.product .product-gallery .lh-onsale {
	position: absolute;
	top: 12px;
	left: 12px;
	z-index: 3;
}

/* Collapse rules with enough weight to beat Flatsome's own tree styles */
.lh-js .widget_product_categories li.lh-cat-has-children:not(.lh-cat-open) > ul.children,
.lh-js .widget_product_categories li.lh-cat-has-children:not(.lh-cat-open) > ul.sub-menu {
	display: none !important;
}

.lh-js .widget_product_categories li.lh-cat-has-children.lh-cat-open > ul.children,
.lh-js .widget_product_categories li.lh-cat-has-children.lh-cat-open > ul.sub-menu {
	display: block !important;
}

html:not(.lh-js) .widget_product_categories li > ul.children {
	display: block !important;
}

/* ---- SMI shop archive cards: equal height, aligned info ---- */
.smi-shop-archive-products .products {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
}

.smi-shop-archive-products .products .product-small.col {
	display: flex;
	flex-direction: column;
	margin-bottom: 30px;
}

.smi-shop-archive-products .products .product-small .col-inner {
	display: flex;
	flex-direction: column;
	height: 100%;
}

.smi-shop-archive-products .products .product-small .box {
	display: flex;
	flex-direction: column;
	height: 100%;
}

.smi-shop-archive-products .products .product-small .box .box-image {
	flex: 0 0 auto;
}

.smi-shop-archive-products .products .product-small .box .box-text {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	height: auto;
	padding-bottom: 0;
}

.smi-shop-archive-products .products .product-small .box .box-text .name {
	min-height: 2.6em;
	margin-bottom: 4px;
}

.smi-shop-archive-products .products .product-small .box .box-text .category {
	min-height: 1.4em;
	margin-bottom: 6px;
	color: #5c5b54;
}

.smi-shop-archive-products .products .product-small .box .box-text .price-wrapper,
.smi-shop-archive-products .products .product-small .box .box-text .price {
	margin-top: auto;
	padding-top: 6px;
}

/* badge box must not stretch into the layout */
.smi-shop-archive-products .products .product-small .badge-container {
	pointer-events: none;
}

/* Equal card body height even when a product has no category line */
.smi-shop-archive-products .products .product-small .box .box-text {
	min-height: 124px;
}

.woocommerce ul.products li.product .box-text {
	min-height: 124px;
}

@media (max-width: 549px) {
	.smi-shop-archive-products .products .product-small .box .box-text,
	.woocommerce ul.products li.product .box-text {
		min-height: 132px;
	}
}

/* ================= Sidebar toggles: clean circular chevrons ================= */
.widget_product_categories li {
	position: relative;
}

.widget_product_categories li > a {
	padding-right: 44px;
}

.lh-cat-toggle,
.lh-widget-toggle {
	min-height: 0;
	max-height: 30px;
	line-height: 1;
	position: absolute;
	right: 0;
	top: 4px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	padding: 0;
	border: 1px solid #e2e0d8;
	border-radius: 50%;
	background: #ffffff;
	color: #14140f;
	cursor: pointer;
	transition: background 0.18s ease, border-color 0.18s ease;
}

.widget_product_categories ul.children .lh-cat-toggle {
	width: 26px;
	height: 26px;
}

.lh-cat-toggle span,
.lh-widget-toggle span {
	position: static;
	display: block;
	width: 7px;
	height: 7px;
	margin: -3px 0 0 0;
	border-right: 1.6px solid currentColor;
	border-bottom: 1.6px solid currentColor;
	transform: rotate(45deg);
	transition: transform 0.2s ease, margin 0.2s ease;
	flex: 0 0 auto;
}

.lh-cat-toggle[aria-expanded="true"] span,
.lh-widget-toggle[aria-expanded="true"] span {
	margin-top: 3px;
	transform: rotate(-135deg);
}

.lh-cat-toggle:hover,
.lh-cat-toggle:focus-visible,
.lh-widget-toggle:hover,
.lh-widget-toggle:focus-visible {
	background: #14140f;
	border-color: #14140f;
	color: #ffffff;
	outline: none;
}

/* Other sidebar widgets (FILTER BY, price, attributes): collapsed by default */
.lh-widgets .lh-collapsible-widget {
	position: relative;
}

.lh-widgets .lh-collapsible-widget .widget-title {
	padding-right: 44px;
}

.lh-widgets .lh-collapsible-widget .lh-widget-toggle {
	top: 4px;
	transform: none;
}

.lh-widgets .lh-collapsible-widget .lh-widget-body {
	display: none;
}

.lh-widgets .lh-collapsible-widget.lh-widget-open .lh-widget-body {
	display: block;
}

body:not(.lh-widgets) .lh-collapsible-widget .lh-widget-body {
	display: block;
}


