
/* =========================================================
   PARTY LIKE 1776 AGAIN — PRODUCT PAGE SYSTEM
   ========================================================= */

/* v1.2.5: bound the plugin-owned body to the site's content width. */
body.pla-product-template #primary,
body.pla-product-template #main {
	min-width: 0;
	max-width: 100%;
}

body.pla-product-template .pla-product-page {
	box-sizing: border-box;
	width: min(1180px, calc(100% - 40px));
	max-width: 100%;
	min-width: 0;
	margin: 0 auto;
}

body.pla-product-template .woocommerce-breadcrumb {
	box-sizing: border-box;
	width: min(1180px, calc(100% - 40px));
	max-width: 100%;
	margin-left: auto !important;
	margin-right: auto !important;
	overflow-wrap: anywhere;
}

body.pla-product-template .pla-product-page > div.product {
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

body.pla-product-template .pla-product-page > div.product::before,
body.pla-product-template .pla-product-page > div.product::after {
	content: none !important;
	display: none !important;
}

body.pla-product-template .pla-product-page > div.product > :not(.woocommerce-product-gallery):not(.summary) {
	grid-column: 1 / -1;
	min-width: 0;
}

body.pla-product-template .pla-product-page .summary,
body.pla-product-template .pla-product-page .summary *,
body.pla-product-template .pla-pp-story-grid > *,
body.pla-product-template .pla-pp-maker > *,
body.pla-product-template .pla-pp-gift-panel > * {
	box-sizing: border-box;
	min-width: 0;
	overflow-wrap: anywhere;
}

body.pla-product-template .pla-product-page .pla-pp-wrap {
	width: 100%;
	max-width: 100%;
	margin-left: 0;
	margin-right: 0;
}

body.pla-product-template table.variations {
	table-layout: fixed;
}

body.pla-product-template table.variations select {
	max-width: 100% !important;
	min-width: 0;
}

@media (max-width: 650px) {
	body.pla-product-template .pla-product-page,
	body.pla-product-template .woocommerce-breadcrumb {
		width: calc(100% - 24px);
	}
}

.single-product {
	--pla-navy: #18304a;
	--pla-dark: #102438;
	--pla-blue: #385f82;
	--pla-red: #9d342d;
	--pla-red-dark: #78251f;
	--pla-cream: #f3ecdc;
	--pla-paper: #fbf8f1;
	--pla-gold: #b18a4d;
	--pla-ink: #292c2f;
	--pla-muted: #67655f;
}

.single-product div.product {
	color: var(--pla-ink) !important;
}

.single-product div.product .product_title {
	font-family: Georgia, "Times New Roman", serif;
	color: var(--pla-dark) !important;
	font-size: clamp(34px, 4vw, 52px);
	line-height: 1.05;
}

.single-product div.product .price {
	color: var(--pla-red) !important;
	font-weight: 700;
}

.single-product div.product .woocommerce-product-details__short-description,
.single-product div.product .woocommerce-product-details__short-description p {
	color: var(--pla-muted) !important;
	line-height: 1.7;
}

.single-product div.product form.cart .button {
	background: var(--pla-red) !important;
	color: #fff !important;
	border-radius: 2px !important;
	text-transform: uppercase;
	letter-spacing: .8px;
	font-weight: 800;
}

.single-product div.product form.cart .button:hover {
	background: var(--pla-red-dark) !important;
}

.pla-pp-summary-badges {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
	margin: 0 0 17px;
}

.pla-pp-badge {
	display: inline-flex;
	align-items: center;
	padding: 7px 10px;
	border: 1px solid #d8cdb8;
	background: var(--pla-paper);
	color: var(--pla-navy) !important;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .8px;
	text-transform: uppercase;
}

.pla-pp-badge-primary {
	background: var(--pla-navy);
	border-color: var(--pla-navy);
	color: #fff !important;
}

.pla-pp-wrap {
	clear: both;
	width: min(1180px, calc(100% - 40px));
	margin: 55px auto 0;
	font-family: Georgia, "Times New Roman", serif;
}

.pla-pp-wrap *,
.pla-pp-wrap *:before,
.pla-pp-wrap *:after {
	box-sizing: border-box;
}

.pla-pp-eyebrow {
	margin: 0 0 9px !important;
	color: var(--pla-red) !important;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 10px !important;
	font-weight: 800;
	letter-spacing: 1.8px;
	text-transform: uppercase;
}

.pla-pp-wrap h2 {
	margin: 0 0 17px;
	color: var(--pla-dark) !important;
	font-size: clamp(30px, 4vw, 48px);
	line-height: 1.08;
}

.pla-pp-wrap h3 {
	color: var(--pla-dark) !important;
}

.pla-pp-body,
.pla-pp-body p {
	color: var(--pla-muted) !important;
	font-size: 17px;
	line-height: 1.72;
}

.pla-pp-story-grid {
	display: grid;
	grid-template-columns: 1.2fr .8fr;
	gap: 55px;
	padding: 65px;
	background: var(--pla-paper);
	border-top: 6px solid var(--pla-red);
}

.pla-pp-why {
	padding-right: 15px;
}

.pla-pp-taxonomy {
	display: flex;
	flex-direction: column;
	gap: 25px;
	padding: 28px;
	background: #fff;
	border: 1px solid #ded5c4;
}

.pla-pp-tax-group h3 {
	margin: 0 0 12px;
	font-size: 20px;
}

.pla-pp-tax-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.pla-pp-tax-pills a,
.pla-pp-tax-pills span {
	padding: 8px 10px;
	background: var(--pla-cream);
	border: 1px solid #d8cbb2;
	color: var(--pla-navy) !important;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 10px;
	font-weight: 800;
	text-transform: uppercase;
	text-decoration: none !important;
}

.pla-pp-maker {
	display: grid;
	grid-template-columns: 1.25fr .75fr;
	gap: 55px;
	align-items: center;
	padding: 70px 65px;
	background: var(--pla-navy);
}

.pla-pp-maker .pla-pp-eyebrow {
	color: #d7b873 !important;
}

.pla-pp-maker h2 {
	color: #fff !important;
}

.pla-pp-maker .pla-pp-body,
.pla-pp-maker .pla-pp-body p {
	color: rgba(255,255,255,.75) !important;
}

.pla-pp-button {
	display: inline-flex;
	margin-top: 15px;
	padding: 13px 18px;
	background: var(--pla-red);
	color: #fff !important;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: 1px;
	text-transform: uppercase;
	text-decoration: none !important;
}

.pla-pp-maker-mark {
	width: min(290px, 100%);
	aspect-ratio: 1 / 1;
	margin: auto;
	border-radius: 50%;
	border: 4px solid #d7b873;
	outline: 1px solid rgba(255,255,255,.35);
	outline-offset: -12px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	text-align: center;
	color: #fff !important;
	transform: rotate(-2deg);
}

.pla-pp-maker-mark span,
.pla-pp-maker-mark small {
	font-family: Arial, Helvetica, sans-serif;
	font-size: 9px;
	font-weight: 800;
	letter-spacing: 1.7px;
	text-transform: uppercase;
	color: #d7b873 !important;
}

.pla-pp-maker-mark strong {
	display: block;
	margin: 8px 0;
	font-size: 39px;
	line-height: .95;
	color: #fff !important;
}

.pla-pp-gift-panel {
	display: grid;
	grid-template-columns: .8fr 1.2fr;
	gap: 40px;
	align-items: center;
	padding: 55px 65px;
	background: var(--pla-cream);
}

.pla-pp-gift-panel h2 {
	font-size: clamp(28px, 3.5vw, 42px);
}

.pla-pp-gift-panel > div > p:not(.pla-pp-eyebrow) {
	color: var(--pla-muted) !important;
}

.pla-pp-gift-options {
	display: grid;
	grid-template-columns: repeat(2, minmax(0,1fr));
	gap: 14px;
}

.pla-pp-gift-option {
	min-height: 185px;
	padding: 25px;
	background: #fff;
	border: 1px solid #d8cbb2;
	text-decoration: none !important;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	transition: .2s ease;
}

.pla-pp-gift-option:hover {
	transform: translateY(-3px);
	box-shadow: 0 12px 25px rgba(20,30,40,.08);
}

.pla-pp-gift-option small {
	margin-bottom: auto;
	color: var(--pla-red) !important;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 9px;
	font-weight: 800;
	letter-spacing: 1.2px;
	text-transform: uppercase;
}

.pla-pp-gift-option strong {
	display: block;
	margin: 20px 0 11px;
	color: var(--pla-dark) !important;
	font-size: 21px;
}

.pla-pp-gift-option span {
	color: var(--pla-red) !important;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 10px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .7px;
}

.pla-pp-related {
	padding: 70px 0 20px;
}

.pla-pp-section-heading {
	max-width: 700px;
	margin: 0 0 30px;
}

.pla-pp-related ul.products {
	margin-bottom: 0 !important;
}

.pla-pp-related ul.products li.product {
	background: #fff;
	border: 1px solid #e1dacd;
	padding-bottom: 18px !important;
}

.pla-pp-related ul.products li.product .woocommerce-loop-product__title,
.pla-pp-related ul.products li.product .price {
	padding-left: 14px !important;
	padding-right: 14px !important;
}

@media (max-width: 900px) {
	.pla-pp-story-grid,
	.pla-pp-maker,
	.pla-pp-gift-panel {
		grid-template-columns: 1fr;
		padding: 45px 35px;
	}

	.pla-pp-gift-options {
		grid-template-columns: 1fr 1fr;
	}
}

@media (max-width: 650px) {
	.pla-pp-wrap {
		width: min(100% - 24px, 1180px);
		margin-top: 35px;
	}

	.pla-pp-story-grid,
	.pla-pp-maker,
	.pla-pp-gift-panel {
		padding: 35px 22px;
	}

	.pla-pp-gift-options {
		grid-template-columns: 1fr;
	}

	.pla-pp-maker-mark {
		width: 220px;
	}
}


/* v1.2.1 — variable product polish + remove native Woo product tabs */

/* The Party Like product system owns the story content, so standard Woo tabs
   should never appear under these single-product pages. */
body.single-product .woocommerce-tabs,
body.single-product .wc-tabs-wrapper,
body.single-product .woocommerce-Tabs-panel,
body.single-product .woocommerce-tabs.wc-tabs-wrapper {
	display:none !important;
}

/* Keep the core product area balanced for variable products such as
   Virginia Diner Peanuts. PopularFX/PageLayer can collapse the summary
   or gallery when variation controls are present. */
body.single-product .pla-product-page .product,
body.single-product .pla-product-page div.product,
body.single-product .woocommerce div.product {
	box-sizing:border-box !important;
}

body.single-product .pla-product-page div.product .woocommerce-product-gallery,
body.single-product .pla-product-page div.product .summary,
body.single-product .woocommerce div.product .woocommerce-product-gallery,
body.single-product .woocommerce div.product .summary {
	min-width:0 !important;
	box-sizing:border-box !important;
}

/* Desktop: deliberate two-column product header. */
@media (min-width: 900px) {
	body.single-product .pla-product-page div.product,
	body.single-product .woocommerce div.product {
		display:grid !important;
		grid-template-columns:minmax(0, .95fr) minmax(0, 1.05fr) !important;
		column-gap:56px !important;
		align-items:start !important;
	}

	body.single-product .pla-product-page div.product .woocommerce-product-gallery,
	body.single-product .woocommerce div.product .woocommerce-product-gallery {
		width:100% !important;
		max-width:none !important;
		float:none !important;
		margin:0 !important;
		grid-column:1 !important;
	}

	body.single-product .pla-product-page div.product .summary,
	body.single-product .woocommerce div.product .summary {
		width:100% !important;
		max-width:none !important;
		float:none !important;
		clear:none !important;
		margin:0 !important;
		grid-column:2 !important;
	}
}

/* Give the main product image a stable presentation. */
body.single-product .woocommerce-product-gallery__wrapper,
body.single-product .woocommerce-product-gallery__image,
body.single-product .woocommerce-product-gallery__image a {
	width:100% !important;
}

body.single-product .woocommerce-product-gallery__image img {
	display:block !important;
	width:100% !important;
	height:auto !important;
	max-width:100% !important;
	object-fit:contain !important;
}

/* Variable product form should use the available width and never collapse. */
body.single-product form.variations_form,
body.single-product form.cart {
	width:100% !important;
	max-width:none !important;
}

body.single-product table.variations {
	width:100% !important;
	margin:18px 0 14px !important;
	border-collapse:collapse !important;
}

body.single-product table.variations tbody,
body.single-product table.variations tr {
	width:100% !important;
}

body.single-product table.variations th.label {
	width:92px !important;
	padding:10px 14px 10px 0 !important;
	text-align:left !important;
	vertical-align:middle !important;
}

body.single-product table.variations td.value {
	width:auto !important;
	padding:10px 0 !important;
}

body.single-product table.variations select {
	width:100% !important;
	max-width:420px !important;
	min-height:44px !important;
	padding:9px 34px 9px 12px !important;
	border:1px solid #cfc3b1 !important;
	background:#fff !important;
	color:#292c2f !important;
}

body.single-product .single_variation_wrap,
body.single-product .woocommerce-variation,
body.single-product .woocommerce-variation-add-to-cart {
	width:100% !important;
}

body.single-product .woocommerce-variation-add-to-cart {
	display:flex !important;
	flex-wrap:wrap !important;
	align-items:center !important;
	gap:10px !important;
}

body.single-product .quantity {
	float:none !important;
	margin:0 !important;
}

body.single-product .single_add_to_cart_button {
	float:none !important;
	margin:0 !important;
	min-height:44px !important;
}

/* Mobile/tablet returns to normal stacked flow. */
@media (max-width: 899px) {
	body.single-product .pla-product-page div.product,
	body.single-product .woocommerce div.product {
		display:block !important;
	}

	body.single-product .woocommerce-product-gallery,
	body.single-product .summary {
		width:100% !important;
		float:none !important;
		margin-left:0 !important;
		margin-right:0 !important;
	}

	body.single-product table.variations th.label,
	body.single-product table.variations td.value {
		display:block !important;
		width:100% !important;
		padding-left:0 !important;
		padding-right:0 !important;
	}
}


/* v1.2.2 — move the Woo product content into the main summary.
   SKU is intentionally hidden, while categories/tags can remain available. */
body.single-product .product_meta .sku_wrapper {
	display:none !important;
}

body.single-product .pla-product-main-content {
	margin:18px 0 0 !important;
	padding:18px 0 0 !important;
	border-top:1px solid #ded4c5 !important;
	color:#3b3a36 !important;
	font-size:16px !important;
	line-height:1.7 !important;
}

body.single-product .pla-product-main-content > :first-child {
	margin-top:0 !important;
}

body.single-product .pla-product-main-content > :last-child {
	margin-bottom:0 !important;
}

body.single-product .pla-product-main-content h2,
body.single-product .pla-product-main-content h3,
body.single-product .pla-product-main-content h4 {
	margin:22px 0 10px !important;
	font-family:"Cormorant Garamond",Georgia,serif !important;
	font-weight:700 !important;
	line-height:1.08 !important;
	color:#102438 !important;
}

body.single-product .pla-product-main-content h2 {
	font-size:30px !important;
}

body.single-product .pla-product-main-content h3 {
	font-size:25px !important;
}

body.single-product .pla-product-main-content p,
body.single-product .pla-product-main-content ul,
body.single-product .pla-product-main-content ol {
	margin:0 0 14px !important;
}

body.single-product .pla-product-main-content ul,
body.single-product .pla-product-main-content ol {
	padding-left:22px !important;
}


/* v1.2.3 — plugin-owned related product cards.
   Do not use WooCommerce ul.products here because PopularFX/PageLayer
   constrains those cards to extremely narrow columns on single-product pages. */
body.single-product .pla-pp-related {
	padding:70px 0 20px !important;
}

body.single-product .pla-pp-related-grid {
	display:grid !important;
	grid-template-columns:repeat(4, minmax(0, 1fr)) !important;
	gap:24px !important;
	width:100% !important;
	margin:0 !important;
	padding:0 !important;
	align-items:stretch !important;
}

body.single-product .pla-pp-related-card {
	display:flex !important;
	flex-direction:column !important;
	min-width:0 !important;
	width:100% !important;
	max-width:none !important;
	margin:0 !important;
	padding:0 0 18px !important;
	background:#fff !important;
	border:1px solid #e1dacd !important;
	box-sizing:border-box !important;
	overflow:hidden !important;
}

body.single-product .pla-pp-related-card-link {
	display:flex !important;
	flex-direction:column !important;
	flex:1 1 auto !important;
	width:100% !important;
	color:inherit !important;
	text-decoration:none !important;
}

body.single-product .pla-pp-related-media {
	display:flex !important;
	align-items:center !important;
	justify-content:center !important;
	width:100% !important;
	aspect-ratio:4 / 3 !important;
	padding:18px !important;
	background:#fbf8f1 !important;
	box-sizing:border-box !important;
	overflow:hidden !important;
}

body.single-product .pla-pp-related-media img,
body.single-product img.pla-pp-related-image {
	display:block !important;
	width:100% !important;
	height:100% !important;
	max-width:100% !important;
	margin:0 !important;
	object-fit:contain !important;
}

body.single-product .pla-pp-related-copy {
	padding:18px 18px 8px !important;
}

body.single-product .pla-pp-related-copy h3 {
	margin:0 0 8px !important;
	padding:0 !important;
	font-family:"Cormorant Garamond", Georgia, serif !important;
	font-size:27px !important;
	font-weight:700 !important;
	line-height:1.05 !important;
	color:#102438 !important;
	word-break:normal !important;
	overflow-wrap:normal !important;
	white-space:normal !important;
}

body.single-product .pla-pp-related-price,
body.single-product .pla-pp-related-price .amount {
	font-size:16px !important;
	font-weight:800 !important;
	color:#9d342d !important;
}

body.single-product .pla-pp-related-action {
	padding:6px 18px 0 !important;
	margin-top:auto !important;
}

body.single-product .pla-pp-related-button {
	display:inline-flex !important;
	align-items:center !important;
	justify-content:center !important;
	min-height:42px !important;
	padding:11px 16px !important;
	background:#18304a !important;
	color:#fff !important;
	font-size:11px !important;
	font-weight:800 !important;
	line-height:1 !important;
	letter-spacing:.7px !important;
	text-transform:uppercase !important;
	text-decoration:none !important;
	border:0 !important;
	box-shadow:none !important;
}

body.single-product .pla-pp-related-button:hover {
	background:#9d342d !important;
	color:#fff !important;
}

/* When only a few related products exist, keep the cards a natural width
   rather than stretching them across the whole section. */
body.single-product .pla-pp-related-grid:has(.pla-pp-related-card:first-child:nth-last-child(1)) {
	grid-template-columns:minmax(240px,300px) !important;
}

body.single-product .pla-pp-related-grid:has(.pla-pp-related-card:first-child:nth-last-child(2)) {
	grid-template-columns:repeat(2,minmax(240px,300px)) !important;
}

body.single-product .pla-pp-related-grid:has(.pla-pp-related-card:first-child:nth-last-child(3)) {
	grid-template-columns:repeat(3,minmax(220px,1fr)) !important;
}

@media (max-width:900px) {
	body.single-product .pla-pp-related-grid,
	body.single-product .pla-pp-related-grid:has(.pla-pp-related-card:first-child:nth-last-child(3)) {
		grid-template-columns:repeat(2,minmax(0,1fr)) !important;
	}
}

@media (max-width:650px) {
	body.single-product .pla-pp-related-grid,
	body.single-product .pla-pp-related-grid:has(.pla-pp-related-card:first-child:nth-last-child(1)),
	body.single-product .pla-pp-related-grid:has(.pla-pp-related-card:first-child:nth-last-child(2)),
	body.single-product .pla-pp-related-grid:has(.pla-pp-related-card:first-child:nth-last-child(3)) {
		grid-template-columns:1fr !important;
	}

	body.single-product .pla-pp-related-copy h3 {
		font-size:25px !important;
	}
}
