/*
Theme Name: Söluturn
Theme URI: https://skrabek.com/themes/soluturn
Author: Skrabek Print Co.
Author URI: https://skrabek.com/
Description: Söluturn is a private WooCommerce theme fork maintained by Skrabek Print Co.
Requires at least: 5.8
Tested up to: 6.6
Requires PHP: 5.7
Version: 1.3.0
Update URI: https://skrabek.com/themes/soluturn
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Template: 
Text Domain: soluturn
Tags: e-commerce, four-columns, wide-blocks, block-patterns, block-styles, featured-images, full-site-editing, rtl-language-support, sticky-post, template-editing, threaded-comments, translation-ready
*/

:root {
	--soluturn-neutral-00: #ffffff;
	--soluturn-neutral-10: #f6f6f7;
	--soluturn-neutral-20: #dfdee4;
	--soluturn-neutral-40: #9291a5;
	--soluturn-neutral-30: #c8c8d2;
	--soluturn-neutral-60: #55546b;
	--soluturn-neutral-70: #3a394b;
	--soluturn-neutral-80: #282737;
	--soluturn-purple-50: #8b50e9;
	--soluturn-purple-60: #6f39c6;
	--soluturn-button-shadow-rest: inset 0 2px 2px rgba(255, 255, 255, 0.25), inset 0 -2px 2px rgba(0, 0, 0, 0.25);
	--soluturn-button-shadow-hover: 0 1px 2px rgba(39, 42, 61, 0.08), inset 0 2px 2px rgba(0, 0, 0, 0.25);
	--soluturn-button-shadow-outline: inset 0 2px 2px rgba(255, 255, 255, 0.25), inset 0 -2px 2px var(--soluturn-neutral-20);
	--soluturn-rating-star-empty: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.8l2.84 5.76 6.36.92-4.6 4.48 1.09 6.33L12 17.28 6.31 20.3l1.09-6.33L2.8 9.48l6.36-.92L12 2.8z' fill='none' stroke='%239291A5' stroke-width='1.8' stroke-linejoin='round'/%3E%3C/svg%3E");
	--soluturn-rating-star-full: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.8l2.84 5.76 6.36.92-4.6 4.48 1.09 6.33L12 17.28 6.31 20.3l1.09-6.33L2.8 9.48l6.36-.92L12 2.8z' fill='%23FFCE00' stroke='%23EB9B00' stroke-width='1.8' stroke-linejoin='round'/%3E%3C/svg%3E");
}

/*
 * Large button instances
 * Based on Figma node 1:499 in the Soluturn Theme Design System file.
 */
:where(
	.wp-block-button__link,
	.wp-element-button,
	input[type="submit"],
	.wc-block-components-button:not(.is-link)
):not(.wp-block-search__button) {
	background-color: var(--soluturn-neutral-80);
	border: 1px solid transparent;
	border-radius: 8px;
	box-shadow: var(--soluturn-button-shadow-rest);
	color: var(--soluturn-neutral-10);
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 15px;
	font-weight: 400;
	line-height: 15px;
	padding: 12px 24px;
	transition:
		background-color 160ms ease,
		border-color 160ms ease,
		box-shadow 160ms ease,
		color 160ms ease;
}

:where(
	.wp-block-button__link,
	.wp-element-button,
	input[type="submit"],
	.wc-block-components-button:not(.is-link)
):not(.wp-block-search__button):hover,
:where(
	.wp-block-button__link,
	.wp-element-button,
	input[type="submit"],
	.wc-block-components-button:not(.is-link)
):not(.wp-block-search__button):focus {
	background-color: var(--soluturn-neutral-70);
	box-shadow: var(--soluturn-button-shadow-hover);
	color: var(--soluturn-neutral-10);
}

/*
 * Transact variant for explicitly purple large buttons.
 */
:where(.wp-block-button__link, .wp-element-button, .wc-block-components-button:not(.is-link)).has-accent-purple-background-color {
	background-color: var(--soluturn-purple-60);
	color: var(--soluturn-neutral-10);
}

:where(.wp-block-button__link, .wp-element-button, .wc-block-components-button:not(.is-link)).has-accent-purple-background-color:hover,
:where(.wp-block-button__link, .wp-element-button, .wc-block-components-button:not(.is-link)).has-accent-purple-background-color:focus {
	background-color: var(--soluturn-purple-50);
	color: var(--soluturn-neutral-10);
}

/*
 * Header system
 * Based on Figma node 26:184 in the Soluturn Theme Design System file.
 */
.soluturn-header-shell {
	backdrop-filter: blur(14px);
	background-color: rgba(255, 255, 255, 0.9);
	border-bottom: 1px solid rgba(200, 200, 210, 0.91);
	position: relative;
	z-index: 1000;
}

.soluturn-header {
	align-items: center;
	column-gap: 32px;
	min-height: 64px;
	padding-top: 18px;
	padding-bottom: 18px;
}

.soluturn-header__brand {
	color: var(--soluturn-neutral-80);
	display: inline-flex;
	flex: 0 0 auto;
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 18px;
	font-weight: 400;
	letter-spacing: -0.025em;
	line-height: 1.5;
	text-decoration: none;
	white-space: nowrap;
}

.soluturn-header__brand:hover,
.soluturn-header__brand:focus {
	text-decoration: none;
}

.soluturn-header__brand-primary {
	color: var(--soluturn-neutral-80);
	font-weight: 700;
}

.soluturn-header__brand-secondary {
	color: var(--soluturn-neutral-70);
	font-weight: 400;
}

.soluturn-header__nav {
	flex: 1 1 auto;
	justify-content: flex-start;
}

.soluturn-header__nav .wp-block-navigation__container {
	align-items: center;
	column-gap: 22px;
	row-gap: 8px;
}

/* --- Classic nav (wp_nav_menu) --- */
.soluturn-classic-nav {
	display: flex;
	align-items: center;
	justify-content: flex-start;
}

.soluturn-classic-nav__list {
	display: flex;
	align-items: center;
	gap: 22px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.soluturn-classic-nav__list li {
	position: relative;
}

.soluturn-classic-nav__list > li > a {
	color: var(--soluturn-neutral-80);
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 13px;
	font-weight: 400;
	line-height: 1.5;
	text-decoration: none;
	padding: 8px 0;
	display: block;
}

.soluturn-classic-nav__list > li > a:hover,
.soluturn-classic-nav__list > li > a:focus {
	color: var(--soluturn-purple-60);
}

.soluturn-classic-nav__list > li.current-menu-item > a,
.soluturn-classic-nav__list > li.current_page_item > a {
	color: var(--soluturn-purple-60);
	font-weight: 500;
}

/* Desktop sub-menus (matches filter chip dropdown) */
.soluturn-classic-nav__list .sub-menu {
	display: none;
	position: absolute;
	top: 100%;
	background: var(--soluturn-neutral-00);
	border: 1px solid rgba(40, 39, 55, 0.12);
	border-radius: 10px;
	box-shadow: 0 6px 16px rgba(0, 0, 0, 0.08);
	min-width: 180px;
	padding: 4px;
	padding-top: 4px;
	list-style: none;
	z-index: 10000;
	margin-top: 0;
}

/* Invisible hover bridge so the mouse can travel from parent to dropdown */
.soluturn-classic-nav__list .sub-menu::before {
	content: "";
	position: absolute;
	top: -12px;
	left: 0;
	right: 0;
	height: 12px;
}

.soluturn-classic-nav__list > li {
	padding-bottom: 8px;
	margin-bottom: -8px;
}

.soluturn-classic-nav__list > li:hover > .sub-menu {
	display: block;
}

.soluturn-classic-nav__list .sub-menu li a {
	border-radius: 6px;
	color: var(--soluturn-neutral-80);
	display: block;
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 13px;
	font-weight: 500;
	padding: 6px 10px;
	text-decoration: none;
	transition: background-color 120ms ease;
	white-space: nowrap;
}

.soluturn-classic-nav__list .sub-menu li a:hover,
.soluturn-classic-nav__list .sub-menu li a:focus {
	background: var(--soluturn-neutral-10);
	color: var(--soluturn-neutral-80);
}

.soluturn-classic-nav__list .sub-menu li.current-menu-item a,
.soluturn-classic-nav__list .sub-menu li.current_page_item a {
	background: rgba(111, 57, 198, 0.08);
	color: var(--soluturn-purple-60);
}

/* Hamburger — hidden on desktop */
.soluturn-classic-nav__hamburger {
	display: none;
	background: transparent;
	border: 0;
	color: var(--soluturn-purple-60);
	padding: 0;
	cursor: pointer;
	min-width: 24px;
	min-height: 24px;
}

.soluturn-classic-nav__hamburger:hover,
.soluturn-classic-nav__hamburger:focus {
	color: var(--soluturn-purple-50);
}

/* Mobile overlay — hidden on desktop */
.soluturn-classic-nav__overlay {
	/* on desktop, just a transparent pass-through */
}

.soluturn-classic-nav__close {
	display: none;
}

.soluturn-classic-nav__submenu-toggle {
	display: none;
}

.soluturn-header__nav .wp-block-navigation-item__content,
.soluturn-header__nav .wp-block-pages-list__item__link {
	color: var(--soluturn-neutral-80);
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 13px;
	font-weight: 400;
	line-height: 1.5;
	padding: 0;
	text-decoration: none;
}

.soluturn-header__nav .wp-block-navigation-item__content:hover,
.soluturn-header__nav .wp-block-navigation-item__content:focus,
.soluturn-header__nav .wp-block-pages-list__item__link:hover,
.soluturn-header__nav .wp-block-pages-list__item__link:focus {
	color: var(--soluturn-purple-60);
	text-decoration: none;
}

/* --- Desktop submenu dropdowns (matches filter chip dropdown) --- */
.soluturn-header__nav .wp-block-navigation__submenu-container {
	background: var(--soluturn-neutral-00);
	border: 1px solid rgba(40, 39, 55, 0.12);
	border-radius: 10px;
	box-shadow: 0 6px 16px rgba(0, 0, 0, 0.08);
	min-width: 180px;
	padding: 4px;
	margin-top: 4px;
	left: 50%;
	transform: translateX(-50%);
}

.soluturn-header__nav .wp-block-navigation__submenu-container .wp-block-navigation-item {
	width: 100%;
}

.soluturn-header__nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	border-radius: 6px;
	color: var(--soluturn-neutral-80);
	display: block;
	font-size: 13px;
	font-weight: 500;
	padding: 6px 10px;
	transition: background-color 120ms ease;
	white-space: nowrap;
}

.soluturn-header__nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
.soluturn-header__nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:focus {
	background: var(--soluturn-neutral-10);
	color: var(--soluturn-neutral-80);
}

.soluturn-header__nav .wp-block-navigation__submenu-container .current-menu-item > .wp-block-navigation-item__content {
	background: rgba(111, 57, 198, 0.08);
	color: var(--soluturn-purple-60);
}

/* Submenu caret/arrow on parent items */
.soluturn-header__nav .wp-block-navigation-submenu__toggle {
	color: var(--soluturn-neutral-80);
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 13px;
	font-weight: 400;
	gap: 4px;
}

.soluturn-header__nav .wp-block-navigation-submenu__toggle svg {
	width: 8px;
	height: 5px;
	transition: transform 200ms ease;
}

.soluturn-header__actions {
	flex: 0 0 auto;
}

.soluturn-header__actions.wp-block-group {
	gap: 24px;
}

.soluturn-header__studios {
	margin: 0;
}

.soluturn-header__studios-menu,
.soluturn-header__studios-list {
	margin: 0;
	padding: 0;
}

.soluturn-header__studios-list {
	align-items: center;
	display: flex;
	gap: 0;
	list-style: none;
}

.soluturn-header__studios-list li {
	margin: 0;
}

.soluturn-header__studios a {
	align-items: center;
	color: var(--soluturn-neutral-70);
	display: inline-flex;
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 13px;
	font-weight: 400;
	gap: 4px;
	line-height: 1.5;
	text-decoration: none;
}

.soluturn-header__studios a::after {
	content: "\2197";
	font-size: 16px;
	line-height: 1;
}

.soluturn-header__studios--back a::before {
	content: "\2190";
	font-size: 16px;
	line-height: 1;
}

.soluturn-header__studios--back a::after {
	content: none;
}

.soluturn-header__studios a:hover,
.soluturn-header__studios a:focus {
	color: var(--soluturn-purple-60);
	text-decoration: none;
}

/* --- Cart button (PHP-rendered) --- */
.soluturn-cart-btn {
	align-items: center;
	background: var(--soluturn-purple-60);
	border: 0;
	border-radius: 8px;
	box-shadow: var(--soluturn-button-shadow-rest);
	color: var(--soluturn-neutral-00);
	display: inline-flex;
	gap: 6px;
	height: 39px;
	justify-content: center;
	padding: 0 14px;
	text-decoration: none;
	transition: background-color 160ms ease, box-shadow 160ms ease;
}

.soluturn-cart-btn:hover,
.soluturn-cart-btn:focus {
	background: var(--soluturn-purple-50);
	box-shadow: var(--soluturn-button-shadow-hover);
	color: var(--soluturn-neutral-00);
	text-decoration: none;
}

.soluturn-cart-btn__icon {
	width: 18px;
	height: 18px;
	flex-shrink: 0;
}

.soluturn-cart-btn__count {
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 13px;
	font-weight: 600;
	line-height: 1;
}

.soluturn-header__nav .wp-block-navigation__responsive-container-open,
.soluturn-header__nav .wp-block-navigation__responsive-container-close {
	background: transparent;
	border: 0;
	box-shadow: none;
	color: var(--soluturn-purple-60);
	min-height: 24px;
	min-width: 24px;
	padding: 0;
}

.soluturn-header__nav .wp-block-navigation__responsive-container-open:hover,
.soluturn-header__nav .wp-block-navigation__responsive-container-open:focus,
.soluturn-header__nav .wp-block-navigation__responsive-container-close:hover,
.soluturn-header__nav .wp-block-navigation__responsive-container-close:focus {
	background: transparent;
	color: var(--soluturn-purple-50);
}

/* --- Mobile overlay menu (full-screen white) --- */
.soluturn-header__nav .wp-block-navigation__responsive-container.is-menu-open {
	background: var(--soluturn-neutral-00);
	padding: 24px !important;
	display: flex;
	flex-direction: column;
}

.soluturn-header__nav .wp-block-navigation__responsive-container-content {
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	display: flex;
	flex-direction: column;
	gap: 0;
	flex: 1;
}

/* Mobile nav items — large, tappable */
.soluturn-header__nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	color: var(--soluturn-neutral-80);
	font-size: 20px;
	font-weight: 500;
	padding: 14px 0;
	border-bottom: 1px solid var(--soluturn-neutral-20);
	display: block;
	width: 100%;
}

.soluturn-header__nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:hover,
.soluturn-header__nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:focus {
	color: var(--soluturn-purple-60);
}

/* Mobile submenu items — indented, smaller */
.soluturn-header__nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
	background: transparent;
	border: none;
	box-shadow: none;
	padding: 0 0 0 16px;
	margin: 0;
	position: static;
	transform: none;
	min-width: 0;
	width: 100%;
}

.soluturn-header__nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	font-size: 16px;
	font-weight: 400;
	color: var(--soluturn-neutral-60);
	padding: 10px 0;
}

/* Close button in mobile overlay */
.soluturn-header__nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
	position: absolute;
	top: 24px;
	right: 24px;
	z-index: 10;
}

/* Mobile submenu toggle arrow */
.soluturn-header__nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu__toggle {
	font-size: 20px;
	font-weight: 500;
	padding: 14px 0;
	border-bottom: 1px solid var(--soluturn-neutral-20);
	width: 100%;
	justify-content: space-between;
}

/* --- Mobile cart button (injected via JS into overlay) --- */
.soluturn-mobile-cart-btn {
	display: none;
}

@media (max-width: 782px) {
	.soluturn-header {
		column-gap: 12px;
	}

	.soluturn-header__brand {
		flex: 1 1 auto;
		font-size: 18px;
		order: 2;
	}

	.soluturn-header__nav {
		flex: 0 0 auto;
		order: 1;
	}

	.soluturn-header__actions {
		flex: 0 0 auto;
		gap: 0;
		order: 3;
	}

	.soluturn-header__studios {
		display: none;
	}

	/* Mobile cart button at bottom of overlay */
	.soluturn-mobile-cart-btn {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 10px;
		width: 100%;
		background: var(--soluturn-purple-60);
		color: var(--soluturn-neutral-00);
		border: none;
		border-radius: 10px;
		box-shadow: var(--soluturn-button-shadow-rest);
		font-family: "Bricolage Grotesque", Arial, sans-serif;
		font-size: 16px;
		font-weight: 500;
		padding: 16px 24px;
		margin-top: auto;
		cursor: pointer;
		text-decoration: none;
		transition: background-color 160ms ease, box-shadow 160ms ease;
	}

	.soluturn-mobile-cart-btn:hover,
	.soluturn-mobile-cart-btn:focus {
		background: var(--soluturn-purple-50);
		box-shadow: var(--soluturn-button-shadow-hover);
		color: var(--soluturn-neutral-00);
	}

	.soluturn-mobile-cart-btn svg {
		width: 20px;
		height: 20px;
		fill: currentColor;
	}

	.soluturn-mobile-cart-btn__dot {
		width: 4px;
		height: 4px;
		border-radius: 50%;
		background: rgba(255, 255, 255, 0.5);
		flex-shrink: 0;
	}

	/* --- Classic nav mobile --- */

	/* Hide the desktop nav list entirely — only hamburger + cart visible */
	.soluturn-classic-nav__list {
		display: none !important;
	}

	.soluturn-classic-nav__hamburger {
		display: block;
	}

	/* Mobile overlay list (cloned) */
	.soluturn-classic-nav__list--mobile {
		display: flex !important;
		flex-direction: column;
		gap: 0;
		width: 100%;
		padding-top: 60px;
		list-style: none;
		margin: 0;
		padding-left: 0;
	}

	.soluturn-classic-nav__list--mobile > li > a,
	.soluturn-classic-nav__list--mobile .sub-menu li a {
		font-family: "Bricolage Grotesque", Arial, sans-serif;
		font-size: 28px;
		font-weight: 500;
		padding: 12px 0;
		border: none;
		display: block;
		color: var(--soluturn-neutral-80);
		text-decoration: none;
	}

	.soluturn-classic-nav__list--mobile .sub-menu li a {
		color: var(--soluturn-neutral-60);
	}

	.soluturn-classic-nav__list--mobile > li > a:hover,
	.soluturn-classic-nav__list--mobile > li > a:focus,
	.soluturn-classic-nav__list--mobile .sub-menu li a:hover,
	.soluturn-classic-nav__list--mobile .sub-menu li a:focus {
		color: var(--soluturn-purple-60);
	}

	.soluturn-classic-nav__overlay {
		display: none;
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		height: 100dvh;
		background: var(--soluturn-neutral-00);
		z-index: 9999;
		padding: 24px;
		flex-direction: column;
		overflow-y: auto;
		box-sizing: border-box;
	}

	.soluturn-classic-nav__overlay.is-open {
		display: flex;
	}

	.soluturn-classic-nav__close {
		display: block;
		position: absolute;
		top: 24px;
		right: 24px;
		background: transparent;
		border: 0;
		color: var(--soluturn-purple-60);
		padding: 0;
		cursor: pointer;
		min-width: 24px;
		min-height: 24px;
		z-index: 10;
	}

	.soluturn-classic-nav__close:hover,
	.soluturn-classic-nav__close:focus {
		color: var(--soluturn-purple-50);
	}

	/* Sub-menus always open, no indent, no lines */
	.soluturn-classic-nav__list--mobile .sub-menu {
		display: block !important;
		position: static;
		transform: none;
		background: transparent;
		border: none;
		box-shadow: none;
		padding: 0;
		margin: 0;
		min-width: 0;
		list-style: none;
	}

	/* Hide accordion toggles */
	.soluturn-classic-nav__submenu-toggle {
		display: none !important;
	}

	/* Cart button pinned to bottom of overlay */
	.soluturn-classic-nav__overlay .soluturn-mobile-cart-btn {
		margin-top: auto;
		flex-shrink: 0;
		padding: 16px 24px;
		box-sizing: border-box;
	}

	/* Hide desktop sub-menu hover on mobile */
	.soluturn-classic-nav__list > li:hover > .sub-menu {
		display: none;
	}
}

/*
 * Accordion / details block
 * Based on Figma node 26:321 in the Soluturn Theme Design System file.
 */
.wp-block-details {
	background: var(--soluturn-neutral-00);
	border: 1px solid var(--soluturn-neutral-30);
	border-radius: 8px;
	box-sizing: border-box;
	padding: 0;
}

.wp-block-details summary {
	align-items: center;
	color: var(--soluturn-neutral-80);
	cursor: pointer;
	display: flex;
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 24px;
	font-weight: 600;
	gap: 8px;
	line-height: 1.4;
	list-style: none;
	margin: 0;
	padding: 16px;
	line-height: 1.4;
	list-style: none;
	margin: 0;
}

.wp-block-details summary::-webkit-details-marker {
	display: none;
}

.wp-block-details summary::marker {
	display: none;
}

.wp-block-details summary::after {
	border-right: 2px solid currentColor;
	border-top: 2px solid currentColor;
	content: "";
	display: block;
	height: 8px;
	margin-left: auto;
	transform-origin: center;
	transition: transform 300ms cubic-bezier(0.4, 0, 0.2, 1);
	width: 8px;
}

.wp-block-details[open] summary::after {
	transform: rotate(-45deg) translateY(-1px);
}

.wp-block-details:not([open]) summary::after {
	transform: rotate(135deg) translateY(1px);
}

