/*
Theme Name: TrikotTrader
Theme URI: https://trikottrader.com
Author: Jordan Hammond
Author URI: https://jordanhammond.co.uk
Description: Lightweight WooCommerce and Elementor foundation for TrikotTrader.
Version: 0.1.0
Requires at least: 6.6
Requires PHP: 8.1
Text Domain: trikottrader
*/

/* Longer German hero copy must fit alongside the shirt artwork. */
html[lang^="de"] .elementor-89 .tt-brand-hero h1.elementor-heading-title {
	font-size: clamp(2.25rem, 5vw, 5.5rem) !important;
	line-height: 1.05 !important;
}

@font-face {
	font-family: "Novarese";
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url("assets/fonts/novarese-bold.woff2") format("woff2");
}

/* Product card view tabs sit across the bottom edge of the 4:5 images. */
.woocommerce ul.products li.product {
	position: relative;
	container-type: inline-size;
}

.woocommerce ul.products li.product a img {
	margin-bottom: 3rem;
	box-sizing: border-box;
	border: 5px solid var(--tt-card-border, var(--tt-card-colour, var(--tt-paper)));
}

.woocommerce ul.products li.product > a.tt-product-view,
.single-product .related.products ul.products li.product > a.tt-product-view,
.single-product .upsells.products ul.products li.product > a.tt-product-view {
	position: absolute !important;
	z-index: 2;
	top: calc(125cqw - 1.45rem);
	left: 25%;
	display: flex !important;
	width: 50% !important;
	min-height: 2.9rem;
	margin: 0 !important;
	padding: 0.65rem 0.8rem !important;
	align-items: center;
	justify-content: center;
	border: 3px solid var(--tt-paper) !important;
	border-radius: 0.32rem 0.55rem 0.32rem 0.55rem !important;
	background: var(--tt-card-colour, var(--tt-forest)) !important;
	box-shadow: none;
	clip-path: none !important;
	color: var(--tt-card-text, var(--tt-paper)) !important;
	font-family: "Novarese", serif !important;
	font-size: clamp(1rem, 4cqw, 1.6rem) !important;
	font-weight: 700;
	line-height: 1 !important;
	text-transform: uppercase;
	transform: skewX(-30deg);
}

.woocommerce ul.products li.product > a.tt-product-view span {
	display: block;
	text-transform: uppercase !important;
	transform: skewX(30deg);
}

.woocommerce ul.products li.product > a.tt-product-view:focus-visible {
	outline: 3px solid var(--tt-orange);
	outline-offset: 3px;
}

