/*
 * PDP header — first screen aligned with category tokens (black / white / lime).
 */

body.ngs-pdp {
	--ngs-green: #78b82a;
	--ngs-green-dark: #559313;
	--ngs-cta: #84b928;
	--ngs-cta-hover: #9dce43;
	--ngs-ink: #111;
	--ngs-muted: #626a64;
	--ngs-line: #e8ebe7;
	--ngs-soft: #f5f7f4;
	--ngs-pill: #eaf6d2;
}

body.single-product.ngs-pdp .site-content .col-full,
body.single-product.ngs-pdp .product-details-wrapper {
	background-color: #fff !important;
}

body.ngs-pdp .product-details-wrapper {
	overflow: visible;
	padding-bottom: 2.5rem;
}

body.ngs-pdp .shoptimizer-product-prevnext,
body.ngs-pdp .summary .woocommerce-product-rating,
body.ngs-pdp .summary .product_meta,
body.ngs-pdp .summary .product-widget,
body.ngs-pdp .summary .commercekit-inventory,
body.ngs-pdp .summary #commercekit-timer,
body.ngs-pdp .summary .ckit-sg-placeholder,
body.ngs-pdp .summary a.reset_variations,
body.ngs-pdp .woocommerce-variation-description,
body.ngs-pdp .summary form.cart .woocommerce-variation-price {
	display: none !important;
}

@media (min-width: 993px) {
	body.ngs-pdp .product-details-wrapper {
		display: grid;
		grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
		gap: 2.5rem 3rem;
		align-items: start;
	}

	body.ngs-pdp .product .images,
	body.ngs-pdp .product .woocommerce-product-gallery,
	body.ngs-pdp .product .summary {
		float: none;
		width: 100%;
	}

	body.ngs-pdp .pdp-g-skinny .product .woocommerce-product-gallery,
	body.ngs-pdp .pdp-g-regular .product .woocommerce-product-gallery,
	body.ngs-pdp .pdp-g-skinny .product .summary,
	body.ngs-pdp .pdp-g-regular .product .summary {
		width: 100%;
	}
}

/* ---- Left: gallery --------------------------------------------------- */

body.ngs-pdp .ngs-pdp-media {
	position: relative;
	min-width: 0;
}

body.ngs-pdp #commercegurus-pdp-gallery {
	margin-left: 0;
	margin-right: 0;
}

@media (min-width: 993px) {
	body.ngs-pdp .cg-layout-vertical-scroll .cg-thumb-swiper,
	body.ngs-pdp .cg-layout-horizontal .cg-thumb-swiper {
		width: 72px;
		margin-right: 14px;
		padding-top: 0;
		height: auto !important;
	}

	body.ngs-pdp .cg-layout-horizontal {
		display: flex;
		flex-direction: row;
		align-items: stretch;
	}

	body.ngs-pdp .cg-layout-horizontal .cg-thumb-swiper {
		order: -1;
		flex: 0 0 72px;
	}

	body.ngs-pdp .cg-layout-horizontal .cg-thumb-swiper .swiper-wrapper {
		flex-direction: column !important;
		height: auto;
		gap: 8px;
	}

	body.ngs-pdp .cg-layout-horizontal .cg-main-swiper {
		flex: 1 1 auto;
		min-width: 0;
	}

	body.ngs-pdp .cg-layout-vertical-scroll .cg-main-swiper,
	body.ngs-pdp .cg-layout-horizontal .cg-main-swiper,
	body.ngs-pdp .flex-viewport {
		min-height: 520px;
		aspect-ratio: 1 / 1;
		background: #fff;
	}

	body.ngs-pdp .product .woocommerce-product-gallery .flex-control-thumbs {
		position: absolute;
		left: 0;
		top: 0;
		display: flex;
		flex-direction: column;
		width: 72px;
		margin: 0;
		padding: 0;
		gap: 8px;
	}

	body.ngs-pdp .product .woocommerce-product-gallery .flex-control-thumbs li {
		width: 72px;
		float: none;
		margin: 0;
	}

	body.ngs-pdp .product .woocommerce-product-gallery.has-columns .flex-viewport,
	body.ngs-pdp .product .woocommerce-product-gallery.woocommerce-product-gallery--columns-4 .flex-viewport {
		margin-left: 86px;
	}
}

body.ngs-pdp .cg-thumb-swiper .swiper-slide,
body.ngs-pdp .flex-control-thumbs li img {
	border: 1px solid var(--ngs-line);
	border-radius: 8px;
	overflow: hidden;
	opacity: 1;
}

