/**
 * TactNexa — Premium Single Product
 *
 * Parent Theme: Blocksy
 *
 * Load after:
 * assets/css/woocommerce/product.css
 *
 * Design goals:
 * - Premium product image presentation
 * - Clear product information
 * - Accessible purchasing controls
 * - Compact, readable metadata
 * - Professional product tabs
 * - Responsive layouts
 *
 * Preserve native WooCommerce and Blocksy behavior.
 * No pricing, stock, cart, checkout or payment logic.
 */


/* =========================================================
   Product Design Tokens
   ========================================================= */

body.single-product {
	--tnx-pdp-ink: #061a36;
	--tnx-pdp-navy: #031126;

	--tnx-pdp-blue: #1677ff;
	--tnx-pdp-blue-dark: #075fd7;
	--tnx-pdp-cyan: #52d7ff;

	--tnx-pdp-border: #e1eaf4;
	--tnx-pdp-subtle: #f7faff;
	--tnx-pdp-muted: #526985;

	--tnx-pdp-card-radius: 20px;
}


/* =========================================================
   Main Product Canvas
   ========================================================= */

body.single-product .site-main {
	background:
		radial-gradient(
			ellipse at 12% 12%,
			rgba(22, 119, 255, 0.035),
			transparent 43%
		),
		linear-gradient(
			180deg,
			#fafcff 0%,
			#f6f9fe 100%
		);
}


/* =========================================================
   Breadcrumb Navigation
   ========================================================= */

body.single-product :is(
	.ct-breadcrumbs,
	.woocommerce-breadcrumb
) {
	font-size: 0.81rem;
	font-weight: 500;
	line-height: 1.7;

	color: var(--tnx-pdp-muted);
}


body.single-product :is(
	.ct-breadcrumbs,
	.woocommerce-breadcrumb
) a {
	color: var(--tnx-pdp-blue-dark);

	text-decoration: none;
}


body.single-product :is(
	.ct-breadcrumbs,
	.woocommerce-breadcrumb
) a:hover {
	text-decoration: underline;
}


/* =========================================================
   Premium Product Gallery Container
   ========================================================= */

body.single-product :is(
	.woocommerce-product-gallery,
	.ct-product-gallery-container
) {
	position: relative;

	min-width: 0;

	border: 1px solid var(--tnx-pdp-border);
	border-radius: var(--tnx-pdp-card-radius);

	background: #ffffff;

	box-shadow:
		0 4px 12px rgba(3, 17, 38, 0.025),
		0 20px 55px rgba(3, 17, 38, 0.055);
}


/* =========================================================
   Main Product Image Stage
   ========================================================= */

body.single-product :is(
	.woocommerce-product-gallery__image,
	.ct-product-gallery-container .ct-image-container
) {
	border-radius: 15px;

	background:
		radial-gradient(
			circle at 50% 42%,
			#ffffff 0%,
			#ffffff 55%,
			#f8fbff 100%
		);
}


/*
 * Preserve native image dimensions and slider positioning.
 * Do not force fixed image heights or crop real products.
 */

body.single-product
.woocommerce-product-gallery__image img:not(.zoomImg),
body.single-product
.ct-product-gallery-container
.ct-image-container img:not(.zoomImg) {
	max-width: 100%;

	object-fit: contain;
	object-position: center;
}


/* =========================================================
   Gallery Thumbnail Images
   ========================================================= */

body.single-product :is(
	.flex-control-thumbs img,
	.ct-product-gallery-thumbnails img
) {
	display: block;

	max-width: 100%;

	border: 1px solid #dce6f2;
	border-radius: 10px;

	background: #ffffff;

	object-fit: contain;

	transition:
		border-color 180ms ease,
		box-shadow 180ms ease,
		opacity 180ms ease;
}


body.single-product :is(
	.flex-control-thumbs img,
	.ct-product-gallery-thumbnails img
):hover {
	border-color: rgba(22, 119, 255, 0.55);

	box-shadow:
		0 4px 14px rgba(22, 119, 255, 0.10);
}


/* =========================================================
   Active Gallery Thumbnail
   ========================================================= */

