/* Tanish Site Fixes */

:root {
	--tsf-green: #3a5a40;
	--tsf-green-mid: #588157;
	--tsf-sage: #a3b18a;
	--tsf-line: rgba(58, 90, 64, 0.14);
	--tsf-text: #5c5c5c;
	--tsf-radius: 8px;
}

html,
body {
	overflow-x: clip;
}

img {
	max-width: 100%;
	height: auto;
}

/* -------------------------------------------------------------------------
 * Header
 * ---------------------------------------------------------------------- */

/* Header sits above page content (dropdowns over gallery icons etc). */
.elementor-element-221852ed {
	position: relative;
	z-index: 1000 !important;
}

/* Search: a clear round button instead of a small bare icon. */
.elementor-element-57811c6a > .elementor-widget-wrap {
	justify-content: flex-end;
	align-items: center;
	align-content: center;
	flex-wrap: nowrap !important;
}
.elementor-element-57811c6a > .elementor-widget-wrap > .elementor-element {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}
.elementor-element-89b15ab .ekit_navsearch-button {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.14);
	border: 1px solid rgba(255, 255, 255, 0.55);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	transition: background-color 0.25s ease, transform 0.25s ease;
}
.elementor-element-89b15ab .ekit_navsearch-button svg {
	width: 19px !important;
	height: 19px !important;
	fill: #fff !important;
}
.elementor-element-89b15ab .ekit_navsearch-button:hover {
	background: var(--tsf-green-mid);
	border-color: var(--tsf-green-mid);
	transform: scale(1.05);
}
.tsf-light-header .elementor-element-89b15ab .ekit_navsearch-button,
.tsf-header-stuck .elementor-element-89b15ab .ekit_navsearch-button {
	background: var(--tsf-green-mid);
	border-color: var(--tsf-green-mid);
}
.tsf-light-header .elementor-element-89b15ab .ekit_navsearch-button:hover,
.tsf-header-stuck .elementor-element-89b15ab .ekit_navsearch-button:hover {
	background: var(--tsf-green);
	border-color: var(--tsf-green);
}
@media (max-width: 1024px) {
	/* logo | search | menu toggle */
	.elementor-element-29af69d2 > .elementor-container {
		align-items: center;
	}
	.elementor-element-194d4b6d {
		width: 55% !important;
	}
	.elementor-element-57811c6a {
		order: 2;
		width: 30% !important;
	}
	.elementor-element-ab2d789 {
		order: 3;
		width: 15% !important;
	}
	.elementor-element-2bda0678,
	.elementor-element-2bda0678 a {
		text-align: left !important;
		background-position: left center !important;
	}
	.elementor-element-2bda0678 img {
		margin-left: 0 !important;
		width: 120px !important;
		max-width: 100% !important;
	}
	.elementor-element-89b15ab .ekit_navsearch-button {
		width: 42px;
		height: 42px;
	}
	.elementor-element-89b15ab .ekit_navsearch-button svg {
		width: 17px !important;
		height: 17px !important;
	}
}

/* Pages without a dark hero banner: dark header text + colour logo. */
.tsf-light-header .elementor-element-221852ed {
	border-bottom: 1px solid var(--tsf-line);
	margin-bottom: 24px;
}

.tsf-light-header .elementor-element-68ec0ea8 .elementor-icon-list-text,
.tsf-light-header .elementor-element-68ec0ea8 .elementor-icon-list-icon i,
.tsf-light-header .elementor-element-68ec0ea8 a {
	color: var(--tsf-green) !important;
}
.tsf-light-header .elementor-element-68ec0ea8 .elementor-icon-list-icon svg {
	fill: var(--tsf-green) !important;
}
.tsf-light-header .elementor-element-642326b1 .elementor-social-icon i {
	color: var(--tsf-green) !important;
}
.tsf-light-header .elementor-element-642326b1 .elementor-social-icon svg {
	fill: var(--tsf-green) !important;
}