/* Animated accordion content wrapper */
.wp-block-details .soluturn-accordion__body {
	display: grid;
	grid-template-rows: 1fr;
	opacity: 1;
	transition: grid-template-rows 350ms cubic-bezier(0.4, 0, 0.2, 1),
	            opacity 250ms ease;
}

/* Collapsed state -- applied by JS */
.wp-block-details .soluturn-accordion__body.soluturn-acc--collapsed {
	grid-template-rows: 0fr;
	opacity: 0;
}

.wp-block-details .soluturn-accordion__body > .soluturn-accordion__inner {
	overflow: hidden;
	min-height: 0;
}

.wp-block-details > *:not(summary):not(.soluturn-accordion__body) {
	color: var(--soluturn-neutral-80);
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 18px;
	font-weight: 400;
	line-height: 1.4;
	margin-top: 8px;
}

.soluturn-accordion__inner > * {
	color: var(--soluturn-neutral-80);
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 18px;
	font-weight: 400;
	line-height: 1.4;
}

.soluturn-accordion__inner > *:first-child {
	margin-top: 12px;
}


.wp-block-details > p:last-child,
.wp-block-details > div:last-child > p:last-child {
	margin-bottom: 0;
}

/*
 * Banner / alert system
 * Based on Figma node 29:1201 in the Soluturn Theme Design System file.
 */
.soluturn-banner,
.woocommerce-error,
.woocommerce-info,
.woocommerce-message,
.wc-block-components-notice-banner {
	--soluturn-banner-accent: var(--soluturn-neutral-50);
	background: var(--soluturn-neutral-00) !important;
	border: 2px solid var(--soluturn-banner-accent) !important;
	border-radius: 16px !important;
	box-shadow: 0 4px 0 0 var(--soluturn-banner-accent) !important;
	box-sizing: border-box;
	color: var(--soluturn-neutral-80);
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin: 0;
	overflow: clip;
	padding: 16px !important;
}

.soluturn-banner--message {
	--soluturn-banner-accent: var(--soluturn-neutral-50);
}

.soluturn-banner--success,
.woocommerce-message,
.wc-block-components-notice-banner.is-success {
	--soluturn-banner-accent: var(--wp--preset--color--accent-green);
}

.soluturn-banner--info,
.woocommerce-info,
.wc-block-components-notice-banner.is-info {
	--soluturn-banner-accent: var(--wp--preset--color--accent-purple);
}

.soluturn-banner--warning {
	--soluturn-banner-accent: var(--wp--preset--color--accent-yellow);
}

.soluturn-banner--error,
.woocommerce-error,
.wc-block-components-notice-banner.is-error {
	--soluturn-banner-accent: var(--wp--preset--color--accent-red);
}

.soluturn-banner__title,
.woocommerce-error::before,
.woocommerce-info::before,
.woocommerce-message::before,
.wc-block-components-notice-banner > svg {
	display: none;
}

.soluturn-banner__title {
	color: var(--soluturn-neutral-80);
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 14px;
	font-style: normal;
	font-weight: 500;
	line-height: 20px;
	letter-spacing: 0;
	margin: 0;
}

.soluturn-banner__body,
.woocommerce-error,
.woocommerce-info,
.woocommerce-message,
.woocommerce-error li,
.woocommerce-info li,
.woocommerce-message li,
.woocommerce-error p,
.woocommerce-info p,
.woocommerce-message p {
	color: var(--soluturn-neutral-80);
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 14px;
	font-style: normal;
	font-weight: 400;
	line-height: 20px;
	letter-spacing: 0;
}

.soluturn-banner__body {
	margin: 0;
}

.woocommerce-error,
.woocommerce-info,
.woocommerce-message,
.wc-block-components-notice-banner {
	list-style: none;
	margin-bottom: var(--wp--preset--spacing--40);
	padding-left: 16px;
}

.wc-block-components-notice-banner__content {
	color: var(--soluturn-neutral-80);
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 14px;
	font-weight: 400;
	line-height: 20px;
}

.woocommerce-error li,
.woocommerce-info li,
.woocommerce-message li {
	margin: 0;
}

.woocommerce-error a,
.woocommerce-info a,
.woocommerce-message a,
.soluturn-banner a {
	font-weight: 600;
}

/*
 * Rating system
 * Based on Figma node 30:58 in the Soluturn Theme Design System file.
 */
.soluturn-rating,
.woocommerce .star-rating,
.wc-block-components-product-rating__stars .star-rating,
.wc-block-grid__product-rating__stars .star-rating {
	--soluturn-rating-star-size: 16px;
	color: transparent;
	display: inline-block;
	font-family: inherit !important;
	font-size: 0 !important;
	height: var(--soluturn-rating-star-size);
	line-height: 1;
	position: relative;
	vertical-align: middle;
	width: calc(var(--soluturn-rating-star-size) * 5);
}

.soluturn-rating::before,
.woocommerce .star-rating::before,
.wc-block-components-product-rating__stars .star-rating::before,
.wc-block-grid__product-rating__stars .star-rating::before {
	background-image: var(--soluturn-rating-star-empty);
	background-position: left center;
	background-repeat: repeat-x;
	background-size: var(--soluturn-rating-star-size) var(--soluturn-rating-star-size);
	content: "";
	inset: 0;
	opacity: 1;
	position: absolute;
}

.soluturn-rating > span,
.woocommerce .star-rating span,
.wc-block-components-product-rating__stars .star-rating span,
.wc-block-grid__product-rating__stars .star-rating span {
	display: block;
	height: 100%;
	left: 0;
	overflow: hidden;
	padding-top: 0 !important;
	position: absolute;
	top: 0;
}

.soluturn-rating > span::before,
.woocommerce .star-rating span::before,
.wc-block-components-product-rating__stars .star-rating span::before,
.wc-block-grid__product-rating__stars .star-rating span::before {
	background-image: var(--soluturn-rating-star-full);
	background-position: left center;
	background-repeat: repeat-x;
	background-size: var(--soluturn-rating-star-size) var(--soluturn-rating-star-size);
	content: "";
	height: 100%;
	left: 0;
	position: absolute;
	top: 0;
	width: calc(var(--soluturn-rating-star-size) * 5);
}

.soluturn-rating--xs {
	--soluturn-rating-star-size: 12px;
}

.soluturn-rating--sm {
	--soluturn-rating-star-size: 16px;
}

.soluturn-rating--md {
	--soluturn-rating-star-size: 24px;
}

.soluturn-rating--lg {
	--soluturn-rating-star-size: 32px;
}

.soluturn-rating-summary,
.wc-block-components-product-rating__container,
.wc-block-grid__product-rating,
.woocommerce .woocommerce-product-rating {
	align-items: center;
	color: var(--soluturn-neutral-80);
	column-gap: 4px;
	display: inline-flex;
	flex-wrap: wrap;
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 14px;
	font-weight: 400;
	line-height: 20px;
	row-gap: 4px;
}

.soluturn-rating-summary {
	--soluturn-rating-summary-color: var(--soluturn-neutral-80);
	--soluturn-rating-summary-hover-color: var(--soluturn-purple-50);
	color: var(--soluturn-rating-summary-color);
}

.soluturn-rating-summary--link {
	--soluturn-rating-summary-color: var(--soluturn-purple-60);
}

.soluturn-rating-summary--value,
.wc-block-components-product-rating__container .wc-block-components-product-rating__rating,
.woocommerce .star-rating + strong,
.woocommerce .woocommerce-product-rating .average-rating {
	color: var(--soluturn-rating-summary-color, var(--soluturn-neutral-80));
	font-size: 14px;
	font-style: normal;
	font-weight: 500;
	line-height: 20px;
}

.soluturn-rating-summary--count,
.wc-block-components-product-rating__reviews_count,
.wc-block-grid__product-rating__reviews,
.woocommerce-review-link {
	color: var(--soluturn-rating-summary-color, var(--soluturn-neutral-80));
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 14px;
	font-style: normal;
	font-weight: 400;
	line-height: 20px;
	text-decoration: none;
}

.soluturn-rating-summary--link .soluturn-rating-summary--value,
.soluturn-rating-summary--link .soluturn-rating-summary--count,
.wc-block-components-product-rating__container a,
.wc-block-grid__product-rating a,
.woocommerce-review-link {
	color: var(--soluturn-purple-60);
}

.soluturn-rating-summary--link:hover .soluturn-rating-summary--value,
.soluturn-rating-summary--link:hover .soluturn-rating-summary--count,
.soluturn-rating-summary--link:focus-within .soluturn-rating-summary--value,
.soluturn-rating-summary--link:focus-within .soluturn-rating-summary--count,
.wc-block-components-product-rating__container a:hover,
.wc-block-components-product-rating__container a:focus,
.wc-block-grid__product-rating a:hover,
.wc-block-grid__product-rating a:focus,
.woocommerce-review-link:hover,
.woocommerce-review-link:focus {
	color: var(--soluturn-purple-60);
	text-decoration: underline;
	text-decoration-color: currentcolor;
	text-decoration-thickness: 1px;
	text-underline-offset: 2px;
}

.wc-block-grid__product-rating,
.wc-block-components-product-rating {
	color: var(--soluturn-neutral-80);
}

.wc-block-grid__product-rating__stars .star-rating,
.wc-block-components-product-rating__stars .star-rating,
.products .star-rating,
.wc-block-grid__product-rating .star-rating {
	--soluturn-rating-star-size: 16px;
	margin: 0;
}

.soluturn-pdp__info .wc-block-components-product-rating__stars .star-rating,
.soluturn-pdp__info .star-rating {
	--soluturn-rating-star-size: 24px;
}

.wc-block-components-product-rating__reviews_count a {
	color: inherit;
	text-decoration: inherit;
}

/*
 * Control the hover stylings of outline block style.
 * Large outline buttons mirror the Figma large-button outline variant.
 */
.wp-block-button.is-style-outline > .wp-block-button__link:not(.has-background) {
	background-color: var(--soluturn-neutral-00);
	border-color: var(--soluturn-neutral-30);
	box-shadow: var(--soluturn-button-shadow-outline);
	color: var(--soluturn-neutral-80);
}

.wp-block-button.is-style-outline > .wp-block-button__link:not(.has-background):hover,
.wp-block-button.is-style-outline > .wp-block-button__link:not(.has-background):focus {
	background-color: var(--soluturn-neutral-20);
	border-color: var(--soluturn-neutral-30);
	box-shadow: var(--soluturn-button-shadow-hover);
	color: var(--soluturn-neutral-80);
}

/*
 * Link styles
 * https://github.com/WordPress/gutenberg/issues/42319
 */
a {
	text-decoration-color: var(--wp--preset--color--primary);
	text-decoration-thickness: 0.5px !important;
	text-underline-offset: 0.05em;
}

/* Reset browser default margins for blockquote element */
.wp-block-pullquote blockquote {
	margin: 0;
}

/* Search button inside style */
.wp-block-search__button-inside .wp-block-search__inside-wrapper {
	padding: 4px;
}

/* Adjust font size for comment reply title */
.wp-block-post-comments-form .comment-reply-title {
	font-size: var(--wp--preset--font-size--large);
}

/* Remove the bottom margin from the button */
.wp-block-post-comments-form .form-submit {
	margin-bottom: 0;
}

/*
 * Responsive menu container padding.
 * Overridden by .soluturn-header__nav specific rules above.
 */
.wp-block-navigation__responsive-container.is-menu-open {
	padding: 24px;
}

/* Adjust the top padding for the submenu items */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-container {
	padding-top: 0;
}

/* Override the Gutenberg style to theme style */
.wp-block-post-author__byline,
.wp-block-post-author__bio {
	font-size: inherit;
}

/* Round the avatar and reset the vertical alignment */
.wp-block-post-author__avatar img {
	border-radius: 999px;
	line-height: 0;
}

/* Style tag cloud outline style  */
.wp-block-tag-cloud.is-style-outline a {
	border-color: var(--wp--preset--color--tertiary);
	border-radius: 999px;
	padding: 0 0.5rem;
}

.wp-block-tag-cloud.is-style-outline a:hover {
	color: var(--wp--preset--color--base);
	background-color: var(--wp--preset--color--primary);
}

/* Remove the default margin from author bio */
.wp-block-post-author__bio {
	margin: 0;
}

/* Remove the default margin from term description. */
.wp-block-term-description p:first-child {
	margin-top: 0;
}

.wp-block-term-description p:last-child {
	margin-bottom: 0;
}

/* Normalise font sizes for the latest comments and latest posts widgets */
.wp-block-latest-comments__comment-excerpt p,
.wp-block-latest-comments__comment-date,
.wp-block-latest-posts__post-author,
.wp-block-latest-posts__post-date {
	font-size: inherit;
}

/* Adjust font colour in the Calendar widget */
.wp-block-calendar table:where(:not(.has-text-color)) {
	color: var(--wp--preset--color--foreground);
}

/* Fix border radius setting for the avatar block */
.wp-block-avatar a,
.wp-block-avatar img {
	border-radius: inherit;
	vertical-align: middle;
}

/* Fix line height for various fields */
.wp-block-search__input,
.wp-block-post-comments-form .comment-form input:not([type=submit]):not([type=checkbox]),
.wp-block-post-comments-form .comment-form textarea {
	line-height: inherit;
}

/*
 * Text input system
 * Based on Figma node 29:206 in the Soluturn Theme Design System file.
 */
:where(
	input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]):not([type="color"]):not([type="hidden"]),
	select,
	textarea,
	.wp-block-search__input,
	.input-text
) {
	background-color: var(--soluturn-neutral-00);
	border: 1px solid var(--soluturn-neutral-30);
	border-radius: 8px;
	box-shadow: none;
	color: var(--soluturn-neutral-80);
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 15px;
	font-weight: 400;
	line-height: 15px;
	min-height: 44px;
	padding: 12px;
	transition:
		border-color 160ms ease,
		color 160ms ease,
		box-shadow 160ms ease;
}

:where(
	input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]):not([type="color"]):not([type="hidden"]),
	select,
	textarea,
	.wp-block-search__input,
	.input-text
)::placeholder {
	color: var(--soluturn-neutral-50);
	opacity: 1;
}

:where(
	input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]):not([type="color"]):not([type="hidden"]),
	select,
	textarea,
	.wp-block-search__input,
	.input-text
):focus {
	border-color: var(--soluturn-neutral-70);
	box-shadow: none;
	color: var(--soluturn-neutral-80);
	outline: none;
}

textarea {
	line-height: 1.4;
	min-height: 132px;
	resize: vertical;
}

select {
	background-position: right 12px center;
	padding-right: 40px;
}

:where(
	.wp-block-post-comments-form .comment-form label,
	.wp-block-jetpack-contact-form.contact-form label,
	.woocommerce form .form-row label,
	.woocommerce-page form .form-row label
) {
	color: var(--soluturn-neutral-80);
	display: block;
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 15px;
	font-weight: 600;
	line-height: 15px;
	margin-bottom: 8px;
}

:where(
	.wp-block-jetpack-contact-form.contact-form label span,
	.woocommerce form .form-row .optional,
	.woocommerce-page form .form-row .optional
) {
	color: var(--soluturn-neutral-60);
	opacity: 1;
}

:where(
	.wp-block-jetpack-contact-form .contact-form__input-error,
	.wp-block-jetpack-contact-form .contact-form__warning,
	.woocommerce form .form-row .description,
	.woocommerce-page form .form-row .description,
	.woocommerce form .form-row .woocommerce-input-wrapper + .description,
	.woocommerce-page form .form-row .woocommerce-input-wrapper + .description
) {
	color: var(--soluturn-neutral-60);
	display: block;
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 12px;
	font-weight: 400;
	line-height: 15px;
	margin-top: 8px;
}

:where(
	.woocommerce form .form-row.woocommerce-invalid input.input-text,
	.woocommerce form .form-row.woocommerce-invalid select,
	.woocommerce form .form-row.woocommerce-invalid textarea,
	.woocommerce-page form .form-row.woocommerce-invalid input.input-text,
	.woocommerce-page form .form-row.woocommerce-invalid select,
	.woocommerce-page form .form-row.woocommerce-invalid textarea,
	.wp-block-jetpack-contact-form .is-error input,
	.wp-block-jetpack-contact-form .is-error select,
	.wp-block-jetpack-contact-form .is-error textarea
) {
	border-color: var(--wp--preset--color--accent-red);
	color: var(--wp--preset--color--accent-red);
}

:where(
	.woocommerce form .form-row.woocommerce-invalid label,
	.woocommerce-page form .form-row.woocommerce-invalid label,
	.woocommerce form .form-row.woocommerce-invalid .required,
	.woocommerce-page form .form-row.woocommerce-invalid .required,
	.woocommerce form .form-row.woocommerce-invalid .description,
	.woocommerce-page form .form-row.woocommerce-invalid .description
) {
	color: var(--wp--preset--color--accent-red);
}

.wp-block-jetpack-contact-form.contact-form label {
	font-weight: 600;
}

.wp-block-jetpack-contact-form.contact-form label span {
	opacity: 0.7;
}

.wp-block-jetpack-contact-form.contact-form select {
	padding: 0.5rem;
}

.wp-block-jetpack-contact-form.contact-form textarea {
	margin-bottom: var(--wp--preset--spacing--40);
}

/* Style the feedback you get after submitting the contact form */
div[id^="contact-form-"] h4 {
	font-size: var(--wp--preset--font-size--medium);
	font-weight: inherit;
	line-height: 1.555555556;
}

div[id^="contact-form-"] .contact-form-submission {
	margin: 0;
	padding: 0;
}

/* Adjust vertical margins in the mailchimp block */
.wp-block-jetpack-mailchimp .wp-block-jetpack-button,
.wp-block-jetpack-mailchimp p {
	margin: var(--wp--preset--spacing--40) 0;
}

/* Adjust the size of the consent text in mailchimp block */
#wp-block-jetpack-mailchimp_consent-text {
	font-size: var(--wp--preset--font-size--small);
	margin-bottom: 0;
}

/* Remove underline from the price after discounted */
ins {
	text-decoration: none;
}

/* Fix the hardcoded wide width value in the stylesheet for TT3 */
.woocommerce.woocommerce-page main {
	max-width: calc(var(--wp--style--global--wide-size) + var(--wp--style--root--padding-right) + var(--wp--style--root--padding-left));
}

/*
 * Theme-owned cart override.
 * MEC-inspired layout rebuilt with Söluturn surfaces, spacing, and typography.
 * Keeps WooCommerce cart mechanics and WooPayments hooks intact.
 */
.woocommerce-cart .wp-site-blocks {
	background: var(--soluturn-neutral-00);
}

.woocommerce-cart .entry-content > .woocommerce,
.woocommerce-cart .editor-styles-wrapper > .woocommerce {
	margin-top: var(--wp--preset--spacing--50);
	margin-bottom: var(--wp--preset--spacing--80);
}

/* ---- Cart shell ---- */
.soluturn-cart-shell {
	display: grid;
	gap: var(--wp--preset--spacing--50);
}

.soluturn-cart-shell__header {
	padding-bottom: var(--wp--preset--spacing--40);
}

.soluturn-cart-shell__title {
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 600;
	letter-spacing: normal;
	line-height: 1.1;
	margin: 0;
	text-transform: none;
}

/* ---- Two-column layout ---- */
.soluturn-cart-layout {
	align-items: start;
	display: grid;
	gap: var(--wp--preset--spacing--50);
	grid-template-columns: minmax(0, 1fr) 320px;
}

.soluturn-cart-form,
.soluturn-cart-sidebar {
	min-width: 0;
}

/* ---- Delivery banner (green bar like MEC) ---- */
.soluturn-cart-form__delivery-banner {
	align-items: center;
	background: rgba(5, 166, 149, 0.08);
	border: 1px solid rgba(5, 166, 149, 0.16);
	border-radius: 12px;
	color: var(--soluturn-neutral-80);
	display: flex;
	font-size: var(--wp--preset--font-size--small);
	gap: 10px;
	margin-bottom: var(--wp--preset--spacing--40);
	padding: 14px 18px;
}

.soluturn-cart-form__delivery-icon {
	flex-shrink: 0;
	font-size: 1.1rem;
}

/* ---- Cart items ---- */
.soluturn-cart-items {
	display: grid;
	gap: var(--wp--preset--spacing--40);
}

.soluturn-cart-item {
	background-color: var(--soluturn-neutral-00);
	border: 1px solid rgba(58, 57, 75, 0.12);
	border-radius: 16px;
	display: grid;
	gap: var(--wp--preset--spacing--40);
	grid-template-columns: 120px minmax(0, 1fr);
	padding: 20px;
}

.soluturn-cart-item__media {
	align-items: start;
	display: flex;
	justify-content: center;
}

.soluturn-cart-item__media img {
	aspect-ratio: 1 / 1;
	background: var(--soluturn-neutral-10);
	border-radius: 12px;
	display: block;
	height: auto;
	max-width: 120px;
	object-fit: cover;
	width: 100%;
}

.soluturn-cart-item__content {
	display: grid;
	gap: 12px;
}

.soluturn-cart-item__details {
	display: grid;
	gap: 4px;
}

.soluturn-cart-item__title {
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 500;
	letter-spacing: normal;
	line-height: 1.3;
	margin: 0;
	text-transform: none;
}

.soluturn-cart-item__title a {
	color: var(--soluturn-purple-60);
	text-decoration: none;
}

.soluturn-cart-item__title a:hover,
.soluturn-cart-item__title a:focus {
	text-decoration: underline;
}

.soluturn-cart-item__sku {
	color: var(--soluturn-neutral-70);
	font-size: var(--wp--preset--font-size--x-small);
}

.soluturn-cart-item__meta,
.soluturn-cart-item__meta p,
.soluturn-cart-item__meta dl {
	color: var(--soluturn-neutral-70);
	font-size: var(--wp--preset--font-size--x-small);
	margin: 0;
}