body.single-product
.flex-control-thumbs img.flex-active,
body.single-product
.ct-product-gallery-thumbnails
[aria-current="true"] img,
body.single-product
.ct-product-gallery-thumbnails
[aria-selected="true"] img {
	border-color: var(--tnx-pdp-blue);

	box-shadow:
		0 0 0 2px rgba(22, 119, 255, 0.14);
}


/* =========================================================
   Gallery Focus
   ========================================================= */

body.single-product :is(
	.woocommerce-product-gallery,
	.ct-product-gallery-container
) a:focus-visible {
	outline: 3px solid var(--tnx-pdp-blue);
	outline-offset: 3px;
}


/* =========================================================
   Product Summary
   ========================================================= */

body.single-product .entry-summary {
	min-width: 0;

	color: var(--tnx-pdp-ink);
}


/* =========================================================
   Dynamic Product Badges
   ========================================================= */

body.single-product .tnx-pdp-badges {
	display: flex;
	flex-wrap: wrap;
	align-items: center;

	gap: 9px;

	margin: 0 0 16px;
}


body.single-product .tnx-pdp-badge {
	display: inline-flex;
	align-items: center;

	gap: 7px;

	min-height: 31px;

	padding: 6px 12px;

	border: 1px solid transparent;
	border-radius: 999px;

	font-size: 0.77rem;
	font-weight: 800;
	line-height: 1.3;

	text-decoration: none;
}


body.single-product .tnx-pdp-badge--instock {
	background: #e5faef;
	color: #11653a;
}


body.single-product .tnx-pdp-badge--outofstock {
	background: #fff1f2;
	color: #9f1239;
}


body.single-product .tnx-pdp-badge--onbackorder {
	background: #fff6e6;
	color: #905900;
}


body.single-product .tnx-pdp-badge--category {
	background: #eaf4ff;
	color: #075fd7;
}


body.single-product
a.tnx-pdp-badge--category:hover {
	background: #dcecff;
	color: #034da8;
}


body.single-product .tnx-pdp-badge__dot {
	width: 8px;
	height: 8px;

	flex: 0 0 8px;

	border-radius: 50%;

	background: currentColor;
}


/* =========================================================
   Product Title
   ========================================================= */

body.single-product .entry-summary :is(
	.product_title,
	.entry-title
) {
	margin: 0 0 13px;

	font-size: clamp(1.8rem, 2.6vw, 2.75rem);
	font-weight: 800;
	line-height: 1.2;

	letter-spacing: -0.035em;

	color: var(--tnx-pdp-ink);

	text-wrap: balance;
	overflow-wrap: anywhere;
}


/* =========================================================
   Product Price
   ========================================================= */

body.single-product .entry-summary .price {
	margin-block: 8px 18px;

	font-size: clamp(1.45rem, 2.2vw, 2rem);
	font-weight: 800;
	line-height: 1.35;

	color: var(--tnx-pdp-blue);
}


body.single-product
.entry-summary .price .amount {
	font-weight: inherit;
}


body.single-product
.entry-summary .price del {
	margin-right: 7px;

	color: #70839c;

	font-size: 0.9rem;
	font-weight: 500;
}


body.single-product
.entry-summary .price ins {
	color: var(--tnx-pdp-blue);

	font-weight: 800;
	text-decoration: none;
}


/* =========================================================
   Short Description
   ========================================================= */

body.single-product
.woocommerce-product-details__short-description {
	color: #354b68;

	font-size: 0.98rem;
	line-height: 1.8;
}


body.single-product
.woocommerce-product-details__short-description p {
	margin-bottom: 16px;
}


/* =========================================================
   Product Feature List
   ========================================================= */

body.single-product
.woocommerce-product-details__short-description ul {
	list-style: none;

	margin: 18px 0 22px;
	padding: 0;
}


body.single-product
.woocommerce-product-details__short-description ul li {
	position: relative;

	padding-left: 29px;
	margin-block: 9px;

	line-height: 1.65;
}


