/*
Theme Name: The Save Point
Theme URI: https://thesavepoint.co.uk
Description: A custom WooCommerce block theme for The Save Point.
Author: The Save Point
Template: twentytwentyfive
Version: 1.0.15
Text Domain: the-save-point
*/

:root {
	--tsp-ink: #161616;
	--tsp-black: #000000;
	--tsp-white: #ffffff;
	--tsp-panel: #ffffff;
	--tsp-muted: #656565;
	--tsp-line: #ded8cd;
	--tsp-yellow: #ffd84d;
	--tsp-blue: #2477ff;
	--tsp-red: #f04f3e;
	--tsp-green: #31a36b;
}

/* Events pages */
.tsp-events-page {
	color: var(--tsp-black);
	margin: 0 auto;
	max-width: 1280px;
	padding: clamp(20px, 3vw, 36px) 22px clamp(42px, 6vw, 80px);
}

.tsp-events-hero {
	background: #f4f4f4;
	border: 1px solid #dedede;
	border-radius: 8px;
	display: grid;
	gap: clamp(28px, 5vw, 72px);
	grid-template-columns: minmax(0, 1.05fr) minmax(300px, 0.95fr);
	margin-bottom: clamp(34px, 5vw, 62px);
	overflow: hidden;
}

.tsp-events-hero__copy {
	align-self: center;
	padding: clamp(30px, 5vw, 56px);
}

.tsp-events-kicker {
	color: var(--tsp-blue);
	font-size: 0.82rem;
	font-weight: 850;
	margin: 0 0 14px;
	text-transform: uppercase;
}

.tsp-events-hero h1 {
	font-size: clamp(2.5rem, 6vw, 5.2rem);
	letter-spacing: 0;
	line-height: 0.98;
	margin: 0;
}

.tsp-events-lede {
	color: #303846;
	font-size: clamp(1.05rem, 1.4vw, 1.25rem);
	line-height: 1.55;
	margin: 20px 0 0;
	max-width: 640px;
}

.tsp-events-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 28px;
}

.tsp-events-button {
	align-items: center;
	background: var(--tsp-blue);
	border: 1px solid var(--tsp-blue);
	border-radius: 6px;
	color: var(--tsp-white);
	display: inline-flex;
	font-weight: 850;
	justify-content: center;
	min-height: 48px;
	padding: 0 22px;
	text-decoration: none;
}

.tsp-events-button:hover {
	background: #0078b4;
	color: var(--tsp-white);
}

.tsp-events-button--secondary {
	background: transparent;
	border-color: var(--tsp-black);
	color: var(--tsp-black);
}

.tsp-events-button--secondary:hover {
	background: var(--tsp-black);
	color: var(--tsp-white);
}

.tsp-events-hero__panel {
	background: var(--tsp-black);
	border-left: 1px solid #dedede;
	color: var(--tsp-white);
	display: grid;
	gap: 18px;
	padding: clamp(28px, 5vw, 56px);
}

.tsp-events-stat {
	border-bottom: 1px solid rgba(255, 255, 255, 0.18);
	padding-bottom: 18px;
}

.tsp-events-stat:last-child {
	border-bottom: 0;
	padding-bottom: 0;
}

.tsp-events-stat span {
	color: var(--tsp-blue);
	display: block;
	font-size: 0.78rem;
	font-weight: 850;
	margin-bottom: 7px;
	text-transform: uppercase;
}

.tsp-events-stat strong {
	display: block;
	font-size: clamp(1.15rem, 1.8vw, 1.55rem);
	line-height: 1.2;
}

.tsp-events-section {
	margin-top: clamp(34px, 5vw, 60px);
}

.tsp-events-section h2 {
	font-size: clamp(2rem, 4vw, 3rem);
	line-height: 1.05;
	margin: 0 0 18px;
}

