/**
 * Single product ??? reference mockup (self-contained)
 * Scoped: body.gl-sp-reference .gl-sp
 */

body.gl-sp-reference {
	--gl-sp-red: #b80000;
	--gl-sp-navy: #003b6b;
	--gl-sp-text: #1a2333;
	--gl-sp-muted: #5d6b7a;
	--gl-sp-border: #e8eaed;
	--gl-sp-bg: #f5f6f8;
	--gl-sp-card: #ffffff;
	--gl-sp-radius: 8px;
	--gl-sp-radius-lg: 12px;
	--gl-sp-shadow: 0 8px 32px rgba(15, 30, 48, 0.08);
	--gl-sp-shadow-sm: 0 2px 14px rgba(15, 30, 48, 0.06);
	--gl-sp-max: 1280px;
	--gl-sp-font: var(--hdr-font, "Avenir Next", "Inter", "Open Sans", system-ui, sans-serif);
	/* Fluid typography — rem base is 62.5% (1rem = 10px) */
	--gl-sp-fs-body:          clamp(1.5rem, 1.4rem + 0.35vw, 1.6rem);         /* 15–16px */
	--gl-sp-fs-sm:            clamp(1.3rem, 1.25rem + 0.25vw, 1.4rem);        /* 13–14px */
	--gl-sp-fs-meta:          1.4rem;                                         /* 14px */
	--gl-sp-fs-caption:       1.4rem;                                         /* 14px */
	--gl-sp-fs-eyebrow:       1.2rem;                                         /* 12px */
	--gl-sp-fs-h1:            clamp(2.4rem, 2rem + 1.2vw, 3.2rem);            /* 24–32px */
	--gl-sp-fs-h2:            clamp(2rem, 1.8rem + 0.7vw, 2.4rem);             /* 20–24px */
	--gl-sp-fs-h3:            clamp(1.7rem, 1.55rem + 0.45vw, 2rem);           /* 17–20px */
	/* Match old .product_title.entry-title { font-size: 26px } */
	--gl-sp-fs-product-title: clamp(2rem, 1.7rem + 1.2vw, 2.6rem);            /* 20–26px */
	--gl-sp-fs-price:         clamp(1.8rem, 1.6rem + 0.6vw, 2.1rem);          /* 18–21px */
	--gl-sp-fs-price-was:     1.4rem;                                         /* 14px */
	--gl-sp-fs-spec-label:    1.4rem;                                         /* 14px */
	--gl-sp-fs-spec-value:    1.5rem;                                         /* 15px */
	--gl-sp-gallery-height: clamp(175px, 20vw, 275px);
	/* Column proportions: 25% sidebar | 30% gallery | 45% product info */
	--gl-sp-col-sidebar: 25fr;
	--gl-sp-col-main: 75fr;
	--gl-sp-col-gallery: 4fr;
	--gl-sp-col-buy: 6fr;
}

/* ????????? Page shell ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? */

body.gl-sp-reference.single-product {
	background: var(--gl-sp-bg) !important;
}

body.gl-sp-reference .content-area {
	background: transparent !important;
}

body.gl-sp-reference .main-special-left {
	display: none !important;
}

body.gl-sp-reference .gl-sp-wrap.woo-shop-layout,
body.gl-sp-reference .gl-sp-wrap .wrapper {
	max-width: var(--gl-sp-max);
	margin-left: auto;
	margin-right: auto;
}

.wrapper {
	width: 100% !important;
}

body.gl-sp-reference .main-special-right,
body.gl-sp-reference .main-special-right--full {
	width: 100% !important;
	max-width: 100% !important;
	float: none !important;
}

body.gl-sp-reference .gl-sp {
	font-family: var(--gl-sp-font);
	font-size: var(--gl-sp-fs-body);
	line-height: 1.65;
	color: var(--gl-sp-text);
	display: block !important;
}

/* Kill legacy style.css layout */
body.gl-sp-reference .product,
body.gl-sp-reference .gl-sp.product {
	display: block !important;
	flex-wrap: nowrap !important;
	justify-content: flex-start !important;
}

body.gl-sp-reference .product .wpgs--with-images,
body.gl-sp-reference .product .woocommerce-product-gallery,
body.gl-sp-reference .product .woo-product-gallery-slider,
body.gl-sp-reference .product .summary.entry-summary,
body.gl-sp-reference .gl-sp__gallery,
body.gl-sp-reference .gl-sp__buy {
	width: auto !important;
	max-width: none !important;
	float: none !important;
}

/* Breadcrumb strip ??? Yoast (#breadcrumbs), same as legacy Gastroline .bread-bg */
body.gl-sp-reference.single-product .bread-bg {
	background: var(--gl-sp-bg, #f5f6f8) !important;
	border-bottom: 1px solid var(--gl-sp-border);
	font-size: var(--gl-sp-fs-sm);
	font-weight: 700;
	padding: 0;
}

body.gl-sp-reference.single-product .bread-bg .wrapper {
	max-width: var(--gl-sp-max);
	margin-inline: auto;
	padding-inline: clamp(16px, 4vw, 24px);
	box-sizing: border-box;
}

body.gl-sp-reference .gl-sp-wrap.woo-shop-layout,
body.gl-sp-reference .gl-sp-wrap.wrapper {
	padding-inline: clamp(16px, 4vw, 24px);
	box-sizing: border-box;
}

body.gl-sp-reference.single-product #breadcrumbs {
	margin: 0;
	padding: clamp(10px, 1.8vw, 14px) 0;
	font-size: inherit;
	font-weight: inherit;
	line-height: 1.45;
	color: var(--gl-sp-muted) !important;
	overflow-wrap: anywhere;
	word-break: break-word;
}

body.gl-sp-reference.single-product #breadcrumbs a {
	color: var(--gl-sp-navy) !important;
	font-weight: 600;
	text-decoration: none;
}

body.gl-sp-reference.single-product #breadcrumbs a:hover {
	color: var(--gl-sp-red) !important;
	text-decoration: underline;
}

body.gl-sp-reference.single-product .breadcrumb_last {
	color: var(--gl-sp-muted) !important;
	font-weight: 600;
}

body.gl-sp-reference .woocommerce-breadcrumb {
	margin-bottom: 20px !important;
	font-size: var(--gl-sp-fs-sm);
	color: var(--gl-sp-muted) !important;
}

/* ????????? WooCommerce notices (override style.css fixed toast) ??????????????????????????????????????????????????? */
body.gl-sp-reference.single-product .woocommerce-notices-wrapper {
	position: relative;
	z-index: 3;
	width: 100%;
	max-width: var(--gl-sp-max);
	margin: 0 auto clamp(14px, 2vw, 20px);
	padding: 0;
	clear: both;
	box-sizing: border-box;
}

body.gl-sp-reference.single-product .woocommerce-message,
body.gl-sp-reference.single-product .woocommerce-error,
body.gl-sp-reference.single-product .woocommerce-info {
	position: relative !important;
	top: auto !important;
	left: auto !important;
	right: auto !important;
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 0 12px !important;
	padding: 14px 52px 14px 16px !important;
	display: flex !important;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-start;
	gap: 10px 16px;
	border: 1px solid var(--gl-sp-border) !important;
	border-top: 1px solid var(--gl-sp-border) !important;
	border-radius: var(--gl-sp-radius-lg) !important;
	box-shadow: var(--gl-sp-shadow);
	font-family: var(--gl-sp-font);
	font-size: var(--gl-sp-fs-sm) !important;
	font-weight: 500;
	line-height: 1.5 !important;
	color: var(--gl-sp-text) !important;
	background: var(--gl-sp-card) !important;
	box-sizing: border-box;
}

/* ATC success — legacy Gastroline green bar (#6bbd6e), slim */
body.gl-sp-reference.single-product .woocommerce-message {
	gap: 10px 12px;
	padding: 8px 40px 8px 16px !important;
	border: none !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	color: #fff !important;
	background: #6bbd6e !important;
	font-size: 13px !important;
	line-height: 1.35 !important;
	outline: none !important;
	animation: gl-sp-notice-in 0.28s ease;
}

/* Kill global :focus-visible brand-red outline on the notice shell */
body.gl-sp-reference.single-product .woocommerce-message:focus,
body.gl-sp-reference.single-product .woocommerce-message:focus-visible {
	outline: none !important;
	box-shadow: none !important;
}

