/* Single product page: gallery, summary, tabs, related (RTL first) */

/* Requested single-product canvas: 90% width, black copy, soft blue surface. */
body.single-product .tsa-canvas,
body.single-product .tsa-woo,
body.single-product main.site-main > .product {
	width: 90%;
	max-width: none;
	margin-inline: auto;
	color: #111827;
	background: #eaf4fb;
}

body.single-product .tsa-canvas {
	margin-block: 28px 48px;
	border: 1px solid #cfe2f1;
	border-radius: 22px;
	box-shadow: 0 16px 44px rgba(47, 111, 176, 0.10);
	overflow: hidden;
}

body.single-product .tsa-canvas .elementor-section,
body.single-product .tsa-canvas .elementor-element.tsa-light,
body.single-product .tsa-canvas .elementor-element.tsa-soft,
body.single-product .tsa-canvas .elementor-element.tsa-dark {
	background-color: #eaf4fb !important;
}

body.single-product .tsa-canvas,
body.single-product .tsa-canvas p,
body.single-product .tsa-canvas li,
body.single-product .tsa-canvas label,
body.single-product .tsa-canvas td,
body.single-product .tsa-canvas th,
body.single-product .tsa-canvas .elementor-heading-title,
body.single-product .tsa-canvas .elementor-widget-text-editor,
body.single-product .tsa-woo,
body.single-product .tsa-woo p,
body.single-product .tsa-woo li,
body.single-product .tsa-woo label,
body.single-product .tsa-woo td,
body.single-product .tsa-woo th {
	color: #111827;
}

body.single-product .tsa-canvas a:not(.button):not(.tt-btn),
body.single-product .tsa-woo a:not(.button):not(.tt-btn) {
	color: #173f6b;
}

body.single-product .tsa-canvas .button,
body.single-product .tsa-canvas .tt-btn,
body.single-product .tsa-woo .button,
body.single-product .tsa-woo .tt-btn {
	color: #ffffff;
}


.tsa-pgallery,
.tsa-psummary,
.tsa-ptabs,
.tsa-prelated {
	--tsa-navy: #102542;
	--tsa-navy-700: #1b3a63;
	--tsa-red: #f5735e;
	--tsa-red-700: #d4543f;
	--tsa-neutral: #7f93b0;
	--tsa-neutral-600: #69707a;
	--tsa-neutral-soft: #f2f3f5;
	--tsa-line: rgba(4, 12, 26, 0.1);
	--tsa-card-radius: 20px;
	--tsa-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
	--tsa-shadow-sm: 0 4px 14px rgba(4, 12, 26, 0.08);
	--tsa-shadow-md: 0 14px 36px rgba(4, 12, 26, 0.12);
	direction: rtl;
	text-align: right;
	color: var(--tsa-neutral);
}

/* Gallery ---------------------------------------------------------------- */
.tsa-pgallery {
	position: relative;
	border: 1px solid var(--tsa-line);
	border-radius: var(--tsa-card-radius);
	background: #16305a;
	padding: 14px;
	box-shadow: var(--tsa-shadow-sm);
}

.tsa-pgallery img {
	border-radius: 14px;
	height: auto;
	max-width: 100%;
}

.tsa-pgallery .flex-control-thumbs {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(72px, 1fr));
	gap: 8px;
	margin: 12px 0 0;
	padding: 0;
	list-style: none;
}

.tsa-pgallery .flex-control-thumbs li {
	margin: 0;
	list-style: none;
}

.tsa-pgallery .flex-control-thumbs img {
	border: 1px solid var(--tsa-line);
	border-radius: 10px;
	cursor: pointer;
	opacity: 0.75;
	transition: opacity 0.25s var(--tsa-ease), border-color 0.25s var(--tsa-ease);
}

.tsa-pgallery .flex-control-thumbs img:hover,
.tsa-pgallery .flex-control-thumbs img.flex-active {
	opacity: 1;
	border-color: var(--tsa-red);
}

.tsa-pbadge {
	position: absolute;
	inset-block-start: 22px;
	inset-inline-start: 22px;
	z-index: 3;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 6px 12px;
	border-radius: 999px;
	background: var(--tsa-red);
	color: #fff;
	font-size: 13px;
	font-weight: 700;
}

/* Summary ---------------------------------------------------------------- */
.tsa-psummary {
	display: grid;
	gap: 14px;
	align-content: start;
}

.tsa-psummary__crumbs {
	font-size: 13px;
	color: var(--tsa-neutral-600);
}

.tsa-psummary__crumbs a {
	color: inherit;
	text-decoration: none;
}

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

.tsa-crumb-sep {
	margin: 0 6px;
	opacity: 0.5;
}

