/*
 * BOSS PDP Template — base styles.
 * Deliberately simple/clean for v1. Scoped under .boss-pdp-wrap so the
 * plugin never leaks styles onto other pages or themes.
 */

/* Minimal safe base — the PDP template renders its own <body>, so it can't
   rely on the active theme's base typography/reset being present. */
   
.woocommerce #content div.product div.images, .woocommerce div.product div.images, .woocommerce-page #content div.product div.images, .woocommerce-page div.product div.images {
    width: 100%;
}
header a {
    font-weight: 500;
    font-size: 18px;
}
.product-template-default main {
    margin-top: 0 !important;
}
.product-template-default main > .wp-block-group {
    padding-top: 0 !important;
}
body header .is-layout-flex, body footer .is-layout-flex {
    justify-content: space-between;
}
.boss-pdp-gallery-col .woocommerce-product-gallery, .boss-pdp-gallery-col .boss-pdp-gallery-fallback {
    opacity: 1 !important;
    max-width: 100%;
}
.boss-pdp-tabs-wrap .woocommerce-tabs ul.tabs li.active a {
    font-weight: bold;
}


/***********/
.boss-pdp-body {
	margin: 0;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	color: #222;
	line-height: 1.5;
}

.boss-pdp-wrap {
	max-width: 1200px;
	margin: 0 auto;
	padding: 24px 20px 60px;
	box-sizing: border-box;
}

.boss-pdp-wrap * {
	box-sizing: border-box;
}

.boss-pdp-notices {
	margin-bottom: 20px;
}

/* ---------- Layout: gallery + summary side by side on desktop ---------- */

#product-0,
.boss-pdp-product {
	display: flex;
	flex-wrap: wrap;
	gap: 40px;
	align-items: flex-start;
	margin-bottom: 48px;
}

.boss-pdp-gallery-col {
	flex: 1 1 0;
	min-width: 280px;
}

.boss-pdp-summary-col {
	flex: 1 1 0;
	min-width: 280px;
}

/* ---------- Gallery ---------- */

/*
 * WooCommerce's own single-product/product-image.php template renders
 * .woocommerce-product-gallery with an inline style="opacity: 0; ..."
 * by design — it expects its own JS (wc-single-product.js) to fade it
 * to opacity 1 once the gallery finishes initialising. An inline style
 * can only be overridden by a stylesheet rule using !important, so
 * this guarantees the image is visible regardless of whether that
 * script successfully runs.
 */
.boss-pdp-gallery-col .woocommerce-product-gallery,
.boss-pdp-gallery-col .boss-pdp-gallery-fallback {
	opacity: 1 !important;
	max-width: 100%;
}

.boss-pdp-gallery-col .woocommerce-product-gallery__wrapper,
.boss-pdp-gallery-col .woocommerce-product-gallery__image {
	width: 100%;
}

.boss-pdp-gallery-col img {
	width: 100%;
	max-width: 100%;
	height: auto;
	display: block;
}

/*
 * Main image + thumbnail strip built by bossPdpInitGallery() in
 * boss-pdp.js. Only appears when the plugin's own click-to-swap fallback
 * is active — i.e. when the theme's FlexSlider-based gallery didn't
 * already build a working .flex-control-nav of its own (in which case
 * FlexSlider's own CSS handles sizing instead, and none of this applies).
 *
 * The container has a fixed square size, independent of whichever image
 * is currently loaded inside it (object-fit: contain, on the <img>, never
 * cropping and never resizing the box), so switching between differently
 * sized/shaped gallery images can never collapse or resize the gallery.
 */
.boss-pdp-gallery-col .boss-pdp-gallery-main {
	width: 100%;
	max-width: 500px;
	aspect-ratio: 1 / 1;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	background: #f7f7f7;
	border-radius: 4px;
	margin-bottom: 10px;
}

