/*
 * Single product — BEM, two-column layout, JS-free tabs via :has() / :checked.
 */

body#at-theme {

.at-product-page {
	padding-block: var(--at-space-6) var(--at-space-8);
}

.at-product {
	display: block;
}

/* Breadcrumb */
.at-product__breadcrumb,
.at-product__breadcrumb .woocommerce-breadcrumb {
	font-family: var(--at-font-mono);
	font-size: var(--at-fs-eyebrow);
	color: var(--at-muted);
	text-transform: uppercase;
	letter-spacing: var(--at-tracking-eyebrow);
	margin: 0 0 var(--at-space-5);
}
.at-product__breadcrumb a { color: var(--at-muted); }
.at-product__breadcrumb a:hover { color: var(--at-highlight); }

/* === Layout — gallery (1/3) + summary (2/3) === */
.at-product__layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
	gap: var(--at-space-7);
	align-items: start;
}

/* Gallery — featured image + thumbnails strip below, sticky.
 * The native WC gallery slider is replaced server-side by
 * at_theme_show_product_image(). */
.at-product__gallery {
	position: sticky;
	top: 110px;
	align-self: start;
}
.at-product__image {
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: var(--at-space-3);
}
.at-product__image-main {
	display: block;
	width: 100%;
	height: auto;
	max-width: 100%;
}
.at-product__thumbs {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(64px, 1fr));
	gap: var(--at-space-2);
	margin: 0;
	padding: 0;
	list-style: none;
}
.at-product__thumb { margin: 0; }
.at-product__thumb-link {
	display: block;
	border: 1px solid var(--at-hairline);
	background-color: var(--at-canvas);
	cursor: pointer;
	transition: border-color var(--at-trans-fast);
}
.at-product__thumb-link:hover { border-color: var(--at-hairline-hover); }
.at-product__thumb-link.is-current { border-color: var(--at-highlight); }
.at-product__thumb-img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1;
	object-fit: contain;
}

/* === Summary === */
.at-product__summary {
	display: flex;
	flex-direction: column;
	gap: var(--at-space-4);
	margin: 0;
}

.at-product__eyebrow {
	margin: 0;
	font-size: var(--at-fs-eyebrow);
}

.at-product__title {
	font-family: var(--at-font-display);
	font-size: clamp(1.75rem, 3.5vw, 2.5rem);
	color: var(--at-headline);
	text-transform: uppercase;
	letter-spacing: var(--at-tracking-tight);
	line-height: 1.05;
	margin: 0;
}

.at-product__short-desc {
	color: var(--at-body);
	font-family: var(--at-font-body);
	font-size: var(--at-fs-body);
	line-height: 1.6;
}
.at-product__short-desc p:last-child { margin-bottom: 0; }

.at-product__price {
	font-family: var(--at-font-display);
	font-size: clamp(1.6rem, 3vw, 2rem);
	color: var(--at-headline);
	margin: 0;
}
.at-product__price ins {
	text-decoration: none;
	background: transparent;
	color: var(--at-highlight);
	font-weight: 600;
}
.at-product__price del,
.at-product__price del * {
	color: var(--at-muted);
	background: transparent;
	font-weight: 400;
	margin-right: var(--at-space-2);
	opacity: 1;
	text-decoration: line-through;
}

/* Stock info block (rendered by [at_additional_info] shortcode) */
.at-product__stock .at-product-stock-info {
	display: flex;
	flex-direction: column;
	gap: var(--at-space-2);
	font-family: var(--at-font-mono);
	font-size: var(--at-fs-eyebrow);
	text-transform: uppercase;
	letter-spacing: var(--at-tracking-eyebrow);
}
.at-product__stock .at-info {
	display: flex;
	align-items: center;
	gap: var(--at-space-2);
	color: var(--at-muted);
}
.at-product__stock .at-info::before {
	content: "";
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background-color: var(--at-muted);
	flex-shrink: 0;
}
.at-product__stock .at-info.green { color: var(--at-stock-ok); }
.at-product__stock .at-info.green::before { background-color: var(--at-stock-ok); }
.at-product__stock .at-info.orange { color: var(--at-stock-low); }
.at-product__stock .at-info.orange::before { background-color: var(--at-stock-low); }
.at-product__stock .at-info.red { color: var(--at-stock-out); }
.at-product__stock .at-info.red::before { background-color: var(--at-stock-out); }

.at-product__stock .at-last-purchase-msg {
	font-family: var(--at-font-mono);
	font-size: var(--at-fs-eyebrow);
	color: var(--at-muted);
	text-transform: uppercase;
	letter-spacing: var(--at-tracking-eyebrow);
}
.at-product__stock .at-last-purchase-msg b { color: var(--at-highlight); }
.at-product__stock .at-last-purchase-msg.never { color: var(--at-dim-555); }