.tsa-psummary__title {
	margin: 0;
	font-size: clamp(22px, 3vw, 32px);
	line-height: 1.5;
	color: var(--tsa-navy);
}

.tsa-psummary__meta-top {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 14px;
}

.tsa-psummary__meta-top .woocommerce-product-rating {
	margin: 0;
}

.tsa-pstock {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 5px 12px;
	border-radius: 999px;
	font-size: 13px;
	font-weight: 600;
}

.tsa-pstock svg {
	width: 16px;
	height: 16px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.tsa-pstock--in {
	background: #1b3a63;
	color: #12794a;
}

.tsa-pstock--out {
	background: #1b3a63;
	color: var(--tsa-red-700);
}

.tsa-psummary__price {
	font-size: 26px;
	font-weight: 800;
	color: var(--tsa-navy);
}

.tsa-psummary__price del {
	margin-inline-end: 10px;
	font-size: 18px;
	font-weight: 500;
	color: var(--tsa-neutral-600);
}

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

.tsa-psummary__excerpt {
	line-height: 2;
	color: var(--tsa-neutral-600);
}

.tsa-passure {
	display: grid;
	gap: 10px;
	margin: 0;
	padding: 16px;
	list-style: none;
	border: 1px dashed var(--tsa-line);
	border-radius: 16px;
	background: var(--tsa-neutral-soft);
}

.tsa-passure li {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 14px;
}

.tsa-passure svg {
	width: 20px;
	height: 20px;
	flex: 0 0 20px;
	fill: none;
	stroke: var(--tsa-red);
	stroke-width: 1.7;
	stroke-linecap: round;
	stroke-linejoin: round;
}

/* Add to cart ------------------------------------------------------------ */
.tsa-pcart .quantity input {
	height: 48px;
	width: 84px;
	padding: 0 10px;
	border: 1px solid var(--tsa-line);
	border-radius: 12px;
	text-align: center;
	font: inherit;
}

.tsa-pcart form.cart {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	margin: 0;
}

.tsa-pcart .button,
.tsa-pcart button.button,
.tsa-pcart .single_add_to_cart_button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 48px;
	padding: 0 26px;
	border: 0;
	border-radius: 999px;
	background: var(--tsa-red);
	color: #fff;
	font-weight: 700;
	font-size: 15px;
	cursor: pointer;
	transition: background 0.25s var(--tsa-ease), transform 0.25s var(--tsa-ease);
}

.tsa-pcart .button:hover,
.tsa-pcart .single_add_to_cart_button:hover {
	background: var(--tsa-red-700);
	transform: translateY(-2px);
}

.tsa-pcart .variations {
	width: 100%;
	border-collapse: collapse;
}

.tsa-pcart .variations td,
.tsa-pcart .variations th {
	padding: 6px 0;
	text-align: start;
}

.tsa-pcart select {
	min-height: 44px;
	padding: 0 12px;
	border: 1px solid var(--tsa-line);
	border-radius: 12px;
	font: inherit;
	background: #16305a;
}

.tsa-pconsult {
	align-self: start;
}

.tsa-psummary__meta {
	font-size: 13px;
	color: var(--tsa-neutral-600);
}

.tsa-psummary__meta a {
	color: inherit;
}

/* Tabs ------------------------------------------------------------------- */
.tsa-ptabs {
	border: 1px solid var(--tsa-line);
	border-radius: var(--tsa-card-radius);
	background: #16305a;
	padding: 8px 20px 22px;
}

.tsa-ptabs .wc-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 18px;
	padding: 0;
	list-style: none;
	border-bottom: 1px solid var(--tsa-line);
}

.tsa-ptabs .wc-tabs li {
	margin: 0;
	list-style: none;
}

.tsa-ptabs .wc-tabs li a {
	display: inline-block;
	padding: 14px 18px;
	color: var(--tsa-neutral-600);
	font-weight: 700;
	text-decoration: none;
	border-bottom: 3px solid transparent;
	transition: color 0.25s var(--tsa-ease), border-color 0.25s var(--tsa-ease);
}

.tsa-ptabs .wc-tabs li.active a,
.tsa-ptabs .wc-tabs li a:hover {
	color: var(--tsa-navy);
	border-bottom-color: var(--tsa-red);
}

.tsa-ptabs .woocommerce-Tabs-panel {
	line-height: 2;
}

.tsa-ptabs .woocommerce-Tabs-panel h2 {
	font-size: 18px;
	color: var(--tsa-navy);
}

.tsa-ptabs table.shop_attributes {
	width: 100%;
	border-collapse: collapse;
}

