/*
Theme Name: Optimal Solutions — Shoptimizer Child
Theme URI: https://optimalsolutions.com/
Description: Shoptimizer child theme with the Optimal Solutions WooCommerce product experience.
Author: STORY
Template: shoptimizer
Version: 1.4.46
Text Domain: optimal-solutions
*/

:root {
	--osp-blue: #00457a;
	--osp-blue-dark: #00345d;
	--osp-ink: #142b3a;
	--osp-blue-pale: #f1f7fd;
}

/* Theme and commerce UI use Inter; Elementor typography remains editable. */
html,
body,
button,
input,
select,
textarea,
.site-header,
.main-navigation,
.woocommerce,
.site-footer {
	font-family: "Inter", sans-serif;
}

.os-announcement-bar {
	position: relative;
	z-index: 100;
	background: #b9dcf3;
	color: #102331;
	text-align: center;
}

.os-announcement-bar__inner {
	min-height: 32px;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 5px 20px;
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
	font-size: 16px;
	line-height: 1.35;
	letter-spacing: 0.02em;
}

.osp-featured-products-feed,
.osp-featured-products-feed .elementor-widget-shortcode,
.osp-featured-products-feed .elementor-widget-container,
.osp-featured-products-feed .elementor-shortcode,
.osp-featured-products-feed .woocommerce {
	width: 100%;
}

/* Figma 252:1030 — five equal-height dynamic WooCommerce product cards. */
.osp-featured-products-feed ul.products {
	display: grid !important;
	grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
	gap: 40px !important;
	align-items: stretch;
	margin: 0 !important;
}

.osp-featured-products-feed ul.products::before,
.osp-featured-products-feed ul.products::after {
	display: none !important;
}

.osp-featured-products-feed ul.products li.product {
	display: flex !important;
	flex-direction: column;
	width: auto !important;
	height: 380px;
	min-height: 380px;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden;
	background: #fff;
	border: 1px solid #d9e1e8;
	border-radius: 12px;
}

.osp-featured-products-feed .woocommerce-image__wrapper,
.osp-featured-products-feed .shoptimizer-plp-carousel-container,
.osp-featured-products-feed .shoptimizer-plp-image-wrapper {
	flex: 0 0 190px;
	height: 190px !important;
	min-height: 190px;
}

.osp-featured-products-feed .woocommerce-image__wrapper img {
	width: 100% !important;
	height: 190px !important;
	margin: 0 !important;
	padding: 10px;
	object-fit: contain !important;
}

.osp-featured-products-feed .woocommerce-card__header {
	display: flex !important;
	flex: 1 1 auto;
	flex-direction: column;
	gap: 8px;
	align-items: stretch;
	min-height: 0;
	padding: 16px !important;
	box-sizing: border-box;
	text-align: left;
}

