/* Sigma SA storefront: product listing (PLP) matched to sigmaphoto.com + NEW badge. */
:root {
	--sigma-ink: #333333;
	--sigma-line: rgba(51, 51, 51, 0.1);
	--sigma-paper: #fefefd;
	--sigma-badge-font: "SigmaSans-Regular", "Sigma Sans", "Noto Sans JP", sans-serif;
}

/* ---------- Grid: 3 columns from 901px, 1 column below (like sigmaphoto.com) ---------- */
.sigma-plp .elementor-widget-loop-grid .elementor-loop-container {
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	gap: 0 !important;
	grid-auto-rows: auto !important;
}
@media (max-width: 900px) {
	.sigma-plp .elementor-widget-loop-grid .elementor-loop-container {
		grid-template-columns: minmax(0, 1fr) !important;
	}
}

/* Card: 16px padding, hairline grid lines. */
.sigma-plp .e-loop-item > .e-con,
.sigma-plp .e-loop-item > .e-con > .e-con {
	height: 100%;
}
.sigma-plp .e-loop-item .e-con.e-child {
	--padding-top: 16px; --padding-right: 16px; --padding-bottom: 16px; --padding-left: 16px;
	padding: 16px !important;
	border-color: var(--sigma-line) !important;
	justify-content: flex-start;
}
@media (min-width: 901px) {
	.sigma-plp .e-loop-item:nth-child(3n) .e-con.e-child { border-right-width: 0 !important; }
}
@media (max-width: 900px) {
	.sigma-plp .e-loop-item .e-con.e-child {
		padding: 16px 16px 64px !important;
		border-right-width: 0 !important;
	}
}

/* Square image area, whole lens visible (sigmaphoto.com shows 1:1 packshots). */
.sigma-plp .e-loop-item .elementor-widget-theme-post-featured-image {
	position: relative;
	width: 100%;
	margin: 0 0 16px !important;
}
.sigma-plp .e-loop-item .elementor-widget-theme-post-featured-image a { display: block; }
.sigma-plp .e-loop-item .elementor-widget-theme-post-featured-image img {
	display: block;
	width: 100% !important;
	height: auto !important;
	max-width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: contain;
	object-position: center;
	background: transparent;
	transition: opacity .2s ease;
}
.sigma-plp .e-loop-item:hover .elementor-widget-theme-post-featured-image img { opacity: .88; }

/* Text: line (ART) then name, 16/20, then price. */
.sigma-plp .e-loop-item .elementor-widget-heading .elementor-heading-title,
.sigma-plp .e-loop-item .elementor-widget-woocommerce-product-title .elementor-heading-title,
.sigma-plp .e-loop-item .price {
	font-size: 16px !important;
	line-height: 20px !important;
	letter-spacing: 0.08px;
	color: var(--sigma-ink) !important;
	margin: 0 !important;
}
.sigma-plp .e-loop-item .elementor-widget-woocommerce-product-title .elementor-heading-title { font-weight: 400 !important; }
.sigma-plp .e-loop-item .price { font-weight: 400 !important; }
.sigma-plp .e-loop-item a { color: inherit; text-decoration: none; }

/* ---------- NEW badge ---------- */
.sigma-new-badge,
.sigma-plp .e-loop-item.sigma-new .elementor-widget-theme-post-featured-image::before,
.woocommerce ul.products li.product.sigma-new > a:first-child::before {
	content: "New";
	position: absolute;
	top: 0;
	left: -4px;
	z-index: 2;
	padding: 0 4px;
	background: var(--sigma-paper);
	color: var(--sigma-ink);
	font-family: var(--sigma-badge-font);
	font-size: 13px;
	line-height: 16.25px;
	letter-spacing: 0.08px;
	text-transform: uppercase;
	pointer-events: none;
}
.woocommerce ul.products li.product.sigma-new > a:first-child { position: relative; display: block; }

