/* =========================================================
   TrendCave Toolkit — brand strip, shipping labels, delivery box,
   reviews and combos. Colours follow the TrendCave theme.
   ========================================================= */

:root {
	--tct-brown: #662710;
	--tct-brown-dark: #4d1d0c;
	--tct-cream: #fdfdf6;
	--tct-sand: #f3eee4;
	--tct-line: #ebe6dc;
	--tct-ink: #1c1917;
	--tct-muted: #6b645a;
	--tct-green: #2f7a46;
	--tct-green-bg: #e6f2ea;
	--tct-star: #c98a1a;
}

/* ---- Brand strip ---- */
.tct-brand-strip {
	margin: 0;
	text-align: center;
}
.tct-brand-strip__band {
	background: var(--tct-brown);
	color: var(--tct-cream);
	padding: 14px 16px;
	font-family: "Urbanist", sans-serif;
	font-weight: 800;
	font-size: clamp(15px, 2.2vw, 22px);
	letter-spacing: 0.12em;
	text-transform: uppercase;
}
.tct-brand-strip__band a {
	color: inherit;
}
.tct-brand-strip__items {
	background: var(--tct-sand);
	border-bottom: 1px solid var(--tct-line);
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(90px, 1fr));
	gap: 8px 12px;
	padding: 18px 12px;
}
.tct-brand-strip__title {
	font-family: "Urbanist", sans-serif;
	font-weight: 800;
	font-size: clamp(15px, 2vw, 26px);
	color: var(--tct-ink);
	line-height: 1.2;
}
.tct-brand-strip__text {
	font-size: clamp(11px, 1.2vw, 14px);
	color: #4f4a43;
	margin-top: 2px;
}

/* ---- Free shipping label (next to price) ---- */
.tct-free-shipping {
	margin: -4px 0 14px;
}
.tct-free-shipping span {
	display: inline-block;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.04em;
	color: var(--tct-green);
	background: var(--tct-green-bg);
	padding: 4px 10px;
	border-radius: 999px;
	line-height: 1.4;
}

/* ---- Delivery box (wraps Shiprocket's PIN check) ---- */
.tct-delivery {
	border: 1px solid var(--tct-line);
	background: #fff;
	border-radius: 14px;
	padding: 14px 16px;
	margin: 6px 0 18px;
}
.tct-delivery__title {
	font-weight: 600;
	font-size: 14px;
	margin-bottom: 10px;
	color: var(--tct-ink);
}
.tct-delivery__form {
	display: flex;
	gap: 8px;
	align-items: center;
}
.tct-delivery #shiprocket_pincode_check {
	flex: 1 1 auto;
	min-width: 0;
	height: 44px;
	border: 1px solid #d6cec1;
	border-radius: 10px;
	padding: 0 12px;
	font-size: 16px;
	background: #fff;
	margin: 0;
}
.tct-delivery #check_pincode {
	flex: 0 0 auto;
	height: 44px;
	padding: 0 16px;
	border-radius: 10px;
	background: transparent;
	color: var(--tct-brown);
	border: 1px solid var(--tct-brown);
	font-weight: 600;
	text-transform: none;
	margin: 0;
}
.tct-delivery #pincode_response {
	margin-top: 10px;
	font-size: 15px;
	color: var(--tct-ink);
}
.tct-delivery #pincode_response:empty {
	display: none;
}
.tct-delivery__free {
	color: var(--tct-green);
	font-weight: 700;
}
.tct-delivery__pin {
	color: var(--tct-muted);
	font-size: 13px;
	margin-left: 4px;
}
.tct-delivery__cod {
	display: block;
	margin-top: 4px;
	font-size: 13px;
	color: var(--tct-green);
	font-weight: 600;
}
.tct-delivery__cod.is-prepaid {
	color: #8a4b12;
}
.tct-delivery__none {
	color: #8a4b12;
	font-weight: 600;
}
.tct-delivery__checking {
	color: var(--tct-muted);
}

/* ---- Reviews section [tct_reviews] ---- */
.tct-reviews {
	margin: 32px 0;
}
.tct-reviews__title {
	font-family: "Urbanist", sans-serif;
	font-weight: 800;
	margin: 0 0 18px;
}
.tct-reviews__list {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 16px;
}
.tct-review {
	margin: 0;
	background: #fff;
	border: 1px solid var(--tct-line);
	border-radius: 16px;
	padding: 18px;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.tct-stars {
	display: inline-flex;
	gap: 2px;
	vertical-align: middle;
}
.tct-review__text {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 15px;
	line-height: 1.55;
	font-style: normal;
	color: var(--tct-ink);
}
.tct-review__text::before {
	display: none;
}
.tct-review__by {
	margin-top: auto;
	display: flex;
	align-items: center;
	gap: 12px;
	border-top: 1px solid #f0ebe2;
	padding-top: 12px;
}
.tct-review__thumb img {
	width: 44px;
	height: 56px;
	object-fit: cover;
	border-radius: 8px;
}
.tct-review__name {
	display: block;
	font-weight: 600;
	font-size: 14px;
}
.tct-review__verified {
	color: var(--tct-green);
	font-size: 12px;
}
.tct-review__product {
	display: block;
	font-size: 13px;
	color: var(--tct-muted);
}
@media (max-width: 767px) {
	.tct-reviews__list {
		display: flex;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		padding-bottom: 6px;
	}
	.tct-review {
		flex: 0 0 82%;
		scroll-snap-align: start;
	}
}

/* Product page review list (WooCommerce / WoodMart markup) */
.single-product #reviews .commentlist .comment_container,
.single-product #reviews .commentlist .review {
	border-radius: 14px;
}
.single-product #reviews .star-rating span::before,
.single-product .woocommerce-product-rating .star-rating span::before {
	color: var(--tct-star);
}