.osp-featured-products-feed .woocommerce-loop-product__title {
	display: -webkit-box;
	order: 1;
	overflow: hidden;
	min-height: 34px;
	max-height: 34px;
	margin: 0 !important;
	font-size: 14px !important;
	font-weight: 700;
	line-height: 1.2 !important;
	text-transform: none !important;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.osp-featured-products-feed .product__categories {
	display: -webkit-box;
	order: 2;
	overflow: hidden;
	min-height: 29px;
	max-height: 29px;
	margin: 0 !important;
	font-size: 12px !important;
	line-height: 14px !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.osp-featured-products-feed .price {
	order: 3;
	margin: 0 !important;
	color: #00457a !important;
	font-size: 18px !important;
	line-height: 23px !important;
}

.osp-featured-products-feed .button,
.osp-featured-products-feed .added_to_cart {
	position: static !important;
	inset: auto !important;
	display: flex !important;
	flex: 0 0 40px !important;
	align-items: center;
	justify-content: center;
	order: 4;
	width: 100%;
	height: 40px !important;
	min-height: 40px;
	margin: auto 0 0 !important;
	padding: 8px 12px !important;
	transform: none !important;
	text-align: center;
	white-space: nowrap !important;
}

/* The Wholesale Quotes counter is injected inside Shoptimizer's cart wrapper.
 * Keep the quote and shopping-cart triggers inline at every breakpoint. */
body.header-4 .site-header-cart,
body.header-4 .shoptimizer-cart {
	flex-direction: row;
	flex-wrap: nowrap;
}

body.header-4 .shoptimizer-cart {
	display: flex;
	align-items: center;
	gap: 8px;
}

body.header-4 .shoptimizer-cart > .wws-wq-quote-counter-widget {
	display: flex !important;
	flex: 0 0 40px;
	align-items: center;
	margin: 0 !important;
}

/* Product-page wholesale quote action. The plugin default is a 12px text
 * link with a 26px target, which is too small beside the purchase actions. */
.single-product .os-product-form .wws-wq-quote-button-container {
	width: 100%;
	margin-top: 12px;
}

.single-product .os-product-form button.wws-wq-add-to-quote-button {
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 100% !important;
	min-height: 48px;
	padding: 12px 20px !important;
	border: 1px solid #00457a !important;
	border-radius: 5px !important;
	background: #f1f7fd !important;
	color: #00457a !important;
	font-family: Inter, sans-serif !important;
	font-size: 16px !important;
	font-weight: 600 !important;
	line-height: 1.25 !important;
	text-align: center;
}

.single-product .os-product-form button.wws-wq-add-to-quote-button .wws-wq-icon-wrapper {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	font-size: inherit !important;
}

.single-product .os-product-form button.wws-wq-add-to-quote-button:hover,
.single-product .os-product-form button.wws-wq-add-to-quote-button:focus-visible {
	background: #00457a !important;
	color: #fff !important;
}

@media (max-width: 992px) {
	.osp-featured-products-feed ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 24px !important;
	}
}

/* Keep the hero copy on the 1120px grid while the artwork reaches the viewport edge. */
@media (min-width: 1121px) {
	body.home .os-home-hero-image {
		width: calc(100% + ((100vw - 1120px) / 2));
		margin-right: calc((1120px - 100vw) / 2);
		background-size: contain;
		background-position: left center;
	}
}

@media (max-width: 600px) {
	.osp-featured-products-feed ul.products {
		grid-template-columns: 1fr !important;
	}
}

@media (max-width: 767px) {
	.os-sticky-cart__button {
		white-space: nowrap !important;
	}
}

/* Markets cards: keep the CTA label and arrow together on mobile. */
@media (max-width: 767px) {
	body.page-id-54 .osp-view-market-button .elementor-icon-box-wrapper {
		display: flex !important;
		flex-direction: row-reverse !important;
		align-items: center !important;
		justify-content: flex-end;
		gap: 10px !important;
	}

	body.page-id-54 .osp-view-market-button .elementor-icon-box-icon,
	body.page-id-54 .osp-view-market-button .elementor-icon-box-content {
		flex: 0 0 auto;
		width: auto !important;
		margin: 0 !important;
	}
}

/* Markets page final CTA: balanced mobile gutters and centered standard CTA. */
@media (max-width: 767px) {
	body.page-id-54 .os-markets-final-cta-content {
		box-sizing: border-box;
		padding: 40px 24px 34px !important;
	}

	body.page-id-54 .os-markets-final-cta-button {
		width: 100% !important;
		text-align: center !important;
	}

	body.page-id-54 .os-markets-final-cta-button .elementor-button {
		width: auto !important;
		margin-right: auto;
		margin-left: auto;
	}
}

/* About page: remove desktop-only image columns and fixed card heights on phones. */
@media (max-width: 767px) {
	body.page-id-316 .elementor-element-46f2684b {
		background-color: var(--osp-blue-pale) !important;
	}

	body.page-id-316 .os-about-scale,
	body.page-id-316 .os-about-scale .e-con,
	body.page-id-316 .os-about-scale-card,
	body.page-id-316 .os-about-difference,
	body.page-id-316 .os-about-difference .e-con,
	body.page-id-316 .os-about-final-cta,
	body.page-id-316 .os-about-final-cta .e-con {
		min-height: 0 !important;
	}

	body.page-id-316 .os-about-scale-card > .e-con:first-child,
	body.page-id-316 .os-about-difference-image,
	body.page-id-316 .os-about-final-cta-image {
		display: none !important;
	}

	body.page-id-316 .os-about-difference .elementor-widget-icon-box {
		min-height: 0 !important;
		padding-bottom: 24px !important;
	}

	body.page-id-316 .os-about-final-cta .elementor-heading-title,
	body.page-id-316 .os-about-final-cta p {
		color: #fff !important;
	}

	body.page-id-316 .os-about-final-cta .elementor-button {
		border-color: var(--osp-blue) !important;
		background: var(--osp-blue) !important;
		color: #fff !important;
	}
}

/* WooCommerce Blocks bypasses the classic WooCommerce button selectors. */
.wc-block-grid__product-add-to-cart .wp-block-button__link,
.wc-block-grid__product-add-to-cart .add_to_cart_button {
	border: 1px solid var(--osp-blue) !important;
	background: var(--osp-blue) !important;
	color: #fff !important;
}

.wc-block-grid__product-add-to-cart .wp-block-button__link:hover,
.wc-block-grid__product-add-to-cart .wp-block-button__link:focus,
.wc-block-grid__product-add-to-cart .add_to_cart_button:hover,
.wc-block-grid__product-add-to-cart .add_to_cart_button:focus {
	border-color: var(--osp-blue-dark) !important;
	background: var(--osp-blue-dark) !important;
	color: #fff !important;
}

/* Preserve the complete product image inside square WooCommerce grid cards. */
.woocommerce ul.products li.product img,
.os-shop-grid .os-shop-card__image img {
	aspect-ratio: 1;
	height: auto;
	object-fit: contain !important;
	object-position: center;
	width: 100%;
}

/* Consistent interactive feedback for site, Elementor, and WooCommerce buttons. */
:is(
	a.button,
	button.button,
	input.button,
	input[type="submit"],
	.elementor-button,
	.wp-element-button,
	.single_add_to_cart_button,
	.os-shop-filter-submit,
	.os-shop-filter-clear
) {
	transition: box-shadow 180ms ease, transform 180ms ease;
}

:is(
	a.button,
	button.button,
	input.button,
	input[type="submit"],
	.elementor-button,
	.wp-element-button,
	.single_add_to_cart_button,
	.os-shop-filter-submit,
	.os-shop-filter-clear
):hover {
	box-shadow: inset 0 0 0 999px rgba(8, 43, 67, 0.1), 0 4px 10px rgba(8, 43, 67, 0.14) !important;
	transform: translateY(-1px);
}

:is(
	a.button,
	button.button,
	input.button,
	input[type="submit"],
	.elementor-button,
	.wp-element-button,
	.single_add_to_cart_button,
	.os-shop-filter-submit,
	.os-shop-filter-clear
):active {
	box-shadow: inset 0 0 0 999px rgba(8, 43, 67, 0.14) !important;
	transform: translateY(0);
}

:is(
	a.button,
	button.button,
	input.button,
	input[type="submit"],
	.elementor-button,
	.wp-element-button,
	.single_add_to_cart_button,
	.os-shop-filter-submit,
	.os-shop-filter-clear
):focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 3px;
}

