/* PA Shop Builder — product page layout. */
.pasb-single-head {
	margin: 10px 0 30px;
}
.pasb-single-head__title.product_title {
	margin: 0 0 18px;
	color: var(--ast-global-color-2, #0f172a);
	font-size: 34px;
	line-height: 40px;
	font-weight: 600;
}
.pasb-single .pasb-breadcrumb {
	max-width: none;
	margin: 0;
	font-size: 14px;
	line-height: 20px;
	color: #070707;
}
.pasb-single .pasb-breadcrumb a { color: var(--ast-global-color-1, #5511f8); }
.pasb-single .pasb-breadcrumb__sep { margin: 0 8px; font-size: 14px; color: #070707; }
@media (max-width: 992px) {
	.pasb-single-head__title.product_title { font-size: 30px; line-height: 36px; }
}
@media (max-width: 768px) {
	.pasb-single-head__title.product_title { font-size: 24px; line-height: 30px; }
}

/* ---------- gallery ---------- */
.pasb-gallery {
	position: relative;
	display: flex;
	gap: 16px;
	align-items: flex-start;
}
.pasb-gallery.images { opacity: 1 !important; }
.pasb-gallery__thumbs {
	display: flex;
	flex-direction: column;
	flex: 0 0 90px;
	gap: 10px;
	max-height: 560px;
	overflow-y: auto;
	scrollbar-width: none;
}
.pasb-gallery__thumbs::-webkit-scrollbar { display: none; }
.pasb-gallery__thumb {
	position: relative;
	display: block;
	width: 90px;
	height: 90px;
	padding: 0;
	border: 1px solid transparent;
	border-radius: 4px;
	background: #fff !important;
	cursor: pointer;
	opacity: .6;
	transition: opacity .2s, border-color .2s;
}
.pasb-gallery__thumb img { display: block; width: 100%; height: 100%; object-fit: contain; }
.pasb-gallery__thumb.is-active,
.pasb-gallery__thumb:hover { opacity: 1; border-color: var(--ast-global-color-6, #d8d8f5); }
.pasb-gallery__thumb:focus-visible { outline: 2px solid var(--ast-global-color-1, #5511f8); outline-offset: 1px; }
.pasb-gallery__thumb-play {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	font-size: 28px;
	filter: drop-shadow(0 1px 3px rgba(0, 0, 0, .6));
}
.pasb-gallery__main {
	position: relative;
	flex: 1 1 auto;
	min-width: 0;
	aspect-ratio: 1 / 1;
	background: #fff;
}
.pasb-gallery__slide {
	position: absolute;
	inset: 0;
	margin: 0;
	opacity: 0;
	visibility: hidden;
	transition: opacity .3s ease, visibility .3s;
}
.pasb-gallery__slide.is-active { opacity: 1; visibility: visible; }
.pasb-gallery__slide img,
.pasb-gallery__zoom { display: block; width: 100%; height: 100%; }
.pasb-gallery__slide img { object-fit: contain; }
.pasb-gallery__zoom { cursor: zoom-in; }
.pasb-gallery__play {
	position: relative;
	display: block;
	width: 100%;
	height: 100%;
	padding: 0;
	border: 0;
	background: #000 !important;
	cursor: pointer;
}
.pasb-gallery__play img { opacity: .85; }
.pasb-gallery__play-icon {
	position: absolute;
	left: 50%;
	top: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 78px;
	height: 78px;
	margin: -39px 0 0 -39px;
	border-radius: 50%;
	background: var(--ast-global-color-1, #5511f8);
	color: #fff;
	font-size: 38px;
	box-shadow: 0 6px 18px rgba(0, 0, 0, .3);
	transition: transform .2s;
}
.pasb-gallery__play:hover .pasb-gallery__play-icon { transform: scale(1.08); }
.pasb-gallery__video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
	background: #000;
	object-fit: contain;
}
.pasb-gallery__nav,
.pasb-gallery__expand {
	position: absolute;
	z-index: 3;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	border: 0;
	background: rgba(255, 255, 255, .85) !important;
	color: var(--ast-global-color-1, #5511f8) !important;
	cursor: pointer;
	transition: opacity .2s;
}
.pasb-gallery__nav {
	top: 50%;
	width: 40px;
	height: 40px;
	margin-top: -20px;
	border-radius: 50%;
	font-size: 26px;
	opacity: 0;
}
.pasb-gallery__main:hover .pasb-gallery__nav,
.pasb-gallery__nav:focus-visible { opacity: 1; }
.pasb-gallery__nav--prev { left: 10px; }
.pasb-gallery__nav--next { right: 10px; }
.pasb-gallery__expand {
	top: 10px;
	right: 10px;
	width: 36px;
	height: 36px;
	border-radius: 4px;
	font-size: 20px;
	background: transparent !important;
	color: #070707 !important;
}
.pasb-gallery__slide--video.is-active ~ .pasb-gallery__expand { display: none; }
@media (max-width: 768px) {
	.pasb-gallery { flex-direction: column-reverse; }
	.pasb-gallery__thumbs { flex-direction: row; flex: none; width: 100%; max-height: none; overflow-x: auto; overflow-y: hidden; }
	.pasb-gallery__thumb { flex: 0 0 64px; width: 64px; height: 64px; }
	.pasb-gallery__main { width: 100%; }
	.pasb-gallery__nav { opacity: 1; }
}

/* lightbox */
.pasb-lightbox {
	width: 100vw;
	max-width: 100vw;
	height: 100vh;
	max-height: 100vh;
	margin: 0;
	padding: 0;
	border: 0;
	background: rgba(13, 6, 20, .94);
}
.pasb-lightbox::backdrop { background: rgba(13, 6, 20, .94); }
.pasb-lightbox[open] { display: flex; align-items: center; justify-content: center; }
.pasb-lightbox__img { max-width: 92vw; max-height: 90vh; object-fit: contain; }
.pasb-lightbox__close,
.pasb-lightbox__nav {
	position: absolute;
	padding: 0;
	border: 0;
	background: none !important;
	color: #fff !important;
	font-size: 44px;
	line-height: 1;
	cursor: pointer;
}
.pasb-lightbox__close { top: 16px; right: 24px; }
.pasb-lightbox__nav { top: 50%; transform: translateY(-50%); font-size: 64px; padding: 0 16px; }
.pasb-lightbox__nav--prev { left: 8px; }
.pasb-lightbox__nav--next { right: 8px; }

/* ---------- summary ---------- */
.pasb-single .summary .price {
	margin: 0 0 8px;
	color: #070707;
	font-size: 24px;
	line-height: 24px;
	font-weight: 700;
}
.pasb-single .summary .woocommerce-product-rating { margin-bottom: 20px; }
.pasb-single .summary form.cart { margin: 16px 0 24px; }
.pasb-single .summary .single_variation_wrap { padding-top: 16px; border-top: 1px solid #e6e6e6; }
.pasb-single .summary .woocommerce-product-details__short-description { margin-bottom: 14px; color: var(--ast-global-color-2, #0f172a); }
.pasb-trust { margin: 0 0 16px; }
.pasb-single .product_meta { padding-top: 14px; border-top: 1px solid #e6e6e6; font-size: 15px; }
.pasb-single .product_meta > span { display: block; margin-bottom: 4px; }

/* quantity − 1 + */
.pasb-own-qty .quantity {
	display: inline-flex !important;
	align-items: stretch;
	gap: 6px;
	margin-right: 10px !important;
}
.pasb-own-qty .quantity input.qty {
	width: 46px;
	min-height: 34px;
	padding: 0 4px;
	border: 1px solid #070707;
	border-radius: 0;
	text-align: center;
	-moz-appearance: textfield;
}
.pasb-own-qty .quantity input.qty::-webkit-outer-spin-button,
.pasb-own-qty .quantity input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.pasb-qty__btn {
	min-width: 24px;
	min-height: 34px;
	padding: 0 6px;
	border: 1px solid #070707;
	border-radius: 0;
	background: #fff !important;
	color: #070707 !important;
	font-size: 18px;
	font-weight: 700;
	line-height: 1;
	cursor: pointer;
}
.pasb-qty__btn:hover { background: #070707 !important; color: #fff !important; }
/* Theme +/- buttons would duplicate ours (only when ours are used). */
.pasb-own-qty .quantity .minus:not(.pasb-qty__btn),
.pasb-own-qty .quantity .plus:not(.pasb-qty__btn) { display: none !important; }
.pasb-single:not(.pasb-own-qty) .quantity { gap: 0; }

/* empty rating */
.pasb-rating-empty { display: flex; align-items: center; gap: 6px; margin-bottom: 20px; }
.pasb-rating-empty .pasb-stars { font-size: 18px; }
.pasb-rating-empty a { color: var(--ast-global-color-1, #5511f8); font-size: 15px; }

/* "Size  [S]" on one row, like before */
.pasb-single table.variations tr { display: flex; align-items: center; gap: 24px; margin-bottom: 10px; }
.pasb-single table.variations th.label,
.pasb-single table.variations td.label { flex: 0 0 auto; min-width: 70px; padding: 0; }
.pasb-single table.variations td.value { flex: 1 1 auto; display: flex; flex-wrap: nowrap; align-items: center; gap: 12px; min-width: 0; padding: 0; }
.pasb-single table.variations td.value .pasb-swatches { flex: 0 1 auto; min-width: 0; }
.pasb-single table.variations td.value .reset_variations { margin: 0; white-space: nowrap; }
.pasb-single table.variations .reset_variations[style*="hidden"] { display: none !important; }
.pasb-single table.variations .label label { display: block; margin: 0; line-height: 1.3; }

/* Videos and embeds inside the short description / tabs never overflow their column. */
.pasb-single .woocommerce-product-details__short-description video,
.pasb-single .woocommerce-product-details__short-description iframe,
.pasb-single .woocommerce-product-details__short-description .wp-video,
.pasb-single .woocommerce-Tabs-panel video,
.pasb-single .woocommerce-Tabs-panel iframe,
.pasb-single .woocommerce-Tabs-panel .wp-video {
	max-width: 100% !important;
	height: auto;
}
.pasb-single .woocommerce-product-details__short-description iframe,
.pasb-single .woocommerce-Tabs-panel iframe { aspect-ratio: 16 / 9; width: 100%; }
.pasb-single .summary { min-width: 0; }

/* tabs */
.pasb-single .woocommerce-tabs ul.tabs li a {
	font-size: 24px;
	line-height: 26px;
	font-weight: 600;
	letter-spacing: 0;
}
@media (max-width: 768px) {
	.pasb-single .woocommerce-tabs ul.tabs li a { font-size: 18px; }
}

/* recommended / popular */
.pasb-product-carousel {
	clear: both;
	margin: 60px 0 0;
}
.pasb-product-carousel__title {
	margin: 0 0 25px;
	color: #0e1523;
	font-size: 28px;
	line-height: 36px;
	font-weight: 600;
	text-align: left;
}
.pasb-product-carousel .pasb-carousel { --pasb-gap: 20px; }
.pasb-product-carousel .pasb-carousel__track > li { height: auto; }

/* Videos typed into the descriptions: real proportions (portrait phone videos too). */
.pasb-single video.pasb-desc-video {
	display: block;
	width: auto !important;
	max-width: 100% !important;
	height: auto !important;
	max-height: min(70vh, 640px);
	margin: 10px 0;
	border-radius: 8px;
	background: #000;
	object-fit: contain;
}
/* Proportions known from the file: full column width for landscape videos, limited height for portrait ones. */
.pasb-single video.pasb-desc-video[data-pasb-ratio] {
	width: 100% !important;
	max-width: min(100%, calc(min(70vh, 640px) * var(--pasb-arn, 1.7778))) !important;
	aspect-ratio: var(--pasb-ar, 16 / 9);
	max-height: none;
}

/* Gallery images always stay inside the square stage (portrait photos included):
   the theme's "img { height: auto }" must not win here. */
.pasb-gallery__main { overflow: hidden; }
.pasb-gallery .pasb-gallery__slide img,
.pasb-gallery .pasb-gallery__slide .pasb-gallery__zoom {
	width: 100% !important;
	height: 100% !important;
	max-height: none !important;
}
.pasb-gallery .pasb-gallery__slide img { object-fit: contain !important; }
.pasb-gallery__thumb img { width: 100% !important; height: 100% !important; object-fit: contain; }

/* Space between the last section (Recently viewed / Popular) and the footer. */
.pasb-single div.product { padding-bottom: 70px; }
@media (max-width: 768px) {
	.pasb-single div.product { padding-bottom: 44px; }
}