.tsf-light-header .elementor-element-2bda0678,
.tsf-header-stuck .elementor-element-2bda0678 {
	background: url("/wp-content/uploads/2026/04/Tanish-Decor-_-Logo.png") center / contain no-repeat;
}
.tsf-light-header .elementor-element-2bda0678 img,
.tsf-header-stuck .elementor-element-2bda0678 img {
	visibility: hidden;
}

@media (min-width: 1025px) {
	.tsf-light-header .elementor-element-71e8b06a .elementskit-navbar-nav > li > a,
	.tsf-header-stuck .elementor-element-71e8b06a .elementskit-navbar-nav > li > a {
		color: var(--tsf-green) !important;
	}
	.tsf-light-header .elementor-element-71e8b06a .elementskit-navbar-nav > li > a:hover,
	.tsf-light-header .elementor-element-71e8b06a .elementskit-navbar-nav > li.current-menu-item > a,
	.tsf-light-header .elementor-element-71e8b06a .elementskit-navbar-nav > li.current-menu-ancestor > a,
	.tsf-header-stuck .elementor-element-71e8b06a .elementskit-navbar-nav > li > a:hover,
	.tsf-header-stuck .elementor-element-71e8b06a .elementskit-navbar-nav > li.current-menu-item > a,
	.tsf-header-stuck .elementor-element-71e8b06a .elementskit-navbar-nav > li.current-menu-ancestor > a {
		color: var(--tsf-green-mid) !important;
	}
	.tsf-light-header .elementor-element-71e8b06a .elementskit-navbar-nav > li > a .elementskit-submenu-indicator,
	.tsf-light-header .elementor-element-71e8b06a .elementskit-navbar-nav > li > a i,
	.tsf-light-header .elementor-element-71e8b06a .elementskit-navbar-nav > li > a svg,
	.tsf-header-stuck .elementor-element-71e8b06a .elementskit-navbar-nav > li > a .elementskit-submenu-indicator,
	.tsf-header-stuck .elementor-element-71e8b06a .elementskit-navbar-nav > li > a i,
	.tsf-header-stuck .elementor-element-71e8b06a .elementskit-navbar-nav > li > a svg {
		color: var(--tsf-green) !important;
		fill: var(--tsf-green) !important;
	}
}

/* -------------------------------------------------------------------------
 * Product grids (shop, categories, related products)
 * ---------------------------------------------------------------------- */

.woocommerce ul.products {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 40px 32px;
	margin: 0 0 40px !important;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after {
	display: none !important;
}
.woocommerce ul.products li.product {
	width: auto !important;
	margin: 0 !important;
	float: none !important;
	display: flex;
	flex-direction: column;
	text-align: left;
}
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link {
	display: flex;
	flex-direction: column;
	height: 100%;
}
.woocommerce ul.products li.product a img {
	width: 100% !important;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	border-radius: var(--tsf-radius);
	margin: 0 0 14px !important;
	box-shadow: 0 8px 22px rgba(0, 0, 0, 0.06);
	transition: transform 0.35s ease, box-shadow 0.35s ease;
}
.woocommerce ul.products li.product a:hover img {
	transform: translateY(-4px);
	box-shadow: 0 14px 30px rgba(0, 0, 0, 0.12);
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	padding: 0 !important;
	margin: 0 !important;
	font-size: 17px !important;
	line-height: 1.3 !important;
}

@media (max-width: 1024px) {
	.woocommerce ul.products {
		gap: 28px 20px;
	}
}
@media (max-width: 767px) {
	.woocommerce ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 24px 14px;
	}
	.woocommerce ul.products li.product .woocommerce-loop-product__title {
		font-size: 15px !important;
	}
	.woocommerce ul.products li.product a img {
		border-radius: 8px;
	}
}

/* Shop toolbar: result count + sorting on one row, stacked on phones. */
.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering {
	margin-bottom: 28px !important;
}
.woocommerce .woocommerce-ordering select {
	border: 1px solid var(--tsf-line);
	border-radius: 10px;
	padding: 10px 14px;
	background-color: #fff;
}
@media (max-width: 767px) {
	.woocommerce .woocommerce-result-count,
	.woocommerce .woocommerce-ordering {
		float: none !important;
		width: 100%;
		margin-bottom: 14px !important;
	}
	.woocommerce .woocommerce-ordering select {
		width: 100%;
	}
}