.site-content .os-shop-grid .os-shop-card__button:hover,
.site-content .os-shop-grid .os-shop-card__button:focus-visible {
	background: var(--os-shop-pale) !important;
	border-width: 1px !important;
	box-shadow: inset 0 0 0 999px rgba(8, 43, 67, 0.1), 0 4px 10px rgba(8, 43, 67, 0.14) !important;
}

/* Replace Shoptimizer/WooCommerce default accent colors with the OSP palette. */
.site-content a:not(.elementor-button):not(.button):not(.wp-element-button),
.woocommerce a:not(.elementor-button):not(.button):not(.wp-element-button) {
	color: var(--osp-blue);
}

.site-content a:not(.elementor-button):not(.button):not(.wp-element-button):hover,
.site-content a:not(.elementor-button):not(.button):not(.wp-element-button):focus,
.woocommerce a:not(.elementor-button):not(.button):not(.wp-element-button):hover,
.woocommerce a:not(.elementor-button):not(.button):not(.wp-element-button):focus {
	color: var(--osp-blue-dark);
}

.woocommerce a.button:not(.os-shop-card__button),
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.widget_shopping_cart a.button,
.wc-block-components-button,
.added_to_cart,
button[name="apply_coupon"],
button[name="update_cart"] {
	background-color: var(--osp-blue) !important;
	border-color: var(--osp-blue) !important;
	color: #fff !important;
}