@keyframes gl-sp-notice-in {
	from {
		opacity: 0;
		transform: translateY(-6px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

body.gl-sp-reference.single-product .woocommerce-error {
	border-left: 4px solid var(--gl-sp-red) !important;
	background: #fff5f5 !important;
	color: #7f1010 !important;
	font-weight: 600;
}

body.gl-sp-reference.single-product .woocommerce-error li {
	color: #7f1010 !important;
}

body.gl-sp-reference.single-product .woocommerce-info {
	border-left: 4px solid var(--gl-sp-navy) !important;
	background: #f4f8fc !important;
	color: var(--gl-sp-navy, #003b6b) !important;
}

body.gl-sp-reference.single-product .woocommerce-message::before,
body.gl-sp-reference.single-product .woocommerce-info::before,
body.gl-sp-reference.single-product .woocommerce-error::before {
	content: "" !important;
	display: none !important;
}

/* Navy filled "Se handlekurv" on green bar; gap before × */
body.gl-sp-reference.single-product .woocommerce-message a:not(.close-alert):not(.gl-sp-notice__close) {
	order: 2;
	flex: 0 0 auto;
	min-height: 0 !important;
	margin: 0 32px 0 auto !important;
	padding: 5px 12px !important;
	font-size: 12px !important;
	font-weight: 600 !important;
	line-height: 1.25 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	text-decoration: none !important;
	color: #fff !important;
	background: #003b6b !important;
	border: none !important;
	border-radius: 3px !important;
	box-shadow: none !important;
	transform: none !important;
	transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

body.gl-sp-reference.single-product .woocommerce-message a:not(.close-alert):not(.gl-sp-notice__close):hover {
	color: #003b6b !important;
	background: #fff !important;
	border: 1px solid #003b6b !important;
	box-shadow: none !important;
	transform: none !important;
}

body.gl-sp-reference.single-product .woocommerce-error a:not(.close-alert):not(.gl-sp-notice__close),
body.gl-sp-reference.single-product .woocommerce-info a:not(.close-alert):not(.gl-sp-notice__close) {
	order: 2;
	flex: 0 0 auto;
	margin: 0 40px 0 auto !important;
	padding: 8px 14px !important;
	font-size: var(--gl-sp-fs-meta) !important;
	font-weight: 600 !important;
	line-height: 1.25 !important;
	text-decoration: none !important;
	color: var(--gl-sp-navy) !important;
	background: transparent !important;
	border: 2px solid var(--gl-sp-navy) !important;
	border-radius: var(--gl-sp-radius) !important;
	box-shadow: none !important;
	transform: none !important;
	transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

body.gl-sp-reference.single-product .woocommerce-error a:not(.close-alert):not(.gl-sp-notice__close):hover,
body.gl-sp-reference.single-product .woocommerce-info a:not(.close-alert):not(.gl-sp-notice__close):hover {
	color: #fff !important;
	background: var(--gl-sp-navy) !important;
	border-color: var(--gl-sp-navy) !important;
	box-shadow: none !important;
	transform: none !important;
}

body.gl-sp-reference.single-product .woocommerce-message .gl-sp-notice__close,
body.gl-sp-reference.single-product .woocommerce-message .close-alert {
	position: absolute;
	top: 50%;
	right: 10px;
	z-index: 2;
	transform: translateY(-50%);
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 24px !important;
	min-width: 24px !important;
	height: 24px !important;
	margin: 0 !important;
	padding: 0 !important;
	font-family: inherit;
	font-size: 17px;
	font-weight: 400;
	line-height: 1;
	color: #fff !important;
	text-decoration: none !important;
	background: transparent !important;
	border: none !important;
	border-radius: 0;
	cursor: pointer;
	opacity: 1;
	pointer-events: auto;
	transition: opacity 0.2s ease;
}

body.gl-sp-reference.single-product .woocommerce-message .gl-sp-notice__close:hover,
body.gl-sp-reference.single-product .woocommerce-message .close-alert:hover {
	color: #fff !important;
	background: transparent !important;
	opacity: 0.85;
}

body.gl-sp-reference.single-product .woocommerce-error .gl-sp-notice__close,
body.gl-sp-reference.single-product .woocommerce-error .close-alert,
body.gl-sp-reference.single-product .woocommerce-info .gl-sp-notice__close,
body.gl-sp-reference.single-product .woocommerce-info .close-alert {
	position: absolute;
	top: 50%;
	right: 12px;
	z-index: 2;
	transform: translateY(-50%);
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 32px !important;
	min-width: 32px !important;
	height: 32px !important;
	margin: 0 !important;
	padding: 0 !important;
	font-family: inherit;
	font-size: 22px;
	font-weight: 400;
	line-height: 1;
	color: var(--gl-sp-muted) !important;
	text-decoration: none !important;
	background: transparent !important;
	border: none !important;
	border-radius: 50%;
	cursor: pointer;
	opacity: 1;
	pointer-events: auto;
	transition: color 0.2s ease, background 0.2s ease;
}

body.gl-sp-reference.single-product .woocommerce-error .gl-sp-notice__close:hover,
body.gl-sp-reference.single-product .woocommerce-error .close-alert:hover,
body.gl-sp-reference.single-product .woocommerce-info .gl-sp-notice__close:hover,
body.gl-sp-reference.single-product .woocommerce-info .close-alert:hover {
	color: var(--gl-sp-navy) !important;
	background: var(--gl-sp-bg) !important;
}

@media (max-width: 767px) {
	body.gl-sp-reference.single-product .woocommerce-message,
	body.gl-sp-reference.single-product .woocommerce-error,
	body.gl-sp-reference.single-product .woocommerce-info {
		flex-direction: column;
		align-items: stretch;
		padding: 10px 36px 10px 12px !important;
	}

	body.gl-sp-reference.single-product .woocommerce-message {
		padding: 8px 36px 8px 12px !important;
	}

	/* Keep clear gap before absolute × (do not wipe margin-right) */
	body.gl-sp-reference.single-product .woocommerce-message a:not(.close-alert):not(.gl-sp-notice__close) {
		order: 0;
		width: auto;
		max-width: calc(100% - 32px);
		align-self: flex-start;
		margin: 2px 28px 0 0 !important;
		text-align: center;
		justify-content: center;
		display: inline-flex;
	}

	body.gl-sp-reference.single-product .woocommerce-error a:not(.close-alert):not(.gl-sp-notice__close),
	body.gl-sp-reference.single-product .woocommerce-info a:not(.close-alert):not(.gl-sp-notice__close) {
		order: 0;
		width: 100%;
		margin: 4px 0 0 !important;
		text-align: center;
		justify-content: center;
		display: inline-flex;
	}

	body.gl-sp-reference.single-product .woocommerce-message .gl-sp-notice__close,
	body.gl-sp-reference.single-product .woocommerce-message .close-alert {
		top: 50%;
		right: 10px;
		transform: translateY(-50%);
	}

	body.gl-sp-reference.single-product .woocommerce-error .gl-sp-notice__close,
	body.gl-sp-reference.single-product .woocommerce-error .close-alert,
	body.gl-sp-reference.single-product .woocommerce-info .gl-sp-notice__close,
	body.gl-sp-reference.single-product .woocommerce-info .close-alert {
		top: 12px;
		right: 10px;
		transform: none;
	}
}

/* style.css hides notices below 820px ??? keep visible on single product */
@media (max-width: 820px) {
	body.gl-sp-reference.single-product .woocommerce-message,
	body.gl-sp-reference.single-product .woocommerce-error,
	body.gl-sp-reference.single-product .woocommerce-info {
		display: flex !important;
	}
}

/* ????????? Hero card ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? */

/* ── Hero: gallery + buy box side by side (no outer card) ── */
body.gl-sp-reference .gl-sp__hero {
	background: transparent;
	border: none;
	border-radius: 0;
	box-shadow: none;
	padding: 0;
	margin-bottom: clamp(20px, 3vw, 28px);
}

body.gl-sp-reference .gl-sp__hero-inner {
	display: grid;
	grid-template-columns: minmax(0, var(--gl-sp-col-gallery)) minmax(0, var(--gl-sp-col-buy));
	gap: clamp(20px, 3vw, 32px);
	align-items: start;
}

body.gl-sp-reference .gl-sp__buy-card {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 0;
	padding: clamp(20px, 2.5vw, 28px);
	background: var(--gl-sp-card);
	border: 1px solid var(--gl-sp-border);
	border-radius: var(--gl-sp-radius-lg);
	box-shadow: var(--gl-sp-shadow-sm, 0 2px 14px rgba(15, 30, 48, 0.06));
	min-height: 100%;
	box-sizing: border-box;
}

body.gl-sp-reference .gl-sp__gallery {
	position: relative;
	min-width: 0;
}

body.gl-sp-reference .gl-sp__buy {
	min-width: 0;
	/* padding: 0 0 0 clamp(20px, 3vw, 36px) !important; */
	margin: 0 !important;
	border-left: none !important;
}

/* Sale badge — hidden on frontend */
body.gl-sp-reference .gl-sp__gallery .onsale,
body.gl-sp-reference .gl-sp-sale-badge {
	display: none !important;
	visibility: hidden !important;
}

/* Gallery */
body.gl-sp-reference .gl-sp__gallery .woo-product-gallery-slider,
body.gl-sp-reference .gl-sp__gallery .woocommerce-product-gallery {
	display: flex !important;
	flex-direction: column !important;
	grid-template-columns: none !important;
	background: transparent;
	border: none !important;
	border-radius: 0;
	padding: 0;
	box-shadow: none;
	opacity: 1 !important;
	visibility: visible !important;
}

body.gl-sp-reference .gl-sp__gallery .wpgs-for,
body.gl-sp-reference .gl-sp__gallery .woocommerce-product-gallery:not(.woo-product-gallery-slider) .flex-viewport {
	order: 1;
	width: 100% !important;
	height: var(--gl-sp-gallery-height) !important;
	min-height: var(--gl-sp-gallery-height) !important;
	margin: 0 0 12px !important;
	overflow: hidden;
	border: 1px solid var(--gl-sp-border);
	border-radius: var(--gl-sp-radius);
	background: #fff;
}

body.gl-sp-reference .gl-sp__gallery .wpgs-for .slick-list,
body.gl-sp-reference .gl-sp__gallery .wpgs-for .slick-track {
	height: var(--gl-sp-gallery-height) !important;
	min-height: var(--gl-sp-gallery-height) !important;
}

body.gl-sp-reference .gl-sp__gallery .wpgs-for .slick-slide {
	height: var(--gl-sp-gallery-height) !important;
}

body.gl-sp-reference .gl-sp__gallery .wpgs-for .slick-slide > div,
body.gl-sp-reference .gl-sp__gallery .woocommerce-product-gallery__image,
body.gl-sp-reference .gl-sp__gallery .woocommerce-product-gallery__image a {
	display: flex !important;
	align-items: center;
	justify-content: center;
	height: 100% !important;
	width: 100%;
	min-height: 0;
	margin: 0;
}

body.gl-sp-reference .gl-sp__gallery .gl-sp__zoom-wrap {
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	max-height: 100%;
	overflow: hidden;
	border-radius: var(--gl-sp-radius);
	line-height: 0;
	box-sizing: border-box;
	padding: clamp(12px, 2vw, 20px);
}

body.gl-sp-reference .gl-sp__gallery .gl-sp__zoom-wrap img {
	transition: transform 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
	transform-origin: center center;
	will-change: transform;
}

body.gl-sp-reference .gl-sp__gallery .wpgs-nav {
	order: 2;
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
}

body.gl-sp-reference .gl-sp__gallery .wpgs-nav .slick-track {
	display: flex !important;
	flex-direction: row !important;
	margin: 0 !important;
}

body.gl-sp-reference .gl-sp__gallery .wpgs-nav .slick-slide {
	margin: 0 5px !important;
	border: 2px solid transparent;
	border-radius: 6px;
	overflow: hidden;
	background: #fff;
}

body.gl-sp-reference .gl-sp__gallery .wpgs-nav .slick-slide.slick-current,
body.gl-sp-reference .gl-sp__gallery .wpgs-nav .slick-slide.gl-sp-thumb-active {
	border-color: #1a2333;
}

body.gl-sp-reference .gl-sp__gallery .wpgs-nav .slick-slide img {
	height: 60px !important;
	width: 100% !important;
	object-fit: contain;
	padding: 6px;
	margin: 0 !important;
}

body.gl-sp-reference .gl-sp__gallery .wpgs-for .slick-slide img,
body.gl-sp-reference .gl-sp__gallery .woocommerce-product-gallery__image img,
body.gl-sp-reference .gl-sp__gallery .gl-sp__zoom-wrap img {
	display: block !important;
	width: auto !important;
	height: auto !important;
	max-width: 100% !important;
	max-height: 100% !important;
	margin: 0 auto !important;
	object-fit: contain !important;
	object-position: center center !important;
	padding: 0 !important;
	box-sizing: border-box;
}

body.gl-sp-reference .gl-sp__gallery .gl-sp__zoom-wrap:hover img {
	transform: scale(1.04);
}

/* Legacy theme caps ??? keep full image inside fixed viewport */
body.gl-sp-reference .gl-sp__gallery .slick-initialized .slick-slide img {
	max-height: 100% !important;
}

body.gl-sp-reference .gl-sp__gallery .wpgs-for .slick-prev,
body.gl-sp-reference .gl-sp__gallery .wpgs-for .slick-next {
	width: 40px;
	height: 40px;
	background: rgba(255, 255, 255, 0.95) !important;
	border: 1px solid var(--gl-sp-border);
	border-radius: 50%;
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.1);
	z-index: 4;
}

body.gl-sp-reference .gl-sp__gallery .wpgs-for .slick-prev { left: 8px; }
body.gl-sp-reference .gl-sp__gallery .wpgs-for .slick-next { right: 8px; }

body.gl-sp-reference .gl-sp__gallery .flex-control-thumbs {
	display: flex !important;
	flex-direction: row !important;
	gap: 8px;
	margin-top: 12px !important;
}

body.gl-sp-reference .gl-sp__gallery .flex-control-thumbs img.flex-active {
	border-color: var(--gl-sp-red) !important;
}

/* ── Buy column (reference mockup) ── */

body.gl-sp-reference .gl-sp__buy-card > form.cart,
body.gl-sp-reference .gl-sp__buy-card > form.variations_form.cart {
	margin: 0;
	width: 100%;
}

body.gl-sp-reference .gl-sp__purchase--variable form.variations_form.cart {
	gap: 0;
}

body.gl-sp-reference .gl-sp .single_variation_wrap {
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
	width: 100%;
}

body.gl-sp-reference .gl-sp__rule {
	display: block;
	width: 100%;
	height: 0;
	margin: 10px 0;
	padding: 0;
	border: none;
	border-top: 1px solid #ebebeb;
	background: none;
}

/* Match old .product_title.entry-title */
body.gl-sp-reference .gl-sp__buy h1.product_title {
	font-family: "Open Sans", Lato, sans-serif;
	font-size: var(--gl-sp-fs-product-title) !important;
	font-weight: 600;
	color: #013b6b !important;
	line-height: 1.4;
	margin: 0;
	padding: 0;
	border: none !important;
	letter-spacing: normal;
}

body.gl-sp-reference .gl-sp__meta {
	margin: 0 0 clamp(10px, 1.5vw, 14px);
	font-size: var(--gl-sp-fs-caption);
	color: var(--gl-sp-muted);
	line-height: 1.5;
}

body.gl-sp-reference .gl-sp__rule--meta {
	margin: 0 0 clamp(12px, 1.8vw, 16px);
}

/* Price block — divider space comes from tax/notice margins (legacy .ext-text) */
body.gl-sp-reference .gl-sp__price-block {
	margin: 0 0 clamp(10px, 1.5vw, 14px);
	padding-bottom: 0;
	border-bottom: 1px solid var(--gl-sp-border);
}

body.gl-sp-reference .gl-sp__meta-sep {
	margin: 0 10px;
	opacity: 0.45;
}

/* Producer logo — buy card footer row (left; PDF/Print on right) */
body.gl-sp-reference .gl-sp__producer-logo {
	margin: 0;
	flex: 1 1 auto;
	min-width: 0;
}

body.gl-sp-reference .gl-sp__producer-logo .producent-logo {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: fit-content;
	max-width: min(100%, 260px);
	min-width: 0;
	padding: 5px 10px;
	margin: 0;
	border: 1px solid var(--gl-sp-border);
	border-radius: var(--gl-sp-radius);
	background: #fff;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

body.gl-sp-reference .gl-sp__producer-logo a.producent-logo:hover {
	border-color: var(--gl-sp-navy);
	box-shadow: 0 3px 10px rgba(0, 0, 0, 0.08);
}

/* Closer to old theme .producent-logo img { max-height: 100px; max-width: 200px } */
body.gl-sp-reference .gl-sp__producer-logo .producent-logo__img,
body.gl-sp-reference .gl-sp__producer-logo .producent-logo img {
	display: block;
	width: auto;
	max-width: min(100%, 200px);
	height: clamp(64px, 8vw, 88px);
	margin: 0 !important;
	object-fit: contain;
}

/* Price block — match old .woocommerce-Price-amount { color: #b80000 } */
body.gl-sp-reference .gl-sp__buy p.price,
body.gl-sp-reference .gl-sp__buy .woocommerce-variation-price .price {
	display: flex !important;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 6px 14px;
	/* 20px bottom matches legacy WC price mb so .ext-text -11px yields ~9px gap */
	margin: 0 0 20px !important;
	padding: 0 !important;
	background: none !important;
	border: none !important;
	box-shadow: none !important;
	font-size: var(--gl-sp-fs-price) !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
	color: var(--gl-sp-red) !important;
}

body.gl-sp-reference .gl-sp__buy .price .woocommerce-Price-amount,
body.gl-sp-reference .gl-sp__buy .price bdi {
	font-size: inherit !important;
	font-weight: inherit !important;
	line-height: inherit !important;
	color: var(--gl-sp-red) !important;
}

body.gl-sp-reference .gl-sp__buy .price ins,
body.gl-sp-reference .gl-sp__buy .price ins .woocommerce-Price-amount,
body.gl-sp-reference .gl-sp__buy .price ins bdi {
	order: 1;
	display: inline !important;
	color: var(--gl-sp-red) !important;
	text-decoration: none !important;
	font-size: var(--gl-sp-fs-price) !important;
	font-weight: 700 !important;
}

/* Struck / was — match old .product-price del .woocommerce-Price-amount (#898989) */
body.gl-sp-reference .gl-sp__buy .price del,
body.gl-sp-reference .gl-sp__buy .price del .woocommerce-Price-amount,
body.gl-sp-reference .gl-sp__buy .price del span,
body.gl-sp-reference .gl-sp__buy .price del bdi {
	order: 2;
	display: inline !important;
	font-size: var(--gl-sp-fs-price-was) !important;
	font-weight: 500 !important;
	color: #898989 !important;
	margin: 0 !important;
	text-decoration: line-through !important;
	opacity: 1 !important;
}

/* Regular price (no sale) — same brand red as cards / old theme */
body.gl-sp-reference .gl-sp__buy .price > .woocommerce-Price-amount,
body.gl-sp-reference .gl-sp__buy .price > span.woocommerce-Price-amount {
	color: var(--gl-sp-red) !important;
	font-size: var(--gl-sp-fs-price) !important;
	font-weight: 700 !important;
}

body.gl-sp-reference .gl-sp__buy .woocommerce-price-suffix {
	display: none !important;
}

body.gl-sp-reference .gl-sp__price-meta {
	display: flex;
	flex-direction: column;
	gap: 0;
	margin: 0;
}

body.gl-sp-reference .gl-sp__status--availability {
	margin: 0 0 clamp(14px, 2vw, 18px);
	padding-bottom: clamp(12px, 1.8vw, 16px);
	border-bottom: 1px solid var(--gl-sp-border);
}

body.gl-sp-reference .gl-sp__status--availability[hidden],
body.gl-sp-reference .gl-sp__status--availability.gl-sp__status--pending {
	display: none;
	margin: 0;
	padding: 0;
	border-bottom: none;
}

body.gl-sp-reference .gl-sp__status-item--backorder .gl-sp__status-dot {
	background: #e65100;
}

body.gl-sp-reference .gl-sp__status-item--out .gl-sp__status-dot {
	background: var(--gl-sp-red);
}

body.gl-sp-reference .gl-sp__status-item--ship .gl-sp__status-dot {
	background: var(--gl-sp-navy);
}

/* Match legacy .ext-text: 15px / 600 / #7e9cb4; top/bottom only (no margin-left) */
body.gl-sp-reference .gl-sp__price-tax {
	margin: -11px 0 28px;
	font-size: 1.5rem !important;
	font-weight: 600 !important;
	color: #7e9cb4 !important;
	line-height: 1.4;
}

body.gl-sp-reference .gl-sp__price-category {
	display: none !important;
}

body.gl-sp-reference .gl-sp__price-category a {
	color: inherit;
	text-decoration: none;
}

body.gl-sp-reference .gl-sp__price-category a:hover,
body.gl-sp-reference .gl-sp__price-category a:focus-visible {
	color: var(--gl-sp-navy);
	text-decoration: underline;
}

body.gl-sp-reference .gl-sp__price-notice,
body.gl-sp-reference .gl-sp__price-meta .gm-extra-info-dostawa {
	/* Match legacy .gm-extra-info-dostawa: margin -20px 0 10px */
	margin: -20px 0 10px !important;
	/* Match old theme .single-item-custom / .gm-extra-info-dostawa: 16px / bold */
	font-size: 1.6rem !important;
	font-weight: 700 !important;
	color: var(--gl-sp-red) !important;
	line-height: 1.4;
}

/* Stock row */
body.gl-sp-reference .gl-sp__status {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 14px 22px;
	margin: 0;
}

body.gl-sp-reference .gl-sp__status-item {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: var(--gl-sp-fs-meta);
	font-weight: 600;
}

body.gl-sp-reference .gl-sp__status-dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: #2e7d32;
	flex-shrink: 0;
}

body.gl-sp-reference .gl-sp__status-item--in { color: #2e7d32; }
body.gl-sp-reference .gl-sp__status-item--backorder,
body.gl-sp-reference .gl-sp__status-item--out { color: var(--gl-sp-red); }
body.gl-sp-reference .gl-sp__status-item--ship {
	color: #4a5568;
	font-weight: 600;
}

body.gl-sp-reference .gl-sp__status-ico {
	display: inline-grid;
	place-items: center;
	line-height: 0;
	flex-shrink: 0;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: #eef2f6;
	color: var(--gl-sp-navy);
	vertical-align: middle;
}

body.gl-sp-reference .gl-sp__status-ico svg {
	display: block;
	width: 18px;
	height: 18px;
	margin: 0;
	position: static;
}

body.gl-sp-reference .gl-sp__status-item {
	align-items: center;
}

body.gl-sp-reference .gl-sp__status-item--ship {
	color: var(--gl-sp-navy);
}

/* Hide legacy noise (keep short description visible — see .gl-sp__short-desc) */
body.gl-sp-reference .gl-sp__buy > p.stock,
body.gl-sp-reference .gl-sp__buy-card > p.stock,
body.gl-sp-reference .single-text-item,
body.gl-sp-reference .woocommerce-product-rating {
	display: none !important;
}

/* Short description — match old body text darkness (#4d4d4d), not washed grey */
body.gl-sp-reference .gl-sp__short-desc,
body.gl-sp-reference .gl-sp__buy-card .woocommerce-product-details__short-description {
	display: block !important;
	margin: clamp(8px, 1.2vw, 12px) 0 clamp(14px, 2vw, 18px);
	padding: 0;
	font-family: "Open Sans", Lato, sans-serif;
	font-size: 1.6rem;
	font-weight: 400;
	line-height: 1.4;
	color: #4d4d4d;
}

body.gl-sp-reference .gl-sp__short-desc p,
body.gl-sp-reference .gl-sp__buy-card .woocommerce-product-details__short-description p {
	margin: 0;
	font-size: inherit;
	font-weight: inherit;
	line-height: inherit;
	color: inherit;
}

body.gl-sp-reference .gl-sp__buy-card .ext-text {
	display: none !important;
}

/* Purchase cluster — qty + KJØP */
body.gl-sp-reference .gl-sp__purchase {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

body.gl-sp-reference .gl-sp__buy-footer {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px 16px;
	margin-top: clamp(16px, 2.5vw, 22px);
	padding-top: clamp(14px, 2vw, 18px);
	border-top: 1px solid var(--gl-sp-border);
}

body.gl-sp-reference .gl-sp__buy-footer:not(:has(.gl-sp__producer-logo)) {
	justify-content: flex-end;
}



body.gl-sp-reference .gl-sp__purchase--variable form.variations_form.cart {
	gap: 0;
}

body.gl-sp-reference .gl-sp__purchase--variable .single_variation_wrap {
	gap: 8px;
	margin-top: 0;
}

/* Cart row ??? qty + KJ??P (simple + variable) */
body.gl-sp-reference .gl-sp form.cart:not(.variations_form),
body.gl-sp-reference .gl-sp form.cart:not(.variations_form) .gl-sp__cart-row,
body.gl-sp-reference .gl-sp .single_variation_wrap .woocommerce-variation-add-to-cart,
body.gl-sp-reference .gl-sp .woocommerce-variation-add-to-cart {
	display: flex;
	flex-wrap: nowrap;
	align-items: stretch;
	gap: 8px;
	margin: 0;
	padding: 0;
	width: 100%;
	background: none !important;
	border: none !important;
}

body.gl-sp-reference .gl-sp form.cart:not(.variations_form) {
	display: block;
}

body.gl-sp-reference .gl-sp form.cart .quantity {
	display: inline-flex !important;
	flex: 0 0 auto;
	align-items: center;
	gap: 6px;
	border: none;
	border-radius: 0;
	overflow: visible;
	background: transparent;
	margin: 0 !important;
}

/* Override global theme red circle qty — reference: grey +/- , red qty circle */
body.gl-sp-reference .gl-sp .quantity input.qty,
body.gl-sp-reference .gl-sp form.cart .quantity input.qty,
body.gl-sp-reference.single-product .quantity input.qty {
	min-height: 44px !important;
	height: 44px !important;
	width: 44px !important;
	max-width: 44px !important;
	margin: 0 !important;
	padding: 0 !important;
	border: none !important;
	border-radius: 50% !important;
	background: var(--gl-sp-red) !important;
	color: #fff !important;
	font-size: 1.0625rem !important;
	font-weight: 700 !important;
	text-align: center;
	box-shadow: none !important;
}

body.gl-sp-reference .gl-sp .qty_button.minus,
body.gl-sp-reference .gl-sp .qty_button.plus,
body.gl-sp-reference.single-product .qty_button.minus,
body.gl-sp-reference.single-product .qty_button.plus {
	flex: 0 0 36px;
	width: 36px !important;
	height: 36px !important;
	min-height: 36px !important;
	margin: 0 !important;
	padding: 0 !important;
	border: none !important;
	border-radius: 50% !important;
	background: #eceef0 !important;
	color: #4a5568 !important;
	font-size: 20px !important;
	font-weight: 400 !important;
	line-height: 1 !important;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: background 0.15s ease;
}

body.gl-sp-reference .gl-sp .qty_button.minus:hover,
body.gl-sp-reference .gl-sp .qty_button.plus:hover {
	background: #eceef0 !important;
	color: #1a2333 !important;
}

body.gl-sp-reference .gl-sp .single_add_to_cart_button,
body.gl-sp-reference .woocommerce div.product form.cart .button {
	flex: 1 1 auto;
	min-height: 42px !important;
	width: auto !important;
	max-width: none !important;
	padding: 10px 44px 10px 18px !important;
	border: none !important;
	border-radius: 6px !important;
	background: var(--gl-sp-red) !important;
	color: #fff !important;
	font-size: 1.0625rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.02em;
	text-transform: uppercase !important;
	box-shadow: 0 3px 10px rgba(184, 0, 0, 0.22);
	position: relative;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
}

/* Legacy theme arrow (scripts.js) ??? hidden on reference layout */
body.gl-sp-reference .gl-sp .single-btn-arrow,
body.gl-sp-reference .gl-sp form.cart .arrow-right {
	display: none !important;
}

body.gl-sp-reference .gl-sp .single_add_to_cart_button::after {
	content: none;
}

body.gl-sp-reference .gl-sp .gl-sp__atc-icon,
body.gl-sp-reference .gl-sp .gl-sp__atc-lottie {
	position: absolute;
	right: 14px;
	top: 50%;
	transform: translateY(-50%);
	width: 22px;
	height: 22px;
	pointer-events: none;
	display: flex;
	align-items: center;
	justify-content: center;
}

body.gl-sp-reference .gl-sp .gl-sp__atc-icon svg {
	display: block;
	width: 22px;
	height: 22px;
	color: #fff;
	stroke: currentColor;
	transition: transform 0.25s ease;
}

body.gl-sp-reference .gl-sp .single_add_to_cart_button:hover .gl-sp__atc-icon svg {
	transform: scale(1.1);
}

body.gl-sp-reference .gl-sp .gl-sp__atc-lottie {
	width: 32px;
	height: 32px;
	overflow: visible;
	z-index: 2;
}

body.gl-sp-reference .gl-sp .gl-sp__atc-lottie svg,
body.gl-sp-reference .gl-sp .gl-sp__atc-lottie canvas {
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	max-height: none !important;
}

body.gl-sp-reference .gl-sp .single_add_to_cart_button {
	padding-right: 58px !important;
}

/* Variable products: WC adds .disabled until a variation is matched */
body.gl-sp-reference .gl-sp .single_add_to_cart_button.disabled,
body.gl-sp-reference .gl-sp .single_add_to_cart_button.wc-variation-selection-needed,
body.gl-sp-reference .gl-sp .single_add_to_cart_button.wc-variation-is-unavailable {
	opacity: 0.5 !important;
	cursor: not-allowed !important;
	box-shadow: none !important;
}

body.gl-sp-reference .gl-sp .sp-request-quote-btn {
	flex: 1 1 100%;
	min-height: 52px;
	border-radius: 6px;
	background: var(--gl-sp-red) !important;
	color: #fff !important;
	font-weight: 700;
	border: none;
}

/* Financing + trust ??? two columns */
body.gl-sp-reference .gl-sp__extras {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
	gap: 20px;
	align-items: center;
	margin: 0;
}

body.gl-sp-reference .gl-sp__financing {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	background: #f3f4f6;
	border: 1px solid #e8eaed;
	border-radius: 8px;
	padding: 14px 14px 14px 16px;
	min-height: 100%;
}

body.gl-sp-reference .gl-sp__financing-text strong {
	display: block;
	font-size: var(--gl-sp-fs-body);
	font-weight: 700;
	color: #1a2333;
	margin-bottom: 2px;
	line-height: 1.35;
}

body.gl-sp-reference .gl-sp__financing-amount {
	display: block;
	font-size: var(--gl-sp-fs-sm);
	color: #5d6b7a;
	margin-bottom: 8px;
}

body.gl-sp-reference .gl-sp__financing-link {
	font-size: var(--gl-sp-fs-sm);
	font-weight: 600;
	color: #2563eb;
	text-decoration: none;
}

body.gl-sp-reference .gl-sp__financing-link:hover {
	text-decoration: underline;
}

body.gl-sp-reference .gl-sp__financing-arrow {
	flex-shrink: 0;
	width: 32px;
	height: 32px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: #fff;
	border: 1px solid #e2e4e7;
	border-radius: 50%;
	color: #5d6b7a;
}

body.gl-sp-reference .gl-sp__trust-mini {
	list-style: none;
	margin: 0;
	padding: 4px 0;
	display: flex;
	flex-direction: column;
	gap: 16px;
}

body.gl-sp-reference .gl-sp__trust-mini li {
	display: flex;
	align-items: center;
	gap: 12px;
	min-height: 44px;
}

body.gl-sp-reference .gl-sp__trust-mini-icon {
	flex-shrink: 0;
	align-self: center;
	display: grid;
	place-items: center;
	line-height: 0;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: #fff;
	border: 1px solid var(--gl-sp-border);
	color: var(--gl-sp-navy);
}

body.gl-sp-reference .gl-sp__trust-mini-icon svg {
	display: block;
	width: 20px;
	height: 20px;
	margin: 0;
	position: static;
}

body.gl-sp-reference .gl-sp__trust-mini li > div {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 2px;
	min-height: 40px;
}

body.gl-sp-reference .gl-sp__trust-mini li strong {
	display: block;
	font-size: var(--gl-sp-fs-sm);
	font-weight: 700;
	color: #1a2333;
	line-height: 1.25;
	margin: 0;
}

body.gl-sp-reference .gl-sp__trust-mini li > div span {
	display: block;
	font-size: var(--gl-sp-fs-meta);
	color: #5d6b7a;
	line-height: 1.35;
	margin: 0;
}

/* Secondary actions — PDF / Print (legacy icon-only weLaunch style) */
body.gl-sp-reference .gl-sp__buy-card > .gl-sp__actions,
body.gl-sp-reference .gl-sp__buy-footer > .gl-sp__actions {
	position: static;
	right: auto;
	bottom: auto;
	display: flex;
	flex-direction: row;
	flex: 0 0 auto;
	align-items: center;
	justify-content: flex-end;
	gap: 10px;
	margin: 0;
	width: auto;
	z-index: auto;
}

body.gl-sp-reference .gl-sp__action-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0;
	min-height: 0;
	min-width: 0;
	padding: 0;
	font-family: inherit;
	font-size: 1.6rem;
	font-weight: 300;
	line-height: 1;
	color: var(--gl-sp-navy);
	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	cursor: pointer;
	text-decoration: none;
	transition: color 0.15s ease, opacity 0.15s ease;
}

body.gl-sp-reference .gl-sp__action-btn:hover {
	background: transparent;
	border: 0;
	transform: none;
	opacity: 0.85;
}

body.gl-sp-reference .gl-sp__action-btn:focus-visible {
	outline: 2px solid var(--gl-sp-red);
	outline-offset: 3px;
}

/* Legacy colors: PDF #d73c3c, Print #003b6b — hover swaps */
body.gl-sp-reference .gl-sp__action-btn--pdf {
	color: #d73c3c;
}

body.gl-sp-reference .gl-sp__action-btn--pdf:hover,
body.gl-sp-reference .gl-sp__action-btn--pdf:focus-visible {
	color: #003b6b;
}

body.gl-sp-reference .gl-sp__action-btn--print {
	color: #003b6b;
}

body.gl-sp-reference .gl-sp__action-btn--print:hover,
body.gl-sp-reference .gl-sp__action-btn--print:focus-visible {
	color: #d73c3c;
}

/* weLaunch / old theme: FA fa-2x file-pdf + print */
body.gl-sp-reference .gl-sp__action-btn i.fa,
body.gl-sp-reference .gl-sp__action-btn i.fas {
	display: block;
	line-height: 1;
	width: auto;
	height: auto;
	margin: 0;
	opacity: 1;
}

body.gl-sp-reference .gl-sp__action-icon {
	flex-shrink: 0;
	display: block;
	width: 32px;
	height: 32px;
	opacity: 1;
}

body.gl-sp-reference .gl-sp__action-label {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* Variable products */
body.gl-sp-reference .gl-sp form.variations_form.cart {
	display: flex;
	flex-direction: column;
	gap: 0;
	width: 100%;
}

body.gl-sp-reference .gl-sp__variations-wrap {
	margin: 0;
	padding-top: 0;
	border-top: none;
}

body.gl-sp-reference .gl-sp__variations.variations {
	display: flex;
	flex-direction: column;
	gap: clamp(8px, 1.2vw, 12px);
	width: 100%;
	margin: 0;
}

/*
 * Variation rows:
 * label — match staging/old: Open Sans 16px/700/#4d4d4d, column ~80px, WC pad-right 1em
 * select — keep new B2B theme look (rounded, navy, SVG chevron)
 */
body.gl-sp-reference .gl-sp__variation-field {
	display: flex;
	flex-direction: row;
	align-items: flex-start;
	gap: 0;
	min-width: 0;
}

body.gl-sp-reference .gl-sp__variation-label,
body.gl-sp-reference .gl-sp form.variations_form .variations label,
body.gl-sp-reference .gl-sp form.variations_form .variations .label label {
	flex: 0 0 auto;
	display: block;
	margin: 0;
	padding: 1px 1em 1px 0;
	width: 80px;
	min-width: 80px;
	box-sizing: content-box;
	font-family: "Open Sans", Lato, sans-serif !important;
	font-size: 1.6rem !important;
	font-weight: 700 !important;
	line-height: 2;
	color: #4d4d4d !important;
	letter-spacing: normal;
	text-transform: none;
	text-align: left;
	white-space: nowrap;
	vertical-align: top;
}

body.gl-sp-reference .gl-sp__variation-control,
body.gl-sp-reference .gl-sp form.variations_form .variations .value {
	flex: 1 1 auto;
	display: flex !important;
	width: auto !important;
	min-width: 0;
	max-width: none !important;
	position: relative;
	padding: 1px 1px 1px 0;
	align-items: center;
}

body.gl-sp-reference .gl-sp form.variations_form .variations select,
body.gl-sp-reference .gl-sp form.variations_form select.gl-sp__variation-select {
	display: block;
	width: 100% !important;
	max-width: 100% !important;
	min-height: 36px;
	height: auto;
	margin: 0;
	padding: 7px 40px 7px 12px;
	border: 1px solid #d9d9d9;
	border-radius: 6px;
	font-family: inherit;
	font-size: 1.6rem;
	font-weight: 700;
	line-height: 1.3;
	color: var(--gl-sp-navy);
	background-color: #fff;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9' fill='none'%3E%3Cpath d='M1.5 1.5L7 7L12.5 1.5' stroke='%23003b6b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 12px center;
	background-size: 12px 8px;
	box-shadow: none;
	cursor: pointer;
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

body.gl-sp-reference .gl-sp form.variations_form .variations select option,
body.gl-sp-reference .gl-sp form.variations_form select.gl-sp__variation-select option {
	font-weight: 700;
	font-size: 1.6rem;
}

body.gl-sp-reference .gl-sp form.variations_form .variations select:hover,
body.gl-sp-reference .gl-sp form.variations_form select.gl-sp__variation-select:hover {
	border-color: rgba(0, 59, 107, 0.35);
}

body.gl-sp-reference .gl-sp form.variations_form .variations select:focus,
body.gl-sp-reference .gl-sp form.variations_form .variations select:focus-visible,
body.gl-sp-reference .gl-sp form.variations_form select.gl-sp__variation-select:focus,
body.gl-sp-reference .gl-sp form.variations_form select.gl-sp__variation-select:focus-visible {
	outline: none;
	border-color: var(--gl-sp-navy);
	box-shadow: 0 0 0 3px rgba(0, 59, 107, 0.12);
}

body.gl-sp-reference .gl-sp__variation-reset {
	margin: 10px 0 0;
	padding: 0;
	text-align: right;
}

body.gl-sp-reference .gl-sp form.variations_form .reset_variations {
	display: inline-block;
	font-size: var(--gl-sp-fs-caption);
	font-weight: 600;
	color: var(--gl-sp-muted);
	text-decoration: underline;
	text-underline-offset: 2px;
}

body.gl-sp-reference .gl-sp form.variations_form .reset_variations:hover {
	color: var(--gl-sp-navy);
}

body.gl-sp-reference .gl-sp .single_variation_wrap .woocommerce-variation {
	min-height: 0;
}

body.gl-sp-reference .gl-sp .single_variation_wrap .woocommerce-variation:empty {
	display: none;
}

body.gl-sp-reference .gl-sp .single_variation_wrap .woocommerce-variation-description:empty {
	display: none;
}

/* Selected variation price — under dropdowns, above qty / KJØP (top range stays frozen).
   Typography/colors reuse .gl-sp__buy .woocommerce-variation-price .price rules above. */
body.gl-sp-reference .gl-sp .single_variation_wrap .woocommerce-variation-price {
	display: block;
	margin: 6px 0 4px;
	padding: 0;
	min-height: 0;
}

body.gl-sp-reference .gl-sp .single_variation_wrap .woocommerce-variation-price:empty {
	display: none;
	margin: 0;
}

body.gl-sp-reference .gl-sp .single_variation_wrap .woocommerce-variation-availability {
	margin: 0 0 4px;
	font-size: var(--gl-sp-fs-caption);
	font-weight: 600;
	color: var(--gl-sp-muted);
}

body.gl-sp-reference .gl-sp .single_variation_wrap .woocommerce-variation-availability:empty {
	display: none;
}

/* Legacy table overrides — keep old 80px label column + flex value cell */
body.gl-sp-reference .gl-sp form.variations_form .variations td.label,
body.gl-sp-reference .gl-sp form.variations_form .variations .label {
	width: 80px !important;
	padding-right: 1em;
	vertical-align: top;
}

body.gl-sp-reference .gl-sp form.variations_form .variations td.value,
body.gl-sp-reference .gl-sp form.variations_form .variations .value {
	display: flex !important;
	flex-direction: row !important;
	align-items: center !important;
}

/* ????????? Features bar ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? */

body.gl-sp-reference .gl-sp__features {
	background: var(--gl-sp-card);
	border: 1px solid var(--gl-sp-border);
	/* border-radius: var(--gl-sp-radius-lg); */
	box-shadow: var(--gl-sp-shadow);
	padding: clamp(20px, 3vw, 28px);
	margin-bottom: clamp(20px, 3vw, 28px);
}

body.gl-sp-reference .gl-sp__features-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(16px, 2.5vw, 28px);
	align-items: center;
}

body.gl-sp-reference .gl-sp__feature {
	display: flex;
	align-items: center;
	gap: 12px;
	min-width: 0;
}

body.gl-sp-reference .gl-sp__feature-icon {
	flex-shrink: 0;
	width: 40px;
	height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--gl-sp-navy);
	background: var(--gl-sp-bg);
	border: 1px solid var(--gl-sp-border);
	border-radius: 50%;
	align-self: center;
}

body.gl-sp-reference .gl-sp__feature-icon svg {
	width: 20px;
	height: 20px;
	display: block;
}

body.gl-sp-reference .gl-sp__feature-text {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 2px;
	min-width: 0;
}

body.gl-sp-reference .gl-sp__feature-text strong {
	display: block;
	font-size: var(--gl-sp-fs-caption);
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--gl-sp-navy);
	line-height: 1.25;
	margin: 0;
}

body.gl-sp-reference .gl-sp__feature-text span {
	display: block;
	font-size: var(--gl-sp-fs-sm);
	color: var(--gl-sp-muted);
	line-height: 1.45;
	margin: 0;
}

/* ── Details tabs: horizontal bar + content below (reference mockup) ── */

body.gl-sp-reference .gl-sp__details {
	display: flex;
	flex-direction: column;
	background: var(--gl-sp-card);
	border: 1px solid var(--gl-sp-border);
	border-radius: var(--gl-sp-radius-lg);
	box-shadow: var(--gl-sp-shadow);
	overflow: hidden;
	margin-bottom: clamp(28px, 4vw, 44px);
	min-height: 0;
}

body.gl-sp-reference .gl-sp__tabs {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: stretch;
	gap: 0;
	padding: 0;
	margin: 0;
	background: #fff;
	border-right: none;
	border-bottom: 1px solid var(--gl-sp-border);
	border-radius: 0;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: thin;
}

body.gl-sp-reference .gl-sp__tab {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: auto;
	min-width: clamp(120px, 16vw, 180px);
	text-align: center;
	padding: 14px clamp(20px, 3vw, 32px);
	border: none;
	border-left: none;
	border-bottom: 3px solid transparent;
	border-radius: 0;
	background: #fff;
	font-family: inherit;
	font-size: clamp(1.0625rem, 1.35vw, 1.25rem);
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--gl-sp-navy);
	cursor: pointer;
	line-height: 1.35;
	transition: color 0.2s ease, background 0.2s ease, border-color 0.2s ease;
	margin: 0;
	white-space: nowrap;
}

body.gl-sp-reference .gl-sp__tab:hover {
	color: var(--gl-sp-navy);
	background: rgba(0, 59, 107, 0.04);
}

body.gl-sp-reference .gl-sp__tab[aria-selected="true"] {
	color: #fff;
	background: var(--gl-sp-navy);
	border-bottom-color: var(--gl-sp-navy);
	font-weight: 700;
}

body.gl-sp-reference .gl-sp__details-body {
	display: block;
	min-width: 0;
	width: 100%;
}

body.gl-sp-reference .gl-sp__panels {
	padding: clamp(24px, 3vw, 36px);
	min-width: 0;
	background: var(--gl-sp-card);
	border: none;
	/* Tab panel content typography — modest bump over page-scale tokens */
	--gl-sp-fs-body: clamp(1.1875rem, 1.1rem + 0.35vw, 1.3125rem);
	--gl-sp-fs-sm: clamp(1.0625rem, 1rem + 0.28vw, 1.1875rem);
	--gl-sp-fs-h2: clamp(1.5625rem, 1.35rem + 0.9vw, 1.8125rem);
	--gl-sp-fs-h3: clamp(1.25rem, 1.15rem + 0.42vw, 1.4375rem);
	--gl-sp-fs-spec-label: clamp(1.0625rem, 1rem + 0.2vw, 1.125rem);
	--gl-sp-fs-spec-value: clamp(1.1875rem, 1.1rem + 0.3vw, 1.25rem);
}

body.gl-sp-reference .gl-sp__panel-title {
	display: none;
}

body.gl-sp-reference .gl-sp__panel[hidden] {
	display: none !important;
}

body.gl-sp-reference .gl-sp__panel--fade {
	animation: gl-sp-panel-in 0.35s ease;
}

@keyframes gl-sp-panel-in {
	from {
		opacity: 0;
		transform: translateY(6px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

/* Other richtext panels (shipping, etc.) keep UI sans stack */
body.gl-sp-reference .gl-sp__richtext:not(.gl-sp__desc) {
	font-size: var(--gl-sp-fs-body);
	line-height: 1.75;
	color: var(--gl-sp-text);
}

/*
 * Product Beskrivelse — match staging #Beskrivelse / .single-item-custom:
 * Open Sans, 16px, #4d4d4d, line-height 1.4.
 * Staging computes 300 (Light); use 400 so text reads at least as dark/solid
 * when Light is substituted, without going thin/washed.
 */
body.gl-sp-reference .gl-sp__desc {
	font-family: var(--gl-desc-font, 'Open Sans', Lato, sans-serif);
	font-size: var(--gl-desc-size, 1.6rem);
	font-weight: var(--gl-desc-weight, 400);
	line-height: var(--gl-desc-line, 1.4);
	color: var(--gl-desc-color, #4d4d4d);
	margin-bottom: 30px;
}

/* Inherit family from container — never force over editor inline styles. */
body.gl-sp-reference .gl-sp__desc p,
body.gl-sp-reference .gl-sp__desc li,
body.gl-sp-reference .gl-sp__desc td {
	font-size: inherit;
	font-weight: inherit;
	line-height: inherit;
	color: inherit;
}

/* Paragraph spacing: staging #Beskrivelse p uses margin 16px 0 */
body.gl-sp-reference .gl-sp__desc p {
	margin: 1em 0;
}
body.gl-sp-reference .gl-sp__richtext:not(.gl-sp__desc) p {
	margin: 0 0 1em;
}
body.gl-sp-reference .gl-sp__richtext:not(.gl-sp__desc) p:last-child {
	margin-bottom: 0;
}

/*
 * Beskrivelse headings — match old theme UA cascade on 16px parent
 * (staging #Beskrivelse / .single-item-custom). Family/color inherit from
 * --gl-desc-*; do not use navy / fluid SP scale here.
 */
body.gl-sp-reference .gl-sp__desc h2,
body.gl-sp-reference .gl-sp__desc h3,
body.gl-sp-reference .gl-sp__desc h4,
body.gl-sp-reference .gl-sp__desc h5,
body.gl-sp-reference .gl-sp__desc h6 {
	font-family: inherit;
	font-weight: 700;
	line-height: var(--gl-desc-line, 1.4);
	color: var(--gl-desc-color, #4d4d4d);
	letter-spacing: normal;
}
body.gl-sp-reference .gl-sp__desc h2 {
	font-size: var(--gl-desc-h2-size, 1.5em);
	margin: 0.83em 0;
}
body.gl-sp-reference .gl-sp__desc h3 {
	font-size: var(--gl-desc-h3-size, 1.17em);
	margin: 1em 0;
}
body.gl-sp-reference .gl-sp__desc h4 {
	font-size: var(--gl-desc-h4-size, 1em);
	margin: 1.33em 0;
}
body.gl-sp-reference .gl-sp__desc h5 {
	font-size: var(--gl-desc-h5-size, 0.83em);
	margin: 1.67em 0;
}
body.gl-sp-reference .gl-sp__desc h6 {
	font-size: var(--gl-desc-h6-size, 0.67em);
	margin: 2.33em 0;
}

/* Non-description rich text (specs etc.) — keep SP hierarchy tokens */
body.gl-sp-reference .gl-sp__richtext:not(.gl-sp__desc) h2 {
	font-size: var(--gl-sp-fs-h2);
	font-weight: 700;
	color: var(--gl-sp-navy);
	line-height: 1.3;
	margin: 1.5em 0 0.5em;
	letter-spacing: -0.01em;
}
body.gl-sp-reference .gl-sp__richtext:not(.gl-sp__desc) h3 {
	font-size: var(--gl-sp-fs-h3);
	font-weight: 700;
	color: var(--gl-sp-navy);
	line-height: 1.35;
	margin: 1.25em 0 0.4em;
}
body.gl-sp-reference .gl-sp__richtext:not(.gl-sp__desc) h4 {
	font-size: var(--gl-sp-fs-sm);
	font-weight: 700;
	color: var(--gl-sp-text);
	margin: 1em 0 0.35em;
}

/* Lists inside rich text */
body.gl-sp-reference .gl-sp__desc ul,
body.gl-sp-reference .gl-sp__desc ol,
body.gl-sp-reference .gl-sp__richtext ul,
body.gl-sp-reference .gl-sp__richtext ol {
	padding-left: 1.4em;
	margin: 0 0 1em;
}
body.gl-sp-reference .gl-sp__desc li {
	/* Staging #Beskrivelse li — no extra bottom margin beyond UA */
	margin-bottom: 0;
	line-height: var(--gl-desc-line, 1.4);
}
body.gl-sp-reference .gl-sp__richtext:not(.gl-sp__desc) li {
	margin-bottom: 0.35em;
	line-height: 1.65;
}

/* Strong / bold */
body.gl-sp-reference .gl-sp__desc strong {
	font-family: inherit;
	font-weight: 700;
	color: var(--gl-desc-color, #4d4d4d);
}
body.gl-sp-reference .gl-sp__richtext:not(.gl-sp__desc) strong {
	font-weight: 700;
	color: var(--gl-sp-text);
}

/*
 * Description / short-description links.
 * Global style.css sets a:hover { color: #fff } — override so content links
 * stay brand red (not white) on light product panels.
 */
body.gl-sp-reference .gl-sp__desc a,
body.gl-sp-reference .gl-sp__short-desc a,
body.gl-sp-reference .gl-sp__buy-card .woocommerce-product-details__short-description a {
	color: var(--gl-sp-red, var(--color-brand-red, #b80000));
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 2px;
}

body.gl-sp-reference .gl-sp__desc a:hover,
body.gl-sp-reference .gl-sp__desc a:focus-visible,
body.gl-sp-reference .gl-sp__short-desc a:hover,
body.gl-sp-reference .gl-sp__short-desc a:focus-visible,
body.gl-sp-reference .gl-sp__buy-card .woocommerce-product-details__short-description a:hover,
body.gl-sp-reference .gl-sp__buy-card .woocommerce-product-details__short-description a:focus-visible {
	color: var(--color-brand-red-hover, #9a0000);
}

/*
 * Media embeds in Beskrivelse / richtext — YouTube oEmbed ships fixed
 * width/height attrs (e.g. 1280×720). Without containment they overflow
 * .gl-sp__details (overflow:hidden). Scoped so gallery iframes stay untouched.
 * Old theme wrapped .single-item-custom iframe in .video-container via JS.
 */
body.gl-sp-reference .gl-sp__desc img,
body.gl-sp-reference .gl-sp__richtext img {
	max-width: 100%;
	height: auto;
}

body.gl-sp-reference .gl-sp__desc iframe,
body.gl-sp-reference .gl-sp__desc embed,
body.gl-sp-reference .gl-sp__desc video,
body.gl-sp-reference .gl-sp__desc object,
body.gl-sp-reference .gl-sp__richtext iframe,
body.gl-sp-reference .gl-sp__richtext embed,
body.gl-sp-reference .gl-sp__richtext video,
body.gl-sp-reference .gl-sp__richtext object {
	max-width: 100%;
}

body.gl-sp-reference .gl-sp__desc iframe,
body.gl-sp-reference .gl-sp__richtext iframe {
	width: 100%;
	aspect-ratio: 16 / 9;
	height: auto;
	border: 0;
	display: block;
}

body.gl-sp-reference .gl-sp__desc .wp-block-embed,
body.gl-sp-reference .gl-sp__desc .wp-embed-responsive,
body.gl-sp-reference .gl-sp__richtext .wp-block-embed,
body.gl-sp-reference .gl-sp__richtext .wp-embed-responsive {
	max-width: 100%;
}

body.gl-sp-reference .gl-sp__subheading {
	margin: 1.5em 0 0.5em;
	font-size: var(--gl-sp-fs-h3);
	font-weight: 700;
	color: var(--gl-sp-navy);
	letter-spacing: -0.01em;
}

body.gl-sp-reference .gl-sp__spec-section {
	margin-top: 8px;
	padding-top: 24px;
	border-top: 1px solid var(--gl-sp-border);
}

/* Specification grid */
body.gl-sp-reference .gl-sp__spec-list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0;
	list-style: none;
	margin: 0;
	padding: 0;
}

body.gl-sp-reference .gl-sp__spec-list--inline {
	margin-top: 4px;
}

body.gl-sp-reference .gl-sp__spec-item {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	padding: 18px 20px;
	border-bottom: 1px solid var(--gl-sp-border);
	transition: background 0.25s ease, box-shadow 0.25s ease;
}

body.gl-sp-reference .gl-sp__spec-item:nth-child(odd) {
	border-right: 1px solid var(--gl-sp-border);
}

body.gl-sp-reference .gl-sp__spec-item:hover {
	background: rgba(245, 246, 248, 0.85);
}

body.gl-sp-reference .gl-sp__spec-icon {
	flex: 0 0 40px;
	width: 40px;
	height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--gl-sp-navy);
	transition: transform 0.25s ease, color 0.25s ease;
}

body.gl-sp-reference .gl-sp__spec-item:hover .gl-sp__spec-icon {
	transform: scale(1.06);
	color: var(--gl-sp-red);
}

body.gl-sp-reference .gl-sp__spec-icon svg {
	width: 26px;
	height: 26px;
}

body.gl-sp-reference .gl-sp__spec-icon-img {
	width: 32px;
	height: 32px;
	object-fit: contain;
}

body.gl-sp-reference .gl-sp__spec-copy {
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
}

body.gl-sp-reference .gl-sp__spec-label {
	font-size: var(--gl-sp-fs-spec-label);
	font-weight: 500;
	color: var(--gl-sp-muted);
	line-height: 1.4;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

body.gl-sp-reference .gl-sp__spec-value {
	font-size: var(--gl-sp-fs-spec-value);
	font-weight: 600;
	color: var(--gl-sp-text);
	line-height: 1.45;
}

body.gl-sp-reference .gl-sp__spec-empty {
	font-size: var(--gl-sp-fs-body);
	color: var(--gl-sp-muted);
	margin: 0;
}

/* Documents */
/* ?????? Document wysiwyg (ACF download field) ??????????????????????????????????????????????????????????????????????????????????????????????????? */
body.gl-sp-reference .gl-sp__doc-wysiwyg {
	font-size: var(--gl-sp-fs-body);
	line-height: 1.75;
	color: var(--gl-sp-text);
}

body.gl-sp-reference .gl-sp__doc-wysiwyg p {
	margin: 0 0 10px;
}

body.gl-sp-reference .gl-sp__doc-wysiwyg ul,
body.gl-sp-reference .gl-sp__doc-wysiwyg ol {
	margin: 0 0 12px;
	padding-left: 20px;
}

body.gl-sp-reference .gl-sp__doc-wysiwyg li {
	margin-bottom: 4px;
}

/* Every <a> inside the wysiwyg becomes a pill download button */
body.gl-sp-reference .gl-sp__doc-wysiwyg a {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 11px 16px 11px 12px;
	margin: 0 8px 8px 0;
	background: var(--gl-sp-bg);
	border: 1px solid var(--gl-sp-border);
	border-radius: 6px;
	color: var(--gl-sp-navy);
	font-size: var(--gl-sp-fs-sm);
	font-weight: 600;
	text-decoration: none;
	transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease, box-shadow 0.18s ease;
}

/* Icon injected by JS */
body.gl-sp-reference .gl-sp__doc-wysiwyg a .gl-sp__doc-wysiwyg-icon {
	font-size: 1.05rem;
	line-height: 1;
	flex-shrink: 0;
	transition: color 0.18s ease;
}

body.gl-sp-reference .gl-sp__doc-wysiwyg a:hover {
	background: #fff;
	border-color: rgba(0, 59, 107, 0.22);
	color: var(--gl-sp-navy);
	box-shadow: 0 4px 14px rgba(15, 30, 48, 0.08);
}

body.gl-sp-reference .gl-sp__doc-empty {
	color: var(--gl-sp-muted);
	font-size: var(--gl-sp-fs-sm);
}

/* ?????? Document buttons ??? compact pill-style ??????????????????????????????????????????????????????????????????????????????????????????????????? */
body.gl-sp-reference .gl-sp__doc-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

body.gl-sp-reference .gl-sp__doc-item {
	flex: 0 0 auto;
}

body.gl-sp-reference .gl-sp__doc-link {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 11px 16px 11px 12px;
	border: 1px solid var(--gl-sp-border);
	border-radius: 6px;
	background: var(--gl-sp-bg);
	text-decoration: none;
	color: var(--gl-sp-navy);
	font-size: var(--gl-sp-fs-sm);
	font-weight: 600;
	max-width: 100%;
	transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease, box-shadow 0.18s ease;
}

body.gl-sp-reference .gl-sp__doc-link:hover {
	background: #fff;
	border-color: rgba(0, 59, 107, 0.22);
	color: var(--gl-sp-navy);
	box-shadow: 0 4px 14px rgba(15, 30, 48, 0.08);
}

body.gl-sp-reference .gl-sp__doc-icon {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	justify-content: center;
	width: auto;
	height: auto;
	border-radius: 0;
	background: transparent;
}

body.gl-sp-reference .gl-sp__doc-icon-svg {
	display: block;
	width: 20px;
	height: 20px;
	flex-shrink: 0;
}

body.gl-sp-reference .gl-sp__doc-icon--pdf { color: #c0392b; }
body.gl-sp-reference .gl-sp__doc-icon--word { color: #2563eb; }
body.gl-sp-reference .gl-sp__doc-icon--excel { color: #16a34a; }
body.gl-sp-reference .gl-sp__doc-icon--zip { color: #d97706; }
body.gl-sp-reference .gl-sp__doc-icon--code { color: #7c3aed; }
body.gl-sp-reference .gl-sp__doc-icon--default { color: var(--gl-sp-navy); }

body.gl-sp-reference .gl-sp__doc-wysiwyg a .gl-sp__doc-wysiwyg-icon {
	font-size: 1.05rem;
	line-height: 1;
	flex-shrink: 0;
}

/* Title */
body.gl-sp-reference .gl-sp__doc-title {
	flex: 1 1 auto;
	min-width: 0;
	line-height: 1.35;
}

/* Badge (type label) ??? hidden on small buttons, shown on wider screens */
body.gl-sp-reference .gl-sp__doc-badge {
	flex: 0 0 auto;
	font-size: 0.625rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--gl-sp-red);
	background: rgba(184, 0, 0, 0.09);
	padding: 3px 7px;
	border-radius: 4px;
	transition: color 0.18s ease, background 0.18s ease;
}

body.gl-sp-reference .gl-sp__doc-link:hover .gl-sp__doc-badge {
	color: #fff;
	background: rgba(255, 255, 255, 0.18);
}

/* Arrow icon */
body.gl-sp-reference .gl-sp__doc-arrow {
	flex: 0 0 auto;
	color: var(--gl-sp-muted);
	transition: color 0.18s ease;
}

body.gl-sp-reference .gl-sp__doc-link:hover .gl-sp__doc-arrow {
	color: #fff;
}

/* Tab media column ??? product preview card */

/* Related products — reference B2B section + gl-product-card grid */

body.gl-sp-reference .gl-sp-related {
	margin-top: 0;
	padding-top: clamp(28px, 4vw, 40px);
}

body.gl-sp-reference .gl-sp-related__head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 24px;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--gl-sp-border);
	margin-right: 10px;
	margin-left: 10px;
	padding-right: 10px;
	padding-left: 10px;
}

body.gl-sp-reference .gl-sp-related__head h2 {
	position: relative;
	margin: 0;
	padding-bottom: 6px;
	font-weight: 700;
	color: var(--gl-sp-navy);
}

body.gl-sp-reference .gl-sp-related__head h2::after {
	content: '';
	position: absolute;
	left: 0;
	bottom: 0;
	width: 52px;
	height: 3px;
	background: var(--gl-sp-red);
	border-radius: 2px;
}

body.gl-sp-reference .gl-sp-related__all {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: var(--gl-sp-fs-sm);
	font-weight: 600;
	color: var(--gl-sp-red);
	text-decoration: none;
}

body.gl-sp-reference .gl-sp-related__all:hover {
	text-decoration: underline;
}

body.gl-sp-reference .gl-sp-related ul.products {
	display: grid !important;
	gap: clamp(16px, 2.5vw, 24px);
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

@media (min-width: 1181px) {
	body.gl-sp-reference .gl-sp-related ul.products {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	}
}

body.gl-sp-reference .gl-sp-related ul.products::before,
body.gl-sp-reference .gl-sp-related ul.products::after {
	display: none !important;
}

body.gl-sp-reference .gl-sp-related ul.products li.product {
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
}

body.gl-sp-reference .gl-sp-related .gl-product-card {
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
}

body.gl-sp-reference .gl-sp-related .gl-product-card__cta a.button {
	background: var(--gl-sp-red) !important;
	border-radius: var(--gl-sp-radius) !important;
	min-height: 44px;
}

body.gl-sp-reference .gl-sp-related .gl-product-card__cta a.button:hover {
	background: #9a0000 !important;
}

/* ????????? Bottom trust bar ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? */

body.gl-sp-reference .gl-sp__trust-bar {
	margin-top: clamp(32px, 4vw, 48px);
	padding: clamp(24px, 3vw, 32px);
	background: var(--gl-sp-bg);
	border: 1px solid var(--gl-sp-border);
	border-radius: var(--gl-sp-radius-lg);
}

body.gl-sp-reference .gl-sp__trust-bar-inner {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(20px, 3vw, 32px);
}

body.gl-sp-reference .gl-sp__trust-item {
	display: flex;
	align-items: center;
	gap: 14px;
}

body.gl-sp-reference .gl-sp__trust-icon {
	flex-shrink: 0;
	width: 48px;
	height: 48px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: #fff;
	border: 1px solid var(--gl-sp-border);
	border-radius: 50%;
	color: var(--gl-sp-navy);
}

body.gl-sp-reference .gl-sp__trust-icon svg {
	width: 24px;
	height: 24px;
}

body.gl-sp-reference .gl-sp__trust-item strong {
	display: block;
	font-size: var(--gl-sp-fs-caption);
	font-weight: 800;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--gl-sp-navy);
	margin-bottom: 4px;
}

body.gl-sp-reference .gl-sp__trust-item p {
	margin: 0;
	font-size: var(--gl-sp-fs-sm);
	color: var(--gl-sp-muted);
	line-height: 1.45;
}

/* Hide legacy WooCommerce Print Products plugin icons (duplicate of buy-column PDF/Print) */
body.gl-sp-reference .woocommerce-print-products {
	display: none !important;
}

/* ????????? Mobile sticky bar ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? */

body.gl-sp-reference .gl-sp__sticky {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 999;
	padding: 10px 16px;
	padding-bottom: max(10px, env(safe-area-inset-bottom));
	background: #fff;
	border-top: 1px solid var(--gl-sp-border);
	box-shadow: 0 -4px 24px rgba(0, 0, 0, 0.1);
	transform: translateY(100%);
	transition: transform 0.25s ease;
}

body.gl-sp-reference .gl-sp__sticky.is-visible {
	transform: translateY(0);
}

body.gl-sp-reference .gl-sp__sticky[hidden] {
	display: none !important;
}

body.gl-sp-reference .gl-sp__sticky-inner {
	display: flex;
	align-items: center;
	gap: 12px;
	max-width: var(--gl-sp-max);
	margin: 0 auto;
}

body.gl-sp-reference .gl-sp__sticky-meta {
	flex: 1;
	min-width: 0;
}

body.gl-sp-reference .gl-sp__sticky-title {
	margin: 0;
	font-size: var(--gl-sp-fs-sm);
	font-weight: 600;
	color: var(--gl-sp-text);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

body.gl-sp-reference .gl-sp__sticky-price {
	margin: 0;
	font-size: var(--gl-sp-fs-body);
	font-weight: 800;
	color: var(--gl-sp-red);
}

body.gl-sp-reference .gl-sp__sticky-btn {
	flex-shrink: 0;
	min-height: 48px;
	padding: 0 24px;
	border: none;
	border-radius: var(--gl-sp-radius);
	background: var(--gl-sp-red);
	color: #fff;
	font-weight: 700;
	font-size: 0.9375rem;
	letter-spacing: 0.05em;
	cursor: pointer;
}

body.gl-sp-reference.gl-sp-sticky-on {
	padding-bottom: 72px;
}

/* Hide old sticky quote */
body.gl-sp-reference .sticky-quote-btn-wrap {
	display: none !important;
}

/* ????????? Responsive ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? */

/* Tablet: 768px???1180px ??? see tablet-responsive.css (iPad Air 820px, iPad Pro 1024px) */

@media (max-width: 767px) {
	body.gl-sp-reference {
		--gl-sp-gallery-height: clamp(165px, 38vw, 235px);
		--gl-sp-fs-product-title: clamp(2rem, 5.2vw, 2.3rem); /* 20–23px */
		--gl-sp-fs-price: 1.9rem;
		--gl-sp-fs-body: 1.5rem;
		--gl-sp-fs-sm: 1.3rem;
	}

	body.gl-sp-reference .gl-sp__hero {
		padding: 0;
	}

	body.gl-sp-reference .gl-sp__hero-inner {
		grid-template-columns: 1fr;
		gap: 16px;
	}

	body.gl-sp-reference .gl-sp__buy-card {
		padding: 18px 16px clamp(48px, 8vw, 56px);
		padding-right: max(56px, calc(16px + env(safe-area-inset-right, 0px)));
	}

	body.gl-sp-reference .gl-sp__buy h1.product_title {
		line-height: 1.25;
		overflow-wrap: anywhere;
		word-break: break-word;
	}

	body.gl-sp-reference .gl-sp__features {
		padding: 20px 18px;
	}

	body.gl-sp-reference .gl-sp__features-list {
		grid-template-columns: 1fr;
		gap: 14px;
	}

	body.gl-sp-reference .gl-sp__extras {
		grid-template-columns: 1fr;
		gap: 16px;
	}

	body.gl-sp-reference .gl-sp__trust-mini {
		flex-direction: column;
		gap: 16px;
	}

	body.gl-sp-reference .gl-sp__details {
		grid-template-columns: 1fr;
		overflow: hidden;
		min-width: 0;
		max-width: 100%;
	}

	body.gl-sp-reference .gl-sp__panels {
		border-bottom: 1px solid var(--gl-sp-border);
	}


	body.gl-sp-reference .gl-sp__tabs {
		display: flex;
		flex-direction: row;
		flex-wrap: nowrap;
		align-items: stretch;
		overflow-x: auto;
		overflow-y: hidden;
		-webkit-overflow-scrolling: touch;
		scroll-snap-type: x proximity;
		scrollbar-width: thin;
		border-right: none;
		border-bottom: 1px solid var(--gl-sp-border);
		border-radius: var(--gl-sp-radius-lg) var(--gl-sp-radius-lg) 0 0;
		padding: 0 6px;
		gap: 0;
		margin: 0;
		width: 100%;
		max-width: 100%;
		min-width: 0;
		box-sizing: border-box;
	}

	body.gl-sp-reference .gl-sp__tab {
		flex: 0 0 auto;
		white-space: nowrap;
		margin: 0;
		border-left: none !important;
		border-bottom: 3px solid transparent;
		border-radius: 0;
		padding: 12px 16px;
		font-size: clamp(1.125rem, 3.5vw, 1.35rem);
		font-weight: 600;
		letter-spacing: 0.08em;
		text-transform: uppercase;
		scroll-snap-align: start;
		box-sizing: border-box;
	}

	body.gl-sp-reference .gl-sp__tab[aria-selected="true"] {
		color: #fff;
		background: var(--gl-sp-navy);
		border-bottom-color: var(--gl-sp-navy);
		border-left-color: transparent !important;
		font-weight: 700;
	}


	body.gl-sp-reference .gl-sp__spec-list {
		grid-template-columns: 1fr;
	}

	body.gl-sp-reference .gl-sp__spec-item:nth-child(odd) {
		border-right: none;
	}

	body.gl-sp-reference .gl-sp__trust-bar-inner {
		grid-template-columns: 1fr;
	}

	body.gl-sp-reference .gl-sp__buy-footer {
		flex-direction: column;
		align-items: stretch;
	}

	body.gl-sp-reference .gl-sp__buy-footer > .gl-sp__actions {
		position: static;
		justify-content: flex-end;
		width: auto;
		align-self: flex-end;
	}

	body.gl-sp-reference .gl-sp__action-btn {
		min-height: 0;
		flex: 0 0 auto;
	}

	body.gl-sp-reference .gl-sp__features {
		padding: 16px;
		margin-bottom: 20px;
	}

	body.gl-sp-reference .gl-sp__feature {
		align-items: center;
		gap: 14px;
	}

	body.gl-sp-reference .gl-sp__feature-icon {
		width: 36px;
		height: 36px;
	}

	body.gl-sp-reference .gl-sp__feature-icon svg {
		width: 18px;
		height: 18px;
	}

	body.gl-sp-reference .gl-sp form.cart:not(.variations_form) .gl-sp__cart-row,
	body.gl-sp-reference .gl-sp .single_variation_wrap .woocommerce-variation-add-to-cart {
		flex-wrap: nowrap;
		gap: 8px;
	}

	body.gl-sp-reference .gl-sp form.cart .quantity {
		flex: 0 0 auto;
	}

	body.gl-sp-reference .gl-sp .single_add_to_cart_button {
		flex: 1 1 auto !important;
		width: auto !important;
		min-width: 0;
	}
}

/* ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
   SINGLE PRODUCT ??? UI POLISH ADDITIONS
   ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? */

/* ????????? Stock badge ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? */
/* Override the hide rule to show stock as a styled pill in the buy card */
body.gl-sp-reference .gl-sp__buy-card > p.stock,
body.gl-sp-reference .gl-sp__buy > p.stock {
	display: inline-flex !important;
	align-items: center;
	gap: 6px;
	padding: 4px 12px;
	border-radius: 20px;
	font-size: var(--gl-sp-fs-caption);
	font-weight: 700;
	letter-spacing: 0.04em;
	margin: 0 0 8px !important;
	width: auto;
}

body.gl-sp-reference .gl-sp__buy-card > p.stock.in-stock,
body.gl-sp-reference .gl-sp__buy > p.stock.in-stock {
	background: #e8f5e9;
	color: #2e7d32;
}

body.gl-sp-reference .gl-sp__buy-card > p.stock.out-of-stock,
body.gl-sp-reference .gl-sp__buy > p.stock.out-of-stock {
	background: #fce4ec;
	color: #c62828;
}

body.gl-sp-reference .gl-sp__buy-card > p.stock.available-on-backorder,
body.gl-sp-reference .gl-sp__buy > p.stock.available-on-backorder {
	background: #fff3e0;
	color: #e65100;
}

/* ????????? ATC button ??? hover lift ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? */
body.gl-sp-reference .gl-sp .single_add_to_cart_button:hover,
body.gl-sp-reference .woocommerce div.product form.cart .button:hover {
	background: #9a0000 !important;
	box-shadow: 0 8px 24px rgba(184, 0, 0, 0.38) !important;
	transform: translateY(-2px);
}

body.gl-sp-reference .gl-sp .single_add_to_cart_button:active {
	transform: translateY(0) !important;
	box-shadow: 0 2px 8px rgba(184, 0, 0, 0.2) !important;
}

/* ????????? Gallery ??? zoom cursor + thumbnail hover ?????????????????????????????????????????????????????????????????????????????????????????? */
body.gl-sp-reference .gl-sp__gallery .gl-sp__zoom-wrap {
	cursor: zoom-in;
}

body.gl-sp-reference .gl-sp__gallery .wpgs-nav .slick-slide {
	transition: border-color 0.2s ease, opacity 0.2s ease;
	opacity: 0.72;
}

body.gl-sp-reference .gl-sp__gallery .wpgs-nav .slick-slide:hover {
	opacity: 1;
	border-color: rgba(184, 0, 0, 0.4);
}

body.gl-sp-reference .gl-sp__gallery .wpgs-nav .slick-slide.slick-current,
body.gl-sp-reference .gl-sp__gallery .wpgs-nav .slick-slide.gl-sp-thumb-active {
	opacity: 1;
}

/* ????????? Product title ??? tighter on single product ????????????????????????????????????????????????????????????????????????????????? */
body.gl-sp-reference .gl-sp__name {
	letter-spacing: -0.02em;
}

/* ????????? Price ??? add spacing below ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? */
body.gl-sp-reference .gl-sp__price-block {
	margin-bottom: 20px;
}

/* ????????? Focus styles for buy column interactive elements ???????????????????????????????????????????????????????????? */
body.gl-sp-reference .gl-sp .single_add_to_cart_button:focus-visible,
body.gl-sp-reference .gl-sp .sp-request-quote-btn:focus-visible,
body.gl-sp-reference .gl-sp__tab:focus-visible {
	outline: 2px solid var(--gl-sp-red);
	outline-offset: 3px;
}

body.gl-sp-reference .gl-sp__tab[aria-selected="true"]:focus-visible {
	outline-color: #fff;
	outline-offset: -3px;
}

@media (max-width: 480px) {
	body.gl-sp-reference .gl-sp__hero {
		padding: 16px;
	}

	body.gl-sp-reference .gl-sp__features-list {
		gap: 12px;
	}

	body.gl-sp-reference .gl-sp__feature-text strong {
		font-size: var(--gl-sp-fs-caption);
	}

	body.gl-sp-reference .gl-sp__feature-text span {
		font-size: var(--gl-sp-fs-meta);
		line-height: 1.4;
	}

	body.gl-sp-reference .gl-sp-related__head {
		flex-direction: column;
		align-items: flex-start;
	}

}

/* ---------------------------------------------------------------------------
   SINGLE PRODUCT — shared shop sidebar shell
   Layout / accordion / mobile drawer: shop-archive-b2b.css (.woo-shop-layout)
   --------------------------------------------------------------------------- */

body.gl-sp-reference .gl-sp-wrap.woo-shop-layout .product-category-cst-content.gl-sp__page-main {
	min-width: 0;
}

/* --- Purchase section: column layout for qty + KJØP row --- */
body.gl-sp-reference .gl-sp__purchase--simple,
body.gl-sp-reference .gl-sp__purchase--variable {
	flex-direction: column !important;
}

/* ── Kontakt tab panel + native quote form ─────────────────────────────── */
body.gl-sp-reference .gl-sp__panel--kontakt {
	max-width: 720px;
}

body.gl-sp-reference .gl-sp__kontakt-intro {
	margin: 0 0 24px;
	color: var(--gl-sp-muted);
	font-size: var(--gl-sp-fs-body);
	line-height: 1.75;
}

body.gl-sp-reference .gl-sp__kontakt-form {
	min-width: 0;
	max-width: 100%;
}

body.gl-sp-reference .gl-sp__kontakt-form .gl-sp-cf-wrap {
	display: block;
	max-width: 100%;
}

body.gl-sp-reference .gl-sp__kontakt-form .gl-sp-cf {
	display: flex;
	flex-direction: column;
	gap: clamp(14px, 2vw, 18px);
}

body.gl-sp-reference .gl-sp__kontakt-form .gl-sp-cf__row {
	display: grid;
	gap: clamp(12px, 2vw, 16px);
	grid-template-columns: 1fr;
}

@media (min-width: 560px) {
	body.gl-sp-reference .gl-sp__kontakt-form .gl-sp-cf__row--2col {
		grid-template-columns: 1fr 1fr;
	}
}

@media (min-width: 641px) {
	body.gl-sp-reference .gl-sp__kontakt-form .gl-sp-cf__row--3col {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

body.gl-sp-reference .gl-sp__kontakt-form .gl-sp-cf__field {
	display: flex;
	flex-direction: column;
	gap: 6px;
	min-width: 0;
}

body.gl-sp-reference .gl-sp__kontakt-form .gl-sp-cf__label {
	font-family: inherit;
	font-weight: 600;
	font-size: var(--gl-sp-fs-sm);
	color: var(--gl-sp-text);
	line-height: 1.4;
}

body.gl-sp-reference .gl-sp__kontakt-form .gl-sp-cf__label abbr {
	text-decoration: none;
	color: var(--gl-sp-red);
	margin-left: 2px;
}

body.gl-sp-reference .gl-sp__kontakt-form .gl-sp-cf__input {
	font-family: inherit;
	font-size: var(--gl-sp-fs-body);
	color: var(--gl-sp-text);
	border: 1px solid var(--gl-sp-border);
	border-radius: 8px;
	padding: 11px 14px;
	width: 100%;
	box-sizing: border-box;
	line-height: 1.5;
	background: #fff;
	transition: border-color 0.2s, box-shadow 0.2s;
}

body.gl-sp-reference .gl-sp__kontakt-form .gl-sp-cf__input:focus {
	outline: none;
	border-color: var(--gl-sp-navy);
	box-shadow: 0 0 0 3px rgba(0, 59, 107, 0.1);
}

body.gl-sp-reference .gl-sp__kontakt-form .gl-sp-cf__textarea {
	resize: vertical;
	min-height: 120px;
}

body.gl-sp-reference .gl-sp__kontakt-form .gl-sp-cf__submit {
	font-family: inherit;
	background: var(--gl-sp-red);
	color: #fff;
	border: none;
	padding: 14px 28px;
	border-radius: 8px;
	font-weight: 700;
	font-size: var(--gl-sp-fs-sm);
	letter-spacing: 0.04em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background 0.2s, transform 0.15s, box-shadow 0.2s;
	box-shadow: 0 3px 12px rgba(184, 0, 0, 0.24);
}

body.gl-sp-reference .gl-sp__kontakt-form .gl-sp-cf__submit:hover:not(:disabled) {
	background: #9a0000;
	transform: translateY(-2px);
	box-shadow: 0 6px 20px rgba(184, 0, 0, 0.3);
}

body.gl-sp-reference .gl-sp__kontakt-form .gl-sp-cf__submit:disabled {
	opacity: 0.75;
	cursor: wait;
}

body.gl-sp-reference .gl-sp__kontakt-form .gl-sp-cf__privacy {
	margin: 0;
	font-size: 0.8125rem;
	color: var(--gl-sp-muted);
	line-height: 1.5;
}

body.gl-sp-reference .gl-sp__kontakt-form .gl-sp-cf__feedback {
	padding: 14px 18px;
	border-radius: 8px;
	font-size: 0.9375rem;
	line-height: 1.55;
}

body.gl-sp-reference .gl-sp__kontakt-form .gl-sp-cf__success {
	background: #e8f5e9;
	border: 1px solid #a5d6a7;
	color: #1b5e20;
}

body.gl-sp-reference .gl-sp__kontakt-form .gl-sp-cf__success strong {
	display: block;
	margin-bottom: 4px;
}

body.gl-sp-reference .gl-sp__kontakt-form .gl-sp-cf__error {
	background: #fce4ec;
	border: 1px solid #f48fb1;
	color: #b71c1c;
}

/* ── Reduced motion ───────────────────────────────────────────────────────────
   Scoped to this template's own components. !important is required because the
   animated rules above are more specific than this selector list. Only hover
   transforms are neutralised — layout transforms (centring, the sticky bar's
   translateY) must survive. */
@media (prefers-reduced-motion: reduce) {
	body.gl-sp-reference [class*="gl-sp"],
	body.gl-sp-reference [class*="gl-sp"]::before,
	body.gl-sp-reference [class*="gl-sp"]::after,
	body.gl-sp-reference .woocommerce-message,
	body.gl-sp-reference .woocommerce-error,
	body.gl-sp-reference .woocommerce-info,
	body.gl-sp-reference .close-alert,
	body.gl-sp-reference .single_add_to_cart_button,
	body.gl-sp-reference .wpgs-nav .slick-slide {
		transition: none !important;
		animation: none !important;
	}

	body.gl-sp-reference .gl-sp__gallery .gl-sp__zoom-wrap:hover img,
	body.gl-sp-reference .gl-sp__action-btn:hover,
	body.gl-sp-reference .gl-sp__spec-item:hover .gl-sp__spec-icon,
	body.gl-sp-reference .gl-sp .single_add_to_cart_button:hover .gl-sp__atc-icon svg,
	body.gl-sp-reference .gl-sp .single_add_to_cart_button:hover,
	body.gl-sp-reference .woocommerce div.product form.cart .button:hover,
	body.gl-sp-reference .gl-sp__kontakt-form .gl-sp-cf__submit:hover:not(:disabled) {
		transform: none !important;
	}
}