/* -------------------------------------------------------------------------
 * Single product
 * ---------------------------------------------------------------------- */

.single-product div.product {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 56px;
	align-items: start;
}
.single-product div.product > * {
	grid-column: 1 / -1;
}
.single-product div.product > .woocommerce-product-gallery {
	grid-column: 1;
	width: 100% !important;
	float: none !important;
	margin: 0 !important;
}
.single-product div.product > .summary {
	grid-column: 2;
	width: 100% !important;
	float: none !important;
	margin: 0 !important;
}

/* Gallery magnifier must stay under the header's dropdown menus. */
.single-product .woocommerce-product-gallery__trigger {
	z-index: 5 !important;
}
.single-product div.product > .onsale {
	grid-column: 1;
	grid-row: 1;
}

.single-product .woocommerce-product-gallery__image img,
.single-product .woocommerce-product-gallery .flex-viewport {
	border-radius: var(--tsf-radius);
}
.single-product .woocommerce-product-gallery .flex-control-thumbs {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 12px;
	margin-top: 12px !important;
}
.single-product .woocommerce-product-gallery .flex-control-thumbs::before,
.single-product .woocommerce-product-gallery .flex-control-thumbs::after {
	display: none !important;
}
.single-product .woocommerce-product-gallery .flex-control-thumbs li {
	width: auto !important;
	float: none !important;
	margin: 0 !important;
}
.single-product .woocommerce-product-gallery .flex-control-thumbs li img {
	aspect-ratio: 1 / 1;
	object-fit: cover;
	border-radius: 6px;
	opacity: 0.6;
	transition: opacity 0.2s ease;
}
.single-product .woocommerce-product-gallery .flex-control-thumbs li img.flex-active,
.single-product .woocommerce-product-gallery .flex-control-thumbs li img:hover {
	opacity: 1;
}

/* Summary: title / category / description / colours / actions, each
   separated by a hairline divider. */
.single-product .summary .product_title {
	margin: 0 !important;
	padding: 0 0 22px !important;
	line-height: 1.1;
	border-bottom: 1px solid var(--tsf-line);
}
.single-product .summary .product_meta {
	margin: 0 !important;
	padding: 16px 0;
	border-bottom: 1px solid var(--tsf-line);
	font-size: 15px;
	letter-spacing: 0.02em;
}
.single-product .summary .product_meta .posted_in {
	display: block;
}
.single-product .summary .product_meta a {
	color: var(--tsf-green-mid);
	font-weight: 600;
}
.tsf-product-intro {
	color: var(--tsf-text);
	font-size: 16px;
	line-height: 1.75;
	margin: 0 !important;
	padding: 20px 0;
	border-bottom: 1px solid var(--tsf-line);
}

/* Design colour swatches */
.tsf-swatches {
	padding: 22px 0;
	border-bottom: 1px solid var(--tsf-line);
}
.tsf-swatches__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 14px;
}
.tsf-swatches__label {
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--tsf-green);
}
.tsf-swatches__current {
	font-size: 14px;
	color: var(--tsf-text);
}
.tsf-swatches__list {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}
.tsf-swatch {
	position: relative;
	width: 60px;
	height: 60px;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 8px !important;
	background: none !important;
	cursor: pointer;
	overflow: visible;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.tsf-swatch img {
	display: block;
	width: 100% !important;
	height: 100% !important;
	object-fit: cover;
	border-radius: 8px;
}
.tsf-swatch::after {
	content: "";
	position: absolute;
	inset: -5px;
	border: 2px solid transparent;
	border-radius: 12px;
	transition: border-color 0.2s ease;
	pointer-events: none;
}
.tsf-swatch:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 18px rgba(0, 0, 0, 0.12);
}
.tsf-swatch.is-active::after {
	border-color: var(--tsf-green-mid);
}
.tsf-swatch:focus-visible {
	outline: none;
}
.tsf-swatch:focus-visible::after {
	border-color: var(--tsf-green);
	border-style: dashed;
}
/* Swatches replace the thumbnail strip under the main image. */
.tsf-has-swatches .woocommerce-product-gallery .flex-control-thumbs {
	display: none !important;
}