body.single-product
.woocommerce-product-details__short-description ul li::before {
	content: "✓";

	position: absolute;

	left: 0;
	top: 0.2em;

	display: grid;
	place-items: center;

	width: 19px;
	height: 19px;

	border-radius: 50%;

	background: #e9f3ff;

	color: #075fd7;

	font-size: 0.7rem;
	font-weight: 900;
	line-height: 1;
}


/* =========================================================
   Product Variations
   ========================================================= */

body.single-product
.entry-summary table.variations {
	width: 100%;

	margin-block: 18px 15px;
}


body.single-product
.entry-summary table.variations label {
	font-size: 0.9rem;
	font-weight: 800;

	color: var(--tnx-pdp-ink);
}


body.single-product
.entry-summary table.variations select {
	width: 100%;
	min-height: 48px;

	border: 1px solid #d5e3f1;
	border-radius: 10px;

	background-color: #ffffff;

	color: var(--tnx-pdp-ink);

	font-size: 0.93rem;
}


/* =========================================================
   Variation Information
   ========================================================= */

body.single-product
.entry-summary .woocommerce-variation-description {
	color: var(--tnx-pdp-muted);

	font-size: 0.9rem;
	line-height: 1.7;
}


body.single-product
.entry-summary .woocommerce-variation-price {
	margin-bottom: 14px;
}


/* =========================================================
   Form Focus
   ========================================================= */

body.single-product
.entry-summary table.variations select:focus-visible,
body.single-product
.entry-summary form.cart :is(
	button,
	input,
	select
):focus-visible {
	outline: 3px solid rgba(22, 119, 255, 0.40);
	outline-offset: 2px;
}


/* =========================================================
   Quantity Control
   ========================================================= */

body.single-product
.entry-summary form.cart .quantity {
	border-radius: 10px;
}


body.single-product
.entry-summary form.cart .quantity input.qty {
	font-weight: 700;

	color: var(--tnx-pdp-ink);
}


/* =========================================================
   Add to Cart
   ========================================================= */

body.single-product
.entry-summary form.cart .single_add_to_cart_button {
	min-height: 52px;

	border: 0;
	border-radius: 10px;

	background:
		linear-gradient(
			120deg,
			#2689ff,
			#0872f6
		);

	color: #ffffff;

	font-size: 0.98rem;
	font-weight: 800;

	box-shadow:
		0 10px 25px rgba(22, 119, 255, 0.18);

	transition:
		filter 180ms ease,
		box-shadow 180ms ease,
		transform 180ms ease;
}


body.single-product
.entry-summary form.cart
.single_add_to_cart_button:not(:disabled):not(.disabled):hover {
	transform: translateY(-2px);

	filter: brightness(1.05);

	box-shadow:
		0 14px 30px rgba(22, 119, 255, 0.24);
}


body.single-product
.entry-summary form.cart
.single_add_to_cart_button:is(:disabled, .disabled) {
	opacity: 0.6;

	cursor: not-allowed;

	box-shadow: none;
}


/* =========================================================
   Compatibility Guidance
   ========================================================= */

body.single-product .tnx-pdp-guidance {
	display: flex;
	align-items: flex-start;

	gap: 12px;

	margin: 17px 0 22px;
	padding: 16px;

	border: 1px solid #d9e7f8;
	border-radius: 13px;

	background: #f1f7ff;
}


body.single-product .tnx-pdp-guidance__icon {
	width: 23px;
	height: 23px;

	flex: 0 0 23px;

	stroke: #0872f6;
	stroke-width: 1.8;

	stroke-linecap: round;
	stroke-linejoin: round;
}


body.single-product .tnx-pdp-guidance__body {
	min-width: 0;

	color: #435c7a;

	font-size: 0.84rem;
	line-height: 1.65;
}


body.single-product
.tnx-pdp-guidance__body strong {
	display: block;

	margin-bottom: 3px;

	color: var(--tnx-pdp-ink);

	font-size: 0.87rem;
}


body.single-product
.tnx-pdp-guidance__body p {
	margin: 0;
}


body.single-product
.tnx-pdp-guidance__body a {
	color: #075fd7;

	font-weight: 800;

	text-underline-offset: 2px;
}


/* =========================================================
   Product Metadata
   ========================================================= */