/* ---- Combos ---- */
.tct-combo-tag {
	display: inline-block;
	background: var(--tct-brown);
	color: var(--tct-cream);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	padding: 5px 9px;
	border-radius: 999px;
	line-height: 1.2;
}
.tct-combo-badge {
	position: absolute;
	left: 10px;
	top: 10px;
	z-index: 3;
	background: var(--tct-brown);
	color: var(--tct-cream);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	padding: 4px 8px;
	border-radius: 999px;
	pointer-events: none;
}
/* Only the element that directly holds a badge becomes the positioning box. */
*:has(> .tct-combo-badge) {
	position: relative;
}

.tct-combo-box {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin: 0 0 20px;
}
.tct-combo-box__section-title {
	font-family: "Urbanist", sans-serif;
	font-weight: 800;
	font-size: 16px;
	margin: 4px 0 -2px;
}
.tct-combo-box__item {
	border: 1px dashed #c9a58c;
	background: #fbf4ee;
	border-radius: 14px;
	padding: 14px 16px;
}
.tct-combo-box__head {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 10px;
}
.tct-combo-box__products {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
}
.tct-combo-box__product {
	display: flex;
	align-items: center;
	gap: 8px;
	color: var(--tct-ink);
	font-size: 13px;
	font-weight: 500;
}
.tct-combo-box__product img {
	width: 44px;
	height: 56px;
	object-fit: cover;
	border-radius: 8px;
}
.tct-combo-plus {
	color: var(--tct-brown);
	font-weight: 700;
	font-size: 18px;
}
.tct-combo-box__price {
	margin-top: 10px;
	font-size: 15px;
}
.tct-combo-box__price strong {
	color: var(--tct-brown);
}
.tct-combo-box__price del {
	color: #6b645a;
	margin-left: 4px;
}
.tct-combo-save {
	color: var(--tct-green);
	font-weight: 600;
	font-size: 13px;
	margin-left: 6px;
}
.tct-combo-box__note {
	margin: 6px 0 0;
	font-size: 12px;
	color: var(--tct-muted);
}
.tct-combo-tiers {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(80px, 1fr));
	gap: 8px;
	text-align: center;
}
.tct-combo-tier {
	background: #fff;
	border: 1px solid var(--tct-line);
	border-radius: 10px;
	padding: 8px 6px;
	display: flex;
	flex-direction: column;
	font-size: 13px;
}
.tct-combo-tier.is-deal span {
	color: var(--tct-brown);
	font-weight: 600;
}

.tct-combo-hints {
	background: #fbf4ee;
	border: 1px solid #e6d3c3;
	border-radius: 12px;
	padding: 12px 16px;
	margin-bottom: 18px;
}
.tct-combo-hints p {
	margin: 4px 0;
}
.tct-combo-savings td {
	color: var(--tct-green);
	font-weight: 600;
}

/* Homepage combo cards [tct_combos] */
.tct-combos {
	margin: 32px 0;
}
.tct-combos__title {
	font-family: "Urbanist", sans-serif;
	font-weight: 800;
	margin: 0 0 18px;
}
.tct-combos__list {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 20px;
}
.tct-combo-card {
	background: #fff;
	border: 1px solid var(--tct-line);
	border-radius: 16px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
}
.tct-combo-card__media {
	position: relative;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 2px;
	background: var(--tct-line);
	aspect-ratio: 4 / 3;
}
.tct-combo-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.tct-combo-card__media .tct-combo-tag {
	position: absolute;
	left: 12px;
	top: 12px;
}
.tct-combo-card__body {
	padding: 16px 18px 18px;
	display: flex;
	flex-direction: column;
	gap: 6px;
	flex: 1;
}
.tct-combo-card__body h3 {
	font-family: "Urbanist", sans-serif;
	font-weight: 800;
	font-size: 20px;
	margin: 0;
}
.tct-combo-card__body p {
	margin: 0;
	font-size: 14px;
	color: var(--tct-muted);
}
.tct-combo-card__price strong {
	color: var(--tct-brown);
	font-size: 18px;
}
.tct-combo-card__price del {
	color: #6b645a;
	margin-left: 6px;
}
.tct-combo-card a,
.tct-combo-box a,
.tct-review a,
.tct-combo-hints a {
	text-decoration: none;
}
.tct-combo-card__cta {
	margin-top: auto;
	align-self: flex-start;
	padding: 11px 18px;
	border-radius: 999px;
	background: var(--tct-ink);
	color: var(--tct-cream) !important;
	font-weight: 600;
	font-size: 14px;
}
@media (max-width: 767px) {
	.tct-combos__list {
		display: flex;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
	}
	.tct-combo-card {
		flex: 0 0 80%;
		scroll-snap-align: start;
	}
}