.boss-pdp-gallery-col .boss-pdp-gallery-main-img {
	width: 100% !important;
	height: 100% !important;
	max-width: 100% !important;
	max-height: 100% !important;
	-o-object-fit: contain !important;
	object-fit: contain !important;
	object-position: center center;
	display: block;
}

.boss-pdp-gallery-col .boss-pdp-gallery-thumbnails {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.boss-pdp-gallery-col .boss-pdp-gallery-thumbnails .boss-pdp-gallery-thumb {
	display: block;
	width: 80px;
	height: 80px;
	flex: 0 0 auto;
	margin: 0;
	padding: 0;
	background: #f7f7f7;
	border: 2px solid transparent;
	border-radius: 4px;
	overflow: hidden;
	cursor: pointer;
	line-height: 0;
}

.boss-pdp-gallery-col .boss-pdp-gallery-thumbnails .boss-pdp-gallery-thumb img {
	width: 100%;
	height: 100%;
	-o-object-fit: cover;
	object-fit: cover;
}

.boss-pdp-gallery-col .boss-pdp-gallery-thumbnails .boss-pdp-gallery-thumb:hover {
	border-color: #c9c9c9;
}

.boss-pdp-gallery-col .boss-pdp-gallery-thumbnails .boss-pdp-gallery-thumb.active {
	border-color: #e63946;
}

.boss-pdp-gallery-col .boss-pdp-gallery-thumbnails .boss-pdp-gallery-thumb:focus-visible {
	outline: 2px solid #e63946;
	outline-offset: 2px;
}

@media (max-width: 600px) {

	.boss-pdp-gallery-col .boss-pdp-gallery-main {
		max-width: 100%;
	}

	.boss-pdp-gallery-col .boss-pdp-gallery-thumbnails .boss-pdp-gallery-thumb {
		width: 64px;
		height: 64px;
	}
}

/* ---------- Title / price / meta ---------- */

.boss-pdp-summary-col .product_title {
	font-size: 48px;
	font-weight: 800;
	line-height: 1.2;
	margin: 0 0 12px;
}

.boss-pdp-summary-col .price {
	font-size: 26px;
	font-weight: 700;
	color: #1a1a1a;
	margin: 0 0 16px;
	display: block;
}

.boss-pdp-summary-col .price del {
	opacity: 0.6;
	margin-right: 8px;
	font-weight: 400;
}

.boss-pdp-summary-col .price ins {
	text-decoration: none;
}

.boss-pdp-summary-col .woocommerce-product-rating {
	margin-bottom: 16px;
}

.boss-pdp-summary-col .woocommerce-product-details__short-description {
	margin-bottom: 20px;
	line-height: 1.6;
}

.boss-pdp-summary-col .woocommerce-product-details__short-description strong,
.boss-pdp-summary-col .woocommerce-product-details__short-description b {
	display: block;
	font-size: 14px;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	margin-bottom: 6px;
}

.boss-pdp-summary-col .product_meta {
	margin-top: 24px;
	font-size: 13px;
}

.boss-pdp-summary-col .product_meta + .product_meta {
	margin-top: 6px;
}

.boss-pdp-summary-col .product_meta > span {
	display: block;
	margin-bottom: 4px;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	font-weight: 600;
	color: #555;
}

.boss-pdp-summary-col .product_meta a {
	text-transform: none;
	letter-spacing: normal;
	font-weight: 700;
	color: #e63946;
	text-decoration: none;
}

.boss-pdp-summary-col .product_meta a:hover {
	text-decoration: underline;
}

/*
 * Hide the native WooCommerce "Category:" line only. WooCommerce's own
 * single-product/meta.php wraps it in <span class="posted_in"> inside
 * <div class="product_meta">. This plugin's own "Collection:" line
 * (boss_pdp_render_product_collections() above) reuses those exact same
 * class names for its own styling, so the :not(.boss-pdp-collections)
 * here is required — without it this would hide the Collection line too.
 */
.boss-pdp-summary-col .product_meta:not( .boss-pdp-collections ) .posted_in {
	display: none;
}

/* ---------- Cart / variations / quantity ---------- */

.boss-pdp-summary-col form.cart {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	margin-bottom: 20px;
}

.boss-pdp-summary-col .quantity {
	margin: 0;
}

.boss-pdp-summary-col .quantity .qty {
	width: 64px;
	padding: 14px 10px;
	font-size: 15px;
	text-align: center;
	border: 1px solid #d8d8d8;
	border-radius: 8px;
}

/*
 * "Qty" label + minus/plus stepper buttons, added by
 * bossPdpInitQuantitySteppers() in boss-pdp.js. WooCommerce's own
 * quantity field is a plain number input with no +/- buttons in most
 * themes; this is a self-contained plugin-level enhancement (same
 * approach as the gallery fix) rather than something that depends on
 * theme or WooCommerce-version support. .qty rules below intentionally
 * override the plain-input rules just above via higher selector
 * specificity, not !important.
 */
.boss-pdp-qty-label {
	display: block;
	width: 100%;
	margin-bottom: 6px;
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: #333;
}

.boss-pdp-summary-col .quantity.boss-pdp-qty-stepper {
	display: inline-flex;
	align-items: stretch;
	overflow: hidden;
	border: 1px solid #d8d8d8;
	border-radius: 8px;
}

.boss-pdp-summary-col .quantity.boss-pdp-qty-stepper .qty {
	width: 48px;
	padding: 10px 4px;
	border: none;
	border-left: 1px solid #d8d8d8;
	border-right: 1px solid #d8d8d8;
	border-radius: 0;
	-moz-appearance: textfield;
	margin-right: 0 !important;
}

.boss-pdp-summary-col .quantity.boss-pdp-qty-stepper .qty::-webkit-outer-spin-button,
.boss-pdp-summary-col .quantity.boss-pdp-qty-stepper .qty::-webkit-inner-spin-button {
	margin: 0;
	-webkit-appearance: none;
}

.boss-pdp-qty-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	padding: 0;
	border: none;
	background: #fff;
	color: #333;
	font-size: 16px;
	line-height: 1;
	cursor: pointer;
}