.woocommerce ul.products li.product:has(> .tt-product-view--red) { --tt-card-colour: #b02b31; --tt-card-text: var(--tt-paper); }
.woocommerce ul.products li.product:has(> .tt-product-view--blue) { --tt-card-colour: #225f9e; --tt-card-text: var(--tt-paper); }
.woocommerce ul.products li.product:has(> .tt-product-view--green) { --tt-card-colour: #00664b; --tt-card-text: var(--tt-paper); }
.woocommerce ul.products li.product:has(> .tt-product-view--white) { --tt-card-colour: #dce1db; --tt-card-border: #65766b; --tt-card-hover-text: #65766b; --tt-card-text: var(--tt-ink); }
.woocommerce ul.products li.product:has(> .tt-product-view--black) { --tt-card-colour: #203330; --tt-card-text: var(--tt-paper); }
.woocommerce ul.products li.product:has(> .tt-product-view--yellow) { --tt-card-colour: #c99110; --tt-card-hover-text: #806009; --tt-card-text: var(--tt-ink); }
.woocommerce ul.products li.product:has(> .tt-product-view--orange) { --tt-card-colour: #a84d16; --tt-card-text: var(--tt-paper); }
.woocommerce ul.products li.product:has(> .tt-product-view--purple) { --tt-card-colour: #74508e; --tt-card-text: var(--tt-paper); }
.woocommerce ul.products li.product:has(> .tt-product-view--pink) { --tt-card-colour: #a94274; --tt-card-text: var(--tt-paper); }
.woocommerce ul.products li.product:has(> .tt-product-view--grey) { --tt-card-colour: #63736f; --tt-card-text: var(--tt-paper); }
.woocommerce ul.products li.product:has(> .tt-product-view--multi-colour) { --tt-card-colour: #53777c; --tt-card-text: var(--tt-paper); }

/* Top-rated shirts use a warm foil treatment across the card controls too. */
.woocommerce ul.products li.product:has(.tt-perfect-image-shine) {
	--tt-card-colour: #d8ad3e;
	--tt-card-border: #f1d77f;
	--tt-card-hover-text: #6b4b08;
	--tt-card-text: var(--tt-ink);
}

.woocommerce ul.products li.product:has(.tt-perfect-image-shine) a img {
	border-color: var(--tt-card-border);
	box-shadow: inset 0 0 0 1px rgba(255, 248, 205, 0.8), 0 0 0 1px rgba(128, 88, 10, 0.2);
}

.woocommerce ul.products li.product:has(.tt-perfect-image-shine) > a.tt-product-view {
	border-color: #fff0b4 !important;
	background: linear-gradient(115deg, #b88618, #f1d77f 48%, #c49425) !important;
	box-shadow: 0 0.25rem 0.8rem rgba(117, 79, 5, 0.18);
	color: var(--tt-ink) !important;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	text-align: center !important;
}

.woocommerce ul.products li.product .price {
	justify-content: center !important;
	text-align: center !important;
}

.woocommerce-shop .elementor-38 .elementor-element-52ae6cd4 .elementor-heading-title {
	font-family: var(--e-global-typography-primary-font-family, "Novarese"), serif !important;
	font-size: var(--e-global-typography-primary-font-size, 60px) !important;
	font-weight: var(--e-global-typography-primary-font-weight, 700) !important;
	text-transform: uppercase !important;
	line-height: var(--e-global-typography-primary-line-height, 0.95) !important;
	letter-spacing: var(--e-global-typography-primary-letter-spacing, normal) !important;
}

/* The archive grid must determine the listing height before the footer starts. */
.woocommerce-shop .elementor-38 .elementor-element-4867f0a4 {
	display: block;
}

/* Keep the editable 404 template compact and make recovery paths easy to use. */
.tt-error-page .elementor-heading-title {
	text-wrap: balance;
}

.tt-error-page .elementor-element-48cd0369 .elementor-heading-title {
	font-size: clamp(6rem, 22vw, 11rem) !important;
	line-height: 0.85 !important;
}

.tt-404-search {
	width: min(100%, 38rem);
	margin: 1.75rem auto 0;
	text-align: left;
}

.tt-error-page .tt-404-search .elementor-search-form__container {
	display: flex;
	gap: 0.5rem;
	border: 0 !important;
	background: transparent !important;
}

.tt-error-page .tt-404-search .elementor-search-form__input {
	flex: 1 1 auto;
	min-width: 0;
	min-height: 3.2rem;
	padding: 0.8rem 1rem !important;
	border: 1px solid var(--tt-paper) !important;
	border-radius: 0.45rem !important;
	background: var(--tt-paper) !important;
	color: var(--tt-forest) !important;
}

.tt-error-page .tt-404-search .elementor-search-form__submit {
	flex: 0 0 auto;
	min-height: 3.2rem;
	padding: 0.8rem 1.2rem !important;
	border: 1px solid var(--tt-orange) !important;
	border-radius: 0.45rem !important;
	background: var(--tt-orange) !important;
	color: var(--tt-forest) !important;
	font-weight: 700;
	text-transform: uppercase;
}

.tt-404-search .elementor-search-form__submit:hover {
	filter: brightness(1.08);
}

.tt-404-search :is(input, button):focus-visible {
	outline: 3px solid var(--tt-orange);
	outline-offset: 3px;
}

.tt-error-page .elementor-element-0ff2bd39 {
	justify-content: center;
}

/* Use the same texture and scale on the condition promise and main footer. */
.elementor-89 .elementor-element-929110a7,
.elementor-25 .elementor-element-d92d5b36 {
	position: relative;
	isolation: isolate;
}

.elementor-89 .elementor-element-929110a7::before,
.elementor-25 .elementor-element-d92d5b36::before {
	position: absolute;
	inset: 0;
	z-index: 0;
	content: '';
	pointer-events: none;
	background: url('assets/brand/pattern-keeper.svg') right top / 28rem auto repeat;
	opacity: 0.035;
}

.elementor-89 .elementor-element-929110a7 > .e-con-inner,
.elementor-25 .elementor-element-d92d5b36 > .e-con-inner {
	position: relative;
	z-index: 1;
}

.tt-basket-toast {
	position: fixed;
	z-index: 9999;
	top: var(--tt-toast-top, 5rem);
	right: var(--tt-toast-right, 1rem);
	padding: 0.45rem 0.8rem;
	border: 1px solid var(--tt-paper);
	border-radius: 0.35rem;
	background: var(--tt-forest);
	box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.18);
	color: var(--tt-paper);
	font-family: var(--tt-sans);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	line-height: 1.2;
	text-align: center;
	opacity: 0;
	transform: translateY(-0.65rem);
	transition: opacity 180ms ease, transform 180ms ease;
}

.tt-basket-toast.is-visible {
	opacity: 1;
	transform: translateY(0);
}


.elementor-menu-cart__toggle_button.tt-basket-updated {
	animation: tt-basket-pop 600ms ease-out;
}

@keyframes tt-basket-pop {
	50% { transform: scale(1.14); }
}

@media (max-width: 36rem) {
	.tt-error-page .tt-404-search .elementor-search-form__container {
		flex-direction: column;
	}
	.tt-error-page .tt-404-search .elementor-search-form__submit {
		width: 100%;
	}
}

/* Reuse the product tab shape on the homepage's prominent actions. */
body.home .elementor-89 .elementor-element-ce6b6d0e .elementor-heading-title {
	font-size: clamp(5rem, 11vw, 9rem) !important;
	text-transform: uppercase !important;
}

body .tt-angle-cta .elementor-button,
body .elementor-89 .elementor-element-8f893c18 .elementor-button,
body .tt-feature-video__button,
body .elementor-field-type-submit .elementor-button {
	border-radius: 0.32rem 0.55rem 0.32rem 0.55rem !important;
	clip-path: none !important;
	transform: skewX(-30deg);
}

.tt-angle-cta .elementor-button .elementor-button-content-wrapper,
body .elementor-89 .elementor-element-8f893c18 .elementor-button .elementor-button-content-wrapper,
.tt-feature-video__button > span,
.elementor-field-type-submit .elementor-button .elementor-button-content-wrapper {
	display: block;
	transform: skewX(30deg);
}

body .elementor-89 .elementor-element-8f893c18 .elementor-button {
	border: 2px solid var(--tt-paper) !important;
	background: var(--tt-forest) !important;
}

body .elementor-89 .elementor-element-8f893c18 .elementor-button::before,
body .elementor-89 .elementor-element-8f893c18 .elementor-button::after {
	content: none !important;
}

@media (max-width: 767px) {
	body.home .elementor-89 .elementor-element-ce6b6d0e .elementor-heading-title {
		font-size: clamp(5rem, 15vw, 7rem) !important;
	}
}

@font-face {
	font-family: "TT Display";
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url("assets/fonts/eideticneo-bold.otf") format("opentype");
}

@font-face {
	font-family: "TT Sans";
	font-style: normal;
	font-weight: 300 700;
	font-display: swap;
	src: url("assets/fonts/dm-sans-regular.woff2") format("woff2");
}

@font-face {
	font-family: "TT Sans";
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url("assets/fonts/dm-sans-bold.woff2") format("woff2");
}

@font-face {
	font-family: "Poppins";
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("assets/fonts/poppins-regular.woff2") format("woff2");
}

@font-face {
	font-family: "Poppins";
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url("assets/fonts/poppins-bold.woff2") format("woff2");
}

@font-face {
	font-family: "Poppins";
	font-style: italic;
	font-weight: 400;
	font-display: swap;
	src: url("assets/fonts/poppins-italic.woff2") format("woff2");
}

@font-face {
	font-family: "Poppins";
	font-style: italic;
	font-weight: 500;
	font-display: swap;
	src: url("assets/fonts/poppins-medium-italic.woff2") format("woff2");
}

:root {
	--tt-ink: #0a352d;
	--tt-forest: #00664b;
	--tt-pitch: #0b4c3e;
	--tt-chalk: #fffdf0;
	--tt-paper: #fffdf0;
	--tt-lime: #0d9b6c;
	--tt-orange: #f4a51c;
	--tt-muted: #6b756f;
	--tt-line: rgba(16, 23, 19, 0.16);
	--tt-display: var(--e-global-typography-secondary-font-family, "Poppins"), sans-serif;
	--tt-sans: var(--e-global-typography-text-font-family, "Poppins"), sans-serif;
	--tt-radius-sm: 0.25rem;
	--tt-radius-md: 0.5rem;
	--tt-radius-pill: 0.375rem;
	--tt-content: 90rem;
	--tt-gutter: clamp(1rem, 3vw, 2.5rem);
	--tt-section: clamp(4rem, 8vw, 8rem);
	--tt-motion-fast: 240ms;
	--tt-motion-medium: 680ms;
	--tt-motion-reveal: 520ms;
	--tt-motion-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

/* Local, dependency-free motion. Cloudflare may minify or cache these assets
   without changing their execution order or requiring script exclusions. */
.tt-motion-ready .tt-reveal {
	opacity: 0.96;
	transform: translate3d(0, 0.35rem, 0) scale(0.997);
	transition:
		opacity var(--tt-motion-reveal) var(--tt-motion-ease) var(--tt-reveal-delay, 0ms),
		transform var(--tt-motion-reveal) var(--tt-motion-ease) var(--tt-reveal-delay, 0ms) !important;
	will-change: opacity, transform;
}

.tt-motion-ready .tt-reveal.is-visible {
	opacity: 1;
	transform: translate3d(0, 0, 0) scale(1);
	will-change: auto;
}

/* Editable Elementor HTML strip immediately below the homepage hero. */
.tt-home-ticker-section {
	padding: 0 !important;
	overflow: hidden;
	background: var(--tt-forest);
}

.tt-home-ticker-section .elementor-widget-html,
.tt-home-ticker-section .elementor-widget-container {
	width: 100%;
}

.tt-home-ticker {
	position: relative;
	overflow: hidden;
	margin: 0;
	padding-block: clamp(0.5rem, 0.75vw, 0.65rem);
	background: var(--tt-forest);
	color: var(--tt-chalk);
	border-bottom: 4px solid var(--tt-orange);
}

.tt-home-ticker__track,
.tt-home-ticker__group {
	display: flex;
	align-items: center;
	width: max-content;
}

.tt-home-ticker__track {
	animation: tt-home-ticker-scroll 72s linear infinite;
}

.tt-home-ticker__group {
	min-width: 100vw;
	flex: 0 0 auto;
	justify-content: space-around;
	gap: clamp(1rem, 2.5vw, 2.5rem);
	padding-inline: clamp(0.75rem, 2vw, 1.5rem);
	font-family: var(--tt-display);
	font-size: clamp(0.68rem, 0.9vw, 0.82rem);
	font-weight: 700;
	letter-spacing: 0.08em;
	line-height: 1.1;
	text-transform: uppercase;
	white-space: nowrap;
}

.tt-home-ticker__group span::after {
	content: '✦';
	margin-inline-start: clamp(1rem, 2.5vw, 2.5rem);
	color: var(--tt-orange);
}

.tt-home-ticker:hover .tt-home-ticker__track,
.tt-home-ticker:focus-within .tt-home-ticker__track {
	animation-play-state: paused;
}

.tt-home-ticker:focus-visible {
	outline: 3px solid var(--tt-orange);
	outline-offset: -3px;
}

@keyframes tt-home-ticker-scroll {
	to { transform: translate3d(-50%, 0, 0); }
}

/* The sweep is reserved for an actual 10/10 product score. */
.tt-product-badge.is-perfect {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	background: linear-gradient(110deg, #f7e6b5, #ecd18b 50%, #f7e6b5);
	color: var(--tt-ink);
	box-shadow: inset 0 0 0 1px rgba(87, 62, 15, 0.18);
}

.tt-product-badge.is-perfect::after {
	position: absolute;
	inset: 0;
	width: 35%;
	content: '';
	pointer-events: none;
	background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.68), transparent);
	transform: translate3d(-200%, 0, 0) skewX(-22deg);
	animation: tt-perfect-sweep 8s ease-in-out infinite;
}

@keyframes tt-perfect-sweep {
	0%, 78% { transform: translate3d(-200%, 0, 0) skewX(-22deg); }
	100% { transform: translate3d(600%, 0, 0) skewX(-22deg); }
}

/* A 10/10 shirt gets a collectible-card gloss over its image, never inside it. */
.woocommerce .product .woocommerce-loop-product__link,
.woocommerce .tt-perfect-gallery,
.tt-perfect-image-frame {
	position: relative;
}

.tt-perfect-image-frame {
	display: block;
	overflow: hidden;
}

.tt-perfect-image-shine {
	position: absolute;
	inset: 0;
	z-index: 2;
	display: block;
	overflow: hidden;
	pointer-events: none;
	border-radius: inherit;
}

.tt-perfect-image-shine::before,
.tt-perfect-image-shine::after {
	position: absolute;
	inset: -25%;
	content: '';
	transform: translate3d(-125%, 0, 0) rotate(12deg);
	background: linear-gradient(
		90deg,
		transparent 38%,
		rgba(255, 255, 255, 0.08) 45%,
		rgba(255, 255, 255, 0.7) 50%,
		rgba(255, 249, 213, 0.12) 55%,
		transparent 62%
	);
	filter: blur(2px);
	animation: tt-perfect-image-sweep 9s ease-in-out infinite;
}

.tt-perfect-image-shine::after {
	transform: translate3d(125%, 0, 0) rotate(12deg);
	background: linear-gradient(
		90deg,
		transparent 43%,
		rgba(255, 255, 255, 0.18) 49%,
		rgba(255, 255, 255, 0.5) 51%,
		transparent 57%
	);
	filter: blur(7px);
	animation-delay: 4.5s;
}

@keyframes tt-perfect-image-sweep {
	0%, 68% { transform: translate3d(-125%, 0, 0) rotate(12deg); }
	100% { transform: translate3d(125%, 0, 0) rotate(12deg); }
}

/* Adapt the compact reference to WooCommerce's accessible anchor markup. */
.woocommerce nav.woocommerce-pagination ul.page-numbers {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: 0.35rem;
	border: 0;
}

.woocommerce nav.woocommerce-pagination ul.page-numbers li {
	border: 0;
}

.woocommerce nav.woocommerce-pagination ul.page-numbers :is(a, span).page-numbers {
	display: grid;
	place-items: center;
	min-width: 2.5rem;
	min-height: 2.5rem;
	padding: 0.45rem 0.65rem;
	border-radius: var(--tt-radius-md);
	background: transparent;
	color: var(--tt-ink);
	font-family: var(--tt-sans);
	font-size: 0.85rem;
	font-weight: 700;
	line-height: 1;
	transition: background-color var(--tt-motion-fast) ease, color var(--tt-motion-fast) ease;
}

.woocommerce nav.woocommerce-pagination ul.page-numbers :is(a:hover, a:focus-visible, span.current).page-numbers {
	background: var(--tt-forest);
	color: var(--tt-chalk);
}

.woocommerce nav.woocommerce-pagination ul.page-numbers span.dots {
	min-width: 1.5rem;
}

.woocommerce ul.products li.product img,
.tt-final-collection img,
.woocommerce-product-gallery__image img:not(.zoomImg) {
	transition: transform var(--tt-motion-medium) var(--tt-motion-ease);
}

@media (hover: hover) and (pointer: fine) {
	.woocommerce ul.products li.product:hover img,
	.tt-final-collection:hover img {
		transform: scale(1.025);
	}
}

:is(.elementor-button, .woocommerce a.button, .woocommerce button.button, .tt-account-button) {
	transition:
		background-color var(--tt-motion-fast) ease,
		border-color var(--tt-motion-fast) ease,
		color var(--tt-motion-fast) ease,
		transform var(--tt-motion-fast) var(--tt-motion-ease);
}

:is(.elementor-button, .woocommerce a.button, .woocommerce button.button, .tt-account-button):active {
	transform: translateY(1px) scale(0.99);
}

/* Final brand composition. Content, assets and typography remain in Elementor. */
.elementor-43 .elementor-element-84c6d424 {
	border-bottom: 2px solid var(--tt-lime);
}

.tt-final-header > .tt-header-brand,
.tt-final-header > .tt-header-tools { width: auto; flex: 0 0 auto; }
.tt-final-header > .tt-header-menu { width: auto; flex: 1 1 auto; min-width: 0; }
.tt-final-header .tt-header-brand { justify-content: center; }
.tt-brand-icon { display: none; }
.tt-brand-collections { display: grid !important; grid-template-columns: repeat(5, minmax(0, 1fr)); }
.tt-brand-collections > .tt-final-collection { width: 100%; min-width: 0; }
.tt-brand-collections .tt-final-collection .elementor-widget-image img {
	height: clamp(12rem, 19vw, 18rem) !important;
	min-height: 0;
	object-fit: cover;
}
.tt-brand-hero .elementor-heading-title { overflow-wrap: normal; line-height: 0.9 !important; }
.tt-brand-hero .elementor-element-126f5cc8 {
	margin-bottom: 0;
	padding-bottom: clamp(1rem, 1.8vw, 1.5rem);
}
.tt-brand-hero .tt-hero-shirt img { filter: drop-shadow(0 20px 24px rgba(0, 0, 0, .16)); }
body.page-id-83 .elementor-element-375455e9 img {
	border: 3px solid var(--tt-paper);
	border-radius: var(--tt-radius-md);
	object-fit: cover !important;
	object-position: center 38%;
}
.tt-brand-hero .elementor-widget-text-editor { line-height: 1.45; }
.tt-brand-hero .elementor-element-5d4d0f56 { margin-top: 0.65rem; }
.tt-angle-cta .elementor-button {
	padding-right: 2rem !important;
	padding-left: 2rem !important;
	border-radius: 0 !important;
	clip-path: polygon(0.9rem 0, 100% 0, calc(100% - 0.9rem) 100%, 0 100%);
}
/* The homepage hero's editable Shop all shirts widget uses the same CTA shape. */
body .elementor-89 .elementor-element-8f893c18 .elementor-button {
	position: relative;
	isolation: isolate;
	padding-right: 2rem !important;
	padding-left: 2rem !important;
	border: 2px solid var(--tt-paper) !important;
	border-radius: 0.32rem 0.55rem 0.32rem 0.55rem !important;
	background: var(--tt-forest) !important;
	clip-path: none !important;
	color: var(--tt-paper) !important;
}
body .elementor-89 .elementor-element-8f893c18 .elementor-button::before,
body .elementor-89 .elementor-element-8f893c18 .elementor-button::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	pointer-events: none;
	clip-path: polygon(0.9rem 0, 100% 0, calc(100% - 0.9rem) 100%, 0 100%);
}
body .elementor-89 .elementor-element-8f893c18 .elementor-button::before {
	background: var(--tt-paper);
}
body .elementor-89 .elementor-element-8f893c18 .elementor-button::after {
	inset: 1px;
	clip-path: polygon(0.9rem 0, 100% 0, calc(100% - 0.9rem) 100%, 0 100%);
	background: var(--tt-forest);
}
body .elementor-89 .elementor-element-8f893c18 .elementor-button:hover::after,
body .elementor-89 .elementor-element-8f893c18 .elementor-button:focus::after {
	background: var(--tt-ink);
}
body .elementor-89 .elementor-element-8f893c18 .elementor-button:hover,
body .elementor-89 .elementor-element-8f893c18 .elementor-button:focus {
	background: var(--tt-orange) !important;
	color: var(--tt-ink) !important;
	fill: var(--tt-ink) !important;
}
.tt-angle-cta .elementor-button:focus-visible {
	outline: 3px solid var(--tt-orange);
	outline-offset: 3px;
}

/* Use the shirt-panel angle on filled actions, while utility and outline controls stay conventional. */
:is(
	.woocommerce a.button:not(.remove),
	.woocommerce button.button,
	.woocommerce input.button,
	.elementor-field-type-submit .elementor-button,
	.tt-account-button,
	.tt-catalog-filters__submit,
	.tt-wishlist-dialog__account,
	.tt-wishlist-dialog form button,
	.tt-trustpilot__scorecard a
) {
	padding-right: 1.4rem !important;
	padding-left: 1.4rem !important;
	border-radius: 0 !important;
	clip-path: polygon(0.65rem 0, 100% 0, calc(100% - 0.65rem) 100%, 0 100%);
}
/* Keep the footer signup action in the rounded button family. */
body .elementor-25 .tt-newsletter-section .elementor-element-865832d5 .elementor-field-type-submit .elementor-button {
	border-radius: 0.32rem 0.55rem 0.32rem 0.55rem !important;
	clip-path: none !important;
}

/* Match Add to basket actions to the dark Apply filters control. */
:is(
	.woocommerce a.add_to_cart_button,
	.woocommerce a.single_add_to_cart_button,
	.woocommerce button.single_add_to_cart_button,
	.woocommerce input.single_add_to_cart_button
) {
	min-height: 3rem;
	padding: 0.85rem 1rem !important;
	border-color: var(--tt-ink) !important;
	background: var(--tt-ink) !important;
	color: var(--tt-paper) !important;
	font-size: 0.78rem !important;
	line-height: 1.55 !important;
	text-transform: uppercase !important;
}

:is(
	.woocommerce a.add_to_cart_button:hover,
	.woocommerce a.add_to_cart_button:focus-visible,
	.woocommerce a.single_add_to_cart_button:hover,
	.woocommerce a.single_add_to_cart_button:focus-visible,
	.woocommerce button.single_add_to_cart_button:hover,
	.woocommerce button.single_add_to_cart_button:focus-visible,
	.woocommerce input.single_add_to_cart_button:hover,
	.woocommerce input.single_add_to_cart_button:focus-visible
) {
	border-color: var(--tt-lime) !important;
	background: var(--tt-lime) !important;
	color: var(--tt-ink) !important;
}

.tt-instagram-feed.is-fallback .tt-instagram-feed__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.tt-instagram-feed.is-fallback .tt-instagram-feed__grid img { object-fit: cover; padding: 0; background: var(--tt-paper); }
@media (max-width: 1199px) {
	.tt-brand-wordmark { display: none; }
	.tt-brand-icon { display: block; }
}
@media (max-width: 1024px) {
	.tt-final-header > .tt-header-brand,
	.tt-final-header > .tt-header-menu,
	.tt-final-header > .tt-header-tools { flex: none; }
	.tt-brand-collections { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
	.tt-brand-collections { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tt-brand-collections .tt-final-collection .elementor-widget-image img { height: clamp(12rem, 57vw, 16rem) !important; }
	.tt-brand-hero .elementor-button { min-height: 44px; }
	.tt-instagram-feed.is-fallback .tt-instagram-feed__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	background: var(--tt-paper);
	color: var(--tt-ink);
	font-family: var(--tt-sans);
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.55;
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
}

body::before {
	content: none;
}

img,
svg,
video {
	display: block;
	max-width: 100%;
}

.tt-about-video {
	display: grid;
	grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.15fr);
	gap: clamp(1.5rem, 4vw, 4rem);
	align-items: center;
}

.tt-about-video__copy p:last-child {
	margin-bottom: 0;
}

.tt-about-video__eyebrow {
	margin: 0 0 0.8rem;
	color: var(--tt-orange);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.tt-about-video__player {
	position: relative;
	overflow: hidden;
	border: 1px solid rgba(16, 23, 19, 0.08);
	border-radius: 1rem;
	background:
		radial-gradient(circle at top left, rgba(217, 255, 67, 0.28), transparent 35%),
		linear-gradient(135deg, #123f33, #245a49 65%, #101713);
	box-shadow: 0 1.75rem 3.25rem rgba(16, 23, 19, 0.2);
}

.tt-about-video__player video {
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
}

/* Keep Elementor's MediaElement wrapper inside the same rounded frame. */
.tt-about-video__player :is(.mejs-container, .mejs-inner, .mejs-mediaelement, .mejs-poster),
.tt-about-video__player .mejs-container video {
	border-radius: inherit;
}

.tt-about-video__player .mejs-container {
	overflow: hidden;
}

.tt-about-video .elementor-widget-shortcode .wp-video,
.tt-about-video .elementor-widget-shortcode .mejs-container {
	max-width: 100%;
	overflow: hidden;
	border-radius: 1rem;
}

/* Match the editorial heroes and keep product card actions aligned. */
.woocommerce-shop .elementor-38 .elementor-element-52ae6cd4 .elementor-heading-title {
	font-family: "Novarese", serif;
	line-height: 0.95;
}

.woocommerce ul.products li.product a.button.product_type_simple {
	box-sizing: border-box;
	width: 100%;
	min-height: 3.5rem;
	font-family: var(--tt-sans);
	font-size: 0.8rem;
	font-weight: 700;
	color: var(--tt-chalk);
	background-color: var(--tt-ink);
}

.woocommerce .shipping-costs-info {
	display: none !important;
}

.elementor-menu-cart__footer-buttons .elementor-button {
	text-transform: uppercase !important;
}

@media (max-width: 47.99rem) {
	.tt-about-video {
		grid-template-columns: 1fr;
	}
}

h1,
h2,
h3,
h4,
h5,
h6 {
	margin-block: 0 0.65em;
	font-family: var(--tt-display);
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0;
	text-wrap: balance;
}

h1 {
	font-size: 3rem;
}

h2 {
	font-size: 2.5rem;
}

h3 {
	font-size: 1.5rem;
}

p {
	margin-block: 0 1.25em;
}

a {
	color: inherit;
	text-decoration-color: var(--tt-orange);
	text-decoration-thickness: 0.12em;
	text-underline-offset: 0.2em;
}

a:hover {
	text-decoration-color: var(--tt-lime);
}

button,
input,
select,
textarea {
	font: inherit;
}

button,
.button,
.elementor-button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button {
	border: 1px solid var(--tt-ink);
	border-radius: var(--tt-radius-pill);
	background: var(--tt-lime);
	color: var(--tt-ink);
	font-weight: 700;
	letter-spacing: 0.02em;
}

button:hover,
.button:hover,
.elementor-button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover {
	border-color: var(--tt-lime);
	background: var(--tt-lime);
	color: var(--tt-ink);
}

:focus-visible {
	outline: 3px solid var(--tt-orange);
	outline-offset: 3px;
}

::selection {
	background: var(--tt-lime);
	color: var(--tt-ink);
}

.screen-reader-text,
.skip-link {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.skip-link:focus {
	z-index: 100000;
	top: 1rem;
	left: 1rem;
	width: auto;
	height: auto;
	padding: 0.75rem 1rem;
	clip: auto;
	border-radius: var(--tt-radius-sm);
	background: var(--tt-lime);
	color: var(--tt-ink);
	font-weight: 700;
}

.tt-shell {
	width: min(100% - (2 * var(--tt-gutter)), var(--tt-content));
	margin-inline: auto;
}

.site-main > .tt-shell {
	padding-block: var(--tt-section);
}

.tt-fallback-header,
.tt-fallback-footer {
	background: var(--tt-forest);
	color: var(--tt-paper);
}

.tt-fallback-header__inner,
.tt-fallback-footer__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 2rem;
	min-height: 5rem;
}

.tt-fallback-brand {
	font-family: var(--tt-display);
	font-size: 2rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	text-decoration: none;
	text-transform: uppercase;
}

.tt-fallback-menu {
	display: flex;
	flex-wrap: wrap;
	gap: 1.25rem;
	padding: 0;
	margin: 0;
	list-style: none;
}

.tt-page-header {
	padding-block: clamp(3rem, 7vw, 7rem) 2rem;
	border-bottom: 1px solid var(--tt-line);
}

.woocommerce ul.products {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
	gap: clamp(1rem, 2.5vw, 2.25rem);
}

.woocommerce ul.products::before,
.woocommerce ul.products::after {
	display: none;
}

.woocommerce ul.products li.product {
	display: flex !important;
	flex-direction: column !important;
	float: none;
	width: auto;
	margin: 0;
}

.woocommerce ul.products li.product > .woocommerce-LoopProduct-link {
	display: flex !important;
	flex: 1 1 auto;
	flex-direction: column;
}

.woocommerce ul.products li.product > .button {
	align-self: flex-start;
	min-height: 2.75rem;
	margin-top: auto !important;
}

.woocommerce ul.products li.product a img {
	margin: 0 0 1rem;
	border-radius: var(--tt-radius-md);
	background: var(--tt-chalk);
	aspect-ratio: 4 / 5;
	object-fit: cover;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	padding: 0;
	font-family: var(--tt-sans);
	font-size: clamp(1rem, 1.35vw, 1.2rem);
	font-weight: 700;
	line-height: 1.25;
	letter-spacing: 0;
}

.woocommerce ul.products li.product .price {
	color: var(--tt-ink);
	font-weight: 700;
}

.woocommerce span.onsale {
	top: 0.85rem;
	left: 0.85rem;
	min-width: auto;
	min-height: auto;
	padding: 0.6rem 0.85rem;
	border: 1px solid var(--tt-ink);
	border-radius: var(--tt-radius-pill);
	background: var(--tt-orange);
	color: var(--tt-ink);
	font-family: var(--tt-sans);
	font-size: 0.78rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.06em;
	box-shadow: 3px 3px 0 var(--tt-ink);
	text-transform: uppercase;
}

/* WooCommerce widgets must not inherit the editorial display-heading scale. */
.elementor-89 .elementor-element-ef7636d4 > .e-con-inner {
	display: block;
}

.elementor-widget-woocommerce-products .woocommerce-loop-product__title,
.elementor-widget-wc-archive-products .woocommerce-loop-product__title,
.elementor-widget-woocommerce-product-related .woocommerce-loop-product__title,
.woocommerce-page ul.products li.product .woocommerce-loop-product__title {
	margin: 0.85rem 0 0.35rem !important;
	color: var(--tt-forest) !important;
	font-family: var(--tt-sans) !important;
	font-size: clamp(1rem, 1.35vw, 1.2rem) !important;
	font-weight: 700 !important;
	line-height: 1.25 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
}

.elementor-widget-wc-archive-products ul.products {
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

@media (min-width: 64.01rem) {
	.elementor-89 .elementor-element-d7f378cb ul.products {
		grid-template-columns: repeat(5, minmax(0, 1fr));
	}
}

.elementor-widget-woocommerce-products ul.products li.product .price,
.elementor-widget-wc-archive-products ul.products li.product .price,
.elementor-widget-woocommerce-product-related ul.products li.product .price {
	display: flex !important;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 0.45rem;
	color: var(--tt-ink) !important;
	font-family: var(--tt-sans) !important;
	font-size: 1rem !important;
	font-weight: 700 !important;
	line-height: 1.4 !important;
}

.elementor-widget-woocommerce-products ul.products li.product .price del,
.elementor-widget-woocommerce-products ul.products li.product .price del .amount,
.elementor-widget-wc-archive-products ul.products li.product .price del,
.elementor-widget-wc-archive-products ul.products li.product .price del .amount,
.elementor-widget-woocommerce-product-related ul.products li.product .price del,
.elementor-widget-woocommerce-product-related ul.products li.product .price del .amount {
	display: inline !important;
	color: var(--tt-muted) !important;
	font-family: var(--tt-sans) !important;
	font-size: 0.9rem !important;
	font-weight: 500 !important;
	line-height: 1.4 !important;
	opacity: 1 !important;
}

.elementor-widget-woocommerce-products ul.products li.product .price ins,
.elementor-widget-woocommerce-products ul.products li.product .price ins .amount,
.elementor-widget-wc-archive-products ul.products li.product .price ins,
.elementor-widget-wc-archive-products ul.products li.product .price ins .amount,
.elementor-widget-woocommerce-product-related ul.products li.product .price ins,
.elementor-widget-woocommerce-product-related ul.products li.product .price ins .amount {
	display: inline !important;
	color: var(--tt-forest) !important;
	font-family: var(--tt-sans) !important;
	font-size: 1rem !important;
	font-weight: 700 !important;
	line-height: 1.4 !important;
	text-decoration: none !important;
}

.elementor-widget-woocommerce-products ul.products li.product .button,
.elementor-widget-wc-archive-products ul.products li.product .button,
.elementor-widget-woocommerce-product-related ul.products li.product .button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.75rem 1.1rem;
	font-size: 0.8rem;
	line-height: 1;
	text-transform: uppercase;
}

.elementor-widget-woocommerce-products span.onsale,
.elementor-widget-wc-archive-products span.onsale,
.elementor-widget-woocommerce-product-images span.onsale {
	min-width: auto !important;
	min-height: auto !important;
	padding: 0.6rem 0.85rem !important;
	background: var(--tt-orange) !important;
	color: var(--tt-ink) !important;
	font-size: 0.78rem !important;
	line-height: 1 !important;
}

/* Cart flyout */
.elementor-menu-cart__main {
	width: min(92vw, 30rem) !important;
	background: var(--tt-paper) !important;
	color: var(--tt-ink) !important;
}

.elementor-menu-cart__product-name,
.elementor-menu-cart__product-name a {
	color: var(--tt-forest) !important;
	font-family: var(--tt-sans) !important;
	font-size: 1rem !important;
	font-weight: 700 !important;
	line-height: 1.3 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
}

.elementor-menu-cart__product-price,
.elementor-menu-cart__subtotal {
	color: var(--tt-ink) !important;
	font-family: var(--tt-sans) !important;
	font-size: 0.95rem !important;
	line-height: 1.4 !important;
}

.elementor-menu-cart__product-image img {
	box-sizing: border-box;
	border: 3px solid var(--tt-mini-cart-border, var(--tt-forest)) !important;
	border-radius: 0.65rem !important;
}

.elementor-menu-cart__product.tt-shirt-colour-red { --tt-mini-cart-border: #b02b31; }
.elementor-menu-cart__product.tt-shirt-colour-blue { --tt-mini-cart-border: #225f9e; }
.elementor-menu-cart__product.tt-shirt-colour-green { --tt-mini-cart-border: #00664b; }
.elementor-menu-cart__product.tt-shirt-colour-white { --tt-mini-cart-border: #65766b; }
.elementor-menu-cart__product.tt-shirt-colour-black { --tt-mini-cart-border: #203330; }
.elementor-menu-cart__product.tt-shirt-colour-yellow { --tt-mini-cart-border: #c99110; }
.elementor-menu-cart__product.tt-shirt-colour-orange { --tt-mini-cart-border: #a84d16; }
.elementor-menu-cart__product.tt-shirt-colour-purple { --tt-mini-cart-border: #74508e; }
.elementor-menu-cart__product.tt-shirt-colour-pink { --tt-mini-cart-border: #a94274; }
.elementor-menu-cart__product.tt-shirt-colour-grey { --tt-mini-cart-border: #63736f; }
.elementor-menu-cart__product.tt-shirt-colour-multi-colour { --tt-mini-cart-border: #53777c; }

.elementor-menu-cart__footer-buttons .elementor-button {
	min-height: 2.8rem;
	padding: 0.8rem 1rem !important;
	font-size: 1rem !important;
	line-height: 1.1 !important;
}

.elementor-menu-cart__footer-buttons .elementor-button--view-cart {
	border-color: var(--tt-forest) !important;
	background: var(--tt-forest) !important;
	color: var(--tt-paper) !important;
}

.elementor-menu-cart__footer-buttons .elementor-button--checkout {
	border-color: var(--tt-lime) !important;
	background: var(--tt-lime) !important;
	color: var(--tt-ink) !important;
}

/* Cart and checkout contrast/typography safeguards. */
.elementor-widget-woocommerce-cart .cart_totals h2,
.elementor-widget-woocommerce-cart .e-cart-section h2,
.elementor-widget-woocommerce-checkout-page .e-checkout__column h3,
.elementor-widget-woocommerce-checkout-page .e-checkout__order_review h3 {
	font-family: var(--tt-sans) !important;
	font-size: clamp(1.35rem, 2.4vw, 1.75rem) !important;
	font-weight: 700 !important;
	line-height: 1.1 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
}

.elementor-widget-woocommerce-cart .e-cart-totals .cart_totals h2 {
	color: var(--tt-paper) !important;
	font-family: "Novarese", serif !important;
	font-size: clamp(2rem, 4vw, 2.75rem) !important;
	font-weight: 700 !important;
	line-height: 1 !important;
	text-transform: uppercase !important;
}

.elementor-widget-woocommerce-cart button[name="update_cart"] {
	border-radius: var(--tt-radius-sm) !important;
	clip-path: none !important;
	transform: none !important;
}

.elementor-widget-woocommerce-cart .product-name,
.elementor-widget-woocommerce-cart .product-name a,
.elementor-widget-woocommerce-cart .shop_table,
.elementor-widget-woocommerce-cart .cart_totals,
.elementor-widget-woocommerce-checkout-page .woocommerce-checkout,
.elementor-widget-woocommerce-checkout-page .woocommerce-checkout p,
.elementor-widget-woocommerce-checkout-page .woocommerce-checkout label {
	font-family: var(--tt-sans) !important;
	font-size: 1rem;
	line-height: 1.5;
	letter-spacing: 0;
}

.elementor-widget-woocommerce-cart .product-name a,
.elementor-widget-woocommerce-cart .coupon a,
.elementor-widget-woocommerce-checkout-page a:not(.button) {
	color: var(--tt-forest) !important;
	text-decoration-color: var(--tt-orange) !important;
}

.elementor-widget-woocommerce-cart .product-name a:hover,
.elementor-widget-woocommerce-checkout-page a:not(.button):hover {
	color: #a93612 !important;
}

.elementor-widget-woocommerce-cart .shop_table .button,
.elementor-widget-woocommerce-cart .wc-proceed-to-checkout .checkout-button,
.elementor-widget-woocommerce-checkout-page #place_order {
	min-height: 3rem;
	padding: 0.85rem 1.4rem !important;
	font-family: var(--tt-sans) !important;
	font-size: 0.85rem !important;
	font-weight: 700 !important;
	line-height: 1 !important;
	letter-spacing: 0.06em !important;
	text-transform: uppercase !important;
}

.elementor-widget-woocommerce-cart .quantity .qty {
	min-width: 4.25rem;
	min-height: 2.75rem;
	padding: 0.5rem;
}

.elementor-widget-woocommerce-cart .e-cart-totals .shop_table,
.elementor-widget-woocommerce-cart .e-cart-totals .shop_table th,
.elementor-widget-woocommerce-cart .e-cart-totals .shop_table td,
.elementor-widget-woocommerce-cart .e-cart-totals .shop_table td::before,
.elementor-widget-woocommerce-cart .e-cart-totals .shop_table .woocommerce-Price-amount {
	color: var(--tt-paper) !important;
}

.elementor-widget-woocommerce-cart .e-cart-totals .cart_totals .shop_table_responsive tr td {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1.5rem;
	width: 100%;
	padding: 0.85rem 0;
	text-align: right !important;
}

.elementor-widget-woocommerce-cart .e-cart-totals .cart_totals .shop_table_responsive tr td::before {
	float: none;
	color: rgba(255, 253, 240, 0.76) !important;
	font-size: 0.76rem !important;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0.07em;
	text-transform: uppercase;
}

.elementor-widget-woocommerce-cart .e-cart-totals .cart_totals .shop_table_responsive tr.order-total td {
	margin-top: 0.35rem;
	padding-top: 1.15rem;
	border-top: 1px solid rgba(255, 253, 240, 0.24);
}

.elementor-widget-woocommerce-cart .e-cart-totals .cart_totals .shop_table_responsive tr.order-total .woocommerce-Price-amount {
	font-size: 1.2rem;
}

.elementor-widget-woocommerce-checkout-page .e-checkout__container .e-checkout__column > div,
.elementor-widget-woocommerce-checkout-page .e-checkout__order_review,
.elementor-widget-woocommerce-checkout-page .e-coupon-box,
.elementor-widget-woocommerce-checkout-page .e-checkout__payment {
	overflow: hidden;
}

/* Payment and Germanized compliance controls inherit the checkout cards. */
.elementor-widget-woocommerce-checkout-page .wc-stripe-elements-field,
.elementor-widget-woocommerce-checkout-page .stripe-card-group,
.elementor-widget-woocommerce-checkout-page .payment_box,
.elementor-widget-woocommerce-checkout-page .wc-gzd-checkbox-placeholder {
	max-width: 100%;
}

.elementor-widget-woocommerce-checkout-page .wc-stripe-elements-field {
	min-height: 2.9rem;
	padding: 0.8rem 0.9rem;
	border: 1px solid var(--tt-line);
	border-radius: var(--tt-radius-sm);
	background: #fff;
}

.elementor-widget-woocommerce-checkout-page .woocommerce-gzd-legal-checkbox-text,
.elementor-widget-woocommerce-checkout-page .wc-gzd-checkbox-placeholder label {
	color: var(--tt-ink);
	font-size: 0.875rem;
	line-height: 1.55;
}

.elementor-widget-woocommerce-checkout-page .woocommerce-gzd-legal-checkbox-text a,
.elementor-widget-woocommerce-checkout-page .wc-gzd-checkbox-placeholder a {
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 0.16em;
}

.elementor-widget-woocommerce-checkout-page .woocommerce-error,
.elementor-widget-woocommerce-checkout-page .wc-stripe-error {
	border-left-color: #b42318;
	background: #fff4f2;
	color: #7a271a;
}

/* Cart and checkout controls use straight edges and a clear hierarchy. */
.elementor-widget-woocommerce-cart .wc-proceed-to-checkout .checkout-button {
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 100% !important;
	min-height: 3.5rem;
	background: var(--tt-orange) !important;
	border: 1px solid var(--tt-orange) !important;
	border-radius: var(--tt-radius-sm) !important;
	clip-path: none !important;
	transform: none !important;
	color: var(--tt-ink) !important;
}

.elementor-widget-woocommerce-cart .wc-proceed-to-checkout .checkout-button:hover {
	background: var(--tt-chalk) !important;
	border-color: var(--tt-chalk) !important;
}

.elementor-widget-woocommerce-cart .coupon.e-cart-section {
	display: flex;
	align-items: stretch;
	gap: 0.75rem;
}

.elementor-widget-woocommerce-cart .coupon.e-cart-section .input-text,
.elementor-widget-woocommerce-cart .coupon.e-cart-section .button {
	min-height: 3.25rem !important;
	border-radius: var(--tt-radius-sm) !important;
}

.elementor-widget-woocommerce-cart .coupon.e-cart-section .button {
	min-width: 10rem;
	background: var(--tt-forest) !important;
	border: 1px solid var(--tt-forest) !important;
	clip-path: none !important;
	transform: none !important;
	color: var(--tt-chalk) !important;
}

.elementor-widget-woocommerce-checkout-page #wc-stripe-express-checkout-button-separator {
	color: var(--tt-chalk) !important;
}

.elementor-widget-woocommerce-checkout-page .e-checkout__order_review #payment,
.elementor-widget-woocommerce-checkout-page .e-checkout__order_review .payment_box,
.elementor-widget-woocommerce-checkout-page .e-checkout__order_review .wc_payment_methods {
	background: transparent !important;
	box-shadow: none !important;
}

.elementor-widget-woocommerce-checkout-page .e-checkout__order_review #payment {
	border: 0 !important;
	padding: 0 !important;
}

.elementor-widget-woocommerce-checkout-page .e-checkout__order_review .payment_box,
.elementor-widget-woocommerce-checkout-page .e-checkout__order_review .stripe-card-group {
	border: 0 !important;
	padding-inline: 0 !important;
}

.elementor-widget-woocommerce-checkout-page .e-checkout__order_review .wc-stripe-elements-field {
	background: #f8fafb !important;
}

.elementor-widget-woocommerce-checkout-page .e-checkout__order_review .wc-stripe-payment-method-instruction {
	background: transparent !important;
}

.elementor-widget-woocommerce-checkout-page .woocommerce-checkout-review-order-table {
	background: transparent !important;
	width: 100%;
	table-layout: fixed;
}

.elementor-widget-woocommerce-checkout-page .woocommerce-checkout-review-order-table tr,
.elementor-widget-woocommerce-checkout-page .woocommerce-checkout-review-order-table th,
.elementor-widget-woocommerce-checkout-page .woocommerce-checkout-review-order-table td {
	background: transparent !important;
}

/* Keep the product column useful and align prices at the far edge. */
.elementor-widget-woocommerce-checkout-page .woocommerce-checkout-review-order-table .product-name {
	width: 72% !important;
	overflow-wrap: anywhere;
}
.elementor-widget-woocommerce-checkout-page .woocommerce-checkout-review-order-table .product-total {
	width: 28% !important;
	text-align: right !important;
}
.elementor-widget-woocommerce-checkout-page .woocommerce-checkout-review-order-table td:last-child {
	text-align: right;
}

/* The order-received endpoint should feel like the final step of checkout. */
.woocommerce-order-received .elementor.elementor-60 > .elementor-element.elementor-element-7d580ff2 {
	display: none !important;
}

.woocommerce-order-received .woocommerce-order {
	max-width: 72rem;
	margin: 0 auto;
	padding: clamp(1.5rem, 4vw, 3rem) 0;
}

.woocommerce-order-received .woocommerce-order > .woocommerce-thankyou-order-received {
	margin: 0 0 1.25rem !important;
	padding: clamp(1.5rem, 3vw, 2.25rem) !important;
	border: 0 !important;
	border-radius: 0.5rem;
	background: var(--tt-forest) !important;
	color: var(--tt-paper) !important;
	font-family: "Novarese", serif !important;
	font-size: clamp(1.5rem, 3vw, 2.5rem) !important;
	font-weight: 700 !important;
	line-height: 1.1 !important;
	text-align: left !important;
	text-transform: uppercase;
}

.woocommerce-order-received .woocommerce-order-overview {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0.75rem;
	margin: 0 0 2.5rem !important;
	padding: 0 !important;
}

.woocommerce-order-received .woocommerce-order-overview::before,
.woocommerce-order-received .woocommerce-order-overview::after,
.woocommerce-order-received .woocommerce-customer-details .woocommerce-columns::before,
.woocommerce-order-received .woocommerce-customer-details .woocommerce-columns::after {
	display: none !important;
	content: none !important;
}

.woocommerce-order-received .woocommerce-order-overview li {
	float: none !important;
	width: auto !important;
	min-width: 0;
	margin: 0 !important;
	padding: 1rem 1.1rem !important;
	border: 1px solid var(--tt-line) !important;
	border-radius: 0.4rem;
	background: var(--tt-paper);
	color: var(--tt-forest) !important;
	font-family: var(--tt-sans);
	font-size: 0.75rem !important;
	font-weight: 700;
	letter-spacing: 0.04em;
	line-height: 1.4;
	text-transform: uppercase;
}

.woocommerce-order-received .woocommerce-order-overview li strong {
	display: block;
	margin-top: 0.4rem;
	color: var(--tt-ink);
	font-size: 0.95rem !important;
	font-weight: 500;
	letter-spacing: 0;
	line-height: 1.4;
	overflow-wrap: anywhere;
	text-transform: none;
}

.woocommerce-order-received .woocommerce-order-overview li.woocommerce-order-overview__payment-method {
	grid-column: 1 / -1;
}

.woocommerce-order-received .woocommerce-order-details,
.woocommerce-order-received .woocommerce-customer-details {
	margin: 0 0 2rem;
}

.woocommerce-order-received .woocommerce-order-details__title,
.woocommerce-order-received .woocommerce-column__title {
	margin: 0 0 0.85rem !important;
	color: var(--tt-paper) !important;
	font-family: "Novarese", serif !important;
	font-size: clamp(1.35rem, 2.2vw, 1.8rem) !important;
	line-height: 1.1 !important;
	text-transform: uppercase;
}

.woocommerce-order-received .woocommerce-table--order-details {
	width: 100%;
	max-width: 100%;
	margin: 0 !important;
	border: 1px solid var(--tt-line) !important;
	border-collapse: collapse;
	background: var(--tt-paper) !important;
	table-layout: fixed;
}

.woocommerce-order-received .woocommerce-table--order-details .product-name,
.woocommerce-order-received .woocommerce-table--order-details tfoot th {
	width: 65% !important;
}

.woocommerce-order-received .woocommerce-table--order-details .product-total,
.woocommerce-order-received .woocommerce-table--order-details tfoot td {
	width: 35% !important;
	overflow-wrap: anywhere;
}

.woocommerce-order-received .woocommerce-table--order-details th,
.woocommerce-order-received .woocommerce-table--order-details td {
	padding: 0.9rem 1.1rem !important;
	border: 0 !important;
	border-bottom: 1px solid var(--tt-line) !important;
	color: var(--tt-ink);
	font-family: var(--tt-sans);
	font-size: 0.95rem;
	line-height: 1.45;
}

.woocommerce-order-received .woocommerce-table--order-details thead th {
	background: var(--tt-forest) !important;
	color: var(--tt-paper) !important;
	font-size: 0.75rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.woocommerce-order-received .woocommerce-table--order-details .product-total,
.woocommerce-order-received .woocommerce-table--order-details tfoot td {
	text-align: right;
}

.woocommerce-order-received .woocommerce-table--order-details tfoot tr:last-child th,
.woocommerce-order-received .woocommerce-table--order-details tfoot tr:last-child td {
	border-bottom: 0 !important;
	font-weight: 700;
}

.woocommerce-order-received .woocommerce-customer-details .woocommerce-columns {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
}

.woocommerce-order-received .woocommerce-customer-details .woocommerce-column {
	float: none !important;
	width: auto !important;
	min-width: 0;
}

.woocommerce-order-received .woocommerce-customer-details address {
	margin: 0;
	padding: 1.25rem !important;
	border: 1px solid var(--tt-line) !important;
	border-radius: 0.4rem;
	background: var(--tt-paper);
	color: var(--tt-ink);
	font-family: var(--tt-sans);
	font-size: 0.95rem;
	font-style: normal;
	line-height: 1.6;
	overflow-wrap: anywhere;
}

@media (max-width: 767px) {
	.woocommerce-order-received .woocommerce-order-overview {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.woocommerce-order-received .woocommerce-order-overview li.woocommerce-order-overview__payment-method {
		grid-column: 1 / -1;
	}
	.woocommerce-order-received .woocommerce-customer-details .woocommerce-columns {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 480px) {
	.woocommerce-order-received .woocommerce-order-overview {
		grid-template-columns: 1fr;
	}
	.woocommerce-order-received .woocommerce-order > .woocommerce-thankyou-order-received {
		font-size: 1.45rem !important;
	}
}

/* One continuous texture behind the hero and checkout, not two restarted images. */
.elementor.elementor-60 {
	position: relative;
	isolation: isolate;
	background: var(--e-global-color-text, #0b352c);
}
.elementor.elementor-60::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: url('assets/brand/pattern-keeper.svg') center top / 100% auto repeat-y;
	opacity: 0.055;
	pointer-events: none;
}
.elementor.elementor-60 > .elementor-element.elementor-element-7d580ff2,
.elementor.elementor-60 > .elementor-element.elementor-element-8716136f {
	background: transparent !important;
}
.elementor.elementor-60 > .elementor-element.elementor-element-7d580ff2::before {
	background: none !important;
}
.elementor.elementor-60 > .elementor-element.elementor-element-7d580ff2 > .elementor-background-overlay {
	display: none;
}

.elementor-widget-woocommerce-checkout-page #place_order {
	display: block !important;
	width: 100% !important;
	min-height: 3.5rem;
	border-radius: var(--tt-radius-sm) !important;
	clip-path: none !important;
}

/* Collapse the Elementor notice placeholder when there is no customer message. */
.single-product .elementor-element-3a64aaf2:has(.woocommerce-notices-wrapper:empty) {
	display: none;
}

/* Let the colourised stripe artwork fade into the product background. */
.single-product .elementor-element-31858a3e {
	--tt-pattern-bleed: clamp(2.5rem, 5vw, 5.5rem);
	position: relative;
	isolation: isolate;
	overflow: hidden;
}

.single-product .elementor-element-31858a3e::before,
.single-product .elementor-element-31858a3e::after {
	content: '';
	position: absolute;
	inset: 0 auto 0 calc(-1 * var(--tt-pattern-bleed));
	width: calc(min(64%, 68rem) + var(--tt-pattern-bleed));
	-webkit-mask-position: left center;
	mask-position: left center;
	-webkit-mask-size: clamp(31rem, 52vw, 46rem) auto;
	mask-size: clamp(31rem, 52vw, 46rem) auto;
	-webkit-mask-repeat: repeat-y;
	mask-repeat: repeat-y;
	pointer-events: none;
}

.single-product .elementor-element-31858a3e::before {
	z-index: 0;
	background: #212226;
	-webkit-mask-image: url('assets/brand/product-pattern-dark.svg');
	mask-image: url('assets/brand/product-pattern-dark.svg');
	opacity: 0.09;
}

.single-product .elementor-element-31858a3e::after {
	z-index: 1;
	background: var(--tt-shirt-tint);
	-webkit-mask-image: url('assets/brand/product-pattern-accent.svg');
	mask-image: url('assets/brand/product-pattern-accent.svg');
	opacity: 0.28;
}

.single-product .elementor-element-31858a3e > .e-con-inner { position: relative; z-index: 2; }
body.single-product { --tt-shirt-tint: #00664b; }
body.single-product.tt-shirt-colour-red { --tt-shirt-tint: #b02b31; }
body.single-product.tt-shirt-colour-blue { --tt-shirt-tint: #225f9e; }
body.single-product.tt-shirt-colour-white { --tt-shirt-tint: #788480; }
body.single-product.tt-shirt-colour-black { --tt-shirt-tint: #203330; }
body.single-product.tt-shirt-colour-yellow { --tt-shirt-tint: #c99110; }
body.single-product.tt-shirt-colour-orange { --tt-shirt-tint: #cd6724; }
body.single-product.tt-shirt-colour-purple { --tt-shirt-tint: #74508e; }
body.single-product.tt-shirt-colour-pink { --tt-shirt-tint: #be648e; }
body.single-product.tt-shirt-colour-grey { --tt-shirt-tint: #63736f; }
body.single-product.tt-shirt-colour-multi-colour { --tt-shirt-tint: #53777c; }

body.single-product:has(.tt-product-badge.is-perfect) {
	--tt-perfect-gold: #d8ad3e;
	--tt-shirt-tint: var(--tt-perfect-gold);
}

body.single-product:has(.tt-product-badge.is-perfect) .woocommerce-product-gallery__image img {
	border: 4px solid var(--tt-perfect-gold);
	box-shadow: inset 0 0 0 1px #fff0b4, 0 0 0 1px rgba(128, 88, 10, 0.22);
}

/* Reuse the product colour for small decorative states only. */
.single-product .elementor-widget-woocommerce-product-images .flex-control-thumbs li:has(img.flex-active) {
	box-shadow: 0 0 0 3px var(--tt-shirt-tint);
}

.single-product .elementor-widget-woocommerce-product-stock .stock.in-stock {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
}

.single-product .elementor-widget-woocommerce-product-stock .stock.in-stock::before {
	content: '';
	width: 0.5rem;
	height: 0.5rem;
	border-radius: 50%;
	background: var(--tt-shirt-tint);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--tt-shirt-tint) 20%, transparent);
}

body.single-product .tt-wishlist-button:hover,
body.single-product .tt-wishlist-button:focus-visible,
body.single-product .tt-wishlist-button.is-saved {
	color: var(--tt-shirt-tint) !important;
}

.single-product .elementor-element-32336b45 {
	background: var(--tt-ink) !important;
	box-shadow: inset 0 4px 0 var(--tt-shirt-tint);
	color: var(--tt-chalk) !important;
}

.single-product .elementor-element-32336b45 .tt-product-details__section,
.single-product .elementor-element-32336b45 .tt-product-details__label,
.single-product .elementor-element-32336b45 .tt-product-details__facts dt {
	color: var(--tt-chalk) !important;
	border-color: rgba(255, 253, 240, 0.35) !important;
}

@media (max-width: 767px) {
	.single-product .elementor-element-31858a3e::before,
	.single-product .elementor-element-31858a3e::after {
		width: calc(100% + var(--tt-pattern-bleed));
		-webkit-mask-size: 115% auto;
		mask-size: 115% auto;
		-webkit-mask-repeat: no-repeat;
		mask-repeat: no-repeat;
		-webkit-mask-position: left top;
		mask-position: left top;
	}

	.elementor-widget-woocommerce-cart .coupon.e-cart-section {
		flex-direction: column;
	}

	.elementor-widget-woocommerce-cart .coupon.e-cart-section .button {
		width: 100% !important;
	}
}

/* Keep the optional order-notes card aligned with the other checkout sections. */
.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-additional-fields {
	margin-top: 24px !important;
}

.woocommerce .woocommerce-ordering select {
	min-height: 2.8rem;
	padding: 0.65rem 2.5rem 0.65rem 0.85rem;
	border: 1px solid var(--tt-forest);
	border-radius: var(--tt-radius-pill);
	background: var(--tt-paper);
	color: var(--tt-ink);
}

.tt-newsletter-section a {
	color: var(--tt-forest) !important;
	text-decoration-color: var(--tt-forest) !important;
}

.tt-newsletter-section a:hover {
	color: #8f2f10 !important;
	text-decoration-color: #8f2f10 !important;
}

.tt-announcement .elementor-heading-title {
	line-height: 1.2 !important;
}

.tt-footer-main > .e-con-inner {
	display: grid !important;
	grid-template-columns: minmax(0, 1.35fr) minmax(12rem, 0.9fr) minmax(8rem, 0.62fr) minmax(14rem, 1fr);
	align-items: start;
	gap: clamp(2rem, 3.75vw, 3rem) !important;
}

.tt-footer-main {
	padding: clamp(3rem, 5vw, 4.5rem) var(--tt-gutter) clamp(2.5rem, 4vw, 3.5rem) !important;
}

.tt-footer-main .tt-footer-column {
	width: 100% !important;
	min-width: 0;
	align-self: start;
}

.tt-footer-main .tt-footer-column .elementor-widget-heading {
	margin-bottom: 0 !important;
}

.tt-footer-main .tt-footer-column--brand .elementor-widget-text-editor {
	max-width: 30rem;
}

.tt-footer-main .tt-footer-column--brand .elementor-widget-image img {
	width: min(100%, 12rem) !important;
}

.tt-footer-main .tt-footer-column--brand .elementor-widget-text-editor p,
.tt-footer-main .tt-footer-column--note .elementor-widget-text-editor p {
	margin-bottom: 0.65rem;
}

.tt-footer-main .elementor-nav-menu,
.tt-footer-main .elementor-nav-menu > li {
	padding: 0 !important;
	margin-left: 0 !important;
}

.tt-footer-main .elementor-widget-text-editor a {
	color: var(--tt-chalk);
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.tt-footer-main .elementor-nav-menu a.elementor-item {
	justify-content: flex-start;
	padding: 0.2rem 0 !important;
	line-height: 1.35 !important;
}

.tt-footer-main .tt-footer-column--shop .elementor-nav-menu {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: 1.25rem;
}

.tt-footer-main .elementor-nav-menu a.elementor-item:hover,
.tt-footer-main .elementor-widget-text-editor a:hover {
	color: var(--tt-lime) !important;
}

.tt-footer-main .tt-footer-column--note .elementor-button-wrapper {
	text-align: left;
}

@media (min-width: 48.01rem) and (max-width: 64rem) {
	.tt-footer-main > .e-con-inner {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 3rem 2rem !important;
	}

	.tt-footer-main .tt-footer-column--brand,
	.tt-footer-main .tt-footer-column--note { grid-column: auto; }
}

@media (max-width: 48rem) {
	.tt-footer-main > .e-con-inner {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 2.25rem 1.25rem !important;
	}

	.tt-footer-main .tt-footer-column--brand,
	.tt-footer-main .tt-footer-column--note {
		grid-column: 1 / -1;
		padding-bottom: 1.5rem;
		border-bottom: 1px solid rgba(255, 253, 240, 0.16);
	}

	.tt-footer-main .tt-footer-column {
		gap: 0.6rem !important;
	}

	.tt-footer-main .tt-footer-column--brand .elementor-widget-text-editor,
	.tt-footer-main .tt-footer-column--note .elementor-widget-text-editor {
		font-size: 0.95rem !important;
		line-height: 1.5 !important;
	}

	.tt-footer-main .elementor-nav-menu--main {
		display: block !important;
	}

	.tt-footer-main .elementor-nav-menu--main .elementor-nav-menu {
		display: block !important;
	}

	.tt-footer-main .elementor-menu-toggle,
	.tt-footer-main .elementor-nav-menu--dropdown {
		display: none !important;
	}

	.tt-footer-main .elementor-nav-menu a.elementor-item {
		font-size: 0.9rem !important;
		white-space: normal;
	}

	.tt-footer-main .tt-footer-column--note .elementor-button {
		width: auto;
		max-width: 17rem;
		padding: 0.85rem 1.25rem !important;
		font-size: 0.78rem !important;
	}

	.tt-footer-main .tt-footer-column--shop .elementor-nav-menu {
		grid-template-columns: 1fr;
	}

	.tt-footer-bottom {
		align-items: flex-start !important;
		flex-direction: column !important;
		gap: 0.35rem !important;
		padding: 1.1rem 1.25rem !important;
	}

	.tt-footer-bottom .elementor-widget-text-editor {
		font-size: 0.75rem !important;
		line-height: 1.4 !important;
	}

	.tt-footer-bottom p {
		margin: 0 !important;
	}
}

.tt-language-selector__menu a.is-current,
.tt-language-selector__menu a.is-current span,
.tt-language-selector__menu a.is-current small {
	color: var(--tt-ink) !important;
}

.elementor-widget-woocommerce-my-account a:not(.button) {
	color: var(--tt-forest) !important;
	text-decoration-color: var(--tt-orange) !important;
}

.elementor-widget-woocommerce-my-account a:not(.button):hover {
	color: #a93612 !important;
}

.elementor-widget-woocommerce-my-account button,
.elementor-widget-woocommerce-my-account .button {
	border-color: var(--tt-lime) !important;
	background: var(--tt-lime) !important;
	color: var(--tt-ink) !important;
}

.elementor-widget-woocommerce-my-account button:hover,
.elementor-widget-woocommerce-my-account .button:hover {
	border-color: var(--tt-forest) !important;
	background: var(--tt-forest) !important;
	color: var(--tt-paper) !important;
}

.elementor-widget-woocommerce-product-related .related.products > h2 {
	display: none;
}

/* Let the related grid set its own height before the footer begins. */
.single-product .elementor-48 .elementor-element-397c46e7 > .e-con-inner {
	display: block;
}

.single-product .elementor-widget-woocommerce-product-related .related.products,
.single-product .elementor-widget-woocommerce-product-upsell .upsells.products,
.single-product .related.products,
.single-product .upsells.products {
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent !important;
	box-shadow: none;
	color: var(--tt-paper);
}

.single-product .elementor-widget-woocommerce-product-related .related.products .products,
.single-product .elementor-widget-woocommerce-product-upsell .upsells.products .products,
.single-product .related.products .products,
.single-product .upsells.products .products {
	margin-bottom: 0;
	padding-top: clamp(0.75rem, 1.8vw, 1.25rem);
}

.single-product .elementor-widget-woocommerce-product-related .related.products .woocommerce-loop-product__title,
.single-product .elementor-widget-woocommerce-product-related .related.products .woocommerce-loop-product__title a,
.single-product .elementor-widget-woocommerce-product-upsell .upsells.products .woocommerce-loop-product__title,
.single-product .elementor-widget-woocommerce-product-upsell .upsells.products .woocommerce-loop-product__title a,
.single-product .related.products .woocommerce-loop-product__title,
.single-product .related.products .woocommerce-loop-product__title a,
.single-product .upsells.products .woocommerce-loop-product__title,
.single-product .upsells.products .woocommerce-loop-product__title a {
	line-height: 1.15 !important;
}

.single-product .elementor-widget-woocommerce-product-related .related.products .price,
.single-product .elementor-widget-woocommerce-product-related .related.products .price .amount,
.single-product .elementor-widget-woocommerce-product-upsell .upsells.products .price,
.single-product .elementor-widget-woocommerce-product-upsell .upsells.products .price .amount,
.single-product .related.products .price,
.single-product .related.products .price .amount,
.single-product .upsells.products .price,
.single-product .upsells.products .price .amount {
	line-height: 1.35 !important;
}

.single-product .elementor-widget-woocommerce-product-related .related.products ul.products li.product .button,
.single-product .elementor-widget-woocommerce-product-upsell .upsells.products ul.products li.product .button,
.single-product .related.products ul.products li.product .button,
.single-product .upsells.products ul.products li.product .button {
	width: 100%;
	margin-top: 0.35rem;
	border-color: var(--tt-ink);
	background: var(--tt-ink);
	color: var(--tt-paper);
}

.single-product .elementor-widget-woocommerce-product-related .related.products ul.products li.product .button:hover,
.single-product .elementor-widget-woocommerce-product-upsell .upsells.products ul.products li.product .button:hover,
.single-product .related.products ul.products li.product .button:hover,
.single-product .upsells.products ul.products li.product .button:hover {
	border-color: var(--tt-paper);
	background: var(--tt-paper);
	color: var(--tt-ink);
}

.single-product .elementor-widget-woocommerce-product-images .woocommerce-product-gallery__image,
.single-product .elementor-widget-woocommerce-product-images .woocommerce-product-gallery__image a,
.single-product .elementor-widget-woocommerce-product-images .woocommerce-product-gallery__image img,
.single-product .elementor-widget-woocommerce-product-images .flex-control-thumbs li,
.single-product .elementor-widget-woocommerce-product-images .flex-control-thumbs img,
.single-product .woocommerce-product-gallery__image,
.single-product .woocommerce-product-gallery__image a,
.single-product .woocommerce div.product div.images .flex-control-thumbs li,
.single-product .woocommerce div.product div.images .flex-control-thumbs img,
.single-product .woocommerce div.product div.images img {
	border-radius: var(--tt-radius-md) !important;
}

.single-product .elementor-widget-woocommerce-product-images .woocommerce-product-gallery__image,
.single-product .elementor-widget-woocommerce-product-images .woocommerce-product-gallery__image a,
.single-product .woocommerce-product-gallery__image,
.single-product .woocommerce-product-gallery__image a {
	overflow: hidden;
	background: var(--tt-chalk);
}

/* Product gallery: an unframed lead image and a compact thumbnail rail. */
.single-product .elementor-widget-woocommerce-product-images {
	isolation: isolate;
	width: 100%;
	max-width: 100%;
	margin-inline: auto;
}

.single-product .elementor-widget-woocommerce-product-images .flex-viewport {
	width: 100%;
	height: auto !important;
	border-radius: var(--tt-radius-md);
	background: var(--tt-chalk);
	aspect-ratio: 4 / 5;
}

.single-product .elementor-widget-woocommerce-product-images .flex-viewport .woocommerce-product-gallery__wrapper {
	height: 100% !important;
}

.single-product .elementor-widget-woocommerce-product-images .flex-viewport .woocommerce-product-gallery__image,
.single-product .elementor-widget-woocommerce-product-images .flex-viewport .woocommerce-product-gallery__image a {
	height: 100% !important;
	background: transparent;
}

.single-product .elementor-widget-woocommerce-product-images .flex-viewport .woocommerce-product-gallery__image img:not(.zoomImg) {
	width: 100% !important;
	height: 100% !important;
	object-fit: var(--tt-gallery-fit, cover);
}

.single-product .elementor-widget-woocommerce-product-images .flex-control-thumbs {
	display: flex !important;
	flex-wrap: nowrap !important;
	gap: 0.75rem;
	overflow-x: auto;
	padding: 0 0 0.45rem !important;
	margin-top: 0.75rem !important;
	scroll-snap-type: x proximity;
	scrollbar-color: var(--tt-forest) var(--tt-chalk);
	scrollbar-width: thin;
}

.single-product .elementor-widget-woocommerce-product-images .flex-control-thumbs li {
	width: 6rem !important;
	min-width: 6rem;
	margin: 0 !important;
	border-radius: var(--tt-radius-md) !important;
	background: var(--tt-chalk);
	float: none !important;
	flex: 0 0 6rem !important;
	aspect-ratio: 4 / 5;
	scroll-snap-align: start;
}

.single-product .elementor-widget-woocommerce-product-images .flex-control-thumbs img {
	width: 100%;
	height: 100%;
	border-radius: calc(var(--tt-radius-md) - 0.2rem) !important;
	object-fit: cover;
}

.single-product .elementor-widget-woocommerce-product-images .flex-control-thumbs img.flex-active {
	opacity: 1;
}

.single-product .woocommerce-product-gallery__trigger {
	z-index: 5 !important;
	background: var(--tt-shirt-tint) !important;
	box-shadow: 0 0 0 2px var(--tt-paper), 0 0.3rem 0.8rem rgba(0, 0, 0, 0.2);
	color: var(--tt-paper) !important;
}

.single-product .woocommerce-product-gallery__trigger span {
	color: inherit !important;
}

body.single-product:is(.tt-shirt-colour-white, .tt-shirt-colour-yellow) .woocommerce-product-gallery__trigger {
	color: var(--tt-ink) !important;
}

@media (min-width: 1025px) {
	.single-product .tt-gallery-side-yes .woocommerce-product-gallery {
		--tt-gallery-height: min(780px, calc(100svh - var(--tt-gallery-reserve, 210px)));
		display: grid;
		grid-template-columns: var(--tt-gallery-thumb, 72px) minmax(0, calc(var(--tt-gallery-height) * 0.8));
		gap: 16px;
		justify-content: center;
		margin-bottom: 0;
	}

	.single-product .tt-gallery-side-yes .flex-viewport {
		grid-area: 1 / 2;
		width: min(100%, calc(var(--tt-gallery-height) * 0.8));
		height: auto !important;
		aspect-ratio: 4 / 5;
	}

	.single-product .tt-gallery-side-yes .woocommerce-product-gallery__trigger {
		right: max(1rem, calc((100% - var(--tt-gallery-thumb, 72px) - 16px - var(--tt-gallery-height) * 0.8) / 2 + 1rem)) !important;
	}

	.single-product .tt-gallery-side-yes .woocommerce-product-gallery__image,
	.single-product .tt-gallery-side-yes .woocommerce-product-gallery__image a {
		height: 100% !important;
	}

	.single-product .tt-gallery-side-yes .woocommerce-product-gallery__image img:not(.zoomImg) {
		width: 100% !important;
		height: 100% !important;
		object-fit: var(--tt-gallery-fit, cover);
	}

	.single-product .tt-gallery-side-yes .flex-control-thumbs {
		grid-area: 1 / 1;
		flex-direction: column;
		height: 100%;
		max-height: var(--tt-gallery-height);
		margin-top: 0 !important;
		overflow-x: hidden;
		overflow-y: auto;
		scroll-snap-type: y proximity;
	}

	.single-product .tt-gallery-side-yes .flex-control-thumbs li {
		width: 100% !important;
		min-width: 0;
		flex: 0 0 auto !important;
	}

	.single-product .tt-gallery-side-yes .woocommerce-product-gallery:not(:has(.flex-control-thumbs)) {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* Give logged-in account destinations a clearer rhythm and tap target. */
.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul {
	display: grid;
	gap: 0.65rem;
}

.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation li {
	margin: 0 !important;
	border: 1px solid var(--tt-line) !important;
	border-radius: var(--tt-radius-md) !important;
	overflow: hidden;
}

.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation li a {
	display: flex !important;
	align-items: center;
	min-height: 3.25rem;
	padding: 0.85rem 1rem !important;
}

body.woocommerce-account #customer_login :is(.woocommerce-form-login__submit, .woocommerce-form-register__submit) {
	min-width: 10.5rem;
	min-height: 3.25rem;
	padding: 0.85rem 1.4rem !important;
	border: 1px solid var(--tt-forest) !important;
	border-radius: var(--tt-radius-md) !important;
	background: var(--tt-forest) !important;
	clip-path: none !important;
	color: var(--tt-paper) !important;
	font-family: var(--tt-sans) !important;
	font-size: 0.95rem !important;
	line-height: 1.2;
	transform: none !important;
}

body.woocommerce-account #customer_login :is(.woocommerce-form-login__submit, .woocommerce-form-register__submit):hover {
	border-color: var(--tt-pitch) !important;
	background: var(--tt-pitch) !important;
}

body.woocommerce-account #customer_login :is(.woocommerce-form-login__submit, .woocommerce-form-register__submit):focus-visible {
	outline: 3px solid var(--tt-orange);
	outline-offset: 3px;
}

.woocommerce-product-gallery__trigger,
.woocommerce-product-gallery__trigger span {
	color: var(--tt-forest) !important;
}

.single-product .elementor-widget-woocommerce-product-content .woocommerce-message,
.single-product .elementor-widget-woocommerce-product-content .woocommerce-info,
.single-product .elementor-widget-woocommerce-product-content .woocommerce-error,
.single-product .woocommerce-message,
.single-product .woocommerce-info,
.single-product .woocommerce-error {
	width: 100%;
	padding: 1rem 1.25rem !important;
	border: 1px solid rgba(16, 23, 19, 0.12);
	border-radius: var(--tt-radius-md);
	background: var(--tt-paper) !important;
	color: var(--tt-ink) !important;
	font-family: var(--tt-sans);
	font-size: 0.98rem;
	line-height: 1.45;
	box-shadow: 0 1rem 2.5rem rgba(16, 23, 19, 0.08);
}

.single-product .elementor-widget-woocommerce-product-content .woocommerce-message::before,
.single-product .elementor-widget-woocommerce-product-content .woocommerce-info::before,
.single-product .elementor-widget-woocommerce-product-content .woocommerce-error::before,
.single-product .woocommerce-message::before,
.single-product .woocommerce-info::before,
.single-product .woocommerce-error::before {
	left: 1.1rem !important;
	top: 1rem !important;
}

.single-product .elementor-widget-woocommerce-product-content .woocommerce-message .button,
.single-product .elementor-widget-woocommerce-product-content .woocommerce-message .wc-forward,
.single-product .elementor-widget-woocommerce-product-content .woocommerce-info .button,
.single-product .elementor-widget-woocommerce-product-content .woocommerce-error .button,
	.single-product .woocommerce-message .button,
	.single-product .woocommerce-message .wc-forward,
	.single-product .woocommerce-info .button,
	.single-product .woocommerce-error .button {
		float: none !important;
		display: flex !important;
		align-items: center;
		justify-content: center;
		width: 100% !important;
		box-sizing: border-box;
		margin: 0 0 0.85rem;
		padding: 0.9rem 1.2rem;
		border-color: var(--tt-lime);
		background: var(--tt-lime);
	color: var(--tt-ink);
	font-size: 0.82rem;
	letter-spacing: 0.06em;
}

.single-product .elementor-widget-woocommerce-product-content .woocommerce-message .button:hover,
.single-product .elementor-widget-woocommerce-product-content .woocommerce-message .wc-forward:hover,
.single-product .elementor-widget-woocommerce-product-content .woocommerce-info .button:hover,
.single-product .elementor-widget-woocommerce-product-content .woocommerce-error .button:hover,
.single-product .woocommerce-message .button:hover,
.single-product .woocommerce-message .wc-forward:hover,
.single-product .woocommerce-info .button:hover,
.single-product .woocommerce-error .button:hover {
	border-color: var(--tt-forest);
	background: var(--tt-forest);
	color: var(--tt-paper);
}

/* Product confirmation: compact message first, with a clear secondary action. */
.single-product .elementor-widget-woocommerce-product-content .woocommerce-message,
.single-product .woocommerce-message {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 1rem 1.5rem;
	min-height: 5rem;
	padding: 1.15rem 1.25rem 1.15rem 4rem !important;
	border: 1px solid rgba(13, 155, 108, 0.24) !important;
	border-top: 4px solid var(--tt-lime) !important;
	border-radius: var(--tt-radius-md);
	background: linear-gradient(105deg, rgba(13, 155, 108, 0.08), rgba(255, 253, 240, 0.96) 42%) !important;
	font-size: clamp(0.95rem, 1.15vw, 1.08rem);
	font-weight: 500;
	box-shadow: 0 0.85rem 2rem rgba(16, 23, 19, 0.08);
}

.single-product .woocommerce-message:focus,
.single-product .woocommerce-message:focus-visible {
	outline: none !important;
}

.single-product .elementor-widget-woocommerce-product-content .woocommerce-message::before,
.single-product .woocommerce-message::before {
	content: "\2713" !important;
	top: 50% !important;
	left: 1.25rem !important;
	display: grid;
	width: 1.75rem;
	height: 1.75rem;
	place-items: center;
	border-radius: 50%;
	background: var(--tt-lime);
	color: var(--tt-paper) !important;
	font-family: var(--tt-sans) !important;
	font-weight: 700;
	font-size: 0.95rem;
	line-height: 1;
	transform: translateY(-50%);
}

.single-product .elementor-widget-woocommerce-product-content .woocommerce-message .button,
.single-product .elementor-widget-woocommerce-product-content .woocommerce-message .wc-forward,
.single-product .woocommerce-message .button,
.single-product .woocommerce-message .wc-forward {
	grid-row: 1;
	grid-column: 2;
	justify-self: end;
	width: auto !important;
	min-width: 8.5rem;
	min-height: 2.9rem;
	margin: 0 !important;
	padding: 0.75rem 1.75rem !important;
	border-color: var(--tt-forest) !important;
	border-radius: 0;
	background: var(--tt-forest) !important;
	clip-path: polygon(0.75rem 0, 100% 0, calc(100% - 0.75rem) 100%, 0 100%);
	color: var(--tt-paper) !important;
	font-size: 0.78rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}

.single-product .elementor-widget-woocommerce-product-content .woocommerce-message .button:hover,
.single-product .elementor-widget-woocommerce-product-content .woocommerce-message .wc-forward:hover,
.single-product .woocommerce-message .button:hover,
.single-product .woocommerce-message .wc-forward:hover {
	border-color: var(--tt-lime) !important;
	background: var(--tt-lime) !important;
	color: var(--tt-ink) !important;
}

.tt-collection-card {
	gap: 0.85rem !important;
	overflow: hidden;
}

.tt-collection-card .elementor-widget-image,
.tt-collection-card .elementor-widget-image .elementor-widget-container,
.tt-collection-card .elementor-widget-image a {
	display: block;
	width: 100%;
}

.tt-collection-card .elementor-widget-image img {
	width: 100%;
	background: var(--tt-chalk);
}

.page-id-72 .elementor-element-514d9dd7 > .e-con-inner,
.page-id-83 .elementor-element-f8b8f951 > .e-con-inner,
.page-id-184 .elementor-element-01777fae > .e-con-inner,
.page-id-185 .elementor-element-846946db > .e-con-inner {
	gap: clamp(1rem, 2vw, 1.5rem) !important;
}

.page-id-72 .elementor-element-514d9dd7 > .e-con-inner > .e-con,
.page-id-83 .elementor-element-f8b8f951 > .e-con-inner > .e-con,
.page-id-184 .elementor-element-01777fae > .e-con-inner > .e-con,
.page-id-185 .elementor-element-846946db > .e-con-inner > .e-con {
	height: 100%;
}

.page-id-72 .elementor-element-514d9dd7 .elementor-widget-text-editor,
.page-id-83 .elementor-element-f8b8f951 .elementor-widget-text-editor,
.page-id-184 .elementor-element-01777fae .elementor-widget-text-editor,
.page-id-185 .elementor-element-846946db .elementor-widget-text-editor {
	line-height: 1.45 !important;
}

/* CookieYes inherits the storefront palette while retaining plugin-managed copy. */
.cky-consent-container,
.cky-preference-center,
.cky-btn-revisit-wrapper {
	font-family: var(--tt-sans) !important;
}

.cky-consent-container .cky-consent-bar {
	border: 1px solid rgba(244, 240, 231, 0.26) !important;
	border-radius: var(--tt-radius-md) !important;
	background: var(--tt-forest) !important;
	box-shadow: 0 1.25rem 4rem rgba(16, 23, 19, 0.28) !important;
}

.cky-consent-container .cky-title {
	margin-bottom: 0.35rem !important;
	color: var(--tt-chalk) !important;
	font-family: var(--tt-display) !important;
	font-size: clamp(1.75rem, 3vw, 2.25rem) !important;
	font-weight: 700 !important;
	line-height: 0.95 !important;
	letter-spacing: -0.02em !important;
	text-transform: uppercase;
}

.cky-consent-container .cky-notice-des,
.cky-consent-container .cky-notice-des p,
.cky-consent-container .cky-notice-des a {
	color: var(--tt-chalk) !important;
	font-size: 0.92rem !important;
	line-height: 1.5 !important;
}

.cky-consent-container .cky-notice-des a {
	text-decoration-color: var(--tt-lime) !important;
}

.cky-consent-container .cky-btn,
.cky-preference-center .cky-btn {
	min-height: 2.75rem !important;
	padding: 0.7rem 1.1rem !important;
	border-radius: var(--tt-radius-pill) !important;
	font-family: var(--tt-sans) !important;
	font-size: 0.75rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.07em !important;
	line-height: 1.15 !important;
	text-transform: uppercase;
}

.cky-consent-container .cky-btn-customize,
.cky-consent-container .cky-btn-reject {
	border-color: var(--tt-chalk) !important;
	background: transparent !important;
	color: var(--tt-chalk) !important;
}

.cky-consent-container .cky-btn-customize:hover,
.cky-consent-container .cky-btn-reject:hover {
	background: var(--tt-chalk) !important;
	color: var(--tt-ink) !important;
}

.cky-consent-container .cky-btn-accept,
.cky-preference-center .cky-btn-accept {
	border-color: var(--tt-lime) !important;
	background: var(--tt-lime) !important;
	color: var(--tt-ink) !important;
}

.cky-consent-container .cky-btn-accept:hover,
.cky-preference-center .cky-btn-accept:hover {
	border-color: var(--tt-orange) !important;
	background: var(--tt-orange) !important;
	color: var(--tt-ink) !important;
}

.cky-preference-center {
	border: 1px solid var(--tt-ink) !important;
	border-radius: var(--tt-radius-md) !important;
	background: var(--tt-paper) !important;
	box-shadow: 0 1.5rem 5rem rgba(16, 23, 19, 0.35) !important;
}

.cky-preference-center .cky-preference-title,
.cky-preference-center .cky-accordion-btn {
	color: var(--tt-ink) !important;
	font-family: var(--tt-display) !important;
	font-weight: 700 !important;
}

.cky-preference-center .cky-preference-title {
	font-size: clamp(1.8rem, 4vw, 2.5rem) !important;
	line-height: 1 !important;
	text-transform: uppercase;
}

.cky-preference-center .cky-preference-content-wrapper,
.cky-preference-center .cky-accordion-header-des,
.cky-preference-center .cky-accordion-header-des p {
	color: var(--tt-ink) !important;
}

.cky-preference-center .cky-btn-reject,
.cky-preference-center .cky-btn-preferences {
	border-color: var(--tt-forest) !important;
	background: transparent !important;
	color: var(--tt-forest) !important;
}

.cky-preference-center .cky-btn-reject:hover,
.cky-preference-center .cky-btn-preferences:hover {
	background: var(--tt-forest) !important;
	color: var(--tt-paper) !important;
}

.cky-preference-center .cky-switch input:checked + div,
.cky-preference-center .cky-switch input:checked + span {
	background: var(--tt-forest) !important;
}

.cky-btn-revisit-wrapper {
	border: 1px solid var(--tt-lime) !important;
	background: var(--tt-forest) !important;
	box-shadow: 0 0.6rem 2rem rgba(16, 23, 19, 0.22) !important;
}

.cky-btn-revisit-wrapper:hover {
	background: var(--tt-pitch) !important;
}

@media (max-width: 48rem) {
}

@media (min-width: 64.01rem) {
	.elementor-nav-menu--main .elementor-nav-menu {
		flex-wrap: nowrap !important;
	}
}

@media (max-width: 48rem) {
	.tt-announcement {
		padding: 0.4rem 0.9rem !important;
	}

	.tt-announcement .elementor-heading-title {
		font-size: 0.68rem !important;
		letter-spacing: 0.08em !important;
	}

	.tt-site-header {
		display: grid !important;
		grid-template-areas: "brand tools menu";
		grid-template-columns: 5.25rem minmax(0, 1fr) 2.75rem;
		align-items: center !important;
		gap: 0.5rem !important;
	}

	.tt-site-header > .tt-header-brand,
	.tt-site-header > .tt-header-menu,
	.tt-site-header > .tt-header-tools {
		width: auto !important;
		min-width: 0;
	}

	.tt-site-header > .tt-header-brand {
		grid-area: brand;
	}

	.tt-site-header > .tt-header-menu {
		grid-area: menu;
		justify-self: end;
	}

	.tt-site-header > .tt-header-tools {
		grid-area: tools;
		justify-self: end;
		flex-wrap: nowrap !important;
		gap: 0.35rem !important;
	}

	.tt-header-tools > .elementor-widget {
		width: auto !important;
		min-width: 0;
		flex: 0 0 auto;
	}

	.tt-header-brand .elementor-widget-theme-site-logo,
	.tt-header-brand .elementor-widget-container,
	.tt-header-brand a {
		width: 100% !important;
	}

	.tt-header-menu .elementor-menu-toggle,
	.tt-header-tools .elementor-search-form__toggle,
	.tt-header-tools .elementor-menu-cart__toggle_button {
		display: grid !important;
		width: 2.5rem !important;
		height: 2.5rem !important;
		min-width: 2.5rem !important;
		min-height: 2.5rem !important;
		padding: 0 !important;
		place-items: center;
	}

	.tt-header-menu .elementor-menu-toggle {
		font-size: 1.6rem !important;
	}

	.tt-header-menu .elementor-nav-menu--dropdown {
		padding: 0.75rem 0.875rem 1rem !important;
		border-top: 1px solid rgba(244, 240, 231, 0.2);
		background: var(--tt-forest) !important;
		box-shadow: 0 1.5rem 3rem rgba(16, 23, 19, 0.24);
	}

	.tt-header-menu .elementor-nav-menu--dropdown .elementor-item {
		padding: 0.75rem 0.25rem !important;
		border-bottom: 1px solid rgba(244, 240, 231, 0.14);
		background: transparent !important;
		color: var(--tt-chalk) !important;
		font-family: var(--tt-display) !important;
		font-size: clamp(1.9rem, 9vw, 2.6rem) !important;
		font-weight: 700 !important;
		line-height: 0.95 !important;
		letter-spacing: -0.015em !important;
		text-transform: uppercase;
	}

	.tt-header-menu .elementor-nav-menu--dropdown li:last-child .elementor-item {
		border-bottom: 0;
	}

	.tt-header-menu .elementor-nav-menu--dropdown .elementor-item:hover,
	.tt-header-menu .elementor-nav-menu--dropdown .elementor-item:focus,
	.tt-header-menu .elementor-nav-menu--dropdown .elementor-item-active {
		color: var(--tt-lime) !important;
	}

	.tt-header-tools .tt-language-selector summary {
		gap: 0.3rem;
		min-height: 2.5rem;
		padding: 0.35rem 0.5rem;
		font-size: 0.68rem;
	}

	.tt-header-tools .tt-language-selector summary::after {
		font-size: 0.58rem;
	}

	.tt-header-tools .tt-flag {
		width: 1rem;
		height: 0.7rem;
	}

	.tt-language-selector__menu {
		right: -5.3rem;
		width: min(15rem, calc(100vw - 1.75rem));
	}

	.tt-fallback-header__inner,
	.tt-fallback-footer__inner {
		align-items: flex-start;
		flex-direction: column;
		justify-content: center;
		padding-block: 1.25rem;
	}

	.elementor-menu-cart__main {
		width: 100vw !important;
	}

	.elementor-widget-woocommerce-cart .woocommerce-cart-form__cart-item .product-name,
	.elementor-widget-woocommerce-cart .woocommerce-cart-form__cart-item .product-name a {
		font-size: 0.95rem !important;
	}

	.elementor-widget-woocommerce-cart .woocommerce table.cart tr.cart_item {
		position: relative;
		display: grid !important;
		grid-template-columns: 4.5rem minmax(0, 1fr);
		gap: 0.8rem 1rem;
		padding: 1.25rem !important;
	}

	.elementor-widget-woocommerce-cart .woocommerce table.cart tr.cart_item > td {
		width: 100%;
		padding: 0.45rem 0 !important;
	}

	.elementor-widget-woocommerce-cart .woocommerce table.cart tr.cart_item > .product-thumbnail {
		display: block !important;
		grid-column: 1;
		grid-row: 1;
		padding: 0 !important;
		text-align: left !important;
	}

	.elementor-widget-woocommerce-cart .woocommerce table.cart tr.cart_item > .product-thumbnail::before {
		display: none !important;
	}

	.elementor-widget-woocommerce-cart .woocommerce table.cart tr.cart_item > .product-thumbnail img {
		width: 4.5rem !important;
		border-radius: var(--tt-radius-md);
	}

	.elementor-widget-woocommerce-cart .woocommerce table.cart tr.cart_item > .product-name {
		display: flex !important;
		grid-column: 2;
		grid-row: 1;
		align-self: center;
		align-items: flex-start;
		flex-direction: column;
		gap: 0.2rem;
		padding-right: 1.75rem !important;
		text-align: left !important;
	}

	.elementor-widget-woocommerce-cart .woocommerce table.cart tr.cart_item > .product-name::before {
		float: none !important;
		font-size: 0.72rem;
		letter-spacing: 0.04em;
		text-transform: uppercase;
	}

	.elementor-widget-woocommerce-cart .woocommerce table.cart tr.cart_item > .product-remove {
		position: absolute;
		top: 0.9rem;
		right: 1rem;
		width: auto;
		padding: 0 !important;
	}

	.elementor-widget-woocommerce-cart .woocommerce table.cart tr.cart_item > .product-price,
	.elementor-widget-woocommerce-cart .woocommerce table.cart tr.cart_item > .product-quantity,
	.elementor-widget-woocommerce-cart .woocommerce table.cart tr.cart_item > .product-subtotal {
		display: flex !important;
		grid-column: 1 / -1;
		align-items: center;
		justify-content: space-between;
		border-top: 1px solid var(--tt-line) !important;
		text-align: right !important;
	}

	.elementor-widget-woocommerce-cart .woocommerce table.cart tr.cart_item > .product-price::before,
	.elementor-widget-woocommerce-cart .woocommerce table.cart tr.cart_item > .product-quantity::before,
	.elementor-widget-woocommerce-cart .woocommerce table.cart tr.cart_item > .product-subtotal::before {
		float: none !important;
	}

	.woocommerce .woocommerce-result-count,
	.woocommerce .woocommerce-ordering {
		float: none;
		margin-bottom: 1rem;
	}

	.elementor-widget-wc-archive-products ul.products {
		grid-template-columns: 1fr !important;
	}

	.single-product .related.products,
	.single-product .upsells.products {
		padding: 0;
	}

	.single-product .elementor-widget-woocommerce-product-content .woocommerce-message,
	.single-product .elementor-widget-woocommerce-product-content .woocommerce-info,
	.single-product .elementor-widget-woocommerce-product-content .woocommerce-error,
	.single-product .woocommerce-message,
	.single-product .woocommerce-info,
	.single-product .woocommerce-error {
		padding: 1rem 1rem 1rem 3.25rem !important;
	}

	.single-product .elementor-widget-woocommerce-product-content .woocommerce-message .button,
	.single-product .elementor-widget-woocommerce-product-content .woocommerce-message .wc-forward,
	.single-product .elementor-widget-woocommerce-product-content .woocommerce-info .button,
	.single-product .elementor-widget-woocommerce-product-content .woocommerce-error .button,
	.single-product .woocommerce-message .button,
	.single-product .woocommerce-message .wc-forward,
	.single-product .woocommerce-info .button,
	.single-product .woocommerce-error .button {
		margin-bottom: 0.75rem;
	}

	.single-product .elementor-widget-woocommerce-product-content .woocommerce-message,
	.single-product .woocommerce-message {
		grid-template-columns: minmax(0, 1fr);
		gap: 0.9rem;
		padding: 1.15rem 1rem 1rem 3.65rem !important;
	}

	.single-product .elementor-widget-woocommerce-product-content .woocommerce-message .button,
	.single-product .elementor-widget-woocommerce-product-content .woocommerce-message .wc-forward,
	.single-product .woocommerce-message .button,
	.single-product .woocommerce-message .wc-forward {
		grid-row: 2;
		grid-column: 1;
		justify-self: start;
		width: auto !important;
		margin: 0 !important;
	}

	.tt-collection-card .elementor-widget-image img {
		min-height: 18rem;
	}

	.page-id-89 .elementor-element-f7f43da3 {
		row-gap: 1rem !important;
	}

	.page-id-72 .elementor-element-514d9dd7 > .e-con-inner,
	.page-id-83 .elementor-element-f8b8f951 > .e-con-inner,
	.page-id-184 .elementor-element-01777fae > .e-con-inner,
	.page-id-185 .elementor-element-846946db > .e-con-inner {
		gap: 1rem !important;
	}

	.page-id-72 .elementor-element-514d9dd7 > .e-con-inner > .e-con,
	.page-id-83 .elementor-element-f8b8f951 > .e-con-inner > .e-con,
	.page-id-184 .elementor-element-01777fae > .e-con-inner > .e-con,
	.page-id-185 .elementor-element-846946db > .e-con-inner > .e-con {
		padding: 1.5rem !important;
	}

	.page-id-72 .elementor-element-514d9dd7 .elementor-heading-title,
	.page-id-83 .elementor-element-f8b8f951 .elementor-heading-title,
	.page-id-184 .elementor-element-01777fae .elementor-heading-title,
	.page-id-185 .elementor-element-846946db .elementor-heading-title {
		font-size: clamp(2.2rem, 10vw, 2.85rem) !important;
	}

	.cky-consent-container {
		right: 0.75rem !important;
		bottom: 0.75rem !important;
		left: 0.75rem !important;
		width: auto !important;
		max-width: none !important;
	}

	.cky-consent-container .cky-consent-bar {
		padding: 1.1rem !important;
	}

	.cky-consent-container .cky-title {
		font-size: 1.8rem !important;
	}

	.cky-consent-container .cky-notice-btn-wrapper {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0.5rem !important;
	}

	.cky-consent-container .cky-btn {
		width: 100% !important;
		margin: 0 !important;
		order: initial !important;
	}

	.cky-consent-container .cky-btn-customize {
		grid-column: auto;
	}

	.cky-consent-container .cky-btn-accept {
		grid-column: 1 / -1;
	}

	.cky-preference-center {
		width: calc(100% - 1.5rem) !important;
		max-height: calc(100vh - 1.5rem) !important;
	}

	.cky-preference-center .cky-prefrence-btn-wrapper {
		display: grid !important;
		grid-template-columns: 1fr !important;
		gap: 0.5rem !important;
	}

	.cky-preference-center .cky-btn {
		width: 100% !important;
		margin: 0 !important;
	}
}

@media (max-width: 22rem) {
	.tt-site-header {
		grid-template-columns: 4.5rem minmax(0, 1fr) 2.5rem;
		padding-inline: 0.625rem !important;
	}

	.tt-header-tools .tt-language-selector summary {
		padding-inline: 0.4rem;
	}

	.tt-footer-main > .e-con-inner {
		grid-template-columns: 1fr;
	}

	.tt-footer-main .tt-footer-column {
		grid-column: 1;
	}
}

@media (min-width: 48.01rem) and (max-width: 64rem) {
	.elementor-widget-wc-archive-products ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}

/* Header utilities and menu-only responsive destinations. */
.tt-header-account {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	min-height: 2.75rem;
	padding: 0.55rem 0.7rem;
	color: var(--tt-chalk) !important;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-decoration: none;
	text-transform: uppercase;
}

.tt-header-account > span:first-child {
	color: var(--tt-lime);
	font-size: 0.7rem;
}

.tt-header-account:hover,
.tt-header-account:focus-visible {
	color: var(--tt-lime) !important;
}

.tt-header-menu .tt-mobile-menu-only {
	display: none !important;
}

/* Full-screen search: one calm field-and-action row on desktop. */
.elementor-search-form--skin-full_screen .elementor-search-form__container {
	position: fixed;
	inset: 0;
	display: flex !important;
	align-items: center;
	gap: 0;
	width: 100% !important;
	height: 100% !important;
	padding-inline: max(1rem, calc((100vw - 62rem) / 2)) !important;
	border: 0;
	border-radius: 0;
	background: rgba(10, 53, 45, 0.94);
	box-shadow: none;
}

.elementor-search-form--skin-full_screen .elementor-search-form__input {
	width: auto !important;
	min-width: 0;
	flex: 1 1 auto;
	min-height: 4rem;
	padding: 0.75rem 1.25rem !important;
	border: 0 !important;
	border-radius: var(--tt-radius-md) 0 0 var(--tt-radius-md) !important;
	background: var(--tt-paper) !important;
	color: var(--tt-ink) !important;
	font-size: clamp(1.15rem, 2.4vw, 1.7rem) !important;
}

.elementor-search-form--skin-full_screen .tt-search-submit {
	align-self: center;
	height: 4rem;
	min-height: 4rem;
	min-width: 7rem;
	padding: 0.8rem 1.65rem !important;
	border: 0;
	border-radius: 0 calc(var(--tt-radius-md) - 1px) calc(var(--tt-radius-md) - 1px) 0;
	background: var(--tt-lime) !important;
	color: var(--tt-ink) !important;
	font-family: var(--tt-sans);
	font-size: 0.76rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	cursor: pointer;
}

.elementor-search-form--skin-full_screen .tt-search-submit:hover,
.elementor-search-form--skin-full_screen .tt-search-submit:focus-visible {
	background: var(--tt-orange) !important;
	color: var(--tt-ink) !important;
}

.elementor-search-form--skin-full_screen .dialog-lightbox-close-button {
	position: absolute !important;
	top: clamp(1.25rem, 4vw, 2.5rem) !important;
	right: clamp(1.25rem, 4vw, 2.5rem) !important;
	color: var(--tt-paper) !important;
}

.tt-header-tools .elementor-search-form__toggle .e-font-icon-svg-container {
	display: grid;
	width: 1.45rem;
	height: 1.45rem;
	place-items: center;
}

.tt-header-tools .elementor-search-form__toggle svg {
	display: none;
}

.tt-header-tools .elementor-search-form__toggle .e-font-icon-svg-container::before {
	content: "";
	width: 1.35rem;
	height: 1.35rem;
	background: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fffdf0' stroke-width='1.7' stroke-linecap='round'%3E%3Ccircle cx='10.8' cy='10.8' r='6.6'/%3E%3Cpath d='m16 16 4.4 4.4'/%3E%3C/svg%3E");
}

/* One-of-one products render a hidden quantity wrapper; remove its offset. */
.single-product form.cart .quantity:has(input[type="hidden"]) {
	display: none !important;
}

.single-product form.cart {
	justify-content: flex-start !important;
}

.single-product form.cart .single_add_to_cart_button {
	margin-left: 0 !important;
}

/* Match the VIEW tab silhouette without skewing the button label. */
.single-product form.cart button.single_add_to_cart_button {
	position: relative;
	isolation: isolate;
	min-height: 3rem;
	padding: 0.75rem 1.4rem !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	clip-path: none !important;
	color: var(--tt-paper) !important;
	font-family: "Novarese", serif;
	font-size: 1rem !important;
	line-height: 1.2 !important;
}
.single-product form.cart button.single_add_to_cart_button::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	border: 3px solid var(--tt-paper);
	border-radius: 0.32rem 0.55rem 0.32rem 0.55rem;
	background: var(--tt-forest);
	transform: skewX(-30deg);
	transition: background-color var(--tt-motion-fast) ease;
}
.single-product form.cart button.single_add_to_cart_button:is(:hover, :focus-visible)::before {
	background: var(--tt-ink);
}
.single-product form.cart button.single_add_to_cart_button:focus-visible {
	outline: 3px solid var(--tt-orange);
	outline-offset: 4px;
}

.tt-mini-cart-empty-action {
	margin: 0.75rem 0 0;
	text-align: center;
}

.tt-mini-cart-empty-action .button {
	display: inline-flex !important;
	justify-content: center;
	width: 100%;
}

/* Branded fallbacks for event, search and utility templates. */
.post-type-archive-tt_event .tt-page-header,
.search-results .tt-page-header,
.search-no-results .tt-page-header {
	margin-bottom: clamp(2rem, 4vw, 4rem);
	color: var(--tt-forest);
}

.tt-event-grid,
.tt-search-products {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
	gap: 1.25rem;
	padding: 0;
	margin: 0;
}

.tt-event-card,
.tt-empty-state {
	padding: clamp(1.5rem, 4vw, 2.5rem);
	border: 1px solid var(--tt-line);
	border-radius: var(--tt-radius-md);
	background: var(--tt-chalk);
}

.tt-empty-state {
	text-align: center;
}

.tt-empty-state .button {
	margin: 0.5rem 0.25rem 0;
}

/* Readable policy documents, scoped to their editable Elementor layouts. */
body .tt-policy-page .tt-policy-copy { font-size: 16px; line-height: 1.8; overflow-wrap: anywhere; }
body .tt-policy-page .tt-policy-copy p { margin: 0 0 1.25em !important; }
body .tt-policy-page .tt-policy-copy h2 { font-family: Poppins, sans-serif; font-size: clamp(22px, 2.5vw, 28px); font-weight: 700; line-height: 1.35; margin: 2.25em 0 .8em; }
body .tt-policy-page .tt-policy-copy h3 { font-family: Poppins, sans-serif; font-size: 19px; font-weight: 600; line-height: 1.45; margin: 1.8em 0 .6em; }
body .tt-policy-page .tt-policy-copy > :first-child { margin-top: 0; }
body .tt-policy-page .tt-policy-model-form { margin-top: 40px; padding: clamp(20px, 4vw, 32px); border: 1px solid var(--tt-line); border-radius: 8px; background: var(--tt-paper); }
body .tt-policy-page .tt-policy-model-form > h2 { margin-top: 0; }
body .tt-policy-page .tt-policy-model-form p:nth-of-type(n+2):nth-of-type(-n+7) { margin-bottom: 0 !important; }
body .tt-policy-page .tt-policy-model-form p:nth-of-type(7) { margin-bottom: 1.25em !important; }
body .tt-policy-page .tt-policy-blank { display: block; width: 100%; min-height: 28px; border-bottom: 1px solid var(--tt-muted); font-size: 0; margin: 10px 0 20px; }

/* Customer-facing FAQ and legal hub components. */
.tt-faq-list {
	display: grid;
	gap: 0.75rem;
}

.tt-faq-list details {
	padding: 0 1.25rem;
	border: 1px solid var(--tt-line);
	border-radius: var(--tt-radius-md);
	background: var(--tt-chalk);
}

.tt-faq-list summary {
	padding: 1.25rem 2rem 1.25rem 0;
	font-weight: 700;
	cursor: pointer;
}

.tt-faq-list p {
	padding: 0 0 1.25rem;
	margin: 0;
}

.tt-legal-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.75rem;
	margin-block: 1.5rem;
}

.tt-legal-grid > div,
.tt-legal-grid > a {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	padding: 1.25rem;
	border: 1px solid var(--tt-line);
	border-radius: var(--tt-radius-md);
	background: var(--tt-chalk);
}

.tt-legal-grid > a { color: var(--tt-ink); text-decoration: none; }
.tt-legal-grid > a:is(:hover, :focus-visible) { border-color: var(--tt-forest); background: var(--tt-paper); }
.tt-legal-grid > a strong { text-decoration: underline; text-underline-offset: 4px; }

.tt-legal-grid strong {
	font-family: var(--tt-display);
	font-size: 1.5rem;
	text-transform: uppercase;
}

.tt-legal-grid span,
.tt-legal-note {
	color: var(--tt-muted);
}

/* Keep the CookieYes revisit control out of the lower-left content path. */
.cky-btn-revisit-wrapper {
	right: 1rem !important;
	bottom: 1rem !important;
	left: auto !important;
}

@media (max-width: 64rem) {
	.tt-header-account {
		display: none;
	}

	.tt-header-menu .tt-mobile-menu-only {
		display: block !important;
	}
}

@media (min-width: 23rem) and (max-width: 47.99rem) {
	.elementor-widget-wc-archive-products ul.products,
	.elementor-widget-woocommerce-products ul.products,
	.woocommerce ul.products.elementor-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 1.5rem 0.85rem !important;
	}

	.elementor-widget-wc-archive-products .woocommerce-loop-product__title,
	.elementor-widget-woocommerce-products .woocommerce-loop-product__title,
	.woocommerce ul.products.elementor-grid .woocommerce-loop-product__title {
		font-size: 0.9rem !important;
	}

	.elementor-widget-wc-archive-products ul.products li.product .button,
	.elementor-widget-woocommerce-products ul.products li.product .button,
	.woocommerce ul.products.elementor-grid li.product .button {
		width: 100%;
		padding-inline: 0.6rem;
		font-size: 0.7rem;
	}
}

@media (max-width: 47.99rem) {
	.elementor-search-form--skin-full_screen .elementor-search-form__container {
		align-items: stretch;
		flex-direction: column;
		justify-content: center;
		width: 100% !important;
		padding-inline: 1rem !important;
		border: 0;
		background: rgba(10, 53, 45, 0.96);
		box-shadow: none;
	}

	.elementor-search-form--skin-full_screen .elementor-search-form__input {
		width: 100% !important;
		min-height: 4rem;
		flex: 0 0 4rem;
		padding-inline: 1rem !important;
		border-radius: var(--tt-radius-md) !important;
		background: var(--tt-paper) !important;
		font-size: clamp(1.3rem, 7vw, 2rem) !important;
	}

	.tt-search-submit {
		width: 100%;
		margin-top: 0.65rem;
		border-radius: var(--tt-radius-md);
		background: var(--tt-lime);
		color: var(--tt-ink);
	}

	.elementor-widget-woocommerce-cart .woocommerce table.cart tr.tt-cart-item--single > .product-quantity {
		display: none !important;
	}

	.single-product .flex-control-thumbs {
		display: flex !important;
		flex-wrap: nowrap !important;
		gap: 0.55rem;
		overflow-x: auto;
		padding-bottom: 0.35rem !important;
		scroll-snap-type: x proximity;
	}

	.single-product .flex-control-thumbs li {
		width: 4.5rem !important;
		min-width: 4.5rem;
		flex: 0 0 4.5rem !important;
		scroll-snap-align: start;
	}

	.single-product .elementor-widget-woocommerce-product-images {
		max-width: 30rem !important;
	}

	.tt-legal-grid {
		grid-template-columns: 1fr;
	}

	.cky-btn-revisit-wrapper {
		right: 0.75rem !important;
		bottom: 0.75rem !important;
		width: 2.75rem !important;
		height: 2.75rem !important;
	}
}

/* Keep the notice action compact even when WooCommerce reinserts it via AJAX. */
body.single-product .woocommerce-notices-wrapper .woocommerce-message > .button.wc-forward {
	display: inline-flex !important;
	grid-row: 1;
	grid-column: 2;
	align-items: center;
	justify-content: center;
	justify-self: end;
	width: max-content !important;
	max-width: 8.25rem !important;
	min-width: 0 !important;
	min-height: 2.4rem;
	flex: 0 0 auto !important;
	margin: 0 !important;
	padding: 0.65rem 1.35rem !important;
	border: 1px solid var(--tt-forest) !important;
	border-radius: 0 !important;
	background: var(--tt-forest) !important;
	clip-path: polygon(0.65rem 0, 100% 0, calc(100% - 0.65rem) 100%, 0 100%);
	color: var(--tt-paper) !important;
	font-size: 0.72rem !important;
	font-weight: 700;
	line-height: 1 !important;
	letter-spacing: 0.02em !important;
	text-transform: uppercase;
	white-space: nowrap;
}

body.single-product .woocommerce-notices-wrapper .woocommerce-message > .button.wc-forward:hover,
body.single-product .woocommerce-notices-wrapper .woocommerce-message > .button.wc-forward:focus-visible {
	border-color: var(--tt-lime) !important;
	background: var(--tt-lime) !important;
	color: var(--tt-ink) !important;
}

@media (max-width: 47.99rem) {
	body.single-product .woocommerce-notices-wrapper .woocommerce-message > .button.wc-forward {
		grid-row: 2;
		grid-column: 1;
		justify-self: start;
	}
}

/* The product template has a dedicated stock widget above the purchase form. */
.single-product .elementor-widget-woocommerce-product-add-to-cart .elementor-add-to-cart > .stock {
	display: none;
}

@media (prefers-reduced-motion: reduce) {
	.tt-home-ticker__track {
		animation: none;
	}
	.tt-home-ticker__group[aria-hidden="true"] {
		display: none;
	}
	.tt-home-ticker__group:first-child {
		min-width: 100%;
		width: 100%;
		flex-wrap: wrap;
		justify-content: center;
		white-space: normal;
	}
	.tt-product-badge.is-perfect::after {
		display: none;
	}
	.tt-perfect-image-shine {
		display: none;
	}
	*,
	*::before,
	*::after {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
	}
}
