/* ============================================================
   SINGLE PRODUCT
   ============================================================ */

/* ---- Breadcrumb bar ---- */
.woocommerce-breadcrumb {
	font-family: var(--vt-font-mono);
	font-size: 10px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--vt-muted);
	padding: 16px 24px;
	border-bottom: 1px solid var(--vt-border);
	margin: 0;
	display: block;
}
.woocommerce-breadcrumb a { color: var(--vt-muted); }
.woocommerce-breadcrumb a:hover { color: var(--vt-accent); }

/* ---- Product grid — two-column area only ---- */
.single-product .vt-product-main {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0;
	align-items: start;
}

/* ---- Gallery — left column, sticky ---- */
.single-product .vt-product-main .woocommerce-product-gallery {
	grid-column: 1;
	grid-row: 1;
	align-self: start;
	/* Override WooCommerce's width: 48% / float: left */
	width: 100% !important;
	float: none !important;
	border-right: 1px solid var(--vt-border);
	background: var(--vt-bg);
	padding: 0;
	position: sticky;
	top: var(--vt-header-height);
	overflow: hidden;
}

/* Let WC's inner wrappers size naturally — the img drives the square */
.single-product .vt-product-main .woocommerce-product-gallery__wrapper,
.single-product .vt-product-main .woocommerce-product-gallery .flex-viewport {
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	display: block !important;
}

.single-product .vt-product-main .woocommerce-product-gallery__image,
.single-product .vt-product-main .woocommerce-product-gallery__image a,
.single-product .vt-product-main .woocommerce-product-gallery figure,
.single-product .vt-product-main .woocommerce-product-gallery__image div {
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	display: block !important;
}

/* The image: full width, natural height, no cropping */
.single-product .vt-product-main .woocommerce-product-gallery img {
	width: 100%;
	height: auto;
	display: block;
}

.woocommerce-product-gallery__trigger,
.flex-control-thumbs { display: none !important; }

.single-product div.product .woocommerce-product-gallery__image a {
	pointer-events: none;
	cursor: default;
}

/* ---- Summary — right column ---- */
.single-product .vt-product-main .summary.entry-summary {
	grid-column: 2;
	grid-row: 1;
	/* Override WooCommerce's width: 48% / float: right */
	width: 100% !important;
	float: none !important;
	padding: 36px 32px 32px;
}

/* ---- Tabs / related — outside vt-product-main, full width ---- */
.single-product .woocommerce-tabs,
.single-product .up-sells,
.single-product .related {
	width: 100%;
}

/* ---- Artist name ---- */
.vt-product-artist {
	font-family: var(--vt-font-body);
	font-size: 15px;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--vt-muted);
	text-decoration: none;
	transition: color 0.15s ease;
	display: inline;
}
/* Wrap the whole artist line in a block container */
.vt-product-artists {
	display: block;
	margin: 0 0 4px;
}
a.vt-product-artist:hover { color: var(--vt-accent); }
.vt-product-artist-sep { color: var(--vt-muted); font-family: var(--vt-font-mono); font-size: 11px; display: inline; }

/* ---- Product title ---- */
.single-product .product_title.entry-title {
	font-family: var(--vt-font-display) !important;
	font-size: clamp(36px, 5vw, 60px) !important;
	line-height: 0.92 !important;
	letter-spacing: 0.04em !important;
	color: var(--vt-text) !important;
	margin: 0 0 12px !important;
	font-weight: 400 !important;
}

/* ---- Taxonomy rows (category, tags, SKU) ---- */
.vt-product-taxonomy-row {
	display: flex;
	align-items: baseline;
	gap: 8px;
	font-family: var(--vt-font-mono);
	font-size: 11px;
	color: var(--vt-muted);
	margin: 0 0 4px;
	line-height: 1.5;
}
.vt-product-sku--last { margin-bottom: 20px; }
.vt-product-color { margin-bottom: 20px; }
.vt-tax-label {
	font-size: 8px;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--vt-muted);
	opacity: 0.6;
	white-space: nowrap;
	flex-shrink: 0;
	min-width: 44px;
}
.vt-product-taxonomy-row a { color: var(--vt-muted); text-decoration: none; transition: color 0.15s ease; }
.vt-product-taxonomy-row a:hover { color: var(--vt-accent); }

/* ---- Price ---- */
.single-product p.price { margin: 0 0 20px !important; display: flex !important; align-items: baseline !important; gap: 10px !important; flex-wrap: wrap !important; }

/* Sale price (ins) — full size, accent colour */
.single-product p.price ins {
	text-decoration: none !important;
	order: 1 !important;
}
.single-product p.price ins .woocommerce-Price-amount,
.single-product p.price ins bdi {
	font-family: var(--vt-font-display) !important;
	font-size: 48px !important;
	line-height: 1 !important;
	letter-spacing: 0.04em !important;
	color: var(--vt-accent) !important;
}