.woocommerce a.button:not(.os-shop-card__button):hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.widget_shopping_cart a.button:hover,
.wc-block-components-button:hover,
.added_to_cart:hover,
button[name="apply_coupon"]:hover,
button[name="update_cart"]:hover {
	background-color: var(--osp-blue) !important;
	border-color: var(--osp-blue) !important;
	color: #fff !important;
}

.woocommerce-message,
.woocommerce-info {
	background-color: var(--osp-blue-pale) !important;
	border-color: var(--osp-blue) !important;
	color: var(--osp-ink) !important;
}

.woocommerce-message .message-inner,
.woocommerce-info .message-inner {
	background-color: transparent !important;
	color: inherit !important;
}

.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-message a:not(.button),
.woocommerce-info a:not(.button),
.woocommerce .star-rating,
.woocommerce p.stars a,
.woocommerce div.product p.stock,
.woocommerce-checkout p.woocommerce-thankyou-order-received {
	color: var(--osp-blue) !important;
}

.woocommerce span.onsale,
.woocommerce ul.products li.product .onsale,
.wc-block-grid__product-onsale,
.woocommerce-checkout p.woocommerce-thankyou-order-received::before,
#payment .payment_methods li.wc_payment_method > input[type="radio"]:first-child:checked + label::before,
#payment .payment_methods li.woocommerce-PaymentMethod > input[type="radio"]:first-child:checked + label::before {
	background-color: var(--osp-blue) !important;
	border-color: var(--osp-blue) !important;
	color: #fff !important;
}

.woocommerce input[type="checkbox"],
.woocommerce input[type="radio"],
.wc-block-components-checkbox__input,
.wc-block-components-radio-control__input {
	accent-color: var(--osp-blue);
}

.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a {
	background-color: var(--osp-blue) !important;
	color: #fff !important;
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce select:focus {
	border-color: var(--osp-blue) !important;
	box-shadow: 0 0 0 1px var(--osp-blue);
	outline: 0;
}

.osp-featured-products-feed ul.products li.product .button,
.osp-featured-products-feed ul.products li.product .added_to_cart {
	border: 1px solid #00457a;
	background: #f1f7fd;
	color: #00457a;
}

.osp-featured-products-feed ul.products li.product .button:hover,
.osp-featured-products-feed ul.products li.product .button:focus,
.osp-featured-products-feed ul.products li.product .added_to_cart:hover,
.osp-featured-products-feed ul.products li.product .added_to_cart:focus {
	border-color: #00457a;
	background: #dcecf9;
	color: #00457a;
}

.osp-clickable-market-card {
	position: relative;
}

.osp-clickable-market-card .osp-market-card-link-widget {
	position: absolute;
	z-index: 5;
	inset: 0;
	width: 100%;
	height: 100%;
}

.osp-clickable-market-card .osp-market-card-link-widget > .elementor-widget-container,
.osp-clickable-market-card .osp-market-card-link {
	display: block;
	width: 100%;
	height: 100%;
}

.osp-mobile-market-title,
.osp-mobile-market-cta {
	display: none;
}

.osp-clickable-market-card:focus-within {
	outline: 3px solid #f1f7fd;
	outline-offset: 3px;
}

/* Figma: homepage market cards are 548 x 140 within the 1120px two-column grid. */
body.home .osp-clickable-market-card {
	min-height: 140px;
}

/* Dynamic product feeds embedded in Market landing pages. */
.os-market-products {
	padding: 72px 0 88px;
}

.os-market-products .os-shop-shell {
	max-width: 1120px;
	padding-left: 0;
	padding-right: 0;
	width: calc(100% - 64px);
}

.os-market-products .os-shop-products__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	margin-bottom: 32px;
}

