/* AZPoolShop Redesign v0.2 — loaded only when body has .azp-v2 */

/* ---------- Full width: header, nav, listings, footer ---------- */
body.azp-v2 .site-header .col-full,
body.azp-v2 .col-full-nav .col-full,
body.azp-v2 .col-full-nav,
body.azp-v2 .azp-util .azp-wrap,
body.azp-v2.azp-listing .archive-header .col-full,
body.azp-v2.azp-listing .site-content > .col-full,
body.azp-v2.azp-listing .shoptimizer-archive > .col-full,
body.azp-v2 .site-footer .col-full {
	max-width: none;
	padding-left: clamp(16px, 2.2vw, 40px);
	padding-right: clamp(16px, 2.2vw, 40px);
}
body.azp-v2.azp-listing #primary { width: 100%; max-width: none; }

/* ---------- Header ---------- */
body.azp-v2 .site-header .custom-logo-link img,
body.azp-v2 .site-header .custom-logo { max-height: 56px; width: auto; }
body.azp-v2 .site-header .site-search { flex: 1 1 auto; max-width: 900px; }
body.azp-v2 .dgwt-wcas-search-wrapp { max-width: none; }
body.azp-v2 .dgwt-wcas-sf-wrapp input[type=search] {
	height: 46px; font-size: 16px; border: 2px solid var(--azp-blue); border-radius: 8px;
}
body.azp-v2 .dgwt-wcas-sf-wrapp input[type=search]:focus { outline: 3px solid rgba(0,83,159,.25); outline-offset: 1px; }
/* Desktop: trim the tall logo/search row (108px -> ~76px) without changing its contents. */
@media (min-width: 993px) {
	body.azp-v2 #masthead > .col-full { padding-top: 14px !important; padding-bottom: 14px !important; }
	body.azp-v2 .site-header .site-search { max-width: 1000px; margin-left: 32px; }
}
/* Phones: compact utility bar so the header doesn't eat the screen. */
@media (max-width: 767px) {
	body.azp-v2 .azp-util { font-size: 12px; }
	body.azp-v2 .azp-util .azp-wrap { min-height: 28px; padding-top: 2px; padding-bottom: 2px; justify-content: center; }
	body.azp-v2 .azp-util-links { display: none; }
	body.azp-v2 .azp-catnav-in { min-height: 42px; }
}