/* Original price (del) — smaller, muted, strikethrough */
.single-product p.price del {
	order: 2 !important;
	opacity: 1 !important;
	text-decoration: none !important;
}
.single-product p.price del .woocommerce-Price-amount,
.single-product p.price del bdi {
	font-family: var(--vt-font-display) !important;
	font-size: 28px !important;
	line-height: 1 !important;
	letter-spacing: 0.04em !important;
	color: var(--vt-muted) !important;
	text-decoration: line-through !important;
	text-decoration-color: var(--vt-muted) !important;
}

/* Regular (non-sale) price */
.single-product p.price > .woocommerce-Price-amount,
.single-product p.price > bdi {
	font-family: var(--vt-font-display) !important;
	font-size: 48px !important;
	line-height: 1 !important;
	letter-spacing: 0.04em !important;
	color: var(--vt-text) !important;
}

/* ---- Short description ---- */
.woocommerce-product-details__short-description {
	margin: 0 0 8px;
	padding: 16px 0;
	border-top: 1px solid var(--vt-border);
}

.woocommerce-product-details__short-description p {
	font-family: var(--vt-font-body);
	font-size: 15px;
	line-height: 1.65;
	color: var(--vt-muted);
	margin: 0;
}

/* ---- Cart row: button + stock badge inline ---- */
.vt-cart-row {
	display: flex;
	align-items: center;
	gap: 16px;
	margin: 24px 0 24px;
}
.vt-stock {
	font-family: var(--vt-font-mono);
	font-size: 9px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	padding: 5px 10px;
	white-space: nowrap;
	flex-shrink: 0;
}
.vt-stock--in  { color: var(--vt-grade-nm-text); border: 1px solid currentColor; }
.vt-stock--out { color: var(--vt-red-text);      border: 1px solid currentColor; }
.vt-cart-row form.cart { display: flex; align-items: center; gap: 10px; margin: 0; }
.vt-cart-row .quantity { display: flex; align-items: center; }
.vt-cart-row .quantity input[type="number"] {
	font-family: var(--vt-font-mono) !important;
	background: var(--vt-surface2) !important;
	border: 1px solid var(--vt-border) !important;
	color: var(--vt-text) !important;
	padding: 12px 8px !important;
	width: 52px !important;
	height: 44px !important;
	text-align: center !important;
	font-size: 14px !important;
	-moz-appearance: textfield;
}
.vt-cart-row .quantity input[type="number"]::-webkit-inner-spin-button,
.vt-cart-row .quantity input[type="number"]::-webkit-outer-spin-button { -webkit-appearance: none; }
.vt-cart-row .quantity input[type="number"]:focus { border-color: var(--vt-accent) !important; outline: none !important; }
.vt-cart-row .single_add_to_cart_button {
	font-family: var(--vt-font-mono) !important;
	font-size: 11px !important;
	letter-spacing: 0.14em !important;
	text-transform: uppercase !important;
	background: var(--vt-accent) !important;
	color: #0a0a0a !important;
	border: none !important;
	padding: 0 24px !important;
	height: 44px !important;
	cursor: pointer !important;
	transition: opacity 0.15s ease !important;
	white-space: nowrap !important;
}
.vt-cart-row .single_add_to_cart_button:hover { opacity: 0.85 !important; }
.single-product .stock { display: none !important; }

/* ---- Product meta grid ---- */
.vt-product-meta-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	border-top: 1px solid var(--vt-border);
	border-left: 1px solid var(--vt-border);
	margin: 0 0 20px;
}
.vt-meta-cell { padding: 10px 12px; border-right: 1px solid var(--vt-border); border-bottom: 1px solid var(--vt-border); }
.vt-meta-label { font-family: var(--vt-font-mono); font-size: 8px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--vt-muted); margin-bottom: 3px; }
.vt-meta-value { font-family: var(--vt-font-mono); font-size: 12px; color: var(--vt-text); }
.single-product .product_meta { display: none; }

/* ---- Tracklist ---- */
.vt-tracklist { border: 1px solid var(--vt-border); margin: 20px 0 0; }
.vt-tracklist-header { font-family: var(--vt-font-mono); font-size: 9px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--vt-muted); padding: 10px 14px; border-bottom: 1px solid var(--vt-border); background: var(--vt-surface2); }
.vt-track { display: grid; grid-template-columns: 36px 1fr auto; align-items: center; gap: 10px; padding: 8px 14px; border-bottom: 1px solid var(--vt-border); font-size: 13px; }
.vt-track:last-child { border-bottom: none; }
.vt-track:hover { background: var(--vt-surface); }
.vt-track-num { font-family: var(--vt-font-mono); font-size: 10px; color: var(--vt-muted); }
.vt-track-name { color: var(--vt-text); font-family: var(--vt-font-body); font-size: 13px; }
.vt-track-dur { font-family: var(--vt-font-mono); font-size: 10px; color: var(--vt-muted); text-align: right; }