.os-market-products .os-shop-products__header h2 {
	margin: 0;
}

.os-market-products .os-market-products__shop-link {
	flex: 0 0 auto;
}

@media (max-width: 767px) {
	.os-market-products {
		padding: 48px 0 64px;
	}

	.os-market-products .os-shop-shell {
		width: calc(100% - 40px);
	}

	.os-market-products .os-shop-products__header {
		align-items: flex-start;
		flex-direction: column;
	}
}

.site-footer.os-footer .os-footer-inner {
	width: calc(100% - 60px);
	max-width: 1544px;
	padding-right: 0;
	padding-left: 0;
}

.site-footer.os-footer .os-footer-cols {
	width: 100%;
	max-width: none;
}

.site-footer.os-footer,
.site-footer.os-footer p,
.site-footer.os-footer span,
.site-footer.os-footer address,
.site-footer.os-footer li,
.site-footer.os-footer h1,
.site-footer.os-footer h2,
.site-footer.os-footer h3,
.site-footer.os-footer h4,
.site-footer.os-footer h5,
.site-footer.os-footer h6,
.site-footer.os-footer a,
.site-footer.os-footer a:hover,
.site-footer.os-footer a:focus {
	color: #fff !important;
}

@media (max-width: 1024px) {
	.site-footer.os-footer .os-footer-inner {
		width: calc(100% - 48px);
	}
}

@media (max-width: 600px) {
	.site-footer.os-footer .os-footer-inner {
		width: calc(100% - 32px);
	}

	.site-footer.os-footer,
	.site-footer.os-footer .os-footer-inner,
	.site-footer.os-footer .os-footer-brand,
	.site-footer.os-footer .os-footer-col,
	.site-footer.os-footer .os-footer-heading,
	.site-footer.os-footer .os-footer-menu,
	.site-footer.os-footer .os-footer-menu li,
	.site-footer.os-footer .os-footer-address {
		text-align: center !important;
	}

	.site-footer.os-footer .os-footer-inner {
		justify-items: center;
	}

	.site-footer.os-footer .os-footer-brand,
	.site-footer.os-footer .os-footer-col,
	.site-footer.os-footer .os-footer-menu {
		width: 100%;
	}

	.site-footer.os-footer .os-footer-logo {
		justify-content: center;
	}

	.site-footer.os-footer .os-footer-legal {
		justify-items: center;
		text-align: center !important;
	}

	.site-footer.os-footer .os-footer-story,
	.site-footer.os-footer .os-footer-privacy {
		justify-self: center;
	}

	.site-footer.os-footer .os-footer-copyright {
		text-align: center !important;
	}

	.site-footer.os-footer .os-footer-bubbles {
		top: 0;
		height: calc(100% - 156px);
		background-position: right bottom;
	}
}

body.elementor-page .site-content {
	padding-top: 0;
	padding-bottom: 0;
}