.tsf-product-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 14px 22px;
	padding-top: 26px;
}
.tsf-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 50px;
	padding: 0 28px;
	border-radius: 999px;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	text-decoration: none !important;
	transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}
.tsf-btn--primary {
	background: var(--tsf-green-mid);
	color: #fff !important;
	border: 1px solid var(--tsf-green-mid);
}
.tsf-btn--primary:hover {
	background: var(--tsf-green);
	border-color: var(--tsf-green);
}
.tsf-btn--outline {
	color: var(--tsf-green) !important;
	border: 1px solid var(--tsf-green);
	background: transparent;
}
.tsf-btn--outline:hover {
	background: var(--tsf-green);
	color: #fff !important;
}
.tsf-btn--link {
	padding: 0;
	min-height: 0;
	color: var(--tsf-green) !important;
}

.single-product .related,
.single-product .upsells,
.single-product .woocommerce-tabs {
	margin-top: 40px;
	padding-top: 44px;
	border-top: 1px solid var(--tsf-line);
}
.single-product .related > h2 {
	margin-bottom: 28px;
}

@media (max-width: 1024px) {
	.single-product div.product {
		gap: 36px;
	}
}
@media (max-width: 767px) {
	.single-product div.product {
		grid-template-columns: minmax(0, 1fr);
		gap: 28px;
	}
	.single-product div.product > .woocommerce-product-gallery,
	.single-product div.product > .summary {
		grid-column: 1;
		position: static;
	}
	.single-product .woocommerce-product-gallery .flex-control-thumbs {
		gap: 8px;
	}
	.tsf-product-actions .tsf-btn--primary,
	.tsf-product-actions .tsf-btn--outline {
		flex: 1 1 100%;
	}
	.tsf-swatch {
		width: 52px;
		height: 52px;
	}
	.tsf-swatches__list {
		gap: 10px;
	}
	.single-product .related,
	.single-product .upsells {
		margin-top: 12px;
		padding-top: 32px;
	}
}

/* Breadcrumb + page spacing on WooCommerce pages */
.woocommerce .woocommerce-breadcrumb {
	margin: 0 0 24px !important;
	font-size: 14px;
}
@media (max-width: 767px) {
	.woocommerce-page main.site-main,
	.woocommerce main.site-main {
		padding-left: 16px;
		padding-right: 16px;
	}
}

/* -------------------------------------------------------------------------
 * Single blog post
 * ---------------------------------------------------------------------- */

.single-post main.site-main {
	max-width: 860px;
	margin: 0 auto;
	padding: 24px 20px 72px;
}
.single-post .page-header .entry-title {
	margin: 0 0 24px;
	line-height: 1.2;
}
.single-post .page-content > * {
	max-width: 100%;
}
.single-post .page-content p {
	font-size: 17px;
	line-height: 1.8;
	color: var(--tsf-text);
}
.single-post .page-content img {
	border-radius: 18px;
}
.single-post .page-content figure {
	margin: 28px 0;
}

.tsf-postnav {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
	margin: 48px 0 0;
	padding-top: 32px;
	border-top: 1px solid var(--tsf-line);
}
.tsf-postnav__item {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 16px;
	border-radius: 18px;
	background: #f6f7f4;
	text-decoration: none !important;
	transition: background-color 0.25s ease;
	min-width: 0;
}
.tsf-postnav__item:hover {
	background: #edf0e8;
}
.tsf-postnav__item--next {
	flex-direction: row-reverse;
	text-align: right;
}
.tsf-postnav__item--empty {
	background: none;
}
.tsf-postnav__thumb {
	flex: 0 0 72px;
	width: 72px;
	height: 72px;
	object-fit: cover;
	border-radius: 14px !important;
}
.tsf-postnav__text {
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
}
.tsf-postnav__label {
	font-size: 12px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--tsf-sage);
}
.tsf-postnav__title {
	color: var(--tsf-green);
	font-weight: 600;
	line-height: 1.35;
	overflow-wrap: normal;
	word-break: normal;
}