.tsa-ptabs table.shop_attributes th,
.tsa-ptabs table.shop_attributes td {
	padding: 10px 12px;
	border-bottom: 1px solid var(--tsa-line);
	text-align: start;
}

.tsa-ptabs table.shop_attributes th {
	width: 30%;
	background: var(--tsa-neutral-soft);
	font-weight: 700;
}

/* Related ---------------------------------------------------------------- */
.tsa-prelated__grid {
	display: grid;
	grid-template-columns: repeat(var(--tsa-cols, 4), minmax(0, 1fr));
	gap: 18px;
}

.tsa-pcard {
	display: grid;
	gap: 10px;
	align-content: start;
	padding: 14px;
	border: 1px solid var(--tsa-line);
	border-radius: var(--tsa-card-radius);
	background: #16305a;
	transition: transform 0.3s var(--tsa-ease), box-shadow 0.3s var(--tsa-ease);
}

.tsa-pcard:hover {
	transform: translateY(-6px);
	box-shadow: var(--tsa-shadow-md);
}

.tsa-pcard__thumb {
	display: block;
	overflow: hidden;
	border-radius: 14px;
	background: var(--tsa-neutral-soft);
	aspect-ratio: 1 / 1;
}

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

.tsa-pcard:hover .tsa-pcard__thumb img {
	transform: scale(1.06);
}

.tsa-pcard__title {
	margin: 0;
	font-size: 15px;
	line-height: 1.8;
}

.tsa-pcard__title a {
	color: var(--tsa-navy);
	text-decoration: none;
}

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

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

.tsa-pcard__price del {
	margin-inline-end: 8px;
	font-weight: 500;
	font-size: 14px;
	color: var(--tsa-neutral-600);
}

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

/* Editor notice ---------------------------------------------------------- */
.tsa-pnotice {
	padding: 18px;
	border: 1px dashed rgba(4, 12, 26, 0.25);
	border-radius: 14px;
	background: #1b3a63;
	color: #c9d6e8;
	font-size: 14px;
	text-align: center;
	direction: rtl;
}

/* Product page layout wrapper (theme woocommerce.php) --------------------- */
.tsa-woo {
	max-width: 1180px;
	margin: 0 auto;
	padding: 28px 16px 56px;
	direction: rtl;
}

@media (max-width: 1024px) {
	.tsa-prelated__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 767px) {
	.tsa-prelated__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.tsa-ptabs {
		padding: 8px 14px 18px;
	}

	.tsa-pcart form.cart {
		gap: 8px;
	}

	.tsa-pcart .single_add_to_cart_button {
		flex: 1 1 auto;
	}
}

/* Accessibility contrast pass (v1.5.1) ---------------------------------- */
body.single-product .tsa-canvas,
body.single-product .tsa-woo,
body.single-product main.site-main > .product {
	background: #f4f8fc;
}

body.single-product .tsa-canvas .elementor-section,
body.single-product .tsa-canvas .elementor-element.tsa-light,
body.single-product .tsa-canvas .elementor-element.tsa-soft,
body.single-product .tsa-canvas .elementor-element.tsa-dark {
	background-color: #f4f8fc !important;
}

.tsa-pgallery,
.tsa-ptabs,
.tsa-pcard {
	border-color: #c9d9e8;
	background: #ffffff;
}

.tsa-pstock--in {
	color: #17633f;
	background: #e7f5ed;
}

.tsa-pstock--out {
	color: #9c3324;
	background: #fff0ed;
}

.tsa-pcart select,
.tsa-pcart .quantity input {
	color: #111827;
	background: #ffffff;
}

.tsa-product-call {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	width: fit-content;
	min-height: 48px;
	padding: 11px 22px;
	border: 2px solid #b43d2c;
	border-radius: 12px;
	color: #ffffff !important;
	background: #b43d2c;
	box-shadow: 0 8px 20px rgba(180, 61, 44, 0.22);
	font-weight: 800;
	line-height: 1.5;
	text-decoration: none;
	transition: transform 0.2s var(--tsa-ease), background-color 0.2s var(--tsa-ease), box-shadow 0.2s var(--tsa-ease);
}

.tsa-product-call bdi {
	direction: ltr;
	unicode-bidi: isolate;
}

.tsa-product-call:hover {
	color: #ffffff !important;
	background: #8f2f22;
	transform: translateY(-2px);
	box-shadow: 0 12px 26px rgba(143, 47, 34, 0.28);
}

.tsa-product-call:focus-visible {
	outline: 3px solid #2f6fb0;
	outline-offset: 3px;
}

.tsa-product-call--card {
	width: 100%;
	min-height: 44px;
	padding: 9px 14px;
}