body.ngs-pdp .cg-thumb-swiper .swiper-slide-thumb-active,
body.ngs-pdp .cg-layout-vertical-scroll .cg-thumb-swiper ul.swiper-wrapper li.active:before,
body.ngs-pdp .flex-control-thumbs li img.flex-active {
	border-color: var(--ngs-ink);
	opacity: 1;
}

body.ngs-pdp .cg-main-swiper .swiper-slide:not(:has(video)):not(:has(.cgkit-video-wrap)) img,
body.ngs-pdp .woocommerce-product-gallery__image img {
	width: 100%;
	height: 100%;
	max-height: none;
	object-fit: contain;
	/* Keep bottle tops in frame: less zoom, focus slightly above center. */
	object-position: center 42%;
	transform: scale(1.16) translateY(4%);
	transform-origin: center 38%;
}

body.ngs-pdp .ngs-pdp-pills {
	position: absolute;
	right: 12px;
	bottom: 16px;
	left: 98px;
	z-index: 2;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
	pointer-events: none;
}

body.ngs-pdp .ngs-pdp-pill {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 6px 12px 6px 8px;
	border-radius: 999px;
	background: var(--ngs-pill);
	color: var(--ngs-ink);
	font-size: 13px;
	font-weight: 600;
	line-height: 1.2;
}

body.ngs-pdp .ngs-pdp-pill .ngs-pdp-icon {
	flex: 0 0 18px;
	width: 18px;
	height: 18px;
	color: var(--ngs-green-dark);
}

/* ---- Right: purchase column ------------------------------------------ */

body.ngs-pdp .summary {
	min-width: 0;
	padding-top: 0.15rem;
}

body.ngs-pdp .ngs-pdp-brand,
body.ngs-pdp .ngs-pdp-brand a {
	margin: 0 0 0.35rem;
	color: var(--ngs-green);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.12em;
	line-height: 1.2;
	text-decoration: none;
	text-transform: uppercase;
}

body.ngs-pdp .ngs-pdp-brand a:hover,
body.ngs-pdp .ngs-pdp-brand a:focus-visible {
	color: var(--ngs-green-dark);
}

body.ngs-pdp .ngs-pdp-title-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.55rem 0.75rem;
	margin: 0 0 0.85rem;
}

body.ngs-pdp .summary h1.product_title.entry-title {
	margin: 0;
	padding: 0;
	color: var(--ngs-ink);
	font-size: clamp(1.75rem, 1.4rem + 1.1vw, 2.5rem); /* 28–40 */
	font-weight: 750;
	letter-spacing: -0.03em;
	line-height: 1.15;
}

body.ngs-pdp .ngs-pdp-volume-badge {
	display: inline-flex;
	align-items: center;
	padding: 4px 10px;
	border-radius: 999px;
	background: #eceeea;
	color: #6a716c;
	font-size: 13px;
	font-weight: 600;
	line-height: 1.2;
}

body.ngs-pdp .ngs-pdp-volume-badge[hidden] {
	display: none !important;
}

body.ngs-pdp .summary .onsale,
body.ngs-pdp .summary .cg-sale-badge {
	position: static;
	display: inline-block;
	margin: 0 0 0.5rem;
	float: none;
}

body.ngs-pdp .summary .cgkit-as-variation-price,
body.ngs-pdp div.product p.price,
body.ngs-pdp .summary p.price {
	float: none;
	display: block !important;
	width: 100%;
	margin: 0;
	color: var(--ngs-ink) !important;
	font-size: 33px;
	font-weight: 750;
	letter-spacing: -0.03em;
	line-height: 1.15;
}

body.ngs-pdp .summary .cgkit-as-variation-price .amount,
body.ngs-pdp .summary .cgkit-as-variation-price .woocommerce-Price-amount,
body.ngs-pdp div.product p.price .amount,
body.ngs-pdp div.product p.price .woocommerce-Price-amount,
body.ngs-pdp .summary p.price .amount,
body.ngs-pdp .summary p.price .woocommerce-Price-amount {
	color: var(--ngs-ink) !important;
	font-weight: 750;
}

body.ngs-pdp .summary .cgkit-as-variation-price del,
body.ngs-pdp .summary .cgkit-as-variation-price del .amount,
body.ngs-pdp div.product p.price del,
body.ngs-pdp div.product p.price del .amount {
	color: var(--ngs-muted) !important;
	font-size: 18px;
	font-weight: 500;
}

body.ngs-pdp .ngs-pdp-vat {
	margin: 0.2rem 0 1rem;
	color: var(--ngs-muted);
	font-size: 13px;
	line-height: 1.3;
}

