/* WooCommerce products carousel + mini cart */

.tsa-product {
	display: grid;
	grid-template-rows: auto 1fr;
	border: 1px solid var(--tsa-line);
	border-radius: var(--tsa-card-radius);
	background: #16305a;
	overflow: hidden;
	transition: transform 0.3s var(--tsa-ease), box-shadow 0.3s var(--tsa-ease), border-color 0.3s var(--tsa-ease);
}

.tsa-product:hover {
	transform: translateY(-6px);
	border-color: rgba(229, 35, 46, 0.28);
	box-shadow: var(--tsa-shadow-md);
}

.tsa-product__thumb {
	position: relative;
	display: block;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	background: var(--tsa-neutral-soft);
}

.tsa-product__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.5s var(--tsa-ease);
}

.tsa-product:hover .tsa-product__thumb img {
	transform: scale(1.07);
}

.tsa-product__badge {
	position: absolute;
	inset-inline-start: 12px;
	top: 12px;
	padding: 5px 12px;
	border-radius: 999px;
	font-size: 0.72rem;
	font-weight: 800;
	color: #fff;
	background: linear-gradient(135deg, var(--tsa-red), var(--tsa-red-700));
	box-shadow: 0 8px 18px rgba(229, 35, 46, 0.32);
}

.tsa-product__badge--out {
	top: auto;
	bottom: 12px;
	background: linear-gradient(135deg, #5b6472, #2c333d);
	box-shadow: none;
}

.tsa-product__body {
	display: grid;
	gap: 10px;
	align-content: start;
	padding: 16px;
}

.tsa-product__title {
	margin: 0;
	font-size: 0.95rem;
	font-weight: 700;
	line-height: 1.8;
}

.tsa-product__title a {
	color: var(--tsa-navy);
	text-decoration: none;
	transition: color 0.2s var(--tsa-ease);
}

.tsa-product__title a:hover {
	color: var(--tsa-red);
}

.tsa-product__price {
	font-weight: 800;
	color: var(--tsa-navy);
}

.tsa-product__price del {
	margin-inline-end: 6px;
	font-weight: 500;
	font-size: 0.85em;
	color: var(--tsa-neutral-600);
}

.tsa-product__price ins {
	text-decoration: none;
	color: var(--tsa-red);
}

.tsa-product__cart {
	padding: 10px 16px;
	font-size: 0.88rem;
}

/* Mini cart ------------------------------------------------------------- */
.tsa-minicart {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 8px 16px 8px 10px;
	border-radius: 999px;
	color: var(--tsa-navy);
	background: var(--tsa-neutral-soft);
	text-decoration: none;
	transition: box-shadow 0.25s var(--tsa-ease), transform 0.25s var(--tsa-ease);
}

.tsa-minicart:hover {
	transform: translateY(-2px);
	box-shadow: inset 0 0 0 2px rgba(229, 35, 46, 0.3);
}

.tsa-minicart__icon {
	position: relative;
	display: grid;
	place-items: center;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	color: #fff;
	background: linear-gradient(135deg, var(--tsa-navy-700), var(--tsa-navy-900));
}

.tsa-minicart__count {
	position: absolute;
	inset-inline-end: -4px;
	top: -4px;
	min-width: 20px;
	height: 20px;
	display: grid;
	place-items: center;
	border-radius: 999px;
	font-size: 0.7rem;
	font-weight: 800;
	color: #fff;
	background: var(--tsa-red);
	box-shadow: 0 0 0 2px #fff;
}

.tsa-minicart__label {
	display: block;
	font-size: 0.72rem;
	color: var(--tsa-neutral-600);
}

.tsa-minicart__total {
	display: block;
	font-size: 0.88rem;
	font-weight: 800;
}


/* Helpful fallback when the catalogue has no publishable products. */
.tsa-products__empty {
	margin: 0;
	padding: 20px 22px;
	border: 1px dashed rgba(255, 255, 255, 0.24);
	border-radius: 14px;
	color: #e5edf7;
	background: rgba(255, 255, 255, 0.07);
	text-align: center;
	line-height: 1.9;
}


/* Homepage product enquiry CTA: no price and no cart. */
.tsa-product__contact {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	width: 100%;
	min-height: 46px;
	margin-top: 2px;
	padding: 10px 14px;
	border: 1px solid rgba(245, 115, 94, 0.42);
	border-radius: 12px;
	color: #ffffff;
	background: linear-gradient(135deg, #d4543f, #f5735e);
	box-shadow: 0 8px 20px rgba(212, 84, 63, 0.24);
	font-size: 0.88rem;
	font-weight: 800;
	line-height: 1.5;
	text-decoration: none;
	box-sizing: border-box;
	transition: transform 0.2s var(--tsa-ease), box-shadow 0.2s var(--tsa-ease), filter 0.2s var(--tsa-ease);
}

.tsa-product__contact bdi {
	direction: ltr;
	unicode-bidi: isolate;
	font-size: 0.84rem;
	font-weight: 700;
	white-space: nowrap;
}

.tsa-product__contact:hover,
.tsa-product__contact:focus-visible {
	color: #ffffff;
	filter: brightness(0.96);
	transform: translateY(-2px);
	box-shadow: 0 12px 26px rgba(212, 84, 63, 0.32);
}

.tsa-product__contact:focus-visible {
	outline: 3px solid rgba(245, 115, 94, 0.38);
	outline-offset: 3px;
}

@media (max-width: 600px) {
	.tsa-product__contact {
		min-height: 44px;
		padding: 9px 11px;
		font-size: 0.82rem;
	}

	.tsa-product__contact bdi {
		font-size: 0.78rem;
	}
}

@media (max-width: 360px) {
	.tsa-product__contact {
		align-items: flex-start;
		flex-direction: column;
		gap: 2px;
	}
}

/* Product archive/card contrast pass (v1.5.1) ---------------------------- */
.tsa-product {
	border-color: #c9d9e8;
	color: #111827;
	background: #ffffff;
}

.tsa-product__title a,
.tsa-product__price {
	color: #102542;
}

.tsa-product__contact {
	border-color: #b43d2c;
	background: #b43d2c;
	box-shadow: 0 8px 20px rgba(180, 61, 44, 0.22);
}

.tsa-product__contact:hover,
.tsa-product__contact:focus-visible {
	color: #ffffff;
	background: #8f2f22;
	box-shadow: 0 12px 26px rgba(143, 47, 34, 0.28);
}

.tsa-product__contact:focus-visible {
	outline-color: #2f6fb0;
}

.tsa-product__badge {
	background: #b43d2c;
}

.tsa-product__price del,
.tsa-minicart__label {
	color: #596579;
}

body.post-type-archive-product .site-main,
body.tax-product_cat .site-main,
body.tax-product_tag .site-main {
	color: #111827;
}

body.post-type-archive-product .site-main .product,
body.tax-product_cat .site-main .product,
body.tax-product_tag .site-main .product {
	border: 1px solid #c9d9e8;
	border-radius: 16px;
	color: #111827;
	background: #ffffff;
}

body.post-type-archive-product .site-main .woocommerce-loop-product__title,
body.tax-product_cat .site-main .woocommerce-loop-product__title,
body.tax-product_tag .site-main .woocommerce-loop-product__title {
	color: #102542;
}

body.post-type-archive-product .site-main .price,
body.tax-product_cat .site-main .price,
body.tax-product_tag .site-main .price {
	color: #9c3324;
}