.boss-pdp-qty-btn:hover {
	background: #f5f5f5;
}

.boss-pdp-qty-btn--plus {
	color: #e63946;
}

.boss-pdp-summary-col .single_add_to_cart_button {
	padding: 15px 40px;
	font-size: 15px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	cursor: pointer;
	border: none;
	border-radius: 999px;
	background-color: #e63946;
	color: #fff;
	transition: background-color 0.15s ease-in-out;
}

.boss-pdp-summary-col .single_add_to_cart_button:hover,
.boss-pdp-summary-col .single_add_to_cart_button:focus {
	background-color: #c92d39;
	color: #fff;
}

.boss-pdp-summary-col table.variations {
	width: 100%;
	margin-bottom: 16px;
}

.boss-pdp-summary-col table.variations select {
	width: 100%;
	padding: 8px;
}

.boss-pdp-summary-col .woocommerce-variation-price,
.boss-pdp-summary-col .woocommerce-variation-availability {
	margin-bottom: 10px;
}

/* ---------- Tabs (description / additional info / reviews) ---------- */

.boss-pdp-tabs-wrap {
	margin-bottom: 80px;
}
div#tab-reviews h2.woocommerce-Reviews-title {
    display: none;
}
div#tab-description > h2 {
    display: none;
}
.boss-pdp-tabs-wrap .woocommerce-tabs ul.tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
	list-style: none;
	margin: 0 0 20px;
	padding: 0;
	border-bottom: 1px solid #e2e2e2;
}

.boss-pdp-tabs-wrap .woocommerce-tabs ul.tabs li {
	margin: 0;
	    outline: 0 !important;
    border: 0 !important;
}

.boss-pdp-tabs-wrap .woocommerce-tabs ul.tabs li a {
	display: inline-block;
	padding: 10px 16px;
	text-decoration: none;
	    outline: 0;
	        font-size: 24px;
}