.soluturn-cart-item__meta dd,
.soluturn-cart-item__meta dt {
	margin: 0;
}

.soluturn-cart-item__meta:empty {
	display: none;
}

.soluturn-cart-item__price {
	color: var(--soluturn-neutral-80);
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 600;
}

/* ---- Cart item footer: quantity + remove ---- */
.soluturn-cart-item__footer {
	align-items: center;
	display: flex;
	gap: 16px;
	justify-content: space-between;
}

/* Quantity wrap: [Ã¢Ë†â€™] input [+] Ã¢â‚¬â€ reset global button styles */
.soluturn-cart-item__quantity-wrap {
	align-items: center;
	background: var(--soluturn-neutral-10);
	border: 1px solid rgba(58, 57, 75, 0.14);
	border-radius: 8px;
	display: inline-flex;
	overflow: hidden;
}

.soluturn-qty-btn {
	align-items: center;
	appearance: none;
	-webkit-appearance: none;
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	color: var(--soluturn-neutral-70);
	cursor: pointer;
	display: inline-flex;
	font-size: 1.1rem;
	height: 40px;
	justify-content: center;
	line-height: 1;
	outline: none;
	padding: 0 !important;
	transition: background-color 120ms ease, color 120ms ease;
	width: 40px;
}

.soluturn-qty-btn:hover {
	background: var(--soluturn-neutral-20) !important;
	color: var(--soluturn-neutral-80);
}

.soluturn-qty-btn:focus-visible {
	background: var(--soluturn-neutral-20) !important;
	color: var(--soluturn-neutral-80);
}

.soluturn-cart-item__quantity-wrap .quantity {
	margin: 0;
}

.soluturn-cart-item__quantity-wrap .qty {
	-moz-appearance: textfield;
	appearance: textfield;
	background: transparent;
	border: 0;
	border-left: 1px solid rgba(58, 57, 75, 0.14);
	border-radius: 0;
	border-right: 1px solid rgba(58, 57, 75, 0.14);
	box-shadow: none;
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: var(--wp--preset--font-size--medium);
	height: 40px;
	min-height: 0;
	padding: 0;
	text-align: center;
	width: 3rem;
}

.soluturn-cart-item__quantity-wrap .qty::-webkit-inner-spin-button,
.soluturn-cart-item__quantity-wrap .qty::-webkit-outer-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

/* Remove link */
.soluturn-cart-item__actions .remove {
	align-items: center;
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	color: var(--soluturn-neutral-70) !important;
	display: inline-flex;
	float: none;
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 500;
	gap: 4px;
	height: auto;
	line-height: 1.2;
	padding: 0 !important;
	text-decoration: none;
	width: auto;
}

.soluturn-cart-item__actions .remove:hover,
.soluturn-cart-item__actions .remove:focus {
	background: transparent !important;
	box-shadow: none !important;
	color: var(--soluturn-purple-60) !important;
}

/* ---- Coupon + update ---- */
.soluturn-cart-actions {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	justify-content: space-between;
	margin-top: var(--wp--preset--spacing--40);
}

.soluturn-cart-actions__coupon {
	align-items: center;
	display: flex;
	flex: 1 1 20rem;
	gap: 10px;
}

.soluturn-cart-actions__coupon .input-text {
	background-color: var(--soluturn-neutral-00);
	border: 1px solid var(--soluturn-neutral-30);
	border-radius: 8px;
	box-shadow: none;
	color: var(--soluturn-neutral-80);
	flex: 1 1 auto;
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 15px;
	font-weight: 400;
	line-height: 15px;
	margin: 0;
	max-height: 49px;
	min-height: 44px;
	padding: 12px;
	transition:
		border-color 160ms ease,
		color 160ms ease,
		box-shadow 160ms ease;
}

.soluturn-cart-actions__coupon .input-text::placeholder {
	color: var(--soluturn-neutral-50);
	opacity: 1;
}

.soluturn-cart-actions__coupon .input-text:focus {
	border-color: var(--soluturn-neutral-70);
	box-shadow: none;
	color: var(--soluturn-neutral-80);
	outline: none;
}

/* Outline style for Apply coupon button */
.soluturn-cart-actions__coupon .button {
	background-color: var(--soluturn-neutral-00) !important;
	border: 1px solid var(--soluturn-neutral-30) !important;
	box-shadow: var(--soluturn-button-shadow-outline) !important;
	color: var(--soluturn-neutral-80) !important;
}

.soluturn-cart-actions__coupon .button:hover,
.soluturn-cart-actions__coupon .button:focus {
	background-color: var(--soluturn-neutral-10) !important;
	border-color: var(--soluturn-neutral-30) !important;
	box-shadow: var(--soluturn-button-shadow-hover) !important;
	color: var(--soluturn-neutral-80) !important;
}

/* Outline style for Update cart button */
.soluturn-cart-actions__update .button {
	background-color: var(--soluturn-neutral-00) !important;
	border: 1px solid var(--soluturn-neutral-30) !important;
	box-shadow: var(--soluturn-button-shadow-outline) !important;
	color: var(--soluturn-neutral-80) !important;
}

.soluturn-cart-actions__update .button:hover,
.soluturn-cart-actions__update .button:focus {
	background-color: var(--soluturn-neutral-10) !important;
	border-color: var(--soluturn-neutral-30) !important;
	box-shadow: var(--soluturn-button-shadow-hover) !important;
	color: var(--soluturn-neutral-80) !important;
}

.soluturn-cart-actions__update {
	display: flex;
	justify-content: flex-end;
}

/* ---- Cart loading overlay ---- */
.soluturn-cart-form {
	position: relative;
}

.soluturn-cart-loading {
	align-items: center;
	background: rgba(255, 255, 255, 0.7);
	bottom: 0;
	display: flex;
	justify-content: center;
	left: 0;
	opacity: 0;
	pointer-events: none;
	position: absolute;
	right: 0;
	top: 0;
	transition: opacity 0.2s ease;
	z-index: 10;
}

.soluturn-cart-form.is-updating .soluturn-cart-loading {
	opacity: 1;
	pointer-events: auto;
}

.soluturn-cart-spinner {
	animation: soluturn-spin 0.8s linear infinite;
	border: 3px solid var(--soluturn-neutral-20, #e5e5e5);
	border-radius: 50%;
	border-top-color: var(--soluturn-purple-60);
	height: 32px;
	width: 32px;
}

@keyframes soluturn-spin {
	to { transform: rotate(360deg); }
}

/* ---- Hide the WP page title Ã¢â‚¬â€ our shell title replaces it ---- */
.woocommerce-cart .wp-block-post-title {
	display: none !important;
}

/* ---- Sidebar ---- */
.soluturn-cart-sidebar {
	position: sticky;
	top: 2rem;
}

/* Remove inherited margin-top on cart-collaterals */
.woocommerce-page .cart-collaterals,
.woocommerce .cart-collaterals {
	margin-top: 0 !important;
}

/* Override woocommerce-layout.css: width:48% + float:right */
.woocommerce .cart-collaterals .soluturn-cart-totals,
.woocommerce-page .cart-collaterals .soluturn-cart-totals {
	float: none;
	width: 100%;
}

.soluturn-cart-totals {
	display: grid;
	gap: var(--wp--preset--spacing--40);
}

/* ---- Summary card ---- */
.soluturn-summary-card,
.soluturn-support-card {
	background-color: var(--soluturn-neutral-00);
	border: 1px solid rgba(58, 57, 75, 0.12);
	border-radius: 16px;
	padding: 24px;
}

/* Override twenty-twenty-three.css: .woocommerce-page .cart-collaterals h2 { text-transform: uppercase } */
.soluturn-summary-card__title,
.woocommerce-page .cart-collaterals .soluturn-summary-card__title {
	font-size: var(--wp--preset--font-size--large);
	font-weight: 600;
	letter-spacing: normal;
	line-height: 1.2;
	margin: 0;
	text-transform: none !important;
}

.soluturn-summary-card__shipping-note {
	align-items: center;
	background: rgba(5, 166, 149, 0.06);
	border-radius: 8px;
	color: var(--soluturn-neutral-80);
	display: flex;
	font-size: var(--wp--preset--font-size--x-small);
	gap: 8px;
	margin-top: 16px;
	padding: 10px 14px;
}

.soluturn-summary-card__shipping-icon {
	flex-shrink: 0;
}

.soluturn-summary-card .shop_table {
	border: 0;
	border-collapse: separate;
	border-spacing: 0;
	margin: 16px 0 0;
	width: 100%;
}

.soluturn-summary-card .shop_table th,
.soluturn-summary-card .shop_table td {
	border-top: 1px solid rgba(58, 57, 75, 0.1);
	padding: 12px 0;
	vertical-align: top;
}

.soluturn-summary-card .shop_table tr:first-child th,
.soluturn-summary-card .shop_table tr:first-child td {
	border-top: 0;
	padding-top: 0;
}

.soluturn-summary-card .shop_table th {
	color: var(--soluturn-neutral-70);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 500;
	text-align: left;
	text-transform: none;
}

.soluturn-summary-card .shop_table td {
	color: var(--soluturn-neutral-80);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	text-align: right;
}

.soluturn-summary-card .order-total th {
	color: var(--soluturn-neutral-80);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
}

.soluturn-summary-card .order-total td {
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 700;
}

.soluturn-summary-card__fine-print {
	color: var(--soluturn-neutral-70);
	font-size: var(--wp--preset--font-size--x-small);
	line-height: 1.5;
	margin: 4px 0 0;
}

.soluturn-summary-card__checkout {
	display: grid;
	gap: 12px;
	margin-top: 20px;
}

/* Remove inherited margin-top on WooCommerce buttons */
.woocommerce a.button,
.woocommerce button.single_add_to_cart_button,
.woocommerce button[name="add-to-cart"],
.woocommerce button[type="submit"]:not(.wp-block-search__button),
.woocommerce input[name="submit"],
.woocommerce-page a.button,
.woocommerce-page button.single_add_to_cart_button,
.woocommerce-page button[name="add-to-cart"],
.woocommerce-page button[type="submit"]:not(.wp-block-search__button),
.woocommerce-page input[name="submit"] {
	margin-top: 0 !important;
}

/* Keep all children of the checkout area properly contained */
.soluturn-summary-card__checkout > * {
	box-sizing: border-box;
	max-width: 100%;
}

/*
 * BNPL messaging (Affirm, Afterpay, Klarna, etc.) inside order summary.
 *
 * These widgets are injected by payment plugins and can use absolute
 * positioning or negative margins that clash with the checkout CTA.
 * We force them into a self-contained block, ordered ABOVE the CTA
 * so they never overlap it.
 */
.soluturn-summary-card__checkout .affirm-as-low-as,
.soluturn-summary-card__checkout [id*="affirm"],
.soluturn-summary-card__checkout [class*="affirm"],
.soluturn-summary-card #afterpay-cta-mini-cart,
.soluturn-summary-card .wc-block-components-payment-method-icons,
.soluturn-summary-card .afterpay-clearpay-message,
.soluturn-summary-card__checkout .afterpay-clearpay-message,
.soluturn-summary-card__checkout [id*="afterpay"],
.soluturn-summary-card__checkout [class*="afterpay"],
.soluturn-summary-card__checkout [class*="klarna"] {
	box-sizing: border-box;
	clear: both;
	display: block;
	font-size: var(--wp--preset--font-size--x-small);
	margin: 0;
	max-width: 100%;
	order: -1;                /* Before the CTA in the grid flow */
	overflow: hidden;
	padding: 0;
	position: relative !important; /* Trap any abs-positioned children */
	width: 100%;
	z-index: 1;
}

/* Checkout CTA */
.soluturn-summary-card__checkout .checkout-button {
	background-color: var(--soluturn-purple-60) !important;
	box-sizing: border-box;
	color: var(--soluturn-neutral-10) !important;
	display: inline-flex;
	justify-content: center;
	order: 0;
	position: relative;
	text-decoration: none;
	width: 100%;
	z-index: 2;
}

.soluturn-summary-card__checkout .checkout-button:hover,
.soluturn-summary-card__checkout .checkout-button:focus {
	background-color: var(--soluturn-purple-50) !important;
	color: var(--soluturn-neutral-10) !important;
}

/* Express pay (Google / Apple Pay) — after the CTA */
.soluturn-summary-card__checkout .wcpay-express-checkout-wrapper {
	display: grid;
	gap: 12px;
	order: 1;
}

.soluturn-summary-card__checkout #wcpay-express-checkout-button-separator {
	color: var(--soluturn-neutral-70);
	font-size: 12px;
	letter-spacing: 0.06em;
	margin: 0;
	order: 1;
	text-transform: uppercase;
}

/* ---- Support card ---- */
.soluturn-support-card {
	display: grid;
	gap: 8px;
}

.soluturn-support-card h3 {
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 600;
	letter-spacing: normal;
	line-height: 1.2;
	margin: 0;
	text-transform: none;
}

.soluturn-support-card p,
.soluturn-support-card a {
	color: var(--soluturn-neutral-70);
	font-size: var(--wp--preset--font-size--x-small);
	line-height: 1.6;
	margin: 0;
}

.soluturn-support-card a {
	font-weight: 600;
}

.soluturn-support-card__note {
	border-top: 1px solid rgba(58, 57, 75, 0.1);
	margin-top: 4px;
	padding-top: 10px;
}

/* ---- Responsive ---- */
@media (max-width: 960px) {
	.soluturn-cart-layout {
		grid-template-columns: minmax(0, 1fr);
	}

	.soluturn-cart-sidebar {
		position: static;
	}
}

@media (max-width: 782px) {
	.soluturn-cart-item {
		grid-template-columns: 88px minmax(0, 1fr);
		padding: 16px;
	}

	.soluturn-cart-item__media img {
		max-width: 88px;
	}

	.soluturn-cart-item__footer {
		align-items: stretch;
		flex-direction: column;
		gap: 12px;
	}

	/* 1) Promo code + Apply button on same line */
	.soluturn-cart-actions {
		flex-direction: column;
	}

	.soluturn-cart-actions__coupon {
		flex-direction: row;
		width: 100%;
	}

	.soluturn-cart-actions__coupon .input-text {
		flex: 1 1 auto;
		min-width: 0;
		width: auto;
	}

	.soluturn-cart-actions__coupon .button {
		flex: 0 0 auto;
		width: auto;
	}

	.soluturn-cart-actions__update,
	.soluturn-cart-actions__update .button {
		width: 100%;
	}

	/* 2) Tighten the whole mobile cart — no floating promo section */
	.soluturn-cart-layout {
		gap: 16px;
	}

	.soluturn-cart-actions {
		margin-top: 8px;
		margin-bottom: 0;
	}

	.soluturn-cart-shell__header {
		padding-bottom: 12px;
	}

	.soluturn-cart-shell {
		gap: 12px;
	}

	.soluturn-cart-items {
		gap: 12px;
	}

	/* 3) Sticky checkout footer on mobile */
	.soluturn-cart-sticky-footer {
		background: var(--soluturn-neutral-00);
		border-top: 1px solid rgba(58, 57, 75, 0.12);
		bottom: 0;
		box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.08);
		box-sizing: border-box;
		display: grid;
		gap: 10px;
		left: 0;
		padding: 14px 20px calc(14px + env(safe-area-inset-bottom, 0px));
		position: fixed;
		right: 0;
		transform: translateY(0);
		transition: transform 280ms ease, opacity 280ms ease;
		width: 100%;
		z-index: 9998;
	}

	.soluturn-cart-sticky-footer--hidden {
		opacity: 0;
		pointer-events: none;
		transform: translateY(100%);
	}

	.soluturn-cart-sticky-footer .checkout-button {
		background-color: var(--soluturn-purple-60) !important;
		border-radius: 10px !important;
		box-sizing: border-box;
		color: var(--soluturn-neutral-10) !important;
		display: flex;
		font-family: "Bricolage Grotesque", Arial, sans-serif;
		font-size: 16px;
		font-weight: 500;
		justify-content: center;
		padding: 14px 24px;
		text-decoration: none;
		width: 100%;
	}

	.soluturn-cart-sticky-footer .checkout-button:hover,
	.soluturn-cart-sticky-footer .checkout-button:focus {
		background-color: var(--soluturn-purple-50) !important;
	}

	.soluturn-cart-sticky-footer .wcpay-express-checkout-wrapper {
		display: grid;
		gap: 10px;
	}

	/* Hide the "— OR —" separator in the sticky bar */
	.soluturn-cart-sticky-footer #wcpay-express-checkout-button-separator {
		display: none;
	}

	/* Extra bottom padding so sticky footer doesn't cover last items */
	.soluturn-cart-shell {
		padding-bottom: 120px;
	}
}

/* =========================================================================
 * Product Detail Page (PDP)
 * Inspired by Aritzia-style layout: 2-col image grid + sticky info panel.
 * ========================================================================= */

/* ---- Top-level layout ---- */
.soluturn-pdp__layout {
	gap: var(--wp--preset--spacing--70) !important;
}

.soluturn-pdp__gallery {
	flex-basis: 60% !important;
	flex-grow: 0 !important;
}

.soluturn-pdp__info {
	flex-basis: 40% !important;
	flex-grow: 0 !important;
	position: sticky;
	top: 100px;
	align-self: flex-start;
}

/* ---- Gallery: 2-column grid of images ---- */
.soluturn-pdp__gallery .wc-block-woocommerce-product-image-gallery,
.soluturn-pdp__gallery .woocommerce-product-gallery,
.woocommerce .soluturn-pdp__gallery .wp-block-woocommerce-product-image-gallery {
	max-width: 100% !important;
	width: 100% !important;
	float: none !important;
}

/* Override FlexSlider viewport Ã¢â‚¬â€ let all images show */
.soluturn-pdp__gallery .woocommerce-product-gallery .flex-viewport {
	height: auto !important;
	overflow: visible !important;
}

.soluturn-pdp__gallery .woocommerce-product-gallery__wrapper {
	display: grid !important;
	grid-template-columns: 1fr 1fr;
	gap: 4px;
	width: 100% !important;
	transform: none !important;
	transition: none !important;
}

.soluturn-pdp__gallery .woocommerce-product-gallery__wrapper .woocommerce-product-gallery__image {
	width: 100% !important;
	margin: 0 !important;
	float: none !important;
	display: block !important;
	opacity: 1 !important;
}

.soluturn-pdp__gallery .woocommerce-product-gallery__wrapper .woocommerce-product-gallery__image a,
.soluturn-pdp__gallery .woocommerce-product-gallery__wrapper .woocommerce-product-gallery__image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Hide the zoom overlay image added by FlexSlider */
.soluturn-pdp__gallery .zoomImg {
	display: none !important;
}

/* Hide the default thumbnail strip and zoom trigger Ã¢â‚¬â€ images are in the grid now */
.soluturn-pdp__gallery .flex-control-thumbs,
.soluturn-pdp__gallery .woocommerce-product-gallery__trigger {
	display: none !important;
}

/* ---- Product title ---- */
.soluturn-pdp__info .wp-block-post-title {
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 700;
	line-height: 1.2;
	margin-bottom: var(--wp--preset--spacing--30);
}

/* ---- Rating ---- */
.soluturn-pdp__info .wc-block-components-product-rating {
	margin: 0;
}

/* ---- Price ---- */
/* Hide the top-level price range block Ã¢â‚¬â€ variation price is shown instead */
.soluturn-pdp__info .wp-block-woocommerce-product-price {
	display: none;
}

/* Variation-specific price (shown after selecting options) */
.soluturn-pdp__info .woocommerce-variation-price .price,
.soluturn-pdp__info .woocommerce-variation-price .price .woocommerce-Price-amount {
	color: var(--soluturn-purple-60);
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 700;
}

/* ---- Short description / excerpt ---- */
.soluturn-pdp__info .wp-block-post-excerpt {
	margin-bottom: var(--wp--preset--spacing--40);
}

.soluturn-pdp__info .wp-block-post-excerpt__excerpt {
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 15px;
	line-height: 1.55;
	color: var(--soluturn-neutral-70);
}

/* Hide the "Read more" link on excerpt */
.soluturn-pdp__info .wp-block-post-excerpt__more-link {
	display: none;
}

/*
 * Editorial system
 * Blog + portfolio use the same design language, but with different browsing patterns:
 * a tight blog list for scanning and a visual portfolio grid for case-study browsing.
 */
.soluturn-editorial-shell {
	width: 100%;
}

/*
 * Override WordPress constrained layout (contentSize: 586px) inside
 * editorial pages so content isn't strangled into a narrow column.
 *
 * - Archives & heroes get full 1200px.
 * - Blog post content gets 760px (comfortable reading width).
 * - Portfolio content gets 860px (wider for case-study imagery).
 * - All children of these wrappers inherit the wider width.
 */
.soluturn-editorial-shell.is-layout-constrained > * {
	max-width: 1200px;
}

.soluturn-editorial-shell .soluturn-editorial-content.is-layout-constrained > *,
.soluturn-editorial-shell .soluturn-editorial-content > * {
	max-width: 760px;
	margin-left: auto;
	margin-right: auto;
}

/* Portfolio content width is now handled by the template's constrained layout
   (contentSize: 860px, wideSize: 1200px) — alignwide/alignfull images break out. */
body.single-portfolio .soluturn-editorial-content--portfolio .alignfull img {
	border-radius: 0;
}

.soluturn-editorial-archive,
.soluturn-editorial-hero__inner,
.soluturn-editorial-content,
.soluturn-related-projects,
.soluturn-related-articles {
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
	box-sizing: border-box;
}

.soluturn-editorial-archive__header,
.soluturn-related-projects__header,
.soluturn-related-articles__header {
	margin-bottom: 32px;
}