/* ---- Tabs ---- */
.single-product .woocommerce-tabs { border-top: 1px solid var(--vt-border); }
.single-product .woocommerce-tabs ul.tabs { background: var(--vt-surface2) !important; border-bottom: 1px solid var(--vt-border) !important; padding: 0 !important; margin: 0 !important; display: flex; }
.single-product .woocommerce-tabs ul.tabs::before { display: none !important; }
.single-product .woocommerce-tabs ul.tabs li { background: none !important; border: none !important; border-right: 1px solid var(--vt-border) !important; margin: 0 !important; padding: 0 !important; float: none !important; }
.single-product .woocommerce-tabs ul.tabs li::before,
.single-product .woocommerce-tabs ul.tabs li::after { display: none !important; }
.single-product .woocommerce-tabs ul.tabs li a { font-family: var(--vt-font-mono) !important; font-size: 10px !important; letter-spacing: 0.16em !important; text-transform: uppercase !important; color: var(--vt-muted) !important; padding: 14px 20px !important; display: block !important; }
.single-product .woocommerce-tabs ul.tabs li.active { border-bottom: 2px solid var(--vt-accent) !important; }
.single-product .woocommerce-tabs ul.tabs li.active a,
.single-product .woocommerce-tabs ul.tabs li a:hover { color: var(--vt-text) !important; }
.single-product .woocommerce-tabs .woocommerce-Tabs-panel { background: var(--vt-bg) !important; padding: 24px 28px !important; border: none !important; margin: 0 !important; }
.single-product .woocommerce-tabs .woocommerce-Tabs-panel h2 { display: none; }
.single-product .woocommerce-tabs .woocommerce-Tabs-panel p,
.single-product .woocommerce-tabs .woocommerce-Tabs-panel li { font-family: var(--vt-font-body); font-size: 15px; line-height: 1.7; color: var(--vt-muted); }

/* ---- Related / up-sells ---- */
.single-product .related,
.single-product .up-sells {
	border-top: 1px solid var(--vt-border);
}

/* Horizontal scroll strip — one row, no clipping */
.single-product .related .vt-products,
.single-product .up-sells .vt-products {
	display: flex;
	flex-wrap: nowrap;
	overflow-x: auto;
	overflow-y: visible;
	scrollbar-width: thin;
	scrollbar-color: var(--vt-border) transparent;
	gap: 1px;
	background: var(--vt-border);
}
.single-product .related .vt-products .vt-card,
.single-product .up-sells .vt-products .vt-card {
	flex: 0 0 180px;
	width: 180px;
}
.vt-section-header {
	border-bottom: 1px solid var(--vt-border);
}
.vt-section-title {
	font-family: var(--vt-font-display) !important;
	font-size: 28px !important;
	letter-spacing: 0.06em !important;
	color: var(--vt-text) !important;
	padding: 20px 24px 16px !important;
	margin: 0 !important;
	font-weight: 400 !important;
}

/* ---- Sale flash — replaced by ribbon; hide WC native badge ---- */
.single-product span.onsale { display: none !important; }

/* ---- Sale corner ribbon — "Flere plader af" cards, top-left, amber ---- */
.vt-mba-card__img--sale::before {
	content: 'TILBUD';
	position: absolute;
	top: 16px;
	left: -28px;
	width: 110px;
	text-align: center;
	background: var(--vt-accent);
	color: #0a0a0a;
	font-family: var(--vt-font-mono);
	font-size: 7px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	padding: 4px 0;
	transform: rotate(-45deg);
	transform-origin: center;
	z-index: 2;
	pointer-events: none;
}

/* ---- Pre-order corner ribbon — "Flere plader af" cards, top-right, green ---- */
.vt-mba-card__img--preorder::after {
	content: 'FORUDBESTIL';
	position: absolute;
	top: 16px;
	right: -28px;
	width: 110px;
	text-align: center;
	background: #3a7d44;
	color: #fff;
	font-family: var(--vt-font-mono);
	font-size: 7px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	padding: 4px 0;
	transform: rotate(45deg);
	transform-origin: center;
	z-index: 2;
	pointer-events: none;
}

/* ---- Sale corner ribbon — single product gallery, top-left, amber ---- */
.vt-is-sale .woocommerce-product-gallery {
	overflow: hidden;
}