.tsp-events-card-grid {
	display: grid;
	gap: 16px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.tsp-events-card,
.tsp-events-info-card {
	background: #f7f7f7;
	border: 1px solid #dedede;
	border-radius: 8px;
	color: inherit;
	display: block;
	padding: clamp(22px, 3vw, 32px);
	text-decoration: none;
}

.tsp-events-card:hover {
	border-color: var(--tsp-blue);
}

.tsp-events-card h3,
.tsp-events-info-card h3 {
	font-size: clamp(1.35rem, 2.1vw, 1.8rem);
	line-height: 1.15;
	margin: 0 0 12px;
}

.tsp-events-card p,
.tsp-events-info-card p,
.tsp-events-list {
	color: #596270;
	line-height: 1.55;
	margin: 0;
}

.tsp-events-card__meta {
	color: var(--tsp-blue);
	display: block;
	font-size: 0.82rem;
	font-weight: 850;
	margin-bottom: 14px;
	text-transform: uppercase;
}

.tsp-events-info-grid {
	display: grid;
	gap: 16px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.tsp-events-list {
	padding-left: 18px;
}

.tsp-events-list li + li {
	margin-top: 8px;
}

.tsp-events-band {
	align-items: center;
	background: var(--tsp-black);
	border-radius: 8px;
	color: var(--tsp-white);
	display: flex;
	gap: 20px;
	justify-content: space-between;
	padding: clamp(24px, 4vw, 38px);
}

.tsp-events-band h2 {
	color: var(--tsp-white);
	margin: 0;
}

.tsp-events-band p {
	color: #d8d8d8;
	margin: 8px 0 0;
}

@media (max-width: 860px) {
	.tsp-events-hero,
	.tsp-events-card-grid,
	.tsp-events-info-grid {
		grid-template-columns: 1fr;
	}

	.tsp-events-hero__panel {
		border-left: 0;
	}

	.tsp-events-band {
		align-items: flex-start;
		flex-direction: column;
	}
}

@media (max-width: 560px) {
	.tsp-events-page {
		padding-left: 16px;
		padding-right: 16px;
	}

	.tsp-events-hero__copy,
	.tsp-events-hero__panel {
		padding: 24px;
	}

	.tsp-events-button {
		width: 100%;
	}
}

/* Policy and help pages */
.tsp-policy-page {
	color: var(--tsp-black);
	margin: 0 auto;
	max-width: 1280px;
	padding: clamp(32px, 5vw, 64px) 22px clamp(42px, 6vw, 80px);
}

.tsp-policy-hero {
	background: #f4f4f4;
	border: 1px solid #dedede;
	border-radius: 8px;
	display: grid;
	gap: clamp(28px, 5vw, 72px);
	grid-template-columns: minmax(0, 1.05fr) minmax(300px, 0.95fr);
	margin-bottom: clamp(34px, 5vw, 62px);
	overflow: hidden;
}

.tsp-policy-hero__copy {
	align-self: center;
	padding: clamp(30px, 5vw, 56px);
}

.tsp-policy-kicker {
	color: var(--tsp-blue);
	font-size: 0.82rem;
	font-weight: 850;
	margin: 0 0 14px;
	text-transform: uppercase;
}

.tsp-policy-hero h1 {
	font-size: clamp(2.5rem, 6vw, 5.2rem);
	letter-spacing: 0;
	line-height: 0.98;
	margin: 0;
}

.tsp-policy-lede {
	color: #303846;
	font-size: clamp(1.05rem, 1.4vw, 1.25rem);
	line-height: 1.55;
	margin: 20px 0 0;
	max-width: 700px;
}

.tsp-policy-hero__panel {
	background: var(--tsp-black);
	border-left: 1px solid #dedede;
	color: var(--tsp-white);
	display: grid;
	gap: 18px;
	padding: clamp(28px, 5vw, 56px);
}

.tsp-policy-stat {
	border-bottom: 1px solid rgba(255, 255, 255, 0.18);
	padding-bottom: 18px;
}

.tsp-policy-stat:last-child {
	border-bottom: 0;
	padding-bottom: 0;
}

.tsp-policy-stat span {
	color: var(--tsp-blue);
	display: block;
	font-size: 0.78rem;
	font-weight: 850;
	margin-bottom: 7px;
	text-transform: uppercase;
}

.tsp-policy-stat strong {
	display: block;
	font-size: clamp(1.15rem, 1.8vw, 1.55rem);
	line-height: 1.2;
}

.tsp-policy-metrics,
.tsp-policy-grid {
	display: grid;
	gap: 16px;
}

.tsp-policy-metrics {
	grid-template-columns: repeat(4, minmax(0, 1fr));
	margin-bottom: clamp(34px, 5vw, 60px);
}

.tsp-policy-metric,
.tsp-policy-card {
	background: #f7f7f7;
	border: 1px solid #dedede;
	border-radius: 8px;
	padding: clamp(20px, 3vw, 30px);
}

.tsp-policy-metric strong,
.tsp-policy-card h2,
.tsp-policy-card h3 {
	color: var(--tsp-black);
	line-height: 1.15;
	margin: 0 0 12px;
}

.tsp-policy-metric span {
	color: var(--tsp-blue);
	display: block;
	font-size: clamp(1.8rem, 4vw, 2.8rem);
	font-weight: 900;
	line-height: 1;
	margin-bottom: 10px;
}

.tsp-policy-metric p,
.tsp-policy-card p,
.tsp-policy-card li {
	color: #596270;
	line-height: 1.58;
	margin-top: 0;
}

.tsp-policy-card p:last-child,
.tsp-policy-card li:last-child {
	margin-bottom: 0;
}

.tsp-policy-grid {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.tsp-policy-card h2 {
	font-size: clamp(1.55rem, 2.4vw, 2.1rem);
}

.tsp-policy-card h3 {
	font-size: clamp(1.25rem, 1.8vw, 1.55rem);
}

.tsp-policy-card ul,
.tsp-policy-card ol {
	margin: 0;
	padding-left: 22px;
}

.tsp-policy-card--wide {
	grid-column: 1 / -1;
}

.tsp-policy-band {
	align-items: center;
	background: var(--tsp-black);
	border-radius: 8px;
	color: var(--tsp-white);
	display: flex;
	gap: 20px;
	justify-content: space-between;
	margin-top: clamp(34px, 5vw, 60px);
	padding: clamp(24px, 4vw, 38px);
}

.tsp-policy-band h2 {
	color: var(--tsp-white);
	font-size: clamp(1.8rem, 3.5vw, 3rem);
	line-height: 1.05;
	margin: 0;
}

.tsp-policy-band p {
	color: #d8d8d8;
	margin: 8px 0 0;
}

.tsp-policy-button {
	align-items: center;
	background: var(--tsp-blue);
	border: 1px solid var(--tsp-blue);
	border-radius: 6px;
	color: var(--tsp-white);
	display: inline-flex;
	font-weight: 850;
	justify-content: center;
	min-height: 48px;
	padding: 0 22px;
	text-decoration: none;
	white-space: nowrap;
}

.tsp-policy-button:hover {
	background: #0078b4;
	color: var(--tsp-white);
}

.tsp-policy-note {
	color: #767676;
	font-size: 0.9rem;
	margin: 18px 0 0;
}

@media (max-width: 860px) {
	.tsp-policy-hero,
	.tsp-policy-metrics,
	.tsp-policy-grid {
		grid-template-columns: 1fr;
	}

	.tsp-policy-hero__panel {
		border-left: 0;
	}

	.tsp-policy-card--wide {
		grid-column: auto;
	}

	.tsp-policy-band {
		align-items: flex-start;
		flex-direction: column;
	}
}

@media (max-width: 560px) {
	.tsp-policy-page {
		padding-left: 16px;
		padding-right: 16px;
	}

	.tsp-policy-hero__copy,
	.tsp-policy-hero__panel {
		padding: 24px;
	}

	.tsp-policy-button {
		width: 100%;
	}
}

body {
	background: #fbfaf6;
	color: var(--tsp-ink);
	margin: 0;
}

html {
	margin: 0;
}

body.admin-bar {
	margin-top: 0;
}

.wp-site-blocks,
.wp-site-blocks > .wp-block-template-part:first-child,
.wp-site-blocks > header:first-child,
.tsp-site-header {
	margin-block-start: 0 !important;
	margin-top: 0 !important;
}

a {
	text-underline-offset: 0.16em;
}

.wp-site-blocks {
	min-height: 100vh;
}

.wp-block-site-title a,
.wp-block-navigation a {
	text-decoration: none;
}

.wp-block-site-title a {
	font-weight: 800;
	letter-spacing: 0;
}

.wp-block-navigation .wp-block-navigation-item__content:hover,
.wp-block-navigation .current-menu-item > .wp-block-navigation-item__content {
	color: var(--tsp-blue);
}

.wp-block-button__link,
button,
input[type="button"],
input[type="submit"],
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce #payment #place_order {
	background: var(--tsp-blue);
	border-color: var(--tsp-blue);
	border-radius: 6px;
	box-shadow: none;
	color: var(--tsp-white);
	font-weight: 750;
	letter-spacing: 0;
	transition: transform 120ms ease, box-shadow 120ms ease, background-color 120ms ease;
}

.wp-block-button__link:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce #payment #place_order:hover {
	background: #0078b4;
	border-color: #0078b4;
	color: var(--tsp-white);
	transform: translateY(-1px);
	box-shadow: 0 8px 18px rgba(22, 22, 22, 0.12);
}

.woocommerce ul.products {
	align-items: stretch;
}

.woocommerce ul.products li.product,
.wc-block-grid__product {
	background: var(--tsp-panel);
	border: 1px solid var(--tsp-line);
	border-radius: 8px;
	padding: 14px;
	transition: border-color 120ms ease, box-shadow 120ms ease, transform 120ms ease;
}

.woocommerce ul.products li.product:hover,
.wc-block-grid__product:hover {
	border-color: color-mix(in srgb, var(--tsp-blue) 42%, var(--tsp-line));
	box-shadow: 0 12px 26px rgba(22, 22, 22, 0.10);
	transform: translateY(-2px);
}

.woocommerce ul.products li.product a img,
.wc-block-grid__product-image img,
.woocommerce div.product div.images img {
	border-radius: 6px;
	background: #f2f0ea;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title,
.wc-block-grid__product-title {
	color: var(--tsp-black);
	font-size: 1rem;
	font-weight: 750;
	line-height: 1.25;
}

.woocommerce ul.products li.product .woocommerce-LoopProduct-link,
.woocommerce ul.products li.product .woocommerce-loop-product__link,
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product .woocommerce-loop-product__title a,
.wc-block-grid__product-title,
.wc-block-grid__product-title a {
	color: var(--tsp-black) !important;
	text-decoration: none;
}

.woocommerce ul.products li.product .woocommerce-LoopProduct-link:hover .woocommerce-loop-product__title,
.woocommerce ul.products li.product .woocommerce-loop-product__link:hover .woocommerce-loop-product__title,
.woocommerce ul.products li.product .woocommerce-loop-product__title a:hover,
.wc-block-grid__product-title a:hover {
	color: var(--tsp-blue) !important;
}

.woocommerce span.onsale,
.wc-block-grid__product-onsale {
	background: var(--tsp-black);
	border: 0;
	border-radius: 999px;
	color: #fff;
	font-weight: 800;
	letter-spacing: 0;
	min-height: auto;
	padding: 0.35rem 0.6rem;
}

.woocommerce div.product p.price,
.woocommerce div.product span.price,
.woocommerce ul.products li.product .price,
.wc-block-grid__product-price {
	color: var(--tsp-green);
	font-weight: 800;
}

.woocommerce table.shop_table,
.woocommerce-cart .cart-collaterals .cart_totals,
.woocommerce-checkout #payment,
.woocommerce form.checkout_coupon,
.woocommerce form.login,
.woocommerce form.register {
	background: var(--tsp-panel);
	border: 1px solid var(--tsp-line);
	border-radius: 8px;
}

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	border-radius: 8px;
}

/* Keep imported description/brand images from expanding cart and checkout rows. */
.wc-block-cart-item__description img,
.wc-block-components-product-metadata img,
.wc-block-components-order-summary-item__description img,
.wc-block-mini-cart-item__description img {
	display: none !important;
}

/* WooCommerce account area */
body.woocommerce-account .wp-site-blocks > main,
body.woocommerce-account .woocommerce {
	background: var(--tsp-white);
}

body.woocommerce-account .wp-block-post-title,
body.woocommerce-account main > h1 {
	box-sizing: border-box;
	font-size: clamp(2.5rem, 5vw, 4.6rem);
	line-height: 0.98;
	margin-bottom: 0;
	margin-left: auto;
	margin-right: auto;
	max-width: min(1180px, calc(100vw - 48px));
	padding-top: clamp(42px, 7vw, 78px);
}

body.woocommerce-account .entry-content > .woocommerce,
body.woocommerce-account .wp-block-post-content > .woocommerce,
body.woocommerce-account main > .woocommerce {
	box-sizing: border-box;
	margin-left: auto;
	margin-right: auto;
	max-width: min(1180px, calc(100vw - 48px));
	padding: clamp(44px, 7vw, 86px) 0;
}

body.woocommerce-account .woocommerce h2,
body.woocommerce-account .woocommerce h3,
body.woocommerce-account .woocommerce legend {
	letter-spacing: 0;
	line-height: 1.05;
}

body.woocommerce-account .woocommerce h2 {
	font-size: clamp(2rem, 4vw, 3.6rem);
	margin: 0 0 24px;
}

body.woocommerce-account .woocommerce form.login,
body.woocommerce-account .woocommerce form.register,
body.woocommerce-account .woocommerce-EditAccountForm,
body.woocommerce-account .woocommerce-address-fields,
body.woocommerce-account .woocommerce-MyAccount-content,
body.woocommerce-account .woocommerce-MyAccount-navigation {
	border: 1px solid var(--tsp-line);
	border-radius: 8px;
	box-sizing: border-box;
}

body.woocommerce-account .woocommerce form.login,
body.woocommerce-account .woocommerce form.register {
	box-shadow: 0 16px 36px rgba(22, 22, 22, 0.08);
	margin: 0;
	max-width: 720px;
	padding: clamp(22px, 4vw, 34px);
}

body.woocommerce-account .woocommerce form .form-row {
	margin-bottom: 16px;
	padding: 0;
}

body.woocommerce-account .woocommerce form label {
	display: block;
	font-size: 0.88rem;
	font-weight: 850;
	letter-spacing: 0;
	margin-bottom: 8px;
	text-transform: uppercase;
}

body.woocommerce-account .woocommerce form .required {
	color: var(--tsp-blue);
}

body.woocommerce-account .woocommerce form input.input-text,
body.woocommerce-account .woocommerce form textarea,
body.woocommerce-account .woocommerce form select {
	background: #f7f7f7;
	border: 1px solid #cfcfcf;
	border-radius: 6px;
	box-sizing: border-box;
	font-size: 1rem;
	min-height: 50px;
	padding: 0.8rem 0.9rem;
	width: 100%;
}

body.woocommerce-account .woocommerce form input.input-text:focus,
body.woocommerce-account .woocommerce form textarea:focus,
body.woocommerce-account .woocommerce form select:focus {
	background: var(--tsp-white);
	border-color: var(--tsp-blue);
	box-shadow: 0 0 0 3px rgba(0, 136, 204, 0.16);
	outline: 0;
}

body.woocommerce-account .woocommerce button.button,
body.woocommerce-account .woocommerce a.button {
	background: var(--tsp-blue);
	border-color: var(--tsp-blue);
	color: var(--tsp-white);
	display: inline-flex;
	justify-content: center;
	min-width: 140px;
	padding: 0.9rem 1.2rem;
}

body.woocommerce-account .woocommerce button.button:hover,
body.woocommerce-account .woocommerce a.button:hover {
	background: #0078b4;
	border-color: #0078b4;
	color: var(--tsp-white);
}

body.woocommerce-account .woocommerce-LostPassword {
	margin: 18px 0 0;
}

body.woocommerce-account .woocommerce-form-login__rememberme {
	align-items: center;
	display: inline-flex !important;
	gap: 8px;
	margin-left: 14px;
	text-transform: none;
}

body.woocommerce-account .woocommerce-form-login__rememberme input {
	accent-color: var(--tsp-blue);
}

body.woocommerce-account .u-columns.col2-set {
	display: grid;
	gap: 28px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

body.woocommerce-account .u-columns.col2-set::before,
body.woocommerce-account .u-columns.col2-set::after {
	content: none;
}

body.woocommerce-account .u-columns.col2-set .u-column1,
body.woocommerce-account .u-columns.col2-set .u-column2 {
	float: none;
	width: auto;
}

body.woocommerce-account .woocommerce-MyAccount-navigation {
	background: var(--tsp-white);
	border: 0;
	float: none;
	padding: 0;
	width: auto;
}

body.woocommerce-account .woocommerce-MyAccount-navigation ul {
	align-items: stretch;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	list-style: none;
	margin: 0 0 24px;
	padding: 0;
}

body.woocommerce-account .woocommerce-MyAccount-navigation li {
	display: flex;
	margin: 0 !important;
	padding: 0 !important;
}

body.woocommerce-account .woocommerce-MyAccount-navigation li a {
	align-items: center;
	background: #f4f4f4;
	border: 1px solid var(--tsp-line);
	border-radius: 6px;
	box-sizing: border-box;
	color: var(--tsp-black);
	display: inline-flex;
	font-size: 0.94rem;
	font-weight: 800;
	height: 44px;
	line-height: 1;
	margin: 0 !important;
	padding: 0 0.95rem;
	text-decoration: none !important;
	vertical-align: top;
}

body.woocommerce-account .woocommerce-MyAccount-navigation li a:hover,
body.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a {
	background: var(--tsp-blue);
	color: var(--tsp-white);
}

body.woocommerce-account .woocommerce-MyAccount-content {
	border: 0;
	background: var(--tsp-white);
	float: none;
	padding: 0;
	width: 100%;
}

body.woocommerce-account .woocommerce:has(.woocommerce-MyAccount-navigation) {
	display: block;
}

body.woocommerce-account .woocommerce-MyAccount-content > p {
	background: #f4f4f4;
	border: 1px solid var(--tsp-line);
	border-radius: 8px;
	color: #333;
	font-size: 1rem;
	line-height: 1.55;
	margin: 0;
	padding: 18px 20px;
}

body.woocommerce-account .woocommerce-MyAccount-content > p + p {
	border-top: 0;
	border-radius: 0 0 8px 8px;
	padding-top: 0;
}

body.woocommerce-account .woocommerce-MyAccount-content > p:first-of-type {
	border-radius: 8px 8px 0 0;
	border-bottom: 0;
	padding-bottom: 10px;
}

.tsp-account-actions-title {
	font-size: clamp(1.35rem, 2.4vw, 2rem) !important;
	margin: 28px 0 14px !important;
}

.tsp-account-cards {
	display: grid;
	gap: 14px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin-bottom: 24px;
}

.tsp-account-card {
	background: var(--tsp-white);
	border: 1px solid var(--tsp-line);
	border-top: 4px solid var(--tsp-blue);
	border-radius: 8px;
	color: var(--tsp-ink);
	display: grid;
	gap: 8px;
	min-height: 120px;
	padding: 16px;
	text-decoration: none;
}

.tsp-account-card:hover {
	border-color: var(--tsp-blue);
	box-shadow: 0 10px 24px rgba(22, 22, 22, 0.08);
	transform: translateY(-1px);
}

.tsp-account-card strong {
	font-size: 1.05rem;
}

.tsp-account-card span {
	color: var(--tsp-muted);
	font-size: 0.94rem;
	line-height: 1.45;
}

body.woocommerce-account .woocommerce table.shop_table {
	border-collapse: separate;
	border-spacing: 0;
	overflow: hidden;
}

body.woocommerce-account .woocommerce table.shop_table th {
	background: #f4f4f4;
	font-size: 0.82rem;
	font-weight: 900;
	text-transform: uppercase;
}

body.woocommerce-account .woocommerce-Address {
	background: #f7f7f7;
	border: 1px solid var(--tsp-line);
	border-radius: 8px;
	box-sizing: border-box;
	padding: 18px;
}

body.woocommerce-account .woocommerce-Address-title {
	align-items: center;
	display: flex;
	gap: 12px;
	justify-content: space-between;
}

body.woocommerce-account .woocommerce-Address-title h3 {
	margin: 0;
}

@media (max-width: 900px) {
	body.woocommerce-account .u-columns.col2-set,
	.tsp-account-cards {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 560px) {
	body.woocommerce-account .entry-content > .woocommerce,
	body.woocommerce-account .wp-block-post-content > .woocommerce,
	body.woocommerce-account main > .woocommerce {
		max-width: calc(100vw - 32px);
		padding: 32px 0;
	}

	body.woocommerce-account .woocommerce-MyAccount-navigation ul {
		display: grid;
		grid-template-columns: 1fr;
	}

	body.woocommerce-account .woocommerce-form-login__rememberme {
		margin: 14px 0 0;
		width: 100%;
	}
}

/* WooCommerce single product page */
body.single-product .wp-site-blocks > main,
body.single-product .woocommerce {
	background: var(--tsp-white);
}

body.single-product .woocommerce-notices-wrapper,
body.single-product .woocommerce div.product,
body.single-product .woocommerce-breadcrumb {
	margin-left: auto;
	margin-right: auto;
	max-width: min(1240px, calc(100vw - 48px));
}

body.single-product .woocommerce-breadcrumb {
	color: var(--tsp-muted);
	font-size: 0.9rem;
	margin-bottom: 18px;
	margin-top: 32px;
}

body.single-product .woocommerce-breadcrumb a {
	color: var(--tsp-blue);
	font-weight: 700;
	text-decoration: none;
}

.woocommerce div.product {
	clear: both;
}

body.single-product .woocommerce div.product div.images,
body.single-product .woocommerce div.product div.summary,
body.single-product .woocommerce div.product .entry-summary {
	margin-bottom: 34px;
}

body.single-product .woocommerce div.product div.images {
	background: var(--tsp-light-grey);
	border: 1px solid var(--tsp-line);
	border-radius: 8px;
	padding: clamp(10px, 2vw, 20px);
}

body.single-product .woocommerce div.product div.images .woocommerce-product-gallery__image img {
	display: block;
	max-height: 620px;
	object-fit: contain;
	width: 100%;
}

body.single-product .woocommerce div.product div.images .flex-control-thumbs {
	display: grid;
	gap: 10px;
	grid-template-columns: repeat(auto-fill, minmax(72px, 1fr));
	margin-top: 16px;
	max-height: 188px;
	overflow-y: auto;
	padding: 0 6px 2px 0;
}

body.single-product .woocommerce div.product div.images .flex-control-thumbs::before,
body.single-product .woocommerce div.product div.images .flex-control-thumbs::after {
	content: none;
}

body.single-product .woocommerce div.product div.images .flex-control-thumbs li {
	float: none;
	margin: 0;
	width: auto;
}

body.single-product .woocommerce div.product div.images .flex-control-thumbs li img {
	aspect-ratio: 1 / 1;
	background: var(--tsp-white);
	border: 1px solid var(--tsp-line);
	border-radius: 6px;
	box-sizing: border-box;
	display: block;
	height: 100%;
	object-fit: contain;
	opacity: 0.64;
	padding: 4px;
	width: 100%;
}

body.single-product .woocommerce div.product div.images .flex-control-thumbs li img.flex-active,
body.single-product .woocommerce div.product div.images .flex-control-thumbs li img:hover {
	border-color: var(--tsp-blue);
	opacity: 1;
}

body.single-product .woocommerce div.product div.summary,
body.single-product .woocommerce div.product .entry-summary {
	background: var(--tsp-panel);
	border: 1px solid var(--tsp-line);
	border-top: 4px solid var(--tsp-blue);
	border-radius: 8px;
	display: flex;
	flex-direction: column;
	padding: clamp(20px, 3vw, 34px);
}

body.single-product .woocommerce div.product .product_title {
	font-size: clamp(2rem, 4vw, 3.1rem);
	letter-spacing: 0;
	line-height: 1.05;
	margin-bottom: 14px;
	order: 1;
}

body.single-product .wp-block-column:has(.tsp-product-support) {
	display: flex;
	flex-direction: column;
}

body.single-product .wp-block-column:has(.tsp-product-support) > .wp-block-post-title {
	order: 1;
}

body.single-product .wp-block-column:has(.tsp-product-support) > .wp-block-post-excerpt {
	color: var(--tsp-muted);
	font-size: 1rem;
	line-height: 1.65;
	order: 2;
}

body.single-product .wp-block-column:has(.tsp-product-support) > .wp-block-woocommerce-product-price {
	order: 3;
}

body.single-product .wp-block-column:has(.tsp-product-support) > p.price {
	display: none;
}

body.single-product .wp-block-column:has(.tsp-product-support) > .wp-block-add-to-cart-form {
	order: 4;
}

body.single-product .wp-block-column:has(.tsp-product-support) > .wp-block-woocommerce-product-meta {
	order: 6;
}

body.single-product .woocommerce div.product .summary p.price,
body.single-product .woocommerce div.product .summary span.price,
body.single-product .woocommerce div.product .entry-summary p.price,
body.single-product .woocommerce div.product .entry-summary span.price,
body.single-product .wp-block-column:has(.tsp-product-support) > .wp-block-woocommerce-product-price {
	align-items: center;
	background: #f4f4f4;
	border: 1px solid var(--tsp-line);
	border-radius: 8px;
	box-sizing: border-box;
	color: var(--tsp-blue);
	display: inline-flex;
	font-size: clamp(1.35rem, 2.2vw, 1.8rem);
	justify-content: space-between;
	margin: 18px 0 10px;
	max-width: 360px;
	order: 3;
	padding: 12px 16px;
}

body.single-product .woocommerce div.product .summary p.price::before,
body.single-product .woocommerce div.product .entry-summary p.price::before,
body.single-product .wp-block-column:has(.tsp-product-support) > .wp-block-woocommerce-product-price::before {
	color: var(--tsp-black);
	content: "Price";
	font-size: 0.78rem;
	font-weight: 900;
	margin-right: 28px;
	text-transform: uppercase;
}

body.single-product .wp-block-column:has(.tsp-product-support) > .wp-block-woocommerce-product-price .wc-block-components-product-price {
	color: inherit;
	font: inherit;
	font-weight: 900;
}

body.single-product .woocommerce div.product .woocommerce-product-details__short-description {
	color: var(--tsp-muted);
	font-size: 1rem;
	line-height: 1.65;
	order: 2;
}

body.single-product .woocommerce div.product form.cart,
body.single-product .wp-block-add-to-cart-form form.cart {
	align-items: stretch;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-bottom: 16px;
	margin-top: 0;
	order: 4;
}

body.single-product .woocommerce div.product form.cart table.variations,
body.single-product .wp-block-add-to-cart-form form.cart table.variations {
	flex: 0 0 100%;
	margin-bottom: 16px;
	order: 1;
}

body.single-product .woocommerce div.product form.cart .single_variation_wrap,
body.single-product .wp-block-add-to-cart-form form.cart .single_variation_wrap {
	display: contents;
}

body.single-product .woocommerce div.product form.cart .woocommerce-variation,
body.single-product .wp-block-add-to-cart-form form.cart .woocommerce-variation {
	flex: 0 0 100%;
	order: 2;
}

body.single-product .woocommerce div.product form.cart .woocommerce-variation-add-to-cart,
body.single-product .wp-block-add-to-cart-form form.cart .woocommerce-variation-add-to-cart {
	align-items: stretch;
	display: flex;
	flex: 0 0 100%;
	gap: 10px;
	order: 3;
}

body.single-product .woocommerce div.product form.cart div.quantity,
body.single-product .wp-block-add-to-cart-form form.cart div.quantity {
	margin: 0;
}

body.single-product .woocommerce div.product form.cart .qty,
body.single-product .wp-block-add-to-cart-form form.cart .qty {
	border-color: var(--tsp-line);
	border-radius: 6px;
	min-height: 48px;
	width: 76px;
}

body.single-product .woocommerce div.product form.cart .button,
body.single-product .wp-block-add-to-cart-form form.cart .button {
	background: var(--tsp-blue);
	border-color: var(--tsp-blue);
	border-radius: 6px;
	color: var(--tsp-white);
	flex: 1 1 220px;
	min-height: 48px;
	text-transform: uppercase;
}

body.single-product .woocommerce div.product form.cart .button.disabled,
body.single-product .woocommerce div.product form.cart .button:disabled,
body.single-product .wp-block-add-to-cart-form form.cart .button.disabled,
body.single-product .wp-block-add-to-cart-form form.cart .button:disabled,
body.single-product button.single_add_to_cart_button.disabled,
body.single-product button.single_add_to_cart_button:disabled {
	background: #8f8f8f !important;
	background-color: #8f8f8f !important;
	cursor: not-allowed;
	opacity: 1;
}

body.single-product .woocommerce div.product .summary .alert_wrapper,
body.single-product .woocommerce div.product .entry-summary .alert_wrapper,
body.single-product .wp-block-column:has(.alert_wrapper) > .alert_wrapper {
	align-items: stretch;
	background: #f4f4f4;
	border: 1px solid var(--tsp-line);
	border-left: 4px solid var(--tsp-blue);
	border-radius: 8px;
	box-sizing: border-box;
	clear: both;
	display: grid;
	float: none;
	gap: 10px;
	margin: 18px 0 16px;
	max-width: 520px;
	order: 5;
	padding: 16px;
	position: static;
	width: 100%;
}

body.single-product .woocommerce div.product .summary .alert_wrapper::before,
body.single-product .woocommerce div.product .entry-summary .alert_wrapper::before,
body.single-product .wp-block-column:has(.alert_wrapper) > .alert_wrapper::before {
	color: var(--tsp-black);
	content: "Want to know when it is back?";
	display: block;
	font-size: 1rem;
	font-weight: 900;
	line-height: 1.3;
}

body.single-product .woocommerce div.product .summary .alert_wrapper input[type="email"],
body.single-product .woocommerce div.product .entry-summary .alert_wrapper input[type="email"],
body.single-product .wp-block-column:has(.alert_wrapper) > .alert_wrapper input[type="email"],
body.single-product .woocommerce div.product .summary .alert_wrapper input[type="submit"],
body.single-product .woocommerce div.product .entry-summary .alert_wrapper input[type="submit"],
body.single-product .wp-block-column:has(.alert_wrapper) > .alert_wrapper input[type="submit"] {
	box-sizing: border-box;
	height: auto;
	line-height: 1.2;
	margin: 0 !important;
	max-width: none;
	min-height: 48px;
	width: 100%;
}

body.single-product .woocommerce div.product .summary .alert_wrapper input[type="email"],
body.single-product .woocommerce div.product .entry-summary .alert_wrapper input[type="email"],
body.single-product .wp-block-column:has(.alert_wrapper) > .alert_wrapper input[type="email"] {
	background: var(--tsp-white);
	border: 1px solid var(--tsp-line);
	border-radius: 6px;
	padding: 12px 14px;
}

body.single-product .woocommerce div.product .summary .alert_wrapper input[type="submit"],
body.single-product .woocommerce div.product .entry-summary .alert_wrapper input[type="submit"],
body.single-product .wp-block-column:has(.alert_wrapper) > .alert_wrapper input[type="submit"] {
	background: var(--tsp-black);
	border: 0;
	border-radius: 6px;
	color: var(--tsp-white);
	cursor: pointer;
	font-weight: 900;
	padding: 12px 16px;
	text-transform: none;
}

body.single-product .woocommerce div.product .summary .alert_wrapper input[type="submit"]:hover,
body.single-product .woocommerce div.product .summary .alert_wrapper input[type="submit"]:focus,
body.single-product .woocommerce div.product .entry-summary .alert_wrapper input[type="submit"]:hover,
body.single-product .woocommerce div.product .entry-summary .alert_wrapper input[type="submit"]:focus,
body.single-product .wp-block-column:has(.alert_wrapper) > .alert_wrapper input[type="submit"]:hover,
body.single-product .wp-block-column:has(.alert_wrapper) > .alert_wrapper input[type="submit"]:focus {
	background: var(--tsp-blue);
}

body.single-product .woocommerce div.product .summary .instock_message,
body.single-product .woocommerce div.product .entry-summary .instock_message,
body.single-product .wp-block-column:has(.instock_message) > .instock_message {
	background: #f4f4f4;
	border: 1px solid var(--tsp-line);
	border-left: 4px solid var(--tsp-blue);
	border-radius: 8px;
	box-sizing: border-box;
	float: none;
	margin: 16px 0;
	max-width: 520px;
	order: 5;
	padding: 14px 16px;
	width: 100%;
}

body.single-product .woocommerce div.product .summary .stock,
body.single-product .woocommerce div.product .entry-summary .stock {
	order: 4;
}

body.single-product .wp-block-column:has(.alert_wrapper) > .wp-block-add-to-cart-form {
	order: 4;
}

body.single-product .wp-block-column:has(.alert_wrapper) > .tsp-product-support {
	order: 6;
}

body.single-product .wp-block-column:has(.alert_wrapper) > .wp-block-woocommerce-product-meta {
	order: 7;
}

body.single-product .woocommerce div.product .product_meta {
	border-top: 1px solid var(--tsp-line);
	color: var(--tsp-muted);
	display: grid;
	font-size: 0.92rem;
	gap: 8px;
	margin-top: 20px;
	order: 6;
	padding-top: 18px;
}

body.single-product .woocommerce div.product .product_meta a {
	color: var(--tsp-blue);
	font-weight: 700;
	text-decoration: none;
}

.tsp-product-support {
	background: linear-gradient(180deg, #ffffff 0%, #f4f4f4 100%);
	border: 1px solid var(--tsp-line);
	border-radius: 8px;
	display: grid;
	gap: 0;
	margin-top: 18px;
	overflow: hidden;
	order: 5;
}

.tsp-product-support > div {
	background: var(--tsp-panel);
	border-bottom: 1px solid var(--tsp-line);
	display: flex;
	gap: 12px;
	padding: 16px;
}

.tsp-product-support > div:last-child {
	border-bottom: 0;
}

.tsp-product-support__icon {
	align-items: center;
	background: rgba(0, 136, 204, 0.10);
	border: 1px solid rgba(0, 136, 204, 0.22);
	border-radius: 6px;
	color: var(--tsp-blue);
	display: inline-flex;
	flex: 0 0 38px;
	height: 38px;
	justify-content: center;
	width: 38px;
}

.tsp-product-support__icon svg {
	fill: none;
	height: 21px;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.9;
	width: 21px;
}

.tsp-product-support strong {
	color: var(--tsp-black);
	display: block;
	font-size: 0.9rem;
	line-height: 1.25;
}

.tsp-product-support small {
	color: var(--tsp-muted);
	display: block;
	font-size: 0.86rem;
	font-weight: 400;
	line-height: 1.35;
	margin-top: 3px;
}

body.single-product .woocommerce div.product .woocommerce-tabs {
	border-top: 1px solid var(--tsp-line);
	clear: both;
	margin-left: auto;
	margin-right: auto;
	max-width: min(1240px, calc(100vw - 48px));
	padding-top: 34px;
}

body.single-product .woocommerce div.product .woocommerce-tabs ul.tabs {
	margin-bottom: 0;
	padding-left: 0;
}

body.single-product .woocommerce div.product .woocommerce-tabs ul.tabs::before,
body.single-product .woocommerce div.product .woocommerce-tabs ul.tabs li::after,
body.single-product .woocommerce div.product .woocommerce-tabs ul.tabs li::before {
	content: none;
}

body.single-product .woocommerce div.product .woocommerce-tabs ul.tabs li {
	background: var(--tsp-light-grey);
	border: 1px solid var(--tsp-line);
	border-radius: 6px 6px 0 0;
	margin: 0 6px 0 0;
	padding: 0;
}

body.single-product .woocommerce div.product .woocommerce-tabs ul.tabs li.active {
	background: var(--tsp-panel);
	border-bottom-color: var(--tsp-panel);
}

body.single-product .woocommerce div.product .woocommerce-tabs ul.tabs li a {
	color: var(--tsp-black);
	font-weight: 800;
	padding: 11px 18px;
}

body.single-product .woocommerce div.product .woocommerce-tabs .panel {
	background: var(--tsp-panel);
	border: 1px solid var(--tsp-line);
	border-radius: 0 8px 8px 8px;
	margin: 0;
	padding: clamp(20px, 3vw, 32px);
}

.tsp-related-products {
	border-top: 1px solid var(--tsp-line);
	clear: both;
	margin: 50px auto 70px;
	max-width: min(1240px, calc(100vw - 48px));
	padding-top: 34px;
}

body.single-product .related.products:not(.tsp-related-products),
body.single-product section.related:not(.tsp-related-products),
body.single-product .wp-block-woocommerce-related-products:not(.tsp-related-products),
body.single-product .wp-block-woocommerce-product-related-products:not(.tsp-related-products) {
	display: none !important;
}

.tsp-related-products__heading {
	align-items: end;
	display: flex;
	gap: 18px;
	justify-content: space-between;
	margin-bottom: 20px;
}

.tsp-related-products__heading p {
	color: var(--tsp-blue);
	font-size: 0.82rem;
	font-weight: 900;
	letter-spacing: 0;
	margin: 0;
	text-transform: uppercase;
}

.tsp-related-products__heading h2 {
	font-size: clamp(1.7rem, 3vw, 2.4rem);
	line-height: 1.1;
	margin: 0;
}

.woocommerce .tsp-related-products ul.products {
	display: grid;
	gap: 18px;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	margin: 0;
}

.woocommerce .tsp-related-products ul.products::before,
.woocommerce .tsp-related-products ul.products::after {
	content: none;
}

.woocommerce .tsp-related-products ul.products li.product {
	float: none;
	margin: 0;
	width: auto;
}

.tsp-related-products__empty {
	background: var(--tsp-light-grey);
	border: 1px solid var(--tsp-line);
	border-radius: 8px;
	display: grid;
	gap: 4px;
	padding: 22px;
}

.tsp-related-products__empty strong {
	color: var(--tsp-black);
	font-size: 1rem;
}

.tsp-related-products__empty span {
	color: var(--tsp-muted);
	font-size: 0.95rem;
	line-height: 1.45;
}

input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="tel"],
input[type="number"],
textarea,
select {
	border: 1px solid var(--tsp-line);
	border-radius: 6px;
}

@media (max-width: 700px) {
	.woocommerce ul.products li.product,
	.wc-block-grid__product {
		padding: 10px;
	}

	body.single-product .woocommerce-notices-wrapper,
	body.single-product .woocommerce div.product,
	body.single-product .woocommerce-breadcrumb,
	body.single-product .woocommerce div.product .woocommerce-tabs,
	.tsp-related-products {
		max-width: min(100% - 28px, 1240px);
	}

	body.single-product .woocommerce div.product .product_title {
		font-size: 2rem;
	}

	body.single-product .woocommerce div.product form.cart,
	body.single-product .wp-block-add-to-cart-form form.cart {
		display: grid;
		grid-template-columns: minmax(0, 1fr);
	}

	body.single-product .woocommerce div.product form.cart .single_variation_wrap,
	body.single-product .wp-block-add-to-cart-form form.cart .single_variation_wrap {
		display: grid;
		width: 100%;
	}

	body.single-product .woocommerce div.product form.cart .woocommerce-variation-add-to-cart,
	body.single-product .wp-block-add-to-cart-form form.cart .woocommerce-variation-add-to-cart {
		display: grid;
		gap: 10px;
		grid-auto-flow: row;
		grid-template-columns: minmax(0, 1fr);
		width: 100%;
	}

	body.single-product .woocommerce div.product form.cart .woocommerce-variation-add-to-cart > *,
	body.single-product .wp-block-add-to-cart-form form.cart .woocommerce-variation-add-to-cart > * {
		grid-column: 1 / -1;
	}

	body.single-product .woocommerce div.product .summary p.price,
	body.single-product .woocommerce div.product .entry-summary p.price,
	body.single-product .wp-block-column:has(.tsp-product-support) > .wp-block-woocommerce-product-price {
		max-width: none;
		width: 100%;
	}

	body.single-product .woocommerce div.product form.cart .qty,
	body.single-product .woocommerce div.product form.cart .button,
	body.single-product .wp-block-add-to-cart-form form.cart .quantity,
	body.single-product .wp-block-add-to-cart-form form.cart .qty,
	body.single-product .wp-block-add-to-cart-form form.cart .button {
		float: none !important;
		width: 100% !important;
	}

	body.single-product .woocommerce div.product div.images .flex-control-thumbs {
		display: flex;
		max-height: none;
		overflow-x: auto;
		overflow-y: hidden;
		scroll-snap-type: x proximity;
	}

	body.single-product .woocommerce div.product div.images .flex-control-thumbs li {
		flex: 0 0 76px;
		scroll-snap-align: start;
	}

	body.single-product .woocommerce div.product .woocommerce-tabs ul.tabs li {
		border-radius: 6px;
		display: block;
		margin: 0 0 8px;
	}

	body.single-product .woocommerce div.product .woocommerce-tabs .panel {
		border-radius: 8px;
	}

	.tsp-related-products__heading {
		align-items: start;
		display: grid;
	}

	.woocommerce .tsp-related-products ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 460px) {
	.woocommerce .tsp-related-products ul.products {
		grid-template-columns: 1fr;
	}
}

/* The Save Point header */
:root {
	--tsp-blue: #0088cc;
	--tsp-black: #000000;
	--tsp-white: #ffffff;
	--tsp-light-grey: #f4f4f4;
	--tsp-mid-grey: #cfcfcf;
	--tsp-text-grey: #9a9a9a;
}

.tsp-site-header {
	background: var(--tsp-black);
	border-bottom: 1px solid var(--tsp-blue);
	color: var(--tsp-white);
	position: relative;
	z-index: 20;
}

.tsp-site-header a {
	color: inherit;
	text-decoration: none;
}

.tsp-header-main {
	background: var(--tsp-black);
}

.tsp-header-main-inner {
	gap: clamp(18px, 3vw, 48px);
	min-height: 122px;
	padding-bottom: 22px;
	padding-top: 22px;
}

.tsp-brand {
	flex: 0 0 auto;
	min-width: 230px;
}

.tsp-logo,
.tsp-logo img {
	display: block;
	margin: 0;
}

.tsp-brand > p,
.tsp-footer-brand > p:has(.tsp-footer-logo) {
	margin: 0;
}

.tsp-logo-link {
	line-height: 0;
	text-decoration: none;
}

.tsp-logo-link--text {
	color: var(--tsp-white);
	font-size: 1.4rem;
	font-weight: 850;
	line-height: 1.1;
}

.tsp-logo img {
	height: auto;
	max-width: min(300px, 42vw);
}

.tsp-header-search {
	align-items: stretch;
	border-radius: 6px;
	display: flex;
	flex: 1 1 520px;
	max-width: 800px;
	min-width: 260px;
	overflow: hidden;
}

.tsp-header-search .wp-block-search__inside-wrapper {
	border: 0;
	padding: 0;
	width: 100%;
}

.tsp-header-search .wp-block-search__input {
	background: #d8d8d8;
	border: 0;
	border-radius: 6px 0 0 6px;
	color: var(--tsp-black);
	font-size: 0.95rem;
	min-height: 46px;
	padding: 0 20px;
}

.tsp-header-search .wp-block-search__input::placeholder {
	color: #8e8e8e;
}

.tsp-header-search .wp-block-search__button {
	background: var(--tsp-blue);
	border: 0;
	border-radius: 0 6px 6px 0;
	color: var(--tsp-white);
	margin: 0;
	min-height: 46px;
	min-width: 58px;
	padding: 0 18px;
}

.tsp-header-search .wp-block-search__button svg {
	fill: currentColor;
	height: 22px;
	width: 22px;
}

.tsp-header-actions {
	flex: 0 0 auto;
	gap: 18px;
	min-width: 210px;
}

.tsp-account-link {
	font-size: 0.95rem;
	line-height: 1.05;
	margin: 0;
}

.tsp-account-link a {
	align-items: center;
	display: grid;
	grid-template-columns: 28px auto;
	grid-template-rows: auto auto;
	column-gap: 8px;
}

.tsp-account-link a::before {
	border: 2px solid var(--tsp-white);
	border-radius: 50% 50% 45% 45%;
	content: "";
	grid-row: 1 / span 2;
	height: 18px;
	position: relative;
	width: 18px;
}

.tsp-account-link span {
	font-size: 0.72rem;
	font-weight: 700;
}

.tsp-account-link strong {
	font-size: 1rem;
	font-weight: 800;
	white-space: nowrap;
}

.tsp-mini-cart .wc-block-mini-cart__button {
	color: var(--tsp-white);
	padding: 0;
}

.tsp-mini-cart .wc-block-mini-cart__badge {
	background: var(--tsp-blue);
	color: var(--tsp-white);
}

.tsp-category-bar {
	background: var(--tsp-black);
	border-top: 1px solid var(--tsp-blue);
}

.tsp-category-nav {
	min-height: 50px;
}

.tsp-category-nav .wp-block-navigation__container {
	gap: clamp(18px, 2.5vw, 34px);
}

.tsp-category-nav .wp-block-navigation-item__content {
	color: var(--tsp-white);
	font-size: 0.82rem;
	font-weight: 800;
	letter-spacing: 0;
	padding: 16px 0;
	text-transform: uppercase;
}

.tsp-category-nav .wp-block-navigation-item__content:hover,
.tsp-category-nav .current-menu-item > .wp-block-navigation-item__content {
	color: var(--tsp-blue);
}

@media (max-width: 980px) {
	.tsp-header-main-inner {
		align-items: stretch;
		flex-direction: column;
		gap: 16px;
		min-height: 0;
		padding-bottom: 18px;
		padding-top: 18px;
	}

	.tsp-brand,
	.tsp-header-actions,
	.tsp-header-search {
		min-width: 0;
		width: 100%;
	}

	.tsp-brand {
		justify-content: center;
	}

	.tsp-logo img {
		max-width: min(300px, 82vw);
	}

	.tsp-header-search {
		flex-basis: auto;
		max-width: none;
	}

	.tsp-header-actions {
		justify-content: space-between;
	}

	.tsp-category-bar {
		padding-bottom: 10px;
		padding-top: 10px;
	}

	.tsp-category-nav {
		justify-content: center;
		min-height: 44px;
	}

	.tsp-category-nav .wp-block-navigation__responsive-container-open {
		align-items: center;
		background: var(--tsp-blue);
		border-radius: 6px;
		color: var(--tsp-white);
		display: flex;
		font-weight: 800;
		gap: 8px;
		min-height: 42px;
		padding: 0 16px;
	}

	.tsp-category-nav .wp-block-navigation__responsive-container-open::after {
		content: "Menu";
		font-size: 0.9rem;
		text-transform: uppercase;
	}

	.tsp-category-nav .wp-block-navigation__responsive-container.is-menu-open {
		background: var(--tsp-black);
		color: var(--tsp-white);
		padding: 28px;
	}

	.tsp-category-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
		align-items: flex-start;
		gap: 0;
	}

	.tsp-category-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
		border-bottom: 1px solid rgba(255, 255, 255, 0.12);
		font-size: 1.05rem;
		padding: 14px 0;
		width: 100%;
	}
}

@media (max-width: 520px) {
	.tsp-header-main-inner {
		padding-left: 14px;
		padding-right: 14px;
	}

	.tsp-header-search .wp-block-search__input {
		font-size: 16px;
		min-height: 44px;
		padding: 0 14px;
	}

	.tsp-header-search .wp-block-search__button {
		min-height: 44px;
		min-width: 52px;
	}

	.tsp-account-link strong {
		font-size: 0.92rem;
	}
}

/* Keep the desktop category bar on one clean row. */
.tsp-category-bar > .tsp-category-nav,
.tsp-category-bar > .wp-block-navigation {
	box-sizing: border-box;
	margin-left: auto;
	margin-right: auto;
	max-width: 1280px;
	width: min(1280px, calc(100% - 32px));
}

.tsp-category-nav .wp-block-navigation__container {
	justify-content: center;
	width: 100%;
}

@media (min-width: 981px) {
	.tsp-category-nav .wp-block-navigation__container {
		flex-wrap: nowrap;
	}

	.tsp-category-nav .wp-block-navigation-item__content {
		font-size: clamp(0.72rem, 0.78vw, 0.82rem);
		white-space: nowrap;
	}
}

@media (max-width: 980px) {
	.tsp-category-bar > .tsp-category-nav,
	.tsp-category-bar > .wp-block-navigation {
		width: min(100%, calc(100% - 28px));
	}
}

/* Remove inherited block spacing inside the custom header. */
.tsp-site-header > * {
	margin-block-start: 0 !important;
}

.tsp-category-bar {
	min-height: 50px;
}

.tsp-category-bar .wp-block-navigation__responsive-container:not(.is-menu-open) {
	display: contents;
}

/* Final header layout overrides. */
.tsp-category-bar {
	align-items: center;
	display: flex;
	min-height: 50px;
}

@media (min-width: 981px) {
	.tsp-category-bar {
		height: 50px;
		overflow: visible;
	}

	.tsp-category-bar .wp-block-navigation__responsive-container:not(.is-menu-open) {
		display: contents;
	}
}

@media (max-width: 980px) {
	.tsp-category-bar {
		display: flex;
		height: auto;
		min-height: 64px;
	}

	.tsp-category-bar .wp-block-navigation__responsive-container:not(.is-menu-open) {
		display: none;
	}
}

/* Hide WooCommerce's injected icon-only account block in the custom category bar. */
.tsp-category-bar > .wp-block-woocommerce-customer-account {
	display: none !important;
}

.tsp-category-bar {
	box-sizing: border-box;
	overflow: visible;
}

@media (min-width: 981px) {
	.tsp-site-header {
		border-bottom: 1px solid var(--tsp-blue);
	}

	.tsp-category-bar {
		padding: 0;
	}
}

@media (max-width: 980px) {
	.tsp-category-bar {
		padding-bottom: 10px;
		padding-top: 10px;
	}
}

/* Mobile polish: keep the store chrome compact and the page canvas neutral. */
body,
.wp-site-blocks,
main.wp-block-group {
	background: var(--tsp-white);
}

@media (max-width: 700px) {
	.tsp-header-main-inner {
		gap: 12px;
		padding-bottom: 14px;
		padding-top: 14px;
	}

	.tsp-logo img {
		max-width: min(300px, 76vw);
	}

	.tsp-header-search {
		width: 100%;
	}

	.tsp-header-search .wp-block-search__input,
	.tsp-header-search .wp-block-search__button {
		min-height: 42px;
	}

	.tsp-header-actions {
		align-items: center;
		gap: 12px;
	}

	.tsp-account-link a {
		grid-template-columns: 26px auto;
	}

	.tsp-account-link a::before {
		height: 18px;
		width: 18px;
	}

	.tsp-account-link span {
		font-size: 0.68rem;
	}

	.tsp-account-link strong {
		font-size: 0.88rem;
	}

	.tsp-category-bar {
		min-height: 58px;
		padding-bottom: 8px;
		padding-top: 8px;
	}

	.tsp-category-nav .wp-block-navigation__responsive-container-open {
		min-height: 40px;
		padding-left: 14px;
		padding-right: 14px;
	}
}

/* Mobile minimal header pass. */
@media (max-width: 700px) {
	.tsp-header-main-inner {
		gap: 10px;
		padding-bottom: 12px;
		padding-top: 12px;
	}

	.tsp-logo img {
		max-width: min(270px, 72vw);
	}

	.tsp-header-search .wp-block-search__input,
	.tsp-header-search .wp-block-search__button {
		min-height: 40px;
	}

	.tsp-category-bar {
		justify-content: flex-start;
		min-height: 48px;
		padding: 0 22px;
	}

	.tsp-category-bar > .tsp-category-nav,
	.tsp-category-bar > .wp-block-navigation {
		margin-left: 0;
		margin-right: 0;
		width: auto;
	}

	.tsp-category-nav {
		justify-content: flex-start;
		min-height: 48px;
		width: auto;
	}

	.tsp-category-nav .wp-block-navigation__responsive-container-open {
		background: transparent;
		border: 0;
		border-radius: 0;
		color: var(--tsp-white);
		gap: 9px;
		min-height: 48px;
		padding: 0;
	}

	.tsp-category-nav .wp-block-navigation__responsive-container-open svg {
		color: var(--tsp-blue);
		height: 22px;
		width: 22px;
	}

	.tsp-category-nav .wp-block-navigation__responsive-container-open::after {
		font-size: 0.82rem;
		font-weight: 800;
		letter-spacing: 0;
	}
}

/* Force the mobile navigation trigger to the left; override block layout centering. */
@media (max-width: 700px) {
	.tsp-category-bar {
		justify-content: flex-start !important;
	}

	.tsp-category-bar > .tsp-category-nav,
	.tsp-category-bar > .wp-block-navigation,
	.tsp-category-nav {
		justify-content: flex-start !important;
		margin-left: 0 !important;
		margin-right: auto !important;
		max-width: none !important;
		width: auto !important;
	}

	.tsp-category-nav.items-justified-center,
	.tsp-category-nav.is-content-justification-center {
		--navigation-layout-justification-setting: flex-start !important;
		--navigation-layout-justify: flex-start !important;
	}

	.tsp-category-nav .wp-block-navigation__responsive-container-open {
		margin-left: 0 !important;
		margin-right: 0 !important;
	}
}

/* Classic WordPress menu output for editable header categories. */
.tsp-category-nav--classic {
	align-items: center;
	display: flex;
	justify-content: center;
	min-height: 50px;
	width: min(1280px, calc(100% - 32px));
}

.tsp-category-nav--classic .tsp-category-menu {
	align-items: center;
	display: flex;
	flex-wrap: nowrap;
	gap: clamp(18px, 2.5vw, 34px);
	justify-content: center;
	list-style: none;
	margin: 0;
	padding: 0;
	width: 100%;
}

.tsp-category-nav--classic .menu-item {
	line-height: 1;
	margin: 0;
	position: relative;
}

.tsp-category-nav--classic .sub-menu,
.tsp-category-nav--classic .children {
	display: none !important;
}

.tsp-category-nav--classic a {
	color: var(--tsp-white);
	display: block;
	font-size: clamp(0.72rem, 0.78vw, 0.82rem);
	font-weight: 800;
	letter-spacing: 0;
	padding: 16px 0;
	text-decoration: none;
	text-transform: uppercase;
	white-space: nowrap;
}

.tsp-category-nav--classic a:hover,
.tsp-category-nav--classic .current-menu-item > a,
.tsp-category-nav--classic .current-menu-ancestor > a {
	color: var(--tsp-blue);
}

.tsp-menu-toggle {
	align-items: center;
	background: transparent;
	border: 0;
	border-radius: 0;
	color: var(--tsp-white);
	display: none;
	font: inherit;
	font-size: 0.82rem;
	font-weight: 800;
	gap: 9px;
	letter-spacing: 0;
	min-height: 48px;
	padding: 0;
	text-transform: uppercase;
}

.tsp-menu-toggle__icon,
.tsp-menu-toggle__icon::before,
.tsp-menu-toggle__icon::after {
	background: var(--tsp-blue);
	display: block;
	height: 2px;
	width: 16px;
}

.tsp-menu-toggle__icon {
	position: relative;
}

.tsp-menu-toggle__icon::before,
.tsp-menu-toggle__icon::after {
	content: "";
	left: 0;
	position: absolute;
}

.tsp-menu-toggle__icon::before {
	top: -5px;
}

.tsp-menu-toggle__icon::after {
	top: 5px;
}

@media (max-width: 700px) {
	.tsp-category-nav--classic {
		justify-content: flex-start !important;
		margin-left: 0 !important;
		margin-right: auto !important;
		max-width: none !important;
		min-height: 48px;
		width: auto !important;
	}

	.tsp-menu-toggle {
		display: flex;
	}

	.tsp-category-nav--classic .tsp-category-menu {
		background: var(--tsp-black);
		border-bottom: 1px solid var(--tsp-blue);
		border-top: 1px solid rgba(255, 255, 255, 0.14);
		display: none;
		gap: 0;
		left: 0;
		padding: 8px 22px 14px;
		position: absolute;
		top: 100%;
		width: 100%;
		z-index: 30;
	}

	.tsp-category-nav--classic.is-open .tsp-category-menu {
		display: block;
	}

	.tsp-category-nav--classic .menu-item + .menu-item {
		border-top: 1px solid rgba(255, 255, 255, 0.1);
	}

	.tsp-category-nav--classic a {
		font-size: 0.95rem;
		padding: 14px 0;
	}
}

/* Footer */
.tsp-site-footer {
	background: var(--tsp-black);
	border-top: 1px solid var(--tsp-blue);
	color: var(--tsp-white);
	margin-block-start: clamp(48px, 7vw, 86px);
}

.tsp-site-footer a {
	color: inherit;
	text-decoration: none;
}

.tsp-site-footer a:hover {
	color: var(--tsp-blue);
}

.tsp-footer-inner {
	box-sizing: border-box;
	margin-left: auto;
	margin-right: auto;
	max-width: 1280px;
	padding: clamp(34px, 5vw, 58px) 22px 22px;
}

.tsp-footer-grid {
	display: grid;
	gap: clamp(26px, 4vw, 56px);
	grid-template-columns: minmax(240px, 1.35fr) repeat(3, minmax(150px, 0.7fr));
}

.tsp-footer-logo,
.tsp-footer-logo img {
	display: block;
	margin: 0;
}

.tsp-footer-logo.tsp-logo-link {
	line-height: 0;
}

.tsp-footer-logo img {
	height: auto;
	max-width: min(240px, 70vw);
}

.tsp-footer-copy {
	color: #cfcfcf;
	font-size: 0.96rem;
	line-height: 1.55;
	margin: 18px 0 0;
	max-width: 360px;
}

.tsp-footer-heading {
	color: var(--tsp-white);
	font-size: 0.82rem;
	font-weight: 850;
	letter-spacing: 0;
	line-height: 1.2;
	margin: 0 0 14px;
	text-transform: uppercase;
}

.tsp-footer-menu {
	list-style: none;
	margin: 0;
	padding: 0;
}

.tsp-footer-menu .sub-menu,
.tsp-footer-menu .children {
	display: none !important;
}

.tsp-footer-menu .menu-item + .menu-item {
	margin-top: 9px;
}

.tsp-footer-menu a {
	color: #d8d8d8;
	font-size: 0.94rem;
	line-height: 1.3;
}

.tsp-footer-bottom {
	border-top: 1px solid rgba(255, 255, 255, 0.14);
	color: #bdbdbd;
	font-size: 0.86rem;
	gap: 12px 22px;
	margin-top: clamp(30px, 5vw, 48px);
	padding-top: 18px;
}

.tsp-footer-bottom p {
	margin: 0;
}

@media (max-width: 900px) {
	.tsp-footer-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.tsp-footer-brand {
		grid-column: 1 / -1;
	}
}

@media (max-width: 600px) {
	.tsp-site-footer {
		margin-block-start: 40px;
	}

	.tsp-footer-inner {
		padding-left: 22px;
		padding-right: 22px;
	}

	.tsp-footer-grid {
		gap: 24px;
		grid-template-columns: 1fr;
	}

	.tsp-footer-logo img {
		max-width: min(220px, 72vw);
	}

	.tsp-footer-bottom {
		align-items: flex-start;
		flex-direction: column;
	}
}

/* Compact mobile footer menu columns. */
@media (max-width: 600px) {
	.tsp-footer-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.tsp-footer-brand {
		grid-column: 1 / -1;
	}

	.tsp-footer-column {
		min-width: 0;
	}

	.tsp-footer-column:last-child {
		grid-column: 1 / -1;
	}

	.tsp-footer-menu .menu-item + .menu-item {
		margin-top: 8px;
	}

	.tsp-footer-menu a {
		font-size: 0.9rem;
	}
}

/* Homepage */
.tsp-home {
	background: var(--tsp-white);
	color: var(--tsp-black);
}

.tsp-home a {
	text-decoration-thickness: 1px;
	text-underline-offset: 0.18em;
}

.tsp-home-hero {
	background: linear-gradient(180deg, #f4f4f4 0%, #ffffff 100%);
	border-bottom: 1px solid #e7e7e7;
}

.tsp-home-hero__grid {
	box-sizing: border-box;
	display: grid;
	gap: clamp(28px, 5vw, 70px);
	grid-template-columns: minmax(0, 0.9fr) minmax(420px, 1.1fr);
	margin-left: auto;
	margin-right: auto;
	max-width: 1280px;
	padding: clamp(40px, 6vw, 78px) 22px;
}

.tsp-home-hero__copy {
	align-self: center;
}

.tsp-kicker {
	color: var(--tsp-blue);
	font-size: 0.8rem;
	font-weight: 850;
	letter-spacing: 0;
	margin: 0 0 10px;
	text-transform: uppercase;
}

.tsp-home-hero__title {
	font-size: clamp(2.35rem, 4.4vw, 4.6rem);
	letter-spacing: 0;
	line-height: 0.98;
	margin: 0;
	max-width: 720px;
}

.tsp-home-hero__text {
	color: #3c3c3c;
	font-size: clamp(1rem, 1.35vw, 1.18rem);
	line-height: 1.55;
	margin: 20px 0 0;
	max-width: 600px;
}

.tsp-home-actions {
	margin-top: 28px;
}

.tsp-home .wp-block-button__link {
	border-radius: 6px;
	padding: 0.82rem 1.15rem;
}

.tsp-home .wp-block-button:not(.is-style-outline) .wp-block-button__link {
	background: var(--tsp-blue);
	color: var(--tsp-white);
}

.tsp-home .wp-block-button.is-style-outline .wp-block-button__link {
	background: transparent;
	background-color: transparent;
	border: 1px solid var(--tsp-black);
	border-color: var(--tsp-black);
	color: var(--tsp-black);
}

.tsp-home .wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: var(--tsp-black);
	background-color: var(--tsp-black);
	border-color: var(--tsp-black);
	color: var(--tsp-white);
}

.tsp-editable-image,
.tsp-editable-image img {
	display: block;
	margin: 0;
	width: 100%;
}

.tsp-editable-image img {
	border-radius: 8px;
	height: auto;
	object-fit: cover;
}

.tsp-home-hero__image img {
	aspect-ratio: 1.58;
	box-shadow: 0 18px 42px rgba(0, 0, 0, 0.13);
}

.tsp-home-section {
	box-sizing: border-box;
	margin-left: auto;
	margin-right: auto;
	max-width: 1280px;
	padding: clamp(42px, 6vw, 76px) 22px 0;
}

.tsp-section-heading {
	gap: 16px 24px;
	margin-bottom: 24px;
}

.tsp-section-heading h2,
.tsp-preorder-copy h2,
.tsp-feature-strip-copy h2 {
	font-size: clamp(1.8rem, 3vw, 2.75rem);
	letter-spacing: 0;
	line-height: 1.05;
	margin: 0;
}

.tsp-section-link {
	font-size: 0.95rem;
	font-weight: 800;
	margin: 0;
	text-transform: uppercase;
}

.tsp-section-link a {
	color: var(--tsp-blue);
	text-decoration: none;
}

.tsp-category-grid {
	display: grid;
	gap: 18px;
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.tsp-category-card {
	background: #ffffff;
	border: 1px solid #dedede;
	border-radius: 8px;
	box-sizing: border-box;
	overflow: hidden;
}

.tsp-category-card .tsp-editable-image img {
	aspect-ratio: 1.42;
	border-radius: 0;
}

.tsp-category-card h3 {
	font-size: 1.08rem;
	line-height: 1.2;
	margin: 16px 16px 0;
}

.tsp-category-card h3 a {
	color: var(--tsp-black);
	text-decoration: none;
}

.tsp-category-card h3 a:hover {
	color: var(--tsp-blue);
}

.tsp-category-card p {
	color: #565656;
	font-size: 0.94rem;
	line-height: 1.45;
	margin: 8px 16px 18px;
}

.tsp-products-section .woocommerce,
.tsp-product-rail .woocommerce {
	width: 100%;
}

.tsp-home .woocommerce ul.products {
	display: grid;
	gap: 18px;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	margin: 0;
}

.tsp-home .woocommerce ul.products::before,
.tsp-home .woocommerce ul.products::after {
	content: none;
}

.tsp-home .woocommerce ul.products li.product {
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	float: none;
	margin: 0;
	width: auto;
}

.tsp-home .woocommerce ul.products li.product .woocommerce-LoopProduct-link {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
}

.tsp-home .woocommerce ul.products li.product a img {
	aspect-ratio: 1 / 1;
	object-fit: contain;
	width: 100%;
}

.tsp-home .woocommerce ul.products li.product .button {
	align-self: center;
	box-sizing: border-box;
	display: flex;
	justify-content: center;
	margin: auto auto 0 !important;
	text-align: center;
	width: min(220px, 100%);
}

.tsp-product-rail .woocommerce ul.products {
	display: flex;
	overflow-x: auto;
	padding-bottom: 12px;
	scroll-snap-type: x proximity;
}

.tsp-product-rail .woocommerce ul.products li.product {
	flex: 0 0 min(280px, 75vw);
	scroll-snap-align: start;
}

.tsp-home-preorders {
	background: var(--tsp-black);
	color: var(--tsp-white);
	margin-top: clamp(50px, 7vw, 84px);
}

.tsp-preorder-grid {
	box-sizing: border-box;
	display: grid;
	gap: clamp(28px, 5vw, 64px);
	grid-template-columns: minmax(320px, 0.95fr) minmax(0, 1.05fr);
	margin-left: auto;
	margin-right: auto;
	max-width: 1280px;
	padding: clamp(38px, 6vw, 70px) 22px;
}

.tsp-preorder-image img {
	aspect-ratio: 1.38;
}

.tsp-preorder-copy {
	align-self: center;
}

.tsp-preorder-copy p:not(.tsp-kicker),
.tsp-feature-strip-copy p:not(.tsp-kicker) {
	color: #d7d7d7;
	font-size: 1rem;
	line-height: 1.58;
	max-width: 560px;
}

.tsp-preorder-copy .wp-block-buttons {
	margin-top: 24px;
}

.tsp-home-feature-strip {
	background: #f4f4f4;
	border: 1px solid #dedede;
	border-radius: 8px;
	display: grid;
	gap: clamp(24px, 4vw, 48px);
	grid-template-columns: minmax(0, 1fr) minmax(320px, 0.8fr);
	margin-top: clamp(46px, 6vw, 76px);
	overflow: hidden;
	padding: 0;
}

.tsp-wide-image img {
	aspect-ratio: 3.33;
	border-radius: 0;
	height: 100%;
}

.tsp-feature-strip-copy {
	align-self: center;
	padding: 28px 28px 28px 0;
}

.tsp-feature-strip-copy p:not(.tsp-kicker) {
	color: #3f3f3f;
}

.tsp-feature-strip-copy .wp-block-buttons {
	margin-top: 22px;
}

@media (max-width: 1050px) {
	.tsp-home-hero__grid,
	.tsp-preorder-grid,
	.tsp-home-feature-strip {
		grid-template-columns: 1fr;
	}

	.tsp-category-grid,
	.tsp-home .woocommerce ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.tsp-feature-strip-copy {
		padding: 0 24px 28px;
	}
}

@media (max-width: 620px) {
	.tsp-home-hero__grid,
	.tsp-home-section,
	.tsp-preorder-grid {
		padding-left: 18px;
		padding-right: 18px;
	}

	.tsp-home-hero__grid {
		padding-top: 32px;
	}

	.tsp-home-hero__title {
		font-size: 2.3rem;
	}

	.tsp-category-grid,
	.tsp-home .woocommerce ul.products {
		grid-template-columns: 1fr;
	}

	.tsp-section-heading {
		align-items: flex-start;
		flex-direction: column;
	}

	.tsp-home .wp-block-button__link {
		width: 100%;
	}

	.tsp-home-actions .wp-block-button {
		width: 100%;
	}

	.tsp-home-preorders {
		margin-top: 42px;
	}

	.tsp-home-feature-strip {
		margin-left: 18px;
		margin-right: 18px;
	}
}

@media (max-width: 620px) {
	.tsp-category-grid {
		gap: 12px;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.tsp-category-card .tsp-editable-image img {
		aspect-ratio: 1.18;
	}

	.tsp-category-card h3 {
		font-size: 0.94rem;
		margin: 11px 11px 12px;
	}

	.tsp-category-card p {
		display: none;
	}
}

/* Balance the six homepage category cards as a clean 3 + 3 desktop grid. */
@media (min-width: 1051px) {
	.tsp-category-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

/* Keep homepage category cards aligned inside the CSS grid. */
.tsp-category-grid > .tsp-category-card {
	margin-block-start: 0 !important;
}

.tsp-category-grid {
	align-items: stretch;
}

/* WooCommerce product category landing pages */
.tsp-product-category-template {
	background: var(--tsp-white);
	color: var(--tsp-black);
}

.tsp-cat-landing {
	margin-left: auto;
	margin-right: auto;
	max-width: 1280px;
	padding: clamp(32px, 5vw, 64px) 22px 0;
}

.tsp-cat-hero {
	background: #f4f4f4;
	border: 1px solid #dedede;
	border-radius: 8px;
	display: grid;
	gap: 0;
	grid-template-columns: minmax(0, 1fr) minmax(390px, 0.92fr);
	overflow: hidden;
}

.tsp-cat-hero__copy {
	align-self: stretch;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: clamp(28px, 5vw, 56px);
}

.tsp-cat-breadcrumb {
	align-items: center;
	color: #555;
	display: flex;
	flex-wrap: wrap;
	font-size: 0.86rem;
	gap: 8px;
	margin-bottom: 20px;
}

.tsp-cat-breadcrumb a {
	color: #555;
	text-decoration: none;
}

.tsp-cat-breadcrumb a:hover {
	color: var(--tsp-blue);
}

.tsp-cat-hero h1 {
	font-size: clamp(2.4rem, 5vw, 5rem);
	letter-spacing: 0;
	line-height: 0.95;
	margin: 0;
}

.tsp-cat-description {
	color: #3f3f3f;
	font-size: 1.05rem;
	line-height: 1.58;
	margin-top: 20px;
	max-width: 650px;
}

.tsp-cat-description p {
	margin: 0;
}

.tsp-cat-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 26px;
}

.tsp-cat-button {
	background: var(--tsp-blue);
	border: 1px solid var(--tsp-blue);
	border-radius: 6px;
	color: var(--tsp-white);
	display: inline-flex;
	font-weight: 800;
	line-height: 1;
	padding: 0.85rem 1.05rem;
	text-decoration: none;
}

.tsp-cat-button--secondary {
	background: transparent;
	border-color: var(--tsp-black);
	color: var(--tsp-black);
}

.tsp-cat-hero__image {
	align-items: center;
	align-self: stretch;
	background: #f4f4f4;
	box-sizing: border-box;
	display: flex;
	height: 100%;
	justify-content: center;
	margin: 0;
	padding: clamp(22px, 3vw, 42px);
}

.tsp-cat-hero__image img {
	display: block;
	height: auto;
	max-height: 100%;
	max-width: 100%;
	min-height: 0;
	object-fit: contain;
	width: 100%;
}

.tsp-cat-hero__image--photo {
	align-self: center;
	background: transparent;
	height: auto;
	padding: clamp(14px, 2vw, 26px);
}

.tsp-cat-hero__image--photo img {
	aspect-ratio: 1.58;
	border-radius: 8px;
	box-shadow: 0 18px 42px rgba(0, 0, 0, 0.11);
	height: auto;
	max-height: none;
	object-fit: contain;
	object-position: center;
	width: 100%;
}

.tsp-cat-section {
	margin-top: clamp(34px, 5vw, 58px);
}

.tsp-cat-section .tsp-section-heading {
	margin-bottom: 18px;
}

.tsp-cat-section h2 {
	font-size: clamp(1.65rem, 3vw, 2.45rem);
	letter-spacing: 0;
	line-height: 1.05;
	margin: 0;
}

.tsp-cat-card-grid {
	display: grid;
	gap: 16px;
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.tsp-cat-card {
	background: #fff;
	border: 1px solid #dedede;
	border-radius: 8px;
	overflow: hidden;
}

.tsp-cat-card a {
	color: var(--tsp-black);
	display: block;
	text-decoration: none;
}

.tsp-cat-card img {
	aspect-ratio: 1.45;
	background: #f4f4f4;
	display: block;
	object-fit: contain;
	padding: 12px;
	width: 100%;
}

.tsp-cat-card__body {
	display: grid;
	gap: 4px;
	padding: 14px;
}

.tsp-cat-card__body strong {
	font-size: 1rem;
	line-height: 1.2;
}

.tsp-cat-card__body span {
	color: #666;
	font-size: 0.86rem;
}

.tsp-cat-card a:hover strong {
	color: var(--tsp-blue);
}

.tsp-cat-chip-list {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.tsp-cat-chip-list a,
.tsp-filter-more {
	background: #f4f4f4;
	border: 1px solid #dedede;
	border-radius: 999px;
	color: var(--tsp-black);
	cursor: pointer;
	font: inherit;
	font-size: 0.92rem;
	font-weight: 800;
	padding: 0.62rem 0.85rem;
	text-decoration: none;
}

.tsp-cat-chip-list a:hover,
.tsp-filter-more:hover {
	border-color: var(--tsp-blue);
	color: var(--tsp-blue);
}

.tsp-cat-chip-list a.is-active {
	background: var(--tsp-blue);
	border-color: var(--tsp-blue);
	color: var(--tsp-white);
}

.tsp-cat-chip-list .is-extra-filter {
	display: none;
}

.tsp-cat-chip-list.is-expanded .is-extra-filter {
	display: inline-flex;
}

.tsp-filter-more {
	background: var(--tsp-black);
	border-color: var(--tsp-black);
	color: var(--tsp-white);
}

.tsp-filter-more:hover {
	background: var(--tsp-blue);
	border-color: var(--tsp-blue);
	color: var(--tsp-white);
}

.tsp-cat-products ul.products,
.tsp-cat-products .woocommerce ul.products {
	display: grid;
	gap: 18px;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	margin: 0;
}

.tsp-cat-products ul.products::before,
.tsp-cat-products ul.products::after,
.tsp-cat-products .woocommerce ul.products::before,
.tsp-cat-products .woocommerce ul.products::after {
	content: none;
}

.tsp-cat-products ul.products li.product,
.tsp-cat-products .woocommerce ul.products li.product {
	box-sizing: border-box;
	clear: none !important;
	display: flex;
	flex-direction: column;
	float: none !important;
	margin: 0 !important;
	width: 100% !important;
}

.tsp-cat-products ul.products li.product .woocommerce-LoopProduct-link,
.tsp-cat-products .woocommerce ul.products li.product .woocommerce-LoopProduct-link {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
}

.woocommerce ul.products li.product .tsp-product-card-meta,
.tsp-cat-products ul.products li.product .tsp-product-card-meta,
.tsp-cat-products .woocommerce ul.products li.product .tsp-product-card-meta {
	color: var(--tsp-blue);
	display: block;
	font-size: 0.76rem;
	font-weight: 900;
	letter-spacing: 0;
	line-height: 1.2;
	margin: 2px 0 8px;
	text-transform: uppercase;
}

.tsp-cat-products ul.products li.product a img,
.tsp-cat-products .woocommerce ul.products li.product a img {
	aspect-ratio: 1 / 1;
	object-fit: contain;
	width: 100%;
}

.tsp-cat-products ul.products li.product .button,
.tsp-cat-products .woocommerce ul.products li.product .button {
	align-self: center;
	box-sizing: border-box;
	display: flex;
	justify-content: center;
	margin: auto auto 0 !important;
	text-align: center;
	width: min(220px, 100%);
}

.tsp-cat-pagination {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	justify-content: center;
	margin-top: 30px;
	width: 100%;
}

.tsp-cat-pagination .page-numbers {
	align-items: center;
	background: #f4f4f4;
	border: 1px solid #dedede;
	border-radius: 6px;
	color: var(--tsp-black);
	display: inline-flex;
	font-weight: 800;
	justify-content: center;
	line-height: 1;
	min-height: 40px;
	min-width: 40px;
	padding: 0 12px;
	text-decoration: none;
}

.tsp-cat-pagination .page-numbers:hover {
	border-color: var(--tsp-blue);
	color: var(--tsp-blue);
}

.tsp-cat-pagination .page-numbers.current {
	background: var(--tsp-blue);
	border-color: var(--tsp-blue);
	color: var(--tsp-white);
}

.tsp-cat-pagination .page-numbers.dots {
	background: transparent;
	border-color: transparent;
	min-width: 24px;
	padding: 0 4px;
}

.tsp-cat-empty {
	background: #f4f4f4;
	border: 1px solid #dedede;
	border-radius: 8px;
	padding: clamp(22px, 4vw, 36px);
}

.tsp-cat-empty h3 {
	font-size: clamp(1.35rem, 2vw, 1.85rem);
	letter-spacing: 0;
	margin: 0;
}

.tsp-cat-empty p {
	color: #4a4a4a;
	line-height: 1.55;
	margin: 10px 0 18px;
	max-width: 620px;
}

.tsp-cat-empty a {
	color: var(--tsp-blue);
	font-weight: 800;
	text-decoration: none;
}

/* Search results */
.tsp-search-page {
	background: var(--tsp-white);
}

.tsp-search-landing {
	box-sizing: border-box;
	margin-left: auto;
	margin-right: auto;
	max-width: 1280px;
	padding: clamp(32px, 5vw, 64px) 22px 0;
}

.tsp-search-hero {
	background: #f4f4f4;
	border: 1px solid #dedede;
	border-radius: 8px;
	padding: clamp(24px, 4vw, 44px);
}

.tsp-search-hero h1 {
	font-size: clamp(2.2rem, 4vw, 4rem);
	letter-spacing: 0;
	line-height: 1;
	margin: 0;
}

.tsp-search-hero p:not(.tsp-kicker) {
	color: #555;
	font-size: 1rem;
	line-height: 1.45;
	margin: 14px 0 0;
}

.tsp-search-suggestions,
.tsp-search-results {
	margin-top: clamp(28px, 4vw, 46px);
}

/* Product pre-order states */
.woocommerce div.product .stock.preorder,
.woocommerce ul.products li.product .stock.preorder {
	color: var(--tsp-blue);
	font-weight: 800;
}

.tsp-preorder-notice {
	background: #f4f4f4;
	border: 1px solid #dedede;
	border-left: 4px solid var(--tsp-blue);
	border-radius: 8px;
	box-sizing: border-box;
	display: grid;
	gap: 5px;
	margin: 18px 0;
	padding: 14px 16px;
}

.tsp-preorder-notice strong {
	font-size: 0.9rem;
	text-transform: uppercase;
}

.tsp-preorder-notice span {
	font-weight: 800;
}

.tsp-preorder-notice small {
	color: #555;
	line-height: 1.45;
}

.woocommerce ul.products li.product {
	position: relative;
}

.woocommerce ul.products li.product span.onsale {
	background: var(--tsp-black);
	border: 1px solid rgba(0, 136, 204, 0.55);
	box-sizing: border-box;
	color: var(--tsp-white);
	font-size: 0.72rem;
	font-weight: 850;
	left: auto;
	line-height: 1;
	margin: 0;
	min-height: 0;
	min-width: 0;
	padding: 0.42rem 0.55rem;
	position: absolute;
	right: 12px;
	text-transform: uppercase;
	top: 12px;
	z-index: 3;
}

.tsp-preorder-badge {
	background: var(--tsp-blue);
	border-radius: 999px;
	color: var(--tsp-white);
	font-size: 0.72rem;
	font-weight: 850;
	left: 12px;
	line-height: 1;
	padding: 0.42rem 0.55rem;
	position: absolute;
	text-transform: uppercase;
	top: 12px;
	z-index: 3;
}

.tsp-cat-support {
	display: grid;
	gap: 18px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.tsp-cat-support__card {
	background: var(--tsp-black);
	border-radius: 8px;
	box-sizing: border-box;
	color: var(--tsp-white);
	padding: clamp(22px, 3vw, 34px);
}

.tsp-cat-support__card h2 {
	font-size: clamp(1.35rem, 2vw, 1.85rem);
	margin-bottom: 18px;
}

.tsp-cat-support__card a {
	color: var(--tsp-white);
	font-weight: 800;
}

.tsp-cat-support__card a:hover {
	color: var(--tsp-blue);
}

@media (max-width: 980px) {
	.tsp-search-hero {
		align-items: start;
		grid-template-columns: 1fr;
	}

	.tsp-cat-hero {
		background: #fff;
		grid-template-columns: 1fr;
	}

	.tsp-cat-hero__copy {
		background: #f4f4f4;
	}

	.tsp-cat-hero__image {
		order: -1;
	}

	.tsp-cat-card-grid,
	.tsp-cat-products ul.products,
	.tsp-cat-products .woocommerce ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 620px) {
	.tsp-search-landing {
		padding-left: 18px;
		padding-right: 18px;
	}

	.tsp-search-hero {
		padding: 24px 18px;
	}

	.tsp-search-hero h1 {
		font-size: 2.35rem;
	}

	.tsp-cat-landing {
		padding-left: 18px;
		padding-right: 18px;
	}

	.tsp-cat-hero__copy {
		padding: 24px 18px;
	}

	.tsp-cat-hero h1 {
		font-size: 2.45rem;
	}

	.tsp-cat-hero__image img {
		max-height: 260px;
		min-height: 0;
	}

	.tsp-cat-actions,
	.tsp-cat-actions a {
		width: 100%;
	}

	.tsp-cat-button {
		justify-content: center;
	}

	.tsp-cat-card-grid {
		gap: 12px;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.tsp-cat-card__body {
		padding: 11px;
	}

	.tsp-cat-card__body strong {
		font-size: 0.92rem;
	}

	.tsp-cat-products ul.products,
	.tsp-cat-products .woocommerce ul.products,
	.tsp-cat-support {
		grid-template-columns: 1fr;
	}
}