body.ngs-pdp .woocommerce-product-details__short-description {
	padding-bottom: 0;
	margin-bottom: 0.25rem;
	font-size: inherit;
}

body.ngs-pdp .summary .gs-short-description,
body.ngs-pdp .summary .ngs-pdp-short {
	margin: 0 0 1.1rem;
	font-size: 15px;
	line-height: 1.55;
}

body.ngs-pdp .summary .gs-product-lead {
	display: -webkit-box;
	margin: 0 0 1rem;
	overflow: hidden;
	color: #3a3f3c;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	line-clamp: 3;
}

body.ngs-pdp .summary .gs-key-benefits {
	display: none !important;
}

body.ngs-pdp .ngs-pdp-usps {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px 14px;
	margin: 0 0 1rem;
	padding: 0.85rem 0 0;
	list-style: none;
	border-top: 1px solid var(--ngs-line);
}

body.ngs-pdp .ngs-pdp-usp {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 8px;
	margin: 0;
	padding: 0;
	border: 0;
	min-width: 0;
}

body.ngs-pdp .ngs-pdp-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 28px;
	width: 28px;
	height: 28px;
	color: var(--ngs-green);
}

body.ngs-pdp .ngs-pdp-icon svg {
	width: 24px;
	height: 24px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.7;
	stroke-linecap: round;
	stroke-linejoin: round;
}

body.ngs-pdp .ngs-pdp-usp__text {
	display: flex;
	flex-direction: column;
	gap: 3px;
	min-width: 0;
}

body.ngs-pdp .ngs-pdp-usp__text strong {
	color: var(--ngs-ink);
	font-size: 13.5px;
	font-weight: 700;
	line-height: 1.25;
	letter-spacing: -0.01em;
}

body.ngs-pdp .ngs-pdp-usp__text span {
	color: var(--ngs-muted);
	font-size: 12.5px;
	font-weight: 400;
	line-height: 1.35;
}

/* ---- Variations ------------------------------------------------------ */

body.ngs-pdp table.variations {
	margin: 1.1rem 0 0.85rem;
}

body.ngs-pdp table.variations th.label,
body.ngs-pdp .cgkit-swatch-title,
body.ngs-pdp .cgkit-as-wrap .cgkit-swatch-title {
	display: block;
	padding: 0 0 8px;
	color: var(--ngs-ink);
	font-size: 12px;
	font-weight: 750;
	letter-spacing: 0.08em;
	text-align: left;
	text-transform: uppercase;
}

body.ngs-pdp .cgkit-as-wrap .cgkit-attribute-swatches {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

body.ngs-pdp .cgkit-as-wrap .cgkit-attribute-swatches .cgkit-attribute-swatch.cgkit-button button {
	min-width: 72px;
	min-height: 46px;
	height: 46px;
	padding: 0 16px;
	border: 1px solid #d7dbd5;
	border-radius: 8px;
	background: #fff;
	color: var(--ngs-ink);
	font-size: 14px;
	font-weight: 600;
	line-height: 44px;
}

body.ngs-pdp .cgkit-as-wrap .cgkit-attribute-swatches .cgkit-attribute-swatch.cgkit-button button:not(.cgkit-disabled):not(.cgkit-swatch-selected):hover {
	border-color: var(--ngs-ink);
	background: #fff;
}

body.ngs-pdp .cgkit-as-wrap .cgkit-attribute-swatches .cgkit-attribute-swatch.cgkit-button button.cgkit-swatch-selected {
	border-color: var(--ngs-ink);
	background: var(--ngs-ink);
	color: #fff;
}

/* ---- Stock + purchase row -------------------------------------------- */

body.ngs-pdp .product p.stock,
body.ngs-pdp .woocommerce-variation-availability p.stock {
	clear: none;
	margin: 1rem 0 0.85rem;
	padding: 0;
	border: 0;
	color: var(--ngs-green-dark);
	font-size: 14.5px;
	font-weight: 600;
	line-height: 1.35;
}

body.ngs-pdp .product p.stock.in-stock:before,
body.ngs-pdp .woocommerce-variation-availability p.stock.in-stock:before {
	content: "";
	display: inline-block;
	width: 14px;
	height: 14px;
	margin-right: 6px;
	vertical-align: -2px;
	background: var(--ngs-green-dark);
	-webkit-mask: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round' d='M5 12.5 9.2 17 19 7'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round' d='M5 12.5 9.2 17 19 7'/%3E%3C/svg%3E") center / contain no-repeat;
}

body.ngs-pdp .summary form.cart {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 10px;
	margin: 0 0 0.85rem;
}

body.ngs-pdp .summary form.cart .variations,
body.ngs-pdp .summary form.cart .cgkit-as-wrap,
body.ngs-pdp .summary form.cart .single_variation_wrap,
body.ngs-pdp .summary form.cart .stock,
body.ngs-pdp .summary form.cart .woocommerce-variation {
	flex: 1 0 100%;
}

body.ngs-pdp .summary .woocommerce-variation-add-to-cart {
	display: flex;
	flex-wrap: nowrap;
	align-items: stretch;
	gap: 10px;
	width: 100%;
}

body.ngs-pdp .summary form.cart .quantity {
	position: relative;
	display: grid;
	grid-template-columns: 36px 1fr 36px;
	flex: 0 0 118px;
	width: 118px;
	height: 48px;
	margin: 0;
	overflow: hidden;
	border: 1px solid var(--ngs-line);
	border-radius: 8px;
	background: #fff;
}

body.ngs-pdp .summary .cart .quantity .input-text,
body.ngs-pdp .summary form.cart .quantity .qty {
	grid-column: 2;
	grid-row: 1;
	width: 100%;
	height: 48px;
	min-height: 48px;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--ngs-ink);
	font-size: 16px;
	font-weight: 600;
	line-height: 48px;
	text-align: center;
	box-shadow: none;
}