/* The minimal checkout header is clearer with the centered logo alone. */
body.min-ck.woocommerce-checkout .site-header > h1,
body.min-ck.woocommerce-checkout .header-4-inner > h1,
body.min-ck.woocommerce-checkout header h1 {
	display: none !important;
}

body.min-ck.woocommerce-checkout .site-header,
body.min-ck.woocommerce-checkout .header-4-inner {
	justify-content: center;
}

@media (min-width: 993px) {
	body.header-4 .header-4-container {
		padding: 16px 30px;
		background: #fff;
		height: 117px;
		min-height: 117px;
		border-bottom: 1px solid #e8edf0;
		box-shadow: none;
	}

	body.header-4 .header-4-inner {
		display: flex;
		align-items: center;
		min-height: 85px;
	}

	body.theme-shoptimizer.header-4:not(.full-width-header) .header-4-inner {
		max-width: 1544px;
		min-height: 85px;
	}

	body.header-4 .site-header {
		display: flex;
		align-items: center;
		height: 85px;
		margin-right: 44px;
		background: transparent;
	}

	body.header-4 .site-header .custom-logo-link img {
		width: auto;
		height: 75px;
		max-height: none;
		padding-bottom: 0;
	}

	body.header-4 .col-full-nav {
		display: flex;
		flex: 1 1 auto;
		align-items: center;
		height: 85px;
		background: transparent;
	}

	body.header-4 .main-navigation {
		display: flex;
		flex: 1 1 auto;
		align-items: center;
		justify-content: center;
		height: 85px;
		transform: translateY(0) !important;
	}

	body.header-4 .primary-navigation,
	body.header-4 .menu-primary-menu-container {
		display: flex;
		align-items: center;
		justify-content: center;
		height: 85px;
	}

	body.header-4 .menu-primary-menu-container > ul > li > a {
		display: flex;
		align-items: center;
		height: 85px;
		padding-right: 24px;
		padding-left: 24px;
		color: #111820;
		font-size: 17px;
		font-weight: 400;
		line-height: 1.4 !important;
		letter-spacing: 0;
	}

	body.header-4 .col-full-nav .shoptimizer-myaccount,
	body.header-4 .col-full-nav > .site-header-cart {
		display: flex;
		align-items: center;
		height: 85px;
	}

	/* Wholesale Quotes injects its counter immediately before the cart link.
	 * Keep both controls in one horizontal header row instead of allowing the
	 * quote counter to stack above the cart. */
	body.header-4 .col-full-nav > .site-header-cart,
	body.header-4 .shoptimizer-cart {
		flex-direction: row;
		flex-wrap: nowrap;
	}

	body.header-4 .shoptimizer-cart {
		display: flex;
		align-items: center;
		gap: 8px;
	}

	body.header-4 .shoptimizer-cart > .wws-wq-quote-counter-widget {
		display: flex !important;
		flex: 0 0 40px;
		align-items: center;
		margin: 0 !important;
	}

	body.header-4 .main-navigation ul.menu > li.menu-item-has-children > a::after {
		background-color: #111820;
	}

	body.header-4 .search-trigger {
		display: none;
	}

	body.header-4 .shoptimizer-myaccount {
		margin-left: 22px;
		padding-right: 22px;
	}

	body.header-4 .shoptimizer-myaccount svg,
	body.header-4 .shoptimizer-cart-icon svg {
		width: 26px;
		height: 26px;
		stroke: #111820;
	}

	body.header-4 .shoptimizer-cart .amount,
	body.header-4:not(.os-cart-count-enabled) .shoptimizer-cart .count {
		display: none;
	}

	body.header-4 .shoptimizer-cart .cart-contents {
		display: flex;
		position: relative;
		align-items: center;
		justify-content: center;
		width: 30px;
		height: 30px;
	}

	body.header-4 .shoptimizer-cart .cart-contents::before {
		display: block;
		width: 26px;
		height: 26px;
		content: "";
		background: #111820;
		-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='20' r='1'/%3E%3Ccircle cx='18' cy='20' r='1'/%3E%3Cpath d='M3 4h2l2.4 10.4a2 2 0 0 0 2 1.6h7.7a2 2 0 0 0 2-1.6L21 8H6'/%3E%3C/svg%3E") center / contain no-repeat;
		mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='20' r='1'/%3E%3Ccircle cx='18' cy='20' r='1'/%3E%3Cpath d='M3 4h2l2.4 10.4a2 2 0 0 0 2 1.6h7.7a2 2 0 0 0 2-1.6L21 8H6'/%3E%3C/svg%3E") center / contain no-repeat;
	}

	body.header-4.os-cart-count-enabled .shoptimizer-cart .count {
		display: flex;
		position: absolute;
		top: -7px;
		right: -9px;
		align-items: center;
		justify-content: center;
		min-width: 18px;
		height: 18px;
		padding: 0 5px;
		border: 2px solid #fff;
		border-radius: 999px;
		background: #102331;
		color: #fff;
		font-size: 10px;
		font-weight: 700;
		line-height: 14px;
	}

	body.header-4.os-cart-count-enabled .shoptimizer-cart .count::after {
		display: none;
	}
}