.tsf-related {
	margin: 56px 0 0;
}
.tsf-related__heading {
	margin: 0 0 24px;
}
.tsf-related__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 22px;
}
.tsf-related__card {
	display: flex;
	flex-direction: column;
	gap: 8px;
	text-decoration: none !important;
}
.tsf-related__img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 16px !important;
	margin-bottom: 6px;
}
.tsf-related__date {
	font-size: 13px;
	color: var(--tsf-sage);
}
.tsf-related__title {
	color: var(--tsf-green);
	font-weight: 600;
	line-height: 1.35;
}

@media (max-width: 767px) {
	.tsf-postnav {
		grid-template-columns: minmax(0, 1fr);
	}
	.tsf-postnav__item--next {
		flex-direction: row;
		text-align: left;
	}
	.tsf-postnav__item--empty {
		display: none;
	}
	.tsf-related__grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* Comments form: fields were white-on-white. */
.comments-area {
	margin-top: 56px;
	padding-top: 32px;
	border-top: 1px solid var(--tsf-line);
}
.comments-area input[type="text"],
.comments-area input[type="email"],
.comments-area input[type="url"],
.comments-area textarea {
	width: 100%;
	border: 1px solid #d6dccf !important;
	border-radius: 12px;
	background: #fff !important;
	color: #333 !important;
	padding: 12px 14px;
}
.comments-area input:focus,
.comments-area textarea:focus {
	border-color: var(--tsf-green-mid) !important;
	outline: none;
	box-shadow: 0 0 0 3px rgba(88, 129, 87, 0.15);
}

/* -------------------------------------------------------------------------
 * About page — process cards (all four equal, gentle hover)
 * ---------------------------------------------------------------------- */

.elementor-element-79b58cf > .elementor-container > .elementor-column > .elementor-widget-wrap {
	transition: transform 0.3s ease, box-shadow 0.3s ease;
	height: 100%;
}
.elementor-element-79b58cf > .elementor-container > .elementor-column:hover > .elementor-widget-wrap {
	transform: translateY(-6px);
	box-shadow: 0 16px 36px rgba(58, 90, 64, 0.12);
}
@media (max-width: 1024px) {
	.elementor-element-79b58cf > .elementor-container {
		flex-wrap: wrap;
		gap: 20px 0;
	}
}

/* -------------------------------------------------------------------------
 * Sticky header (body.tsf-header-stuck is toggled by assets/sticky-header.js)
 * ---------------------------------------------------------------------- */

/* Animate opacity/top only: a transform or backdrop-filter on the header
   would trap GTranslate's position:fixed language popup inside it. */
@keyframes tsf-slide-down {
	from { opacity: 0; margin-top: -40px; }
	to { opacity: 1; margin-top: 0; }
}
.tsf-header-stuck .elementor-element-221852ed {
	position: fixed !important;
	top: 0;
	left: 0;
	right: 0;
	width: 100%;
	margin: 0 !important;
	background: #fff;
	box-shadow: 0 6px 24px rgba(0, 0, 0, 0.08);
	border-bottom: 0;
	animation: tsf-slide-down 0.35s ease;
}
.admin-bar.tsf-header-stuck .elementor-element-221852ed {
	top: 32px;
}
@media (max-width: 782px) {
	.admin-bar.tsf-header-stuck .elementor-element-221852ed {
		top: 46px;
	}
}
@media (max-width: 600px) {
	.admin-bar.tsf-header-stuck .elementor-element-221852ed {
		top: 0;
	}
}
.tsf-header-stuck .elementor-element-29af69d2 {
	padding-top: 6px !important;
	padding-bottom: 6px !important;
}
.tsf-header-stuck .elementor-element-2bda0678 img {
	max-height: 64px;
	width: auto;
}
@media (prefers-reduced-motion: reduce) {
	.tsf-header-stuck .elementor-element-221852ed {
		animation: none;
	}
}

/* Language switcher (GTranslate) beside the search button */
.elementor-element-05ffd3a {
	align-self: center;
}
.elementor-element-05ffd3a .gt_switcher-popup,
.elementor-element-05ffd3a a.glink {
	display: inline-flex !important;
	align-items: center;
	gap: 6px;
	white-space: nowrap;
	text-decoration: none !important;
}
@media (max-width: 767px) {
	.elementor-element-194d4b6d {
		width: 42% !important;
	}
	.elementor-element-57811c6a {
		width: 38% !important;
	}
	.elementor-element-ab2d789 {
		width: 20% !important;
	}
	.elementor-element-2bda0678 img {
		width: 96px !important;
	}
	/* phones: flag only, to leave room for search + menu */
	.elementor-element-05ffd3a .gt_switcher-popup span,
	.elementor-element-05ffd3a a.glink span {
		display: none !important;
	}
	.elementor-element-05ffd3a {
		margin-right: 8px !important;
	}
}

/* -------------------------------------------------------------------------
 * Product description ("About this design")
 * ---------------------------------------------------------------------- */

.single-product .woocommerce-tabs ul.tabs {
	display: none !important;
}
.single-product .woocommerce-tabs .panel {
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
	max-width: 860px;
}
.single-product .woocommerce-tabs .panel > h2 {
	margin: 0 0 18px;
}
.single-product .woocommerce-tabs .panel p {
	color: var(--tsf-text);
	font-size: 16px;
	line-height: 1.8;
	margin: 0 0 14px;
}
.tsf-spec-list {
	list-style: none;
	margin: 22px 0 0 !important;
	padding: 0 !important;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}
.tsf-spec-list li {
	margin: 0 !important;
	padding: 10px 16px;
	border-radius: 999px;
	background: #f3f5f0;
	color: var(--tsf-text);
	font-size: 14px;
}
.tsf-spec-list li strong {
	color: var(--tsf-green);
	font-weight: 600;
}

/* Phones: colour swatches directly under the main image, above the title. */
@media (max-width: 767px) {
	.single-product div.product {
		gap: 0 !important;
	}
	.single-product div.product > .summary {
		display: contents;
	}
	.single-product div.product > .woocommerce-product-gallery {
		order: 1;
		margin-bottom: 18px !important;
	}
	.single-product div.product > .summary > * {
		order: 3;
	}
	.single-product div.product > .summary > .tsf-swatches {
		order: 2;
		padding: 0 0 22px;
		margin-bottom: 22px;
	}
	.single-product div.product > .woocommerce-tabs,
	.single-product div.product > .related,
	.single-product div.product > .upsells {
		order: 4;
	}
	.single-product div.product > .related,
	.single-product div.product > .upsells {
		order: 5;
	}
	.single-product .tsf-product-actions {
		padding-bottom: 8px;
	}
}

/* -------------------------------------------------------------------------
 * Mobile menu: toggle button + off-canvas panel
 * (tablet/phone only: ElementsKit switches to the off-canvas menu at 1024px)
 * ---------------------------------------------------------------------- */

@media (max-width: 1024px) {
	.elementor-element-71e8b06a .elementskit-menu-hamburger {
		display: inline-flex !important;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 4px;
		width: 42px;
		height: 42px;
		padding: 0 !important;
		border-radius: 50% !important;
		border: 1px solid rgba(255, 255, 255, 0.55) !important;
		background: rgba(255, 255, 255, 0.14) !important;
		-webkit-backdrop-filter: blur(6px);
		backdrop-filter: blur(6px);
		transition: background-color 0.25s ease;
	}
	.elementor-element-71e8b06a .elementskit-menu-hamburger .elementskit-menu-hamburger-icon {
		display: block !important;
		width: 18px !important;
		height: 2px !important;
		margin: 0 !important;
		border-radius: 2px;
		background-color: #fff !important;
		opacity: 1 !important;
	}
	.elementor-element-71e8b06a .elementskit-menu-hamburger .elementskit-menu-hamburger-icon:nth-child(2) {
		width: 12px !important;
		margin-left: 6px !important;
	}
	.tsf-light-header .elementor-element-71e8b06a .elementskit-menu-hamburger,
	.tsf-header-stuck .elementor-element-71e8b06a .elementskit-menu-hamburger {
		background: var(--tsf-green) !important;
		border-color: var(--tsf-green) !important;
	}
	.elementor-element-ab2d789 > .elementor-widget-wrap {
		justify-content: flex-end;
	}

	.elementor-element-71e8b06a .elementskit-nav-identity-panel {
		display: flex !important;
		align-items: center;
		justify-content: space-between;
		gap: 16px;
		padding: 20px 20px 24px !important;
		border-bottom: 1px solid rgba(255, 255, 255, 0.12);
		margin-bottom: 10px;
	}
	.elementor-element-71e8b06a .elementskit-nav-identity-panel .elementskit-nav-logo {
		margin: 0 !important;
		flex: 0 1 auto;
		min-width: 0;
	}
	.elementor-element-71e8b06a .elementskit-nav-identity-panel .elementskit-nav-logo img {
		width: 120px !important;
		max-width: 100% !important;
		height: auto !important;
		object-fit: contain;
	}
	.elementor-element-71e8b06a .elementskit-menu-close {
		position: relative !important;
		top: auto !important;
		right: auto !important;
		flex: 0 0 42px;
		width: 42px !important;
		height: 42px !important;
		padding: 0 !important;
		margin: 0 !important;
		border-radius: 50% !important;
		border: 1px solid rgba(255, 255, 255, 0.45) !important;
		background: rgba(255, 255, 255, 0.08) !important;
		font-size: 0 !important;
		color: transparent !important;
		cursor: pointer;
	}
	.elementor-element-71e8b06a .elementskit-menu-close::before,
	.elementor-element-71e8b06a .elementskit-menu-close::after {
		content: "";
		position: absolute;
		top: 50%;
		left: 50%;
		width: 18px;
		height: 2px;
		border-radius: 2px;
		background: #fff;
	}
	.elementor-element-71e8b06a .elementskit-menu-close::before {
		transform: translate(-50%, -50%) rotate(45deg);
	}
	.elementor-element-71e8b06a .elementskit-menu-close::after {
		transform: translate(-50%, -50%) rotate(-45deg);
	}
	.elementor-element-71e8b06a .elementskit-menu-close:hover {
		background: rgba(255, 255, 255, 0.18) !important;
	}
	.elementor-element-71e8b06a .elementskit-navbar-nav > li > a {
		padding-left: 20px !important;
		padding-right: 20px !important;
	}
}

/* -------------------------------------------------------------------------
 * Home hero: soft shade from the top edge to the middle (header legibility)
 * ---------------------------------------------------------------------- */

.elementor-element-7418951d::before,
.elementor-element-2023a7bd::before,
.elementor-element-45b5370f::before,
.elementor-element-2284cc35::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 55%;
	background: linear-gradient(180deg, rgba(0, 0, 0, 0.55) 0%, rgba(0, 0, 0, 0.18) 55%, rgba(0, 0, 0, 0) 100%);
	z-index: 1;
	pointer-events: none;
}
.elementor-element-7418951d > .elementor-container,
.elementor-element-2023a7bd > .elementor-container,
.elementor-element-45b5370f > .elementor-container,
.elementor-element-2284cc35 > .elementor-container {
	position: relative;
	z-index: 2;
}
/* Inner-page banners show the plain photo (no colour overlay); a faint
   shadow keeps the white heading text readable on lighter images. */