/* ---- Sub-category tiles (category pages, [tct_category_tiles]) ---- */
.tct-cat-tiles {
	margin: 4px 0 22px;
}
.tct-cat-tiles__list {
	list-style: none;
	margin: 0;
	padding: 4px 2px 8px;
	display: flex;
	gap: 18px;
	overflow-x: auto;
	scroll-snap-type: x proximity;
	scrollbar-width: thin;
}
.tct-cat-tiles__list li {
	flex: 0 0 auto;
	scroll-snap-align: start;
	margin: 0;
}
.tct-cat-tile {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	width: 96px;
	color: var(--tct-ink);
	text-decoration: none;
}
.tct-cat-tile__img {
	width: 88px;
	height: 88px;
	border-radius: 50%;
	overflow: hidden;
	display: block;
	border: 1px solid var(--tct-line, #e3ddd2);
	background: var(--tct-panel, #efe9de);
	box-sizing: border-box;
}
.tct-cat-tile__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 20%;
	display: block;
}
.tct-cat-tile__all {
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--tct-brown);
	color: var(--tct-cream);
	font-family: "Urbanist", sans-serif;
	font-weight: 800;
	font-size: 16px;
	letter-spacing: 0.06em;
}
.tct-cat-tile__name {
	font-size: 13px;
	font-weight: 500;
	text-align: center;
	line-height: 1.25;
}
.tct-cat-tile.is-active .tct-cat-tile__img {
	border: 3px solid var(--tct-brown);
}
.tct-cat-tile.is-active .tct-cat-tile__name {
	font-weight: 700;
	color: var(--tct-brown);
}
.tct-cat-tile:hover .tct-cat-tile__img,
.tct-cat-tile:focus-visible .tct-cat-tile__img {
	border-color: var(--tct-brown);
}
@media (max-width: 767px) {
	.tct-cat-tiles__list {
		gap: 12px;
	}
	.tct-cat-tile {
		width: 72px;
	}
	.tct-cat-tile__img {
		width: 66px;
		height: 66px;
	}
	.tct-cat-tile__name {
		font-size: 12px;
	}
}

/* ---------- Category pages: heading, banner, toolbar (v1.2) ---------- */
.tct-cat-head {
	width: 100%;
}
.tct-cat-title {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 6px 14px;
	margin: 6px 0 18px;
}
.tct-cat-title__name {
	margin: 0;
	font-family: "Urbanist", sans-serif;
	font-size: 44px;
	line-height: 1.05;
	font-weight: 800;
	color: var(--tct-ink);
	letter-spacing: -0.01em;
	text-transform: none;
}
.tct-cat-title__count {
	font-size: 16px;
	color: #6b645a;
}
.tct-cat-nobanner .wd-page-title {
	display: none !important;
}
.tct-cat-sort .woocommerce-ordering {
	margin: 0;
	float: none;
}
.tct-cat-sort select.orderby {
	height: 44px;
	min-width: 190px;
	padding: 0 38px 0 16px;
	border: 1.5px solid #d6cec1;
	border-radius: 999px;
	background-color: #fff;
	font-size: 14px;
	font-weight: 600;
	color: var(--tct-ink);
}
/* Toolbar: just "Filters" and "Sort by" */
.tct-cat-clean .wd-show-sidebar-btn,
.tct-cat-clean .wd-products-per-page,
.tct-cat-clean .wd-products-shop-view,
.tct-cat-clean .shop-loop-head .woocommerce-result-count {
	display: none !important;
}
.tct-cat-clean .wd-shop-tools:has(.tct-cat-head) {
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
}
.tct-cat-clean .wd-shop-tools .tct-cat-head {
	order: -1;
	flex: 0 0 100%;
}
.tct-cat-clean .wd-shop-tools .wd-filter-buttons {
	order: 1;
	margin: 0;
}
.tct-cat-clean .wd-shop-tools .tct-cat-sort {
	order: 2;
	margin-left: auto;
}
.tct-cat-clean .wd-filter-buttons .open-filters {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	height: 44px;
	padding: 0 20px;
	border: 1.5px solid #d6cec1;
	border-radius: 999px;
	background: #fff;
	font-size: 14px;
	font-weight: 600;
	color: var(--tct-ink);
	text-transform: none;
}
@media (max-width: 768.98px) { /* WoodMart's phone layout starts at 768 */
	.tct-cat-title {
		margin: 2px 0 14px;
	}
	.tct-cat-title__name {
		font-size: 32px;
	}
	.tct-cat-title__count {
		font-size: 14px;
	}
	/* Phone: Filter | Sort as one full-width bar */
	.tct-cat-clean .wd-shop-tools:has(.tct-cat-head) {
		gap: 0;
	}
	.tct-cat-clean .wd-shop-tools .tct-cat-head {
		margin-bottom: 12px;
	}
	.tct-cat-clean .wd-shop-tools .wd-filter-buttons,
	.tct-cat-clean .wd-shop-tools .tct-cat-sort {
		flex: 1 1 0;
		margin: 0;
		display: flex;
		justify-content: center;
		border-top: 1px solid var(--tct-line, #e3ddd2);
		border-bottom: 1px solid var(--tct-line, #e3ddd2);
	}
	.tct-cat-clean .wd-shop-tools .wd-filter-buttons + .tct-cat-sort,
	.tct-cat-clean .wd-shop-tools .tct-cat-sort {
		border-left: 1px solid var(--tct-line, #e3ddd2);
	}
	.tct-cat-clean .wd-filter-buttons .open-filters,
	.tct-cat-clean .tct-cat-sort select.orderby {
		width: 100%;
		min-width: 0;
		height: 52px;
		border: 0;
		border-radius: 0;
		background-color: transparent;
		justify-content: center;
		text-align: center;
		text-align-last: center;
		font-size: 15px;
	}
	.tct-cat-sort .woocommerce-ordering {
		width: 100%;
	}
}
@media (max-width: 767px) {
	.tct-cat-tiles__list {
		scrollbar-width: none;
	}
	.tct-cat-tiles__list::-webkit-scrollbar {
		display: none;
	}
}

/* ---------- Homepage product tabs (v1.4) ---------- */
.tct-ptabs {
	margin: 32px 0;
}
.tct-ptabs__title {
	margin: 0 0 14px;
	text-align: center;
	font-family: "Urbanist", sans-serif;
	font-size: 30px;
	font-weight: 800;
	color: var(--tct-ink);
}
.tct-ptabs__nav {
	display: flex;
	justify-content: center;
	gap: 8px;
	margin: 0 0 22px;
	overflow-x: auto;
	scrollbar-width: none;
	padding: 2px;
}
.tct-ptabs__nav::-webkit-scrollbar {
	display: none;
}
.tct-ptabs .tct-ptabs__tab {
	flex: 0 0 auto;
	min-height: 42px;
	padding: 0 20px;
	border: 1.5px solid #d6cec1;
	border-radius: 999px;
	background: #fff;
	color: var(--tct-ink);
	font-size: 14px;
	font-weight: 600;
	text-transform: none;
	letter-spacing: 0;
	box-shadow: none;
	cursor: pointer;
}
.tct-ptabs .tct-ptabs__tab:hover {
	border-color: var(--tct-ink);
	background: #fff;
	color: var(--tct-ink);
}
.tct-ptabs .tct-ptabs__tab.is-active {
	border-color: var(--tct-brown);
	background: var(--tct-brown);
	color: var(--tct-cream);
}
.tct-ptabs .tct-ptabs__tab:focus-visible {
	outline: 2px solid var(--tct-brown);
	outline-offset: 2px;
}
.tct-ptabs__panel[hidden] {
	display: none;
}
@media (max-width: 767px) {
	.tct-ptabs__nav {
		justify-content: flex-start;
	}
	.tct-ptabs__title {
		font-size: 24px;
	}
}

/* Admin-only sample reviews preview */
.tct-reviews__sample-note {
	margin: 0 0 12px;
	padding: 8px 12px;
	border: 1px dashed #c4892f;
	border-radius: 8px;
	background: #fff8ec;
	color: #7a4d10;
	font-size: 13px;
	text-align: center;
}

/* ---------- Homepage sections: banner, stores, Instagram (v1.5) ---------- */
.tct-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 0 20px;
	border: 1.5px solid var(--tct-ink);
	border-radius: 999px;
	background: #fff;
	color: var(--tct-ink);
	font-size: 14px;
	font-weight: 700;
	text-decoration: none;
	white-space: nowrap;
}
.tct-btn:hover {
	background: var(--tct-ink);
	color: #fff;
}
.tct-btn--primary {
	border-color: var(--tct-brown);
	background: var(--tct-brown);
	color: var(--tct-cream);
}
.tct-btn--primary:hover {
	border-color: var(--tct-brown-dark);
	background: var(--tct-brown-dark);
	color: var(--tct-cream);
}

/* Banner */
.tct-hero {
	position: relative;
	overflow: hidden;
}
.tct-hero__track {
	display: flex;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	overscroll-behavior-x: contain;
}
.tct-hero__track::-webkit-scrollbar {
	display: none;
}
.tct-hero__slide {
	flex: 0 0 100%;
	scroll-snap-align: start;
	scroll-snap-stop: always;
}
.tct-hero__link,
.tct-hero picture {
	display: block;
}
.tct-hero__img {
	display: block;
	width: 100%;
	height: auto;
}
.tct-hero .tct-hero__arrow {
	display: flex;
	align-items: center;
	justify-content: center;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 44px;
	height: 44px;
	min-height: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.85);
	color: var(--tct-ink);
	font-size: 28px;
	line-height: 1;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.15);
	cursor: pointer;
}
.tct-hero .tct-hero__arrow--prev { left: 16px; }
.tct-hero .tct-hero__arrow--next { right: 16px; }
.tct-hero .tct-hero__dots {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 14px;
	display: flex;
	justify-content: center;
	gap: 8px;
}
.tct-hero .tct-hero__dot {
	min-width: 0;
	width: 9px;
	height: 9px;
	min-height: 0;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.6);
	box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.15);
	cursor: pointer;
	transition: width 0.2s;
}
.tct-hero .tct-hero__dot.is-active {
	width: 24px;
	background: #fff;
}