.boss-pdp-tabs-wrap .woocommerce-tabs .panel {
	line-height: 1.7;
}

/* ---------- Reviews tab ---------- */

.boss-pdp-tabs-wrap .woocommerce-Reviews-title {
	font-size: 20px;
	font-weight: 700;
	margin: 0 0 16px;
}

.boss-pdp-tabs-wrap p.woocommerce-noreviews {
	color: #6b6b6b;
	margin-bottom: 24px;
}

.boss-pdp-tabs-wrap ol.commentlist {
	list-style: none;
	margin: 0 0 28px;
	padding: 0;
}

.boss-pdp-tabs-wrap ol.commentlist li.review + li.review {
	margin-top: 20px;
}

.boss-pdp-tabs-wrap ol.commentlist .comment-text {
	padding-bottom: 20px;
	border-bottom: 1px solid #ececec;
}

.boss-pdp-tabs-wrap ol.commentlist .woocommerce-review__author {
	font-weight: 700;
}

.boss-pdp-tabs-wrap ol.commentlist .woocommerce-review__dash {
	color: #999;
}

.boss-pdp-tabs-wrap ol.commentlist .woocommerce-review__published-date {
	color: #999;
	font-size: 13px;
}

.boss-pdp-tabs-wrap ol.commentlist .star-rating {
	margin: 6px 0;
}

.boss-pdp-tabs-wrap ol.commentlist .description p {
	margin: 8px 0 0;
}

.boss-pdp-tabs-wrap #review_form_wrapper {
	padding-top: 24px;
	border-top: 1px solid #ececec;
}

.boss-pdp-tabs-wrap #reply-title {
	font-size: 17px;
	font-weight: 700;
	margin: 0 0 16px;
}

.boss-pdp-tabs-wrap #reply-title small {
	margin-left: 8px;
	font-size: 13px;
	font-weight: 400;
}

.boss-pdp-tabs-wrap p.comment-notes,
.boss-pdp-tabs-wrap p.comment-form-cookies-consent {
	color: #6b6b6b;
	font-size: 13px;
	margin: 0 0 16px;
}

.boss-pdp-tabs-wrap .comment-form-rating,
.boss-pdp-tabs-wrap .comment-form-comment,
.boss-pdp-tabs-wrap .comment-form-author,
.boss-pdp-tabs-wrap .comment-form-email {
	margin-bottom: 18px;
}

.boss-pdp-tabs-wrap .comment-form-rating label,
.boss-pdp-tabs-wrap .comment-form-comment label,
.boss-pdp-tabs-wrap .comment-form-author label,
.boss-pdp-tabs-wrap .comment-form-email label {
	display: block;
	font-weight: 700;
	font-size: 14px;
	margin-bottom: 8px;
}

.boss-pdp-tabs-wrap .comment-form-rating select#rating {
	padding: 10px 12px;
	font-size: 14px;
	border: 1px solid #d8d8d8;
	border-radius: 8px;
	background-color: #fff;
}

.boss-pdp-tabs-wrap #comment,
.boss-pdp-tabs-wrap .comment-form-author input,
.boss-pdp-tabs-wrap .comment-form-email input {
	width: 100%;
	padding: 12px 14px;
	font-size: 14px;
	font-family: inherit;
	border: 1px solid #d8d8d8;
	border-radius: 8px;
}

.boss-pdp-tabs-wrap #comment {
	min-height: 140px;
	resize: vertical;
}

.boss-pdp-tabs-wrap #comment:focus,
.boss-pdp-tabs-wrap .comment-form-rating select#rating:focus,
.boss-pdp-tabs-wrap .comment-form-author input:focus,
.boss-pdp-tabs-wrap .comment-form-email input:focus {
	outline: none;
	border-color: #e63946;
}

.boss-pdp-tabs-wrap p.form-submit {
	margin: 0;
}