.soluturn-editorial-archive__eyebrow,
.soluturn-editorial-hero__eyebrow,
.soluturn-editorial-product__label {
	color: var(--soluturn-purple-60);
	display: inline-block;
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.08em;
	margin: 0 0 10px;
	text-transform: uppercase;
}

.soluturn-editorial-archive__title,
.soluturn-editorial-hero__title {
	color: var(--soluturn-neutral-80);
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: clamp(2.5rem, 4vw, 4.5rem);
	font-weight: 700;
	letter-spacing: -0.04em;
	line-height: 0.98;
	margin: 0;
}

.soluturn-editorial-archive__intro {
	color: var(--soluturn-neutral-70);
	font-size: 16px;
	line-height: 1.6;
	margin: 14px 0 0;
	max-width: 680px;
}

.soluturn-filter-bar {
	display: grid;
	gap: 16px;
	margin: 0 0 36px;
}

.soluturn-filter-group {
	align-items: flex-start;
	border-top: 1px solid rgba(40, 39, 55, 0.1);
	display: grid;
	gap: 12px;
	padding-top: 16px;
}

.soluturn-filter-group__label {
	color: var(--soluturn-neutral-60);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.soluturn-filter-group__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.soluturn-filter-chip,
.soluturn-inline-chip,
.soluturn-editorial-tags a {
	border: 1px solid rgba(40, 39, 55, 0.12);
	border-radius: 999px;
	color: var(--soluturn-neutral-70);
	display: inline-flex;
	font-size: 13px;
	line-height: 1;
	padding: 10px 14px;
	text-decoration: none;
}

.soluturn-filter-chip.is-active,
.soluturn-filter-chip:hover,
.soluturn-filter-chip:focus,
.soluturn-inline-chip {
	background: var(--soluturn-neutral-10);
	border-color: rgba(40, 39, 55, 0.18);
	color: var(--soluturn-neutral-80);
}

/* ---- Blog archive: NYT-style editorial layout ---- */

/* -- Lead zone (post 1 + sidebar 2-4) -- */
.soluturn-blog-lead {
	border-top: 1px solid var(--soluturn-neutral-20);
	display: grid;
	gap: 0;
	grid-template-columns: 1fr 1fr 1fr;
	padding: 24px 0;
}

.soluturn-blog-lead--solo {
	grid-template-columns: 1fr 1.5fr;
}

.soluturn-blog-lead__story {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding-right: 24px;
}

.soluturn-blog-lead__meta {
	color: var(--soluturn-neutral-50);
	display: flex;
	flex-wrap: wrap;
	font-size: 12px;
	gap: 0;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.soluturn-blog-lead__meta span {
	white-space: nowrap;
}

.soluturn-blog-lead__meta span + span::before {
	content: "\00b7";
	margin: 0 5px;
}

.soluturn-blog-lead__title {
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: clamp(1.6rem, 2.5vw, 2.2rem);
	font-weight: 700;
	letter-spacing: -0.03em;
	line-height: 1.1;
	margin: 0;
}

.soluturn-blog-lead__title a {
	color: var(--soluturn-neutral-80);
	text-decoration: none;
}

.soluturn-blog-lead__title a:hover {
	text-decoration: underline;
}

.soluturn-blog-lead__excerpt {
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 5;
	color: var(--soluturn-neutral-60);
	display: -webkit-box;
	font-size: 15px;
	line-height: 1.5;
	margin: 0;
	overflow: hidden;
}

.soluturn-blog-lead__excerpt a,
.soluturn-blog-sidebar-item__excerpt a,
.soluturn-blog-grid-card__excerpt a {
	color: inherit;
	text-decoration: none;
}

.soluturn-blog-lead__excerpt a:hover,
.soluturn-blog-lead__excerpt a:focus,
.soluturn-blog-sidebar-item__excerpt a:hover,
.soluturn-blog-sidebar-item__excerpt a:focus,
.soluturn-blog-grid-card__excerpt a:hover,
.soluturn-blog-grid-card__excerpt a:focus {
	text-decoration: underline;
}

.soluturn-blog-lead__hero {
	padding: 0 24px;
}

/* Square post images */
.post-image {
	aspect-ratio: 1 / 1;
	display: block;
	overflow: hidden;
}

.post-image img {
	display: block;
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.soluturn-blog-lead__sidebar {
	border-left: 1px solid var(--soluturn-neutral-20);
	display: flex;
	flex-direction: column;
	padding-left: 24px;
}

/* -- Sidebar items -- */
.soluturn-blog-sidebar-item {
	border-bottom: 1px solid var(--soluturn-neutral-20);
	padding: 12px 0;
}

.soluturn-blog-sidebar-item:first-child {
	padding-top: 0;
}

.soluturn-blog-sidebar-item:last-child {
	border-bottom: 0;
}

.soluturn-blog-sidebar-item__inner {
	align-items: flex-start;
	display: flex;
	gap: 10px;
}

.soluturn-blog-sidebar-item__text {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}

.soluturn-blog-sidebar-item__text p {
	margin: 0;
}

.soluturn-blog-sidebar-item__thumb {
	aspect-ratio: 1 / 1;
	flex-shrink: 0;
	overflow: hidden;
	width: 68px;
}

.soluturn-blog-sidebar-item__thumb img {
	display: block;
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.soluturn-blog-sidebar-item__title {
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: clamp(0.95rem, 1.3vw, 1.1rem);
	font-weight: 600;
	letter-spacing: -0.02em;
	line-height: 1.2;
	margin: 0;
}

.soluturn-blog-sidebar-item__title a {
	color: var(--soluturn-neutral-80);
	text-decoration: none;
}

.soluturn-blog-sidebar-item__title a:hover {
	text-decoration: underline;
}

.soluturn-blog-sidebar-item__excerpt {
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	color: var(--soluturn-neutral-60);
	display: -webkit-box;
	font-size: 14px;
	line-height: 1.4;
	margin: 0;
	overflow: hidden;
}

.soluturn-blog-sidebar-item__meta {
	color: var(--soluturn-neutral-50);
	font-size: 11px;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

/* -- Grid zone (posts 5+) -- */
.soluturn-blog-grid {
	display: grid;
	gap: 24px;
	grid-template-columns: repeat(3, 1fr);
	padding: 24px 0 0;
}

.soluturn-blog-grid-card {
	border-top: 1px solid var(--soluturn-neutral-20);
	display: flex;
	flex-direction: column;
	padding-top: 16px;
}

.soluturn-blog-grid-card__media {
	aspect-ratio: 1 / 1;
	display: none;
	overflow: hidden;
}

.soluturn-blog-grid-card__media img {
	aspect-ratio: 1 / 1;
	display: block;
	height: 100%;
	object-fit: cover;
	transition: transform 400ms ease;
	width: 100%;
}

.soluturn-blog-grid-card:hover .soluturn-blog-grid-card__media img {
	transform: scale(1.03);
}

.soluturn-blog-grid-card__body {
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-height: 0;
}

.soluturn-blog-grid-card__meta {
	color: var(--soluturn-neutral-50);
	display: flex;
	flex-wrap: wrap;
	font-size: 12px;
	gap: 0;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.soluturn-blog-grid-card__meta span {
	white-space: nowrap;
}

.soluturn-blog-grid-card__meta span + span::before {
	content: "\00b7";
	margin: 0 5px;
}

.soluturn-blog-grid-card__title {
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: clamp(1rem, 1.5vw, 1.25rem);
	font-weight: 600;
	letter-spacing: -0.02em;
	line-height: 1.2;
	margin: 0;
}

.soluturn-blog-grid-card__title a {
	color: var(--soluturn-neutral-80);
	text-decoration: none;
}

.soluturn-blog-grid-card__title a:hover {
	text-decoration: underline;
}

.soluturn-blog-grid-card__excerpt {
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	color: var(--soluturn-neutral-60);
	display: -webkit-box;
	font-size: 14px;
	line-height: 1.5;
	margin: 0;
	overflow: hidden;
	overflow: hidden;
}

/* -- Blog infinite scroll loader -- */
.soluturn-blog-loader {
	display: flex;
	justify-content: center;
	min-height: 1px;
	padding: 24px 0;
}

.soluturn-blog-loader__spinner {
	border: 2px solid var(--soluturn-neutral-20);
	border-radius: 50%;
	border-top-color: var(--soluturn-purple-60);
	height: 28px;
	opacity: 0;
	transition: opacity 200ms ease;
	width: 28px;
}

.soluturn-blog-loader.is-loading .soluturn-blog-loader__spinner {
	animation: soluturn-spin 0.6s linear infinite;
	opacity: 1;
}

@keyframes soluturn-spin {
	to { transform: rotate(360deg); }
}

/* ---- Blog related articles (compact card variant, still used by single post) ---- */
.soluturn-related-articles__grid {
	display: grid;
	gap: 18px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.soluturn-blog-card {
	align-items: stretch;
	background: var(--soluturn-neutral-00);
	border: 1px solid rgba(40, 39, 55, 0.12);
	border-radius: 10px;
	display: grid;
	gap: 0;
	grid-template-columns: 1fr;
	overflow: hidden;
	transition: box-shadow 200ms ease, border-color 200ms ease, transform 200ms ease;
}

.soluturn-blog-card:hover {
	border-color: rgba(40, 39, 55, 0.18);
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.06);
	transform: translateY(-2px);
}

.soluturn-blog-card__media {
	aspect-ratio: 4 / 3;
	background: var(--soluturn-neutral-10);
	display: block;
}

.soluturn-blog-card__media img {
	display: block;
	height: 100%;
	object-fit: cover;
	transition: transform 400ms ease;
	width: 100%;
}

.soluturn-blog-card:hover .soluturn-blog-card__media img {
	transform: scale(1.03);
}

.soluturn-blog-card__content {
	display: grid;
	gap: 14px;
	padding: 24px;
}

.soluturn-blog-card__meta {
	color: var(--soluturn-neutral-60);
	display: flex;
	flex-wrap: wrap;
	font-size: 12px;
	gap: 12px;
	text-transform: uppercase;
}

.soluturn-blog-card__title {
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: clamp(1.1rem, 1.6vw, 1.4rem);
	font-weight: 600;
	letter-spacing: -0.03em;
	line-height: 1.08;
	margin: 0;
}

.soluturn-blog-card__title a,
.soluturn-editorial-product__title a {
	color: var(--soluturn-neutral-80);
	text-decoration: none;
}

.soluturn-blog-card__excerpt {
	color: var(--soluturn-neutral-70);
	font-size: 15px;
	line-height: 1.6;
	margin: 0;
}

.soluturn-blog-card__cta {
	justify-self: start;
}

/* ---- Portfolio grid & cards (mirrors product tile pattern) ---- */
.soluturn-portfolio-grid {
	display: grid;
	gap: 22px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.soluturn-portfolio-card {
	display: flex;
	flex-direction: column;
}

/* Image wrap — relative for badge overlay */
.soluturn-portfolio-card__media {
	background: var(--soluturn-neutral-05, #f7f7f7);
	display: block;
	line-height: 0;
	overflow: hidden;
	position: relative;
	text-decoration: none;
}

.soluturn-portfolio-card__placeholder {
	aspect-ratio: 4 / 3;
	background: var(--soluturn-neutral-10);
	display: block;
}

.soluturn-portfolio-card__media img {
	aspect-ratio: 4 / 3;
	display: block;
	height: auto;
	object-fit: cover;
	transition: transform 400ms ease, opacity 150ms ease;
	width: 100%;
}

.soluturn-portfolio-card:hover .soluturn-portfolio-card__media img {
	transform: scale(1.03);
}

/* Project type badge — overlaid on image */
.soluturn-portfolio-card__badge {
	background: var(--soluturn-neutral-00, #fff);
	border-radius: 2px;
	color: var(--soluturn-neutral-80, #262626);
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 12px;
	font-weight: 500;
	left: 10px;
	line-height: 1;
	padding: 4px 8px;
	position: absolute;
	top: 10px;
	z-index: 3;
}

/* Info section — title + description */
.soluturn-portfolio-card__info {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 10px 0 16px;
}

.soluturn-portfolio-card__name {
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.4;
	margin: 0;
}

.soluturn-portfolio-card__name a {
	color: var(--soluturn-neutral-80);
	text-decoration: none;
}

.soluturn-portfolio-card__name a:hover {
	color: var(--soluturn-purple-60);
}

.soluturn-portfolio-card__desc {
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	color: var(--soluturn-neutral-60);
	display: -webkit-box;
	font-size: 13px;
	line-height: 1.5;
	margin: 0;
	overflow: hidden;
}

.soluturn-editorial-pagination {
	display: flex;
	justify-content: center;
	margin-top: 40px;
}

.soluturn-editorial-pagination .page-numbers {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.soluturn-editorial-pagination a,
.soluturn-editorial-pagination span {
	align-items: center;
	background: var(--soluturn-neutral-00);
	border: 1px solid rgba(40, 39, 55, 0.12);
	border-radius: 8px;
	color: var(--soluturn-neutral-70);
	display: inline-flex;
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 14px;
	font-weight: 600;
	justify-content: center;
	line-height: 1;
	min-height: 44px;
	min-width: 44px;
	padding: 0 14px;
	text-decoration: none;
	transition: border-color 180ms ease, background-color 180ms ease, color 180ms ease, transform 180ms ease;
}

.soluturn-editorial-pagination a:hover,
.soluturn-editorial-pagination a:focus {
	background: var(--soluturn-neutral-10);
	border-color: rgba(40, 39, 55, 0.22);
	color: var(--soluturn-neutral-80);
	transform: translateY(-1px);
}

.soluturn-editorial-pagination .current {
	background: var(--soluturn-neutral-80);
	border-color: var(--soluturn-neutral-80);
	color: var(--soluturn-neutral-00);
}

.soluturn-editorial-hero {
	margin-bottom: 0;
}

.soluturn-editorial-hero--post {
	border-bottom: 1px solid var(--soluturn-neutral-20);
	margin-bottom: 32px;
	margin-left: auto;
	margin-right: auto;
	max-width: 760px;
	padding-bottom: 36px;
}

.soluturn-editorial-hero--post .soluturn-editorial-hero__meta {
	margin-bottom: 16px;
	margin-top: 0;
}

.soluturn-editorial-hero--post .soluturn-editorial-hero__inner {
	max-width: 760px;
}

.soluturn-editorial-hero__meta {
	color: var(--soluturn-neutral-50);
	display: flex;
	flex-wrap: wrap;
	font-size: 12px;
	gap: 0;
	letter-spacing: 0.06em;
	margin-top: 18px;
	text-transform: uppercase;
}

.soluturn-editorial-hero__meta span + span::before {
	content: "\00b7";
	margin: 0 5px;
}

.soluturn-editorial-hero--post .soluturn-editorial-hero__title {
	font-size: clamp(2.8rem, 5vw, 4rem);
	letter-spacing: -0.035em;
	line-height: 0.95;
	margin-bottom: 16px;
}

.soluturn-editorial-hero__byline {
	color: var(--soluturn-neutral-60);
	font-size: 15px;
	margin: 0;
}

.soluturn-editorial-hero__image {
	border: 1px solid rgba(40, 39, 55, 0.1);
	border-radius: 12px;
	display: block;
	height: auto;
	margin-top: 32px;
	width: 100%;
}

.soluturn-editorial-hero--post .soluturn-editorial-hero__image {
	border: 0;
	border-radius: 0;
}

.soluturn-editorial-content {
	max-width: 760px;
}

/* Drop cap on first paragraph of blog posts */
body.single-post .soluturn-editorial-content p:first-of-type::first-letter {
	color: var(--soluturn-neutral-80);
	float: left;
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 4.2em;
	font-weight: 700;
	line-height: 0.8;
	margin-right: 8px;
	padding-top: 6px;
}

/* First child of post content needs no extra top margin or border */
body.single-post .soluturn-editorial-content :first-child,
body.single-post .soluturn-editorial-content .wp-block-post-content > :first-child {
	border-top: 0;
	margin-top: 0;
	padding-top: 0;
}

/* Stronger h2 in blog posts */
body.single-post .soluturn-editorial-content h2 {
	border-top: 1px solid var(--soluturn-neutral-20);
	font-size: clamp(1.6rem, 2.5vw, 2rem);
	letter-spacing: -0.03em;
	line-height: 1.1;
	margin-top: 56px;
	padding-top: 28px;
}

/* Editorial blockquote upgrade for blog posts */
body.single-post .soluturn-editorial-content blockquote {
	border-left: 3px solid var(--soluturn-purple-60);
	margin: 32px 0;
	padding: 4px 0 4px 24px;
}

body.single-post .soluturn-editorial-content blockquote p {
	font-size: 18px;
	font-style: italic;
	line-height: 1.6;
}

/* ---- Portfolio single — hero layout ---- */
body.single-portfolio .soluturn-related-projects {
	max-width: 1200px;
}

.soluturn-portfolio-hero {
	display: grid;
	gap: 0;
	margin: 0 auto;
	max-width: 1200px;
	padding: 0 24px;
	width: 100%;
	box-sizing: border-box;
}

.soluturn-portfolio-hero p:empty {
	display: none;
}

.soluturn-portfolio-hero__inner {
	display: grid;
	gap: 16px;
	max-width: 760px;
}

/* Title */
.soluturn-portfolio-hero__title {
	color: var(--soluturn-neutral-80);
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: clamp(2.4rem, 4.5vw, 4rem);
	font-weight: 700;
	letter-spacing: -0.04em;
	line-height: 1.0;
	margin: 0;
}

/* Summary / tagline */
.soluturn-portfolio-hero__summary {
	color: var(--soluturn-neutral-60);
	font-size: 20px;
	font-weight: 400;
	line-height: 1.55;
	margin: 0;
	max-width: 620px;
}

/* Confidentiality badge */
.soluturn-portfolio-hero__badge {
	background: var(--soluturn-neutral-10);
	border-radius: 6px;
	color: var(--soluturn-neutral-60);
	display: inline-block;
	font-size: 12px;
	font-weight: 600;
	justify-self: start;
	letter-spacing: 0.06em;
	margin: 0;
	padding: 6px 12px;
	text-transform: uppercase;
}

/* Primary meta chips — inline below summary */
.soluturn-portfolio-hero__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	list-style: none;
	margin: 4px 0 0;
	padding: 0;
}

.soluturn-portfolio-hero__chips li {
	background: var(--soluturn-neutral-10);
	border-radius: 6px;
	color: var(--soluturn-neutral-70);
	font-size: 13px;
	font-weight: 500;
	padding: 5px 12px;
}

/* CTA button */
.soluturn-portfolio-hero__cta {
	align-items: center;
	background-color: var(--soluturn-purple-60) !important;
	border-radius: 8px;
	color: var(--soluturn-neutral-00) !important;
	display: inline-flex;
	font-size: 14px;
	font-weight: 500;
	gap: 8px;
	justify-self: start;
	margin-top: 4px;
	padding: 10px 20px;
	text-decoration: none;
	transition: background-color 160ms ease;
}

.soluturn-portfolio-hero__cta:hover {
	background-color: var(--soluturn-purple-50) !important;
}

.soluturn-portfolio-hero__cta svg {
	flex-shrink: 0;
}

/* Featured image — full width with subtle treatment */
.soluturn-portfolio-hero__media {
	margin-top: 48px;
}

.soluturn-portfolio-hero__media img {
	border: 1px solid rgba(40, 39, 55, 0.06);
	border-radius: 14px;
	box-shadow: 0 8px 32px rgba(0, 0, 0, 0.06);
	display: block;
	height: auto;
	width: 100%;
}

/* Detail meta grid — horizontal below the hero image */
.soluturn-portfolio-hero__meta-grid {
	background: transparent;
	border: 1px solid var(--soluturn-neutral-20);
	border-radius: 0;
	display: grid;
	gap: 0;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	margin-top: 32px;
}

.soluturn-portfolio-hero__meta-item {
	border-right: 1px solid var(--soluturn-neutral-20);
	display: grid;
	gap: 0;
	padding: 18px 20px;
}

/* Remove right border on last item in each row */
.soluturn-portfolio-hero__meta-item:last-child {
	border-right: 0;
}

.soluturn-portfolio-hero__meta-label {
	color: var(--soluturn-neutral-50);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.08em;
	line-height: 1.2;
	text-transform: uppercase;
}

.soluturn-portfolio-hero__meta-value {
	color: var(--soluturn-neutral-80);
	font-size: 14px;
	font-weight: 500;
	line-height: 1.4;
}

/* ---- Portfolio single — content area ---- */
body.single-portfolio .soluturn-editorial-content--portfolio {
	max-width: 860px;
	padding-top: 48px;
}

/* Tame content heading sizes for case-study flow */
body.single-portfolio .soluturn-editorial-content--portfolio :where(h2) {
	font-size: clamp(1.5rem, 2.5vw, 2rem);
	letter-spacing: -0.02em;
	line-height: 1.15;
	margin-top: 56px;
}

body.single-portfolio .soluturn-editorial-content--portfolio :where(h3) {
	font-size: clamp(1.2rem, 2vw, 1.5rem);
	line-height: 1.2;
	margin-top: 40px;
}

body.single-portfolio .soluturn-editorial-content--portfolio :where(h4) {
	font-size: 1.1rem;
	margin-top: 32px;
}

/* Blockquote upgrade for case studies */
body.single-portfolio .soluturn-editorial-content--portfolio blockquote {
	background: var(--soluturn-neutral-05, #fafafa);
	border-left: 3px solid var(--soluturn-purple-60);
	border-radius: 0 10px 10px 0;
	margin: 32px 0;
	padding: 24px 28px;
}

body.single-portfolio .soluturn-editorial-content--portfolio blockquote p {
	font-size: 17px;
	font-style: italic;
	line-height: 1.65;
}

body.single-portfolio .soluturn-editorial-content--portfolio blockquote cite {
	color: var(--soluturn-neutral-60);
	display: block;
	font-size: 13px;
	font-style: normal;
	margin-top: 10px;
}

/* ---- Portfolio single — related projects ---- */
body.single-portfolio .soluturn-related-projects {
	border-top: 1px solid rgba(40, 39, 55, 0.08);
	padding-top: 48px;
}

/* ---- Portfolio single — responsive ---- */
@media (max-width: 959px) {
	.soluturn-portfolio-hero__meta-grid {
		grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
	}

	.soluturn-portfolio-hero__meta-item {
		border-right: 0;
	}
}

@media (max-width: 699px) {
	.soluturn-portfolio-hero__title {
		font-size: 2rem;
	}

	.soluturn-portfolio-hero__summary {
		font-size: 17px;
	}

	body.single-portfolio .soluturn-editorial-content--portfolio {
		padding-top: 32px;
	}

	.soluturn-portfolio-hero__media {
		margin-top: 28px;
	}

	.soluturn-portfolio-hero__media img {
		border-radius: 10px;
	}

	.soluturn-portfolio-hero__meta-grid {
		grid-template-columns: repeat(2, 1fr);
		margin-top: 24px;
	}

	.soluturn-portfolio-hero__meta-item {
		padding: 14px 16px;
	}
}

.soluturn-editorial-content > * + * {
	margin-top: 22px;
}

.soluturn-editorial-content :where(p, li, figcaption, blockquote, td, th) {
	color: var(--soluturn-neutral-80);
	font-size: 16px;
	line-height: 1.75;
}

.soluturn-editorial-content :where(h2, h3, h4) {
	letter-spacing: -0.03em;
	margin-top: 44px;
}

.soluturn-editorial-content blockquote {
	border-left: 2px solid var(--soluturn-neutral-20);
	margin: 0;
	padding-left: 20px;
}

.soluturn-editorial-content img,
.soluturn-editorial-content .wp-block-image img,
.soluturn-editorial-content .wp-block-gallery img {
	border-radius: 10px;
}

.soluturn-editorial-content .wp-block-table table {
	border-collapse: collapse;
	width: 100%;
}

.soluturn-editorial-content .wp-block-table td,
.soluturn-editorial-content .wp-block-table th {
	border: 1px solid rgba(40, 39, 55, 0.12);
	padding: 12px 14px;
}

.soluturn-editorial-tags {
	border-top: 1px solid rgba(40, 39, 55, 0.1);
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 42px;
	padding-top: 22px;
}

.soluturn-editorial-tags .wp-block-post-terms {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.soluturn-editorial-tags .wp-block-post-terms__separator {
	display: none;
}

/* ============================================================
   Case Study Content Patterns
   Reusable CSS classes applied via Gutenberg block patterns.
   ============================================================ */

/* ---- Numbered section (1.0 CREATION, 2.0 PROCESS, etc.) ---- */
.soluturn-cs-section {
	margin-top: 64px;
}

.soluturn-cs-section:first-child {
	margin-top: 0;
}

.soluturn-cs-section__number {
	color: var(--soluturn-purple-60);
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.1em;
	margin: 0 0 8px;
	text-transform: uppercase;
}

.soluturn-cs-section__title {
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: clamp(1.6rem, 2.5vw, 2.2rem);
	font-weight: 700;
	letter-spacing: -0.03em;
	line-height: 1.1;
	margin: 0 0 20px;
}

/* ---- Callout box (success / info / warning) ---- */
.soluturn-cs-callout {
	background: var(--soluturn-neutral-10);
	border-left: 3px solid var(--soluturn-purple-60);
	border-radius: 0 10px 10px 0;
	margin: 32px 0;
	padding: 24px 28px 24px 52px;
	position: relative;
}

.soluturn-cs-callout::before {
	content: "";
	display: block;
	height: 20px;
	left: 20px;
	position: absolute;
	top: 26px;
	width: 20px;
}

.soluturn-cs-callout--success {
	border-left-color: #008258;
}

.soluturn-cs-callout--success::before {
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%23008258'%3E%3Cpath d='M10 0a10 10 0 110 20 10 10 0 010-20zm4.3 7.3a1 1 0 00-1.4-1.4L9 9.8 7.1 7.9a1 1 0 10-1.4 1.4l2.5 2.5a1 1 0 001.4 0l4.7-4.5z'/%3E%3C/svg%3E") no-repeat center / contain;
}

.soluturn-cs-callout--info::before {
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%236f39c6'%3E%3Cpath d='M10 0a10 10 0 110 20 10 10 0 010-20zm0 8a1 1 0 00-1 1v4a1 1 0 102 0V9a1 1 0 00-1-1zm0-3a1.25 1.25 0 100 2.5A1.25 1.25 0 0010 5z'/%3E%3C/svg%3E") no-repeat center / contain;
}

.soluturn-cs-callout--warning {
	border-left-color: #EB9B00;
}

.soluturn-cs-callout--warning::before {
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%23EB9B00'%3E%3Cpath d='M10 0a10 10 0 110 20 10 10 0 010-20zm0 13a1.25 1.25 0 100 2.5A1.25 1.25 0 0010 13zm-1-7a1 1 0 012 0v4a1 1 0 11-2 0V6z'/%3E%3C/svg%3E") no-repeat center / contain;
}

.soluturn-cs-callout p {
	font-size: 15px;
	line-height: 1.65;
	margin: 0;
}

.soluturn-cs-callout p + p {
	margin-top: 10px;
}

.soluturn-cs-callout strong {
	color: var(--soluturn-neutral-80);
	font-weight: 600;
}

/* ---- Chapter navigation cards (2×2 grid) ---- */
.soluturn-cs-chapters {
	display: grid;
	gap: 20px;
	grid-template-columns: repeat(2, 1fr);
	margin: 40px 0;
}

.soluturn-cs-chapter-card {
	background: var(--soluturn-neutral-10);
	border: 1px solid rgba(40, 39, 55, 0.08);
	border-radius: 12px;
	display: grid;
	gap: 8px;
	padding: 24px;
	text-decoration: none;
	transition: border-color 160ms ease, box-shadow 160ms ease;
}

.soluturn-cs-chapter-card:hover {
	border-color: var(--soluturn-purple-60);
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06);
}

.soluturn-cs-chapter-card__number {
	color: var(--soluturn-purple-60);
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
	margin: 0;
	text-transform: uppercase;
}

.soluturn-cs-chapter-card__title {
	color: var(--soluturn-neutral-80);
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 18px;
	font-weight: 600;
	line-height: 1.25;
	margin: 0;
}

.soluturn-cs-chapter-card__desc {
	color: var(--soluturn-neutral-60);
	font-size: 14px;
	line-height: 1.5;
	margin: 0;
}

/* ---- Two-column info (goals vs capabilities) ---- */
.soluturn-cs-two-col {
	margin: 40px 0;
}

.soluturn-cs-two-col .wp-block-columns {
	gap: 48px;
}

.soluturn-cs-two-col h3 {
	color: var(--soluturn-neutral-80);
	font-size: 18px;
	font-weight: 600;
	margin: 0 0 16px;
}

/* ---- Checklist (green checkmark bullets) ---- */
.soluturn-cs-checklist {
	list-style: none !important;
	margin: 0;
	padding-left: 0 !important;
}

.soluturn-cs-checklist li {
	padding-left: 32px;
	position: relative;
}

.soluturn-cs-checklist li::before {
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%23008258'%3E%3Cpath d='M10 0a10 10 0 110 20 10 10 0 010-20zm4.3 7.3a1 1 0 00-1.4-1.4L9 9.8 7.1 7.9a1 1 0 10-1.4 1.4l2.5 2.5a1 1 0 001.4 0l4.7-4.5z'/%3E%3C/svg%3E") no-repeat center / contain;
	content: "";
	height: 18px;
	left: 0;
	position: absolute;
	top: 4px;
	width: 18px;
}

/* ---- Numbered highlight list ---- */
.soluturn-cs-numbered-list {
	counter-reset: cs-num;
	list-style: none !important;
	margin: 0;
	padding-left: 0 !important;
}

.soluturn-cs-numbered-list li {
	counter-increment: cs-num;
	padding-left: 40px;
	position: relative;
}

.soluturn-cs-numbered-list li::before {
	color: var(--soluturn-purple-60);
	content: counter(cs-num, decimal-leading-zero);
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 14px;
	font-weight: 700;
	left: 0;
	position: absolute;
	top: 2px;
}

/* ---- Tool/tech stack display ---- */
.soluturn-cs-tools {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 32px;
	justify-content: center;
	margin: 40px 0;
	padding: 40px 0;
}

.soluturn-cs-tools__item {
	align-items: center;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.soluturn-cs-tools__item img {
	height: 48px;
	object-fit: contain;
	width: auto;
}

.soluturn-cs-tools__label {
	color: var(--soluturn-neutral-60);
	font-size: 13px;
	font-weight: 500;
}

.soluturn-cs-tools__separator {
	color: var(--soluturn-neutral-30);
	font-size: 28px;
	font-weight: 300;
	line-height: 1;
}

/* ---- Findings / strategy box ---- */
.soluturn-cs-findings {
	background: var(--soluturn-neutral-10);
	border: 1px solid rgba(40, 39, 55, 0.08);
	border-radius: 12px;
	display: grid;
	gap: 20px;
	margin: 32px 0;
	padding: 28px;
}

.soluturn-cs-findings__item {
	display: grid;
	gap: 4px;
	grid-template-columns: 36px 1fr;
}

.soluturn-cs-findings__number {
	color: var(--soluturn-purple-60);
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 16px;
	font-weight: 700;
}

.soluturn-cs-findings__text {
	color: var(--soluturn-neutral-80);
	font-size: 15px;
	line-height: 1.6;
}

/* ---- Case study patterns — responsive ---- */
@media (max-width: 959px) {
	.soluturn-cs-chapters {
		grid-template-columns: 1fr;
	}

	.soluturn-cs-two-col .wp-block-columns {
		gap: 32px;
	}
}

@media (max-width: 699px) {
	.soluturn-cs-callout {
		padding: 18px 20px 18px 44px;
	}

	.soluturn-cs-callout::before {
		left: 14px;
		top: 20px;
	}

	.soluturn-cs-chapter-card {
		padding: 18px;
	}

	.soluturn-cs-tools {
		gap: 20px;
		padding: 28px 0;
	}

	.soluturn-cs-findings {
		padding: 20px;
	}

	.soluturn-cs-section {
		margin-top: 48px;
	}
}

/* ============================================================ */

.soluturn-editorial-product {
	margin: 36px 0;
}

.soluturn-editorial-product__card {
	align-items: center;
	background: var(--soluturn-neutral-10);
	border: 1px solid rgba(40, 39, 55, 0.08);
	border-radius: 12px;
	display: grid;
	gap: 18px;
	grid-template-columns: minmax(0, 180px) minmax(0, 1fr);
	padding: 18px;
}

.soluturn-editorial-product__media img {
	border-radius: 8px;
	display: block;
	height: auto;
	width: 100%;
}

.soluturn-editorial-product__content {
	display: grid;
	gap: 14px;
}

.soluturn-editorial-product__title {
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 1.35rem;
	font-weight: 600;
	line-height: 1.1;
	margin: 0;
}

.soluturn-editorial-empty {
	border: 1px solid rgba(40, 39, 55, 0.12);
	border-radius: 10px;
	color: var(--soluturn-neutral-60);
	padding: 24px;
}

@media (max-width: 959px) {
	.soluturn-portfolio-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.soluturn-related-articles__grid {
		grid-template-columns: 1fr;
	}

	.soluturn-blog-card,
	.soluturn-editorial-product__card {
		grid-template-columns: 1fr;
	}

	.soluturn-blog-lead {
		align-items: start;
		gap: 16px;
		grid-template-columns: 112px minmax(0, 1fr);
		padding: 20px 0;
	}

	.soluturn-blog-lead--solo {
		grid-template-columns: 112px minmax(0, 1fr);
	}

	.soluturn-blog-lead__story {
		gap: 4px;
		padding-right: 0;
	}

	.soluturn-blog-lead__hero {
		padding: 0;
	}

	.soluturn-blog-lead__hero .post-image {
		aspect-ratio: 1 / 1;
	}

	.soluturn-blog-lead__title {
		font-size: clamp(1.15rem, 2.3vw, 1.45rem);
	}

	.soluturn-blog-lead__excerpt {
		-webkit-line-clamp: 3;
		font-size: 14px;
	}

	.soluturn-blog-lead__sidebar {
		border-left: 0;
		border-top: 1px solid var(--soluturn-neutral-20);
		grid-column: 1 / -1;
		padding-left: 0;
		padding-top: 10px;
	}

	.soluturn-blog-grid {
		gap: 0;
		grid-template-columns: 1fr;
		padding-top: 10px;
	}

	.soluturn-blog-grid-card {
		border-bottom: 1px solid var(--soluturn-neutral-20);
		border-top: 0;
		display: grid;
		gap: 14px;
		grid-template-columns: 112px minmax(0, 1fr);
		padding: 14px 0;
	}

	.soluturn-blog-grid-card:last-child {
		border-bottom: 0;
	}

	.soluturn-blog-grid-card__media {
		display: block;
		width: 112px;
	}

	.soluturn-related-articles .soluturn-blog-grid-card {
		grid-template-columns: 1fr;
	}

	.soluturn-blog-grid-card__body {
		gap: 4px;
	}
}

@media (max-width: 699px) {
	.soluturn-portfolio-grid {
		grid-template-columns: 1fr;
	}

	.soluturn-blog-card__content {
		padding: 18px;
	}

	.soluturn-blog-lead,
	.soluturn-blog-lead--solo,
	.soluturn-blog-grid-card {
		gap: 12px;
		grid-template-columns: 92px minmax(0, 1fr);
	}

	.soluturn-blog-sidebar-item__thumb,
	.soluturn-blog-grid-card__media {
		width: 92px;
	}
}

/* ============================================================
   Portfolio Dark Gallery
   Full dark-mode override for all portfolio pages.
   ============================================================ */

body.post-type-archive-portfolio,
body.single-portfolio {
	--soluturn-neutral-00: #111015;
	--soluturn-neutral-05: #18171e;
	--soluturn-neutral-10: #1f1e27;
	--soluturn-neutral-20: #2e2d3a;
	--soluturn-neutral-30: #3d3c4e;
	--soluturn-neutral-40: #6b6a7d;
	--soluturn-neutral-60: #a09fb3;
	--soluturn-neutral-70: #cac9d8;
	--soluturn-neutral-80: #eeedf5;
	--soluturn-purple-50: #b98ef0;
	--soluturn-purple-60: #a87ae8;
	background-color: var(--soluturn-neutral-00);
	color: var(--soluturn-neutral-70);
}

/* Brand swap — "SkrabekDesign Co." on portfolio pages */
body.post-type-archive-portfolio .soluturn-header__brand-secondary,
body.single-portfolio .soluturn-header__brand-secondary,
body.post-type-archive-portfolio .soluturn-footer__wordmark-light,
body.single-portfolio .soluturn-footer__wordmark-light {
	font-size: 0;
	line-height: 0;
}

body.post-type-archive-portfolio .soluturn-header__brand-secondary::after,
body.single-portfolio .soluturn-header__brand-secondary::after {
	content: "Design Co.";
	font-size: 18px;
	line-height: 1.5;
}

body.post-type-archive-portfolio .soluturn-footer__wordmark-light::after,
body.single-portfolio .soluturn-footer__wordmark-light::after {
	content: "Design Co.";
	font-size: clamp(48px, 8vw, 96px);
	font-weight: 300;
	line-height: 1;
}

/* Copyright line swap */
body.post-type-archive-portfolio .soluturn-footer__bottom span:last-child,
body.single-portfolio .soluturn-footer__bottom span:last-child {
	font-size: 0;
	line-height: 0;
}

body.post-type-archive-portfolio .soluturn-footer__bottom span:last-child::after,
body.single-portfolio .soluturn-footer__bottom span:last-child::after {
	content: "\00A9  2026 Skrabek Design Co.";
	font-size: 14px;
	line-height: 1.5;
}

/* Header — dark translucent glass */
body.post-type-archive-portfolio .soluturn-header-shell,
body.single-portfolio .soluturn-header-shell {
	background-color: rgba(17, 16, 21, 0.92);
	border-bottom-color: rgba(46, 45, 58, 0.6);
}

/* Nav links */
body.post-type-archive-portfolio .soluturn-header__nav a,
body.single-portfolio .soluturn-header__nav a {
	color: var(--soluturn-neutral-60);
}

body.post-type-archive-portfolio .soluturn-header__nav a:hover,
body.single-portfolio .soluturn-header__nav a:hover {
	color: var(--soluturn-neutral-80);
}

/* Sub-menu dropdown — dark */
body.post-type-archive-portfolio .soluturn-classic-nav__list .sub-menu,
body.single-portfolio .soluturn-classic-nav__list .sub-menu {
	background: var(--soluturn-neutral-10);
	border-color: var(--soluturn-neutral-20);
	box-shadow: 0 6px 20px rgba(0, 0, 0, 0.4);
}

body.post-type-archive-portfolio .soluturn-classic-nav__list .sub-menu li a:hover,
body.post-type-archive-portfolio .soluturn-classic-nav__list .sub-menu li a:focus,
body.single-portfolio .soluturn-classic-nav__list .sub-menu li a:hover,
body.single-portfolio .soluturn-classic-nav__list .sub-menu li a:focus {
	background: var(--soluturn-neutral-20);
}

/* Studios link */
body.post-type-archive-portfolio .soluturn-studios-link,
body.single-portfolio .soluturn-studios-link {
	color: var(--soluturn-neutral-60);
}

/* Cart button */
body.post-type-archive-portfolio .soluturn-cart-btn,
body.single-portfolio .soluturn-cart-btn {
	background: var(--soluturn-purple-60);
}

/* Footer — dark */
body.post-type-archive-portfolio .soluturn-footer,
body.single-portfolio .soluturn-footer {
	background-color: var(--soluturn-neutral-00);
	border-top-color: var(--soluturn-neutral-20);
}

body.post-type-archive-portfolio .soluturn-footer__links a,
body.single-portfolio .soluturn-footer__links a {
	color: var(--soluturn-neutral-60);
}

body.post-type-archive-portfolio .soluturn-footer__links a:hover,
body.single-portfolio .soluturn-footer__links a:hover {
	color: var(--soluturn-neutral-80);
}

body.post-type-archive-portfolio .soluturn-footer__newsletter-input,
body.single-portfolio .soluturn-footer__newsletter-input {
	background: var(--soluturn-neutral-10);
	border-color: var(--soluturn-neutral-20);
	color: var(--soluturn-neutral-70);
}

body.post-type-archive-portfolio .soluturn-footer__brand,
body.single-portfolio .soluturn-footer__brand {
	color: var(--soluturn-neutral-80);
}

body.post-type-archive-portfolio .soluturn-footer__legal,
body.post-type-archive-portfolio .soluturn-footer__legal a,
body.single-portfolio .soluturn-footer__legal,
body.single-portfolio .soluturn-footer__legal a {
	color: var(--soluturn-neutral-40);
}

/* ---- Portfolio intro hero ---- */
.soluturn-portfolio-intro {
	margin-bottom: 64px;
	max-width: 720px;
	padding-top: 16px;
}

.soluturn-portfolio-intro__eyebrow {
	color: var(--soluturn-purple-60);
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.08em;
	margin: 0 0 20px;
	text-transform: uppercase;
}

.soluturn-portfolio-intro__headline {
	color: var(--soluturn-neutral-80);
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: clamp(2.2rem, 4vw, 3.4rem);
	font-weight: 700;
	letter-spacing: -0.035em;
	line-height: 1.05;
	margin: 0 0 20px;
}

.soluturn-portfolio-intro__sub {
	color: var(--soluturn-neutral-60);
	font-size: 17px;
	line-height: 1.6;
	margin: 0;
	max-width: 580px;
}

.soluturn-portfolio-intro__divider {
	background: var(--soluturn-neutral-20);
	height: 1px;
	margin: 40px 0 0;
	width: 100%;
}

.soluturn-portfolio-intro__cta-label {
	color: var(--soluturn-neutral-40);
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.06em;
	margin: 20px 0 0;
	text-transform: uppercase;
}

.soluturn-portfolio-intro__cta-label span {
	display: inline-block;
	animation: soluturn-bounce-down 2s ease-in-out infinite;
}

@keyframes soluturn-bounce-down {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(4px); }
}

@media (max-width: 699px) {
	.soluturn-portfolio-intro {
		margin-bottom: 40px;
	}

	.soluturn-portfolio-intro__headline {
		font-size: 2rem;
	}

	.soluturn-portfolio-intro__sub {
		font-size: 15px;
	}
}

/* ---- Lead project (first item) ---- */
.soluturn-portfolio-lead {
	border-top: 1px solid var(--soluturn-neutral-20);
	display: grid;
	gap: 32px;
	grid-template-columns: 3fr 2fr;
	margin-bottom: 48px;
	padding-top: 32px;
}

.soluturn-portfolio-lead > p:empty {
	display: none;
}

.soluturn-portfolio-lead__media {
	display: block;
	line-height: 0;
	overflow: hidden;
}

.soluturn-portfolio-lead__media img {
	display: block;
	height: auto;
	transition: transform 400ms ease;
	width: 100%;
}

.soluturn-portfolio-lead__media:hover img {
	transform: scale(1.02);
}

.soluturn-portfolio-lead__info {
	display: flex;
	flex-direction: column;
	gap: 12px;
	justify-content: flex-end;
	padding-bottom: 8px;
}

.soluturn-portfolio-lead__type {
	color: var(--soluturn-neutral-40);
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.soluturn-portfolio-lead__title {
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: clamp(2rem, 3.5vw, 3rem);
	font-weight: 700;
	letter-spacing: -0.035em;
	line-height: 1.0;
	margin: 0;
}

.soluturn-portfolio-lead__title a {
	color: var(--soluturn-neutral-80);
	text-decoration: none;
}

.soluturn-portfolio-lead__title a:hover {
	text-decoration: underline;
}

/* ---- Portfolio gallery grid (dark restyle) ---- */
body.post-type-archive-portfolio .soluturn-portfolio-grid,
body.single-portfolio .soluturn-portfolio-grid {
	gap: 28px;
}

body.post-type-archive-portfolio .soluturn-portfolio-card,
body.single-portfolio .soluturn-portfolio-card {
	background: none;
	border: 0;
}

body.post-type-archive-portfolio .soluturn-portfolio-card__media,
body.single-portfolio .soluturn-portfolio-card__media {
	border-radius: 0;
	overflow: hidden;
}

body.post-type-archive-portfolio .soluturn-portfolio-card__media img,
body.single-portfolio .soluturn-portfolio-card__media img {
	border-radius: 0;
	transition: transform 400ms ease, filter 300ms ease;
}

body.post-type-archive-portfolio .soluturn-portfolio-card:hover .soluturn-portfolio-card__media img,
body.single-portfolio .soluturn-portfolio-card:hover .soluturn-portfolio-card__media img {
	filter: brightness(1.08);
	transform: scale(1.02);
}

body.post-type-archive-portfolio .soluturn-portfolio-card__badge,
body.single-portfolio .soluturn-portfolio-card__badge {
	display: none;
}

.soluturn-portfolio-card__type {
	color: var(--soluturn-neutral-40);
	display: block;
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

body.post-type-archive-portfolio .soluturn-portfolio-card__name,
body.single-portfolio .soluturn-portfolio-card__name {
	font-size: 15px;
	font-weight: 500;
}

body.post-type-archive-portfolio .soluturn-portfolio-card__name a,
body.single-portfolio .soluturn-portfolio-card__name a {
	color: var(--soluturn-neutral-80);
}

body.post-type-archive-portfolio .soluturn-portfolio-card__name a:hover,
body.single-portfolio .soluturn-portfolio-card__name a:hover {
	color: var(--soluturn-purple-60);
}

body.post-type-archive-portfolio .soluturn-portfolio-card__desc,
body.single-portfolio .soluturn-portfolio-card__desc {
	display: none;
}

body.post-type-archive-portfolio .soluturn-editorial-empty,
body.single-portfolio .soluturn-editorial-empty {
	background: none;
	border-color: var(--soluturn-neutral-20);
	color: var(--soluturn-neutral-60);
}

/* ---- Portfolio single — dark overrides for hardcoded colors ---- */
body.single-portfolio .soluturn-portfolio-hero__media img {
	border: 0;
	border-radius: 0;
	box-shadow: none;
}

body.single-portfolio .soluturn-related-projects {
	border-top-color: var(--soluturn-neutral-20);
}

body.single-portfolio .soluturn-related-projects__header .soluturn-editorial-hero__eyebrow {
	color: var(--soluturn-purple-60);
}

body.single-portfolio .soluturn-editorial-content--portfolio blockquote {
	border-radius: 0;
}

body.single-portfolio .soluturn-editorial-content--portfolio .alignfull img {
	border-radius: 0;
}

/* ---- Portfolio dark gallery — responsive ---- */
@media (max-width: 959px) {
	.soluturn-portfolio-lead {
		gap: 20px;
		grid-template-columns: 1fr;
	}

	.soluturn-portfolio-lead__info {
		justify-content: flex-start;
		padding-bottom: 0;
	}

	.soluturn-portfolio-lead__title {
		font-size: clamp(1.8rem, 3vw, 2.4rem);
	}

	body.post-type-archive-portfolio .soluturn-portfolio-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 699px) {
	body.post-type-archive-portfolio .soluturn-portfolio-grid {
		grid-template-columns: 1fr;
	}
}

/* ---- Variation selectors (Dimensions, Framing) ---- */
.soluturn-pdp__info .variations {
	border: none;
	border-collapse: separate;
	border-spacing: 0;
	margin-bottom: var(--wp--preset--spacing--30);
	width: 100%;
}

.soluturn-pdp__info .variations tr {
	display: flex;
	flex-direction: column;
	gap: 4px;
	margin-bottom: var(--wp--preset--spacing--40);
}

.soluturn-pdp__info .variations td,
.soluturn-pdp__info .variations th,
.woocommerce table.variations tr th,
.woocommerce table.variations tr td {
	border: none;
	display: block;
	padding: 0 !important;
	text-align: left;
}

.soluturn-pdp__info .variations .label label {
	color: var(--soluturn-neutral-80);
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 14px;
	font-weight: 600;
	text-transform: none;
}

/* Hide native select Ã¢â‚¬â€ swatches replace it */
.soluturn-pdp__info .variations select {
	display: none;
}

/* Swatch button container */
.soluturn-swatches {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

/* Individual swatch button */
.soluturn-swatch {
	align-items: center;
	background-color: var(--soluturn-neutral-00);
	border: 1px solid var(--soluturn-neutral-30);
	border-radius: 4px;
	color: var(--soluturn-neutral-80);
	cursor: pointer;
	display: inline-flex;
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 14px;
	font-weight: 400;
	justify-content: center;
	line-height: 1;
	min-height: 40px;
	min-width: 48px;
	padding: 8px 14px;
	transition:
		border-color 160ms ease,
		background-color 160ms ease;
}

.soluturn-swatch:hover {
	border-color: var(--soluturn-neutral-70);
}

.soluturn-swatch--active {
	background-color: var(--soluturn-neutral-80);
	border-color: transparent;
	box-shadow: var(--soluturn-button-shadow-rest);
	color: var(--soluturn-neutral-10);
	font-weight: 500;
}

.soluturn-pdp__info .reset_variations {
	color: var(--soluturn-neutral-70);
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 13px;
	margin-top: 4px;
}

/* ---- Add to cart button area ---- */
.soluturn-pdp__info .woocommerce-variation-add-to-cart,
.soluturn-pdp__info .cart {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: var(--wp--preset--spacing--40);
}

/* PDP quantity — mirrors the cart quantity selector */
.soluturn-pdp__info .soluturn-qty-wrap {
	align-items: center;
	background: var(--soluturn-neutral-10);
	border: 1px solid rgba(58, 57, 75, 0.14);
	border-radius: 8px;
	display: inline-flex;
	overflow: hidden;
}

.soluturn-pdp__info .soluturn-qty-wrap .quantity {
	margin: 0;
}

.soluturn-pdp__info .soluturn-qty-wrap .qty {
	-moz-appearance: textfield;
	appearance: textfield;
	background: transparent;
	border: 0;
	border-left: 1px solid rgba(58, 57, 75, 0.14);
	border-radius: 0;
	border-right: 1px solid rgba(58, 57, 75, 0.14);
	box-shadow: none;
	color: var(--soluturn-neutral-80);
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: var(--wp--preset--font-size--medium);
	height: 49px;
	min-height: 0;
	max-height: none;
	padding: 0;
	text-align: center;
	width: 3rem;
}

.soluturn-pdp__info .soluturn-qty-wrap .qty::-webkit-inner-spin-button,
.soluturn-pdp__info .soluturn-qty-wrap .qty::-webkit-outer-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.soluturn-pdp__info .soluturn-qty-wrap .soluturn-qty-btn {
	height: 49px;
	width: 49px;
}

.soluturn-pdp__info .single_add_to_cart_button {
	flex: 1;
	max-height: 49px;
}


/* ---- Product meta (SKU, Category, Tags) ---- */
.soluturn-pdp__info .wp-block-woocommerce-product-meta {
	border-top: 1px solid var(--soluturn-neutral-20);
	margin-top: var(--wp--preset--spacing--40);
	padding-top: var(--wp--preset--spacing--40);
}

.soluturn-pdp__info .wp-block-woocommerce-product-meta,
.soluturn-pdp__info .wp-block-woocommerce-product-meta * {
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 13px;
	color: var(--soluturn-neutral-70);
}

.soluturn-pdp__info .wp-block-woocommerce-product-meta a {
	color: var(--soluturn-neutral-80);
	text-decoration: underline;
}

/* ---- Product details / tabs (minimal style) ---- */
.soluturn-pdp .wc-block-woocommerce-product-details.is-style-minimal {
	margin-top: var(--wp--preset--spacing--70);
}

/* Hide default WooCommerce tab navigation */
.woocommerce-tabs .wc-tabs {
	display: none !important;
}

/* Accordion layout for Description / Additional Information */
.soluturn-accordions {
	display: flex;
	flex-direction: column;
	gap: 16px;
	margin-top: var(--wp--preset--spacing--70);
}

.soluturn-accordions .wp-block-details {
	margin: 0;
}

/* Hide duplicate headings Ã¢â‚¬â€ WooCommerce templates output their own h2
   inside the callback, but the <summary> already serves as the heading. */
.soluturn-accordion__content > h2:first-child,
.soluturn-accordion__content > h2:first-of-type {
	display: none !important;
}

/* Content spacing inside open accordion */
.soluturn-accordion__content {
	padding: 16px;
}

.soluturn-accordion__content .woocommerce-product-attributes {
	width: 100%;
	border-collapse: collapse;
}

.soluturn-accordion__content .woocommerce-product-attributes th,
.soluturn-accordion__content .woocommerce-product-attributes td {
	padding: 10px 12px;
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 15px;
	border-bottom: 1px solid var(--soluturn-neutral-20, #e5e5e5);
}

.soluturn-accordion__content .woocommerce-product-attributes th {
	color: var(--soluturn-neutral-60, #525252);
	font-weight: 600;
	text-align: left;
	width: 30%;
}

.soluturn-accordion__content .woocommerce-product-attributes td p {
	margin: 0;
}

/* Standalone reviews section Ã¢â‚¬â€ always visible, no tab wrapper needed */
.soluturn-reviews-standalone {
	margin-top: var(--wp--preset--spacing--70);
}

.soluturn-reviews-standalone .soluturn-reviews__title {
	display: block !important;
}

/* ---- Mobile responsive ---- */
@media (max-width: 781px) {
	.soluturn-pdp__layout {
		flex-direction: column !important;
	}

	.soluturn-pdp__gallery,
	.soluturn-pdp__info {
		flex-basis: 100% !important;
	}

	.soluturn-pdp__info {
		position: static;
	}

	/* Ã¢â€â‚¬Ã¢â€â‚¬ Mobile swipe gallery Ã¢â€â‚¬Ã¢â€â‚¬ */
	.soluturn-pdp__gallery {
		margin-left: calc(-1 * var(--wp--preset--spacing--50)) !important;
		margin-right: calc(-1 * var(--wp--preset--spacing--50)) !important;
		width: auto !important;
		overflow: hidden !important;
	}

	/* Prevent page-level horizontal scroll */
	.soluturn-pdp {
		overflow-x: hidden !important;
	}
}

/* ================================================================
   Review Bubbles
   ================================================================ */

.soluturn-reviews {
	padding: var(--wp--preset--spacing--50) 0;
}

.soluturn-reviews__header {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 0;
}

.soluturn-reviews__title {
	display: block !important;
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: clamp(1.5rem, 3vw, 2rem);
	font-weight: 700;
	margin: 0;
	text-align: center;
	width: 100%;
}

/* Ã¢â€â‚¬Ã¢â€â‚¬ Summary bar Ã¢â€â‚¬Ã¢â€â‚¬ */
.soluturn-reviews__summary-bar {
	align-items: center;
	border-bottom: 1px solid var(--soluturn-neutral-20, #e5e5e5);
	display: flex;
	gap: 24px 40px;
	justify-content: space-between;
	margin-bottom: var(--wp--preset--spacing--40);
	padding: 24px 0 28px;
}

/* Left Ã¢â‚¬â€ average */
.soluturn-reviews__avg {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 4px;
	flex-shrink: 0;
}

.soluturn-reviews__avg-stars {
	display: flex;
	gap: 2px;
}

.soluturn-reviews__avg-number {
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 15px;
	font-weight: 600;
	color: var(--soluturn-neutral-80);
}

.soluturn-reviews__avg-based {
	color: var(--soluturn-neutral-50, #737373);
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 13px;
}

/* Centre Ã¢â‚¬â€ breakdown bars */
.soluturn-reviews__breakdown {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 6px;
	max-width: 380px;
	min-width: 200px;
}

.soluturn-reviews__bar-row {
	align-items: center;
	display: flex;
	gap: 8px;
	cursor: pointer;
	transition: opacity 0.2s ease;
}

.soluturn-reviews__bar-row:hover {
	opacity: 0.7;
}

.soluturn-reviews__bar-row.is-active .soluturn-reviews__bar-fill {
	background: var(--soluturn-purple-80, #581c87);
}

.soluturn-reviews__bar-row.is-active .soluturn-reviews__bar-count {
	color: var(--soluturn-purple-60, #6b21a8);
	font-weight: 600;
}

.soluturn-reviews__bar-label {
	display: flex;
	gap: 1px;
	flex-shrink: 0;
	width: 78px;
}

.soluturn-reviews__bar-track {
	background: var(--soluturn-neutral-10, #f5f5f5);
	border-radius: 4px;
	flex: 1;
	height: 8px;
	overflow: hidden;
}

.soluturn-reviews__bar-fill {
	background: var(--soluturn-purple-60, #6b21a8);
	border-radius: 4px;
	height: 100%;
	transition: width 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.soluturn-reviews__bar-count {
	color: var(--soluturn-neutral-60, #525252);
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 13px;
	min-width: 20px;
	text-align: right;
}

/* Right Ã¢â‚¬â€ write CTA */
.soluturn-reviews__write-cta {
	display: flex;
	align-items: center;
	flex-shrink: 0;
}

/* Mobile: stack the summary bar */
@media (max-width: 781px) {
	.soluturn-reviews__summary-bar {
		flex-direction: column;
		text-align: center;
	}

	.soluturn-reviews__avg {
		align-items: center;
	}

	.soluturn-reviews__breakdown {
		max-width: none;
		width: 100%;
	}

	.soluturn-reviews__write-cta {
		justify-content: center;
	}
}

/* Hide WooCommerce's default star rating widget inside our custom form */
.soluturn-review-form .comment-form-rating,
.soluturn-review-form p.stars,
#reviews .comment-form-rating {
	display: none !important;
}

/* Ã¢â€â‚¬Ã¢â€â‚¬ Inline review form Ã¢â€â‚¬Ã¢â€â‚¬ */
.soluturn-review-form-wrapper {
	border-bottom: 1px solid var(--soluturn-neutral-20, #e5e5e5);
	overflow: hidden;
	transition: max-height 0.4s ease, opacity 0.3s ease;
}

.soluturn-review-form {
	max-width: 600px;
	margin: 0 auto;
	padding: 32px 0 40px;
	text-align: center;
}

.soluturn-review-form__title {
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: clamp(1.25rem, 2.5vw, 1.5rem);
	font-weight: 700;
	color: var(--soluturn-neutral-80);
	margin: 0 0 28px;
}

.soluturn-review-form__field {
	margin-bottom: 20px;
	text-align: left;
}

.soluturn-review-form__label {
	color: var(--soluturn-neutral-80);
	display: block;
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.05em;
	margin-bottom: 8px;
	text-transform: uppercase;
}

.soluturn-review-form__field--stars {
	text-align: center;
}

.soluturn-review-form__hint {
	color: var(--soluturn-neutral-50, #737373);
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
}

.soluturn-review-form__form input:not([type="submit"]):not([type="hidden"]),
.soluturn-review-form__form textarea {
	width: 100%;
	box-sizing: border-box;
}

.soluturn-review-form__form textarea {
	min-height: 100px;
}

/* Star picker */
.soluturn-review-form__stars {
	display: flex;
	gap: 6px;
	justify-content: center;
	margin-bottom: 4px;
}

.soluturn-review-form__star {
	background: none;
	border: none;
	box-shadow: none !important;
	cursor: pointer;
	padding: 2px;
	transition: transform 0.15s ease;
	line-height: 0;
}

.soluturn-review-form__star:hover {
	transform: scale(1.15);
}

.soluturn-review-form__star svg {
	transition: fill 0.15s ease;
	pointer-events: none;
}

.soluturn-review-form__star.is-selected svg,
.soluturn-review-form__star.is-hovered svg {
	fill: var(--soluturn-purple-60, #6b21a8) !important;
}

/* Form action buttons */
.soluturn-review-form__actions {
	display: flex;
	gap: 12px;
	justify-content: center;
	margin-top: 28px;
}

.soluturn-review-form__cancel {
	background: transparent !important;
	border: 1px solid var(--soluturn-neutral-30, #d4d4d4) !important;
	color: var(--soluturn-neutral-80) !important;
}

.soluturn-review-form__cancel:hover {
	background: var(--soluturn-neutral-10, #f5f5f5) !important;
	border-color: var(--soluturn-neutral-40, #a3a3a3) !important;
}

.soluturn-review-form__submit {
	text-transform: uppercase;
	letter-spacing: 0.04em;
	font-weight: 700;
}

/* Arena */
.soluturn-reviews__arena {
	position: relative;
	overflow: hidden;
	min-height: 200px;
}

/* Individual bubble card */
.soluturn-bubble {
	background: var(--soluturn-neutral-00, #fff);
	border: 1px solid var(--soluturn-neutral-20, #e5e5e5);
	border-radius: 16px;
	box-sizing: border-box;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04), 0 1px 2px rgba(0, 0, 0, 0.02);
	cursor: default;
	padding: 20px;
	user-select: text;
}

.soluturn-bubble:hover {
	box-shadow: 0 6px 20px rgba(0, 0, 0, 0.08), 0 2px 6px rgba(0, 0, 0, 0.04);
	z-index: 2;
}

.soluturn-bubble__stars {
	display: flex;
	gap: 2px;
	margin-bottom: 10px;
}

.soluturn-bubble__text {
	color: var(--soluturn-neutral-80, #262626);
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 14px;
	line-height: 1.55;
	margin: 0 0 12px;
	overflow: hidden;
	display: -webkit-box;
	-webkit-line-clamp: 5;
	-webkit-box-orient: vertical;
}

.soluturn-bubble__author {
	color: var(--soluturn-neutral-80, #262626);
	display: block;
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 13px;
	font-weight: 600;
}

.soluturn-bubble__date {
	color: var(--soluturn-neutral-50, #737373);
	display: block;
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 12px;
	margin-top: 2px;
}

/* Mobile: flow layout, single column, no absolute positioning */
@media (max-width: 600px) {
	.soluturn-reviews__arena {
		display: flex;
		flex-direction: column;
		gap: 12px;
		min-height: auto !important;
	}

	.soluturn-bubble {
		position: static !important;
		width: 100% !important;
	}
}

/* See more button Ã¢â‚¬â€ inherits design system button, just centered */
.soluturn-reviews__see-more {
	display: block;
	margin: 24px auto 0;
}

/* Mobile adjustments */
@media (max-width: 781px) {
	.soluturn-bubble {
		max-width: none;
		width: calc(80% - 16px);
	}
}

/* ============================================================
   PLP — Category Navigation
   ============================================================ */

.soluturn-cat-nav__list {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 32px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.soluturn-cat-nav__link {
	color: var(--soluturn-neutral-60, #525252);
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 15px;
	font-weight: 500;
	padding-bottom: 6px;
	text-decoration: none;
	transition: color 150ms ease;
}

.soluturn-cat-nav__link:hover {
	color: var(--soluturn-neutral-80, #262626);
}

.soluturn-cat-nav__link--active {
	border-bottom: 3px solid var(--soluturn-neutral-80, #262626);
	color: var(--soluturn-neutral-80, #262626);
}

/* ============================================================
   Product Rail (reusable carousel: home, related, etc.)
   ============================================================ */

.soluturn-home-rail__heading {
	color: var(--soluturn-neutral-80);
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 24px;
	font-weight: 600;
	margin: 0 0 16px;
	padding: 0;
}

/* Ensure the rail fills its container on PDP */
#soluturn-related-products-rail {
	margin-top: 48px;
	width: 100%;
}

.soluturn-home-rail {
	margin-left: auto;
	margin-right: auto;
	max-width: 1200px;
	padding: 0;
	width: 100%;
}

/* Kill wpautop <p> wrappers inside rail */
.soluturn-home-rail p:empty {
	display: none;
}

/* The viewport scrolls horizontally on smaller screens; on desktop all 5 fit. */
.soluturn-home-rail__viewport {
	-webkit-overflow-scrolling: touch;
	overflow-x: auto;
	overflow-y: hidden;
	position: relative;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	width: 100%;
}

.soluturn-home-rail__viewport::-webkit-scrollbar {
	display: none;
}

.soluturn-home-rail__track {
	display: grid;
	gap: 2px;
	grid-template-columns: repeat(5, 1fr);
}

.soluturn-home-rail__slide {
	min-width: 0;
	scroll-snap-align: start;
}

.soluturn-home-rail__tile {
	height: 100%;
}

/* Square edges, no border-radius — matches PLP tile treatment */
.soluturn-home-rail__image-wrap {
	border-radius: 0;
	overflow: hidden;
}

.soluturn-home-rail__slide .soluturn-tile__img {
	aspect-ratio: 2 / 3;
	display: block;
	height: auto;
	object-fit: cover;
	width: 100%;
}

/* Hide price in rail tiles */
.soluturn-home-rail__slide .soluturn-tile__price {
	display: none;
}

/* Hide scrollbar — not needed when all 5 fit on desktop */
.soluturn-home-rail__scrollbar {
	display: none;
	height: 3px;
	margin: 16px 24px;
	position: relative;
	border-radius: 3px;
	background: rgba(0, 0, 0, 0.08);
	overflow: hidden;
}

.soluturn-home-rail__scrollbar-thumb {
	position: absolute;
	top: 0;
	left: 0;
	height: 100%;
	border-radius: 3px;
	background: var(--soluturn-purple-60, #6b21a8);
	width: 33%;
	transition: left 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94), width 0.2s ease;
}

/* ============================================================
   Discovery Quiz + Toolbar
   ============================================================ */

.soluturn-discovery {
	align-content: center;
	background: #f6efff;
	border-radius: 16px;
	color: var(--soluturn-neutral-80, #282737);
	display: grid;
	justify-items: center;
	margin-left: auto;
	margin-right: auto;
	max-width: 1200px;
	min-height: 350px;
	padding: 32px 32px;
	position: relative;
}

/* Kill wpautop <p> and <br> wrappers injected inside discovery quiz */
.soluturn-discovery p:empty,
.soluturn-discovery__form > br,
.soluturn-discovery__form > input[type="hidden"],
.soluturn-discovery__form > p:empty,
.soluturn-discovery__steps > p:empty,
.soluturn-discovery__step > p:empty {
	display: none;
}

/* Intro and toolbar copy are centered so the quiz reads as one compact guided banner rather than a form stack. */
.soluturn-discovery__intro,
.soluturn-discovery__toolbar-head {
	display: grid;
	gap: 4px;
	justify-items: center;
	text-align: center;
}

.soluturn-discovery__eyebrow {
	color: var(--soluturn-purple-60, #6f39c6);
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.06em;
	margin: 0;
	text-transform: uppercase;
}

.soluturn-discovery__title,
.soluturn-discovery__toolbar-title {
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: clamp(22px, 2.8vw, 30px);
	font-weight: 500;
	line-height: 1.1;
	margin: 0;
	text-align: center;
}

.soluturn-discovery__body {
	color: var(--soluturn-neutral-60, #525252);
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 14px;
	line-height: 1.4;
	margin: 0;
	max-width: 34ch;
	text-align: center;
}

.soluturn-discovery__form,
.soluturn-discovery__toolbar-form {
	display: grid;
	gap: 16px;
	justify-items: center;
	margin-top: 20px;
	width: 100%;
}

.soluturn-discovery__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	justify-content: center;
	min-height: 0;
}

/* Chips are persistent answer summaries; on the homepage they also act as edit controls for revisiting earlier choices. */
.soluturn-discovery__chip {
	background: var(--soluturn-neutral-00, #fff);
	border: 1px solid rgba(111, 57, 198, 0.14);
	border-radius: 999px;
	color: var(--soluturn-purple-60, #6f39c6);
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 13px;
	font-weight: 500;
	line-height: 1;
	padding: 8px 12px;
}

button.soluturn-discovery__chip {
	cursor: pointer;
}

.soluturn-discovery__step {
	display: none;
	gap: 10px;
	justify-items: center;
}

/* Only the active step is visible so the experience feels progressive instead of exposing every filter at once. */
.soluturn-discovery__step.is-active {
	display: grid;
}

.soluturn-discovery__question,
.soluturn-discovery__toolbar-label {
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 15px;
	font-weight: 500;
	line-height: 1.2;
	margin: 0;
	text-align: center;
}

.soluturn-discovery__options,
.soluturn-discovery__toolbar-options {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	justify-content: center;
}

.soluturn-discovery__option,
.soluturn-discovery__toolbar-pill span {
	background: var(--soluturn-neutral-00, #fff);
	border: 1px solid rgba(40, 39, 55, 0.12);
	border-radius: 999px;
	color: var(--soluturn-neutral-80, #282737);
	cursor: pointer;
	display: inline-flex;
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 15px;
	font-weight: 500;
	justify-content: center;
	line-height: 1.2;
	min-height: 40px;
	padding: 10px 16px;
	text-align: center;
	text-decoration: none;
	transition: border-color 160ms ease, background-color 160ms ease, color 160ms ease;
}

.soluturn-discovery__option:hover,
.soluturn-discovery__toolbar-pill:hover span {
	border-color: var(--soluturn-purple-60, #6f39c6);
	color: var(--soluturn-purple-60, #6f39c6);
}

.soluturn-discovery__option.is-selected,
.soluturn-discovery__toolbar-pill input:checked + span {
	background: var(--soluturn-purple-60, #6f39c6);
	border-color: var(--soluturn-purple-60, #6f39c6);
	color: var(--soluturn-neutral-00, #fff);
}

.soluturn-discovery__toolbar-pill {
	cursor: pointer;
	display: inline-flex;
}

.soluturn-discovery__toolbar-pill input {
	clip: rect(0, 0, 0, 0);
	height: 1px;
	overflow: hidden;
	position: absolute;
	white-space: nowrap;
	width: 1px;
}

.soluturn-discovery__actions,
.soluturn-discovery__toolbar-actions {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	justify-content: center;
	padding-top: 4px;
}

.soluturn-discovery__back {
	background: transparent;
	border: none;
	color: var(--soluturn-purple-60, #6f39c6);
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 14px;
	font-weight: 500;
	padding: 0;
}

.soluturn-discovery__back:disabled,
.soluturn-discovery__submit:disabled {
	cursor: not-allowed;
	opacity: 0.45;
}

.soluturn-discovery__submit {
	margin-left: 0;
}

.soluturn-discovery__toolbar-head {
	align-items: start;
	gap: 18px;
	grid-template-columns: 1fr auto;
}

.soluturn-discovery__toolbar-group {
	display: grid;
	gap: 10px;
}

.soluturn-discovery__reset {
	color: var(--soluturn-purple-60, #6f39c6);
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 14px;
	font-weight: 500;
	text-decoration: none;
}

.soluturn-discovery__reset:hover {
	text-decoration: underline;
}

/* ------------------------------------------------------------
   Discovery Results Bar (PLP filtered state)
   ------------------------------------------------------------ */

.soluturn-discovery-results {
	margin-left: auto;
	margin-right: auto;
	max-width: 1200px;
}

.soluturn-discovery-results__inner {
	align-items: center;
	border: 1px solid rgba(40, 39, 55, 0.10);
	border-radius: 16px;
	display: flex;
	gap: 24px;
	justify-content: space-between;
	padding: 16px 24px;
}

.soluturn-discovery-results__info {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.soluturn-discovery-results__label {
	color: var(--soluturn-neutral-60, #525252);
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 14px;
	font-weight: 500;
	margin: 0;
}

.soluturn-discovery-results__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

/* Filter chip with dropdown */
.soluturn-filter-chip {
	position: relative;
}

.soluturn-filter-chip__toggle {
	align-items: center;
	cursor: pointer;
	display: inline-flex;
	gap: 5px;
}

.soluturn-filter-chip__arrow {
	flex-shrink: 0;
	height: 5px;
	transition: transform 200ms ease;
	width: 8px;
}

.soluturn-filter-chip.is-open .soluturn-filter-chip__arrow {
	transform: rotate(180deg);
}

.soluturn-filter-chip__dropdown {
	background: var(--soluturn-neutral-00, #fff);
	border: 1px solid rgba(40, 39, 55, 0.12);
	border-radius: 10px;
	box-shadow: 0 6px 16px rgba(0, 0, 0, 0.08);
	display: none;
	left: 0;
	max-height: 240px;
	min-width: 160px;
	overflow-y: auto;
	padding: 4px;
	position: absolute;
	top: calc(100% + 4px);
	z-index: 100;
}

.soluturn-filter-chip.is-open .soluturn-filter-chip__dropdown {
	display: block;
}

.soluturn-discovery-results br,
.soluturn-discovery-results p:empty,
.soluturn-filter-chip br,
.soluturn-filter-chip p:empty {
	display: none;
}

.soluturn-filter-chip__option {
	border-radius: 6px;
	color: var(--soluturn-neutral-80, #282737);
	display: block;
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 13px;
	font-weight: 500;
	padding: 6px 10px;
	text-decoration: none;
	transition: background-color 120ms ease;
	white-space: nowrap;
}

.soluturn-filter-chip__option:hover {
	background: var(--soluturn-neutral-05, #f7f7f7);
	color: var(--soluturn-neutral-80, #282737);
}

.soluturn-filter-chip__option.is-selected {
	background: rgba(111, 57, 198, 0.08);
	color: var(--soluturn-purple-60, #6f39c6);
}

.soluturn-discovery-results__clear {
	color: var(--soluturn-purple-60, #6f39c6);
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 14px;
	font-weight: 500;
	text-decoration: none;
	white-space: nowrap;
}

.soluturn-discovery-results__clear:hover {
	text-decoration: underline;
}

@media (max-width: 600px) {
	.soluturn-discovery-results__inner {
		flex-direction: column;
		align-items: flex-start;
		gap: 12px;
	}
}

/* ------------------------------------------------------------
   Discovery Quiz — Slide Animations
   ------------------------------------------------------------ */

.soluturn-discovery__steps {
	min-height: 90px;
	overflow-y: visible;
	position: relative;
}

/* Steps are stacked on top of each other so height stays constant during transitions */
.soluturn-discovery__step.is-active {
	position: relative;
}

.soluturn-discovery__step.slide-out-left,
.soluturn-discovery__step.slide-out-right {
	left: 0;
	position: absolute;
	right: 0;
	top: 0;
}

/* Slide transitions — 300ms cubic-bezier for a snappy, natural feel */
@keyframes slideInRight {
	from { opacity: 0; transform: translateX(60px); }
	to   { opacity: 1; transform: translateX(0); }
}
@keyframes slideOutLeft {
	from { opacity: 1; transform: translateX(0); }
	to   { opacity: 0; transform: translateX(-60px); }
}
@keyframes slideInLeft {
	from { opacity: 0; transform: translateX(-60px); }
	to   { opacity: 1; transform: translateX(0); }
}
@keyframes slideOutRight {
	from { opacity: 1; transform: translateX(0); }
	to   { opacity: 0; transform: translateX(60px); }
}

.soluturn-discovery__step.slide-in-right {
	animation: slideInRight 300ms cubic-bezier(0.22, 1, 0.36, 1) forwards;
}
.soluturn-discovery__step.slide-out-left {
	animation: slideOutLeft 300ms cubic-bezier(0.22, 1, 0.36, 1) forwards;
}
.soluturn-discovery__step.slide-in-left {
	animation: slideInLeft 300ms cubic-bezier(0.22, 1, 0.36, 1) forwards;
}
.soluturn-discovery__step.slide-out-right {
	animation: slideOutRight 300ms cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

/* ------------------------------------------------------------
   Discovery Quiz — Finale Screen (magic dust + floating CTA)
   ------------------------------------------------------------ */

.soluturn-discovery__finale {
	align-content: center;
	justify-items: center;
	min-height: 180px;
}

/* Sparkles container — anchored to the full .soluturn-discovery frame, not the step */
.soluturn-discovery__sparkles {
	border-radius: 16px;
	inset: 0;
	overflow: visible;
	pointer-events: none;
	position: absolute;
	z-index: 0;
}

/* Rotating orb wrapper — centered in the sparkles container */
.soluturn-discovery__sparkles .sparkle-wrap {
	animation: sparkleRotate 14s infinite linear;
	height: 0;
	left: 50%;
	perspective: 1000px;
	position: absolute;
	top: 50%;
	transform-style: preserve-3d;
	width: 0;
}

@keyframes sparkleRotate {
	100% { transform: rotateY(360deg) rotateX(360deg); }
}

/* Individual particles — positioned via CSS custom properties set in JS */
.soluturn-discovery__sparkles .c {
	border-radius: 50%;
	height: 2px;
	opacity: 0;
	position: absolute;
	width: 2px;
	animation: sparkleOrbit 14s infinite;
	animation-delay: var(--d);
	background-color: hsl(var(--hue), 80%, 60%);
}

@keyframes sparkleOrbit {
	20%  { opacity: 1; }
	30%  { opacity: 1; transform: rotateZ(calc(-1 * var(--rz))) rotateY(var(--ry)) translateX(140px) rotateZ(var(--rz)); }
	80%  { opacity: 1; transform: rotateZ(calc(-1 * var(--rz))) rotateY(var(--ry)) translateX(140px) rotateZ(var(--rz)); }
	100% { opacity: 0; transform: rotateZ(calc(-1 * var(--rz))) rotateY(var(--ry)) translateX(420px) rotateZ(var(--rz)); }
}

/* Floating CTA button on the finale screen */
.soluturn-discovery__finale .soluturn-discovery__submit {
	animation: gentleFloat 2.5s ease-in-out infinite;
	position: relative;
	z-index: 1;
}

@keyframes gentleFloat {
	0%, 100% { transform: translateY(0); }
	50%      { transform: translateY(-6px); }
}

/* ============================================================
   Portfolio Cross-sell Banner
   ============================================================ */

.soluturn-portfolio-banner {
	margin-left: auto;
	margin-right: auto;
	max-width: 1200px;
}

.soluturn-portfolio-banner__inner {
	align-items: center;
	border: 1px solid rgba(40, 39, 55, 0.10);
	border-radius: 16px;
	display: flex;
	gap: 24px;
	justify-content: space-between;
	padding: 24px 32px;
}

.soluturn-portfolio-banner__copy {
	color: var(--soluturn-neutral-80, #282737);
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: clamp(18px, 2vw, 22px);
	font-weight: 500;
	line-height: 1.3;
	margin: 0;
}

.soluturn-portfolio-banner__accent {
	color: var(--soluturn-purple-60, #6f39c6);
}

.soluturn-portfolio-banner__cta {
	text-decoration: none;
	white-space: nowrap;
}

@media (max-width: 600px) {
	.soluturn-portfolio-banner__inner {
		flex-direction: column;
		gap: 16px;
		padding: 20px 24px;
		text-align: center;
	}

	.soluturn-portfolio-banner__cta {
		width: 100%;
	}
}

/* ============================================================
   PLP — Product Grid Tiles
   ============================================================ */

.soluturn-product-grid {
	display: grid;
	gap: 2px;
	grid-template-columns: repeat(3, 1fr);
	margin-left: auto;
	margin-right: auto;
	max-width: 1200px;
	width: 100%;
}

.soluturn-product-grid--cols-1 {
	grid-template-columns: repeat(1, 1fr);
}

.soluturn-product-grid--cols-2 {
	grid-template-columns: repeat(2, 1fr);
}

.soluturn-product-grid--cols-3 {
	grid-template-columns: repeat(3, 1fr);
}

.soluturn-product-grid--cols-4 {
	grid-template-columns: repeat(4, 1fr);
}

.soluturn-product-grid--cols-5 {
	grid-template-columns: repeat(5, 1fr);
}

.soluturn-product-grid--cols-6 {
	grid-template-columns: repeat(6, 1fr);
}

/* Individual tile */
.soluturn-tile {
	display: flex;
	flex-direction: column;
}

/* Image wrapper — relative for arrows/dots/badge overlay */
.soluturn-tile__image-wrap {
	background: var(--soluturn-neutral-05, #f7f7f7);
	line-height: 0;
	overflow: hidden;
	position: relative;
}

/* Kill wpautop <p> wrappers injected inside tiles */
.soluturn-tile__image-wrap > p {
	display: contents;
	margin: 0;
}

.soluturn-tile__info > p {
	display: contents;
	margin: 0;
}

/* Hide wpautop <br> tags injected between elements */
.soluturn-tile__image-wrap br,
.soluturn-tile__info br {
	display: none;
}

.soluturn-tile__link {
	display: block;
}

.soluturn-tile__img {
	aspect-ratio: 2 / 3;
	display: block;
	height: auto;
	object-fit: cover;
	transition: opacity 150ms ease;
	width: 100%;
}

/* Gallery arrow buttons — hidden until hover */
.soluturn-tile__arrow {
	align-items: center;
	background: rgba(255, 255, 255, 0.85);
	border: none;
	border-radius: 50%;
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);
	color: var(--soluturn-neutral-80, #262626);
	cursor: pointer;
	display: flex;
	height: 32px;
	justify-content: center;
	opacity: 0;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	transition: opacity 200ms ease;
	width: 32px;
	z-index: 3;
}

.soluturn-tile__arrow--prev { left: 8px; }
.soluturn-tile__arrow--next { right: 8px; }

.soluturn-tile__arrow svg {
	height: 14px;
	width: 14px;
}

.soluturn-tile:hover .soluturn-tile__arrow {
	opacity: 1;
}

.soluturn-tile__arrow:hover {
	background: rgba(255, 255, 255, 1);
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}

/* Dot indicators */
.soluturn-tile__dots {
	bottom: 8px;
	display: flex;
	gap: 4px;
	justify-content: center;
	left: 50%;
	opacity: 0;
	position: absolute;
	transform: translateX(-50%);
	transition: opacity 200ms ease;
	z-index: 3;
}

.soluturn-tile:hover .soluturn-tile__dots {
	opacity: 1;
}

.soluturn-tile__dot {
	background: rgba(255, 255, 255, 0.5);
	border: none;
	border-radius: 50%;
	cursor: pointer;
	height: 6px;
	padding: 0;
	transition: background 150ms ease;
	width: 6px;
}

.soluturn-tile__dot.is-active {
	background: #fff;
}

/* Badge overlay (e.g. "New", "Sale") */
.soluturn-tile__badge {
	background: var(--soluturn-neutral-00, #fff);
	border-radius: 2px;
	color: var(--soluturn-neutral-80, #262626);
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 12px;
	font-weight: 500;
	left: 10px;
	line-height: 1;
	padding: 4px 8px;
	position: absolute;
	top: 10px;
	z-index: 3;
}

/* Info section — title above, price below */
.soluturn-tile__info {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 10px 12px 16px;
}

.soluturn-tile__name {
	flex: 1;
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.4;
	margin: 0;
	min-width: 0;
}

.soluturn-tile__name a {
	color: var(--soluturn-neutral-80, #262626);
	text-decoration: none;
}

.soluturn-tile__name a:hover {
	color: var(--soluturn-purple-60, #6b21a8);
}

.soluturn-tile__price {
	color: var(--soluturn-neutral-60, #525252);
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 14px;
	font-weight: 500;
}

/* Pagination */
.soluturn-product-grid__pagination {
	display: flex;
	gap: 4px;
	justify-content: center;
	margin-top: var(--wp--preset--spacing--60);
}

.soluturn-product-grid__pagination a,
.soluturn-product-grid__pagination span {
	align-items: center;
	border: 1px solid var(--soluturn-neutral-20, #e5e5e5);
	border-radius: 6px;
	color: var(--soluturn-neutral-80, #262626);
	display: inline-flex;
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 14px;
	height: 36px;
	justify-content: center;
	min-width: 36px;
	padding: 0 8px;
	text-decoration: none;
	transition: background 150ms ease, border-color 150ms ease;
}

.soluturn-product-grid__pagination a:hover {
	background: var(--soluturn-neutral-05, #f7f7f7);
	border-color: var(--soluturn-neutral-30);
}

.soluturn-product-grid__pagination .current {
	background: var(--soluturn-purple-60, #6b21a8);
	border-color: var(--soluturn-purple-60, #6b21a8);
	color: #fff;
}

/* Responsive — 2 cols on tablet and mobile */
@media (max-width: 900px) {
	.soluturn-product-grid {
		grid-template-columns: repeat(2, 1fr) !important;
	}

	.soluturn-home-rail__track {
		display: flex;
		gap: 2px;
	}

	.soluturn-home-rail__slide {
		flex: 0 0 calc(100% / 3);
		min-width: calc(100% / 3);
	}

	.soluturn-home-rail__scrollbar {
		display: block;
	}

	.soluturn-discovery__toolbar-head {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 600px) {
	.soluturn-product-grid {
		gap: 1px;
	}

	.soluturn-tile__info {
		padding: 8px 8px 12px;
	}

	.soluturn-tile__name,
	.soluturn-tile__price {
		font-size: 12px;
	}

	/* Always show arrows on touch devices */
	.soluturn-tile__arrow {
		opacity: 0.7;
	}

	.soluturn-home-rail__track {
		display: flex;
		gap: 2px;
	}

	.soluturn-home-rail__slide {
		flex: 0 0 80%;
		min-width: 80%;
	}

	.soluturn-discovery {
		border-radius: 16px;
		padding: 16px;
	}

	.soluturn-discovery__title,
	.soluturn-discovery__toolbar-title {
		font-size: 24px;
		max-width: none;
	}

	.soluturn-discovery__option,
	.soluturn-discovery__toolbar-pill span {
		font-size: 14px;
		min-height: 42px;
		padding: 11px 16px;
	}

	.soluturn-discovery__actions,
	.soluturn-discovery__toolbar-actions {
		align-items: stretch;
		flex-direction: column;
	}

	.soluturn-discovery__submit {
		margin-left: 0;
		width: 100%;
	}

	.soluturn-discovery__finale {
		min-height: 140px;
	}
}

/* ============================================================
   Checkout — Söluturn Design System Override (Classic WooCommerce)
   ============================================================ */

/* --- Global checkout typography --- */
body.woocommerce-checkout {
	font-family: "Bricolage Grotesque", Arial, sans-serif;
}

body.woocommerce-checkout .woocommerce {
	max-width: 1200px;
	margin: 0 auto;
}

/* --- Coupon toggle notice --- */
body.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info {
	background: var(--soluturn-neutral-10);
	border: 1px solid var(--soluturn-neutral-20);
	border-left: none;
	border-radius: 8px;
	color: var(--soluturn-neutral-80);
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 14px;
	padding: 12px 16px;
	margin-bottom: 24px;
}

body.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info::before {
	display: none;
}

body.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info a {
	color: var(--soluturn-purple-60);
}

/* --- Coupon form --- */
body.woocommerce-checkout .checkout_coupon {
	border: 1px solid var(--soluturn-neutral-20) !important;
	border-radius: 8px;
	padding: 20px !important;
	margin-bottom: 24px;
}

body.woocommerce-checkout .checkout_coupon .input-text {
	border: 1px solid var(--soluturn-neutral-20);
	border-radius: 8px !important;
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 14px;
	padding: 10px 14px;
}

/* --- Two-column layout: form left, order summary right --- */
body.woocommerce-checkout form.checkout {
	display: grid;
	grid-template-columns: 1fr 420px;
	gap: 48px;
	align-items: start;
}

/* Express checkout spans full width */
body.woocommerce-checkout form.checkout > .wcpay-express-checkout-wrapper {
	grid-column: 1 / -1;
}

/* Billing + shipping = left column */
body.woocommerce-checkout form.checkout > #customer_details {
	grid-column: 1;
	grid-row: 2;
	width: 100% !important;
	float: none !important;
}

/* Order review = right column, sticky, spans rows 2-3 */
body.woocommerce-checkout form.checkout > .col2-set:not(#customer_details) {
	grid-column: 2;
	grid-row: 2 / 4;
	position: sticky;
	top: 24px;
	background: var(--soluturn-neutral-10);
	border-radius: 16px;
	padding: 28px;
	width: 100% !important;
	float: none !important;
}

/* Reset the col2-set inner columns for billing/shipping — stack them */
body.woocommerce-checkout #customer_details,
body.woocommerce-checkout #customer_details .col-1,
body.woocommerce-checkout #customer_details .col-2 {
	width: 100% !important;
	float: none !important;
}

body.woocommerce-checkout #customer_details .col-2 {
	margin-top: 32px;
}

/* Ensure order review content takes full sidebar width */
body.woocommerce-checkout #order_review,
body.woocommerce-checkout #payment,
body.woocommerce-checkout .wc_payment_methods,
body.woocommerce-checkout .woocommerce-checkout-review-order-table {
	width: 100% !important;
	float: none !important;
}

/* --- Section headings --- */
body.woocommerce-checkout .woocommerce-billing-fields > h3,
body.woocommerce-checkout .woocommerce-shipping-fields > h3,
body.woocommerce-checkout h3#order_review_heading {
	color: var(--soluturn-neutral-80);
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 20px;
	font-weight: 600;
	line-height: 1.3;
	margin: 0 0 20px;
	padding: 0;
}

/* "Ship to a different address?" heading + checkbox */
body.woocommerce-checkout .woocommerce-shipping-fields #ship-to-different-address {
	font-size: 16px;
	font-weight: 500;
	color: var(--soluturn-neutral-80);
	margin-bottom: 16px;
}

body.woocommerce-checkout .woocommerce-shipping-fields #ship-to-different-address label {
	display: flex;
	align-items: center;
	gap: 10px;
	cursor: pointer;
}

body.woocommerce-checkout .woocommerce-shipping-fields #ship-to-different-address input[type="checkbox"] {
	width: 18px;
	height: 18px;
	accent-color: var(--soluturn-neutral-80);
	border-radius: 4px;
}

/* --- Form rows --- */
body.woocommerce-checkout .form-row {
	margin-bottom: 16px;
	padding: 0 !important;
}

body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
body.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
}

body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper .form-row,
body.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper .form-row {
	margin-bottom: 0;
}

body.woocommerce-checkout .form-row-first,
body.woocommerce-checkout .form-row-last {
	flex: 1 1 calc(50% - 8px);
	min-width: 200px;
}

body.woocommerce-checkout .form-row-wide {
	flex: 1 1 100%;
}

/* --- Labels --- */
body.woocommerce-checkout .form-row label {
	color: var(--soluturn-neutral-60);
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 13px;
	font-weight: 500;
	margin-bottom: 6px;
	display: block;
}

body.woocommerce-checkout .form-row label .optional {
	color: var(--soluturn-neutral-40);
	font-weight: 400;
}

body.woocommerce-checkout .form-row .required {
	color: var(--soluturn-purple-50);
	text-decoration: none;
}

/* --- Text inputs & selects --- */
.woocommerce-checkout.woocommerce form .form-row .input-text,
.woocommerce-checkout.woocommerce form .form-row textarea,
.woocommerce-checkout.woocommerce form .form-row select {
	background: var(--soluturn-neutral-00) !important;
	border: 1px solid var(--soluturn-neutral-30) !important;
	border-radius: 8px !important;
	color: var(--soluturn-neutral-60) !important;
	font-family: "Bricolage Grotesque", Arial, sans-serif !important;
	font-size: 14px !important;
	padding: 12px 14px !important;
	width: 100%;
	box-sizing: border-box;
	transition: border-color 160ms ease, box-shadow 160ms ease;
	-webkit-appearance: none;
	appearance: none;
}

.woocommerce-checkout.woocommerce form .form-row .input-text:focus,
.woocommerce-checkout.woocommerce form .form-row textarea:focus,
.woocommerce-checkout.woocommerce form .form-row select:focus {
	border-color: var(--soluturn-purple-60);
	box-shadow: 0 0 0 1px var(--soluturn-purple-60);
	outline: none;
}

.woocommerce-checkout.woocommerce form .form-row .input-text::placeholder {
	color: var(--soluturn-neutral-30);
}

/* --- Select2 overrides (enhanced dropdowns) --- */
body.woocommerce-checkout .select2-container--default .select2-selection--single {
	background: var(--soluturn-neutral-00);
	border: 1px solid var(--soluturn-neutral-30);
	border-radius: 8px;
	height: 45px;
	padding: 0;
	transition: border-color 160ms ease, box-shadow 160ms ease;
}

body.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered {
	color: var(--soluturn-neutral-60);
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 14px;
	line-height: 45px;
	padding: 0 36px 0 14px !important;
}

body.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow {
	height: 45px;
	right: 10px;
}

body.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow b {
	border-color: var(--soluturn-neutral-40) transparent transparent transparent;
}

body.woocommerce-checkout .select2-container--default.select2-container--open .select2-selection--single {
	border-color: var(--soluturn-purple-60);
	box-shadow: 0 0 0 1px var(--soluturn-purple-60);
}

body.woocommerce-checkout .select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b {
	border-color: transparent transparent var(--soluturn-purple-60) transparent;
}

/* Select2 dropdown panel — matches discovery filter chip dropdowns */
.select2-container--default .select2-dropdown {
	border: 1px solid rgba(40, 39, 55, 0.12);
	border-radius: 10px;
	box-shadow: 0 6px 16px rgba(0, 0, 0, 0.08);
	overflow: hidden;
	margin-top: 4px;
	padding: 4px;
}

.select2-container--default .select2-search--dropdown {
	padding: 6px 6px 4px;
}

.select2-container--default .select2-search--dropdown .select2-search__field {
	background: var(--soluturn-neutral-00);
	border: 1px solid var(--soluturn-neutral-30);
	border-radius: 6px;
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 13px;
	padding: 7px 10px;
	color: var(--soluturn-neutral-60);
	outline: none;
}

.select2-container--default .select2-search--dropdown .select2-search__field::placeholder {
	color: var(--soluturn-neutral-40);
}

.select2-container--default .select2-search--dropdown .select2-search__field:focus {
	border-color: var(--soluturn-purple-60);
	box-shadow: 0 0 0 1px var(--soluturn-purple-60);
}

.select2-container--default .select2-results__option {
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 13px;
	font-weight: 500;
	padding: 6px 10px;
	color: var(--soluturn-neutral-80);
	border-radius: 6px;
	transition: background-color 120ms ease;
	white-space: nowrap;
}

.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable {
	background: var(--soluturn-neutral-10);
	color: var(--soluturn-neutral-80);
}

.select2-container--default .select2-results__option[aria-selected="true"],
.select2-container--default .select2-results__option--selected {
	background: rgba(111, 57, 198, 0.08);
	color: var(--soluturn-purple-60);
}

.select2-container--default .select2-results > .select2-results__options {
	max-height: 260px;
	padding: 0;
}

/* --- Express checkout section --- */
body.woocommerce-checkout .wcpay-express-checkout-wrapper {
	margin-bottom: 8px;
}

body.woocommerce-checkout #wcpay-express-checkout-button-separator {
	display: flex;
	align-items: center;
	gap: 16px;
	color: var(--soluturn-neutral-40);
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 12px;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	margin: 20px 0;
}

body.woocommerce-checkout #wcpay-express-checkout-button-separator::before,
body.woocommerce-checkout #wcpay-express-checkout-button-separator::after {
	content: "";
	flex: 1;
	height: 1px;
	background: var(--soluturn-neutral-20);
}

/* --- Order review heading --- */
body.woocommerce-checkout h3#order_review_heading {
	font-size: 18px;
	margin-bottom: 16px;
}

/* --- Order review table --- */
body.woocommerce-checkout .woocommerce-checkout-review-order-table {
	border: none !important;
	border-collapse: collapse;
	width: 100%;
	font-family: "Bricolage Grotesque", Arial, sans-serif;
}

body.woocommerce-checkout .woocommerce-checkout-review-order-table thead {
	display: none;
}

body.woocommerce-checkout .woocommerce-checkout-review-order-table td,
body.woocommerce-checkout .woocommerce-checkout-review-order-table th {
	border: none !important;
	padding: 10px 0 !important;
	font-size: 14px;
	color: var(--soluturn-neutral-80);
	background: transparent !important;
}

body.woocommerce-checkout .woocommerce-checkout-review-order-table .cart_item td {
	border-bottom: 1px solid var(--soluturn-neutral-20) !important;
	padding: 16px 0 !important;
}

body.woocommerce-checkout .woocommerce-checkout-review-order-table .cart_item .product-name {
	font-weight: 500;
	padding-right: 12px !important;
	display: flex !important;
	align-items: center !important;
	gap: 12px !important;
}

body.woocommerce-checkout .woocommerce-checkout-review-order-table .cart_item .product-name .soluturn-checkout-thumb {
	flex-shrink: 0;
	width: 52px;
	height: 52px;
	min-width: 52px;
	border-radius: 8px;
	overflow: visible;
	background: var(--soluturn-neutral-20);
	position: relative;
	display: block;
}

body.woocommerce-checkout .woocommerce-checkout-review-order-table .cart_item .product-name .soluturn-checkout-thumb img {
	width: 52px !important;
	height: 52px !important;
	max-width: 52px !important;
	object-fit: cover;
	display: block;
	border-radius: 8px;
}

body.woocommerce-checkout .woocommerce-checkout-review-order-table .cart_item .product-name .soluturn-checkout-thumb__qty {
	position: absolute;
	top: -6px;
	right: -6px;
	background: var(--soluturn-neutral-80);
	color: var(--soluturn-neutral-00);
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 10px;
	font-weight: 600;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 2px solid var(--soluturn-neutral-10);
	line-height: 1;
	z-index: 1;
}

body.woocommerce-checkout .woocommerce-checkout-review-order-table .cart_item .product-name .soluturn-checkout-item-details {
	flex: 1;
	min-width: 0;
	font-weight: 500;
}

body.woocommerce-checkout .woocommerce-checkout-review-order-table .cart_item .product-name .product-quantity {
	color: var(--soluturn-neutral-40);
	font-weight: 400;
}

body.woocommerce-checkout .woocommerce-checkout-review-order-table .cart_item .product-total {
	text-align: right;
	font-weight: 500;
	white-space: nowrap;
	vertical-align: middle;
}

/* Subtotal, tax, total rows */
body.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot th {
	font-weight: 500;
	text-align: left;
}

body.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot td {
	text-align: right;
	font-weight: 500;
}

body.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr:not(.order-total) th,
body.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr:not(.order-total) td {
	font-size: 14px;
	padding: 10px 0 !important;
	border-bottom: 1px solid var(--soluturn-neutral-20) !important;
}

body.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot .order-total th,
body.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot .order-total td {
	font-size: 18px;
	font-weight: 600;
	padding-top: 14px !important;
	border-top: none !important;
	border-bottom: none !important;
}

/* --- Payment section (moved to left column) --- */
body.woocommerce-checkout #soluturn-payment-wrap {
	grid-column: 1;
	grid-row: 3;
	margin-top: 8px;
}

body.woocommerce-checkout .soluturn-payment-heading {
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 20px;
	font-weight: 600;
	color: var(--soluturn-neutral-80);
	margin: 0 0 4px;
}

body.woocommerce-checkout .soluturn-payment-subtext {
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 13px;
	color: var(--soluturn-purple-50);
	margin: 0 0 16px;
}

body.woocommerce-checkout #payment {
	background: transparent !important;
	border-radius: 0;
	padding: 0;
	margin: 0;
}

body.woocommerce-checkout #payment::before {
	display: none;
}

body.woocommerce-checkout .wc_payment_methods {
	list-style: none !important;
	padding: 0 !important;
	margin: 0 0 16px !important;
	border: 1px solid var(--soluturn-neutral-20) !important;
	border-radius: 10px !important;
	overflow: hidden;
}

body.woocommerce-checkout .wc_payment_methods li {
	border: none;
	border-bottom: 1px solid var(--soluturn-neutral-20);
	border-radius: 0;
	margin-bottom: 0;
	padding: 14px 16px;
	transition: background-color 160ms ease;
	background: var(--soluturn-neutral-00);
}

body.woocommerce-checkout .wc_payment_methods li:last-child {
	border-bottom: none;
}

body.woocommerce-checkout .wc_payment_methods li:hover {
	background: var(--soluturn-neutral-10);
}

body.woocommerce-checkout .wc_payment_methods li.wc_payment_method input[type="radio"] {
	accent-color: var(--soluturn-neutral-80);
	margin-right: 10px;
}

body.woocommerce-checkout .wc_payment_methods li label {
	color: var(--soluturn-neutral-80);
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 14px;
	font-weight: 500;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
}

body.woocommerce-checkout .wc_payment_methods li label img {
	height: 22px;
	width: auto;
}

body.woocommerce-checkout .wc_payment_methods .payment_box {
	background: transparent !important;
	color: var(--soluturn-neutral-40);
	font-size: 13px;
	padding: 12px 0 4px 0;
	margin: 0;
	border-top: 1px solid var(--soluturn-neutral-20);
	margin-top: 14px;
}

body.woocommerce-checkout .wc_payment_methods .payment_box::before {
	display: none;
}

/* Stripe iframe needs full width inside the card */
body.woocommerce-checkout .wc_payment_methods .payment_box iframe,
body.woocommerce-checkout .wc_payment_methods .payment_box .wc-stripe-elements-field,
body.woocommerce-checkout .wc_payment_methods .payment_box .stripe-card-group {
	width: 100% !important;
	min-width: 0 !important;
}

body.woocommerce-checkout .wc_payment_methods .payment_box fieldset {
	border: none;
	padding: 0;
	margin: 0;
}

body.woocommerce-checkout .wc_payment_methods .payment_box p {
	margin: 0 0 8px;
}

body.woocommerce-checkout .wc_payment_methods .payment_box label {
	font-size: 13px;
	color: var(--soluturn-neutral-70);
	margin-bottom: 4px;
	display: block;
	width: auto;
	justify-content: initial;
}

/* --- Place order button --- */
body.woocommerce-checkout #payment .place-order {
	padding: 16px 0 0 !important;
	margin: 0;
}

body.woocommerce-checkout #place_order {
	background-color: var(--soluturn-purple-50) !important;
	border: none !important;
	border-radius: 8px !important;
	box-shadow: none !important;
	color: var(--soluturn-neutral-00) !important;
	font-family: "Bricolage Grotesque", Arial, sans-serif !important;
	font-size: 15px !important;
	font-weight: 500 !important;
	padding: 14px 24px !important;
	transition: background-color 160ms ease !important;
	width: 100%;
	cursor: pointer;
	text-transform: none !important;
	letter-spacing: 0 !important;
}

body.woocommerce-checkout #place_order:hover,
body.woocommerce-checkout #place_order:focus {
	background-color: var(--soluturn-purple-60) !important;
}

/* --- Terms & privacy text --- */
body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper {
	color: var(--soluturn-neutral-40);
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 13px;
	margin-bottom: 12px;
}

body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper a {
	color: var(--soluturn-purple-60);
}

/* --- Additional fields (order notes) --- */
body.woocommerce-checkout .woocommerce-additional-fields {
	margin-top: 32px;
}

body.woocommerce-checkout .woocommerce-additional-fields h3 {
	color: var(--soluturn-neutral-80);
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 16px;
	font-weight: 600;
	margin-bottom: 12px;
}

body.woocommerce-checkout .woocommerce-additional-fields textarea {
	min-height: 100px;
	resize: vertical;
}

/* --- Error / validation messages --- */
body.woocommerce-checkout .woocommerce-invalid .input-text {
	border-color: #d63638 !important;
}

body.woocommerce-checkout .form-row.woocommerce-invalid label {
	color: #d63638;
}

/* --- Notices --- */
body.woocommerce-checkout .woocommerce-error,
body.woocommerce-checkout .woocommerce-message {
	border-radius: 8px;
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	border-left: none;
	padding: 12px 16px;
}

body.woocommerce-checkout .woocommerce-error {
	background: #fef0f0;
	border: 1px solid #d63638;
	color: #d63638;
}

body.woocommerce-checkout .woocommerce-message {
	background: #f0faf0;
	border: 1px solid #00a32a;
	color: #1e4620;
}

body.woocommerce-checkout .woocommerce-error::before,
body.woocommerce-checkout .woocommerce-message::before {
	display: none;
}

/* --- Mobile checkout --- */
@media (max-width: 781px) {
	body.woocommerce-checkout form.checkout {
		display: flex;
		flex-direction: column;
		gap: 24px;
	}

	body.woocommerce-checkout form.checkout > .col2-set:not(#customer_details) {
		position: static;
		border-radius: 12px;
		padding: 20px;
	}

	body.woocommerce-checkout .woocommerce-billing-fields > h3,
	body.woocommerce-checkout .woocommerce-shipping-fields > h3 {
		font-size: 18px;
	}

	body.woocommerce-checkout .form-row-first,
	body.woocommerce-checkout .form-row-last {
		flex: 1 1 100%;
	}
}

/* ============================================================
   Footer
   ============================================================ */

.soluturn-footer {
	border-top: 1px solid var(--soluturn-neutral-20, #dfdee4);
	margin-top: var(--wp--preset--spacing--70, 48px);
	padding: 56px 48px 32px;
}

.soluturn-footer__top {
	display: grid;
	gap: 40px;
	grid-template-columns: 1fr 1fr 1fr 1.5fr;
	margin: 0 auto;
	max-width: 1200px;
}

.soluturn-footer__heading {
	color: var(--soluturn-neutral-40, #9291a5);
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.02em;
	margin: 0 0 16px;
	text-transform: uppercase;
}

.soluturn-footer__links {
	list-style: none;
	margin: 0;
	padding: 0;
}

.soluturn-footer__links li {
	margin-bottom: 10px;
}

.soluturn-footer__links a {
	color: var(--soluturn-neutral-80, #282737);
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 15px;
	font-weight: 400;
	text-decoration: none;
	transition: color 150ms ease;
}

.soluturn-footer__links a:hover {
	color: var(--soluturn-neutral-40, #9291a5);
}

.soluturn-footer__newsletter-text {
	color: var(--soluturn-neutral-40, #9291a5);
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 14px;
	font-weight: 400;
	line-height: 1.5;
	margin: 0 0 16px;
}

.soluturn-footer__newsletter-form {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.soluturn-footer__newsletter-input {
	background: var(--soluturn-neutral-00, #fff);
	border: 1px solid var(--soluturn-neutral-20, #dfdee4);
	border-radius: 6px;
	box-sizing: border-box;
	color: var(--soluturn-neutral-80, #282737);
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 14px;
	padding: 10px 14px;
	transition: border-color 150ms ease;
	width: 100%;
	max-width: 100%;
}

.soluturn-footer__newsletter-input:focus {
	border-color: var(--soluturn-neutral-40, #9291a5);
	outline: none;
}

.soluturn-footer__newsletter-btn {
	background: var(--soluturn-purple-50, #8b50e9);
	border: none;
	border-radius: 6px;
	box-shadow: var(--soluturn-button-shadow-rest);
	color: #fff;
	cursor: pointer;
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 14px;
	font-weight: 500;
	padding: 10px 20px;
	transition: background 150ms ease;
	width: 100%;
}

.soluturn-footer__newsletter-btn:hover {
	background: var(--soluturn-purple-60, #6f39c6);
}

/* Brand wordmark */
.soluturn-footer__brand {
	margin: 48px auto 40px;
	max-width: 1200px;
	text-align: center;
}

.soluturn-footer__wordmark {
	color: var(--soluturn-neutral-80, #282737);
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: clamp(48px, 8vw, 96px);
	font-weight: 700;
	letter-spacing: -0.03em;
	line-height: 1;
}

.soluturn-footer__wordmark-light {
	font-weight: 300;
}

/* Bottom legal row */
.soluturn-footer__bottom {
	border-top: 1px solid var(--soluturn-neutral-20, #dfdee4);
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
	margin: 0 auto;
	max-width: 1200px;
	padding-top: 20px;
}

.soluturn-footer__bottom a,
.soluturn-footer__bottom span {
	color: var(--soluturn-neutral-40, #9291a5);
	font-family: "Bricolage Grotesque", Arial, sans-serif;
	font-size: 13px;
	font-weight: 400;
	text-decoration: none;
}

.soluturn-footer__bottom a:hover {
	color: var(--soluturn-neutral-80, #282737);
}

/* Footer responsive */
@media (max-width: 900px) {
	.soluturn-footer__top {
		grid-template-columns: 1fr 1fr;
	}
}

@media (max-width: 600px) {
	.soluturn-footer {
		padding: 40px 24px 24px;
	}

	.soluturn-footer__top {
		grid-template-columns: 1fr;
		gap: 32px;
	}
}