/* ---------- Category bar + mega menu (replaces old bar for v0.2 only) ---------- */
body.azp-v2 .azp-catbar { display: none; }
.azp-catnav { background: var(--azp-blue); color: #fff; position: relative; z-index: 40; }
.azp-catnav-in { display: flex; align-items: stretch; gap: 4px; padding: 0 clamp(16px, 2.2vw, 40px); min-height: 46px; }
.azp-catnav-all {
	display: inline-flex; align-items: center; gap: 10px; flex: none;
	background: var(--azp-blue-d); color: #fff; border: 0; padding: 0 18px;
	font-weight: 700; font-size: 15px; cursor: pointer;
}
.azp-catnav-all:hover, .azp-catnav-all:focus-visible, .azp-catnav-all[aria-expanded=true] { background: var(--azp-navy); }
.azp-burger, .azp-burger::before, .azp-burger::after {
	display: block; width: 18px; height: 2px; background: currentColor; position: relative; content: "";
}
.azp-burger::before { position: absolute; top: -6px; }
.azp-burger::after { position: absolute; top: 6px; }
.azp-catnav-top { display: flex; flex-wrap: wrap; align-items: center; margin: 0; padding: 0; list-style: none; overflow: hidden; max-height: 46px; }
.azp-catnav-top li { margin: 0; }
.azp-catnav-top a {
	display: block; color: #fff; text-decoration: none; padding: 0 14px;
	line-height: 46px; font-size: 14px; font-weight: 600; white-space: nowrap;
}
.azp-catnav-top a:hover, .azp-catnav-top a:focus-visible { background: rgba(255,255,255,.14); text-decoration: underline; }
.azp-mega {
	position: absolute; left: 0; right: 0; top: 100%;
	background: #fff; color: var(--azp-ink); border-bottom: 3px solid var(--azp-blue);
	box-shadow: 0 12px 28px rgba(11,37,64,.18);
	max-height: calc(100vh - 160px); overflow-y: auto;
}
.azp-mega[hidden] { display: none; }
.azp-mega-grid {
	display: grid; gap: 22px 28px; padding: 24px clamp(16px, 2.2vw, 40px);
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
}
.azp-mega-h { display: block; font-weight: 700; color: var(--azp-blue); text-decoration: none; margin-bottom: 6px; }
.azp-mega-col ul { list-style: none; margin: 0; padding: 0; }
.azp-mega-col li a { display: block; color: var(--azp-text); text-decoration: none; font-size: 14px; padding: 3px 0; }
.azp-mega a:hover, .azp-mega a:focus-visible { color: var(--azp-blue); text-decoration: underline; }
.azp-mega-more { font-weight: 600; color: var(--azp-blue) !important; }
.azp-mega-foot { margin: 0; padding: 12px clamp(16px, 2.2vw, 40px) 18px; border-top: 1px solid var(--azp-line); }
.azp-mega-foot a { font-weight: 700; color: var(--azp-blue); }

@media (max-width: 991px) {
	.azp-catnav-top { display: none; }
	.azp-catnav-all { width: 100%; justify-content: flex-start; }
	.azp-catnav-in { padding: 0; }
	.azp-mega { position: static; box-shadow: none; max-height: none; }
	.azp-mega-grid { grid-template-columns: 1fr; gap: 0; padding: 0; }
	.azp-mega-col { border-bottom: 1px solid var(--azp-line); padding: 12px 16px; }
	.azp-mega-col ul { display: none; padding-top: 6px; }
	.azp-mega-col.is-open ul { display: block; }
	.azp-mega-h { margin: 0; padding-right: 32px; position: relative; }
	.azp-mega-col:has(ul) .azp-mega-h::after { content: "+"; position: absolute; right: 0; top: 0; font-size: 20px; line-height: 1; }
	.azp-mega-col.is-open .azp-mega-h::after { content: "–"; }
}

/* ---------- Subcategory tiles above products (compact: image left, name right) ---------- */
.azp-subcats { margin: 0 0 24px; }
.azp-subcats-h { font-size: 17px; margin: 0 0 10px; color: var(--azp-ink); }
body.azp-v2 ul.products.azp-subcat-grid {
	display: grid !important; gap: 10px; margin: 0 !important; padding: 0; width: auto !important;
	grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
}
body.azp-v2 ul.azp-subcat-grid::before, body.azp-v2 ul.azp-subcat-grid::after { display: none !important; }
body.azp-v2 ul.azp-subcat-grid li.product-category {
	width: auto !important; float: none !important; margin: 0 !important; clear: none !important; min-width: 0;
	border: 1px solid var(--azp-line); border-radius: 8px; padding: 0 !important; background: #fff; text-align: left;
}
body.azp-v2 ul.azp-subcat-grid li.product-category:hover,
body.azp-v2 ul.azp-subcat-grid li.product-category:focus-within { border-color: var(--azp-blue); }
body.azp-v2 ul.azp-subcat-grid li.product-category > a {
	display: flex; align-items: center; gap: 10px; padding: 8px 10px; min-height: 72px;
	color: var(--azp-ink); text-decoration: none;
}
body.azp-v2 ul.azp-subcat-grid .cat-image-wrapper {
	flex: 0 0 56px; width: 56px; height: 56px; margin: 0 !important; display: flex; align-items: center; justify-content: center;
}
body.azp-v2 ul.azp-subcat-grid li.product-category img {
	width: 56px !important; height: 56px !important; max-height: none; margin: 0 !important; object-fit: contain;
}
body.azp-v2 ul.azp-subcat-grid h2.woocommerce-loop-category__title {
	font-size: 14px !important; line-height: 1.3 !important; font-weight: 600; margin: 0 !important; padding: 0 !important;
	min-width: 0; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; overflow-wrap: anywhere;
}
body.azp-v2 ul.azp-subcat-grid mark.count {
	background: none; color: var(--azp-muted); font-weight: 400; font-size: 12px; padding: 0; white-space: nowrap;
}
@media (max-width: 599px) {
	body.azp-v2 ul.products.azp-subcat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
	body.azp-v2 ul.azp-subcat-grid li.product-category > a { gap: 8px; padding: 6px 8px; min-height: 60px; }
	body.azp-v2 ul.azp-subcat-grid .cat-image-wrapper,
	body.azp-v2 ul.azp-subcat-grid li.product-category img { flex-basis: 44px; width: 44px !important; height: 44px !important; }
	body.azp-v2 ul.azp-subcat-grid h2.woocommerce-loop-category__title { font-size: 13px !important; }
}
@media (max-width: 339px) { body.azp-v2 ul.products.azp-subcat-grid { grid-template-columns: 1fr; } }

/* ---------- Product grid: 5 / 4 / 3 / 2 columns ---------- */
body.azp-v2.azp-listing ul.products:not(.azp-subcat-grid) {
	display: grid !important; gap: 20px 16px; margin: 0 0 24px !important; padding: 0; width: auto !important;
	grid-template-columns: repeat(5, minmax(0, 1fr));
}
body.azp-v2.azp-listing ul.products::before,
body.azp-v2.azp-listing ul.products::after { display: none !important; }
body.azp-v2.azp-listing ul.products:not(.azp-subcat-grid) > li.product {
	width: auto !important; float: none !important; margin: 0 !important; clear: none !important;
	display: flex; flex-direction: column; min-width: 0;
	border: 1px solid var(--azp-line2); border-radius: 8px; padding: 10px 10px 12px; background: #fff;
}
body.azp-v2.azp-listing ul.products > li.product .woocommerce-image__wrapper { display: block !important; overflow: hidden; }
/* Every image gets a real box so lazy-loading triggers as it scrolls into view. */
body.azp-v2.azp-listing ul.products > li.product .woocommerce-image__wrapper img {
	display: block; width: 100% !important; height: auto !important; aspect-ratio: 1 / 1; object-fit: contain;
}
/* Add to Cart always visible (no hover-only reveal), so it works on touch screens too. */
body.azp-v2.azp-listing ul.products > li.product a.button,
body.azp-v2.azp-listing ul.products > li.product .add_to_cart_button {
	opacity: 1 !important; visibility: visible !important; transform: none !important; position: static !important;
}
body.azp-v2.azp-listing ul.products > li.product .woocommerce-card__header {
	display: flex; flex-direction: column; flex: 1 1 auto; padding: 10px 2px 0 !important; text-align: left;
}
body.azp-v2.azp-listing ul.products > li.product p.product__categories {
	order: 0; margin: 0 0 4px; font-size: 12px; line-height: 1.3; color: var(--azp-muted);
	white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
body.azp-v2.azp-listing ul.products > li.product p.product__categories a { color: inherit; }
body.azp-v2.azp-listing ul.products > li.product .woocommerce-loop-product__title {
	font-size: 14px; line-height: 1.35; font-weight: 600; min-height: calc(1.35em * 3); margin: 0 0 6px;
	display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
body.azp-v2.azp-listing ul.products > li.product .woocommerce-loop-product__title a { color: var(--azp-ink); }
body.azp-v2.azp-listing ul.products > li.product .price {
	display: block; font-size: 18px; line-height: 1.2; font-weight: 700; color: var(--azp-ink); margin: 0 0 4px;
}
body.azp-v2.azp-listing ul.products > li.product .price del { font-size: 13px; font-weight: 400; color: var(--azp-muted); }
body.azp-v2.azp-listing ul.products > li.product .azp-loop-stock { margin: 0 0 10px; font-size: 13px; line-height: 1.3; }
body.azp-v2.azp-listing ul.products > li.product .azp-loop-stock p { margin: 0; font-weight: 600; }
body.azp-v2.azp-listing ul.products > li.product .azp-loop-stock p.stock { font-size: 14px; line-height: 1.3; }
body.azp-v2.azp-listing ul.products > li.product .azp-loop-stock .in-stock { color: var(--azp-ok); }
body.azp-v2.azp-listing ul.products > li.product .azp-loop-stock .available-on-backorder { color: var(--azp-low); }
body.azp-v2.azp-listing ul.products > li.product .azp-loop-stock .out-of-stock { color: #9A1C1C; }
body.azp-v2.azp-listing ul.products > li.product .button,
body.azp-v2.azp-listing ul.products > li.product .add_to_cart_button {
	margin-top: auto; width: 100%; text-align: center; min-height: 40px; padding: 10px 8px !important;
	font-size: 14px !important; font-weight: 600; line-height: 1.2 !important; border-radius: 6px;
	display: flex !important; align-items: center; justify-content: center;
}

@media (max-width: 1399px) { body.azp-v2.azp-listing ul.products:not(.azp-subcat-grid) { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 1099px) { body.azp-v2.azp-listing ul.products:not(.azp-subcat-grid) { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 767px) {
	body.azp-v2.azp-listing ul.products:not(.azp-subcat-grid) { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 10px; }
	body.azp-v2.azp-listing ul.products > li.product { padding: 8px; }
	body.azp-v2.azp-listing ul.products > li.product .woocommerce-loop-product__title { font-size: 13px; }
}
@media (max-width: 359px) { body.azp-v2.azp-listing ul.products:not(.azp-subcat-grid) { grid-template-columns: 1fr; } }

/* ---------- Infinite scroll (real pagination stays in the HTML for crawlers / no-JS) ---------- */
/* Only once the script is running: hide numbered pages visually and drop the duplicate
   bottom sort box + result count that sit in Shoptimizer's bottom toolbar. */
body.azp-v2.azp-lm-ready .woocommerce-pagination {
	position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap;
}
body.azp-v2.azp-lm-ready .shoptimizer-sorting.sorting-end { margin: 0 !important; padding: 0 !important; min-height: 0; }
body.azp-v2.azp-lm-ready .shoptimizer-sorting.sorting-end .woocommerce-ordering,
body.azp-v2.azp-lm-ready .shoptimizer-sorting.sorting-end .woocommerce-result-count { display: none !important; }
.azp-lm { text-align: center; margin: 4px 0 32px; min-height: 48px; }
.azp-lm-sentinel { height: 1px; }
.azp-lm-loading { display: none; align-items: center; justify-content: center; gap: 10px; height: 40px; color: var(--azp-muted); font-size: 14px; }
.azp-lm.is-loading .azp-lm-loading { display: flex; }
.azp-spin {
	width: 20px; height: 20px; border-radius: 50%; border: 2px solid var(--azp-line); border-top-color: var(--azp-blue);
	animation: azp-spin .8s linear infinite;
}
@keyframes azp-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .azp-spin { animation: none; } }
.azp-lm-status { margin: 6px 0 0; color: var(--azp-muted); font-size: 14px; }
.azp-lm-more {
	display: inline-flex; align-items: center; justify-content: center; min-width: 240px; min-height: 44px; margin-top: 10px;
	background: #fff; color: var(--azp-blue); border: 2px solid var(--azp-blue); border-radius: 8px;
	font-size: 15px; font-weight: 700; padding: 10px 22px; cursor: pointer;
}
.azp-lm-more:hover, .azp-lm-more:focus-visible { background: var(--azp-tint); }
.azp-lm-more[hidden] { display: none; }
.azp-lm-err { color: #9A1C1C; }
.azp-lm-err a { color: var(--azp-blue); font-weight: 600; }

/* ---------- Footer sections ---------- */
.azp-foot { background: var(--azp-navy); color: #DCE7F2; }
.azp-foot-in {
	display: grid; gap: 28px; padding: 40px clamp(16px, 2.2vw, 40px) 28px;
	grid-template-columns: repeat(4, minmax(0, 1fr));
}
.azp-foot-col summary {
	list-style: none; font-weight: 700; font-size: 16px; color: #fff; margin-bottom: 12px; pointer-events: none;
}
.azp-foot-col summary::-webkit-details-marker { display: none; }
.azp-foot-col ul { list-style: none; margin: 0; padding: 0; }
.azp-foot-col li { margin: 0 0 8px; font-size: 14px; line-height: 1.45; }
.azp-foot-col a { color: #DCE7F2; text-decoration: none; }
.azp-foot-col a:hover, .azp-foot-col a:focus-visible { color: #fff; text-decoration: underline; }
/* Original footer becomes the bottom "legal" band of the same section. Its content is
   unchanged; only the empty widget, the repeated domain heading and the link list whose
   destinations are all in the columns above are hidden from view. */
body.azp-v2 footer.site-footer {
	background: var(--azp-navy) !important; color: #C9D6E3; padding: 0 !important; margin: 0;
}
body.azp-v2 footer.site-footer > .col-full {
	display: grid; grid-template-columns: minmax(0, 2.2fr) auto minmax(0, 1.2fr); gap: 20px 40px; align-items: start;
	border-top: 1px solid rgba(255,255,255,.14); padding-top: 22px; padding-bottom: 26px;
}
body.azp-v2 footer.site-footer > .col-full::before,
body.azp-v2 footer.site-footer > .col-full::after { display: none !important; }
body.azp-v2 footer.site-footer .widget {
	width: auto !important; max-width: none !important; float: none !important; margin: 0 !important; padding: 0 !important; min-height: 0 !important;
}
body.azp-v2 footer.site-footer #text-3,
body.azp-v2 footer.site-footer #text-5 { display: none !important; }
body.azp-v2 footer.site-footer #text-2 .textwidget > div:not(.p65warning) { display: none; }
body.azp-v2 footer.site-footer .p65warning { font-size: 13px; line-height: 1.55; color: #DCE7F2; max-width: 720px; }
body.azp-v2 footer.site-footer .p65warning strong { color: #fff; }
body.azp-v2 footer.site-footer .p65warning a { color: #fff; text-decoration: underline; }
body.azp-v2 footer.site-footer .credit_cards_vtn { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
body.azp-v2 footer.site-footer .credit_cards_vtn img { width: 44px !important; height: auto !important; margin: 0 !important; display: block; }
body.azp-v2 footer.site-footer #text-6 { font-size: 13px; line-height: 1.55; color: #DCE7F2; text-align: right; }
body.azp-v2 footer.site-footer #text-6 * { color: inherit; font-size: inherit; text-align: inherit; }
body.azp-v2 #content { padding-bottom: 32px; }
@media (max-width: 991px) {
	.azp-foot-in { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	body.azp-v2 footer.site-footer > .col-full { grid-template-columns: 1fr; gap: 14px; }
	body.azp-v2 footer.site-footer #text-6 { text-align: left; }
}
@media (max-width: 599px) {
	.azp-foot-in { grid-template-columns: 1fr; gap: 0; padding-top: 16px; }
	.azp-foot-col { border-bottom: 1px solid rgba(255,255,255,.15); padding: 12px 0; }
	.azp-foot-col summary { pointer-events: auto; cursor: pointer; margin: 0; position: relative; }
	.azp-foot-col summary::after { content: "+"; position: absolute; right: 0; }
	.azp-foot-col[open] summary::after { content: "–"; }
	.azp-foot-col[open] ul { padding-top: 10px; }
}

/* =========================================================================
 * V2.2 (2026-11-07) — header, product page, gallery, lightbox, stock text,
 * related products. Same scope rule as v0.2: only applies under .azp-v2.
 * ====================================================================== */

/* ---------- Header: one row of logo | full-width search | account + cart ---------- */
@media (min-width: 993px) {
	body.azp-v2 #masthead > .main-header.col-full {
		display: flex !important; align-items: center; gap: 24px; flex-wrap: nowrap;
		padding-top: 12px !important; padding-bottom: 12px !important;
	}
	body.azp-v2 #masthead .site-branding { flex: 0 0 auto; margin: 0 !important; width: auto !important; float: none !important; }
	body.azp-v2 .site-header .custom-logo-link img,
	body.azp-v2 .site-header .custom-logo { max-height: 48px; }
	/* Search takes all the space left after the logo and the two action controls. */
	body.azp-v2 #masthead .site-search {
		flex: 1 1 auto !important; max-width: none !important; width: auto !important; margin: 0 !important; float: none !important;
	}
	body.azp-v2 #masthead .site-search .dgwt-wcas-search-wrapp { max-width: none !important; width: 100% !important; margin: 0 !important; }
	body.azp-v2 #masthead .azp-hdr-actions { display: flex; }
	body.azp-v2 #masthead .site-header-cart { display: block !important; flex: 0 0 auto; margin: 0 !important; float: none !important; width: auto !important; }
	/* The old "Home / Shop / Tracking / Reviews" row duplicates the logo, the category bar
	   and the utility links, so on desktop it is hidden; the cart it held is in the row above. */
	body.azp-v2 .col-full-nav { display: none !important; }
}
.azp-hdr-actions { display: none; align-items: center; gap: 6px; flex: 0 0 auto; }
.azp-hdr-act {
	display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 4px 10px; border-radius: 8px;
	color: var(--azp-ink); text-decoration: none; font-size: 14px; font-weight: 600; white-space: nowrap;
}
.azp-hdr-act:hover, .azp-hdr-act:focus-visible { background: var(--azp-tint); color: var(--azp-blue); }
.azp-hdr-act svg { width: 24px; height: 24px; flex: none; }
body.azp-v2 #masthead .site-header-cart a.cart-contents {
	display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 4px 10px; border-radius: 8px; font-weight: 700;
}
body.azp-v2 #masthead .site-header-cart a.cart-contents:hover { background: var(--azp-tint); }
@media (min-width: 993px) {
	body.azp-v2 #masthead .site-header-cart a.cart-contents .amount { display: inline !important; color: var(--azp-ink); font-size: 15px; }
}

/* Utility bar: one slim line, links on the right. */
body.azp-v2 .azp-util { font-size: 13px; }
body.azp-v2 .azp-util .azp-wrap { min-height: 32px; padding-top: 0; padding-bottom: 0; align-items: center; }
body.azp-v2 .azp-util-links a { white-space: nowrap; }

/* Category bar: aligned with the header gutters; links share the row evenly. */
@media (min-width: 992px) {
	.azp-catnav-in { gap: 0; }
	.azp-catnav-all { padding: 0 20px; margin-right: 8px; }
	.azp-catnav-top a { padding: 0 12px; }
}
.azp-catnav-all:focus-visible, .azp-catnav-top a:focus-visible, .azp-mega a:focus-visible, .azp-hdr-act:focus-visible {
	outline: 3px solid #FFB547; outline-offset: -3px;
}

/* ---------- Product page: wider, balanced two-column layout ---------- */
body.azp-v2.single-product .site-content > .col-full,
body.azp-v2.single-product .woocommerce-breadcrumb.col-full,
body.azp-v2.single-product .shoptimizer-archive > .col-full {
	max-width: 1560px; padding-left: clamp(16px, 2.2vw, 40px); padding-right: clamp(16px, 2.2vw, 40px);
	margin-left: auto !important; margin-right: auto !important;
}
body.azp-v2.single-product #primary { width: 100%; max-width: none; }
/* Breadcrumb lines up with the product content below it. */
body.azp-v2.single-product .archive-header > .col-full { max-width: 1560px; margin: 0 auto; padding-left: clamp(16px, 2.2vw, 40px); padding-right: clamp(16px, 2.2vw, 40px); }
body.azp-v2.single-product .archive-header .woocommerce-breadcrumb { max-width: none !important; padding-left: 0 !important; padding-right: 0 !important; margin-left: 0; }
@media (min-width: 993px) {
	body.azp-v2.single-product div.product .product-details-wrapper {
		display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(360px, 1fr); gap: 48px; align-items: start;
		max-width: none !important; padding-left: 0 !important; padding-right: 0 !important; margin-left: 0; margin-right: 0;
	}
	body.azp-v2.single-product div.product .product-details-wrapper > .images {
		width: auto !important; float: none !important; margin: 0 !important; grid-column: 1; grid-row: 1 / span 4;
	}
	body.azp-v2.single-product div.product .product-details-wrapper > .summary {
		width: auto !important; float: none !important; margin: 0 !important; grid-column: 2; max-width: 620px;
	}
	body.azp-v2.single-product div.product .product-details-wrapper > #cgkit-pdp-gallery-outside { display: none; }
}
/* Gallery images keep their real proportions. */
body.azp-v2.single-product #commercegurus-pdp-gallery img { object-fit: contain; }
body.azp-v2.single-product #commercegurus-pdp-gallery .swiper-slide-imglink img {
	width: 100% !important; height: auto; max-height: min(560px, 62vh); object-fit: contain; margin: 0 auto; display: block;
}
/* Thumbnails: the selected one is clearly marked, the others stay readable. */
body.azp-v2.single-product #commercegurus-pdp-gallery .cg-thumb-swiper .swiper-slide {
	opacity: .65; border: 2px solid transparent; border-radius: 6px; cursor: pointer; transition: opacity .15s, border-color .15s;
}
body.azp-v2.single-product #commercegurus-pdp-gallery .cg-thumb-swiper .swiper-slide:hover { opacity: 1; }
body.azp-v2.single-product #commercegurus-pdp-gallery .cg-thumb-swiper .swiper-slide-thumb-active { opacity: 1; border-color: var(--azp-blue); }
/* Before the first click CommerceKit marks no thumbnail; the first one is the image shown. */
body.azp-v2.single-product #commercegurus-pdp-gallery .cg-thumb-swiper:not(:has(.swiper-slide-thumb-active)) .swiper-slide:first-child { opacity: 1; border-color: var(--azp-blue); }

/* Purchase box hierarchy: title, price, availability, Add to Cart. */
body.azp-v2.single-product .summary .product_title { font-size: clamp(22px, 1.9vw, 30px); line-height: 1.25; margin: 0 0 12px; }
body.azp-v2.single-product .summary p.price { font-size: clamp(26px, 2.2vw, 32px) !important; font-weight: 800; line-height: 1.15; color: var(--azp-ink); margin: 0 0 12px; }
body.azp-v2.single-product .summary p.price del { font-size: .6em; font-weight: 400; color: var(--azp-muted); }

/* ---------- Stock text: readable, never larger than the price ---------- */
body.azp-v2 .product .summary p.stock,
body.azp-v2.single-product .summary p.stock {
	font-size: 16px !important; line-height: 1.35; font-weight: 600; margin: 8px 0 12px; white-space: normal;
}
body.azp-v2 .summary p.stock.in-stock { color: var(--azp-ok); }
body.azp-v2 .summary p.stock.available-on-backorder { color: var(--azp-low); }
body.azp-v2 .summary p.stock.out-of-stock { color: #9A1C1C; font-weight: 700; }
/* Any product card outside the main listings (related, upsells, search widgets). */
body.azp-v2 li.product .azp-loop-stock { margin: 0 0 10px; font-size: 14px; line-height: 1.3; }
body.azp-v2 li.product .azp-loop-stock p.stock { font-size: 14px !important; line-height: 1.3; margin: 0; font-weight: 600; }
body.azp-v2 li.product .azp-loop-stock .in-stock { color: var(--azp-ok); }
body.azp-v2 li.product .azp-loop-stock .out-of-stock { color: #9A1C1C; }

/* Add to Cart: large, clearly tied to the price. */
body.azp-v2.single-product .summary form.cart:not(.commercekit_sticky-atc) { display: flex; flex-wrap: wrap; gap: 12px; align-items: stretch; margin: 4px 0 16px; }
body.azp-v2.single-product .summary form.cart .single_add_to_cart_button {
	min-height: 52px; font-size: 17px !important; font-weight: 700; border-radius: 8px; flex: 1 1 220px;
}
body.azp-v2.single-product .summary form.cart .quantity { margin: 0 !important; }
body.azp-v2.single-product .summary form.cart .quantity .qty { min-height: 52px; }

/* Manufacturer guidance stays available but secondary. */
body.azp-v2.single-product .summary .azp-minfo { font-size: 14px; }

/* ---------- Description and tabs: readable line length on wide screens ---------- */
body.azp-v2.single-product .woocommerce-tabs .panel,
body.azp-v2.single-product .commercekit-Tabs-panel--description { max-width: 1100px; }
body.azp-v2.single-product .woocommerce-tabs .panel p,
body.azp-v2.single-product .woocommerce-tabs .panel li { max-width: 80ch; font-size: 16px; line-height: 1.65; }
body.azp-v2.single-product .woocommerce-tabs table { max-width: 900px; }

/* ---------- Related products / upsells: 4 / 3 / 2 columns, V2 card style ---------- */
body.azp-v2.single-product section.related ul.products,
body.azp-v2.single-product section.upsells ul.products {
	display: grid !important; gap: 20px 16px; margin: 0 0 24px !important; padding: 0; width: auto !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
}
body.azp-v2.single-product section.related ul.products::before, body.azp-v2.single-product section.related ul.products::after,
body.azp-v2.single-product section.upsells ul.products::before, body.azp-v2.single-product section.upsells ul.products::after { display: none !important; }
body.azp-v2.single-product section.related ul.products > li.product,
body.azp-v2.single-product section.upsells ul.products > li.product {
	width: auto !important; float: none !important; margin: 0 !important; clear: none !important;
	display: flex; flex-direction: column; min-width: 0;
	border: 1px solid var(--azp-line2); border-radius: 8px; padding: 10px 10px 12px; background: #fff;
}
body.azp-v2.single-product section.related li.product img,
body.azp-v2.single-product section.upsells li.product img { width: 100% !important; height: auto !important; aspect-ratio: 1 / 1; object-fit: contain; }
body.azp-v2.single-product section.related li.product .woocommerce-loop-product__title,
body.azp-v2.single-product section.upsells li.product .woocommerce-loop-product__title {
	font-size: 14px; line-height: 1.35; font-weight: 600; margin: 8px 0 6px;
	display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
body.azp-v2.single-product section.related li.product .price,
body.azp-v2.single-product section.upsells li.product .price { font-size: 18px; font-weight: 700; color: var(--azp-ink); margin: 0 0 4px; }
body.azp-v2.single-product section.related li.product .button,
body.azp-v2.single-product section.upsells li.product .button {
	margin-top: auto; width: 100%; min-height: 40px; display: flex !important; align-items: center; justify-content: center;
	opacity: 1 !important; visibility: visible !important; transform: none !important; position: static !important;
}
body.azp-v2.single-product section.related > h2, body.azp-v2.single-product section.upsells > h2 { font-size: 22px; margin: 40px 0 16px; }
body.azp-v2.single-product section.related.products,
body.azp-v2.single-product section.upsells.products { max-width: none !important; padding-left: 0 !important; padding-right: 0 !important; }
@media (max-width: 1099px) { body.azp-v2.single-product section.related ul.products, body.azp-v2.single-product section.upsells ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 767px) { body.azp-v2.single-product section.related ul.products, body.azp-v2.single-product section.upsells ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 10px; } }

/* ---------- Lightbox: the overlay is moved to <body> by v2.js (see there), which
   takes it out of .product-details-wrapper's stacking context (z-index 5). PhotoSwipe's
   own z-index (1500) is then compared directly with the header bars (10 / 40). ---------- */
body.azp-v2 > .pswp { position: fixed; }
/* Logged-in admins only: the WordPress toolbar uses z-index 99999; the lightbox sits
   one level above it so the enlarged image is never covered. Customers have no toolbar. */
body.admin-bar > .pswp { z-index: 100000; }