/* Store + reel strips */
.tct-carousel {
	margin: 40px 0;
}
.tct-carousel__head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 16px;
}
.tct-carousel__title {
	margin: 0;
	font-family: "Urbanist", sans-serif;
	font-size: 30px;
	font-weight: 800;
	color: var(--tct-ink);
}
.tct-carousel__sub {
	margin: 4px 0 0;
	color: #6b645a;
	font-size: 15px;
}
.tct-carousel__nav {
	display: flex;
	gap: 8px;
	flex: 0 0 auto;
}
.tct-carousel--static .tct-carousel__nav {
	display: none;
}
.tct-carousel .tct-carousel__btn {
	width: 42px;
	height: 42px;
	min-height: 0;
	padding: 0;
	border: 1.5px solid #d6cec1;
	border-radius: 50%;
	background: #fff;
	color: var(--tct-ink);
	font-size: 24px;
	line-height: 1;
	cursor: pointer;
}
.tct-carousel .tct-carousel__btn:disabled {
	opacity: 0.35;
	cursor: default;
}
.tct-carousel__track {
	display: flex;
	gap: 16px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	padding-bottom: 4px;
}
.tct-carousel__track::-webkit-scrollbar {
	display: none;
}
.tct-carousel__track > * {
	scroll-snap-align: start;
}