/* Product page: small NEW label above the title. */
.single-product.sigma-new .elementor-widget-woocommerce-product-title:not(.e-loop-item *) .product_title::before,
.single-product.sigma-new .product_title.entry-title:not(.e-loop-item *)::before {
	content: "New";
	display: block;
	width: max-content;
	margin: 0 0 8px;
	font-family: var(--sigma-badge-font);
	font-size: 13px;
	line-height: 16.25px;
	letter-spacing: 0.08px;
	text-transform: uppercase;
	color: var(--sigma-ink);
}

/* ---------- Stock per mount on the product page ---------- */
.sigma-stock {
	margin: 8px 0 12px;
	font-size: 13px;
	line-height: 18px;
	letter-spacing: 0.08px;
	color: var(--sigma-ink);
	display: flex;
	align-items: center;
	gap: 8px;
}
.sigma-stock::before {
	content: "";
	width: 7px; height: 7px;
	border-radius: 50%;
	background: #b9b9b9;
	flex: none;
}
.sigma-stock.is-in::before  { background: #3a8f5c; }
.sigma-stock.is-low::before { background: #d08a1c; }
.sigma-stock.is-out::before { background: #b32d2e; }
.sigma-stock.is-low { font-weight: 500; }
.custom-radio.sigma-oos span { color: rgba(51, 51, 51, 0.45); text-decoration: line-through; }
.custom-add-to-cart-btn.sigma-disabled,
.custom-add-to-cart-btn:disabled { opacity: .45; cursor: not-allowed; }
.qty-btn:disabled { opacity: .35; cursor: not-allowed; }
.sigma-stock.is-checking { opacity: .6; }

/* =====================================================================
   Product page on phones (≤767px), matched to sigmaphoto.com
   ===================================================================== */
.sigma-pdp-hero { display: none; }
@media (max-width: 767px) {
	/* Big centred title above the gallery */
	.sigma-pdp-hero {
		display: block;
		padding: 40px 16px 48px;
		text-align: center;
		font-family: "SigmaSerif-Headline", "SigmaSerif-Text", serif;
		font-size: 36px;
		line-height: 39.6px;
		color: var(--sigma-ink);
	}
	.sigma-pdp-hero span { display: block; }

	/* 16px page gutters like the global site (outer container only, inner columns flush) */
	.single-product [data-elementor-type="product"] .e-con.e-parent { --padding-left: 16px; --padding-right: 16px; }
	.single-product [data-elementor-type="product"] .e-con.e-parent > .e-con {
		--padding-left: 0px; --padding-right: 0px;
		padding-left: 0 !important; padding-right: 0 !important;
	}
	.single-product #wpgs-gallery { width: 100% !important; max-width: 100% !important; }

	/* Gallery: square, whole lens visible, dots instead of thumbnails */
	.single-product #wpgs-gallery { margin: 0 0 16px !important; }
	.single-product #wpgs-gallery .gallery-navigation-carousel-wrapper,
	.single-product #wpgs-gallery .wcgs-spswiper-arrow { display: none !important; }
	.single-product #wpgs-gallery .wcgs-carousel { width: 100% !important; }
	.single-product #wpgs-gallery .wcgs-carousel .spswiper-slide img {
		width: 100% !important;
		height: auto !important;
		aspect-ratio: 1 / 1;
		object-fit: contain;
	}
	.sigma-dots { display: flex; justify-content: center; gap: 8px; height: 20px; align-items: center; margin: 0 0 24px; }
	.sigma-dots button {
		all: unset;
		width: 6px; height: 6px;
		border-radius: 50%;
		background: rgba(51, 51, 51, .25);
		cursor: pointer;
	}
	.sigma-dots button[aria-current="true"] { background: var(--sigma-ink); }

	/* Tabs: the five headings stacked at the top, the chosen section underneath (not an accordion) */
	.single-product .e-n-tabs { display: flex !important; flex-direction: column; }
	.single-product .e-n-tabs > .e-n-tabs-heading {
		display: flex !important;
		flex-direction: column;
		align-items: flex-start;
		gap: 4px;
		padding: 8px 0 24px;
		border-top: 1px solid rgba(51, 51, 51, .7);
		order: 0;
	}
	.single-product .e-n-tabs > .e-n-tabs-heading > .e-n-tab-title {
		order: 0 !important;
		margin: 0 !important;
		padding: 0 !important;
		width: auto !important;
		min-height: 0;
		border: 0 !important;
		background: none !important;
		font-family: "SigmaSans-Regular", "Sigma Sans", sans-serif !important;
		font-size: 13px !important;
		line-height: 16px !important;
		letter-spacing: 0.08px;
		text-transform: uppercase;
		color: rgba(51, 51, 51, .6) !important;
	}
	.single-product .e-n-tabs > .e-n-tabs-heading > .e-n-tab-title[aria-selected="true"] { color: var(--sigma-ink) !important; }
	.single-product .e-n-tabs > .e-n-tabs-heading > .e-n-tab-title .e-n-tab-icon { display: none !important; }
	.single-product .e-n-tabs > .e-n-tabs-content {
		display: block !important;
		order: 1;
		padding-top: 8px;
		border-top: 1px solid rgba(51, 51, 51, .7);
	}
	.single-product .e-n-tabs > .e-n-tabs-content > .e-con { order: 0 !important; padding: 0 !important; --padding-left: 0; --padding-right: 0; }

	/* Specifications: label | value in two columns with hairlines */
	.single-product .pdm-data-item { margin: 0 !important; border-top: 0 !important; border-bottom: 1px solid rgba(51, 51, 51, .7); }
	.single-product .pdm-item-top { grid-template-columns: 1fr 1fr !important; gap: 0 8px; }
	.single-product .pdm-label, .single-product .pdm-value {
		padding: 8px 0 !important;
		font-family: "SigmaSans-Regular", "Sigma Sans", sans-serif;
		font-size: 13px !important;
		line-height: 16.25px !important;
	}

	/* Sample images: one per row, photo, then settings as a two-column table, then download */
	.single-product .sample-images-grid { display: flex !important; flex-direction: column; gap: 32px !important; }
	.single-product .sample-image { width: 100% !important; }
	.single-product .sample-image img { display: block; width: 100% !important; height: auto !important; }
	.single-product .sample-image [class^="sample-specs"],
	.single-product .sample-image [class*=" sample-specs"] {
		display: block !important;
		margin-top: 16px;
		background: none !important;
		height: auto !important;
	}
	.single-product .sample-image .row {
		display: grid !important;
		grid-template-columns: 1fr 1fr;
		gap: 0 8px;
		border-top: 1px solid rgba(51, 51, 51, .7);
	}
	.single-product .sample-image .row:last-child { border-bottom: 1px solid rgba(51, 51, 51, .7); }
	.single-product .sample-image .row .name,
	.single-product .sample-image .row .value {
		border: 0 !important;
		padding: 8px 0 !important;
		height: auto !important;
		font-family: "SigmaSans-Regular", "Sigma Sans", sans-serif;
		font-size: 13px !important;
		line-height: 16.25px !important;
	}
	.single-product .sample-download-btn {
		display: flex !important;
		align-items: center;
		justify-content: center;
		width: 100% !important;
		height: 40px;
		margin: 16px 0 0 !important;
		padding: 11px 15px !important;
		box-sizing: border-box;
		font-family: "SigmaSans-Regular", "Sigma Sans", sans-serif !important;
		font-size: 13px !important;
		letter-spacing: 0.26px;
		text-transform: uppercase;
	}

	/* Buy box: full-width 40px button like the global site */
	.single-product .custom-add-to-cart-btn { width: 100%; min-height: 40px; }
}