body.ngs-pdp .summary form.cart .quantity-nav {
	display: contents;
	width: auto;
	border: 0;
	background: transparent;
	box-shadow: none;
}

body.ngs-pdp .summary form.cart .quantity-button {
	position: relative;
	height: 48px;
	background: none;
}

body.ngs-pdp .summary form.cart .quantity-button.quantity-down {
	grid-column: 1;
	grid-row: 1;
}

body.ngs-pdp .summary form.cart .quantity-button.quantity-up {
	grid-column: 3;
	grid-row: 1;
}

body.ngs-pdp .summary form.cart .quantity-button:before {
	-webkit-mask-image: none;
	mask-image: none;
	background: none;
	color: var(--ngs-ink);
	font-size: 20px;
	font-weight: 500;
	line-height: 1;
	width: auto;
	height: auto;
}

body.ngs-pdp .summary form.cart .quantity-button.quantity-down:before {
	content: "−";
}

body.ngs-pdp .summary form.cart .quantity-button.quantity-up:before {
	content: "+";
}

body.ngs-pdp .summary form.cart .single_add_to_cart_button,
body.ngs-pdp .summary form.cart .single_add_to_cart_button.button,
body.ngs-pdp .summary form.cart button.single_add_to_cart_button {
	display: inline-flex;
	flex: 1 1 auto;
	align-items: center;
	justify-content: center;
	gap: 10px;
	width: auto;
	min-height: 48px;
	height: 48px;
	margin: 0;
	padding: 0 18px;
	border: 0;
	border-radius: 8px;
	background: var(--ngs-cta) !important;
	color: #fff !important;
	font-size: 14px;
	font-weight: 750;
	letter-spacing: 0.06em;
	line-height: 1;
	text-transform: uppercase;
	box-shadow: none;
}

body.ngs-pdp .summary form.cart .single_add_to_cart_button:hover,
body.ngs-pdp .summary form.cart .single_add_to_cart_button:focus-visible {
	background: var(--ngs-cta-hover) !important;
	color: #fff !important;
}

body.ngs-pdp .summary form.cart .single_add_to_cart_button:not(.added):before,
body.ngs-pdp .summary form.cart .button.single_add_to_cart_button:not(.added):before {
	content: "";
	display: inline-block;
	width: 18px;
	height: 18px;
	margin: 0;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round' d='M3 5h2l1.6 9.2a2 2 0 0 0 2 1.7h7.8a2 2 0 0 0 1.9-1.4L20 8H6'/%3E%3Ccircle cx='10' cy='19' r='1.2'/%3E%3Ccircle cx='17' cy='19' r='1.2'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round' d='M3 5h2l1.6 9.2a2 2 0 0 0 2 1.7h7.8a2 2 0 0 0 1.9-1.4L20 8H6'/%3E%3Ccircle cx='10' cy='19' r='1.2'/%3E%3Ccircle cx='17' cy='19' r='1.2'/%3E%3C/svg%3E") center / contain no-repeat;
}

body.ngs-pdp .ngs-pdp-lowstock {
	margin: -0.35rem 0 0.85rem;
	color: var(--ngs-muted);
	font-size: 13px;
	line-height: 1.4;
}

body.ngs-pdp .ngs-pdp-lowstock[hidden] {
	display: none !important;
}