body.single-product .product_meta {
	color: var(--tnx-pdp-muted);

	font-size: 0.79rem;
	line-height: 1.8;

	overflow-wrap: anywhere;
}


/* =========================================================
   Hide Long Product Tags
   ========================================================= */

/*
 * Tags stay saved in WooCommerce.
 * Only their visible metadata row is hidden.
 *
 * Categories, SKU and brand remain available.
 */

body.single-product .product_meta .tagged_as,
body.single-product .tagged_as {
	display: none !important;
}


/* =========================================================
   Product Metadata Links
   ========================================================= */

body.single-product .product_meta a {
	color: var(--tnx-pdp-blue-dark);

	font-weight: 600;
	text-decoration: none;
}


body.single-product .product_meta a:hover {
	text-decoration: underline;
}


/* =========================================================
   Premium Product Tabs Container
   ========================================================= */

body.single-product .woocommerce-tabs {
	box-sizing: border-box;

	width: calc(100% - 36px);
	max-width: 1240px;

	margin: 54px auto 0;

	padding:
		22px
		clamp(18px, 3vw, 34px)
		34px;

	border: 1px solid var(--tnx-pdp-border);
	border-radius: 20px;

	background: #ffffff;

	box-shadow:
		0 4px 12px rgba(3, 17, 38, 0.02),
		0 16px 45px rgba(3, 17, 38, 0.04);
}


/* =========================================================
   Product Tabs Navigation
   ========================================================= */

body.single-product
.woocommerce-tabs ul.tabs {
	margin-bottom: 26px;

	border-bottom-color: var(--tnx-pdp-border);
}


body.single-product
.woocommerce-tabs ul.tabs li a {
	font-size: 0.87rem;
	font-weight: 800;

	color: var(--tnx-pdp-muted);

	transition: color 160ms ease;
}


body.single-product
.woocommerce-tabs ul.tabs li.active a,
body.single-product
.woocommerce-tabs ul.tabs li a:hover {
	color: var(--tnx-pdp-blue-dark);
}


/* =========================================================
   Product Tab Content
   ========================================================= */

body.single-product
.woocommerce-tabs .woocommerce-Tabs-panel {
	width: 100%;
	max-width: 1080px;

	margin-inline: auto;

	color: #354b68;

	font-size: 0.97rem;
	line-height: 1.85;
}


/* =========================================================
   Tab Headings
   ========================================================= */

body.single-product
.woocommerce-tabs .woocommerce-Tabs-panel h2 {
	margin: 0 0 18px;

	color: var(--tnx-pdp-ink);

	font-size: clamp(1.45rem, 2.2vw, 1.95rem);
	font-weight: 800;
	line-height: 1.3;

	letter-spacing: -0.025em;
}


body.single-product
.woocommerce-tabs .woocommerce-Tabs-panel h3 {
	margin: 26px 0 15px;

	color: var(--tnx-pdp-ink);

	font-size: clamp(1.2rem, 1.8vw, 1.55rem);
	font-weight: 800;

	letter-spacing: -0.02em;
}


/* =========================================================
   Tab Paragraphs and Lists
   ========================================================= */

body.single-product
.woocommerce-tabs .woocommerce-Tabs-panel p {
	margin-bottom: 16px;
}


body.single-product
.woocommerce-tabs .woocommerce-Tabs-panel ul {
	padding-left: 22px;
	margin-block: 15px 24px;
}


body.single-product
.woocommerce-tabs .woocommerce-Tabs-panel ul li {
	margin-bottom: 8px;
}


body.single-product
.woocommerce-tabs .woocommerce-Tabs-panel li::marker {
	color: var(--tnx-pdp-blue);
}


/* =========================================================
   Additional Information Table
   ========================================================= */

body.single-product
.woocommerce-tabs .woocommerce-product-attributes {
	width: 100%;

	border: 1px solid var(--tnx-pdp-border);
	border-radius: 12px;

	border-collapse: separate;
	border-spacing: 0;

	overflow: hidden;

	background: #ffffff;
}


body.single-product
.woocommerce-tabs .woocommerce-product-attributes tr:nth-child(even) {
	background: #f7faff;
}