@media (max-width: 992px) {
	body.mobile-toggled .os-announcement-bar {
		visibility: hidden;
		z-index: 0;
	}

	body .main-navigation ul.menu li > a,
	body .main-navigation ul.menu li > .nolink {
		min-height: 48px;
		padding-top: 13px;
		padding-bottom: 13px;
		font-size: 17px;
		line-height: 1.3;
	}

	body .main-navigation ul.menu ul.sub-menu li > a {
		font-size: 16px !important;
	}

	.os-announcement-bar__inner {
		min-height: 36px;
		padding: 7px 16px;
		font-size: 13px;
	}

	body.theme-shoptimizer .site-header .custom-logo-link img,
	body.wp-custom-logo .site-header .custom-logo-link img,
	body.wp-custom-logo img.custom-logo {
		width: auto;
		height: 60px !important;
		max-height: 60px !important;
	}

	body.header-4 .shoptimizer-cart .cart-contents {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 36px;
		height: 36px;
	}

	body.header-4 .shoptimizer-cart .cart-contents::before {
		display: block;
		flex: 0 0 30px;
		width: 30px !important;
		height: 30px;
		content: "";
		background: #111820;
		-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='20' r='1'/%3E%3Ccircle cx='18' cy='20' r='1'/%3E%3Cpath d='M3 4h2l2.4 10.4a2 2 0 0 0 2 1.6h7.7a2 2 0 0 0 2-1.6L21 8H6'/%3E%3C/svg%3E") center / contain no-repeat;
		mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='20' r='1'/%3E%3Ccircle cx='18' cy='20' r='1'/%3E%3Cpath d='M3 4h2l2.4 10.4a2 2 0 0 0 2 1.6h7.7a2 2 0 0 0 2-1.6L21 8H6'/%3E%3C/svg%3E") center / contain no-repeat;
	}

	body.header-4 .shoptimizer-cart .amount {
		display: none;
	}

	body.header-4.os-cart-count-enabled .shoptimizer-cart .count {
		display: flex;
		position: absolute;
		top: -6px;
		right: -6px;
		align-items: center;
		justify-content: center;
		min-width: 18px;
		height: 18px;
		padding: 0 4px;
		border: 2px solid #fff;
		border-radius: 999px;
		background: #102331;
		color: #fff;
		font-size: 10px;
		font-weight: 700;
		line-height: 14px;
	}

	body.header-4.os-cart-count-enabled .shoptimizer-cart .count::after {
		display: none !important;
		content: none !important;
	}
}