.boss-pdp-tabs-wrap p.form-submit #submit {
	padding: 13px 32px;
	font-size: 14px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	color: #fff;
	background-color: #1a1a1a;
	border: none;
	border-radius: 8px;
	cursor: pointer;
	transition: background-color 0.15s ease-in-out;
}

.boss-pdp-tabs-wrap p.form-submit #submit:hover,
.boss-pdp-tabs-wrap p.form-submit #submit:focus {
	background-color: #e63946;
}

/* ---------- Related products ---------- */

.boss-pdp-related {
	margin-top: 48px;
}

.boss-pdp-related__heading {
	text-align: center;
	text-transform: uppercase;
	font-size: 36px;
	font-weight: 700;
	letter-spacing: 0.03em;
	margin: 0 0 32px;
	padding-bottom: 16px;
	border-bottom: 1px solid #e2e2e2;
}

.boss-pdp-related__grid {
	display: grid;
	grid-template-columns: repeat( 3, 1fr );
	gap: 60px;
}

.boss-pdp-related__item {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	text-decoration: none;
	color: inherit;
}

.boss-pdp-related__image {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	aspect-ratio: 1 / 1;
	margin-bottom: 16px;
}

.boss-pdp-related__image img {
	max-width: 100% !important;
	max-height: 100% !important;
	width: auto !important;
	height: auto !important;
	-o-object-fit: contain;
	object-fit: contain;
	display: block;
}

.boss-pdp-related__title {
	font-size: 14px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.01em;
	line-height: 1.4;
	margin-bottom: 6px;
}

.boss-pdp-related__item:hover .boss-pdp-related__title {
	color: #e63946;
}

.boss-pdp-related__price {
	font-size: 14px;
	color: #6b6b6b;
}

.boss-pdp-related__price .woocommerce-Price-amount {
	color: inherit;
}

@media (max-width: 900px) {

	.boss-pdp-related__grid {
		grid-template-columns: repeat( 2, 1fr );
		gap: 24px;
	}
}

@media (max-width: 600px) {

	.boss-pdp-related__grid {
		grid-template-columns: 1fr;
		gap: 24px;
	}

	.boss-pdp-related__heading {
		font-size: 18px;
		margin-bottom: 24px;
	}
}

/* ==========================================================================
   Tablet
   ========================================================================== */

@media (max-width: 1024px) {

	.boss-pdp-product {
		gap: 28px;
	}

	.boss-pdp-gallery-col,
	.boss-pdp-summary-col {
		flex: 1 1 100%;
	}

	.boss-pdp-summary-col .product_title {
		font-size: 24px;
	}
}

/* ==========================================================================
   Mobile
   ========================================================================== */

@media (max-width: 600px) {

	.boss-pdp-wrap {
		padding: 16px 14px 40px;
	}

	.boss-pdp-product {
		gap: 20px;
		margin-bottom: 32px;
	}

	.boss-pdp-summary-col .product_title {
		font-size: 20px;
	}

	.boss-pdp-summary-col .price {
		font-size: 18px;
	}

	.boss-pdp-summary-col form.cart {
		flex-direction: column;
		align-items: stretch;
	}

	.boss-pdp-summary-col .quantity .qty {
		width: 100%;
	}

	.boss-pdp-summary-col .quantity.boss-pdp-qty-stepper {
		align-self: flex-start;
	}

	.boss-pdp-summary-col .quantity.boss-pdp-qty-stepper .qty {
		width: 48px;
	}

	.boss-pdp-summary-col .single_add_to_cart_button {
		width: 100%;
	}

	.boss-pdp-tabs-wrap .woocommerce-tabs ul.tabs {
		flex-direction: row;
		gap: 20px;
	}

	.boss-pdp-tabs-wrap .woocommerce-tabs ul.tabs li a {
		width: 100%;
		padding: 10px 4px;
	}

	.boss-pdp-tabs-wrap p.form-submit #submit {
		width: 100%;
	}
}