body.ngs-pdp .ngs-pdp-pickup {
	margin: 0 0 1rem;
}

body.ngs-pdp .ngs-pdp-pickup a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: var(--ngs-ink);
	font-size: 13.5px;
	font-weight: 500;
	text-decoration: none;
}

body.ngs-pdp .ngs-pdp-pickup a:hover,
body.ngs-pdp .ngs-pdp-pickup a:focus-visible {
	color: var(--ngs-green-dark);
}

body.ngs-pdp .ngs-pdp-pickup .ngs-pdp-icon {
	flex: 0 0 20px;
	width: 20px;
	height: 20px;
	color: var(--ngs-muted);
}

body.ngs-pdp .ngs-pdp-pickup .ngs-pdp-icon svg {
	width: 18px;
	height: 18px;
}

body.ngs-pdp .ngs-pdp-pickup__more {
	margin-left: 0.15rem;
	color: var(--ngs-muted);
	font-weight: 600;
}

body.ngs-pdp .ngs-pdp-pickup__more:after {
	content: " >";
}

body.ngs-pdp .ngs-pdp-trust {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
}

body.ngs-pdp .ngs-pdp-trust__item {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	padding: 12px 12px 12px 10px;
	border: 1px solid var(--ngs-line);
	border-radius: 8px;
	background: #f7f8f6;
	color: var(--ngs-muted);
	font-size: 12.5px;
	line-height: 1.35;
}

body.ngs-pdp .ngs-pdp-trust__item .ngs-pdp-icon {
	flex: 0 0 22px;
	width: 22px;
	height: 22px;
	color: #3a433c;
}

body.ngs-pdp .ngs-pdp-trust__item strong {
	display: block;
	margin-bottom: 2px;
	color: var(--ngs-ink);
	font-size: 13px;
	font-weight: 700;
}

/* Long description below stays on its own (gs-product-description). */
body.ngs-pdp .gs-product-description .gs-short-description,
body.ngs-pdp .woocommerce-Tabs-panel .gs-key-benefits {
	display: revert;
}

@media (max-width: 992px) {
	body.ngs-pdp .ngs-pdp-media {
		margin-bottom: 1.25rem;
	}

	body.ngs-pdp .cg-layout-vertical-scroll,
	body.ngs-pdp .cg-layout-horizontal {
		display: block;
	}

	body.ngs-pdp .cg-layout-vertical-scroll .cg-thumb-swiper,
	body.ngs-pdp .cg-layout-horizontal .cg-thumb-swiper {
		width: 100%;
		margin: 10px 0 0;
		flex-direction: row;
	}

	body.ngs-pdp .ngs-pdp-pills {
		position: static;
		left: auto;
		margin-top: 12px;
		pointer-events: auto;
	}

	body.ngs-pdp .summary h1.product_title.entry-title {
		font-size: 28px;
	}

	body.ngs-pdp .summary .cgkit-as-variation-price,
	body.ngs-pdp div.product p.price,
	body.ngs-pdp .summary p.price {
		font-size: 28px;
	}

	body.ngs-pdp .ngs-pdp-trust {
		grid-template-columns: 1fr;
	}

	body.ngs-pdp .summary form.cart .single_add_to_cart_button {
		flex: 1 1 auto;
	}

	body.ngs-pdp .ngs-pdp-usps {
		gap: 10px 10px;
	}

	body.ngs-pdp .ngs-pdp-usp__text strong {
		font-size: 12.5px;
	}

	body.ngs-pdp .ngs-pdp-usp__text span {
		font-size: 11.5px;
	}
}

@media (max-width: 520px) {
	body.ngs-pdp .ngs-pdp-usps {
		grid-template-columns: 1fr;
		gap: 0;
		padding-top: 0;
		border-top: 0;
	}

	body.ngs-pdp .ngs-pdp-usp {
		flex-direction: row;
		align-items: flex-start;
		gap: 12px;
		padding: 0.65rem 0;
		border-top: 1px solid var(--ngs-line);
	}

	body.ngs-pdp .ngs-pdp-usp__text strong {
		font-size: 14px;
	}

	body.ngs-pdp .ngs-pdp-usp__text span {
		font-size: 13px;
	}

	body.ngs-pdp .summary .woocommerce-variation-add-to-cart {
		flex-wrap: wrap;
	}

	body.ngs-pdp .summary form.cart .quantity {
		flex: 0 0 118px;
	}

	body.ngs-pdp .summary form.cart .single_add_to_cart_button {
		flex: 1 1 calc(100% - 128px);
		min-width: 0;
	}
}