.tct-store {
	flex: 0 0 min(420px, 85%);
	display: flex;
	flex-direction: column;
	margin: 0;
	border: 1px solid var(--tct-line, #ebe6dc);
	border-radius: 16px;
	background: #fff;
	overflow: hidden;
}
.tct-store__img {
	position: relative;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: var(--tct-panel, #efe9de);
}
/* Any photo shape (tall phone photos too) fills the same 4:3 box */
.tct-store__img img {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
}
.tct-store__body {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	padding: 18px 20px 20px;
}
.tct-store__area {
	margin: 0 0 4px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--tct-brown);
}
.tct-store__name {
	margin: 0 0 8px;
	font-size: 20px;
	font-weight: 800;
	color: var(--tct-ink);
}
.tct-store__address,
.tct-store__hours {
	margin: 0 0 6px;
	font-size: 14px;
	line-height: 1.5;
	color: #3d3833;
}
.tct-store__hours {
	color: #2e7d32;
	font-weight: 600;
}
.tct-store__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: auto;
	padding-top: 12px;
}

.tct-reel {
	flex: 0 0 min(260px, 62%);
	margin: 0;
}
.tct-reel__media {
	position: relative;
	aspect-ratio: 9 / 16;
	border-radius: 16px;
	overflow: hidden;
	background: #1c1917;
}
.tct-reel__media video,
.tct-reel__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	cursor: pointer;
}
.tct-reel .tct-reel__play {
	position: absolute;
	inset: 0;
	margin: auto;
	width: 60px;
	height: 60px;
	min-height: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(0, 0, 0, 0.45);
	cursor: pointer;
}
.tct-reel .tct-reel__play span {
	display: block;
	margin-left: 4px;
	width: 0;
	height: 0;
	margin: 0 auto 0 calc(50% - 6px);
	border-left: 18px solid #fff;
	border-top: 11px solid transparent;
	border-bottom: 11px solid transparent;
}
.tct-reel__media.is-playing .tct-reel__play {
	opacity: 0;
	pointer-events: none;
}
.tct-reel__cap {
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding: 10px 2px 0;
}
.tct-reel__text {
	font-size: 14px;
	font-weight: 600;
	color: var(--tct-ink);
}
.tct-reel__link {
	font-size: 13px;
	font-weight: 600;
	color: var(--tct-brown);
}
.tct-reels__foot {
	display: flex;
	justify-content: center;
	margin-top: 20px;
}

@media (max-width: 767px) {
	.tct-hero .tct-hero__arrow {
		display: none;
	}
	.tct-carousel {
		margin: 28px 0;
	}
	.tct-carousel__title {
		font-size: 24px;
	}
	.tct-carousel__nav {
		display: none;
	}
	.tct-carousel__track {
		gap: 12px;
	}
}
.tct-store__img--none {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 6px;
	background: var(--tct-brown);
	color: var(--tct-cream);
}
.tct-store__img--none span {
	font-family: "Urbanist", sans-serif;
	font-size: 26px;
	font-weight: 800;
	letter-spacing: 0.12em;
}
.tct-store__img--none small {
	font-size: 13px;
	letter-spacing: 0.04em;
	opacity: 0.85;
}