.elementor-element-2023a7bd .elementor-heading-title,
.elementor-element-2023a7bd .elementor-widget-text-editor,
.elementor-element-45b5370f .elementor-heading-title,
.elementor-element-45b5370f .elementor-widget-text-editor,
.elementor-element-2284cc35 .elementor-heading-title,
.elementor-element-2284cc35 .elementor-widget-text-editor {
	text-shadow: 0 2px 14px rgba(0, 0, 0, 0.45);
}

/* -------------------------------------------------------------------------
 * Forms: brand-green submit buttons (MetForm)
 * ---------------------------------------------------------------------- */

.metform-btn,
.metform-submit-btn {
	background: var(--tsf-green-mid) !important;
	border-color: var(--tsf-green-mid) !important;
	color: #fff !important;
	box-shadow: 0 10px 22px rgba(88, 129, 87, 0.25) !important;
	transition: background-color 0.25s ease, box-shadow 0.25s ease !important;
}
.metform-btn:hover,
.metform-btn:focus,
.metform-submit-btn:hover,
.metform-submit-btn:focus {
	background: var(--tsf-green) !important;
	border-color: var(--tsf-green) !important;
	box-shadow: 0 10px 22px rgba(58, 90, 64, 0.3) !important;
}

/* Empty cart / checkout headings: keep inside the screen on phones. */
@media (max-width: 767px) {
	.woocommerce-cart .wp-block-heading,
	.woocommerce-checkout .wp-block-heading {
		font-size: 28px !important;
		overflow-wrap: anywhere;
	}
}