body.single-product
.woocommerce-tabs .woocommerce-product-attributes th {
	padding: 14px 16px;

	color: var(--tnx-pdp-ink);

	font-weight: 800;
}


body.single-product
.woocommerce-tabs .woocommerce-product-attributes td {
	padding: 14px 16px;

	color: #43566d;
}


/* =========================================================
   Related Products Section
   ========================================================= */

body.single-product .related.products {
	width: 100%;
	max-width: 1240px;

	margin: 56px auto 0;
}


body.single-product
.related.products > h2 {
	margin-bottom: 28px;

	color: var(--tnx-pdp-ink);

	font-size: clamp(1.7rem, 2.6vw, 2.25rem);
	font-weight: 800;
	line-height: 1.3;

	letter-spacing: -0.025em;
}


/* =========================================================
   Related Product Cards
   ========================================================= */

body.single-product
.related.products ul.products li.product {
	min-width: 0;

	padding: 13px;

	border: 1px solid var(--tnx-pdp-border);
	border-radius: 16px;

	background: #ffffff;

	box-shadow:
		0 4px 12px rgba(3, 17, 38, 0.025),
		0 12px 30px rgba(3, 17, 38, 0.045);

	transition:
		transform 180ms ease,
		border-color 180ms ease,
		box-shadow 180ms ease;
}


body.single-product
.related.products ul.products li.product:hover {
	transform: translateY(-3px);

	border-color: rgba(22, 119, 255, 0.25);

	box-shadow:
		0 10px 32px rgba(3, 17, 38, 0.075);
}


/* =========================================================
   Related Product Images
   ========================================================= */

body.single-product
.related.products ul.products li.product img {
	max-width: 100%;

	height: auto;

	object-fit: contain;
}


/* =========================================================
   Tablet
   ========================================================= */

@media (max-width: 1024px) {

	body.single-product
	.woocommerce-tabs {
		margin-top: 44px;
	}

	body.single-product
	.related.products {
		margin-top: 46px;
	}
}


/* =========================================================
   Mobile
   ========================================================= */

@media (max-width: 767px) {

	body.single-product
	.entry-summary :is(
		.product_title,
		.entry-title
	) {
		font-size: clamp(1.55rem, 6vw, 2.05rem);
	}

	body.single-product
	.woocommerce-product-details__short-description {
		font-size: 0.94rem;
		line-height: 1.75;
	}

	body.single-product
	.tnx-pdp-badge {
		font-size: 0.72rem;
	}

	body.single-product
	.woocommerce-tabs {
		width: calc(100% - 24px);

		margin-top: 34px;
		padding: 18px 16px 24px;

		border-radius: 15px;
	}

	body.single-product
	.woocommerce-tabs ul.tabs {
		margin-bottom: 18px;
	}

	body.single-product
	.woocommerce-tabs .woocommerce-Tabs-panel {
		font-size: 0.94rem;
		line-height: 1.75;
	}

	body.single-product
	.related.products {
		margin-top: 38px;
	}
}


/* =========================================================
   Small Mobile
   ========================================================= */

@media (max-width: 480px) {

	body.single-product
	.tnx-pdp-guidance {
		padding: 13px;
	}

	body.single-product
	.woocommerce-tabs {
		padding: 15px 13px 22px;
	}

	body.single-product
	.woocommerce-tabs .woocommerce-product-attributes th,
	body.single-product
	.woocommerce-tabs .woocommerce-product-attributes td {
		padding: 10px;
	}
}


/* =========================================================
   Reduced Motion
   ========================================================= */

@media (prefers-reduced-motion: reduce) {

	body.single-product :is(
		.tnx-pdp-badge,
		.single_add_to_cart_button,
		.related.products ul.products li.product,
		.flex-control-thumbs img,
		.ct-product-gallery-thumbnails img,
		.woocommerce-tabs ul.tabs li a
	) {
		transition: none;
	}

	body.single-product
	.entry-summary form.cart
	.single_add_to_cart_button:hover,
	body.single-product
	.related.products ul.products li.product:hover {
		transform: none;
	}
}