/* ---------- v1.7: centred sliders, Instagram embeds, phone/computer-only banner ---------- */
/* Cards sit in the middle while they fit; with more cards the strip scrolls as before. */
.tct-carousel__track > :first-child {
	margin-left: auto;
}
.tct-carousel__track > :last-child {
	margin-right: auto;
}
.tct-carousel__head {
	position: relative;
	justify-content: center;
	text-align: center;
}
.tct-carousel__nav {
	position: absolute;
	right: 0;
	bottom: 0;
}
.tct-reel--embed {
	flex: 0 0 min(326px, 82%);
}
.tct-reel__embed {
	container-type: inline-size;
	border: 1px solid var(--tct-line, #ebe6dc);
	border-radius: 16px;
	overflow: hidden;
	background: #fff;
}
.tct-reel__embed iframe {
	display: block;
	width: 100%;
	/* Instagram's reel embed: header + 4:5 video + footer */
	height: 560px;
	height: calc(125cqw + 160px);
	border: 0;
}
@media (min-width: 768px) {
	.tct-hero--phone-only {
		display: none !important;
	}
}
@media (max-width: 767px) {
	.tct-hero--computer-only {
		display: none !important;
	}
	.tct-carousel__nav {
		position: static;
	}
}
/* Sound button on uploaded reel videos */
.tct-reel .tct-reel__sound {
	position: absolute;
	right: 10px;
	bottom: 10px;
	width: 36px;
	height: 36px;
	min-height: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(0, 0, 0, 0.5);
	cursor: pointer;
}
.tct-reel .tct-reel__sound span,
.tct-reel .tct-reel__sound span::after {
	position: absolute;
	inset: 0;
	margin: auto;
	display: block;
}
/* speaker */
.tct-reel .tct-reel__sound span {
	width: 14px;
	height: 14px;
	background: #fff;
	clip-path: polygon(0 30%, 35% 30%, 75% 0, 75% 100%, 35% 70%, 0 70%);
}
/* muted: a diagonal line */
.tct-reel__media:not(.is-unmuted) .tct-reel__sound::after {
	content: "";
	position: absolute;
	inset: 0;
	margin: auto;
	width: 22px;
	height: 2px;
	background: #fff;
	transform: rotate(-45deg);
}

/* ---------- v1.7.3: phone Sort shows its label (WoodMart turns it into a bare icon) ---------- */
@media (max-width: 768.98px) {
	.tct-cat-clean .wd-shop-tools .tct-cat-sort {
		align-self: stretch;
	}
	.tct-cat-sort .woocommerce-ordering.wd-ordering-mb-icon {
		display: flex;
		width: 100%;
		height: 100%;
	}
	.tct-cat-sort .woocommerce-ordering.wd-ordering-mb-icon::before,
	.tct-cat-sort .woocommerce-ordering.wd-ordering-mb-icon::after {
		display: none !important;
	}
	.tct-cat-clean .tct-cat-sort .woocommerce-ordering select.orderby {
		position: static !important;
		width: 100% !important;
		height: 52px !important;
		min-height: 52px;
		padding: 0 12px !important;
		opacity: 1 !important;
		color: var(--tct-ink) !important;
		background-image: none !important;
		font-size: 15px;
		font-weight: 600;
		text-align: center;
		text-align-last: center;
	}
}

/* ---------- v1.8: banner effects (fade, Ken Burns, captions, countdown, timer bar) ---------- */
.tct-hero .tct-hero__link {
	position: relative;
	color: inherit;
	text-decoration: none;
}
.tct-hero .tct-hero__pic {
	display: block;
	overflow: hidden;
}

/* Fade: slides stacked, the active one fades in */
.tct-hero--fade .tct-hero__track {
	display: grid;
	overflow: hidden;
	scroll-snap-type: none;
}
.tct-hero--fade .tct-hero__slide {
	grid-area: 1 / 1;
	opacity: 0;
	visibility: hidden;
	transition: opacity var(--tct-hero-speed, 700ms) ease, visibility 0s linear var(--tct-hero-speed, 700ms);
}
.tct-hero--fade .tct-hero__slide.is-active {
	z-index: 1;
	opacity: 1;
	visibility: visible;
	transition-delay: 0s;
}

/* Ken Burns: slow zoom on the active photo */
.tct-hero--kenburns .tct-hero__slide.is-active .tct-hero__img {
	animation: tct-kenburns max(calc(var(--tct-hero-time, 6s) + 2s), 7s) ease-out both;
}
@keyframes tct-kenburns {
	from { transform: scale(1); }
	to { transform: scale(1.08); }
}

/* Text on the slide */
.tct-hero .tct-hero__caption {
	position: absolute;
	inset: 0;
	z-index: 2;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 12px;
	padding: 0 max(7%, 84px) 44px; /* clear of the arrows and dots */
	pointer-events: none;
}
/* Room for the text even when the photo is a short, wide one: crop it to fill (all slides the same height) */
.tct-hero:has(.has-caption) .tct-hero__img {
	min-height: 340px;
	object-fit: cover;
}
.tct-hero--no-arrows .tct-hero__caption {
	padding-left: 7%;
	padding-right: 7%;
}
.tct-hero .tct-hero__caption--left { align-items: flex-start; text-align: left; }
.tct-hero .tct-hero__caption--center { align-items: center; text-align: center; }
.tct-hero .tct-hero__caption--right { align-items: flex-end; text-align: right; }
.tct-hero .tct-hero__caption.is-dark { color: var(--tct-ink); }
.tct-hero .tct-hero__caption.is-light { color: #fff; text-shadow: 0 2px 12px rgba(0, 0, 0, 0.35); }
.tct-hero .tct-hero__heading {
	margin: 0;
	max-width: 14ch;
	color: inherit;
	font-family: "Urbanist", sans-serif;
	font-size: clamp(28px, 4.6vw, 68px);
	font-weight: 800;
	line-height: 1.02;
	letter-spacing: -0.01em;
	text-transform: none;
}
.tct-hero .tct-hero__sub {
	margin: 0;
	max-width: 40ch;
	color: inherit;
	font-size: clamp(14px, 1.5vw, 20px);
	font-weight: 600;
}
.tct-hero .tct-hero__btn {
	pointer-events: auto;
	display: inline-flex;
	align-items: center;
	min-height: 48px;
	margin-top: 6px;
	padding: 0 26px;
	border-radius: 999px;
	background: var(--tct-brown);
	color: var(--tct-cream);
	font-size: 15px;
	font-weight: 700;
	text-decoration: none !important;
	text-shadow: none;
	transition: background 0.2s, transform 0.2s;
}
.tct-hero .tct-hero__btn:hover {
	transform: translateY(-1px);
	background: var(--tct-brown-dark);
	color: var(--tct-cream);
}
.tct-hero .tct-hero__timer {
	margin: 0;
	padding: 6px 14px;
	border-radius: 999px;
	background: rgba(28, 25, 23, 0.78);
	color: #fff;
	font-size: 14px;
	font-weight: 600;
	text-shadow: none;
}
.tct-hero .tct-hero__time {
	font-variant-numeric: tabular-nums;
	font-weight: 800;
}
/* Entrance: each line rises in after the slide appears */
.tct-hero .tct-hero__slide.is-active .tct-hero__caption > * {
	animation: tct-rise 0.7s cubic-bezier(0.2, 0.7, 0.2, 1) both;
}
.tct-hero .tct-hero__slide.is-active .tct-hero__caption > :nth-child(2) { animation-delay: 0.15s; }
.tct-hero .tct-hero__slide.is-active .tct-hero__caption > :nth-child(3) { animation-delay: 0.3s; }
.tct-hero .tct-hero__slide.is-active .tct-hero__caption > :nth-child(4) { animation-delay: 0.45s; }
@keyframes tct-rise {
	from { opacity: 0; transform: translateY(24px); }
	to { opacity: 1; transform: none; }
}

/* Timer bar: fills while the slide is shown */
.tct-hero .tct-hero__progress {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 3;
	height: 3px;
	background: rgba(255, 255, 255, 0.35);
}
.tct-hero .tct-hero__progress span {
	display: block;
	width: 100%;
	height: 100%;
	background: var(--tct-brown);
	transform-origin: left center;
	animation: tct-bar var(--tct-hero-time, 5s) linear both;
}
.tct-hero.is-paused .tct-hero__progress span {
	animation-play-state: paused;
}
.tct-hero.is-static .tct-hero__progress {
	display: none;
}
@keyframes tct-bar {
	from { transform: scaleX(0); }
	to { transform: scaleX(1); }
}
.tct-hero .tct-hero__arrow,
.tct-hero .tct-hero__dots {
	z-index: 3;
}
.tct-hero--no-arrows .tct-hero__arrow,
.tct-hero--no-dots .tct-hero__dots {
	display: none !important;
}
@media (max-width: 767px) {
	.tct-hero .tct-hero__caption {
		gap: 8px;
		padding: 0 6% 48px;
	}
	.tct-hero:has(.has-caption) .tct-hero__img {
		min-height: 420px;
	}
	.tct-hero .tct-hero__btn {
		min-height: 42px;
		padding: 0 20px;
		font-size: 14px;
	}
	.tct-hero .tct-hero__timer {
		font-size: 12px;
	}
}
@media (prefers-reduced-motion: reduce) {
	.tct-hero .tct-hero__img,
	.tct-hero .tct-hero__caption > *,
	.tct-hero .tct-hero__progress span {
		animation: none !important;
	}
	.tct-hero--fade .tct-hero__slide {
		transition: none;
	}
}

/* ---------- v1.8.1: one photo shape on every product card ---------- */
.tct-cards--2-3 { --tct-card-ratio: 2 / 3; }
.tct-cards--3-4 { --tct-card-ratio: 3 / 4; }
.tct-cards--1-1 { --tct-card-ratio: 1 / 1; }
.tct-cards .wd-product .wd-product-img-link {
	display: block;
	aspect-ratio: var(--tct-card-ratio);
	overflow: hidden;
}
.tct-cards .wd-product .wd-product-img-link > img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* ---------- v1.8.2: product grids on tablets and phones ---------- */
/* The homepage tabs block has wide side padding set for computers in Elementor; tablets and phones
   inherited it, squeezing 4 cards into ~545 px. Use the full width below 1025 px. */
@media (max-width: 1024px) {
	.elementor-widget-container:has(> .elementor-shortcode > .tct-ptabs),
	.elementor-widget-shortcode:has(> .elementor-shortcode > .tct-ptabs) {
		margin-left: 0 !important;
		margin-right: 0 !important;
		padding-left: 0 !important;
		padding-right: 0 !important;
	}
}
/* Portrait tablets (769–1024 px): 3 product cards per row instead of WoodMart's 4 */
@media (min-width: 769px) and (max-width: 1024px) {
	.tct-ptabs .wd-products.wd-grid-g,
	.tct-cards .wd-products.wd-grid-g {
		--wd-col: 3 !important;
	}
}
/* Phones: sizes on one line under the card */
@media (max-width: 768.98px) {
	.tct-ptabs .wd-product .wd-swatches-grid,
	.tct-cards .wd-product .wd-swatches-grid {
		gap: 4px;
	}
}

/* ---------- v1.9: compact footer on phones (Shop pages → Footer on phones) ---------- */
@media (max-width: 767px) {
	.tct-footer-compact .wd-footer .e-con-inner {
		padding-top: 22px !important;
		padding-bottom: 14px !important;
		gap: 6px !important;
	}
	.tct-footer-compact .wd-footer .e-con {
		padding: 4px 8px !important;
		gap: 8px !important;
	}
	.tct-footer-compact .wd-footer .elementor-widget-image img,
	.tct-footer-compact .wd-footer .elementor-widget-image-box img {
		max-height: 22px;
		width: auto;
	}
	.tct-footer-compact .wd-footer .elementor-widget-wd_list,
	.tct-footer-compact .wd-footer .elementor-widget-wd_list * {
		font-size: 12px !important;
		line-height: 1.45 !important;
	}
	.tct-footer-compact .wd-footer .elementor-widget-wd_extra_menu_list ul {
		display: flex !important;
		flex-wrap: wrap;
		gap: 4px 14px;
	}
	.tct-footer-compact .wd-footer .elementor-widget-wd_extra_menu_list li,
	.tct-footer-compact .wd-footer .elementor-widget-wd_extra_menu_list a {
		margin: 0 !important;
		padding: 0 !important;
		font-size: 12px !important;
	}
	.tct-footer-compact .wd-footer .e-con:has(> .elementor-element .wd-el-toggle) {
		padding-left: 8px !important;
		padding-right: 8px !important;
	}
	.tct-footer-compact .wd-footer .wd-el-toggle {
		padding: 11px 0;
		border-top: 1px solid rgba(255, 255, 255, 0.14);
	}
	.tct-footer-compact .wd-footer .e-con:has(> .elementor-element .wd-el-toggle) {
		gap: 0 !important;
	}
}

/* Checkout: "Pay now / Pay on delivery" under the total (Cash on Delivery with advance) */
.tct-cod-split th,
.tct-cod-split td {
	font-size: 14px;
	font-weight: 600;
}
.tct-cod-split:last-child td {
	color: var(--tct-brown);
}

/* ---------- v1.10: questions & answers [tct_faq] ---------- */
.tct-faq {
	max-width: 860px;
	margin: 48px auto;
	padding: 0 16px;
}
.tct-faq__title {
	margin: 0 0 18px;
	color: var(--tct-ink);
	font-family: "Urbanist", sans-serif;
	font-size: 30px;
	font-weight: 800;
	text-align: center;
}
.tct-faq__item {
	border-bottom: 1px solid var(--tct-line);
}
.tct-faq__q {
	position: relative;
	padding: 16px 36px 16px 0;
	color: var(--tct-ink);
	font-size: 16px;
	font-weight: 700;
	list-style: none;
	cursor: pointer;
}
.tct-faq__q::-webkit-details-marker {
	display: none;
}
.tct-faq__q::after {
	content: "+";
	position: absolute;
	right: 4px;
	top: 50%;
	transform: translateY(-50%);
	color: var(--tct-brown);
	font-size: 22px;
	font-weight: 600;
	line-height: 1;
}
.tct-faq__item[open] .tct-faq__q::after {
	content: "−";
}
.tct-faq__a {
	padding: 0 0 18px;
	color: #4b443c;
	font-size: 15px;
	line-height: 1.6;
}
.tct-faq__a a {
	color: var(--tct-brown);
	text-decoration: underline;
}
@media (max-width: 767px) {
	.tct-faq {
		margin: 32px auto;
	}
	.tct-faq__title {
		font-size: 24px;
	}
	.tct-faq__q {
		font-size: 15px;
	}
}

/* ---------- v1.11: WhatsApp opt-in under the mobile number ---------- */
.tct-wa-optin {
	grid-column: 1 / -1;
	margin-top: -4px !important;
}
.tct-wa-optin label.checkbox {
	display: flex !important;
	align-items: center;
	gap: 8px;
	font-size: 14px;
	font-weight: 500;
	cursor: pointer;
}
.tct-wa-optin .optional {
	display: none;
}

/* ---------- v1.12: "Add to cart" button on every product card (Brand style → Product cards) ---------- */
.tct-card-cart .wd-product .wd-add-btn {
	display: block !important;
	width: 100%;
	margin-top: 10px;
	opacity: 1 !important;
	visibility: visible !important;
	transform: none !important;
}
.tct-card-cart .wd-product .wd-add-btn > a {
	display: flex !important;
	align-items: center;
	justify-content: center;
	gap: 6px;
	width: 100%;
	min-height: 40px;
	padding: 0 12px !important;
	border: 0 !important;
	border-radius: 999px;
	background: var(--tct-brown) !important;
	color: #fff !important;
	font-size: 13px;
	font-weight: 700;
	line-height: 1;
	text-transform: none;
	letter-spacing: 0;
	white-space: nowrap;
}
.tct-card-cart .wd-product .wd-add-btn > a:hover {
	background: var(--tct-brown-dark) !important;
}
.tct-card-cart .wd-product .wd-add-btn > a .wd-action-icon {
	display: none;
}
.tct-card-cart .wd-product .wd-add-btn > a .wd-action-text {
	display: inline !important;
	color: inherit !important;
}
.tct-card-cart .wd-product .wd-add-btn > a.loading {
	opacity: 0.7;
}
/* Size picker inside the card (WoodMart quick shop) */
.tct-card-cart .wd-product .single_add_to_cart_button {
	border-radius: 999px !important;
	background: var(--tct-brown) !important;
	color: #fff !important;
}
@media (max-width: 767px) {
	.tct-card-cart .wd-product .wd-add-btn > a {
		min-height: 38px;
		font-size: 12px;
	}
}

.tct-card-cart .wd-product .wd-add-btn > a,
.tct-card-cart .wd-product .wd-add-btn > a .wd-action-text {
	text-transform: none !important;
}

/* ---------- v1.13: card Add to cart on its own full-width row, always visible (no hover swap) ---------- */
.tct-card-cart .wd-product .wrap-price {
	flex-wrap: wrap !important;
	row-gap: 10px;
	align-items: center;
}
.tct-card-cart .wd-product .wrap-price .swap-wrapp,
.tct-card-cart .wd-product .wrap-price .swap-elements {
	display: contents !important;
}
.tct-card-cart .wd-product .wrap-price .price {
	order: 1;
	margin: 0;
	opacity: 1 !important;
	visibility: visible !important;
	transform: none !important;
}
.tct-card-cart .wd-product .wrap-price .wd-swatches-grid {
	order: 2;
	margin-left: auto;
}
.tct-card-cart .wd-product .wrap-price .wd-add-btn {
	order: 3;
	flex: 0 0 100%;
	max-width: 100%;
	margin: 0 !important;
	position: static !important;
	transform: none !important;
}
.tct-card-cart .wd-product .wd-add-btn > a {
	min-height: 44px;
	font-size: 14px;
	transition: transform 0.12s ease, background 0.2s ease;
	touch-action: manipulation;
}
.tct-card-cart .wd-product .wd-add-btn > a:active {
	transform: scale(0.97);
}
@media (max-width: 400px) {
	.tct-card-cart .wd-product .wrap-price .wd-swatches-grid {
		margin-left: 0;
	}
	.tct-card-cart .wd-product .wd-add-btn > a {
		min-height: 40px;
		font-size: 13px;
	}
}

/* ---------- v1.13: Google store ratings in [tct_reviews] ---------- */
.tct-gstores {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 14px;
	margin-top: 18px;
}
.tct-gstore {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
	padding: 20px 16px;
	border: 1px solid var(--tct-line);
	border-radius: 14px;
	background: #fff;
	text-align: center;
}
.tct-gstore__name {
	font-weight: 700;
	color: var(--tct-ink);
}
.tct-gstore__rating {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}
.tct-gstore__rating strong {
	font-size: 28px;
	line-height: 1;
	color: var(--tct-ink);
}
.tct-gstore__count {
	color: var(--tct-muted);
	font-size: 14px;
}
.tct-gstore__link {
	margin-top: 4px;
	padding: 8px 18px;
	border-radius: 999px;
	background: var(--tct-brown);
	color: #fff !important;
	font-size: 13px;
	font-weight: 700;
	text-decoration: none !important;
}
.tct-reviews--google .tct-reviews__list--google {
	margin-bottom: 4px;
}