@media (max-width: 992px) {
	body.home .os-home-hero-grid > .e-con-inner {
		display: flex;
		flex-direction: column;
		justify-content: flex-start;
	}

	body.home .os-home-hero-content {
		display: contents;
	}

	body.home .os-home-hero-eyebrow { order: 1; }
	body.home .os-home-hero-title { order: 2; }
	body.home .os-home-hero-tagline { order: 3; }
	body.home .os-home-hero-image {
		order: 4;
	}
	body.home .os-home-hero-description { order: 5; }
	body.home .osp-hero-actions { order: 6; }

	body.home .osp-clickable-market-card .osp-mobile-market-title,
	body.home .osp-clickable-market-card .osp-mobile-market-cta {
		display: block;
		position: absolute;
		left: 23px;
		z-index: 1;
		color: #fff;
	}

	body.home .osp-clickable-market-card .osp-mobile-market-title {
		bottom: 47px;
		font-size: 18px;
		font-weight: 700;
		line-height: 1.2;
	}

	body.home .osp-clickable-market-card .osp-mobile-market-cta {
		bottom: 20px;
		font-size: 14px;
		font-weight: 500;
		line-height: 1.2;
		text-decoration: underline;
	}
}

/* Homepage mobile composition. Semantic classes are stored in Elementor. */
@media (max-width: 767px) {
	body.home .os-home-hero-grid > .e-con-inner,
	body.home .os-home-hero-content,
	body.home .os-home-hero-content > *,
	body.home .os-home-hero-description,
	body.home .osp-hero-actions {
		text-align: center;
	}

	body.home .osp-hero-actions {
		justify-content: center;
		width: 100%;
	}

	body.home .os-home-clean-market-cards,
	body.home .os-home-clean-market-cards > .e-con,
	body.home .os-home-clean-market-cards > .e-con > .e-con {
		width: 100% !important;
		max-width: 100% !important;
	}

	body.home .os-home-clean-market-cards {
		gap: 24px;
	}

	body.home .os-home-clean-market-cards > .e-con {
		min-height: 360px !important;
	}

	body.home .os-home-clean-market-cards .elementor-widget-image {
		display: none;
	}

	body.home .os-home-difference .elementor-heading-title,
	body.home .os-home-featured .elementor-heading-title,
	body.home .os-home-featured p {
		text-align: center;
	}

	body.home .os-home-difference .e-con,
	body.home .os-home-difference .elementor-widget-icon-box {
		min-height: 0 !important;
	}

	body.home .os-home-difference .os-home-difference-image {
		display: none !important;
	}

	body.home .os-home-difference .elementor-widget-icon-box {
		padding-bottom: 24px !important;
	}

	body.home .os-home-featured .e-con,
	body.home .os-home-featured .elementor-widget-wrap,
	body.home .os-home-featured .elementor-widget-container {
		align-items: center;
	}

	body.home .os-home-featured .elementor-widget-button {
		width: 100%;
		text-align: center;
	}

	body.home .os-home-featured .elementor-widget-button .elementor-button {
		width: auto !important;
		margin-right: auto;
		margin-left: auto;
	}

	body.home .os-home-featured .osp-featured-products-feed .woocommerce-card__header,
	body.home .os-home-featured .osp-featured-products-feed .woocommerce-loop-product__title,
	body.home .os-home-featured .osp-featured-products-feed .product__categories,
	body.home .os-home-featured .osp-featured-products-feed .price {
		text-align: center;
	}

	body.home .os-home-featured .osp-featured-products-feed .woocommerce-image__wrapper img {
		display: block !important;
		margin-right: auto !important;
		margin-left: auto !important;
	}

	body.home .os-home-featured .osp-featured-products-feed .woocommerce-LoopProduct-link:has(img) {
		display: flex !important;
		justify-content: center;
	}

	body.home .os-home-featured .osp-featured-products-feed .woocommerce-loop-product__title {
		min-height: 43px;
		max-height: 43px;
		font-size: 18px !important;
		line-height: 1.2 !important;
	}

	body.home .os-home-shine .osp-clickable-market-card > .elementor-widget-heading {
		display: none;
	}
}