.vt-is-sale .woocommerce-product-gallery::before {
	content: 'TILBUD';
	position: absolute;
	top: 36px;
	left: -52px;
	width: 220px;
	text-align: center;
	background: var(--vt-accent);
	color: #0a0a0a;
	font-family: var(--vt-font-mono);
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	padding: 8px 0;
	transform: rotate(-45deg);
	transform-origin: center;
	z-index: 2;
	pointer-events: none;
}

/* ---- Pre-order corner ribbon — single product gallery, top-right, green ---- */
.vt-is-preorder .woocommerce-product-gallery {
	overflow: hidden;
}

.vt-is-preorder .woocommerce-product-gallery::after {
	content: 'FORUDBESTIL';
	position: absolute;
	top: 36px;
	right: -52px;
	width: 220px;
	text-align: center;
	background: #3a7d44;
	color: #fff;
	font-family: var(--vt-font-mono);
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	padding: 8px 0;
	transform: rotate(45deg);
	transform-origin: center;
	z-index: 2;
	pointer-events: none;
}

/* ---- Pre-order notice ---- */
.vt-preorder-notice {
	display: flex;
	align-items: baseline;
	gap: 10px;
	background: var(--vt-accent);
	color: #0a0a0a;
	padding: 10px 14px;
	margin: 0 0 16px;
}

.vt-preorder-label {
	font-family: var(--vt-font-mono);
	font-size: 9px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	font-weight: 500;
	flex-shrink: 0;
}

.vt-preorder-date {
	font-family: var(--vt-font-mono);
	font-size: 11px;
	letter-spacing: 0.06em;
	opacity: 0.85;
}

/* ---- Flere plader af ---- */
.vt-more-by-artist { grid-column: 1 / -1; border-top: 1px solid var(--vt-border); }
.vt-more-by-artist__header { display: flex; align-items: baseline; gap: 10px; padding: 20px 24px 16px; border-bottom: 1px solid var(--vt-border); }
.vt-more-by-artist__label { font-family: var(--vt-font-mono); font-size: 9px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--vt-muted); }
.vt-more-by-artist__all { font-family: var(--vt-font-display); font-size: 28px; letter-spacing: 0.06em; color: var(--vt-text); text-decoration: none; line-height: 1; transition: color 0.15s ease; }
.vt-more-by-artist__all:hover { color: var(--vt-accent); }
.vt-more-by-artist__grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--vt-border); }
.vt-mba-card { display: block; text-decoration: none; border-right: 1px solid var(--vt-border); transition: background 0.15s ease; }
.vt-mba-card:last-child { border-right: none; }
.vt-mba-card:hover { background: var(--vt-surface); }
.vt-mba-card__img { position: relative; aspect-ratio: 1; overflow: hidden; border-bottom: 1px solid var(--vt-border); }
.vt-mba-card__img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.3s ease; }
.vt-mba-card:hover .vt-mba-card__img img { transform: scale(1.03); }

@media (prefers-reduced-motion: reduce) {
	.vt-mba-card__img img { transition: none; }
	.vt-mba-card:hover .vt-mba-card__img img { transform: none; }
}
.vt-mba-card__img .vt-grade-badge { position: absolute; top: 10px; left: 10px; }
.vt-mba-card__title { font-family: var(--vt-font-body); font-size: 13px; font-weight: 600; color: var(--vt-text); padding: 12px 14px 4px; line-height: 1.3; }
.vt-mba-card__price { font-family: var(--vt-font-display); font-size: 20px; letter-spacing: 0.04em; color: var(--vt-accent); padding: 0 14px 14px; }
.vt-mba-card__price .woocommerce-Price-amount { color: inherit; }

/* ---- Responsive ---- */
@media (max-width: 1024px) {
	.single-product .vt-product-main { grid-template-columns: 1fr; }
	.single-product .vt-product-main .woocommerce-product-gallery { grid-column: 1; grid-row: 1; border-right: none; border-bottom: 1px solid var(--vt-border); position: static; padding: 0; }
	.single-product .vt-product-main .woocommerce-product-gallery img { width: 100%; height: auto; }
	.single-product .vt-product-main .summary.entry-summary { grid-column: 1; grid-row: 2; }
	.single-product .product_title.entry-title { font-size: clamp(32px, 6vw, 48px) !important; }
	.vt-more-by-artist__grid { grid-template-columns: repeat(2, 1fr); }
	.vt-mba-card:nth-child(2) { border-right: none; }
}

@media (max-width: 640px) {
	.single-product div.product .summary.entry-summary { padding: 24px 20px; }
	.vt-cart-row { flex-wrap: wrap; }
	.vt-cart-row form.cart { width: 100%; }
	.vt-cart-row .single_add_to_cart_button { flex: 1 !important; }
	.vt-product-meta-grid { grid-template-columns: repeat(2, 1fr) !important; }
	.vt-more-by-artist__grid { grid-template-columns: repeat(2, 1fr); }
}