/* ATC form */
.at-product__atc form.cart {
	display: flex;
	flex-wrap: wrap;
	gap: var(--at-space-3);
	margin: 0;
	padding-block: var(--at-space-4);
	border-top: 1px solid var(--at-hairline);
	border-bottom: 1px solid var(--at-hairline);
}
.at-product__atc .quantity {
	display: inline-flex;
	align-items: center;
}
.at-product__atc input.qty {
	width: 80px;
	height: 48px;
	text-align: center;
	-moz-appearance: textfield;
}
/* Hide the native number-input spinner — we use our own +/- buttons. */
.at-product__atc input.qty::-webkit-outer-spin-button,
.at-product__atc input.qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	appearance: none;
	margin: 0;
}
.at-qty-btn {
	width: 40px;
	height: 48px;
	background-color: transparent;
	color: var(--at-body);
	border: 1px solid var(--at-divider);
	font-family: var(--at-font-body);
	font-size: var(--at-fs-subhead);
	line-height: 1;
	cursor: pointer;
	transition: color var(--at-trans-fast), border-color var(--at-trans-fast);
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.at-qty-btn:hover {
	color: var(--at-highlight);
	border-color: var(--at-highlight);
}
.at-qty-btn--minus { margin-right: var(--at-space-1); }
.at-qty-btn--plus { margin-left: var(--at-space-1); }

.at-product__atc button.single_add_to_cart_button {
	flex: 1 1 200px;
	min-height: 48px;
	background-color: var(--at-canvas);
	color: var(--at-highlight);
	border: 2px solid var(--at-highlight);
	border-radius: 0;
	font-family: var(--at-font-body);
	font-weight: 700;
	font-size: var(--at-fs-body-sm);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	padding: var(--at-space-3) var(--at-space-5);
	cursor: pointer;
	transition: background-color var(--at-trans-fast), color var(--at-trans-fast);
}
.at-product__atc button.single_add_to_cart_button:hover {
	background-color: var(--at-highlight);
	color: var(--at-canvas);
}

/* Variations */
.at-product__atc .variations {
	width: 100%;
	margin: 0 0 var(--at-space-3);
	border-collapse: collapse;
}
.at-product__atc .variations th {
	font-family: var(--at-font-mono);
	font-size: var(--at-fs-eyebrow);
	color: var(--at-muted);
	text-transform: uppercase;
	letter-spacing: var(--at-tracking-eyebrow);
	text-align: left;
	padding: var(--at-space-2) 0;
	font-weight: normal;
}
.at-product__atc .variations td {
	padding: var(--at-space-2) 0;
}
.at-product__atc .reset_variations {
	color: var(--at-muted);
	font-size: var(--at-fs-eyebrow);
	font-family: var(--at-font-mono);
	text-transform: uppercase;
	letter-spacing: var(--at-tracking-eyebrow);
}

/* Meta block */
.at-product__meta {
	font-family: var(--at-font-mono);
	font-size: var(--at-fs-eyebrow);
	color: var(--at-muted);
	text-transform: uppercase;
	letter-spacing: var(--at-tracking-eyebrow);
	line-height: 1.7;
	margin: 0;
}
.at-product__meta > span {
	display: block;
	margin-bottom: var(--at-space-1);
}
.at-product__meta a { color: var(--at-body); }
.at-product__meta a:hover { color: var(--at-highlight); }

/* === Tabs — inline inside the summary, JS toggles .is-active === */
.at-product__tabs {
	margin-top: var(--at-space-5);
}

.at-product__tabs-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 0;
	margin: 0;
	padding: 0;
	border-bottom: 1px solid var(--at-divider);
}
.at-product__tab-label {
	display: inline-block;
	padding: var(--at-space-3) var(--at-space-5);
	margin-bottom: -1px;
	font-family: var(--at-font-mono);
	font-size: var(--at-fs-body-sm);
	color: var(--at-muted);
	text-transform: uppercase;
	letter-spacing: var(--at-tracking-eyebrow);
	background: transparent;
	border: 0;
	border-bottom: 2px solid transparent;
	cursor: pointer;
	transition: color var(--at-trans-fast), border-color var(--at-trans-fast);
}
.at-product__tab-label:hover {
	color: var(--at-body);
}
.at-product__tab-label.is-active {
	color: var(--at-highlight);
	border-bottom-color: var(--at-highlight);
}
.at-product__tab-label:focus-visible {
	outline: 2px solid var(--at-highlight);
	outline-offset: -2px;
}

.at-product__tab-panel {
	display: none;
	padding: var(--at-space-6) 0;
	color: var(--at-body);
	font-family: var(--at-font-body);
	font-size: var(--at-fs-body);
	line-height: 1.6;
}
.at-product__tab-panel.is-active {
	display: block;
}
.at-product__tab-placeholder {
	color: var(--at-muted);
	font-style: italic;
}

/* Specifications grid */
.at-product__attr-grid {
	display: grid;
	grid-template-columns: max-content 1fr;
	column-gap: var(--at-space-5);
	row-gap: var(--at-space-2);
}
.at-product__attr-name {
	font-family: var(--at-font-mono);
	font-size: var(--at-fs-eyebrow);
	color: var(--at-muted);
	text-transform: uppercase;
	letter-spacing: var(--at-tracking-eyebrow);
	padding: var(--at-space-2) 0;
	border-bottom: 1px solid var(--at-hairline);
}
.at-product__attr-value {
	color: var(--at-headline);
	font-family: var(--at-font-body);
	font-size: var(--at-fs-body-sm);
	padding: var(--at-space-2) 0;
	border-bottom: 1px solid var(--at-hairline);
}
.at-product__attr-grid > div:nth-last-child(-n+2) {
	border-bottom: 0;
}

/* === Related products === */
.related.products,
.up-sells {
	margin-top: var(--at-space-8);
}
.related.products > h2,
.up-sells > h2 {
	font-family: var(--at-font-display);
	font-size: var(--at-fs-h3);
	color: var(--at-headline);
	text-transform: uppercase;
	letter-spacing: var(--at-tracking-tight);
	margin-bottom: var(--at-space-5);
}

@media (max-width: 980px) {
	.at-product__layout {
		grid-template-columns: 1fr;
		gap: var(--at-space-5);
	}
	.at-product__gallery { position: relative; top: auto; }
}

}