/* Selected shade name, shown under the main product image. FlexSlider
   rebuilds the gallery after load, so order it explicitly. */
.single-product .woocommerce-product-gallery {
	display: flex !important;
	flex-direction: column;
}
.single-product .woocommerce-product-gallery > .flex-viewport,
.single-product .woocommerce-product-gallery > .woocommerce-product-gallery__wrapper {
	order: 1;
	width: 100%;
}
.single-product .woocommerce-product-gallery > .flex-control-thumbs {
	order: 2;
}
.tsf-shade-caption {
	order: 3;
	margin: 18px 0 0;
	font-size: 15px;
	color: var(--tsf-text);
	letter-spacing: 0.02em;
}
.tsf-shade-caption strong {
	color: var(--tsf-green);
	font-weight: 600;
}
@media (max-width: 767px) {
	.tsf-shade-caption {
		margin-top: 12px;
		font-size: 14px;
	}
}

/* -------------------------------------------------------------------------
 * Product image zoom trigger + lightbox (PhotoSwipe)
 * ---------------------------------------------------------------------- */

/* Magnifier: solid icon in a plain white circle, inset from the corner. */
.single-product .woocommerce-product-gallery__trigger {
	top: 16px !important;
	right: 16px !important;
	width: 36px !important;
	height: 36px !important;
	padding: 0 !important;
	border: 0 !important;
	outline: 0 !important;
	border-radius: 50% !important;
	background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23111' d='M15.5 14h-.79l-.28-.27A6.47 6.47 0 0 0 16 9.5 6.5 6.5 0 1 0 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z'/%3E%3C/svg%3E") center / 22px no-repeat !important;
	box-shadow: 0 1px 6px rgba(0, 0, 0, 0.12) !important;
	font-size: 0 !important;
	text-indent: -9999px;
	overflow: hidden;
}
.single-product .woocommerce-product-gallery__trigger > *,
.single-product .woocommerce-product-gallery__trigger::before,
.single-product .woocommerce-product-gallery__trigger::after {
	display: none !important;
}

/* The theme's global button style (border, radius, padding) was being
   applied to PhotoSwipe's buttons and hid their icons. */
.pswp .pswp__button,
.pswp .pswp__button:hover,
.pswp .pswp__button:focus {
	border: 0 !important;
	border-radius: 0 !important;
	padding: 0 !important;
	margin: 0 !important;
	box-shadow: none !important;
	background-color: transparent !important;
	min-height: 0 !important;
	width: 44px !important;
	height: 44px !important;
}
.pswp .pswp__button--arrow--left,
.pswp .pswp__button--arrow--right {
	width: 70px !important;
	height: 100px !important;
	background: none !important;
}
.pswp .pswp__img {
	border-radius: 0 !important;
}
/* Floating chat bubble shouldn't sit on top of the lightbox. */
.pswp--open ~ * .wa__btn_popup,
body:has(.pswp--open) [class*="wa__"],
body:has(.pswp--open) .mystickyelements-fixed {
	display: none !important;
}
